@sapudex/web-components 2.5.0 → 2.6.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 (533) hide show
  1. package/cypress/specs/Accordion.cy.tsx +18 -10
  2. package/cypress/specs/Divider.cy.tsx +16 -0
  3. package/cypress/support/component-imports.instrumented.ts +2 -0
  4. package/cypress/support/component-imports.src.ts +4 -2
  5. package/dist/Accordion.d.ts +6 -5
  6. package/dist/Accordion.js +21 -20
  7. package/dist/Accordion.js.map +1 -1
  8. package/dist/AccordionItem.d.ts +1 -3
  9. package/dist/AccordionItem.js +17 -19
  10. package/dist/AccordionItem.js.map +1 -1
  11. package/dist/AccordionItemTemplate.d.ts +2 -0
  12. package/dist/AccordionItemTemplate.js +14 -0
  13. package/dist/AccordionItemTemplate.js.map +1 -0
  14. package/dist/AccordionTemplate.d.ts +2 -0
  15. package/dist/AccordionTemplate.js +11 -0
  16. package/dist/AccordionTemplate.js.map +1 -0
  17. package/dist/AssetsVariables.js +5 -1
  18. package/dist/AssetsVariables.js.map +1 -1
  19. package/dist/Avatar.d.ts +2 -1
  20. package/dist/Avatar.js +7 -9
  21. package/dist/Avatar.js.map +1 -1
  22. package/dist/AvatarTemplate.d.ts +2 -0
  23. package/dist/AvatarTemplate.js +6 -0
  24. package/dist/AvatarTemplate.js.map +1 -0
  25. package/dist/Badge.d.ts +1 -2
  26. package/dist/Badge.js +6 -9
  27. package/dist/Badge.js.map +1 -1
  28. package/dist/BadgeTemplate.d.ts +2 -0
  29. package/dist/BadgeTemplate.js +8 -0
  30. package/dist/BadgeTemplate.js.map +1 -0
  31. package/dist/Carousel.d.ts +16 -4
  32. package/dist/Carousel.js +21 -11
  33. package/dist/Carousel.js.map +1 -1
  34. package/dist/CarouselTemplate.d.ts +2 -0
  35. package/dist/CarouselTemplate.js +15 -0
  36. package/dist/CarouselTemplate.js.map +1 -0
  37. package/dist/ContactItemTemplate.js +2 -1
  38. package/dist/ContactItemTemplate.js.map +1 -1
  39. package/dist/CountrySelector.d.ts +1 -1
  40. package/dist/CountrySelector.js +6 -7
  41. package/dist/CountrySelector.js.map +1 -1
  42. package/dist/Divider.d.ts +10 -2
  43. package/dist/Divider.js +11 -4
  44. package/dist/Divider.js.map +1 -1
  45. package/dist/DividerTemplate.d.ts +2 -0
  46. package/dist/DividerTemplate.js +5 -0
  47. package/dist/DividerTemplate.js.map +1 -0
  48. package/dist/Dropdown.js +2 -1
  49. package/dist/Dropdown.js.map +1 -1
  50. package/dist/FilterMenu.d.ts +0 -7
  51. package/dist/FilterMenu.js +12 -12
  52. package/dist/FilterMenu.js.map +1 -1
  53. package/dist/List.js +1 -1
  54. package/dist/List.js.map +1 -1
  55. package/dist/MastheadCountrySelector.d.ts +5 -0
  56. package/dist/MastheadCountrySelector.js +17 -2
  57. package/dist/MastheadCountrySelector.js.map +1 -1
  58. package/dist/MastheadMenu.d.ts +1 -0
  59. package/dist/MastheadMenu.js +7 -3
  60. package/dist/MastheadMenu.js.map +1 -1
  61. package/dist/MastheadMobileMenu.js +6 -3
  62. package/dist/MastheadMobileMenu.js.map +1 -1
  63. package/dist/MastheadShell.d.ts +17 -0
  64. package/dist/MastheadShell.js +53 -15
  65. package/dist/MastheadShell.js.map +1 -1
  66. package/dist/Modal.js +2 -2
  67. package/dist/Modal.js.map +1 -1
  68. package/dist/Search.js +5 -4
  69. package/dist/Search.js.map +1 -1
  70. package/dist/SearchableListBase.d.ts +24 -2
  71. package/dist/SearchableListBase.js +50 -4
  72. package/dist/SearchableListBase.js.map +1 -1
  73. package/dist/SecondaryNavigation.js +1 -1
  74. package/dist/SecondaryNavigation.js.map +1 -1
  75. package/dist/SecondaryNavigationItem.js +1 -2
  76. package/dist/SecondaryNavigationItem.js.map +1 -1
  77. package/dist/SegmentedButton.js +6 -4
  78. package/dist/SegmentedButton.js.map +1 -1
  79. package/dist/SelectBox.d.ts +0 -7
  80. package/dist/SelectBox.js +10 -13
  81. package/dist/SelectBox.js.map +1 -1
  82. package/dist/TabNavigation.d.ts +5 -0
  83. package/dist/TabNavigation.js +8 -0
  84. package/dist/TabNavigation.js.map +1 -1
  85. package/dist/Table.js +1 -1
  86. package/dist/Table.js.map +1 -1
  87. package/dist/TextArea.js +1 -1
  88. package/dist/TextArea.js.map +1 -1
  89. package/dist/assets/InputSuggestions-D_DpCFML.js +2 -0
  90. package/dist/assets/{ListItemStandardExpandableTextTemplate-ClcY2jB2.js → ListItemStandardExpandableTextTemplate-Cd1WOyFc.js} +3 -3
  91. package/dist/assets/bundle-S1uYREqT.css +1 -0
  92. package/dist/assets/bundle.esm-B9JnRRJp.js +475 -0
  93. package/dist/assets/messagebundle_en-CKeTZNW3.js +1 -0
  94. package/dist/assets/parameters-bundle.css-B168-DcZ.js +2 -0
  95. package/dist/assets/parameters-bundle.css-B4OkERQ9.js +2 -0
  96. package/dist/assets/parameters-bundle.css-D1Mp0DP7.js +2 -0
  97. package/dist/assets/parameters-bundle.css-DPQMdjrz.js +2 -0
  98. package/dist/assets/parameters-bundle.css-DW-8EaO7.js +2 -0
  99. package/dist/assets/parameters-bundle.css-DpI130zX.js +2 -0
  100. package/dist/assets/parameters-bundle.css-DsEtCihj.js +2 -0
  101. package/dist/assets/parameters-bundle.css-y5CBgtzD.js +2 -0
  102. package/dist/css/themes/CountrySelector.css +1 -1
  103. package/dist/css/themes/MastheadCountrySelector.css +1 -1
  104. package/dist/css/themes/MastheadItem.css +1 -1
  105. package/dist/css/themes/MastheadMenuItem.css +1 -1
  106. package/dist/css/themes/MastheadMobileMenu.css +1 -1
  107. package/dist/css/themes/MastheadShell.css +1 -1
  108. package/dist/css/themes/RatingIndicator.css +1 -1
  109. package/dist/css/themes/Search.css +1 -1
  110. package/dist/css/themes/SearchableList.css +1 -1
  111. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  112. package/dist/css/themes/Slider.css +1 -1
  113. package/dist/css/themes/TextArea.css +1 -1
  114. package/dist/custom-elements-internal.json +219 -41
  115. package/dist/custom-elements.json +211 -41
  116. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  117. package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
  118. package/dist/generated/i18n/i18n-defaults.js +2 -1
  119. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  120. package/dist/generated/json-imports/Themes-fetch.js +1 -1
  121. package/dist/generated/json-imports/Themes-fetch.js.map +1 -1
  122. package/dist/generated/json-imports/Themes-node.js +1 -1
  123. package/dist/generated/json-imports/Themes-node.js.map +1 -1
  124. package/dist/generated/json-imports/Themes.js +1 -1
  125. package/dist/generated/json-imports/Themes.js.map +1 -1
  126. package/dist/generated/json-imports/i18n-fetch.js +1 -1
  127. package/dist/generated/json-imports/i18n-fetch.js.map +1 -1
  128. package/dist/generated/json-imports/i18n-node.js +1 -1
  129. package/dist/generated/json-imports/i18n-node.js.map +1 -1
  130. package/dist/generated/json-imports/i18n.js +1 -1
  131. package/dist/generated/json-imports/i18n.js.map +1 -1
  132. package/dist/generated/templates/HeroBannerTemplate.lit.js +1 -1
  133. package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
  134. package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js +3 -3
  135. package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js.map +1 -1
  136. package/dist/generated/templates/MastheadMenuTemplate.lit.js +3 -3
  137. package/dist/generated/templates/MastheadMenuTemplate.lit.js.map +1 -1
  138. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +1 -1
  139. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
  140. package/dist/generated/templates/MastheadShellTemplate.lit.js +1 -1
  141. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
  142. package/dist/generated/templates/SearchableListBaseTemplate.lit.js +2 -2
  143. package/dist/generated/templates/SearchableListBaseTemplate.lit.js.map +1 -1
  144. package/dist/generated/themes/Accordion.css.js +2 -2
  145. package/dist/generated/themes/Accordion.css.js.map +1 -1
  146. package/dist/generated/themes/AccordionItem.css.js +2 -2
  147. package/dist/generated/themes/AccordionItem.css.js.map +1 -1
  148. package/dist/generated/themes/Avatar.css.js +2 -2
  149. package/dist/generated/themes/Avatar.css.js.map +1 -1
  150. package/dist/generated/themes/Badge.css.js +2 -2
  151. package/dist/generated/themes/Badge.css.js.map +1 -1
  152. package/dist/generated/themes/Breadcrumbs.css.js +2 -2
  153. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  154. package/dist/generated/themes/BreadcrumbsPopover.css.js +2 -2
  155. package/dist/generated/themes/BreadcrumbsPopover.css.js.map +1 -1
  156. package/dist/generated/themes/Button.css.js +2 -2
  157. package/dist/generated/themes/Button.css.js.map +1 -1
  158. package/dist/generated/themes/Carousel.css.js +2 -2
  159. package/dist/generated/themes/Carousel.css.js.map +1 -1
  160. package/dist/generated/themes/Checkbox.css.js +2 -2
  161. package/dist/generated/themes/Checkbox.css.js.map +1 -1
  162. package/dist/generated/themes/Contact.css.js +2 -2
  163. package/dist/generated/themes/Contact.css.js.map +1 -1
  164. package/dist/generated/themes/ContactItem.css.js +2 -2
  165. package/dist/generated/themes/ContactItem.css.js.map +1 -1
  166. package/dist/generated/themes/ControlButton.css.js +2 -2
  167. package/dist/generated/themes/ControlButton.css.js.map +1 -1
  168. package/dist/generated/themes/CountrySelector.css.d.ts +1 -1
  169. package/dist/generated/themes/CountrySelector.css.js +3 -3
  170. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  171. package/dist/generated/themes/DatePicker.css.js +2 -2
  172. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  173. package/dist/generated/themes/DatePickerPopover.css.js +2 -2
  174. package/dist/generated/themes/DatePickerPopover.css.js.map +1 -1
  175. package/dist/generated/themes/Divider.css.js +2 -2
  176. package/dist/generated/themes/Divider.css.js.map +1 -1
  177. package/dist/generated/themes/Dropdown.css.js +2 -2
  178. package/dist/generated/themes/Dropdown.css.js.map +1 -1
  179. package/dist/generated/themes/EventRibbon.css.js +2 -2
  180. package/dist/generated/themes/EventRibbon.css.js.map +1 -1
  181. package/dist/generated/themes/FilterMenu.css.js +2 -2
  182. package/dist/generated/themes/FilterMenu.css.js.map +1 -1
  183. package/dist/generated/themes/Footer.css.js +2 -2
  184. package/dist/generated/themes/Footer.css.js.map +1 -1
  185. package/dist/generated/themes/HeroBanner.css.js +2 -2
  186. package/dist/generated/themes/HeroBanner.css.js.map +1 -1
  187. package/dist/generated/themes/InputGroup.css.js +2 -2
  188. package/dist/generated/themes/InputGroup.css.js.map +1 -1
  189. package/dist/generated/themes/Link.css.js +2 -2
  190. package/dist/generated/themes/Link.css.js.map +1 -1
  191. package/dist/generated/themes/List.css.js +2 -2
  192. package/dist/generated/themes/List.css.js.map +1 -1
  193. package/dist/generated/themes/ListGroupHeader.css.js +2 -2
  194. package/dist/generated/themes/ListGroupHeader.css.js.map +1 -1
  195. package/dist/generated/themes/ListItem.css.js +2 -2
  196. package/dist/generated/themes/ListItem.css.js.map +1 -1
  197. package/dist/generated/themes/MastheadCountrySelector.css.d.ts +1 -1
  198. package/dist/generated/themes/MastheadCountrySelector.css.js +3 -3
  199. package/dist/generated/themes/MastheadCountrySelector.css.js.map +1 -1
  200. package/dist/generated/themes/MastheadItem.css.d.ts +1 -1
  201. package/dist/generated/themes/MastheadItem.css.js +3 -3
  202. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  203. package/dist/generated/themes/MastheadMenu.css.js +2 -2
  204. package/dist/generated/themes/MastheadMenu.css.js.map +1 -1
  205. package/dist/generated/themes/MastheadMenuItem.css.d.ts +1 -1
  206. package/dist/generated/themes/MastheadMenuItem.css.js +3 -3
  207. package/dist/generated/themes/MastheadMenuItem.css.js.map +1 -1
  208. package/dist/generated/themes/MastheadMobileMenu.css.d.ts +1 -1
  209. package/dist/generated/themes/MastheadMobileMenu.css.js +3 -3
  210. package/dist/generated/themes/MastheadMobileMenu.css.js.map +1 -1
  211. package/dist/generated/themes/MastheadProfileMenu.css.js +2 -2
  212. package/dist/generated/themes/MastheadProfileMenu.css.js.map +1 -1
  213. package/dist/generated/themes/MastheadShell.css.d.ts +1 -1
  214. package/dist/generated/themes/MastheadShell.css.js +3 -3
  215. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  216. package/dist/generated/themes/MediaPlayer.css.js +2 -2
  217. package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
  218. package/dist/generated/themes/MediaPlayerYoutube.css.js +2 -2
  219. package/dist/generated/themes/MediaPlayerYoutube.css.js.map +1 -1
  220. package/dist/generated/themes/MessageStrip.css.js +2 -2
  221. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  222. package/dist/generated/themes/Modal.css.js +2 -2
  223. package/dist/generated/themes/Modal.css.js.map +1 -1
  224. package/dist/generated/themes/Pagination.css.js +2 -2
  225. package/dist/generated/themes/Pagination.css.js.map +1 -1
  226. package/dist/generated/themes/PhoneNumberField.css.js +2 -2
  227. package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
  228. package/dist/generated/themes/ProgressBar.css.js +2 -2
  229. package/dist/generated/themes/ProgressBar.css.js.map +1 -1
  230. package/dist/generated/themes/Quote.css.js +2 -2
  231. package/dist/generated/themes/Quote.css.js.map +1 -1
  232. package/dist/generated/themes/RadioButton.css.js +2 -2
  233. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  234. package/dist/generated/themes/RatingBar.css.js +2 -2
  235. package/dist/generated/themes/RatingBar.css.js.map +1 -1
  236. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  237. package/dist/generated/themes/RatingIndicator.css.js +3 -3
  238. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  239. package/dist/generated/themes/Review.css.js +2 -2
  240. package/dist/generated/themes/Review.css.js.map +1 -1
  241. package/dist/generated/themes/ReviewItem.css.js +2 -2
  242. package/dist/generated/themes/ReviewItem.css.js.map +1 -1
  243. package/dist/generated/themes/Search.css.d.ts +1 -1
  244. package/dist/generated/themes/Search.css.js +3 -3
  245. package/dist/generated/themes/Search.css.js.map +1 -1
  246. package/dist/generated/themes/SearchSuggestions.css.js +2 -2
  247. package/dist/generated/themes/SearchSuggestions.css.js.map +1 -1
  248. package/dist/generated/themes/SearchableList.css.d.ts +1 -1
  249. package/dist/generated/themes/SearchableList.css.js +3 -3
  250. package/dist/generated/themes/SearchableList.css.js.map +1 -1
  251. package/dist/generated/themes/SecondaryNavigation.css.js +2 -2
  252. package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
  253. package/dist/generated/themes/SecondaryNavigationItem.css.js +2 -2
  254. package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
  255. package/dist/generated/themes/SecondaryNavigationSubItem.css.js +2 -2
  256. package/dist/generated/themes/SecondaryNavigationSubItem.css.js.map +1 -1
  257. package/dist/generated/themes/SegmentedButton.css.js +2 -2
  258. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  259. package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
  260. package/dist/generated/themes/SegmentedButtonItem.css.js +3 -3
  261. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  262. package/dist/generated/themes/SelectBox.css.js +2 -2
  263. package/dist/generated/themes/SelectBox.css.js.map +1 -1
  264. package/dist/generated/themes/SideNavigation.css.js +2 -2
  265. package/dist/generated/themes/SideNavigation.css.js.map +1 -1
  266. package/dist/generated/themes/SideNavigationGroup.css.js +2 -2
  267. package/dist/generated/themes/SideNavigationGroup.css.js.map +1 -1
  268. package/dist/generated/themes/SideNavigationItem.css.js +2 -2
  269. package/dist/generated/themes/SideNavigationItem.css.js.map +1 -1
  270. package/dist/generated/themes/SideNavigationMobile.css.js +2 -2
  271. package/dist/generated/themes/SideNavigationMobile.css.js.map +1 -1
  272. package/dist/generated/themes/SideNavigationMobileDropdown.css.js +2 -2
  273. package/dist/generated/themes/SideNavigationMobileDropdown.css.js.map +1 -1
  274. package/dist/generated/themes/SideNavigationSubItem.css.js +2 -2
  275. package/dist/generated/themes/SideNavigationSubItem.css.js.map +1 -1
  276. package/dist/generated/themes/Slider.css.d.ts +1 -1
  277. package/dist/generated/themes/Slider.css.js +3 -3
  278. package/dist/generated/themes/Slider.css.js.map +1 -1
  279. package/dist/generated/themes/StatusBadge.css.js +2 -2
  280. package/dist/generated/themes/StatusBadge.css.js.map +1 -1
  281. package/dist/generated/themes/StatusMessage.css.js +2 -2
  282. package/dist/generated/themes/StatusMessage.css.js.map +1 -1
  283. package/dist/generated/themes/StepInput.css.js +2 -2
  284. package/dist/generated/themes/StepInput.css.js.map +1 -1
  285. package/dist/generated/themes/Switch.css.js +2 -2
  286. package/dist/generated/themes/Switch.css.js.map +1 -1
  287. package/dist/generated/themes/TabInOverflow.css.js +2 -2
  288. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  289. package/dist/generated/themes/TabNavigation.css.js +2 -2
  290. package/dist/generated/themes/TabNavigation.css.js.map +1 -1
  291. package/dist/generated/themes/Table.css.js +2 -2
  292. package/dist/generated/themes/Table.css.js.map +1 -1
  293. package/dist/generated/themes/TableCell.css.js +2 -2
  294. package/dist/generated/themes/TableCell.css.js.map +1 -1
  295. package/dist/generated/themes/TableCellBase.css.js +2 -2
  296. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  297. package/dist/generated/themes/TableGroupRow.css.js +2 -2
  298. package/dist/generated/themes/TableGroupRow.css.js.map +1 -1
  299. package/dist/generated/themes/TableHeaderCell.css.js +2 -2
  300. package/dist/generated/themes/TableHeaderCell.css.js.map +1 -1
  301. package/dist/generated/themes/TableRowBase.css.js +2 -2
  302. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  303. package/dist/generated/themes/Tag.css.js +2 -2
  304. package/dist/generated/themes/Tag.css.js.map +1 -1
  305. package/dist/generated/themes/TagGroup.css.js +2 -2
  306. package/dist/generated/themes/TagGroup.css.js.map +1 -1
  307. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  308. package/dist/generated/themes/TextArea.css.js +3 -3
  309. package/dist/generated/themes/TextArea.css.js.map +1 -1
  310. package/dist/generated/themes/TextField.css.js +2 -2
  311. package/dist/generated/themes/TextField.css.js.map +1 -1
  312. package/dist/generated/themes/Tile.css.js +2 -2
  313. package/dist/generated/themes/Tile.css.js.map +1 -1
  314. package/dist/generated/themes/Toast.css.js +2 -2
  315. package/dist/generated/themes/Toast.css.js.map +1 -1
  316. package/dist/generated/themes/Tooltip.css.js +2 -2
  317. package/dist/generated/themes/Tooltip.css.js.map +1 -1
  318. package/dist/generated/themes/TruncatedText.css.js +2 -2
  319. package/dist/generated/themes/TruncatedText.css.js.map +1 -1
  320. package/dist/generated/themes/Upload.css.js +2 -2
  321. package/dist/generated/themes/Upload.css.js.map +1 -1
  322. package/dist/generated/themes/UploadItem.css.js +2 -2
  323. package/dist/generated/themes/UploadItem.css.js.map +1 -1
  324. package/dist/generated/themes/Wizard.css.js +2 -2
  325. package/dist/generated/themes/Wizard.css.js.map +1 -1
  326. package/dist/generated/themes/WizardTab.css.js +2 -2
  327. package/dist/generated/themes/WizardTab.css.js.map +1 -1
  328. package/dist/messagebundle.properties +3 -0
  329. package/dist/messagebundle_en.properties +1 -0
  330. package/dist/types/SearchableListBase.d.ts +5 -0
  331. package/dist/types/SearchableListBase.js +6 -0
  332. package/dist/types/SearchableListBase.js.map +1 -1
  333. package/dist/utils/getEffectiveScrollbarStyle.d.ts +4 -0
  334. package/dist/utils/getEffectiveScrollbarStyle.js +45 -0
  335. package/dist/utils/getEffectiveScrollbarStyle.js.map +1 -0
  336. package/dist/vscode.html-custom-data.json +40 -15
  337. package/dist/web-types.json +73 -27
  338. package/package.json +7 -7
  339. package/src/Accordion.ts +38 -31
  340. package/src/AccordionItem.ts +23 -27
  341. package/src/AccordionItemTemplate.tsx +54 -0
  342. package/src/AccordionTemplate.tsx +37 -0
  343. package/src/AssetsVariables.ts +5 -1
  344. package/src/Avatar.ts +9 -11
  345. package/src/AvatarTemplate.tsx +22 -0
  346. package/src/Badge.ts +8 -12
  347. package/src/BadgeTemplate.tsx +22 -0
  348. package/src/Carousel.ts +30 -24
  349. package/src/CarouselTemplate.tsx +56 -0
  350. package/src/ContactItemTemplate.tsx +2 -1
  351. package/src/CountrySelector.ts +9 -10
  352. package/src/Divider.ts +13 -5
  353. package/src/DividerTemplate.tsx +11 -0
  354. package/src/Dropdown.ts +2 -1
  355. package/src/FilterMenu.ts +15 -18
  356. package/src/HeroBanner.hbs +1 -0
  357. package/src/List.ts +1 -1
  358. package/src/MastheadCountrySelector.hbs +5 -9
  359. package/src/MastheadCountrySelector.ts +19 -0
  360. package/src/MastheadMenu.hbs +3 -3
  361. package/src/MastheadMenu.ts +10 -3
  362. package/src/MastheadMobileMenu.hbs +1 -2
  363. package/src/MastheadMobileMenu.ts +7 -3
  364. package/src/MastheadShell.hbs +29 -29
  365. package/src/MastheadShell.ts +65 -16
  366. package/src/Modal.ts +2 -2
  367. package/src/Search.hbs +1 -1
  368. package/src/Search.ts +5 -4
  369. package/src/SearchableListBase.hbs +7 -1
  370. package/src/SearchableListBase.ts +65 -9
  371. package/src/SecondaryNavigation.ts +1 -1
  372. package/src/SecondaryNavigationItem.ts +1 -2
  373. package/src/SegmentedButton.ts +7 -4
  374. package/src/SelectBox.ts +13 -19
  375. package/src/TabNavigation.ts +13 -0
  376. package/src/Table.ts +1 -1
  377. package/src/TextArea.ts +1 -1
  378. package/src/generated/i18n/i18n-defaults.ts +2 -2
  379. package/src/generated/json-imports/Themes-fetch.ts +1 -1
  380. package/src/generated/json-imports/Themes-node.ts +1 -1
  381. package/src/generated/json-imports/Themes.ts +1 -1
  382. package/src/generated/json-imports/i18n-fetch.ts +1 -1
  383. package/src/generated/json-imports/i18n-node.ts +1 -1
  384. package/src/generated/json-imports/i18n.ts +1 -1
  385. package/src/generated/templates/HeroBannerTemplate.lit.ts +1 -1
  386. package/src/generated/templates/MastheadCountrySelectorTemplate.lit.ts +3 -3
  387. package/src/generated/templates/MastheadMenuTemplate.lit.ts +3 -3
  388. package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +1 -1
  389. package/src/generated/templates/MastheadShellTemplate.lit.ts +1 -1
  390. package/src/generated/templates/SearchableListBaseTemplate.lit.ts +2 -2
  391. package/src/generated/themes/Accordion.css.ts +2 -2
  392. package/src/generated/themes/AccordionItem.css.ts +2 -2
  393. package/src/generated/themes/Avatar.css.ts +2 -2
  394. package/src/generated/themes/Badge.css.ts +2 -2
  395. package/src/generated/themes/Breadcrumbs.css.ts +2 -2
  396. package/src/generated/themes/BreadcrumbsPopover.css.ts +2 -2
  397. package/src/generated/themes/Button.css.ts +2 -2
  398. package/src/generated/themes/Carousel.css.ts +2 -2
  399. package/src/generated/themes/Checkbox.css.ts +2 -2
  400. package/src/generated/themes/Contact.css.ts +2 -2
  401. package/src/generated/themes/ContactItem.css.ts +2 -2
  402. package/src/generated/themes/ControlButton.css.ts +2 -2
  403. package/src/generated/themes/CountrySelector.css.ts +3 -3
  404. package/src/generated/themes/DatePicker.css.ts +2 -2
  405. package/src/generated/themes/DatePickerPopover.css.ts +2 -2
  406. package/src/generated/themes/Divider.css.ts +2 -2
  407. package/src/generated/themes/Dropdown.css.ts +2 -2
  408. package/src/generated/themes/EventRibbon.css.ts +2 -2
  409. package/src/generated/themes/FilterMenu.css.ts +2 -2
  410. package/src/generated/themes/Footer.css.ts +2 -2
  411. package/src/generated/themes/HeroBanner.css.ts +2 -2
  412. package/src/generated/themes/InputGroup.css.ts +2 -2
  413. package/src/generated/themes/Link.css.ts +2 -2
  414. package/src/generated/themes/List.css.ts +2 -2
  415. package/src/generated/themes/ListGroupHeader.css.ts +2 -2
  416. package/src/generated/themes/ListItem.css.ts +2 -2
  417. package/src/generated/themes/MastheadCountrySelector.css.ts +3 -3
  418. package/src/generated/themes/MastheadItem.css.ts +3 -3
  419. package/src/generated/themes/MastheadMenu.css.ts +2 -2
  420. package/src/generated/themes/MastheadMenuItem.css.ts +3 -3
  421. package/src/generated/themes/MastheadMobileMenu.css.ts +3 -3
  422. package/src/generated/themes/MastheadProfileMenu.css.ts +2 -2
  423. package/src/generated/themes/MastheadShell.css.ts +3 -3
  424. package/src/generated/themes/MediaPlayer.css.ts +2 -2
  425. package/src/generated/themes/MediaPlayerYoutube.css.ts +2 -2
  426. package/src/generated/themes/MessageStrip.css.ts +2 -2
  427. package/src/generated/themes/Modal.css.ts +2 -2
  428. package/src/generated/themes/Pagination.css.ts +2 -2
  429. package/src/generated/themes/PhoneNumberField.css.ts +2 -2
  430. package/src/generated/themes/ProgressBar.css.ts +2 -2
  431. package/src/generated/themes/Quote.css.ts +2 -2
  432. package/src/generated/themes/RadioButton.css.ts +2 -2
  433. package/src/generated/themes/RatingBar.css.ts +2 -2
  434. package/src/generated/themes/RatingIndicator.css.ts +3 -3
  435. package/src/generated/themes/Review.css.ts +2 -2
  436. package/src/generated/themes/ReviewItem.css.ts +2 -2
  437. package/src/generated/themes/Search.css.ts +3 -3
  438. package/src/generated/themes/SearchSuggestions.css.ts +2 -2
  439. package/src/generated/themes/SearchableList.css.ts +3 -3
  440. package/src/generated/themes/SecondaryNavigation.css.ts +2 -2
  441. package/src/generated/themes/SecondaryNavigationItem.css.ts +2 -2
  442. package/src/generated/themes/SecondaryNavigationSubItem.css.ts +2 -2
  443. package/src/generated/themes/SegmentedButton.css.ts +2 -2
  444. package/src/generated/themes/SegmentedButtonItem.css.ts +3 -3
  445. package/src/generated/themes/SelectBox.css.ts +2 -2
  446. package/src/generated/themes/SideNavigation.css.ts +2 -2
  447. package/src/generated/themes/SideNavigationGroup.css.ts +2 -2
  448. package/src/generated/themes/SideNavigationItem.css.ts +2 -2
  449. package/src/generated/themes/SideNavigationMobile.css.ts +2 -2
  450. package/src/generated/themes/SideNavigationMobileDropdown.css.ts +2 -2
  451. package/src/generated/themes/SideNavigationSubItem.css.ts +2 -2
  452. package/src/generated/themes/Slider.css.ts +3 -3
  453. package/src/generated/themes/StatusBadge.css.ts +2 -2
  454. package/src/generated/themes/StatusMessage.css.ts +2 -2
  455. package/src/generated/themes/StepInput.css.ts +2 -2
  456. package/src/generated/themes/Switch.css.ts +2 -2
  457. package/src/generated/themes/TabInOverflow.css.ts +2 -2
  458. package/src/generated/themes/TabNavigation.css.ts +2 -2
  459. package/src/generated/themes/Table.css.ts +2 -2
  460. package/src/generated/themes/TableCell.css.ts +2 -2
  461. package/src/generated/themes/TableCellBase.css.ts +2 -2
  462. package/src/generated/themes/TableGroupRow.css.ts +2 -2
  463. package/src/generated/themes/TableHeaderCell.css.ts +2 -2
  464. package/src/generated/themes/TableRowBase.css.ts +2 -2
  465. package/src/generated/themes/Tag.css.ts +2 -2
  466. package/src/generated/themes/TagGroup.css.ts +2 -2
  467. package/src/generated/themes/TextArea.css.ts +3 -3
  468. package/src/generated/themes/TextField.css.ts +2 -2
  469. package/src/generated/themes/Tile.css.ts +2 -2
  470. package/src/generated/themes/Toast.css.ts +2 -2
  471. package/src/generated/themes/Tooltip.css.ts +2 -2
  472. package/src/generated/themes/TruncatedText.css.ts +2 -2
  473. package/src/generated/themes/Upload.css.ts +2 -2
  474. package/src/generated/themes/UploadItem.css.ts +2 -2
  475. package/src/generated/themes/Wizard.css.ts +2 -2
  476. package/src/generated/themes/WizardTab.css.ts +2 -2
  477. package/src/i18n/messagebundle.properties +3 -0
  478. package/src/i18n/messagebundle_en.properties +1 -0
  479. package/src/themes/CountrySelector.css +11 -0
  480. package/src/themes/List.css +1 -0
  481. package/src/themes/MastheadCountrySelector.css +11 -0
  482. package/src/themes/MastheadItem.css +5 -2
  483. package/src/themes/MastheadMenuItem.css +5 -0
  484. package/src/themes/MastheadMobileMenu.css +1 -0
  485. package/src/themes/MastheadShell.css +4 -4
  486. package/src/themes/Search.css +3 -1
  487. package/src/themes/SearchableList.css +15 -0
  488. package/src/themes/SegmentedButtonItem.css +2 -2
  489. package/src/themes/TextArea.css +0 -7
  490. package/src/types/SearchableListBase.ts +6 -0
  491. package/src/utils/getEffectiveScrollbarStyle.ts +48 -0
  492. package/dist/assets/InputSuggestions-RQHqFxZ9.js +0 -2
  493. package/dist/assets/bundle-C9ZlnwwH.css +0 -1
  494. package/dist/assets/bundle.esm-DGH8Pvav.js +0 -399
  495. package/dist/assets/messagebundle_en-DXEe5nWA.js +0 -1
  496. package/dist/assets/parameters-bundle.css-1GGBOW8m.js +0 -2
  497. package/dist/assets/parameters-bundle.css-A9eeRg2R.js +0 -2
  498. package/dist/assets/parameters-bundle.css-COBI_9-U.js +0 -2
  499. package/dist/assets/parameters-bundle.css-CgAoZ-Ir.js +0 -2
  500. package/dist/assets/parameters-bundle.css-DuFHHRNK.js +0 -2
  501. package/dist/assets/parameters-bundle.css-Pf68NO0T.js +0 -2
  502. package/dist/assets/parameters-bundle.css-aX_t_-9o.js +0 -2
  503. package/dist/assets/parameters-bundle.css-rNSryFKH.js +0 -2
  504. package/dist/generated/templates/AccordionItemTemplate.lit.d.ts +0 -3
  505. package/dist/generated/templates/AccordionItemTemplate.lit.js +0 -8
  506. package/dist/generated/templates/AccordionItemTemplate.lit.js.map +0 -1
  507. package/dist/generated/templates/AccordionTemplate.lit.d.ts +0 -3
  508. package/dist/generated/templates/AccordionTemplate.lit.js +0 -10
  509. package/dist/generated/templates/AccordionTemplate.lit.js.map +0 -1
  510. package/dist/generated/templates/AvatarTemplate.lit.d.ts +0 -3
  511. package/dist/generated/templates/AvatarTemplate.lit.js +0 -9
  512. package/dist/generated/templates/AvatarTemplate.lit.js.map +0 -1
  513. package/dist/generated/templates/BadgeTemplate.lit.d.ts +0 -3
  514. package/dist/generated/templates/BadgeTemplate.lit.js +0 -9
  515. package/dist/generated/templates/BadgeTemplate.lit.js.map +0 -1
  516. package/dist/generated/templates/CarouselTemplate.lit.d.ts +0 -3
  517. package/dist/generated/templates/CarouselTemplate.lit.js +0 -10
  518. package/dist/generated/templates/CarouselTemplate.lit.js.map +0 -1
  519. package/dist/generated/templates/DividerTemplate.lit.d.ts +0 -3
  520. package/dist/generated/templates/DividerTemplate.lit.js +0 -7
  521. package/dist/generated/templates/DividerTemplate.lit.js.map +0 -1
  522. package/src/Accordion.hbs +0 -25
  523. package/src/AccordionItem.hbs +0 -37
  524. package/src/Avatar.hbs +0 -19
  525. package/src/Badge.hbs +0 -16
  526. package/src/Carousel.hbs +0 -45
  527. package/src/Divider.hbs +0 -1
  528. package/src/generated/templates/AccordionItemTemplate.lit.ts +0 -12
  529. package/src/generated/templates/AccordionTemplate.lit.ts +0 -14
  530. package/src/generated/templates/AvatarTemplate.lit.ts +0 -13
  531. package/src/generated/templates/BadgeTemplate.lit.ts +0 -13
  532. package/src/generated/templates/CarouselTemplate.lit.ts +0 -14
  533. package/src/generated/templates/DividerTemplate.lit.ts +0 -11
