@otto-de/b2b-core-components 1.26.3 → 1.28.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 (423) hide show
  1. package/dist/b2b-core-components/b2b-core-components.css +1 -1
  2. package/dist/b2b-core-components/b2b-core-components.esm.js +1 -1
  3. package/dist/b2b-core-components/icons-100/b2b_icon-arrow-graph-axis.svg +3 -0
  4. package/dist/b2b-core-components/icons-100/b2b_icon-radio.svg +3 -0
  5. package/dist/b2b-core-components/p-07a49843.entry.js +1 -0
  6. package/dist/b2b-core-components/p-08c8a952.entry.js +1 -0
  7. package/dist/b2b-core-components/p-14a72105.entry.js +1 -0
  8. package/dist/b2b-core-components/p-2202abf9.entry.js +1 -0
  9. package/dist/b2b-core-components/p-22dd07cc.entry.js +1 -0
  10. package/dist/b2b-core-components/p-2647450d.entry.js +1 -0
  11. package/dist/b2b-core-components/p-2a64d962.entry.js +1 -0
  12. package/dist/b2b-core-components/p-348f152b.entry.js +1 -0
  13. package/dist/b2b-core-components/p-3568c300.entry.js +1 -0
  14. package/dist/b2b-core-components/p-383d0a10.entry.js +1 -0
  15. package/dist/b2b-core-components/p-3cc11116.entry.js +1 -0
  16. package/dist/b2b-core-components/p-3fda7682.entry.js +1 -0
  17. package/dist/b2b-core-components/p-400fa973.entry.js +1 -0
  18. package/dist/b2b-core-components/p-5450ce1c.entry.js +1 -0
  19. package/dist/b2b-core-components/p-561b8fd3.entry.js +1 -0
  20. package/dist/b2b-core-components/p-5b9fabe6.entry.js +1 -0
  21. package/dist/b2b-core-components/p-5e6aa5f2.entry.js +1 -0
  22. package/dist/b2b-core-components/p-659c5d92.entry.js +1 -0
  23. package/dist/b2b-core-components/{p-48d75dc1.entry.js → p-661b0094.entry.js} +1 -1
  24. package/dist/b2b-core-components/p-6723772d.entry.js +1 -0
  25. package/dist/b2b-core-components/p-6cf5561b.entry.js +1 -0
  26. package/dist/b2b-core-components/p-6ff0ffdf.entry.js +1 -0
  27. package/dist/b2b-core-components/p-77eabb15.entry.js +1 -0
  28. package/dist/b2b-core-components/p-7e5a8e61.entry.js +1 -0
  29. package/dist/b2b-core-components/p-80c5af85.entry.js +1 -0
  30. package/dist/b2b-core-components/p-816190a6.entry.js +1 -0
  31. package/dist/b2b-core-components/p-8abf78b9.entry.js +1 -0
  32. package/dist/b2b-core-components/p-8d73c38a.entry.js +1 -0
  33. package/dist/b2b-core-components/p-9356a466.entry.js +1 -0
  34. package/dist/b2b-core-components/p-93bf8bbe.entry.js +1 -0
  35. package/dist/b2b-core-components/p-9487b0bf.entry.js +1 -0
  36. package/dist/b2b-core-components/{p-ee371752.entry.js → p-a155219a.entry.js} +1 -1
  37. package/dist/b2b-core-components/p-a9ba47d6.entry.js +1 -0
  38. package/dist/b2b-core-components/p-aa8b6283.entry.js +1 -0
  39. package/dist/b2b-core-components/p-b5b0f18e.entry.js +1 -0
  40. package/dist/b2b-core-components/p-bb32be62.entry.js +1 -0
  41. package/dist/b2b-core-components/p-bbbbd519.entry.js +1 -0
  42. package/dist/b2b-core-components/p-bf0a5d26.entry.js +1 -0
  43. package/dist/b2b-core-components/p-c2a7f367.entry.js +1 -0
  44. package/dist/b2b-core-components/p-c6cc2dea.entry.js +1 -0
  45. package/dist/b2b-core-components/p-c8a68b79.entry.js +1 -0
  46. package/dist/b2b-core-components/{p-bbcc4de6.entry.js → p-d1c8105b.entry.js} +1 -1
  47. package/dist/b2b-core-components/p-d93b45d6.entry.js +1 -0
  48. package/dist/b2b-core-components/p-dad8f664.entry.js +1 -0
  49. package/dist/b2b-core-components/p-db205434.entry.js +1 -0
  50. package/dist/b2b-core-components/p-dbc638ef.entry.js +1 -0
  51. package/dist/b2b-core-components/p-dd96c384.entry.js +1 -0
  52. package/dist/b2b-core-components/p-e81d0f3a.entry.js +1 -0
  53. package/dist/b2b-core-components/p-f51f72d4.entry.js +1 -0
  54. package/dist/b2b-core-components/p-f5786cad.entry.js +1 -0
  55. package/dist/b2b-core-components/p-f67e3fbe.entry.js +1 -0
  56. package/dist/b2b-core-components/p-f982a075.entry.js +1 -0
  57. package/dist/b2b-core-components/p-fbb917b5.entry.js +1 -0
  58. package/dist/b2b-core-components/p-fdc01d9c.entry.js +1 -0
  59. package/dist/b2b-core-components/p-fe75bd7e.entry.js +1 -0
  60. package/dist/b2b-core-components/p-fe7c7068.entry.js +1 -0
  61. package/dist/cjs/b2b-alert.cjs.entry.js +1 -1
  62. package/dist/cjs/b2b-anchor.cjs.entry.js +1 -1
  63. package/dist/cjs/b2b-background-box.cjs.entry.js +1 -1
  64. package/dist/cjs/b2b-breadcrumb-item.cjs.entry.js +1 -1
  65. package/dist/cjs/b2b-breadcrumb.cjs.entry.js +1 -1
  66. package/dist/cjs/b2b-button_2.cjs.entry.js +3 -3
  67. package/dist/cjs/b2b-card.cjs.entry.js +1 -1
  68. package/dist/cjs/b2b-checkbox-group.cjs.entry.js +1 -1
  69. package/dist/cjs/b2b-checkbox.cjs.entry.js +1 -1
  70. package/dist/cjs/b2b-chip-component_2.cjs.entry.js +6 -5
  71. package/dist/cjs/b2b-core-components.cjs.js +1 -1
  72. package/dist/cjs/b2b-date-picker-days_5.cjs.entry.js +5 -5
  73. package/dist/cjs/b2b-date-picker.cjs.entry.js +36 -12
  74. package/dist/cjs/b2b-dropdown.cjs.entry.js +115 -32
  75. package/dist/cjs/b2b-flyout-menu-option.cjs.entry.js +2 -2
  76. package/dist/cjs/b2b-flyout-menu.cjs.entry.js +4 -4
  77. package/dist/cjs/b2b-grid-col.cjs.entry.js +1 -1
  78. package/dist/cjs/b2b-grid-row.cjs.entry.js +2 -2
  79. package/dist/cjs/b2b-grid.cjs.entry.js +2 -2
  80. package/dist/cjs/b2b-headline.cjs.entry.js +1 -1
  81. package/dist/cjs/b2b-icon-100.cjs.entry.js +4 -2
  82. package/dist/cjs/b2b-icon-50.cjs.entry.js +1 -1
  83. package/dist/cjs/b2b-icon.cjs.entry.js +1 -1
  84. package/dist/cjs/b2b-input-group_2.cjs.entry.js +5 -5
  85. package/dist/cjs/b2b-input-label.cjs.entry.js +2 -2
  86. package/dist/cjs/b2b-input_2.cjs.entry.js +7 -7
  87. package/dist/cjs/b2b-label.cjs.entry.js +3 -3
  88. package/dist/cjs/b2b-modal.cjs.entry.js +3 -3
  89. package/dist/cjs/b2b-multiselect-dropdown.cjs.entry.js +65 -22
  90. package/dist/cjs/b2b-pagination.cjs.entry.js +2 -2
  91. package/dist/cjs/b2b-paragraph.cjs.entry.js +3 -3
  92. package/dist/cjs/b2b-progress-bar.cjs.entry.js +4 -4
  93. package/dist/cjs/b2b-radio-button.cjs.entry.js +3 -3
  94. package/dist/cjs/b2b-radio-group.cjs.entry.js +3 -3
  95. package/dist/cjs/b2b-required-separator.cjs.entry.js +2 -2
  96. package/dist/cjs/b2b-rounded-icon.cjs.entry.js +5 -5
  97. package/dist/cjs/b2b-scrollable-container.cjs.entry.js +2 -2
  98. package/dist/cjs/b2b-search.cjs.entry.js +1 -1
  99. package/dist/cjs/b2b-separator.cjs.entry.js +2 -2
  100. package/dist/cjs/b2b-shimmer.cjs.entry.js +2 -2
  101. package/dist/cjs/b2b-snackbar.cjs.entry.js +20 -14
  102. package/dist/cjs/b2b-tab-group.cjs.entry.js +1 -1
  103. package/dist/cjs/b2b-tab-panel.cjs.entry.js +2 -2
  104. package/dist/cjs/b2b-tab.cjs.entry.js +3 -3
  105. package/dist/cjs/b2b-table-cell_2.cjs.entry.js +5 -5
  106. package/dist/cjs/b2b-table-row.cjs.entry.js +3 -3
  107. package/dist/cjs/b2b-table-rowgroup.cjs.entry.js +3 -3
  108. package/dist/cjs/b2b-table.cjs.entry.js +3 -3
  109. package/dist/cjs/b2b-textarea.cjs.entry.js +3 -3
  110. package/dist/cjs/b2b-toggle-button.cjs.entry.js +4 -4
  111. package/dist/cjs/b2b-toggle-chip.cjs.entry.js +4 -4
  112. package/dist/cjs/b2b-toggle-group.cjs.entry.js +3 -3
  113. package/dist/cjs/b2b-toggle-switch.cjs.entry.js +5 -5
  114. package/dist/cjs/b2b-tooltip.cjs.entry.js +4 -4
  115. package/dist/cjs/b2b-wizard-icon.cjs.entry.js +2 -2
  116. package/dist/cjs/b2b-wizard-step.cjs.entry.js +3 -3
  117. package/dist/cjs/b2b-wizard.cjs.entry.js +2 -2
  118. package/dist/cjs/loader.cjs.js +1 -1
  119. package/dist/collection/components/alert/alert.css +5 -3
  120. package/dist/collection/components/anchor/anchor.css +5 -3
  121. package/dist/collection/components/background-box/background-box.css +5 -3
  122. package/dist/collection/components/breadcrumb/breadcrumb.css +5 -3
  123. package/dist/collection/components/button/button.css +5 -3
  124. package/dist/collection/components/card/card.css +5 -3
  125. package/dist/collection/components/checkbox/checkbox.css +5 -3
  126. package/dist/collection/components/checkbox-group/checkbox-group.css +5 -3
  127. package/dist/collection/components/chip/chip.css +5 -3
  128. package/dist/collection/components/chip/chip.js +21 -2
  129. package/dist/collection/components/chip/chip.stories.js +10 -0
  130. package/dist/collection/components/date-picker/date-picker-days-header.css +5 -3
  131. package/dist/collection/components/date-picker/date-picker-days.css +5 -3
  132. package/dist/collection/components/date-picker/date-picker-header.css +5 -3
  133. package/dist/collection/components/date-picker/date-picker-months.css +5 -3
  134. package/dist/collection/components/date-picker/date-picker-years.css +5 -3
  135. package/dist/collection/components/date-picker/date-picker.css +5 -3
  136. package/dist/collection/components/date-picker/date-picker.e2e.js +3 -2
  137. package/dist/collection/components/date-picker/date-picker.js +40 -11
  138. package/dist/collection/components/dropdown/dropdown.css +62 -5
  139. package/dist/collection/components/dropdown/dropdown.e2e.js +8 -0
  140. package/dist/collection/components/dropdown/dropdown.js +147 -31
  141. package/dist/collection/components/flyout-menu/flyout-menu-option.css +5 -3
  142. package/dist/collection/components/flyout-menu/flyout-menu-option.js +1 -1
  143. package/dist/collection/components/flyout-menu/flyout-menu.css +5 -3
  144. package/dist/collection/components/flyout-menu/flyout-menu.js +3 -3
  145. package/dist/collection/components/grid/column.js +2 -2
  146. package/dist/collection/components/grid/grid.css +0 -6
  147. package/dist/collection/components/grid/grid.js +1 -1
  148. package/dist/collection/components/grid/row.js +2 -2
  149. package/dist/collection/components/headline/headline.css +5 -3
  150. package/dist/collection/components/icon/icon.css +5 -3
  151. package/dist/collection/components/icon-100/icon-100.css +5 -3
  152. package/dist/collection/components/icon-100/icon-100.js +1 -1
  153. package/dist/collection/components/icon-100/icons-100/b2b_icon-arrow-graph-axis.svg +3 -0
  154. package/dist/collection/components/icon-100/icons-100/b2b_icon-radio.svg +3 -0
  155. package/dist/collection/components/icon-100/types.js +3 -1
  156. package/dist/collection/components/icon-50/icon-50.css +5 -3
  157. package/dist/collection/components/input/input.css +5 -3
  158. package/dist/collection/components/input/input.js +4 -4
  159. package/dist/collection/components/input-group/input-group.css +5 -3
  160. package/dist/collection/components/input-group/input-group.js +1 -1
  161. package/dist/collection/components/input-label/input-label.js +2 -2
  162. package/dist/collection/components/input-list/input-list-option.js +1 -1
  163. package/dist/collection/components/input-list/input-list.css +5 -3
  164. package/dist/collection/components/input-list/input-list.js +2 -2
  165. package/dist/collection/components/label/label.css +5 -3
  166. package/dist/collection/components/label/label.js +2 -2
  167. package/dist/collection/components/modal/modal.css +5 -3
  168. package/dist/collection/components/modal/modal.js +2 -2
  169. package/dist/collection/components/multiselect-dropdown/multiselect-dropdown.css +76 -15
  170. package/dist/collection/components/multiselect-dropdown/multiselect-dropdown.e2e.js +60 -87
  171. package/dist/collection/components/multiselect-dropdown/multiselect-dropdown.js +155 -21
  172. package/dist/collection/components/multiselect-dropdown/multiselect-dropdown.stories.js +32 -2
  173. package/dist/collection/components/multiselect-dropdown/multiselect-option/multiselect-option.js +2 -2
  174. package/dist/collection/components/pagination/pagination.css +5 -3
  175. package/dist/collection/components/pagination/pagination.js +1 -1
  176. package/dist/collection/components/paragraph/paragraph.css +5 -3
  177. package/dist/collection/components/paragraph/paragraph.js +2 -2
  178. package/dist/collection/components/progress-bar/progress-bar.css +5 -3
  179. package/dist/collection/components/progress-bar/progress-bar.js +3 -3
  180. package/dist/collection/components/radio/radio.css +5 -3
  181. package/dist/collection/components/radio/radio.js +2 -2
  182. package/dist/collection/components/radio-group/radio-group.css +5 -3
  183. package/dist/collection/components/radio-group/radio-group.js +2 -2
  184. package/dist/collection/components/required-separator/required-separator.css +5 -3
  185. package/dist/collection/components/required-separator/required-separator.js +1 -1
  186. package/dist/collection/components/rounded-icon/rounded-icon.css +5 -3
  187. package/dist/collection/components/rounded-icon/rounded-icon.js +4 -4
  188. package/dist/collection/components/scrollable-container/scrollable-container.css +5 -3
  189. package/dist/collection/components/scrollable-container/scrollable-container.js +1 -1
  190. package/dist/collection/components/search/search.js +1 -1
  191. package/dist/collection/components/separator/separator.css +5 -3
  192. package/dist/collection/components/separator/separator.js +1 -1
  193. package/dist/collection/components/shimmer/shimmer.css +5 -3
  194. package/dist/collection/components/shimmer/shimmer.js +1 -1
  195. package/dist/collection/components/snackbar/snackbar.css +5 -3
  196. package/dist/collection/components/snackbar/snackbar.e2e.js +0 -2
  197. package/dist/collection/components/snackbar/snackbar.js +20 -14
  198. package/dist/collection/components/snackbar/snackbar.stories.js +4 -3
  199. package/dist/collection/components/spinner/spinner.css +5 -3
  200. package/dist/collection/components/spinner/spinner.js +1 -1
  201. package/dist/collection/components/tab/tab.css +5 -3
  202. package/dist/collection/components/tab/tab.js +2 -2
  203. package/dist/collection/components/tab-group/tab-group.js +1 -1
  204. package/dist/collection/components/tab-panel/tab-panel.css +5 -3
  205. package/dist/collection/components/tab-panel/tab-panel.js +1 -1
  206. package/dist/collection/components/table/table-cell/table-cell.css +5 -3
  207. package/dist/collection/components/table/table-cell/table-cell.js +2 -2
  208. package/dist/collection/components/table/table-header/table-header.css +5 -3
  209. package/dist/collection/components/table/table-header/table-header.js +1 -1
  210. package/dist/collection/components/table/table-row/table-row.css +5 -3
  211. package/dist/collection/components/table/table-row/table-row.js +2 -2
  212. package/dist/collection/components/table/table-rowgroup/table-rowgroup.css +5 -3
  213. package/dist/collection/components/table/table-rowgroup/table-rowgroup.js +2 -2
  214. package/dist/collection/components/table/table.css +5 -3
  215. package/dist/collection/components/table/table.js +2 -2
  216. package/dist/collection/components/textarea/textarea.css +5 -3
  217. package/dist/collection/components/textarea/textarea.js +2 -2
  218. package/dist/collection/components/toggle-button/toggle-button.css +5 -3
  219. package/dist/collection/components/toggle-button/toggle-button.js +3 -3
  220. package/dist/collection/components/toggle-chip/toggle-chip.css +5 -3
  221. package/dist/collection/components/toggle-chip/toggle-chip.js +3 -3
  222. package/dist/collection/components/toggle-group/toggle-group.css +5 -3
  223. package/dist/collection/components/toggle-group/toggle-group.js +2 -2
  224. package/dist/collection/components/toggle-switch/toggle-switch.css +5 -3
  225. package/dist/collection/components/toggle-switch/toggle-switch.js +4 -4
  226. package/dist/collection/components/tooltip/tooltip.css +5 -3
  227. package/dist/collection/components/tooltip/tooltip.js +3 -3
  228. package/dist/collection/components/wizard/wizard-step.js +2 -2
  229. package/dist/collection/components/wizard/wizard.css +5 -3
  230. package/dist/collection/components/wizard/wizard.js +1 -1
  231. package/dist/collection/components/wizard-icon/wizard-icon.css +5 -3
  232. package/dist/collection/components/wizard-icon/wizard-icon.js +1 -1
  233. package/dist/components/b2b-alert.js +1 -1
  234. package/dist/components/b2b-anchor.js +1 -1
  235. package/dist/components/b2b-background-box.js +1 -1
  236. package/dist/components/b2b-breadcrumb-item.js +1 -1
  237. package/dist/components/b2b-breadcrumb.js +1 -1
  238. package/dist/components/b2b-card.js +1 -1
  239. package/dist/components/b2b-checkbox-group.js +1 -1
  240. package/dist/components/b2b-date-picker.js +40 -13
  241. package/dist/components/b2b-dropdown.js +124 -33
  242. package/dist/components/b2b-flyout-menu-option.js +2 -2
  243. package/dist/components/b2b-flyout-menu.js +4 -4
  244. package/dist/components/b2b-grid-col.js +1 -1
  245. package/dist/components/b2b-grid-row.js +2 -2
  246. package/dist/components/b2b-grid.js +2 -2
  247. package/dist/components/b2b-icon-50.js +1 -1
  248. package/dist/components/b2b-icon.js +1 -1
  249. package/dist/components/b2b-label.js +3 -3
  250. package/dist/components/b2b-modal.js +3 -3
  251. package/dist/components/b2b-multiselect-dropdown.js +72 -22
  252. package/dist/components/b2b-pagination.js +2 -2
  253. package/dist/components/b2b-paragraph.js +3 -3
  254. package/dist/components/b2b-progress-bar.js +4 -4
  255. package/dist/components/b2b-radio-button.js +3 -3
  256. package/dist/components/b2b-radio-group.js +3 -3
  257. package/dist/components/b2b-required-separator.js +2 -2
  258. package/dist/components/b2b-scrollable-container.js +2 -2
  259. package/dist/components/b2b-search.js +1 -1
  260. package/dist/components/b2b-shimmer.js +2 -2
  261. package/dist/components/b2b-snackbar.js +21 -15
  262. package/dist/components/b2b-tab-group.js +1 -1
  263. package/dist/components/b2b-tab-panel.js +2 -2
  264. package/dist/components/b2b-tab.js +3 -3
  265. package/dist/components/b2b-table-row.js +3 -3
  266. package/dist/components/b2b-table-rowgroup.js +3 -3
  267. package/dist/components/b2b-table.js +3 -3
  268. package/dist/components/b2b-textarea.js +3 -3
  269. package/dist/components/b2b-toggle-button.js +4 -4
  270. package/dist/components/b2b-toggle-chip.js +4 -4
  271. package/dist/components/b2b-toggle-group.js +3 -3
  272. package/dist/components/b2b-toggle-switch.js +5 -5
  273. package/dist/components/b2b-tooltip.js +4 -4
  274. package/dist/components/b2b-wizard-step.js +3 -3
  275. package/dist/components/b2b-wizard.js +2 -2
  276. package/dist/components/button.js +1 -1
  277. package/dist/components/checkbox.js +1 -1
  278. package/dist/components/chip.js +6 -4
  279. package/dist/components/date-picker-days-header.js +1 -1
  280. package/dist/components/date-picker-days.js +1 -1
  281. package/dist/components/date-picker-header.js +1 -1
  282. package/dist/components/date-picker-months.js +1 -1
  283. package/dist/components/date-picker-years.js +1 -1
  284. package/dist/components/headline.js +1 -1
  285. package/dist/components/icon-100.js +4 -2
  286. package/dist/components/input-group.js +2 -2
  287. package/dist/components/input-label.js +2 -2
  288. package/dist/components/input-list-option.js +2 -2
  289. package/dist/components/input-list.js +3 -3
  290. package/dist/components/input.js +5 -5
  291. package/dist/components/multiselect-option.js +2 -2
  292. package/dist/components/rounded-icon.js +5 -5
  293. package/dist/components/separator.js +2 -2
  294. package/dist/components/spinner.js +2 -2
  295. package/dist/components/table-cell.js +3 -3
  296. package/dist/components/table-header.js +2 -2
  297. package/dist/components/wizard-icon.js +2 -2
  298. package/dist/custom-elements.json +32 -2
  299. package/dist/esm/b2b-alert.entry.js +1 -1
  300. package/dist/esm/b2b-anchor.entry.js +1 -1
  301. package/dist/esm/b2b-background-box.entry.js +1 -1
  302. package/dist/esm/b2b-breadcrumb-item.entry.js +1 -1
  303. package/dist/esm/b2b-breadcrumb.entry.js +1 -1
  304. package/dist/esm/b2b-button_2.entry.js +3 -3
  305. package/dist/esm/b2b-card.entry.js +1 -1
  306. package/dist/esm/b2b-checkbox-group.entry.js +1 -1
  307. package/dist/esm/b2b-checkbox.entry.js +1 -1
  308. package/dist/esm/b2b-chip-component_2.entry.js +6 -5
  309. package/dist/esm/b2b-core-components.js +1 -1
  310. package/dist/esm/b2b-date-picker-days_5.entry.js +5 -5
  311. package/dist/esm/b2b-date-picker.entry.js +36 -12
  312. package/dist/esm/b2b-dropdown.entry.js +115 -32
  313. package/dist/esm/b2b-flyout-menu-option.entry.js +2 -2
  314. package/dist/esm/b2b-flyout-menu.entry.js +4 -4
  315. package/dist/esm/b2b-grid-col.entry.js +1 -1
  316. package/dist/esm/b2b-grid-row.entry.js +2 -2
  317. package/dist/esm/b2b-grid.entry.js +2 -2
  318. package/dist/esm/b2b-headline.entry.js +1 -1
  319. package/dist/esm/b2b-icon-100.entry.js +4 -2
  320. package/dist/esm/b2b-icon-50.entry.js +1 -1
  321. package/dist/esm/b2b-icon.entry.js +1 -1
  322. package/dist/esm/b2b-input-group_2.entry.js +5 -5
  323. package/dist/esm/b2b-input-label.entry.js +2 -2
  324. package/dist/esm/b2b-input_2.entry.js +7 -7
  325. package/dist/esm/b2b-label.entry.js +3 -3
  326. package/dist/esm/b2b-modal.entry.js +3 -3
  327. package/dist/esm/b2b-multiselect-dropdown.entry.js +65 -22
  328. package/dist/esm/b2b-pagination.entry.js +2 -2
  329. package/dist/esm/b2b-paragraph.entry.js +3 -3
  330. package/dist/esm/b2b-progress-bar.entry.js +4 -4
  331. package/dist/esm/b2b-radio-button.entry.js +3 -3
  332. package/dist/esm/b2b-radio-group.entry.js +3 -3
  333. package/dist/esm/b2b-required-separator.entry.js +2 -2
  334. package/dist/esm/b2b-rounded-icon.entry.js +5 -5
  335. package/dist/esm/b2b-scrollable-container.entry.js +2 -2
  336. package/dist/esm/b2b-search.entry.js +1 -1
  337. package/dist/esm/b2b-separator.entry.js +2 -2
  338. package/dist/esm/b2b-shimmer.entry.js +2 -2
  339. package/dist/esm/b2b-snackbar.entry.js +20 -14
  340. package/dist/esm/b2b-tab-group.entry.js +1 -1
  341. package/dist/esm/b2b-tab-panel.entry.js +2 -2
  342. package/dist/esm/b2b-tab.entry.js +3 -3
  343. package/dist/esm/b2b-table-cell_2.entry.js +5 -5
  344. package/dist/esm/b2b-table-row.entry.js +3 -3
  345. package/dist/esm/b2b-table-rowgroup.entry.js +3 -3
  346. package/dist/esm/b2b-table.entry.js +3 -3
  347. package/dist/esm/b2b-textarea.entry.js +3 -3
  348. package/dist/esm/b2b-toggle-button.entry.js +4 -4
  349. package/dist/esm/b2b-toggle-chip.entry.js +4 -4
  350. package/dist/esm/b2b-toggle-group.entry.js +3 -3
  351. package/dist/esm/b2b-toggle-switch.entry.js +5 -5
  352. package/dist/esm/b2b-tooltip.entry.js +4 -4
  353. package/dist/esm/b2b-wizard-icon.entry.js +2 -2
  354. package/dist/esm/b2b-wizard-step.entry.js +3 -3
  355. package/dist/esm/b2b-wizard.entry.js +2 -2
  356. package/dist/esm/loader.js +1 -1
  357. package/dist/types/components/chip/chip.d.ts +2 -0
  358. package/dist/types/components/chip/chip.stories.d.ts +2 -0
  359. package/dist/types/components/date-picker/date-picker.d.ts +2 -0
  360. package/dist/types/components/dropdown/dropdown.d.ts +24 -5
  361. package/dist/types/components/grid/column.d.ts +1 -1
  362. package/dist/types/components/icon-100/types.d.ts +1 -1
  363. package/dist/types/components/multiselect-dropdown/multiselect-dropdown.d.ts +15 -3
  364. package/dist/types/components/multiselect-dropdown/multiselect-dropdown.stories.d.ts +5 -0
  365. package/dist/types/components/snackbar/snackbar.d.ts +2 -0
  366. package/dist/types/components.d.ts +54 -2
  367. package/dist/web-types.json +62 -4
  368. package/package.json +2 -2
  369. package/dist/b2b-core-components/p-01a5c813.entry.js +0 -1
  370. package/dist/b2b-core-components/p-01aea1a4.entry.js +0 -1
  371. package/dist/b2b-core-components/p-02b5dcb1.entry.js +0 -1
  372. package/dist/b2b-core-components/p-10e9a961.entry.js +0 -1
  373. package/dist/b2b-core-components/p-150f78f4.entry.js +0 -1
  374. package/dist/b2b-core-components/p-1758bea9.entry.js +0 -1
  375. package/dist/b2b-core-components/p-1ac1ed23.entry.js +0 -1
  376. package/dist/b2b-core-components/p-201b438d.entry.js +0 -1
  377. package/dist/b2b-core-components/p-225e561a.entry.js +0 -1
  378. package/dist/b2b-core-components/p-247b295d.entry.js +0 -1
  379. package/dist/b2b-core-components/p-28674643.entry.js +0 -1
  380. package/dist/b2b-core-components/p-30dce961.entry.js +0 -1
  381. package/dist/b2b-core-components/p-371efcb7.entry.js +0 -1
  382. package/dist/b2b-core-components/p-37cdfc83.entry.js +0 -1
  383. package/dist/b2b-core-components/p-3e50a85d.entry.js +0 -1
  384. package/dist/b2b-core-components/p-40c31c85.entry.js +0 -1
  385. package/dist/b2b-core-components/p-438ab795.entry.js +0 -1
  386. package/dist/b2b-core-components/p-45e19c6e.entry.js +0 -1
  387. package/dist/b2b-core-components/p-4d96ee04.entry.js +0 -1
  388. package/dist/b2b-core-components/p-51dab4f2.entry.js +0 -1
  389. package/dist/b2b-core-components/p-572f9f64.entry.js +0 -1
  390. package/dist/b2b-core-components/p-5c576b32.entry.js +0 -1
  391. package/dist/b2b-core-components/p-71f1d9a1.entry.js +0 -1
  392. package/dist/b2b-core-components/p-74c0757b.entry.js +0 -1
  393. package/dist/b2b-core-components/p-8c3b4f01.entry.js +0 -1
  394. package/dist/b2b-core-components/p-8fa70a00.entry.js +0 -1
  395. package/dist/b2b-core-components/p-900f47c2.entry.js +0 -1
  396. package/dist/b2b-core-components/p-925553cd.entry.js +0 -1
  397. package/dist/b2b-core-components/p-95570f8e.entry.js +0 -1
  398. package/dist/b2b-core-components/p-96bde9dd.entry.js +0 -1
  399. package/dist/b2b-core-components/p-99060fad.entry.js +0 -1
  400. package/dist/b2b-core-components/p-9de02b91.entry.js +0 -1
  401. package/dist/b2b-core-components/p-9e3d9908.entry.js +0 -1
  402. package/dist/b2b-core-components/p-a0ab40f0.entry.js +0 -1
  403. package/dist/b2b-core-components/p-a6dec156.entry.js +0 -1
  404. package/dist/b2b-core-components/p-b6916793.entry.js +0 -1
  405. package/dist/b2b-core-components/p-b7afa702.entry.js +0 -1
  406. package/dist/b2b-core-components/p-b98f7c3c.entry.js +0 -1
  407. package/dist/b2b-core-components/p-bf8db809.entry.js +0 -1
  408. package/dist/b2b-core-components/p-c3d76d28.entry.js +0 -1
  409. package/dist/b2b-core-components/p-c69df063.entry.js +0 -1
  410. package/dist/b2b-core-components/p-c8838f46.entry.js +0 -1
  411. package/dist/b2b-core-components/p-cc0ad9b7.entry.js +0 -1
  412. package/dist/b2b-core-components/p-d2c93cb5.entry.js +0 -1
  413. package/dist/b2b-core-components/p-d56a8c1a.entry.js +0 -1
  414. package/dist/b2b-core-components/p-d895f199.entry.js +0 -1
  415. package/dist/b2b-core-components/p-e4359302.entry.js +0 -1
  416. package/dist/b2b-core-components/p-e73552ea.entry.js +0 -1
  417. package/dist/b2b-core-components/p-ef0bbdd1.entry.js +0 -1
  418. package/dist/b2b-core-components/p-f31cc91d.entry.js +0 -1
  419. package/dist/b2b-core-components/p-f6bd827c.entry.js +0 -1
  420. package/dist/b2b-core-components/p-f6e8c4e9.entry.js +0 -1
  421. package/dist/b2b-core-components/p-fbd31067.entry.js +0 -1
  422. /package/dist/b2b-core-components/icons-100/{b2b_icon-sprache.svg → b2b_icon-sphere.svg} +0 -0
  423. /package/dist/collection/components/icon-100/icons-100/{b2b_icon-sprache.svg → b2b_icon-sphere.svg} +0 -0
