@sapudex/web-components 2.1.0 → 2.2.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 (321) hide show
  1. package/cypress/fixtures/footer-links.ts +221 -0
  2. package/cypress/specs/Checkbox.cy.tsx +92 -0
  3. package/cypress/specs/Footer.cy.tsx +313 -0
  4. package/cypress/specs/ListItem.cy.tsx +4 -4
  5. package/cypress/specs/PhoneNumberField.cy.tsx +2 -2
  6. package/cypress/specs/SecondaryNavigationDesktop.cy.tsx +28 -37
  7. package/cypress/specs/Slider.cy.tsx +4 -3
  8. package/cypress/specs/TextField.cy.tsx +4 -0
  9. package/cypress/specs/Tooltip.cy.tsx +26 -0
  10. package/cypress/specs/Upload.cy.tsx +3 -3
  11. package/dist/Badge.d.ts +2 -2
  12. package/dist/Badge.js +4 -4
  13. package/dist/Badge.js.map +1 -1
  14. package/dist/Breadcrumbs.d.ts +1 -0
  15. package/dist/Breadcrumbs.js +11 -1
  16. package/dist/Breadcrumbs.js.map +1 -1
  17. package/dist/Button.d.ts +12 -1
  18. package/dist/Button.js +12 -1
  19. package/dist/Button.js.map +1 -1
  20. package/dist/Checkbox.d.ts +18 -0
  21. package/dist/Checkbox.js +39 -1
  22. package/dist/Checkbox.js.map +1 -1
  23. package/dist/ControlButton.d.ts +2 -1
  24. package/dist/ControlButton.js +2 -1
  25. package/dist/ControlButton.js.map +1 -1
  26. package/dist/DatePicker.d.ts +2 -2
  27. package/dist/DatePicker.js.map +1 -1
  28. package/dist/InputGroup.d.ts +5 -2
  29. package/dist/InputGroup.js +6 -0
  30. package/dist/InputGroup.js.map +1 -1
  31. package/dist/Link.d.ts +3 -4
  32. package/dist/Link.js +4 -5
  33. package/dist/Link.js.map +1 -1
  34. package/dist/ListItem.d.ts +3 -2
  35. package/dist/ListItem.js +2 -2
  36. package/dist/ListItem.js.map +1 -1
  37. package/dist/MastheadItem.js +1 -1
  38. package/dist/MastheadItem.js.map +1 -1
  39. package/dist/MediaPlayer.d.ts +2 -1
  40. package/dist/MediaPlayer.js.map +1 -1
  41. package/dist/MediaPlayerYoutube.d.ts +2 -1
  42. package/dist/MediaPlayerYoutube.js.map +1 -1
  43. package/dist/Pagination.d.ts +1 -1
  44. package/dist/Pagination.js.map +1 -1
  45. package/dist/PasswordField.d.ts +10 -0
  46. package/dist/PasswordField.js +14 -0
  47. package/dist/PasswordField.js.map +1 -1
  48. package/dist/PhoneNumberField.d.ts +6 -2
  49. package/dist/PhoneNumberField.js +22 -2
  50. package/dist/PhoneNumberField.js.map +1 -1
  51. package/dist/ProgressBar.d.ts +2 -2
  52. package/dist/ProgressBar.js +6 -6
  53. package/dist/ProgressBar.js.map +1 -1
  54. package/dist/RadioButton.d.ts +3 -2
  55. package/dist/RadioButton.js +7 -6
  56. package/dist/RadioButton.js.map +1 -1
  57. package/dist/Search.d.ts +0 -1
  58. package/dist/Search.js +1 -3
  59. package/dist/Search.js.map +1 -1
  60. package/dist/SecondaryNavigation.d.ts +4 -1
  61. package/dist/SecondaryNavigation.js +38 -10
  62. package/dist/SecondaryNavigation.js.map +1 -1
  63. package/dist/SecondaryNavigationItem.d.ts +10 -0
  64. package/dist/SecondaryNavigationItem.js +19 -0
  65. package/dist/SecondaryNavigationItem.js.map +1 -1
  66. package/dist/SecondaryNavigationItemBase.d.ts +1 -0
  67. package/dist/SecondaryNavigationItemBase.js +4 -0
  68. package/dist/SecondaryNavigationItemBase.js.map +1 -1
  69. package/dist/SecondaryNavigationSubItem.d.ts +0 -1
  70. package/dist/SecondaryNavigationSubItem.js +0 -4
  71. package/dist/SecondaryNavigationSubItem.js.map +1 -1
  72. package/dist/SegmentedButton.d.ts +1 -1
  73. package/dist/SegmentedButton.js +1 -1
  74. package/dist/SegmentedButton.js.map +1 -1
  75. package/dist/SegmentedButtonItem.d.ts +1 -1
  76. package/dist/SegmentedButtonItem.js +2 -2
  77. package/dist/SegmentedButtonItem.js.map +1 -1
  78. package/dist/StatusBadge.d.ts +8 -3
  79. package/dist/StatusBadge.js +9 -1
  80. package/dist/StatusBadge.js.map +1 -1
  81. package/dist/StepInput.d.ts +3 -3
  82. package/dist/StepInput.js.map +1 -1
  83. package/dist/TableCellBase.d.ts +2 -2
  84. package/dist/TableCellBase.js.map +1 -1
  85. package/dist/Tag.d.ts +2 -2
  86. package/dist/Tag.js +4 -4
  87. package/dist/Tag.js.map +1 -1
  88. package/dist/TextArea.d.ts +2 -2
  89. package/dist/TextArea.js +9 -9
  90. package/dist/TextArea.js.map +1 -1
  91. package/dist/TextField.d.ts +10 -2
  92. package/dist/TextField.js +20 -5
  93. package/dist/TextField.js.map +1 -1
  94. package/dist/Toast.js +1 -1
  95. package/dist/Toast.js.map +1 -1
  96. package/dist/Tooltip.d.ts +5 -0
  97. package/dist/Tooltip.js +11 -1
  98. package/dist/Tooltip.js.map +1 -1
  99. package/dist/Upload.d.ts +1 -1
  100. package/dist/Upload.js +1 -1
  101. package/dist/Upload.js.map +1 -1
  102. package/dist/UploadItem.d.ts +3 -3
  103. package/dist/UploadItem.js +9 -9
  104. package/dist/UploadItem.js.map +1 -1
  105. package/dist/assets/InputSuggestions-KGCQrV_T.js +2 -0
  106. package/dist/assets/{ListItemStandardExpandableTextTemplate-BymOTLVD.js → ListItemStandardExpandableTextTemplate-D4zLIdLd.js} +2 -2
  107. package/dist/assets/bundle-C9ZlnwwH.css +1 -0
  108. package/dist/assets/bundle.esm-Diw1zQ-o.js +384 -0
  109. package/dist/assets/parameters-bundle.css-1GGBOW8m.js +2 -0
  110. package/dist/assets/parameters-bundle.css-A9eeRg2R.js +2 -0
  111. package/dist/assets/parameters-bundle.css-COBI_9-U.js +2 -0
  112. package/dist/assets/parameters-bundle.css-CgAoZ-Ir.js +2 -0
  113. package/dist/assets/parameters-bundle.css-DuFHHRNK.js +2 -0
  114. package/dist/assets/parameters-bundle.css-Pf68NO0T.js +2 -0
  115. package/dist/assets/parameters-bundle.css-aX_t_-9o.js +2 -0
  116. package/dist/assets/parameters-bundle.css-rNSryFKH.js +2 -0
  117. package/dist/css/themes/Breadcrumbs.css +1 -1
  118. package/dist/css/themes/Button.css +1 -1
  119. package/dist/css/themes/Checkbox.css +1 -1
  120. package/dist/css/themes/ListItem.css +1 -1
  121. package/dist/css/themes/MastheadShell.css +1 -1
  122. package/dist/css/themes/Modal.css +1 -1
  123. package/dist/css/themes/RadioButton.css +1 -1
  124. package/dist/css/themes/RatingIndicator.css +1 -1
  125. package/dist/css/themes/Search.css +1 -1
  126. package/dist/css/themes/SideNavigationItem.css +1 -1
  127. package/dist/css/themes/SideNavigationSubItem.css +1 -1
  128. package/dist/css/themes/Slider.css +1 -1
  129. package/dist/css/themes/Tooltip.css +1 -1
  130. package/dist/css/themes/WizardTab.css +1 -1
  131. package/dist/custom-elements-internal.json +201 -38
  132. package/dist/custom-elements.json +173 -36
  133. package/dist/generated/json-imports/Themes-node.d.ts +1 -0
  134. package/dist/generated/json-imports/Themes-node.js +19 -0
  135. package/dist/generated/json-imports/Themes-node.js.map +1 -0
  136. package/dist/generated/json-imports/i18n-node.d.ts +1 -0
  137. package/dist/generated/json-imports/i18n-node.js +82 -0
  138. package/dist/generated/json-imports/i18n-node.js.map +1 -0
  139. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +1 -1
  140. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js.map +1 -1
  141. package/dist/generated/templates/BreadcrumbsTemplate.lit.js +1 -1
  142. package/dist/generated/templates/BreadcrumbsTemplate.lit.js.map +1 -1
  143. package/dist/generated/templates/FilterMenuTemplate.lit.js +1 -1
  144. package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
  145. package/dist/generated/templates/PasswordFieldTemplate.lit.js +1 -1
  146. package/dist/generated/templates/PasswordFieldTemplate.lit.js.map +1 -1
  147. package/dist/generated/templates/SearchTemplate.lit.js +3 -3
  148. package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
  149. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +2 -2
  150. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -1
  151. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +1 -1
  152. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
  153. package/dist/generated/templates/TextFieldTemplate.lit.js +1 -1
  154. package/dist/generated/templates/TextFieldTemplate.lit.js.map +1 -1
  155. package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
  156. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  157. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  158. package/dist/generated/themes/Button.css.d.ts +1 -1
  159. package/dist/generated/themes/Button.css.js +1 -1
  160. package/dist/generated/themes/Button.css.js.map +1 -1
  161. package/dist/generated/themes/Checkbox.css.d.ts +1 -1
  162. package/dist/generated/themes/Checkbox.css.js +1 -1
  163. package/dist/generated/themes/Checkbox.css.js.map +1 -1
  164. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  165. package/dist/generated/themes/ListItem.css.js +1 -1
  166. package/dist/generated/themes/ListItem.css.js.map +1 -1
  167. package/dist/generated/themes/MastheadShell.css.d.ts +1 -1
  168. package/dist/generated/themes/MastheadShell.css.js +1 -1
  169. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  170. package/dist/generated/themes/Modal.css.d.ts +1 -1
  171. package/dist/generated/themes/Modal.css.js +1 -1
  172. package/dist/generated/themes/Modal.css.js.map +1 -1
  173. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  174. package/dist/generated/themes/RadioButton.css.js +1 -1
  175. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  176. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  177. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  178. package/dist/generated/themes/RatingIndicator.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/SideNavigationItem.css.d.ts +1 -1
  183. package/dist/generated/themes/SideNavigationItem.css.js +1 -1
  184. package/dist/generated/themes/SideNavigationItem.css.js.map +1 -1
  185. package/dist/generated/themes/SideNavigationSubItem.css.d.ts +1 -1
  186. package/dist/generated/themes/SideNavigationSubItem.css.js +1 -1
  187. package/dist/generated/themes/SideNavigationSubItem.css.js.map +1 -1
  188. package/dist/generated/themes/Slider.css.d.ts +1 -1
  189. package/dist/generated/themes/Slider.css.js +1 -1
  190. package/dist/generated/themes/Slider.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/generated/themes/WizardTab.css.d.ts +1 -1
  195. package/dist/generated/themes/WizardTab.css.js +1 -1
  196. package/dist/generated/themes/WizardTab.css.js.map +1 -1
  197. package/dist/types/ButtonAccessibleRole.d.ts +8 -0
  198. package/dist/types/ButtonAccessibleRole.js +10 -0
  199. package/dist/types/ButtonAccessibleRole.js.map +1 -0
  200. package/dist/types/{Button.d.ts → ButtonDesign.d.ts} +1 -15
  201. package/dist/types/ButtonDesign.js +16 -0
  202. package/dist/types/ButtonDesign.js.map +1 -0
  203. package/dist/types/ButtonSize.d.ts +6 -0
  204. package/dist/types/ButtonSize.js +8 -0
  205. package/dist/types/ButtonSize.js.map +1 -0
  206. package/dist/types/ControlButtonDesign.d.ts +10 -0
  207. package/dist/types/ControlButtonDesign.js +12 -0
  208. package/dist/types/ControlButtonDesign.js.map +1 -0
  209. package/dist/types/ProgressBar.d.ts +1 -1
  210. package/dist/types/ProgressBar.js +1 -1
  211. package/dist/types/ProgressBar.js.map +1 -1
  212. package/dist/types/common.d.ts +1 -1
  213. package/dist/types/common.js +1 -1
  214. package/dist/types/common.js.map +1 -1
  215. package/dist/vscode.html-custom-data.json +26 -10
  216. package/dist/web-types.json +43 -13
  217. package/package.json +8 -8
  218. package/src/Badge.ts +4 -4
  219. package/src/Breadcrumbs.hbs +7 -10
  220. package/src/Breadcrumbs.ts +14 -1
  221. package/src/BreadcrumbsPopover.hbs +3 -1
  222. package/src/Button.ts +12 -1
  223. package/src/Checkbox.ts +51 -0
  224. package/src/ControlButton.ts +2 -1
  225. package/src/DatePicker.ts +2 -2
  226. package/src/FilterMenu.hbs +1 -0
  227. package/src/InputGroup.ts +5 -2
  228. package/src/Link.ts +4 -5
  229. package/src/ListItem.ts +4 -4
  230. package/src/MastheadItem.ts +1 -1
  231. package/src/MediaPlayer.ts +3 -1
  232. package/src/MediaPlayerYoutube.ts +4 -2
  233. package/src/Pagination.ts +1 -1
  234. package/src/PasswordField.hbs +1 -0
  235. package/src/PasswordField.ts +14 -0
  236. package/src/PhoneNumberField.ts +25 -4
  237. package/src/ProgressBar.ts +6 -6
  238. package/src/RadioButton.ts +7 -6
  239. package/src/Search.hbs +3 -2
  240. package/src/Search.ts +1 -3
  241. package/src/SecondaryNavigation.hbs +1 -0
  242. package/src/SecondaryNavigation.ts +41 -12
  243. package/src/SecondaryNavigationItem.hbs +2 -1
  244. package/src/SecondaryNavigationItem.ts +31 -0
  245. package/src/SecondaryNavigationItemBase.ts +3 -0
  246. package/src/SecondaryNavigationSubItem.ts +0 -3
  247. package/src/SegmentedButton.ts +1 -1
  248. package/src/SegmentedButtonItem.ts +2 -2
  249. package/src/StatusBadge.ts +8 -3
  250. package/src/StepInput.ts +3 -3
  251. package/src/TableCellBase.ts +2 -2
  252. package/src/Tag.ts +4 -4
  253. package/src/TextArea.ts +9 -9
  254. package/src/TextField.hbs +2 -0
  255. package/src/TextField.ts +21 -5
  256. package/src/Toast.ts +1 -1
  257. package/src/Tooltip.ts +19 -0
  258. package/src/Upload.ts +1 -1
  259. package/src/UploadItem.ts +9 -9
  260. package/src/generated/json-imports/Themes-node.ts +21 -0
  261. package/src/generated/json-imports/i18n-node.ts +85 -0
  262. package/src/generated/templates/BreadcrumbsPopoverTemplate.lit.ts +1 -1
  263. package/src/generated/templates/BreadcrumbsTemplate.lit.ts +1 -1
  264. package/src/generated/templates/FilterMenuTemplate.lit.ts +1 -1
  265. package/src/generated/templates/PasswordFieldTemplate.lit.ts +1 -1
  266. package/src/generated/templates/SearchTemplate.lit.ts +3 -3
  267. package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +2 -2
  268. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +1 -1
  269. package/src/generated/templates/TextFieldTemplate.lit.ts +1 -1
  270. package/src/generated/themes/Breadcrumbs.css.ts +1 -1
  271. package/src/generated/themes/Button.css.ts +1 -1
  272. package/src/generated/themes/Checkbox.css.ts +1 -1
  273. package/src/generated/themes/ListItem.css.ts +1 -1
  274. package/src/generated/themes/MastheadShell.css.ts +1 -1
  275. package/src/generated/themes/Modal.css.ts +1 -1
  276. package/src/generated/themes/RadioButton.css.ts +1 -1
  277. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  278. package/src/generated/themes/Search.css.ts +1 -1
  279. package/src/generated/themes/SideNavigationItem.css.ts +1 -1
  280. package/src/generated/themes/SideNavigationSubItem.css.ts +1 -1
  281. package/src/generated/themes/Slider.css.ts +1 -1
  282. package/src/generated/themes/Tooltip.css.ts +1 -1
  283. package/src/generated/themes/WizardTab.css.ts +1 -1
  284. package/src/themes/Breadcrumbs.css +3 -0
  285. package/src/themes/Button.css +11 -7
  286. package/src/themes/Checkbox.css +15 -1
  287. package/src/themes/ListItem.css +4 -0
  288. package/src/themes/MastheadShell.css +2 -1
  289. package/src/themes/Modal.css +2 -1
  290. package/src/themes/RadioButton.css +2 -0
  291. package/src/themes/Search.css +9 -1
  292. package/src/themes/SideNavigationItem.css +9 -1
  293. package/src/themes/SideNavigationSubItem.css +7 -0
  294. package/src/themes/Tooltip.css +1 -1
  295. package/src/themes/WizardTab.css +5 -0
  296. package/src/types/ButtonAccessibleRole.ts +9 -0
  297. package/src/types/{Button.ts → ButtonDesign.ts} +1 -17
  298. package/src/types/ButtonSize.ts +7 -0
  299. package/src/types/ControlButtonDesign.ts +11 -0
  300. package/src/types/ProgressBar.ts +1 -1
  301. package/src/types/common.ts +1 -1
  302. package/dist/assets/InputSuggestions-DoWo0hwS.js +0 -2
  303. package/dist/assets/bundle-7XIcgsQH.css +0 -1
  304. package/dist/assets/bundle.esm-D10tX-qa.js +0 -380
  305. package/dist/assets/parameters-bundle.css-BU4Bi-ho.js +0 -2
  306. package/dist/assets/parameters-bundle.css-Beilb2gS.js +0 -2
  307. package/dist/assets/parameters-bundle.css-BzQMaZUt.js +0 -2
  308. package/dist/assets/parameters-bundle.css-Bzfv_Fox.js +0 -2
  309. package/dist/assets/parameters-bundle.css-CLwmjytB.js +0 -2
  310. package/dist/assets/parameters-bundle.css-CU3plTdF.js +0 -2
  311. package/dist/assets/parameters-bundle.css-DRX-o-Cb.js +0 -2
  312. package/dist/assets/parameters-bundle.css-DhFMZJhW.js +0 -2
  313. package/dist/css/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +0 -1
  314. package/dist/generated/assets/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.json +0 -1
  315. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.d.ts +0 -2
  316. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js +0 -3
  317. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js.map +0 -1
  318. package/dist/types/Button.js +0 -33
  319. package/dist/types/Button.js.map +0 -1
  320. package/src/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.ts +0 -2
  321. package/src/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +0 -195