@@ -46,6 +46,17 @@ type UDExMastheadShellAnalyticsNameEventDetail = {
46
46
  analyticsName: AnalyticsName,
47
47
  }
48
48
 
49
+ export enum UDExMastheadVariable {
50
+ mobileMenuHeight = "--udex-masthead-shell-mobile-menu-height",
51
+ itemButtonIconSize = "--udex-masthead-item-button-icon-size",
52
+ itemArrowIconSize = "--udex-masthead-item-arrow-icon-size",
53
+ rightMenuPadding = "--udex-masthead-right-menu-padding",
54
+ exploreMargin = "--udex-masthead-shell-explore-margin",
55
+ itemIconGap = "--udex-masthead-shell-item-icon-gap",
56
+ mastheadHeight = "--udex-masthead-shell-height",
57
+ itemGap = "--udex-masthead-shell-item-gap",
58
+ }
59
+
49
60
  /**
50
61
  * @class
51
62
  *
@@ -453,6 +464,7 @@ class UDExMastheadShell extends UI5Element {
453
464
  _handleResizeBound: ResizeObserverCallback;
454
465
  _rootHolder!: HTMLElement | null | undefined;
455
466
  _shouldHandleResize!: boolean;
467
+ _isVisible!: boolean;
456
468
 
457
469
  constructor() {
458
470
  super();
@@ -477,6 +489,8 @@ class UDExMastheadShell extends UI5Element {
477
489
  if (this._closeBtnClicked) {
478
490
  this.focusSearchBtn();
479
491
  }
492
+
493
+ this.updateVisibility();
480
494
  }
481
495
 
482
496
  onEnterDOM(): void {
@@ -526,6 +540,8 @@ class UDExMastheadShell extends UI5Element {
526
540
  } else {
527
541
  this.removeMobileMode();
528
542
  }
543
+
544
+ this._isVisible = true;
529
545
  }
530
546
  }
531
547
 
@@ -721,26 +737,40 @@ class UDExMastheadShell extends UI5Element {
721
737
  const itemsIcon = [...this.shadowRoot!.querySelectorAll<HTMLDivElement>(".udex-masthead-shell__item_icon")];
722
738
  const itemIconWidths = itemsIcon.length * this.getItemIconWidth();
723
739
  const itemIconGaps = itemsIcon.length * this.getItemIconGap();
724
- const exploreSAPWidth = this.hasExploreSAP ? this.getItemWidth(this.exploreSAP[0]) : 0;
740
+ const exploreItem = this.exploreSAP[0];
741
+ const exploreItemIconWidth = exploreItem.hasArrowDown ? this.getItemArrowIconWidth() : 0;
742
+ const exploreSAPWidth = this.hasExploreSAP ? this.getItemWidth(exploreItem) : 0;
725
743
  const rightMenuGaps = this.getRightMenuGap() + this.getExploreSapBtnGap() + itemIconGaps;
726
- return exploreSAPWidth + itemIconWidths + rightMenuGaps;
744
+ return exploreSAPWidth + exploreItemIconWidth + itemIconWidths + rightMenuGaps;
727
745
  }
728
746
 
729
- getItemIconWidth(): number {
747
+ getItemIconSize(cssVariableName: string): number {
730
748
  const item = this.querySelector("[udex-masthead-item]");
731
749
 
732
- if (!item) { return 0; }
750
+ if (!item) {
751
+ return 0;
752
+ }
733
753
 
734
754
  const style = window.getComputedStyle(item);
735
- const itemIconWidthVar = style.getPropertyValue("--udex-masthead-item-button-icon-size");
736
- return parseInt(itemIconWidthVar);
755
+ const iconSizeVar = style.getPropertyValue(cssVariableName);
756
+ return parseInt(iconSizeVar);
757
+ }
758
+
759
+ getItemIconWidth(): number {
760
+ return this.getItemIconSize(UDExMastheadVariable.itemButtonIconSize);
761
+ }
762
+
763
+ getItemArrowIconWidth(): number {
764
+ return this.getItemIconSize(UDExMastheadVariable.itemArrowIconSize);
737
765
  }
738
766
 
739
767
  getMainMenuWidth(): number {
740
768
  const mainItems = this.getSlottedNodes("menuItems");
741
- const gapItemVar = this.getRootVar("--udex-masthead-shell-item-gap");
769
+ const gapItemVar = this.getRootVar(UDExMastheadVariable.itemGap);
742
770
  return mainItems.reduce((accumulatedWidth, item, index) => {
743
- return accumulatedWidth + this.getItemWidth(item as UDExMastheadItem) + (index && parseInt(gapItemVar));
771
+ const mainItem = item as UDExMastheadItem;
772
+ const arrowIconWidth = mainItem.hasArrowDown ? this.getItemArrowIconWidth() : 0;
773
+ return accumulatedWidth + this.getItemWidth(mainItem) + (index && parseInt(gapItemVar) + arrowIconWidth);
744
774
  }, 0);
745
775
  }
746
776
 
@@ -760,17 +790,17 @@ class UDExMastheadShell extends UI5Element {
760
790
  }
761
791
 
762
792
  getItemIconGap(): number {
763
- const gapIconItemVar = this.getRootVar("--udex-masthead-shell-item-icon-gap");
793
+ const gapIconItemVar = this.getRootVar(UDExMastheadVariable.itemIconGap);
764
794
  return parseInt(gapIconItemVar);
765
795
  }
766
796
 
767
797
  getExploreSapBtnGap(): number {
768
- const exploreSapBtnGapVar = this.getRootVar("--udex-masthead-shell-explore-margin");
798
+ const exploreSapBtnGapVar = this.getRootVar(UDExMastheadVariable.exploreMargin);
769
799
  return this.hasExploreSAP ? parseInt(exploreSapBtnGapVar) : 0;
770
800
  }
771
801
 
772
802
  getRightMenuGap(): number {
773
- const rightMenuGapVar = this.getRootVar("--udex-masthead-right-menu-padding");
803
+ const rightMenuGapVar = this.getRootVar(UDExMastheadVariable.rightMenuPadding);
774
804
  return parseInt(rightMenuGapVar);
775
805
  }
776
806
 
@@ -803,9 +833,9 @@ class UDExMastheadShell extends UI5Element {
803
833
  }
804
834
 
805
835
  setMobileMenuHeight(): void {
806
- const mastheadHeight = parseInt(window.getComputedStyle(this).getPropertyValue("--udex-masthead-shell-height"));
836
+ const mastheadHeight = parseInt(window.getComputedStyle(this).getPropertyValue(UDExMastheadVariable.mastheadHeight));
807
837
  const mobileMenuHeight = `${window.innerHeight - mastheadHeight}px`;
808
- this.style.setProperty("--udex-masthead-shell-mobile-menu-height", mobileMenuHeight);
838
+ this.style.setProperty(UDExMastheadVariable.mobileMenuHeight, mobileMenuHeight);
809
839
  }
810
840
 
811
841
  removeMobileMode(): void {
@@ -815,6 +845,10 @@ class UDExMastheadShell extends UI5Element {
815
845
  });
816
846
  }
817
847
 
848
+ updateVisibility(): void {
849
+ this.style.opacity = this.isVisible ? "1" : "0";
850
+ }
851
+
818
852
  fireMastheadEvent(eventName: keyof this["eventDetails"], e?: PointerEvent): void {
819
853
  const eventDetails = {
820
854
  analyticsName: AnalyticsName.Header,
@@ -997,17 +1031,32 @@ class UDExMastheadShell extends UI5Element {
997
1031
  return this.showSearchByDefault || this._isSearchOpened;
998
1032
  }
999
1033
 
1034
+ get isVisible(): boolean {
1035
+ return this.isMobileMenuMode || !this.menuItems.length || this._isVisible;
1036
+ }
1037
+
1000
1038
  get shouldHandleMobileView(): boolean {
1001
- return !this.isAtMostBreakpointSizeM && !this.showSearchByDefault;
1039
+ return !this.isAtMostBreakpointSizeM && this.isMainMenuVisible;
1002
1040
  }
1003
1041
 
1004
1042
  get mainNavigationAriaLabel(): string {
1005
1043
  return UDExMastheadShell.i18nBundle.getText(MAIN_LINKS);
1006
1044
  }
1007
1045
 
1046
+ get isSimpleExploreMode(): boolean {
1047
+ return !this.hasSearch && !this.hasProfile && !this.hasCart && !this.hasSupport && !this.hasCountrySelector;
1048
+ }
1049
+
1050
+ get rightMenuClass(): string {
1051
+ const root = "udex-masthead-shell__right-menu";
1052
+ const simpleExploreClass = this.isSimpleExploreMode ? `${root}_simple-explore` : "";
1053
+ return `${root} ${simpleExploreClass}`.trim();
1054
+ }
1055
+
1008
1056
  get mainClass(): string {
1009
- const coBrandWithoutNavClass = (!!this.coBrandImage && !this.menuItems.length) ? "udex-masthead-shell_co-brand-without-nav" : "";
1010
- return `udex-masthead-shell ${coBrandWithoutNavClass}`.trim();
1057
+ const root = "udex-masthead-shell";
1058
+ const coBrandWithoutNavClass = (!!this.coBrandImage && !this.menuItems.length) ? `${root}_co-brand-without-nav` : "";
1059
+ return `${root} ${coBrandWithoutNavClass}`.trim();
1011
1060
  }
1012
1061
  }
1013
1062
 
package/src/Modal.ts CHANGED
@@ -5,10 +5,10 @@ import Dialog from "@ui5/webcomponents/dist/Dialog.js";
5
5
  import Popup from "@ui5/webcomponents/dist/Popup.js";
6
6
 
7
7
  // Styles
8
- import getEffectiveScrollbarStyle from "@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js";
9
8
  import PopupsCommonCss from "@ui5/webcomponents/dist/generated/themes/PopupsCommon.css.js";
10
9
  import dialogCSS from "@ui5/webcomponents/dist/generated/themes/Dialog.css.js";
11
10
  import ModalCss from "./generated/themes/Modal.css.js";
11
+ import getEffectiveScrollbarStyle from "./utils/getEffectiveScrollbarStyle.js";
12
12
 
13
13
  export enum UDExModalType {
14
14
  default = "default",
@@ -32,10 +32,10 @@ export enum UDExModalType {
32
32
  renderer: jsxRenderer,
33
33
  styles: [
34
34
  Popup.styles,
35
- getEffectiveScrollbarStyle(),
36
35
  PopupsCommonCss,
37
36
  dialogCSS,
38
37
  ModalCss,
38
+ getEffectiveScrollbarStyle(),
39
39
  ],
40
40
  })
41
41
  class UDExModal extends Dialog {
package/src/Search.hbs CHANGED
@@ -18,7 +18,7 @@
18
18
  class="{{prefixPopoverClasses}}"
19
19
  hide-arrow
20
20
  placement="Bottom"
21
- horizontal-align="Start"
21
+ horizontal-align="Start"
22
22
  style="{{prefixPopoverStyles}}"
23
23
  @after-close="{{handleAfterClosePrefixPopover}}">
24
24
  <slot></slot>
package/src/Search.ts CHANGED
@@ -19,7 +19,6 @@ import {
19
19
  isSpace,
20
20
  } from "@ui5/webcomponents-base/dist/Keys.js";
21
21
  import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
22
- import Button from "@ui5/webcomponents/dist/Button.js";
23
22
  import Icon from "@ui5/webcomponents/dist/Icon.js";
24
23
  import List from "./List.js";
25
24
  import ControlButton from "./ControlButton.js";
@@ -45,13 +44,15 @@ import {
45
44
  OF,
46
45
  } from "./generated/i18n/i18n-defaults.js";
47
46
  import type SearchInputSuggestion from "./features/SearchSuggestionsPopover.js";
47
+ import retryUntilSuccessful from "./utils/retryUntilSuccessful.js";
48
+ import UDExButton from "./Button.js";
48
49
 
49
50
  import SearchTemplate from "./generated/templates/SearchTemplate.lit.js";
50
51
 
51
52
  // Styles
52
53
  import SearchCss from "./generated/themes/Search.css.js";
53
54
  import SearchSuggestionsCss from "./generated/themes/SearchSuggestions.css.js";
54
- import retryUntilSuccessful from "./utils/retryUntilSuccessful.js";
55
+ import getEffectiveScrollbarStyle from "./utils/getEffectiveScrollbarStyle.js";
55
56
 
56
57
  const SearchIcon: string = "sap-icon://search";
57
58
 
@@ -129,11 +130,11 @@ export type UDExSearchKeydownEventDetail = {
129
130
  @customElement({
130
131
  tag: "udex-search",
131
132
  renderer: litRender,
132
- styles: [SearchCss, SearchSuggestionsCss],
133
+ styles: [SearchCss, SearchSuggestionsCss, getEffectiveScrollbarStyle()],
133
134
  template: SearchTemplate,
134
135
  get dependencies() {
135
136
  const Suggestion = getFeature<typeof SearchInputSuggestion>("SearchInputSuggestion");
136
- return ([ControlButton, Button, Icon, List, Popover] as Array<typeof UI5Element>).concat(Suggestion ? [...Suggestion.dependencies] : []);
137
+ return ([ControlButton, UDExButton, Icon, List, Popover] as Array<typeof UI5Element>).concat(Suggestion ? [...Suggestion.dependencies] : []);
137
138
  },
138
139
  })
139
140
 
@@ -8,13 +8,19 @@
8
8
  non-interactive-submit-button
9
9
  show-submit-button>
10
10
  </udex-search>
11
+ <span
12
+ aria-live="polite"
13
+ aria-atomic="true"
14
+ class="hidden">
15
+ {{_accSearchResultInfo}}
16
+ </span>
11
17
  {{/if}}
12
18
  {{#if isListEmpty}}
13
19
  <div class="udex-no-result"><span>{{getNoResultText}}&lrm;</span></div>
14
20
  {{else if busy}}
15
21
  <ui5-busy-indicator
16
22
  class="udex-busy-indicator"
17
- size="Medium"
23
+ size="M"
18
24
  delay="{{busyDelay}}"
19
25
  active>
20
26
  </ui5-busy-indicator>
@@ -4,18 +4,17 @@ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
4
4
  import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
5
5
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
6
6
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
7
- import {
8
- isDown, isUp,
9
- } from "@ui5/webcomponents-base/dist/Keys.js";
7
+ import type Popover from "@ui5/webcomponents/dist/Popover.js";
8
+ import { isDown, isUp } from "@ui5/webcomponents-base/dist/Keys.js";
10
9
  import { cleanLabel } from "./utils/listItemLabelUtils.js";
11
- import type Search from "./Search.js";
10
+ import type UDExSearch from "./Search.js";
12
11
  import type UDExListItemBase from "./ListItemBase.js";
13
12
  import type UDExListGroupHeaderBase from "./ListGroupHeaderBase.js";
14
13
  import { UDExListMode } from "./types/List.js";
15
14
  import type UDExFilterMenuItem from "./FilterMenuItem.js";
16
15
  import type { UDExProcessedItem } from "./types/SearchableListBase.js";
17
- import { SHOW_SEARCH_AFTER_COUNT } from "./types/SearchableListBase.js";
18
- import { NO_MATCHES_FOUND } from "./generated/i18n/i18n-defaults.js";
16
+ import { SHOW_SEARCH_AFTER_COUNT, UDExPopoverPart } from "./types/SearchableListBase.js";
17
+ import { NO_MATCHES_FOUND, RESULT_RETURNED } from "./generated/i18n/i18n-defaults.js";
19
18
 
20
19
  export type UDExItemFromList = UDExListItemBase | UDExListGroupHeaderBase | null | undefined;
21
20
 
@@ -88,6 +87,22 @@ export type UDExSearchableListBaseEvents = {
88
87
 
89
88
  class UDExSearchableListBase extends UI5Element {
90
89
  eventDetails!: UDExSearchableListBaseEvents;
90
+ /**
91
+ * Allows control over the height.
92
+ * @public
93
+ */
94
+ @property({ type: String })
95
+ height?: string;
96
+
97
+ /**
98
+ * Defines if page scrolling should be prevented within the list of items.
99
+ *
100
+ * @default false
101
+ * @public
102
+ */
103
+ @property({ type: Boolean })
104
+ preventPageScroll = false;
105
+
91
106
  /**
92
107
  * Defines if the component would display a loading indicator.
93
108
  *
@@ -185,6 +200,7 @@ class UDExSearchableListBase extends UI5Element {
185
200
  static i18nBundle: I18nBundle;
186
201
 
187
202
  _shouldFilterItems?: boolean;
203
+ _accSearchResultInfo?: string;
188
204
 
189
205
  constructor() {
190
206
  super();
@@ -280,6 +296,8 @@ class UDExSearchableListBase extends UI5Element {
280
296
  const searchValue: string = e.detail.value;
281
297
  this._shouldFilterItems = true;
282
298
  this._filteredItems = this.filterItems(this.getProcessedItems(), searchValue);
299
+ const items = this.getFlattenItemsArray(this._filteredItems);
300
+ this._accSearchResultInfo = items.length ? `${items.length} ${this.resultReturnedText}` : this.noMatchesFoundText;
283
301
  this.fireDecoratorEvent("change-search", { value: searchValue });
284
302
  }
285
303
 
@@ -440,12 +458,28 @@ class UDExSearchableListBase extends UI5Element {
440
458
  }
441
459
  }
442
460
 
461
+ getFlattenItemsArray(array: Array<UDExProcessedItem>): (UDExProcessedItem | UDExListItemBase)[] {
462
+ return array.flatMap(item => {
463
+ if (item.isGroup) {
464
+ return [
465
+ item,
466
+ ...item.groupItems.filter(groupItem => !groupItem.disabled),
467
+ ];
468
+ }
469
+ return item.item.disabled ? [] : [item.item];
470
+ });
471
+ }
472
+
443
473
  getCurrentIndex(item: Element): number {
444
474
  return this.getDomListItems().indexOf(item);
445
475
  }
446
476
 
447
- getSearch(): Search {
448
- return this.shadowRoot!.querySelector<Search>("[udex-search]")!;
477
+ getSearch(): UDExSearch {
478
+ return this.shadowRoot!.querySelector<UDExSearch>("[udex-search]")!;
479
+ }
480
+
481
+ getPopover(): Popover {
482
+ return this.shadowRoot!.querySelector<Popover>("[ui5-popover]")!;
449
483
  }
450
484
 
451
485
  getDomListItems(): Element[] {
@@ -480,9 +514,31 @@ class UDExSearchableListBase extends UI5Element {
480
514
  });
481
515
  }
482
516
 
517
+ getPopoverPart(part: UDExPopoverPart): HTMLElement {
518
+ return this.getPopover().shadowRoot!.querySelector<HTMLElement>(`[part=${part}]`)!;
519
+ }
520
+
521
+ _managePopupListeners(part: UDExPopoverPart, action: "addEventListener" | "removeEventListener"): void {
522
+ const element = this.getPopoverPart(part);
523
+ element?.[action]("wheel", ((e: WheelEvent) => e.preventDefault()) as EventListener);
524
+ }
525
+
526
+ _setContentHeight(): void {
527
+ const content = this.getPopoverPart(UDExPopoverPart.Content);
528
+ content.style.maxHeight = this.height || "";
529
+ }
530
+
483
531
  get getNoResultText(): string {
484
532
  const hasTextProperty = this.noResultText !== undefined && this.noResultText.length > 0;
485
- return hasTextProperty ? this.noResultText : UDExSearchableListBase.i18nBundle.getText(NO_MATCHES_FOUND);
533
+ return hasTextProperty ? this.noResultText : this.noMatchesFoundText;
534
+ }
535
+
536
+ get noMatchesFoundText(): string {
537
+ return UDExSearchableListBase.i18nBundle.getText(NO_MATCHES_FOUND);
538
+ }
539
+
540
+ get resultReturnedText(): string {
541
+ return UDExSearchableListBase.i18nBundle.getText(RESULT_RETURNED);
486
542
  }
487
543
 
488
544
  get isListEmpty(): boolean {
@@ -64,7 +64,7 @@ type UDExSecondaryNavigationHeadingClickEventDetail = {
64
64
  @customElement({
65
65
  tag: "udex-secondary-navigation",
66
66
  renderer: litRender,
67
- styles: SecondaryNavigationCss,
67
+ styles: [SecondaryNavigationCss],
68
68
  template: SecondaryNavigationTemplate,
69
69
  dependencies: [UDExSecondaryNavigationItem],
70
70
  })
@@ -15,7 +15,6 @@ import {
15
15
  isHome,
16
16
  isEnd, isTabNext, isTabPrevious,
17
17
  } from "@ui5/webcomponents-base/dist/Keys.js";
18
- import getEffectiveScrollbarStyle from "@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js";
19
18
  import type { RelativeValue } from "./utils/parseRelativeUnits.js";
20
19
  import parseRelativeUnits from "./utils/parseRelativeUnits.js";
21
20
  import UDExSecondaryNavigationSubItem from "./SecondaryNavigationSubItem.js";
@@ -63,7 +62,7 @@ export type UDExSecondaryNavigationItemSubItemClickEventDetail = {
63
62
  @customElement({
64
63
  tag: "udex-secondary-navigation-item",
65
64
  renderer: litRender,
66
- styles: [SecondaryNavigationItemCss, getEffectiveScrollbarStyle()],
65
+ styles: [SecondaryNavigationItemCss],
67
66
  template: SecondaryNavigationItemTemplate,
68
67
  dependencies: [UI5Icon, UDExSecondaryNavigationSubItem],
69
68
  })
@@ -47,15 +47,18 @@ class UDExSegmentedButton extends SegmentedButton {
47
47
  onBeforeRendering() {
48
48
  const items = this.getSlottedNodes<UDExSegmentedButtonItem>("items");
49
49
 
50
- items.forEach((item, index, arr) => {
50
+ const visibleItems = items.filter(item => !item.hidden);
51
+ let index = 1;
52
+
53
+ items.forEach(item => {
51
54
  item.size = this.size;
52
- item.posInSet = index + 1;
53
- item.sizeOfSet = arr.length;
55
+ item.posInSet = item.hidden ? undefined : index++;
56
+ item.sizeOfSet = item.hidden ? undefined : visibleItems.length;
54
57
  });
55
58
 
56
59
  this.normalizeSelection();
57
60
 
58
- this.style.setProperty(getScopedVarName("--udex-segmented-button-items-count"), `${items.length}`);
61
+ this.style.setProperty(getScopedVarName("--udex-segmented-button-items-count"), `${visibleItems.length}`);
59
62
  }
60
63
 
61
64
  _selectItem(e: MouseEvent | KeyboardEvent) {
package/src/SelectBox.ts CHANGED
@@ -40,6 +40,7 @@ import UDExValueState from "./types/common.js";
40
40
  import UDExStatusMessage from "./StatusMessage.js";
41
41
  import UDExControlButton from "./ControlButton.js";
42
42
  import { Placement } from "./types/Dropdown.js";
43
+ import { UDExPopoverPart } from "./types/SearchableListBase.js";
43
44
  import UDExTagGroup from "./TagGroup.js";
44
45
  import "@ui5/webcomponents-icons/dist/decline.js";
45
46
  import "@ui5/webcomponents-icons/dist/navigation-down-arrow.js";
@@ -51,6 +52,7 @@ import SearchableListBaseTemplate from "./generated/templates/SearchableListBase
51
52
  import SelectBoxCss from "./generated/themes/SelectBox.css.js";
52
53
  import TextFieldCss from "./generated/themes/TextField.css.js";
53
54
  import SearchableListCss from "./generated/themes/SearchableList.css.js";
55
+ import getEffectiveScrollbarStyle from "./utils/getEffectiveScrollbarStyle.js";
54
56
 
55
57
  export type SelectBoxAccessibilityAttributes = {
56
58
  controls?: string,
@@ -84,7 +86,7 @@ type UDExSelectBoxRemoveEventDetail = {
84
86
  @customElement({
85
87
  tag: "udex-select-box",
86
88
  renderer: litRender,
87
- styles: [TextFieldCss, SelectBoxCss, SearchableListCss],
89
+ styles: [TextFieldCss, SelectBoxCss, SearchableListCss, getEffectiveScrollbarStyle()],
88
90
  template: SelectBoxTemplate,
89
91
  dependencies: [
90
92
  UDExSelectBoxGroupHeader,
@@ -102,7 +104,6 @@ type UDExSelectBoxRemoveEventDetail = {
102
104
  Tokenizer,
103
105
  Token,
104
106
  Icon,
105
- UDExStatusMessage,
106
107
  Popover,
107
108
  ],
108
109
  })
@@ -155,13 +156,6 @@ class UDExSelectBox extends UDExSearchableListBase {
155
156
  @property({ type: Boolean })
156
157
  disabled!: boolean;
157
158
 
158
- /**
159
- * Allows control over the height.
160
- * @public
161
- */
162
- @property({ type: String })
163
- height?: string;
164
-
165
159
  /**
166
160
  * Defines label text for field container.
167
161
  *
@@ -371,14 +365,22 @@ class UDExSelectBox extends UDExSearchableListBase {
371
365
  }
372
366
 
373
367
  handleDropdownBeforeOpen() {
368
+ if (this.preventPageScroll) {
369
+ this._managePopupListeners(UDExPopoverPart.Header, "addEventListener");
370
+ }
371
+
374
372
  if (this.height) {
375
- const content = this._popover.shadowRoot!.querySelector("[part=content]") as HTMLElement;
376
- content.style.maxHeight = this.height;
373
+ this._setContentHeight();
377
374
  }
375
+
378
376
  this.fireDecoratorEvent("before-open");
379
377
  }
380
378
 
381
379
  handleDropdownAfterClose() {
380
+ if (this.preventPageScroll) {
381
+ this._managePopupListeners(UDExPopoverPart.Header, "removeEventListener");
382
+ }
383
+
382
384
  if (this._tokenizer?._tokensCount > 0) {
383
385
  this._tokenizer.expanded = false;
384
386
  }
@@ -592,14 +594,6 @@ class UDExSelectBox extends UDExSearchableListBase {
592
594
  this.fireDecoratorEvent("show-more");
593
595
  }
594
596
 
595
- getPopover(): Popover {
596
- return this.shadowRoot!.querySelector<Popover>("[ui5-popover]")!;
597
- }
598
-
599
- getSearch(): UDExSearch {
600
- return this.shadowRoot!.querySelector<UDExSearch>("[udex-search]")!;
601
- }
602
-
603
597
  getTrigger(): HTMLElement {
604
598
  return this.shadowRoot!.querySelector(".udex-text-field__input")!;
605
599
  }
@@ -54,6 +54,11 @@ type UDExTabNavigationClickDetail = {
54
54
  currentPage: number,
55
55
  }
56
56
 
57
+ type UDExTabContainerTabSelectEventDetail = {
58
+ tab: Tab;
59
+ tabIndex: number;
60
+ }
61
+
57
62
  /**
58
63
  * @class
59
64
  *
@@ -86,10 +91,17 @@ type UDExTabNavigationClickDetail = {
86
91
  * @public
87
92
  */