@@ -1,101 +1,74 @@
1
1
  import { newE2EPage } from "@stencil/core/testing";
2
- describe('B2B-Multiselect-Dropdown', () => {
3
- let page;
4
- const optionsList = [
5
- 'Swift Carrot',
6
- 'Hydromelon',
7
- 'Skyshroom',
8
- 'Fortified Pumpkin',
9
- 'Hyrule Herb',
10
- 'Hylian Shroom',
11
- 'Mighty Banana',
12
- 'Endura Carrot',
13
- 'Golden Apple',
14
- ];
15
- const setOptionsList = async () => {
16
- const multiselect = await page.find('b2b-multiselect-dropdown');
17
- multiselect.setProperty('optionsList', optionsList);
18
- await page.waitForChanges();
19
- };
20
- const setMaxChipAmount = async (chips) => {
21
- const multiselect = await page.find('b2b-multiselect-dropdown');
22
- multiselect.setProperty('maxOptionsVisible', chips);
23
- await page.waitForChanges();
24
- };
25
- beforeEach(async () => {
26
- page = await newE2EPage();
27
- await page.setContent(`<b2b-multiselect-dropdown
28
- placeholder="Please select..."
29
- search-placeholder="Search"
30
- select-all-label="Select All"
31
- label="Hylian fruits and vegetables"></b2b-multiselect-dropdown>`);
2
+ describe('b2b-multiselect-dropdown', () => {
3
+ it('should render with placeholder', async () => {
4
+ const page = await newE2EPage({
5
+ html: `<b2b-multiselect-dropdown placeholder="Select an option"></b2b-multiselect-dropdown>`,
6
+ });
7
+ const placeholder = await page.find('b2b-multiselect-dropdown >>> .b2b-multiselect-dropdown__placeholder');
8
+ expect(placeholder).not.toBeNull();
9
+ expect(placeholder).toEqualText('Select an option');
32
10
  });
33
- it('should render the multiselect dropdown', async () => {
34
- const multiselect = await page.find('b2b-multiselect-dropdown');
35
- await setOptionsList();
36
- const options = await page.findAll('b2b-multiselect-dropdown >>> b2b-multiselect-option');
37
- expect(options.length).toBe(10);
38
- expect(multiselect).not.toBeNull();
11
+ it('should render with hint message', async () => {
12
+ const page = await newE2EPage({
13
+ html: `<b2b-multiselect-dropdown hint="Choose wisely!"></b2b-multiselect-dropdown>`,
14
+ });
15
+ const hint = await page.find('b2b-multiselect-dropdown >>> .b2b-multiselect-dropdown__hint');
16
+ const text = hint.textContent;
17
+ expect(text).toBe('Choose wisely!');
39
18
  });
40
- it('should select an option and display it as a chip', async () => {
41
- const multiselect = await page.find('b2b-multiselect-dropdown');
42
- const selectedSpy = await page.spyOnEvent('b2b-selected');
43
- await setOptionsList();
44
- await multiselect.click();
45
- await page.waitForChanges();
46
- const opt = await page.find({ text: optionsList[0] });
47
- await opt.click();
19
+ it('should open dropdown on click and displays options', async () => {
20
+ const page = await newE2EPage({
21
+ html: `<b2b-multiselect-dropdown placeholder="Choose" options-list="Swift Carrot, Happy Onion, Cool Tomato"></b2b-multiselect-dropdown>`,
22
+ });
23
+ const trigger = await page.find('b2b-multiselect-dropdown >>> .b2b-multiselect-dropdown');
24
+ await trigger.click();
48
25
  await page.waitForChanges();
49
- const chip = await page.find('b2b-multiselect-dropdown >>> b2b-chip-component');
50
- const val = await chip.getProperty('value');
51
- expect(val).toEqualText(optionsList[0]);
52
- expect(selectedSpy).toHaveReceivedEvent();
53
- expect(selectedSpy).toHaveReceivedEventDetail(['Swift Carrot']);
26
+ const allOptions = await page.findAll('b2b-multiselect-dropdown >>> b2b-multiselect-option');
27
+ expect(allOptions.length).toBeGreaterThan(1);
28
+ const checkbox = await allOptions[1].find('b2b-checkbox');
29
+ await checkbox.click();
30
+ const values = await Promise.all(allOptions.slice(1).map(async (opt) => {
31
+ const cb = await opt.find('b2b-checkbox');
32
+ return cb.getAttribute('value');
33
+ }));
34
+ expect(values).toContain('Swift Carrot');
35
+ expect(values).toContain('Happy Onion');
36
+ expect(values).toContain('Cool Tomato');
54
37
  });
55
- it('should select all options and display them as chips', async () => {
56
- const multiselect = await page.find('b2b-multiselect-dropdown');
57
- const selectedSpy = await page.spyOnEvent('b2b-selected');
58
- await setOptionsList();
59
- await setMaxChipAmount(optionsList.length);
60
- await multiselect.click();
61
- await page.waitForChanges();
62
- const opt = await page.find({ text: 'Select All' });
63
- await opt.click();
38
+ it('should emits b2b-selected event on option select and render the chips', async () => {
39
+ const page = await newE2EPage({
40
+ html: `<b2b-multiselect-dropdown options-list="Alpha, Beta"></b2b-multiselect-dropdown>`,
41
+ });
42
+ const trigger = await page.find('b2b-multiselect-dropdown >>> .b2b-multiselect-dropdown');
64
43
  await page.waitForChanges();
65
- const chips = await page.findAll('b2b-multiselect-dropdown >>> b2b-chip-component');
66
- expect(chips.length).toEqual(optionsList.length);
67
- expect(selectedSpy).toHaveReceivedEvent();
68
- expect(selectedSpy).toHaveReceivedEventDetail(optionsList);
69
- });
70
- it('should not display more chips than the maximum amount prop defines', async () => {
71
- const multiselect = await page.find('b2b-multiselect-dropdown');
72
- await setOptionsList();
73
- await setMaxChipAmount(4);
74
- await multiselect.click();
44
+ await trigger.click();
75
45
  await page.waitForChanges();
76
- const opt = await page.find({ text: 'Select All' });
77
- await opt.click();
46
+ const spy = await page.spyOnEvent('b2b-selected');
47
+ const allOptions = await page.findAll('b2b-multiselect-dropdown >>> b2b-multiselect-option');
48
+ const checkbox = await allOptions[1].find('b2b-checkbox');
49
+ await checkbox.click();
78
50
  await page.waitForChanges();
79
- const chips = await page.findAll('b2b-multiselect-dropdown >>> b2b-chip-component');
80
- // account for overflow chip
81
- expect(chips.length).toEqual(5);
51
+ expect(spy).toHaveReceivedEvent();
52
+ const chip = await page.find('b2b-multiselect-dropdown >>> b2b-chip-component');
53
+ expect(chip).not.toBeNull();
54
+ const valueHandle = await chip.getProperty('value');
55
+ expect(valueHandle).toBe('Alpha');
82
56
  });
83
- /** TO DO: test chip closing
84
- * Puppeteer has issues, but manual testing in vanilla, Vue and React confirmed logic works */
85
- it('should filter options using the search', async () => {
86
- const multiselect = await page.find('b2b-multiselect-dropdown');
87
- await setOptionsList();
88
- await multiselect.click();
57
+ it('should render two chips when select all is clicked', async () => {
58
+ const page = await newE2EPage({
59
+ html: `<b2b-multiselect-dropdown options-list="Alpha, Beta"></b2b-multiselect-dropdown>`,
60
+ });
61
+ const trigger = await page.find('b2b-multiselect-dropdown >>> .b2b-multiselect-dropdown');
89
62
  await page.waitForChanges();
90
- const input = await page.find('b2b-multiselect-dropdown >>> input');
91
- await input.click();
92
- await input.press('b');
63
+ await trigger.click();
93
64
  await page.waitForChanges();
94
- const options = await page.findAll('b2b-multiselect-dropdown >>> b2b-multiselect-option');
95
- expect(options.length).toEqual(3);
96
- await input.press('Backspace');
65
+ const spy = await page.spyOnEvent('b2b-selected');
66
+ const allOptions = await page.findAll('b2b-multiselect-dropdown >>> b2b-multiselect-option');
67
+ const checkbox = await allOptions[0].find('b2b-checkbox');
68
+ await checkbox.click();
97
69
  await page.waitForChanges();
98
- const optionsAfter = await page.findAll('b2b-multiselect-dropdown >>> b2b-multiselect-option');
99
- expect(optionsAfter.length).toEqual(10);
70
+ expect(spy).toHaveReceivedEvent();
71
+ const chips = await page.findAll('b2b-multiselect-dropdown >>> b2b-chip-component');
72
+ expect(chips.length).toBe(2);
100
73
  });
101
74
  });
@@ -2,6 +2,9 @@ import { h, Host, } from "@stencil/core";
2
2
  export class B2bMultiSelectDropdown {
3
3
  constructor() {
4
4
  this.handleInput = event => {
5
+ if (this.disabled) {
6
+ return;
7
+ }
5
8
  this.value = event.target.value.toLowerCase();
6
9
  if (this.value !== '') {
7
10
  const filteredList = this.optionsList.filter(option => option.toLowerCase().indexOf(this.value) > -1);
@@ -44,6 +47,7 @@ export class B2bMultiSelectDropdown {
44
47
  this.handleChipClose = event => {
45
48
  this.currentSelectedValues = this.currentSelectedValues.filter(el => el !== event.detail.value);
46
49
  this.updateOption(event.detail.value);
50
+ this.isOpen = true;
47
51
  this.resetFocus();
48
52
  };
49
53
  this.updateOption = (option) => {
@@ -59,17 +63,32 @@ export class B2bMultiSelectDropdown {
59
63
  .forEach(option => (option.selected = true));
60
64
  };
61
65
  this.setElementOnFocus = () => {
66
+ if (this.disabled)
67
+ return;
62
68
  this.isElementFocused = true;
63
69
  };
64
- this.setElementOnBlur = () => {
70
+ this.setElementOnBlur = (event) => {
71
+ const nextFocusedElement = event === null || event === void 0 ? void 0 : event.relatedTarget;
72
+ if (!nextFocusedElement || !this.hostElement.contains(nextFocusedElement)) {
73
+ this.isOpen = false;
74
+ }
75
+ else {
76
+ this.isOpen = true;
77
+ }
65
78
  this.isElementFocused = false;
66
79
  };
67
80
  this.resetFocus = () => {
81
+ if (this.disabled)
82
+ return;
68
83
  const el = this.hostElement.shadowRoot.querySelector('.b2b-multiselect-dropdown');
69
84
  el.focus();
70
85
  };
71
86
  this.handleMouseDown = (event) => {
72
87
  /** Keep dropdown open if a tag is removed */
88
+ if (this.disabled) {
89
+ event.preventDefault();
90
+ return;
91
+ }
73
92
  if (this.isElementFocused) {
74
93
  event.preventDefault();
75
94
  }
@@ -78,6 +97,8 @@ export class B2bMultiSelectDropdown {
78
97
  }
79
98
  };
80
99
  this.handleKeyDown = (event) => {
100
+ if (this.disabled)
101
+ return;
81
102
  if (event.key === 'Enter') {
82
103
  event.preventDefault();
83
104
  this.resetFocus();
@@ -116,51 +137,72 @@ export class B2bMultiSelectDropdown {
116
137
  this.searchPlaceholder = undefined;
117
138
  this.selectAllLabel = undefined;
118
139
  this.maxOptionsVisible = 8;
140
+ this.required = false;
141
+ this.invalid = false;
142
+ this.errorMessage = undefined;
143
+ this.hint = undefined;
144
+ this.disabled = false;
119
145
  this.currentSelectedValues = [];
120
146
  this.currentList = this.optionsList;
121
147
  this.value = '';
122
148
  this.isElementFocused = false;
149
+ this.isOpen = false;
123
150
  this.hasOptionList = this.optionsList.length > 0;
124
151
  }
152
+ parsePropToArray(value) {
153
+ if (Array.isArray(value))
154
+ return value;
155
+ try {
156
+ return JSON.parse(value);
157
+ }
158
+ catch (_a) {
159
+ return value
160
+ .split(',')
161
+ .map(v => v.trim())
162
+ .filter(Boolean);
163
+ }
164
+ }
125
165
  componentWillLoad() {
126
- this.parseSelectedValuesAndOptionsList();
166
+ this.selectedValues = this.parsePropToArray(this.selectedValues);
167
+ this.optionsList = this.parsePropToArray(this.optionsList);
168
+ this.currentList = this.optionsList;
127
169
  this.currentSelectedValues = this.selectedValues.filter(value => this.optionsList.includes(value));
128
170
  }
129
171
  /** Needed to trigger a re-render for async data */
130
172
  watchPropHandler(newList) {
131
- this.hasOptionList = newList.length > 0;
173
+ this.optionsList = this.parsePropToArray(newList);
174
+ this.hasOptionList = this.optionsList.length > 0;
132
175
  if (this.hasOptionList) {
133
- this.currentList = newList;
176
+ this.currentList = this.optionsList;
177
+ this.currentSelectedValues = this.selectedValues.filter(value => this.optionsList.includes(value));
134
178
  }
135
179
  }
180
+ /** Needed to trigger a re-render for async data */
181
+ handleSelectedValuesChangeFromOutside(newVal) {
182
+ this.selectedValues = this.parsePropToArray(newVal);
183
+ this.currentSelectedValues = this.selectedValues.filter(val => this.optionsList.includes(val));
184
+ }
136
185
  handleSelectedValuesChange(newValues) {
137
186
  this.b2bChange.emit(newValues);
138
187
  }
139
- parseSelectedValuesAndOptionsList() {
140
- if (typeof this.selectedValues === 'string') {
141
- this.selectedValues = this.parseStringToArray(this.selectedValues);
142
- }
143
- if (typeof this.optionsList === 'string') {
144
- this.optionsList = this.parseStringToArray(this.optionsList);
145
- }
146
- }
147
- parseStringToArray(value) {
148
- return JSON.parse(value);
149
- }
150
188
  componentDidUpdate() {
151
189
  const options = this.getOptions();
152
190
  this.updateAllOptions(options);
153
191
  this.updateSelectAll(options);
154
192
  }
155
193
  render() {
156
- return (h(Host, { key: '53aff695c900964cb3dc5bcb68c10b5285be16cd', onFocus: this.setElementOnFocus, onBlur: this.setElementOnBlur, onClick: this.handleMouseDown, onKeyDown: this.handleKeyDown }, h("b2b-input-label", { key: '983a3b773e397fe5e1512168acc12d07a41e57ff' }, this.label), h("div", { key: '577f648af5e7fda2e1a225a97faf05612c84e772', class: {
194
+ return (h(Host, { key: 'c105c46f7461d0a2692282ed15d07460e31273b9', onFocus: this.setElementOnFocus, onBlur: this.setElementOnBlur, onClick: this.handleMouseDown, onKeyDown: this.handleKeyDown }, h("b2b-input-label", { key: '93fc16c4f74cb669bc7d0d82a673b414224eb4b1', required: this.required }, this.label), h("div", { key: '397e2d0b2315f5fdce8c2cf041ac4a92f9effea5', class: {
157
195
  'b2b-multiselect-dropdown': true,
158
- 'b2b-multiselect-dropdown--open': this.isElementFocused,
159
- }, tabindex: 0, role: "combobox", "aria-expanded": this.isElementFocused }, this.currentSelectedValues.length === 0 ? (h("span", { class: "b2b-multiselect-dropdown__placeholder" }, this.placeholder)) : (h("div", { class: "b2b-multiselect-dropdown__chip-container" }, this.renderChips())), h("b2b-icon-100", { key: '9bbe6f5442662cd102292846f5476b8ce899356a', icon: "b2b_icon-arrow-down" })), h("div", { key: '17593767cfeb17c341efd46dfc007197847c97bb', class: {
196
+ 'b2b-multiselect-dropdown--open': this.isOpen,
197
+ 'b2b-multiselect-dropdown--error': this.invalid && !this.disabled,
198
+ 'b2b-multiselect-dropdown--disabled': this.disabled,
199
+ 'b2b-multiselect-dropdown--focused': this.invalid && this.isElementFocused,
200
+ }, tabindex: 0, role: "combobox", onClick: () => (this.isOpen = !this.isOpen), "aria-expanded": this.isElementFocused }, h("div", { key: '2b3693ab1bd0fb6be6b13efa8eb8561b10480104', class: "b2b-multiselect-dropdown__chip-container" }, this.currentSelectedValues.length === 0 ? (h("span", { class: "b2b-multiselect-dropdown__placeholder" }, this.placeholder)) : (this.renderChips())), h("b2b-icon-100", { key: 'ee601f312e28840cdc16501dc60b016a6106cc3e', icon: "b2b_icon-arrow-down" })), h("div", { key: '50b47c0f1f20afd3ec6ed093237a202ed1d9a59b', class: {
160
201
  'b2b-multiselect-dropdown__options-container': true,
161
- 'b2b-multiselect-dropdown__options-container--visible': this.isElementFocused,
162
- } }, h("div", { key: 'fe585cea40b0ef97d46cbd3a92f60c7382f75a97', class: "b2b-multiselect-dropdown__options", role: "listbox", "aria-label": this.label, tabIndex: -1 }, h("div", { key: '863879f8b34e870bb2f82d62edf07aad8a475b6d', class: "b2b-multiselect-dropdown__option__search" }, h("input", { key: '9866a72f2f7a4b19968ac5c03d6b07e60fcb6504', type: "text", onInput: this.handleInput, class: "b2b-multiselect-dropdown__option__search__input", placeholder: this.searchPlaceholder })), h("b2b-multiselect-option", { key: '93c740c3ba53544c90d6c1130fee1e444b53965b', class: "b2b-multiselect-dropdown__option__select-all", option: this.selectAllLabel, id: "select-all", "onB2b-option-selected": this.handleSelectAll }), this.hasOptionList &&
163
- this.currentList.map(option => (h("b2b-multiselect-option", { "onB2b-option-selected": this.handleSelectedChange, option: option })))))));
202
+ 'b2b-multiselect-dropdown__options-container--visible': this.isOpen,
203
+ } }, h("div", { key: 'b8c651872eca608e3c02c42920cf0d8e6d117aa9', class: "b2b-multiselect-dropdown__options", role: "listbox", "aria-label": this.label, tabIndex: -1 }, h("div", { key: '2a0d909d9994ac59a22e60c0ed729cf90d74cf92', class: "b2b-multiselect-dropdown__option__search" }, h("input", { key: '66081cd675bb03da68a445c090c69632611e1a32', type: "text", onInput: this.handleInput, class: "b2b-multiselect-dropdown__option__search__input", placeholder: this.searchPlaceholder })), h("b2b-multiselect-option", { key: 'a1b146c742e206c05341aab80f49629a536b9c09', class: "b2b-multiselect-dropdown__option__select-all", option: this.selectAllLabel, id: "select-all", "onB2b-option-selected": this.handleSelectAll }), this.hasOptionList &&
204
+ this.currentList.map(option => (h("b2b-multiselect-option", { "onB2b-option-selected": this.handleSelectedChange, option: option }))))), (this.hint !== undefined && !this.invalid) ||
205
+ (this.hint !== undefined && this.disabled) ? (h("span", { class: "b2b-multiselect-dropdown__hint" }, this.hint)) : (''), this.errorMessage !== undefined && this.invalid && !this.disabled ? (h("span", { class: "b2b-multiselect-dropdown__error-message" }, this.errorMessage)) : ('')));
164
206
  }
165
207
  static get is() { return "b2b-multiselect-dropdown"; }
166
208
  static get encapsulation() { return "shadow"; }
@@ -297,6 +339,94 @@ export class B2bMultiSelectDropdown {
297
339
  "attribute": "max-options-visible",
298
340
  "reflect": false,
299
341
  "defaultValue": "8"
342
+ },
343
+ "required": {
344
+ "type": "boolean",
345
+ "mutable": false,
346
+ "complexType": {
347
+ "original": "boolean",
348
+ "resolved": "boolean",
349
+ "references": {}
350
+ },
351
+ "required": false,
352
+ "optional": false,
353
+ "docs": {
354
+ "tags": [],
355
+ "text": "Adds an asterisk at the end of the label to signify that the field is required."
356
+ },
357
+ "attribute": "required",
358
+ "reflect": true,
359
+ "defaultValue": "false"
360
+ },
361
+ "invalid": {
362
+ "type": "boolean",
363
+ "mutable": false,
364
+ "complexType": {
365
+ "original": "boolean",
366
+ "resolved": "boolean",
367
+ "references": {}
368
+ },
369
+ "required": false,
370
+ "optional": false,
371
+ "docs": {
372
+ "tags": [],
373
+ "text": "Whether the multi select dropdown is currently invalid. Per default, it is false."
374
+ },
375
+ "attribute": "invalid",
376
+ "reflect": true,
377
+ "defaultValue": "false"
378
+ },
379
+ "errorMessage": {
380
+ "type": "string",
381
+ "mutable": false,
382
+ "complexType": {
383
+ "original": "string",
384
+ "resolved": "string",
385
+ "references": {}
386
+ },
387
+ "required": false,
388
+ "optional": true,
389
+ "docs": {
390
+ "tags": [],
391
+ "text": "The error message that is shown if the multi select dropdown is invalid."
392
+ },
393
+ "attribute": "error-message",
394
+ "reflect": false
395
+ },
396
+ "hint": {
397
+ "type": "string",
398
+ "mutable": false,
399
+ "complexType": {
400
+ "original": "string",
401
+ "resolved": "string",
402
+ "references": {}
403
+ },
404
+ "required": false,
405
+ "optional": true,
406
+ "docs": {
407
+ "tags": [],
408
+ "text": "The hint text that appears underneath the multi select dropdown field."
409
+ },
410
+ "attribute": "hint",
411
+ "reflect": false
412
+ },
413
+ "disabled": {
414
+ "type": "boolean",
415
+ "mutable": false,
416
+ "complexType": {
417
+ "original": "boolean",
418
+ "resolved": "boolean",
419
+ "references": {}
420
+ },
421
+ "required": false,
422
+ "optional": false,
423
+ "docs": {
424
+ "tags": [],
425
+ "text": "Whether or not the field is disabled. Default is false."
426
+ },
427
+ "attribute": "disabled",
428
+ "reflect": true,
429
+ "defaultValue": "false"
300
430
  }
301
431
  };
302
432
  }
@@ -306,6 +436,7 @@ export class B2bMultiSelectDropdown {
306
436
  "currentList": {},
307
437
  "value": {},
308
438
  "isElementFocused": {},
439
+ "isOpen": {},
309
440
  "hasOptionList": {}
310
441
  };
311
442
  }
@@ -332,6 +463,9 @@ export class B2bMultiSelectDropdown {
332
463
  return [{
333
464
  "propName": "optionsList",
334
465
  "methodName": "watchPropHandler"
466
+ }, {
467
+ "propName": "selectedValues",
468
+ "methodName": "handleSelectedValuesChangeFromOutside"
335
469
  }, {
336
470
  "propName": "currentSelectedValues",
337
471
  "methodName": "handleSelectedValuesChange"
@@ -25,6 +25,11 @@ const meta = {
25
25
  selectAllLabel: 'Select All',
26
26
  maxOptionsVisible: 8,
27
27
  selectedValues: ['Watermelon', 'Banana'],
28
+ required: false,
29
+ hint: '',
30
+ disabled: false,
31
+ invalid: false,
32
+ errorMessage: '',
28
33
  },
29
34
  argTypes: Object.assign(Object.assign({}, multiselectArgs), { optionsList: { table: { disable: true } }, selectedValues: { table: { disable: true } } }),
30
35
  render: (_a) => {
@@ -36,7 +41,12 @@ const meta = {
36
41
  select-all-label=${args.selectAllLabel}
37
42
  placeholder=${args.placeholder}
38
43
  search-placeholder=${args.searchPlaceholder}
39
- .optionsList=${args.optionsList}>
44
+ .optionsList=${args.optionsList}
45
+ required=${args.required}
46
+ hint=${args.hint}
47
+ disabled=${args.disabled}
48
+ invalid=${args.invalid}
49
+ error-message=${args.errorMessage}>
40
50
  </b2b-multiselect-dropdown>
41
51
  </div>`;
42
52
  },
@@ -57,8 +67,28 @@ export const InitialSelectedValues = {
57
67
  placeholder=${args.placeholder}
58
68
  search-placeholder=${args.searchPlaceholder}
59
69
  .optionsList=${args.optionsList}
60
- .selectedValues=${args.selectedValues}>
70
+ .selectedValues=${args.selectedValues}
71
+ required=${args.required}
72
+ hint=${args.hint}
73
+ disabled=${args.disabled}
74
+ invalid=${args.invalid}
75
+ error-message=${args.errorMessage}>
61
76
  </b2b-multiselect-dropdown>
62
77
  </div>`;
63
78
  },
64
79
  };
80
+ export const Required = {
81
+ args: Object.assign(Object.assign({}, meta.args), { required: true }),
82
+ };
83
+ export const Hint = {
84
+ args: Object.assign(Object.assign({}, meta.args), { hint: 'please select a value' }),
85
+ };
86
+ export const Disabled = {
87
+ args: Object.assign(Object.assign({}, meta.args), { disabled: true }),
88
+ };
89
+ export const Invalid = {
90
+ args: Object.assign(Object.assign({}, meta.args), { invalid: true }),
91
+ };
92
+ export const InvalidWithErrorMessage = {
93
+ args: Object.assign(Object.assign({}, meta.args), { invalid: true, errorMessage: 'error has occurred' }),
94
+ };
@@ -13,9 +13,9 @@ export class B2bMultiSelectOption {
13
13
  this.indeterminate = false;
14
14
  }
15
15
  render() {
16
- return (h(Host, { key: '3e19ddbb9623536a344b9d36529af3f7012a965d', role: "option", class: {
16
+ return (h(Host, { key: 'c3c1955fd6ff4019b2cbc860ded4a0d51dc7b4ee', role: "option", class: {
17
17
  'b2b-multiselect-dropdown__option': true,
18
- } }, h("b2b-checkbox", { key: 'ad7c4e1f2de4361af279ca6648c9a14048773a57', checked: this.selected, "onB2b-change": this.handleCheckboxChange, label: this.option, indeterminate: this.indeterminate, value: this.option })));
18
+ } }, h("b2b-checkbox", { key: '898231cd21f30da27314fa0b938a030c39fedbca', checked: this.selected, "onB2b-change": this.handleCheckboxChange, label: this.option, indeterminate: this.indeterminate, value: this.option })));
19
19
  }
20
20
  static get is() { return "b2b-multiselect-option"; }
21
21
  static get originalStyleUrls() {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Thu, 27 Mar 2025 08:54:03 GMT
3
+ * Generated on Tue, 29 Apr 2025 06:54:24 GMT
4
4
  */
5
5
  :root, :host {
6
6
  --b2b-size-200: 5rem; /* 80px */
@@ -58,6 +58,7 @@
58
58
  --b2b-color-grey-100: #e6e6e6;
59
59
  --b2b-color-grey-50: #eeeeee;
60
60
  --b2b-color-grey-25: #f6f6f6;
61
+ --b2b-color-grey-10: #f0f0f0;
61
62
  --b2b-color-white-100: #ffffff;
62
63
  --b2b-color-black-100: #222222;
63
64
  --b2b-color-black-50: #333333;
@@ -118,12 +119,12 @@
118
119
  --b2b-color-background-overlay: var(--b2b-color-black-100);
119
120
  --b2b-color-background-card: var(--b2b-color-white-100);
120
121
  --b2b-color-background-box: var(--b2b-color-white-100);
121
- --b2b-color-background-page: var(--b2b-color-grey-25);
122
+ --b2b-color-background-page: var(--b2b-color-grey-10);
122
123
  --b2b-color-error-50: var(--b2b-color-red-50);
123
124
  }
124
125
  /**
125
126
  * Do not edit directly
126
- * Generated on Thu, 27 Mar 2025 08:54:03 GMT
127
+ * Generated on Tue, 29 Apr 2025 06:54:24 GMT
127
128
  */
128
129
  :root [data-theme="dark"] {
129
130
  --b2b-size-200: 5rem; /* 80px */
@@ -177,6 +178,7 @@
177
178
  --b2b-color-grey-100: #e6e6e6;
178
179
  --b2b-color-grey-50: #eeeeee;
179
180
  --b2b-color-grey-25: #f6f6f6;
181
+ --b2b-color-grey-10: #f0f0f0;
180
182
  --b2b-color-white-100: #ffffff;
181
183
  --b2b-color-black-100: #222222;
182
184
  --b2b-color-black-50: #333333;
@@ -92,7 +92,7 @@ export class PaginationComponent {
92
92
  };
93
93
  }
94
94
  render() {
95
- return (h("nav", { key: '7a5f0a7ad756286b1fb9aa08af4b0818bff96717' }, h("ol", { key: 'e2c4e68f3581843f4f8445942eb590229fab1637', class: "b2b-pagination" }, this.activePage !== 1 && (h("li", { class: "b2b-pagination--previous" }, h("b2b-button", { onClick: this.selectPreviousPage, size: "50", variant: "secondary", "aria-label": this.ariaLabelPreviousPage }, PaginationConstants.BACK))), this.navItems.map((navItem, index) => {
95
+ return (h("nav", { key: '24405723ea4d2d6427911f1546c4edfabbf98ca0' }, h("ol", { key: 'a1af6ca952107fde2f97c26d3d152ef191142bea', class: "b2b-pagination" }, this.activePage !== 1 && (h("li", { class: "b2b-pagination--previous" }, h("b2b-button", { onClick: this.selectPreviousPage, size: "50", variant: "secondary", "aria-label": this.ariaLabelPreviousPage }, PaginationConstants.BACK))), this.navItems.map((navItem, index) => {
96
96
  const isItemActive = this.activePage === navItem;
97
97
  return (h("li", { class: this.getItemClass(navItem) }, h("b2b-button", { onClick: () => this.setSelectedPage(navItem, index), active: isItemActive, disabled: isItemActive, size: "50", variant: "secondary" }, navItem)));
98
98
  }), this.activePage !== this.totalPages && (h("li", { class: "b2b-pagination--next" }, h("b2b-button", { onClick: this.selectNextPage, size: "50", variant: "secondary", "aria-label": this.ariaLabelNextPage }, PaginationConstants.NEXT))))));
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Thu, 27 Mar 2025 08:54:03 GMT
3
+ * Generated on Tue, 29 Apr 2025 06:54:24 GMT
4
4
  */
5
5
  :root, :host {
6
6
  --b2b-size-200: 5rem; /* 80px */
@@ -58,6 +58,7 @@
58
58
  --b2b-color-grey-100: #e6e6e6;
59
59
  --b2b-color-grey-50: #eeeeee;
60
60
  --b2b-color-grey-25: #f6f6f6;
61
+ --b2b-color-grey-10: #f0f0f0;
61
62
  --b2b-color-white-100: #ffffff;
62
63
  --b2b-color-black-100: #222222;
63
64
  --b2b-color-black-50: #333333;
@@ -118,12 +119,12 @@
118
119
  --b2b-color-background-overlay: var(--b2b-color-black-100);
119
120
  --b2b-color-background-card: var(--b2b-color-white-100);
120
121
  --b2b-color-background-box: var(--b2b-color-white-100);
121
- --b2b-color-background-page: var(--b2b-color-grey-25);
122
+ --b2b-color-background-page: var(--b2b-color-grey-10);
122
123
  --b2b-color-error-50: var(--b2b-color-red-50);
123
124
  }
124
125
  /**
125
126
  * Do not edit directly
126
- * Generated on Thu, 27 Mar 2025 08:54:03 GMT
127
+ * Generated on Tue, 29 Apr 2025 06:54:24 GMT
127
128
  */
128
129
  :root [data-theme="dark"] {
129
130
  --b2b-size-200: 5rem; /* 80px */
@@ -177,6 +178,7 @@
177
178
  --b2b-color-grey-100: #e6e6e6;
178
179
  --b2b-color-grey-50: #eeeeee;
179
180
  --b2b-color-grey-25: #f6f6f6;
181
+ --b2b-color-grey-10: #f0f0f0;
180
182
  --b2b-color-white-100: #ffffff;
181
183
  --b2b-color-black-100: #222222;
182
184
  --b2b-color-black-50: #333333;
@@ -13,7 +13,7 @@ export class ParagraphComponent {
13
13
  this.display = 'block';
14
14
  }
15
15
  render() {
16
- return (h("p", { key: '410bec2bfaa21c973ecb2c8a40238ca8e858b95f', style: {
16
+ return (h("p", { key: 'c3781dc7215762d8dd038791943a541231731653', style: {
17
17
  display: this.display,
18
18
  }, class: {
19
19
  'b2b-paragraph': true,
@@ -22,7 +22,7 @@ export class ParagraphComponent {
22
22
  ['b2b-paragraph--align-' + this.align]: true,
23
23
  ['b2b-paragraph--no-margin']: !this.margin,
24
24
  ['b2b-paragraph--variant-' + this.variant]: true,
25
- } }, h("slot", { key: 'c2dae90e21ff14bdea080f007eb35d36ade59bad' })));
25
+ } }, h("slot", { key: '5afb431d2d782751f50741a6c10a210df7b1e3e4' })));
26
26
  }
27
27
  static get is() { return "b2b-paragraph"; }
28
28
  static get encapsulation() { return "shadow"; }
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Thu, 27 Mar 2025 08:54:03 GMT
3
+ * Generated on Tue, 29 Apr 2025 06:54:24 GMT
4
4
  */
5
5
  :root, :host {
6
6
  --b2b-size-200: 5rem; /* 80px */
@@ -58,6 +58,7 @@
58
58
  --b2b-color-grey-100: #e6e6e6;
59
59
  --b2b-color-grey-50: #eeeeee;
60
60
  --b2b-color-grey-25: #f6f6f6;
61
+ --b2b-color-grey-10: #f0f0f0;
61
62
  --b2b-color-white-100: #ffffff;
62
63
  --b2b-color-black-100: #222222;
63
64
  --b2b-color-black-50: #333333;
@@ -118,12 +119,12 @@
118
119
  --b2b-color-background-overlay: var(--b2b-color-black-100);
119
120
  --b2b-color-background-card: var(--b2b-color-white-100);
120
121
  --b2b-color-background-box: var(--b2b-color-white-100);
121
- --b2b-color-background-page: var(--b2b-color-grey-25);
122
+ --b2b-color-background-page: var(--b2b-color-grey-10);
122
123
  --b2b-color-error-50: var(--b2b-color-red-50);
123
124
  }
124
125
  /**
125
126
  * Do not edit directly
126
- * Generated on Thu, 27 Mar 2025 08:54:03 GMT
127
+ * Generated on Tue, 29 Apr 2025 06:54:24 GMT
127
128
  */
128
129
  :root [data-theme="dark"] {
129
130
  --b2b-size-200: 5rem; /* 80px */
@@ -177,6 +178,7 @@
177
178
  --b2b-color-grey-100: #e6e6e6;
178
179
  --b2b-color-grey-50: #eeeeee;
179
180
  --b2b-color-grey-25: #f6f6f6;
181
+ --b2b-color-grey-10: #f0f0f0;
180
182
  --b2b-color-white-100: #ffffff;
181
183
  --b2b-color-black-100: #222222;
182
184
  --b2b-color-black-50: #333333;