@@ -190,7 +190,7 @@
190
190
  },
191
191
  {
192
192
  "name": "udex-button",
193
- "description": "\n\n\n---\n\n\n",
193
+ "description": "<h3 class=\"comment-api-title\">Overview</h3>\n\n\n<h3>Usage</h3>\n\nFor the <code>udex-button</code>\n<h3>ES6 Module Import</h3>\n\n<code>import \"@sapudex/web-components/dist/Button.js\";</code>\n\n\n---\n\n\n",
194
194
  "attributes": [
195
195
  {
196
196
  "name": "size",
@@ -255,6 +255,11 @@
255
255
  { "name": "Success" },
256
256
  { "name": "Error" }
257
257
  ]
258
+ },
259
+ {
260
+ "name": "wrapping-type",
261
+ "description": "Defines whether the component text wraps when there is not enough space..",
262
+ "values": [{ "name": "None" }, { "name": "Normal" }]
258
263
  }
259
264
  ],
260
265
  "references": []
@@ -1726,7 +1731,7 @@
1726
1731
  },
1727
1732
  {
1728
1733
  "name": "udex-media-player",
1729
- "description": "<h3 class=\"comment-api-title\">Overview</h3>\n\n\n<h3>Usage</h3>\n\nFor the <code>udex-media-player</code>\n<h3>ES6 Module Import</h3>\n\n<code>import \"@sapudex/web-components/dist/MediaPlayer.js\";</code>\n\n\n---\n\n\n\n\n### **Events:**\n - **videoStart** - Fires when video is played\n- **videoPause** - Fires when video is paused\n- **videoComplete** - Fires when video is watched\n- **videoReady** - Fires when video is ready\n- **videoProgress** - Fires when video watching progress changed\n- **video25** - Fires when 25% of video is watched\n- **video50** - Fires when 50% of video is watched\n- **video75** - Fires when 75% of video is watched\n\n### **Methods:**\n - **getPlayer(): _HTMLVideoElement | HTMLAudioElement | YT.Player | VimeoPlayer | null_** - Returns video element\n\n### **Slots:**\n - **default** - Placeholder for all html `track` elements to provide video subtitles.\nExample: `<track kind='captions' src='./videoSubtitles.vtt' srclang='en' label='English' default />`\nMore information: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/track",
1734
+ "description": "<h3 class=\"comment-api-title\">Overview</h3>\n\n\n<h3>Usage</h3>\n\nFor the <code>udex-media-player</code>\n<h3>ES6 Module Import</h3>\n\n<code>import \"@sapudex/web-components/dist/MediaPlayer.js\";</code>\n\n\n---\n\n\n\n\n### **Events:**\n - **videoStart** - Fires when video is played\n- **videoPause** - Fires when video is paused\n- **videoComplete** - Fires when video is watched\n- **videoReady** - Fires when video is ready\n- **videoProgress** - Fires when video watching progress changed\n- **video25** - Fires when 25% of video is watched\n- **video50** - Fires when 50% of video is watched\n- **video75** - Fires when 75% of video is watched\n\n### **Methods:**\n - **getPlayer(): _HTMLVideoElement | HTMLAudioElement | YoutubePlayer | VimeoPlayer | null_** - Returns video element\n\n### **Slots:**\n - **default** - Placeholder for all html `track` elements to provide video subtitles.\nExample: `<track kind='captions' src='./videoSubtitles.vtt' srclang='en' label='English' default />`\nMore information: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/track",
1730
1735
  "attributes": [
1731
1736
  {
1732
1737
  "name": "options",
@@ -1836,7 +1841,7 @@
1836
1841
  },
1837
1842
  {
1838
1843
  "name": "udex-media-player-youtube",
1839
- "description": "<h3 class=\"comment-api-title\">Overview</h3>\n\n\n<h3>Usage</h3>\n\nFor the <code>udex-media-player-youtube</code>\n<h3>ES6 Module Import</h3>\n\n<code>import \"@sapudex/web-components/dist/MediaPlayerYoutube.js\";</code>\n\n\n---\n\n\n\n\n### **Events:**\n - **ready** - Fires when video is ready\n- **ended** - Fires when video play ended\n- **pause** - Fires when video is paused\n- **playing** - Fires when video watching progress changed\n\n### **Methods:**\n - **getPlayer(): _YT.Player | null_** - Returns video element",
1844
+ "description": "<h3 class=\"comment-api-title\">Overview</h3>\n\n\n<h3>Usage</h3>\n\nFor the <code>udex-media-player-youtube</code>\n<h3>ES6 Module Import</h3>\n\n<code>import \"@sapudex/web-components/dist/MediaPlayerYoutube.js\";</code>\n\n\n---\n\n\n\n\n### **Events:**\n - **ready** - Fires when video is ready\n- **ended** - Fires when video play ended\n- **pause** - Fires when video is paused\n- **playing** - Fires when video watching progress changed\n\n### **Methods:**\n - **getPlayer(): _YoutubePlayer | null_** - Returns video element",
1840
1845
  "attributes": [
1841
1846
  {
1842
1847
  "name": "source",
@@ -1943,6 +1948,11 @@
1943
1948
  "name": "udex-password-field",
1944
1949
  "description": "<h3 class=\"comment-api-title\">Overview</h3>\n\n\n<h3>Usage</h3>\n\nFor the <code>udex-password-field</code>\n<h3>ES6 Module Import</h3>\n\n<code>import \"@sapudex/web-components/dist/UDExPasswordField.js\";</code>\n\n\n---\n\n\n",
1945
1950
  "attributes": [
1951
+ {
1952
+ "name": "autocomplete",
1953
+ "description": "Defines the behaviour of autocomplete.",
1954
+ "values": [{ "name": "on" }, { "name": "off" }]
1955
+ },
1946
1956
  {
1947
1957
  "name": "disabled",
1948
1958
  "description": "Defines whether the component is in disabled state.\n<br><br>\n<b>Note:</b> A disabled component is completely noninteractive.",
@@ -2928,7 +2938,13 @@
2928
2938
  {
2929
2939
  "name": "value-state",
2930
2940
  "description": "Defines the value state of the component.",
2931
- "values": [{ "name": "UDExStatusBadgeValueState" }]
2941
+ "values": [
2942
+ { "name": "Information" },
2943
+ { "name": "Warning" },
2944
+ { "name": "Success" },
2945
+ { "name": "Error" },
2946
+ { "name": "Edit" }
2947
+ ]
2932
2948
  },
2933
2949
  {
2934
2950
  "name": "size",
@@ -3488,12 +3504,7 @@
3488
3504
  {
3489
3505
  "name": "value-state",
3490
3506
  "description": "Defines the value state of the component.",
3491
- "values": [
3492
- { "name": "Warning" },
3493
- { "name": "Success" },
3494
- { "name": "Error" },
3495
- { "name": "Standard" }
3496
- ]
3507
+ "values": [{ "name": "UDExValueState" }]
3497
3508
  },
3498
3509
  {
3499
3510
  "name": "required",
@@ -3607,6 +3618,11 @@
3607
3618
  "description": "Defines if the text-field is active",
3608
3619
  "values": []
3609
3620
  },
3621
+ {
3622
+ "name": "autocomplete",
3623
+ "description": "Defines the behaviour of autocomplete.",
3624
+ "values": []
3625
+ },
3610
3626
  {
3611
3627
  "name": "direction",
3612
3628
  "description": "Defines direction of the input.",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "name": "@sapudex/web-components",
4
- "version": "2.1.0",
4
+ "version": "2.2.0",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
@@ -430,7 +430,7 @@
430
430
  },
431
431
  {
432
432
  "name": "udex-button",
433
- "description": "\n---\n",
433
+ "description": "<h3 class=\"comment-api-title\">Overview</h3>\n\n\n<h3>Usage</h3>\n\nFor the <code>udex-button</code>\n<h3>ES6 Module Import</h3>\n\n<code>import \"@sapudex/web-components/dist/Button.js\";</code>\n---\n",
434
434
  "doc-url": "",
435
435
  "attributes": [
436
436
  {
@@ -530,6 +530,14 @@
530
530
  "type": "\"None\" | \"Success\" | \"Error\"",
531
531
  "default": "\"None\""
532
532
  }
533
+ },
534
+ {
535
+ "name": "wrapping-type",
536
+ "description": "Defines whether the component text wraps when there is not enough space..",
537
+ "value": {
538
+ "type": "\"None\" | \"Normal\"",
539
+ "default": "\"None\""
540
+ }
533
541
  }
534
542
  ],
535
543
  "events": [],
@@ -539,6 +547,11 @@
539
547
  "name": "value-state",
540
548
  "description": "Defines the value state of the component.",
541
549
  "value": { "type": "\"None\" | \"Success\" | \"Error\"" }
550
+ },
551
+ {
552
+ "name": "wrapping-type",
553
+ "description": "Defines whether the component text wraps when there is not enough space..",
554
+ "value": { "type": "\"None\" | \"Normal\"" }
542
555
  }
543
556
  ],
544
557
  "events": []
@@ -3645,7 +3658,7 @@
3645
3658
  },
3646
3659
  {
3647
3660
  "name": "udex-media-player",
3648
- "description": "<h3 class=\"comment-api-title\">Overview</h3>\n\n\n<h3>Usage</h3>\n\nFor the <code>udex-media-player</code>\n<h3>ES6 Module Import</h3>\n\n<code>import \"@sapudex/web-components/dist/MediaPlayer.js\";</code>\n---\n\n\n### **Events:**\n - **videoStart** - Fires when video is played\n- **videoPause** - Fires when video is paused\n- **videoComplete** - Fires when video is watched\n- **videoReady** - Fires when video is ready\n- **videoProgress** - Fires when video watching progress changed\n- **video25** - Fires when 25% of video is watched\n- **video50** - Fires when 50% of video is watched\n- **video75** - Fires when 75% of video is watched\n\n### **Methods:**\n - **getPlayer(): _HTMLVideoElement | HTMLAudioElement | YT.Player | VimeoPlayer | null_** - Returns video element\n\n### **Slots:**\n - **default** - Placeholder for all html `track` elements to provide video subtitles.\nExample: `<track kind='captions' src='./videoSubtitles.vtt' srclang='en' label='English' default />`\nMore information: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/track",
3661
+ "description": "<h3 class=\"comment-api-title\">Overview</h3>\n\n\n<h3>Usage</h3>\n\nFor the <code>udex-media-player</code>\n<h3>ES6 Module Import</h3>\n\n<code>import \"@sapudex/web-components/dist/MediaPlayer.js\";</code>\n---\n\n\n### **Events:**\n - **videoStart** - Fires when video is played\n- **videoPause** - Fires when video is paused\n- **videoComplete** - Fires when video is watched\n- **videoReady** - Fires when video is ready\n- **videoProgress** - Fires when video watching progress changed\n- **video25** - Fires when 25% of video is watched\n- **video50** - Fires when 50% of video is watched\n- **video75** - Fires when 75% of video is watched\n\n### **Methods:**\n - **getPlayer(): _HTMLVideoElement | HTMLAudioElement | YoutubePlayer | VimeoPlayer | null_** - Returns video element\n\n### **Slots:**\n - **default** - Placeholder for all html `track` elements to provide video subtitles.\nExample: `<track kind='captions' src='./videoSubtitles.vtt' srclang='en' label='English' default />`\nMore information: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/track",
3649
3662
  "doc-url": "",
3650
3663
  "attributes": [
3651
3664
  {
@@ -3944,7 +3957,7 @@
3944
3957
  },
3945
3958
  {
3946
3959
  "name": "udex-media-player-youtube",
3947
- "description": "<h3 class=\"comment-api-title\">Overview</h3>\n\n\n<h3>Usage</h3>\n\nFor the <code>udex-media-player-youtube</code>\n<h3>ES6 Module Import</h3>\n\n<code>import \"@sapudex/web-components/dist/MediaPlayerYoutube.js\";</code>\n---\n\n\n### **Events:**\n - **ready** - Fires when video is ready\n- **ended** - Fires when video play ended\n- **pause** - Fires when video is paused\n- **playing** - Fires when video watching progress changed\n\n### **Methods:**\n - **getPlayer(): _YT.Player | null_** - Returns video element",
3960
+ "description": "<h3 class=\"comment-api-title\">Overview</h3>\n\n\n<h3>Usage</h3>\n\nFor the <code>udex-media-player-youtube</code>\n<h3>ES6 Module Import</h3>\n\n<code>import \"@sapudex/web-components/dist/MediaPlayerYoutube.js\";</code>\n---\n\n\n### **Events:**\n - **ready** - Fires when video is ready\n- **ended** - Fires when video play ended\n- **pause** - Fires when video is paused\n- **playing** - Fires when video watching progress changed\n\n### **Methods:**\n - **getPlayer(): _YoutubePlayer | null_** - Returns video element",
3948
3961
  "doc-url": "",
3949
3962
  "attributes": [
3950
3963
  {
@@ -4176,6 +4189,11 @@
4176
4189
  "description": "<h3 class=\"comment-api-title\">Overview</h3>\n\n\n<h3>Usage</h3>\n\nFor the <code>udex-password-field</code>\n<h3>ES6 Module Import</h3>\n\n<code>import \"@sapudex/web-components/dist/UDExPasswordField.js\";</code>\n---\n",
4177
4190
  "doc-url": "",
4178
4191
  "attributes": [
4192
+ {
4193
+ "name": "autocomplete",
4194
+ "description": "Defines the behaviour of autocomplete.",
4195
+ "value": { "type": "\"on\" | \"off\"", "default": "\"off\"" }
4196
+ },
4179
4197
  {
4180
4198
  "name": "disabled",
4181
4199
  "description": "Defines whether the component is in disabled state.\n<br><br>\n<b>Note:</b> A disabled component is completely noninteractive.",
@@ -4245,6 +4263,11 @@
4245
4263
  "events": [],
4246
4264
  "js": {
4247
4265
  "properties": [
4266
+ {
4267
+ "name": "autocomplete",
4268
+ "description": "Defines the behaviour of autocomplete.",
4269
+ "value": { "type": "\"on\" | \"off\"" }
4270
+ },
4248
4271
  {
4249
4272
  "name": "disabled",
4250
4273
  "description": "Defines whether the component is in disabled state.\n<br><br>\n<b>Note:</b> A disabled component is completely noninteractive.",
@@ -6067,7 +6090,7 @@
6067
6090
  "name": "value-state",
6068
6091
  "description": "Defines the value state of the component.",
6069
6092
  "value": {
6070
- "type": "UDExStatusBadgeValueState",
6093
+ "type": "\"Information\" | \"Warning\" | \"Success\" | \"Error\" | \"Edit\"",
6071
6094
  "default": "\"Information\""
6072
6095
  }
6073
6096
  },
@@ -6091,7 +6114,9 @@
6091
6114
  {
6092
6115
  "name": "value-state",
6093
6116
  "description": "Defines the value state of the component.",
6094
- "value": { "type": "UDExStatusBadgeValueState" }
6117
+ "value": {
6118
+ "type": "\"Information\" | \"Warning\" | \"Success\" | \"Error\" | \"Edit\""
6119
+ }
6095
6120
  },
6096
6121
  {
6097
6122
  "name": "size",
@@ -7223,10 +7248,7 @@
7223
7248
  {
7224
7249
  "name": "value-state",
7225
7250
  "description": "Defines the value state of the component.",
7226
- "value": {
7227
- "type": "\"Warning\" | \"Success\" | \"Error\" | \"Standard\"",
7228
- "default": "\"Standard\""
7229
- }
7251
+ "value": { "type": "UDExValueState", "default": "\"Standard\"" }
7230
7252
  },
7231
7253
  {
7232
7254
  "name": "required",
@@ -7300,9 +7322,7 @@
7300
7322
  {
7301
7323
  "name": "value-state",
7302
7324
  "description": "Defines the value state of the component.",
7303
- "value": {
7304
- "type": "\"Warning\" | \"Success\" | \"Error\" | \"Standard\""
7305
- }
7325
+ "value": { "type": "UDExValueState" }
7306
7326
  },
7307
7327
  {
7308
7328
  "name": "required",
@@ -7416,6 +7436,11 @@
7416
7436
  "description": "Defines if the text-field is active",
7417
7437
  "value": { "type": "boolean", "default": "false" }
7418
7438
  },
7439
+ {
7440
+ "name": "autocomplete",
7441
+ "description": "Defines the behaviour of autocomplete.",
7442
+ "value": { "type": "string", "default": "\"off\"" }
7443
+ },
7419
7444
  {
7420
7445
  "name": "direction",
7421
7446
  "description": "Defines direction of the input.",
@@ -7511,6 +7536,11 @@
7511
7536
  "description": "Defines if the text-field is active",
7512
7537
  "value": { "type": "boolean" }
7513
7538
  },
7539
+ {
7540
+ "name": "autocomplete",
7541
+ "description": "Defines the behaviour of autocomplete.",
7542
+ "value": { "type": "string" }
7543
+ },
7514
7544
  {
7515
7545
  "name": "direction",
7516
7546
  "description": "Defines direction of the input.",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@sapudex/web-components",
4
- "version": "2.1.0",
4
+ "version": "2.2.0",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
7
7
  },
@@ -32,19 +32,19 @@
32
32
  },
33
33
  "dependencies": {
34
34
  "@types/vimeo__player": "^2.18.3",
35
- "@types/youtube": "^0.1.0",
36
- "@ui5/webcomponents": "2.10.0",
37
- "@ui5/webcomponents-base": "2.10.0",
38
- "@ui5/webcomponents-fiori": "2.10.0",
39
- "@ui5/webcomponents-icons": "2.10.0",
40
- "@ui5/webcomponents-theming": "2.10.0",
35
+ "@types/youtube": "^0.1.2",
36
+ "@ui5/webcomponents": "2.12.0",
37
+ "@ui5/webcomponents-base": "2.12.0",
38
+ "@ui5/webcomponents-fiori": "2.12.0",
39
+ "@ui5/webcomponents-icons": "2.12.0",
40
+ "@ui5/webcomponents-theming": "2.12.0",
41
41
  "@vimeo/player": "^2.24.0",
42
42
  "cypress-real-events": "^1.14.0",
43
43
  "video.js": "8.22.0"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@ui5/cypress-ct-ui5-webc": "^0.0.4",
47
- "@ui5/webcomponents-tools": "2.10.0",
47
+ "@ui5/webcomponents-tools": "2.12.0",
48
48
  "chromedriver": "138.0.1",
49
49
  "cross-env": "^7.0.3",
50
50
  "cypress": "^14.3.3",
package/src/Badge.ts CHANGED
@@ -9,7 +9,7 @@ import BadgeTemplate from "./generated/templates/BadgeTemplate.lit.js";
9
9
 
10
10
  // Styles
11
11
  import BadgeCss from "./generated/themes/Badge.css.js";
12
- import IconPlacement from "./types/IconPlacement.js";
12
+ import UDExIconPlacement from "./types/IconPlacement.js";
13
13
 
14
14
  import {
15
15
  UDExNumberBadgeDesign, UDExSizeBadgeDesign, UDExTextBadgeDesign, UDExTypeBadgeDesign,
@@ -81,7 +81,7 @@ class UDExBadge extends UI5Element {
81
81
  * @public
82
82
  */
83
83
  @property()
84
- iconPlacement: `${IconPlacement}` = IconPlacement.End;
84
+ iconPlacement: `${UDExIconPlacement}` = UDExIconPlacement.End;
85
85
  /**
86
86
  * Defines icon name
87
87
  *
@@ -100,11 +100,11 @@ class UDExBadge extends UI5Element {
100
100
  default!: Array<Node>;
101
101
 
102
102
  get startIcon(): boolean {
103
- return !!this.icon && this.iconPlacement === IconPlacement.Start;
103
+ return !!this.icon && this.iconPlacement === UDExIconPlacement.Start;
104
104
  }
105
105
 
106
106
  get endIcon(): boolean {
107
- return !!this.icon && this.iconPlacement === IconPlacement.End;
107
+ return !!this.icon && this.iconPlacement === UDExIconPlacement.End;
108
108
  }
109
109
 
110
110
  get textClasses(): string {
@@ -3,19 +3,16 @@
3
3
  aria-label="{{_accessibleNameText}}">
4
4
  <ol @focusin="{{_onfocusin}}">
5
5
  <li class="udex-breadcrumbs__arrow-wrapper ui5-breadcrumbs-dropdown-arrow-link-wrapper">
6
- <button
6
+ <udex-link
7
7
  id="udex-{{this._id}}-breadcrumbs__opener"
8
8
  @click="{{_toggleDropdown}}"
9
9
  class="udex-breadcrumbs__trigger {{_triggerClass}}"
10
- accessible-role="button"
11
- aria-label="{{_dropdownArrowAccessibleNameText}}"
12
- aria-haspopup="true">
13
- <ui5-icon
14
- name="slim-arrow-down"
15
- mode="Decorative"
16
- title="{{_dropdownArrowAccessibleNameText}}">
17
- </ui5-icon>
18
- </button>
10
+ accessible-role="button"
11
+ aria-label="{{_dropdownArrowAccessibleNameText}}"
12
+ icon="slim-arrow-down"
13
+ icon-placement="Start"
14
+ aria-haspopup="true">
15
+ </udex-link>
19
16
  </li>
20
17
  {{#each _linksData}}
21
18
  <li
@@ -122,6 +122,7 @@ class UDExBreadcrumbs extends UI5Element {
122
122
 
123
123
  _responsivePopover?: UDExDropdown;
124
124
  _itemNavigation?: ItemNavigation;
125
+ _shouldFocusFirstVisibleItem!: boolean;
125
126
 
126
127
  onBeforeRendering(): void {
127
128
  this._preprocessItems();
@@ -130,7 +131,13 @@ class UDExBreadcrumbs extends UI5Element {
130
131
  onAfterRendering(): void {
131
132
  this._responsivePopover = this._getResponsePopover();
132
133
  this._initItemNavigation();
134
+ this._dropdownArrowLink.forcedTabIndex = "0";
133
135
  this._handleOutsideClick();
136
+
137
+ if (this._shouldFocusFirstVisibleItem) {
138
+ this._getFocusableItems()[1].focus();
139
+ this._shouldFocusFirstVisibleItem = false;
140
+ }
134
141
  }
135
142
 
136
143
  _preprocessItems(): void {
@@ -236,6 +243,12 @@ class UDExBreadcrumbs extends UI5Element {
236
243
  const isLastItem = itemIndex === (this.items.length - 2).toString();
237
244
  const isFirstItem = itemIndex === "0";
238
245
 
246
+ if (isTabNext(e) && isLastItem) {
247
+ this._shouldFocusFirstVisibleItem = true;
248
+ this._toggleDropdown();
249
+ return;
250
+ }
251
+
239
252
  if ((isTabNext(e) && isLastItem) || (isTabPrevious(e) && isFirstItem) || isEscape(e)) {
240
253
  this._toggleDropdown();
241
254
  }
@@ -267,7 +280,7 @@ class UDExBreadcrumbs extends UI5Element {
267
280
  * Getter for the list of links corresponding to the abstract breadcrumb items
268
281
  */
269
282
  get _links(): Array<UDExLink> {
270
- return Array.from(this.shadowRoot!.querySelectorAll<UDExLink>(".udex-breadcrumbs__link-wrapper [ui5-link]"));
283
+ return Array.from(this.shadowRoot!.querySelectorAll<UDExLink>(".udex-breadcrumbs__link-wrapper [udex-link]"));
271
284
  }
272
285
 
273
286
  /**
@@ -4,7 +4,9 @@
4
4
  class="udex-breadcrumbs__popover ui5-breadcrumbs-popover"
5
5
  placement="Bottom"
6
6
  horizontal-align="Start"
7
- @keydown="{{_handleKeydown}}">
7
+ @keydown="{{_handleKeydown}}"
8
+ @close="{{_afterDropdownClose}}"
9
+ @open="{{_afterDropdownOpen}}">
8
10
  <div class="udex-breadcrumbs__popover-content">
9
11
  {{#each _dropdownItems}}
10
12
  {{#if this.icon}}
package/src/Button.ts CHANGED
@@ -8,7 +8,8 @@ import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
8
8
  import {
9
9
  BUTTON_ARIA_ATTENTION, BUTTON_ARIA_DEFAULT, BUTTON_ARIA_EMPHASIZED, BUTTON_ARIA_TRANSPARENT, BUTTON_ARIA_TYPE_NEGATIVE, BUTTON_ARIA_TYPE_POSITIVE, BUTTON_ARIA_TYPE_PRIMARY, BUTTON_ARIA_TYPE_SECONDARY, BUTTON_ARIA_TYPE_TERTIARY, BUTTON_ARIA_TYPE_WARNING, TOGGLED,
10
10
  } from "./generated/i18n/i18n-defaults.js";
11
- import { UDExButtonDesign, UDExButtonSize } from "./types/Button.js";
11
+ import UDExButtonSize from "./types/ButtonSize.js";
12
+ import UDExButtonDesign from "./types/ButtonDesign.js";
12
13
 
13
14
  // Styles
14
15
  import ButtonCss from "./generated/themes/Button.css.js";
@@ -16,6 +17,16 @@ import ButtonCss from "./generated/themes/Button.css.js";
16
17
  /**
17
18
  * @class
18
19
  *
20
+ * <h3 class="comment-api-title">Overview</h3>
21
+ *
22
+ *
23
+ * <h3>Usage</h3>
24
+ *
25
+ * For the <code>udex-button</code>
26
+ * <h3>ES6 Module Import</h3>
27
+ *
28
+ * <code>import "@sapudex/web-components/dist/Button.js";</code>
29
+ *
19
30
  * @constructor
20
31
  * @extends Button
21
32
  * @tagname udex-button
package/src/Checkbox.ts CHANGED
@@ -6,10 +6,15 @@ import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
6
6
  import { VALUE_STATE_ERROR, VALUE_STATE_SUCCESS } from "./generated/i18n/i18n-defaults.js";
7
7
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
8
8
  import UDExCheckboxValueState from "./types/Checkbox.js";
9
+ import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
10
+ import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
9
11
 
10
12
  // Styles
11
13
  import CheckboxCss from "./generated/themes/Checkbox.css.js";
14
+ import WrappingType from "@ui5/webcomponents/dist/types/WrappingType.js";
15
+ import type Label from "@ui5/webcomponents/dist/Label.js";
12
16
 
17
+ const LABEL_TEXT_HEIGHT = 18.5;
13
18
  /**
14
19
  * @class
15
20
  *
@@ -46,9 +51,37 @@ class UDExCheckbox extends CheckBox {
46
51
  /** @ts-expect-error */
47
52
  valueState: `${UDExCheckboxValueState}` = UDExCheckboxValueState.None;
48
53
 
54
+ /**
55
+ * Defines whether the component text wraps when there is not enough space..
56
+ *
57
+ * @default "None"
58
+ * @public
59
+ */
60
+ @property()
61
+ wrappingType: `${WrappingType}` = WrappingType.None;
62
+
49
63
  @i18n("@sapudex/web-components")
50
64
  static i18nBundle: I18nBundle;
51
65
 
66
+ _handleResizeBound: ResizeObserverCallback;
67
+
68
+ constructor() {
69
+ super();
70
+ this._handleResizeBound = this._handleResize.bind(this);
71
+ }
72
+
73
+ onEnterDOM(): void {
74
+ ResizeHandler.register(this, this._handleResizeBound);
75
+ }
76
+
77
+ onAfterRendering() {
78
+ this.shadowRoot?.querySelector(".ui5-checkbox-label")?.removeAttribute("required");
79
+ }
80
+
81
+ onExitDOM(): void {
82
+ ResizeHandler.deregister(this, this._handleResizeBound);
83
+ }
84
+
52
85
  valueStateMappings(): Record<string, string> {
53
86
  return {
54
87
  [UDExCheckboxValueState.Error]: UDExCheckbox.i18nBundle.getText(VALUE_STATE_ERROR),
@@ -56,11 +89,29 @@ class UDExCheckbox extends CheckBox {
56
89
  };
57
90
  }
58
91
 
92
+ _handleResize(): void {
93
+ const labelOverflows = this.labelHeight > LABEL_TEXT_HEIGHT;
94
+
95
+ if (labelOverflows && this.wrappingType === WrappingType.Normal) {
96
+ this.label?.classList.add("udex-checkbox__label-multiline");
97
+ } else {
98
+ this.label?.classList.remove("udex-checkbox__label-multiline");
99
+ }
100
+ }
101
+
59
102
  get valueStateText(): string | undefined {
60
103
  if (this.valueState !== UDExCheckboxValueState.None) {
61
104
  return this.valueStateMappings()[this.valueState];
62
105
  }
63
106
  }
107
+
108
+ get label(): Label | null {
109
+ return this.shadowRoot!.querySelector<Label>("[ui5-label]");
110
+ }
111
+
112
+ get labelHeight(): number {
113
+ return this.label?.getBoundingClientRect().height || 0;
114
+ }
64
115
  }
65
116
 
66
117
  UDExCheckbox.define();
@@ -5,7 +5,8 @@ import Button from "@ui5/webcomponents/dist/Button.js";
5
5
  // Styles
6
6
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
7
7
  import ControlButtonCss from "./generated/themes/ControlButton.css.js";
8
- import { UDExButtonSize, UDExControlButtonDesign } from "./types/Button.js";
8
+ import UDExButtonSize from "./types/ButtonSize.js";
9
+ import UDExControlButtonDesign from "./types/ControlButtonDesign.js";
9
10
 
10
11
  /**
11
12
  * @class
package/src/DatePicker.ts CHANGED
@@ -28,13 +28,13 @@ export enum UDExDatePickerSelectionMode {
28
28
  Range = "Range",
29
29
  }
30
30
 
31
- type UDExDatePickerSelectionChangeEventDetail = {
31
+ export type UDExDatePickerSelectionChangeEventDetail = {
32
32
  selectedValues: Array<string>;
33
33
  selectedDates: Array<number | undefined>;
34
34
  timestamp: number | undefined;
35
35
  };
36
36
 
37
- type UDExDatePickerValueStateChangeEventDetail = {
37
+ export type UDExDatePickerValueStateChangeEventDetail = {
38
38
  valueState: `${UDExValueState}`,
39
39
  valid: boolean
40
40
  }
@@ -38,6 +38,7 @@
38
38
  id="{{this._id}}_udex-filter-menu-dropdown"
39
39
  hide-arrow
40
40
  ?allow-target-overlap="{{disableAllowTargetOverlap}}"
41
+ accessible-role="{{accessibleRole}}"
41
42
  placement="{{placement}}"
42
43
  horizontal-align="{{horizontalAlign}}"
43
44
  @ui5-item-press="{{handleItemPress}}"
package/src/InputGroup.ts CHANGED
@@ -15,12 +15,15 @@ import {
15
15
  VALUE_STATE_ERROR,
16
16
  VALUE_STATE_SUCCESS,
17
17
  } from "./generated/i18n/i18n-defaults.js";
18
- import type UDExValueState from "./types/common.js";
19
18
 
20
19
  // Styles
21
20
  import InputGroupCss from "./generated/themes/InputGroup.css.js";
22
21
 
23
- export type UDExGroupValueState = Exclude<UDExValueState, "Warning">
22
+ export enum UDExGroupValueState {
23
+ Standard = "Standard",
24
+ Error = "Error",
25
+ Success = "Success",
26
+ }
24
27
 
25
28
  export enum UDExOrientation {
26
29
  Vertical = "Vertical",
package/src/Link.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
2
2
  import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
3
- import UI5Link from "@ui5/webcomponents/dist/Link.js";
3
+ import Link from "@ui5/webcomponents/dist/Link.js";
4
4
  import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
5
5
 
6
6
  // Styles
@@ -25,18 +25,17 @@ export type AttributeValuePair = {
25
25
  * <code>import "@sapudex/web-components/dist/Link.js";</code>
26
26
  *
27
27
  * @constructor
28
- * @author SAP SE
29
- * @extends UI5Link
28
+ * @extends Link
30
29
  * @tagname udex-link
31
30
  * @public
32
31
  */
33
32
  @customElement({
34
33
  tag: "udex-link",
35
34
  renderer: jsxRenderer,
36
- styles: [UI5Link.styles, LinkCss],
35
+ styles: [Link.styles, LinkCss],
37
36
  })
38
37
 
39
- class UDExLink extends UI5Link {
38
+ class UDExLink extends Link {
40
39
  onEnterDOM(): void {
41
40
  if (isDesktop()) {
42
41
  this.setAttribute("desktop", "");
package/src/ListItem.ts CHANGED
@@ -196,16 +196,16 @@ class UDExListItem extends UDExListItemBase {
196
196
  * @slot
197
197
  * @public
198
198
  */
199
- @slot()
200
- firstIcon!: Array<HTMLElement>;
199
+ @slot({ type: UDExButton })
200
+ firstIcon!: Array<UDExButton>;
201
201
  /**
202
202
  * Slot for second icon.
203
203
  *
204
204
  * @slot
205
205
  * @public
206
206
  */
207
- @slot()
208
- secondIcon!: Array<HTMLElement>;
207
+ @slot({ type: UDExButton })
208
+ secondIcon!: Array<UDExButton>;
209
209
 
210
210
  /**
211
211
  * Defines the role attribute of component
@@ -549,7 +549,7 @@ class UDExMastheadItem extends UI5Element implements IMastheadItem {
549
549
  }
550
550
 
551
551
  get isMobile(): boolean {
552
- return BreakpointUtils.isBelow("M") || this.mastheadShell?._isMobileMode;
552
+ return BreakpointUtils.isAtMost("M") || this.mastheadShell?._isMobileMode;
553
553
  }
554
554
 
555
555
  get isTargetBlank(): boolean {
@@ -19,6 +19,8 @@ import MediaPlayerTemplate from "./generated/templates/MediaPlayerTemplate.lit.j
19
19
  // Styles
20
20
  import MediaPlayerCss from "./generated/themes/MediaPlayer.css.js";
21
21
 
22
+ export type YoutubePlayer = YT.Player;
23
+
22
24
  declare global {
23
25
  interface Window {
24
26
  videojs: any;
@@ -352,7 +354,7 @@ class UDExMediaPlayer extends UI5Element {
352
354
  * Returns video element
353
355
  * @public
354
356
  */
355
- getPlayer(): HTMLVideoElement | HTMLAudioElement | YT.Player | VimeoPlayer | null {
357
+ getPlayer(): HTMLVideoElement | HTMLAudioElement | YoutubePlayer | VimeoPlayer | null {
356
358
  if (this._youtubeSrc) {
357
359
  const player = this.shadowRoot?.querySelector("[udex-media-player-youtube]") as UDExMediaPlayerYoutube;
358
360
  return player?.getPlayer() || null;