88
93
  @event("click", { bubbles: true })
94
+ /**
95
+ * Fired when a tab is selected.
96
+ *
97
+ * @public
98
+ */
99
+ @event("tab-select", { bubbles: true })
89
100
 
90
101
  class UDExTabNavigation extends UI5Element {
91
102
  eventDetails!: {
92
103
  "click": UDExTabNavigationClickDetail,
104
+ "tab-select": UDExTabContainerTabSelectEventDetail,
93
105
  };
94
106
  /**
95
107
  * Defines the size of the "More" button.
@@ -320,6 +332,7 @@ class UDExTabNavigation extends UI5Element {
320
332
  }
321
333
  });
322
334
  this.setTabsIndex(selectedTabIndex);
335
+ this.fireDecoratorEvent("tab-select", { tab: this._selectedTab, tabIndex: selectedTabIndex });
323
336
  }
324
337
 
325
338
  setItemsInHeader() {
package/src/Table.ts CHANGED
@@ -4,7 +4,6 @@ import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
4
4
  import BusyIndicator from "@ui5/webcomponents/dist/BusyIndicator.js";
5
5
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
6
6
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
7
- import getEffectiveScrollbarStyle from "@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js";
8
7
  import {
9
8
  isUp, isDown, isLeft, isRight,
10
9
  } from "@ui5/webcomponents-base/dist/Keys.js";
@@ -20,6 +19,7 @@ import TableTemplate from "./generated/templates/TableTemplate.lit.js";
20
19
 
21
20
  // Styles
22
21
  import TableCss from "./generated/themes/Table.css.js";
22
+ import getEffectiveScrollbarStyle from "./utils/getEffectiveScrollbarStyle.js";
23
23
 
24
24
  type TableBaseRow = UDExTableHeaderRow | UDExTableRow;
25
25
 
package/src/TextArea.ts CHANGED
@@ -2,7 +2,6 @@ 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
4
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
5
- import getEffectiveScrollbarStyle from "@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js";
6
5
  import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
7
6
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
8
7
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
@@ -27,6 +26,7 @@ import TextAreaTemplate from "./generated/templates/TextAreaTemplate.lit.js";
27
26
 
28
27
  // Styles
29
28
  import TextAreaCss from "./generated/themes/TextArea.css.js";
29
+ import getEffectiveScrollbarStyle from "./utils/getEffectiveScrollbarStyle.js";
30
30
 
31
31
  /**
32
32
  * @class