@otto-de/b2b-core-components 1.38.2 → 1.38.4

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 (301) hide show
  1. package/dist/b2b-core-components/b2b-core-components.esm.js +1 -1
  2. package/dist/b2b-core-components/{p-8cbbea6a.entry.js → p-012f9a77.entry.js} +1 -1
  3. package/dist/b2b-core-components/{p-525e498c.entry.js → p-12e88e5a.entry.js} +1 -1
  4. package/dist/b2b-core-components/{p-89c22770.entry.js → p-1ae5bf79.entry.js} +1 -1
  5. package/dist/b2b-core-components/{p-6a3dd5e8.entry.js → p-1e38b22e.entry.js} +1 -1
  6. package/dist/b2b-core-components/{p-ec6b2805.entry.js → p-1e401aee.entry.js} +1 -1
  7. package/dist/b2b-core-components/p-2ce43490.entry.js +1 -0
  8. package/dist/b2b-core-components/p-330592d1.entry.js +1 -0
  9. package/dist/b2b-core-components/{p-c4dabb68.entry.js → p-351d52af.entry.js} +1 -1
  10. package/dist/b2b-core-components/{p-3f8ed6c4.entry.js → p-3c19ebc5.entry.js} +1 -1
  11. package/dist/b2b-core-components/{p-692f7937.entry.js → p-41113bfa.entry.js} +1 -1
  12. package/dist/b2b-core-components/{p-42348722.entry.js → p-45e198c7.entry.js} +1 -1
  13. package/dist/b2b-core-components/{p-2cc90fc3.entry.js → p-47a837a5.entry.js} +1 -1
  14. package/dist/b2b-core-components/{p-d74582d5.entry.js → p-490b21ac.entry.js} +1 -1
  15. package/dist/b2b-core-components/{p-1875aef7.entry.js → p-4d0f7ee5.entry.js} +1 -1
  16. package/dist/b2b-core-components/{p-c9ed893d.entry.js → p-50b8562f.entry.js} +1 -1
  17. package/dist/b2b-core-components/p-5bfcd77e.entry.js +1 -0
  18. package/dist/b2b-core-components/{p-1ced75c1.entry.js → p-5e4e7118.entry.js} +1 -1
  19. package/dist/b2b-core-components/{p-f9fb31fa.entry.js → p-5fe4ecda.entry.js} +1 -1
  20. package/dist/b2b-core-components/{p-f23fb424.entry.js → p-6e825321.entry.js} +1 -1
  21. package/dist/b2b-core-components/{p-5e5898cf.entry.js → p-756b15c5.entry.js} +1 -1
  22. package/dist/b2b-core-components/{p-4489a1b3.entry.js → p-7adb0f00.entry.js} +1 -1
  23. package/dist/b2b-core-components/p-7bc0bf8d.entry.js +1 -0
  24. package/dist/b2b-core-components/{p-a1448a4a.entry.js → p-83d50990.entry.js} +1 -1
  25. package/dist/b2b-core-components/{p-4b29c057.entry.js → p-8b82cf0f.entry.js} +1 -1
  26. package/dist/b2b-core-components/{p-e6120fd7.entry.js → p-8b8fb118.entry.js} +1 -1
  27. package/dist/b2b-core-components/p-8cf0b81d.entry.js +1 -0
  28. package/dist/b2b-core-components/{p-1b0232ee.entry.js → p-905514d8.entry.js} +1 -1
  29. package/dist/b2b-core-components/{p-aef6ea16.entry.js → p-91013241.entry.js} +1 -1
  30. package/dist/b2b-core-components/p-95d5ae1e.entry.js +1 -0
  31. package/dist/b2b-core-components/{p-c3cccd65.entry.js → p-9b794de2.entry.js} +1 -1
  32. package/dist/b2b-core-components/{p-46409eab.entry.js → p-9da070a1.entry.js} +1 -1
  33. package/dist/b2b-core-components/{p-d26ec4d5.entry.js → p-a52d843b.entry.js} +1 -1
  34. package/dist/b2b-core-components/{p-20878717.entry.js → p-a8ef83ae.entry.js} +1 -1
  35. package/dist/b2b-core-components/p-af2bd305.entry.js +1 -0
  36. package/dist/b2b-core-components/{p-6602703c.entry.js → p-b522f822.entry.js} +1 -1
  37. package/dist/b2b-core-components/{p-d8b518a4.entry.js → p-c883a89a.entry.js} +1 -1
  38. package/dist/b2b-core-components/p-d64f59ba.entry.js +1 -0
  39. package/dist/b2b-core-components/{p-d4c92d91.entry.js → p-de0fb449.entry.js} +1 -1
  40. package/dist/b2b-core-components/{p-f087a103.entry.js → p-e21fd46f.entry.js} +1 -1
  41. package/dist/b2b-core-components/{p-af2f2c4e.entry.js → p-e2b759eb.entry.js} +1 -1
  42. package/dist/b2b-core-components/{p-8968ac38.entry.js → p-e5c8c58b.entry.js} +1 -1
  43. package/dist/b2b-core-components/p-e835a3ef.entry.js +1 -0
  44. package/dist/b2b-core-components/{p-3ace65d8.entry.js → p-eeec1ea5.entry.js} +1 -1
  45. package/dist/b2b-core-components/p-ef1fa1de.entry.js +1 -0
  46. package/dist/b2b-core-components/{p-c54525d6.entry.js → p-f7049240.entry.js} +1 -1
  47. package/dist/b2b-core-components/{p-487561b8.entry.js → p-f8188029.entry.js} +1 -1
  48. package/dist/b2b-core-components/{p-257c89a5.entry.js → p-f9ff8727.entry.js} +1 -1
  49. package/dist/b2b-core-components/{p-0ac46136.entry.js → p-fa03ee6f.entry.js} +1 -1
  50. package/dist/b2b-core-components/{p-e52728b3.entry.js → p-fbbaef26.entry.js} +1 -1
  51. package/dist/b2b-core-components/{p-6de324ba.entry.js → p-fcc5b72c.entry.js} +1 -1
  52. package/dist/cjs/b2b-button_2.cjs.entry.js +2 -2
  53. package/dist/cjs/b2b-chip-component_2.cjs.entry.js +2 -2
  54. package/dist/cjs/b2b-core-components.cjs.js +1 -1
  55. package/dist/cjs/b2b-custom-dropdown-option-category.cjs.entry.js +21 -0
  56. package/dist/cjs/b2b-custom-dropdown-option.cjs.entry.js +2 -2
  57. package/dist/cjs/b2b-custom-dropdown.cjs.entry.js +25 -6
  58. package/dist/cjs/b2b-date-picker-days-header_4.cjs.entry.js +8 -8
  59. package/dist/cjs/b2b-date-picker-days.cjs.entry.js +1 -1
  60. package/dist/cjs/b2b-date-range-picker-days_2.cjs.entry.js +3 -3
  61. package/dist/cjs/b2b-date-range-picker.cjs.entry.js +13 -5
  62. package/dist/cjs/b2b-dropdown.cjs.entry.js +2 -2
  63. package/dist/cjs/b2b-flyout-menu-option.cjs.entry.js +1 -1
  64. package/dist/cjs/b2b-flyout-menu.cjs.entry.js +3 -3
  65. package/dist/cjs/b2b-grid-col.cjs.entry.js +1 -1
  66. package/dist/cjs/b2b-grid-row.cjs.entry.js +2 -2
  67. package/dist/cjs/b2b-grid.cjs.entry.js +1 -1
  68. package/dist/cjs/b2b-input-group_2.cjs.entry.js +3 -3
  69. package/dist/cjs/b2b-input-label.cjs.entry.js +2 -2
  70. package/dist/cjs/b2b-input-list-option.cjs.entry.js +1 -1
  71. package/dist/cjs/b2b-input.cjs.entry.js +4 -4
  72. package/dist/cjs/b2b-label.cjs.entry.js +2 -2
  73. package/dist/cjs/b2b-modal.cjs.entry.js +2 -2
  74. package/dist/cjs/b2b-multiselect-dropdown.cjs.entry.js +3 -3
  75. package/dist/cjs/b2b-pagination.cjs.entry.js +1 -1
  76. package/dist/cjs/b2b-progress-bar.cjs.entry.js +3 -3
  77. package/dist/cjs/b2b-radio-button.cjs.entry.js +2 -2
  78. package/dist/cjs/b2b-radio-group.cjs.entry.js +2 -2
  79. package/dist/cjs/b2b-required-separator.cjs.entry.js +1 -1
  80. package/dist/cjs/b2b-rounded-icon.cjs.entry.js +4 -4
  81. package/dist/cjs/b2b-scrollable-container.cjs.entry.js +1 -1
  82. package/dist/cjs/b2b-search.cjs.entry.js +1 -1
  83. package/dist/cjs/b2b-separator.cjs.entry.js +1 -1
  84. package/dist/cjs/b2b-shimmer.cjs.entry.js +1 -1
  85. package/dist/cjs/b2b-snackbar.cjs.entry.js +5 -5
  86. package/dist/cjs/b2b-tab-group.cjs.entry.js +1 -1
  87. package/dist/cjs/b2b-tab-panel.cjs.entry.js +1 -1
  88. package/dist/cjs/b2b-tab.cjs.entry.js +2 -2
  89. package/dist/cjs/b2b-table-cell_2.cjs.entry.js +4 -4
  90. package/dist/cjs/b2b-table-row.cjs.entry.js +3 -3
  91. package/dist/cjs/b2b-table-rowgroup.cjs.entry.js +3 -3
  92. package/dist/cjs/b2b-table.cjs.entry.js +3 -3
  93. package/dist/cjs/b2b-textarea.cjs.entry.js +2 -2
  94. package/dist/cjs/b2b-time-picker.cjs.entry.js +6 -6
  95. package/dist/cjs/b2b-toggle-button.cjs.entry.js +4 -4
  96. package/dist/cjs/b2b-toggle-chip.cjs.entry.js +4 -4
  97. package/dist/cjs/b2b-toggle-group.cjs.entry.js +2 -2
  98. package/dist/cjs/b2b-toggle-switch.cjs.entry.js +4 -4
  99. package/dist/cjs/b2b-tooltip.cjs.entry.js +3 -3
  100. package/dist/cjs/b2b-wizard-icon.cjs.entry.js +1 -1
  101. package/dist/cjs/b2b-wizard-step.cjs.entry.js +2 -2
  102. package/dist/cjs/b2b-wizard.cjs.entry.js +1 -1
  103. package/dist/cjs/index-668808fd.js +4 -0
  104. package/dist/cjs/loader.cjs.js +1 -1
  105. package/dist/cjs/{utils-499e9db5.js → utils-2c68ef15.js} +1 -2
  106. package/dist/collection/collection-manifest.json +1 -0
  107. package/dist/collection/components/button/button.css +2 -2
  108. package/dist/collection/components/custom-dropdown/custom-dropdown-option-category.css +255 -0
  109. package/dist/collection/components/custom-dropdown/custom-dropdown-option-category.js +43 -0
  110. package/dist/collection/components/custom-dropdown/custom-dropdown-option.js +2 -2
  111. package/dist/collection/components/custom-dropdown/custom-dropdown.css +3 -0
  112. package/dist/collection/components/custom-dropdown/custom-dropdown.e2e.js +89 -0
  113. package/dist/collection/components/custom-dropdown/custom-dropdown.js +24 -5
  114. package/dist/collection/components/custom-dropdown/custom-dropdown.stories.js +67 -0
  115. package/dist/collection/components/date-picker/date-picker-days-header.js +1 -1
  116. package/dist/collection/components/date-picker/date-picker-days.js +1 -1
  117. package/dist/collection/components/date-picker/date-picker-header.js +5 -5
  118. package/dist/collection/components/date-picker/date-picker-months.js +1 -1
  119. package/dist/collection/components/date-picker/date-picker-years.js +1 -1
  120. package/dist/collection/components/date-range-picker/date-range-picker-days.js +1 -1
  121. package/dist/collection/components/date-range-picker/date-range-picker.js +13 -5
  122. package/dist/collection/components/dropdown/dropdown.js +2 -2
  123. package/dist/collection/components/flyout-menu/flyout-menu-option.js +1 -1
  124. package/dist/collection/components/flyout-menu/flyout-menu.js +3 -3
  125. package/dist/collection/components/grid/column.js +1 -1
  126. package/dist/collection/components/grid/grid.js +1 -1
  127. package/dist/collection/components/grid/row.js +2 -2
  128. package/dist/collection/components/input/input.js +4 -4
  129. package/dist/collection/components/input/input.stories.js +4 -2
  130. package/dist/collection/components/input-group/input-group.js +1 -1
  131. package/dist/collection/components/input-label/input-label.js +2 -2
  132. package/dist/collection/components/input-list/input-list-option.js +1 -1
  133. package/dist/collection/components/input-list/input-list.js +2 -2
  134. package/dist/collection/components/label/label.js +2 -2
  135. package/dist/collection/components/modal/modal.js +2 -2
  136. package/dist/collection/components/multiselect-dropdown/multiselect-dropdown.js +3 -3
  137. package/dist/collection/components/multiselect-dropdown/multiselect-option/multiselect-option.js +2 -2
  138. package/dist/collection/components/pagination/pagination.js +1 -1
  139. package/dist/collection/components/paragraph/paragraph.js +2 -2
  140. package/dist/collection/components/progress-bar/progress-bar.js +3 -3
  141. package/dist/collection/components/radio/radio.js +2 -2
  142. package/dist/collection/components/radio-group/radio-group.js +2 -2
  143. package/dist/collection/components/required-separator/required-separator.js +1 -1
  144. package/dist/collection/components/rounded-icon/rounded-icon.js +4 -4
  145. package/dist/collection/components/scrollable-container/scrollable-container.js +1 -1
  146. package/dist/collection/components/search/search.js +1 -1
  147. package/dist/collection/components/separator/separator.js +1 -1
  148. package/dist/collection/components/shimmer/shimmer.js +1 -1
  149. package/dist/collection/components/snackbar/snackbar.js +5 -5
  150. package/dist/collection/components/spinner/spinner.js +1 -1
  151. package/dist/collection/components/tab/tab.js +2 -2
  152. package/dist/collection/components/tab-group/tab-group.js +1 -1
  153. package/dist/collection/components/tab-panel/tab-panel.js +1 -1
  154. package/dist/collection/components/table/table-cell/table-cell.js +2 -2
  155. package/dist/collection/components/table/table-header/table-header.js +1 -1
  156. package/dist/collection/components/table/table-row/table-row.js +2 -2
  157. package/dist/collection/components/table/table-rowgroup/table-rowgroup.js +2 -2
  158. package/dist/collection/components/table/table.js +2 -2
  159. package/dist/collection/components/table/utils.js +1 -2
  160. package/dist/collection/components/textarea/textarea.js +2 -2
  161. package/dist/collection/components/time-picker/time-picker.js +6 -6
  162. package/dist/collection/components/toggle-button/toggle-button.css +2 -1
  163. package/dist/collection/components/toggle-button/toggle-button.js +3 -3
  164. package/dist/collection/components/toggle-chip/toggle-chip.css +2 -1
  165. package/dist/collection/components/toggle-chip/toggle-chip.js +3 -3
  166. package/dist/collection/components/toggle-group/toggle-group.js +2 -2
  167. package/dist/collection/components/toggle-switch/toggle-switch.js +4 -4
  168. package/dist/collection/components/tooltip/tooltip.js +3 -3
  169. package/dist/collection/components/wizard/wizard-step.js +2 -2
  170. package/dist/collection/components/wizard/wizard.js +1 -1
  171. package/dist/collection/components/wizard-icon/wizard-icon.js +1 -1
  172. package/dist/components/b2b-custom-dropdown-option-category.d.ts +11 -0
  173. package/dist/components/b2b-custom-dropdown-option-category.js +37 -0
  174. package/dist/components/b2b-custom-dropdown-option.js +2 -2
  175. package/dist/components/b2b-custom-dropdown.js +25 -6
  176. package/dist/components/b2b-date-range-picker.js +13 -5
  177. package/dist/components/b2b-dropdown.js +2 -2
  178. package/dist/components/b2b-flyout-menu-option.js +1 -1
  179. package/dist/components/b2b-flyout-menu.js +3 -3
  180. package/dist/components/b2b-grid-col.js +1 -1
  181. package/dist/components/b2b-grid-row.js +2 -2
  182. package/dist/components/b2b-grid.js +1 -1
  183. package/dist/components/b2b-label.js +2 -2
  184. package/dist/components/b2b-modal.js +2 -2
  185. package/dist/components/b2b-multiselect-dropdown.js +3 -3
  186. package/dist/components/b2b-pagination.js +1 -1
  187. package/dist/components/b2b-progress-bar.js +3 -3
  188. package/dist/components/b2b-radio-button.js +2 -2
  189. package/dist/components/b2b-radio-group.js +2 -2
  190. package/dist/components/b2b-required-separator.js +1 -1
  191. package/dist/components/b2b-scrollable-container.js +1 -1
  192. package/dist/components/b2b-search.js +1 -1
  193. package/dist/components/b2b-shimmer.js +1 -1
  194. package/dist/components/b2b-snackbar.js +5 -5
  195. package/dist/components/b2b-tab-group.js +1 -1
  196. package/dist/components/b2b-tab-panel.js +1 -1
  197. package/dist/components/b2b-tab.js +2 -2
  198. package/dist/components/b2b-table-row.js +2 -2
  199. package/dist/components/b2b-table-rowgroup.js +2 -2
  200. package/dist/components/b2b-table.js +2 -2
  201. package/dist/components/b2b-textarea.js +2 -2
  202. package/dist/components/b2b-time-picker.js +6 -6
  203. package/dist/components/b2b-toggle-button.js +4 -4
  204. package/dist/components/b2b-toggle-chip.js +4 -4
  205. package/dist/components/b2b-toggle-group.js +2 -2
  206. package/dist/components/b2b-toggle-switch.js +4 -4
  207. package/dist/components/b2b-tooltip.js +3 -3
  208. package/dist/components/b2b-wizard-step.js +2 -2
  209. package/dist/components/b2b-wizard.js +1 -1
  210. package/dist/components/button.js +1 -1
  211. package/dist/components/date-picker-days-header.js +1 -1
  212. package/dist/components/date-picker-days.js +1 -1
  213. package/dist/components/date-picker-header.js +5 -5
  214. package/dist/components/date-picker-months.js +1 -1
  215. package/dist/components/date-picker-years.js +1 -1
  216. package/dist/components/date-range-picker-days.js +1 -1
  217. package/dist/components/input-group.js +1 -1
  218. package/dist/components/input-label.js +2 -2
  219. package/dist/components/input-list-option.js +1 -1
  220. package/dist/components/input-list.js +2 -2
  221. package/dist/components/input.js +4 -4
  222. package/dist/components/multiselect-option.js +2 -2
  223. package/dist/components/paragraph.js +2 -2
  224. package/dist/components/rounded-icon.js +4 -4
  225. package/dist/components/separator.js +1 -1
  226. package/dist/components/spinner.js +1 -1
  227. package/dist/components/table-cell.js +2 -2
  228. package/dist/components/table-header.js +1 -1
  229. package/dist/components/utils2.js +1 -2
  230. package/dist/components/wizard-icon.js +1 -1
  231. package/dist/custom-elements.json +13 -0
  232. package/dist/esm/b2b-button_2.entry.js +2 -2
  233. package/dist/esm/b2b-chip-component_2.entry.js +2 -2
  234. package/dist/esm/b2b-core-components.js +1 -1
  235. package/dist/esm/b2b-custom-dropdown-option-category.entry.js +17 -0
  236. package/dist/esm/b2b-custom-dropdown-option.entry.js +2 -2
  237. package/dist/esm/b2b-custom-dropdown.entry.js +25 -6
  238. package/dist/esm/b2b-date-picker-days-header_4.entry.js +8 -8
  239. package/dist/esm/b2b-date-picker-days.entry.js +1 -1
  240. package/dist/esm/b2b-date-range-picker-days_2.entry.js +3 -3
  241. package/dist/esm/b2b-date-range-picker.entry.js +13 -5
  242. package/dist/esm/b2b-dropdown.entry.js +2 -2
  243. package/dist/esm/b2b-flyout-menu-option.entry.js +1 -1
  244. package/dist/esm/b2b-flyout-menu.entry.js +3 -3
  245. package/dist/esm/b2b-grid-col.entry.js +1 -1
  246. package/dist/esm/b2b-grid-row.entry.js +2 -2
  247. package/dist/esm/b2b-grid.entry.js +1 -1
  248. package/dist/esm/b2b-input-group_2.entry.js +3 -3
  249. package/dist/esm/b2b-input-label.entry.js +2 -2
  250. package/dist/esm/b2b-input-list-option.entry.js +1 -1
  251. package/dist/esm/b2b-input.entry.js +4 -4
  252. package/dist/esm/b2b-label.entry.js +2 -2
  253. package/dist/esm/b2b-modal.entry.js +2 -2
  254. package/dist/esm/b2b-multiselect-dropdown.entry.js +3 -3
  255. package/dist/esm/b2b-pagination.entry.js +1 -1
  256. package/dist/esm/b2b-progress-bar.entry.js +3 -3
  257. package/dist/esm/b2b-radio-button.entry.js +2 -2
  258. package/dist/esm/b2b-radio-group.entry.js +2 -2
  259. package/dist/esm/b2b-required-separator.entry.js +1 -1
  260. package/dist/esm/b2b-rounded-icon.entry.js +4 -4
  261. package/dist/esm/b2b-scrollable-container.entry.js +1 -1
  262. package/dist/esm/b2b-search.entry.js +1 -1
  263. package/dist/esm/b2b-separator.entry.js +1 -1
  264. package/dist/esm/b2b-shimmer.entry.js +1 -1
  265. package/dist/esm/b2b-snackbar.entry.js +5 -5
  266. package/dist/esm/b2b-tab-group.entry.js +1 -1
  267. package/dist/esm/b2b-tab-panel.entry.js +1 -1
  268. package/dist/esm/b2b-tab.entry.js +2 -2
  269. package/dist/esm/b2b-table-cell_2.entry.js +4 -4
  270. package/dist/esm/b2b-table-row.entry.js +3 -3
  271. package/dist/esm/b2b-table-rowgroup.entry.js +3 -3
  272. package/dist/esm/b2b-table.entry.js +3 -3
  273. package/dist/esm/b2b-textarea.entry.js +2 -2
  274. package/dist/esm/b2b-time-picker.entry.js +6 -6
  275. package/dist/esm/b2b-toggle-button.entry.js +4 -4
  276. package/dist/esm/b2b-toggle-chip.entry.js +4 -4
  277. package/dist/esm/b2b-toggle-group.entry.js +2 -2
  278. package/dist/esm/b2b-toggle-switch.entry.js +4 -4
  279. package/dist/esm/b2b-tooltip.entry.js +3 -3
  280. package/dist/esm/b2b-wizard-icon.entry.js +1 -1
  281. package/dist/esm/b2b-wizard-step.entry.js +2 -2
  282. package/dist/esm/b2b-wizard.entry.js +1 -1
  283. package/dist/esm/index-ab9eb36d.js +4 -0
  284. package/dist/esm/loader.js +1 -1
  285. package/dist/esm/{utils-868299de.js → utils-462ede36.js} +1 -2
  286. package/dist/types/components/custom-dropdown/custom-dropdown-option-category.d.ts +6 -0
  287. package/dist/types/components/custom-dropdown/custom-dropdown.d.ts +2 -0
  288. package/dist/types/components/custom-dropdown/custom-dropdown.stories.d.ts +1 -0
  289. package/dist/types/components.d.ts +21 -0
  290. package/dist/web-types.json +24 -1
  291. package/package.json +11 -11
  292. package/dist/b2b-core-components/p-02bb4145.entry.js +0 -1
  293. package/dist/b2b-core-components/p-22967672.entry.js +0 -1
  294. package/dist/b2b-core-components/p-42996f1a.entry.js +0 -1
  295. package/dist/b2b-core-components/p-51086123.entry.js +0 -1
  296. package/dist/b2b-core-components/p-9626c6e2.entry.js +0 -1
  297. package/dist/b2b-core-components/p-a2d97f5d.entry.js +0 -1
  298. package/dist/b2b-core-components/p-bbdaefcd.entry.js +0 -1
  299. package/dist/b2b-core-components/p-d537d092.entry.js +0 -1
  300. package/dist/b2b-core-components/p-ef43233a.entry.js +0 -1
  301. /package/dist/b2b-core-components/{p-19392020.js → p-373cb472.js} +0 -0
@@ -0,0 +1,255 @@
1
+ /**
2
+ * Do not edit directly, this file was auto-generated.
3
+ */
4
+ :root, :host {
5
+ --b2b-color-black-50: #333333;
6
+ --b2b-color-black-100: #222222;
7
+ --b2b-color-white-100: #FFFFFF;
8
+ --b2b-color-grey-25: #F6F6F6;
9
+ --b2b-color-grey-35: #F0F0F0;
10
+ --b2b-color-grey-50: #EEEEEE;
11
+ --b2b-color-grey-100: #E6E6E6;
12
+ --b2b-color-grey-150: #D5D5D5;
13
+ --b2b-color-grey-200: #C4C4C4;
14
+ --b2b-color-grey-250: #B1B1B1;
15
+ --b2b-color-grey-300: #9E9E9E;
16
+ --b2b-color-grey-400: #777777;
17
+ --b2b-color-red-50: #FFDDE3;
18
+ --b2b-color-red-100: #D4021D;
19
+ --b2b-color-red-150: #E6344B;
20
+ --b2b-color-red-200: #BB0004;
21
+ --b2b-color-red-250: #850012;
22
+ --b2b-color-blue-10: #F2F7FF;
23
+ --b2b-color-blue-25: #DBE7FA;
24
+ --b2b-color-blue-50: #87B1F0;
25
+ --b2b-color-blue-100: #0F63E1;
26
+ --b2b-color-blue-200: #093E90;
27
+ --b2b-color-primary: #D4021D;
28
+ --b2b-color-error-100: #E6344B;
29
+ --b2b-color-warning-50: #FFD998;
30
+ --b2b-color-warning-100: #FFB432;
31
+ --b2b-color-success-50: #D6E0CC;
32
+ --b2b-color-success-100: #326400;
33
+ --b2b-color-info-50: #CCD6E0;
34
+ --b2b-color-info-100: #003264;
35
+ --b2b-color-hover-default: #DBE7FA;
36
+ --b2b-color-hover-black: #3B3B3B;
37
+ --b2b-color-background-overlay-transparent-80: #22222280;
38
+ --b2b-color-background-overlay-transparent-40: #22222240;
39
+ --b2b-color-table-selected-default: #CCE9FF;
40
+ --b2b-color-table-expand-hover: #DBE7FA;
41
+ --b2b-font-family-default: OttoSans, Arial, Helvetica, sans-serif;
42
+ --b2b-font-weight-thin: 100;
43
+ --b2b-font-weight-normal: 500;
44
+ --b2b-font-weight-bold: 700;
45
+ --b2b-size-1: 0.0625rem; /** 1px */
46
+ --b2b-size-5: 0.125rem; /** 2px */
47
+ --b2b-size-7: 0.1875rem; /** 3px */
48
+ --b2b-size-10: 0.25rem; /** 4px */
49
+ --b2b-size-13: 0.3125rem; /** 5px */
50
+ --b2b-size-15: 0.375rem; /** 6px */
51
+ --b2b-size-20: 0.5rem; /** 8px */
52
+ --b2b-size-25: 0.625rem; /** 10px */
53
+ --b2b-size-30: 0.75rem; /** 12px */
54
+ --b2b-size-35: 0.875rem; /** 14px */
55
+ --b2b-size-40: 1rem; /** 16px */
56
+ --b2b-size-45: 1.125rem; /** 18px */
57
+ --b2b-size-50: 1.25rem; /** 20px */
58
+ --b2b-size-53: 1.3125rem; /** 21px */
59
+ --b2b-size-55: 1.375rem; /** 22px */
60
+ --b2b-size-60: 1.5rem; /** 24px */
61
+ --b2b-size-70: 1.75rem; /** 28px */
62
+ --b2b-size-80: 2rem; /** 32px */
63
+ --b2b-size-90: 2.25rem; /** 36px */
64
+ --b2b-size-100: 2.5rem; /** 40px */
65
+ --b2b-size-120: 3rem; /** 48px */
66
+ --b2b-size-140: 3.5rem; /** 56px */
67
+ --b2b-size-150: 3.75rem; /** 60px */
68
+ --b2b-size-160: 4rem; /** 64px */
69
+ --b2b-size-200: 5rem; /** 80px */
70
+ --b2b-color-error-50: var(--b2b-color-red-50);
71
+ --b2b-color-background-page: var(--b2b-color-grey-35);
72
+ --b2b-color-background-box: var(--b2b-color-white-100);
73
+ --b2b-color-background-card: var(--b2b-color-white-100);
74
+ --b2b-color-background-overlay: var(--b2b-color-black-100);
75
+ --b2b-color-border-100: var(--b2b-color-grey-200);
76
+ --b2b-color-copy-default: var(--b2b-color-black-100);
77
+ --b2b-color-copy-secondary: var(--b2b-color-grey-400);
78
+ --b2b-color-copy-inverted: var(--b2b-color-white-100);
79
+ --b2b-color-copy-overlay: var(--b2b-color-white-100);
80
+ --b2b-color-headline-title: var(--b2b-color-red-100);
81
+ --b2b-color-headline-default: var(--b2b-color-black-100);
82
+ --b2b-color-headline-inverted: var(--b2b-color-white-100);
83
+ --b2b-color-icon-default: var(--b2b-color-black-100);
84
+ --b2b-color-icon-secondary: var(--b2b-color-grey-400);
85
+ --b2b-color-icon-inverted: var(--b2b-color-white-100);
86
+ --b2b-color-table-expand-default: var(--b2b-color-grey-25);
87
+ --b2b-size-icon-50: var(--b2b-size-40);
88
+ --b2b-size-icon-100: var(--b2b-size-60);
89
+ --b2b-size-icon-200: var(--b2b-size-80);
90
+ --b2b-size-icon-400: var(--b2b-size-120);
91
+ --b2b-size-space-25: var(--b2b-size-10);
92
+ --b2b-size-space-50: var(--b2b-size-20);
93
+ --b2b-size-space-75: var(--b2b-size-30);
94
+ --b2b-size-space-100: var(--b2b-size-40);
95
+ --b2b-size-space-150: var(--b2b-size-60);
96
+ --b2b-size-space-175: var(--b2b-size-80);
97
+ --b2b-size-space-200: var(--b2b-size-100);
98
+ --b2b-size-space-250: var(--b2b-size-160);
99
+ --b2b-size-space-300: var(--b2b-size-200);
100
+ --b2b-size-padding-50: var(--b2b-size-20);
101
+ --b2b-size-padding-100: var(--b2b-size-40);
102
+ --b2b-size-padding-150: var(--b2b-size-60);
103
+ --b2b-size-padding-175: var(--b2b-size-80);
104
+ --b2b-size-border-width-50: var(--b2b-size-1);
105
+ --b2b-size-border-width-100: var(--b2b-size-5);
106
+ --b2b-size-border-width-150: var(--b2b-size-10);
107
+ --b2b-size-border-radius-100: var(--b2b-size-7);
108
+ --b2b-size-border-no-radius-left: 0 var(--b2b-size-7) var(--b2b-size-7) 0;
109
+ --b2b-size-border-no-radius-right: var(--b2b-size-7) 0 0 var(--b2b-size-7);
110
+ --b2b-size-border-no-radius-top: 0 0 var(--b2b-size-7) var(--b2b-size-7);
111
+ --b2b-size-border-no-radius-bottom: var(--b2b-size-7) var(--b2b-size-7) 0 0;
112
+ --b2b-size-copy-50: var(--b2b-size-30);
113
+ --b2b-size-copy-100: var(--b2b-size-35);
114
+ --b2b-size-copy-125: var(--b2b-size-40);
115
+ --b2b-size-copy-200: var(--b2b-size-45);
116
+ --b2b-size-copy-300: var(--b2b-size-60);
117
+ --b2b-size-copy-line-height-50: var(--b2b-size-40);
118
+ --b2b-size-copy-line-height-75: var(--b2b-size-45); /** Will use 18px until design facelift */
119
+ --b2b-size-copy-line-height-100: var(--b2b-size-53); /** Will use 21px until design facelift */
120
+ --b2b-size-copy-line-height-125: var(--b2b-size-60);
121
+ --b2b-size-copy-line-height-200: var(--b2b-size-60);
122
+ --b2b-size-copy-line-height-300: var(--b2b-size-90);
123
+ --b2b-size-headline-100: var(--b2b-size-40);
124
+ --b2b-size-headline-200: var(--b2b-size-45);
125
+ --b2b-size-headline-400: var(--b2b-size-60);
126
+ --b2b-size-headline-line-height-100: var(--b2b-size-60);
127
+ --b2b-size-headline-line-height-200: var(--b2b-size-60);
128
+ --b2b-size-headline-line-height-400: var(--b2b-size-60);
129
+ }
130
+ /**
131
+ * Do not edit directly, this file was auto-generated.
132
+ */
133
+ :root [data-theme="dark"] {
134
+ --b2b-color-black-50: #333333;
135
+ --b2b-color-black-100: #222222;
136
+ --b2b-color-white-100: #FFFFFF;
137
+ --b2b-color-grey-25: #F6F6F6;
138
+ --b2b-color-grey-35: #F0F0F0;
139
+ --b2b-color-grey-50: #EEEEEE;
140
+ --b2b-color-grey-100: #E6E6E6;
141
+ --b2b-color-grey-150: #D5D5D5;
142
+ --b2b-color-grey-200: #C4C4C4;
143
+ --b2b-color-grey-250: #B1B1B1;
144
+ --b2b-color-grey-300: #9E9E9E;
145
+ --b2b-color-grey-400: #777777;
146
+ --b2b-color-red-50: #FFDDE3;
147
+ --b2b-color-red-100: #D4021D;
148
+ --b2b-color-red-150: #E6344B;
149
+ --b2b-color-red-200: #BB0004;
150
+ --b2b-color-red-250: #850012;
151
+ --b2b-color-blue-10: #F2F7FF;
152
+ --b2b-color-blue-25: #DBE7FA;
153
+ --b2b-color-blue-50: #87B1F0;
154
+ --b2b-color-blue-100: #0F63E1;
155
+ --b2b-color-blue-200: #093E90;
156
+ --b2b-color-primary: #D4021D;
157
+ --b2b-color-error-100: #E6344B;
158
+ --b2b-color-warning-50: #FFD998;
159
+ --b2b-color-warning-100: #FFB432;
160
+ --b2b-color-success-50: #D6E0CC;
161
+ --b2b-color-success-100: #326400;
162
+ --b2b-color-info-50: #CCD6E0;
163
+ --b2b-color-info-100: #003264;
164
+ --b2b-color-hover-default: #DBE7FA;
165
+ --b2b-color-hover-black: #3B3B3B;
166
+ --b2b-font-family-default: OttoSans, Arial, Helvetica, sans-serif;
167
+ --b2b-font-weight-thin: 100;
168
+ --b2b-font-weight-normal: 500;
169
+ --b2b-font-weight-bold: 700;
170
+ --b2b-size-1: 0.0625rem; /** 1px */
171
+ --b2b-size-5: 0.125rem; /** 2px */
172
+ --b2b-size-7: 0.1875rem; /** 3px */
173
+ --b2b-size-10: 0.25rem; /** 4px */
174
+ --b2b-size-13: 0.3125rem; /** 5px */
175
+ --b2b-size-15: 0.375rem; /** 6px */
176
+ --b2b-size-20: 0.5rem; /** 8px */
177
+ --b2b-size-25: 0.625rem; /** 10px */
178
+ --b2b-size-30: 0.75rem; /** 12px */
179
+ --b2b-size-35: 0.875rem; /** 14px */
180
+ --b2b-size-40: 1rem; /** 16px */
181
+ --b2b-size-45: 1.125rem; /** 18px */
182
+ --b2b-size-50: 1.25rem; /** 20px */
183
+ --b2b-size-53: 1.3125rem; /** 21px */
184
+ --b2b-size-55: 1.375rem; /** 22px */
185
+ --b2b-size-60: 1.5rem; /** 24px */
186
+ --b2b-size-70: 1.75rem; /** 28px */
187
+ --b2b-size-80: 2rem; /** 32px */
188
+ --b2b-size-90: 2.25rem; /** 36px */
189
+ --b2b-size-100: 2.5rem; /** 40px */
190
+ --b2b-size-120: 3rem; /** 48px */
191
+ --b2b-size-140: 3.5rem; /** 56px */
192
+ --b2b-size-150: 3.75rem; /** 60px */
193
+ --b2b-size-160: 4rem; /** 64px */
194
+ --b2b-size-200: 5rem; /** 80px */
195
+ --b2b-color-error-50: var(--b2b-color-red-50);
196
+ --b2b-color-background-box: var(--b2b-color-black-50);
197
+ --b2b-color-background-card: var(--b2b-color-black-50);
198
+ --b2b-color-background-page: var(--b2b-color-grey-100);
199
+ --b2b-color-border-100: var(--b2b-color-white-100);
200
+ --b2b-color-copy-default: var(--b2b-color-white-100);
201
+ --b2b-color-copy-secondary: var(--b2b-color-grey-100);
202
+ --b2b-color-copy-inverted: var(--b2b-color-black-100);
203
+ --b2b-color-headline-title: var(--b2b-color-red-50);
204
+ --b2b-color-headline-default: var(--b2b-color-white-100);
205
+ --b2b-color-headline-inverted: var(--b2b-color-black-100);
206
+ --b2b-color-icon-default: var(--b2b-color-white-100);
207
+ --b2b-color-icon-secondary: var(--b2b-color-grey-400);
208
+ --b2b-color-icon-inverted: var(--b2b-color-black-100);
209
+ }
210
+ @font-face {
211
+ font-family: OttoSans;
212
+ src: url("https://pattern-library.portal.otto.market/static/assets/fonts/otto-sans.ttf");
213
+ font-weight: normal;
214
+ font-style: normal;
215
+ }
216
+ @font-face {
217
+ font-family: OttoSans;
218
+ src: url("https://pattern-library.portal.otto.market/static/assets/fonts/otto-sans-bold.woff") format("woff"), url("https://pattern-library.portal.otto.market/static/assets/fonts/otto-sans-bold.ttf") format("truetype");
219
+ font-weight: bold;
220
+ font-style: normal;
221
+ }
222
+ @font-face {
223
+ font-family: OttoSans;
224
+ src: url("https://pattern-library.portal.otto.market/static/assets/fonts/otto-sans-thin.woff") format("woff"), url("https://pattern-library.portal.otto.market/static/assets/fonts/otto-sans-thin.ttf") format("truetype");
225
+ font-weight: 100;
226
+ font-style: normal;
227
+ }
228
+ @font-face {
229
+ font-family: ObcIcons;
230
+ src: url("https://pattern-library.portal.otto.market/static/assets/fonts/obc-icons.woff");
231
+ }
232
+ :host {
233
+ display: block;
234
+ width: 100%;
235
+ max-width: 100%;
236
+ box-sizing: border-box;
237
+ overflow: hidden;
238
+ border-bottom: 1px solid var(--b2b-color-grey-200);
239
+ }
240
+ .b2b-custom-dropdown__option-category-label {
241
+ display: block;
242
+ min-height: 22px;
243
+ width: 100%;
244
+ max-width: 100%;
245
+ overflow: hidden;
246
+ padding: 4px 16px;
247
+ box-sizing: border-box;
248
+ font-family: var(--b2b-font-family-default), sans-serif;
249
+ font-size: var(--b2b-size-copy-50);
250
+ font-weight: 400;
251
+ line-height: 18px;
252
+ letter-spacing: 0;
253
+ color: var(--b2b-color-grey-400);
254
+ background-color: var(--b2b-color-white-100);
255
+ }
@@ -0,0 +1,43 @@
1
+ import { h, Host } from "@stencil/core";
2
+ export class CustomDropdownWithOptionHeadingComponent {
3
+ constructor() {
4
+ this.label = '';
5
+ }
6
+ render() {
7
+ return (h(Host, { key: '111d82b1ea150f72a5f4c49783693a21714e37fb', class: "b2b-custom-dropdown__option-category" }, this.label && (h("div", { class: "b2b-custom-dropdown__option-category-label" }, this.label)), h("slot", { key: '0d08b0fabb98ac5e3c042125cf0e8888a5eb1c91' })));
8
+ }
9
+ static get is() { return "b2b-custom-dropdown-option-category"; }
10
+ static get encapsulation() { return "shadow"; }
11
+ static get originalStyleUrls() {
12
+ return {
13
+ "$": ["custom-dropdown-option-category.scss"]
14
+ };
15
+ }
16
+ static get styleUrls() {
17
+ return {
18
+ "$": ["custom-dropdown-option-category.css"]
19
+ };
20
+ }
21
+ static get properties() {
22
+ return {
23
+ "label": {
24
+ "type": "string",
25
+ "mutable": false,
26
+ "complexType": {
27
+ "original": "string",
28
+ "resolved": "string",
29
+ "references": {}
30
+ },
31
+ "required": false,
32
+ "optional": false,
33
+ "docs": {
34
+ "tags": [],
35
+ "text": "The label/heading text for the option category."
36
+ },
37
+ "attribute": "label",
38
+ "reflect": false,
39
+ "defaultValue": "''"
40
+ }
41
+ };
42
+ }
43
+ }
@@ -29,13 +29,13 @@ export class CustomDropdownOptionComponent {
29
29
  return `var(--${color})`;
30
30
  }
31
31
  render() {
32
- return (h(Host, { key: '3a2103f763b42234fdba4b0d86747061a9d38433', class: {
32
+ return (h(Host, { key: 'a359c42ad0ab610198027a1cba088c64f4e3e0c2', class: {
33
33
  'b2b-custom-dropdown__option': true,
34
34
  'b2b-custom-dropdown__option-hover': this.isHovered && !this.selected,
35
35
  'b2b-custom-dropdown__option--disabled': this.disabled,
36
36
  'b2b-custom-dropdown__option--separator': this.separator,
37
37
  'b2b-custom-dropdown__option--selected': this.selected,
38
- }, onClick: this.handleClick, disabled: this.disabled, "aria-disabled": this.disabled, role: "option", "aria-selected": this.selected.toString() }, h("div", { key: 'd9fd6073f7f6d402617aefd3f96f882250f4dff3', class: "b2b-option-container" }, h("div", { key: '8bf64fbbf02755bf0557016c22ac60874f4fa584', class: "b2b-custom-dropdown__text-content" }, this.option), h("div", { key: '1b27ba43dca79d5620620c5a2a61982f677a6c35', class: "b2b-custom-dropdown__icon-container" }, this.isHovered && !this.selected && this.hoverIcon ? (h("b2b-icon-100", { icon: this.hoverIcon, style: {
38
+ }, onClick: this.handleClick, disabled: this.disabled, "aria-disabled": this.disabled, role: "option", "aria-selected": this.selected.toString() }, h("div", { key: '11b25a959672c9bad2c0b222f5c458e9fda2fb18', class: "b2b-option-container" }, h("div", { key: '1eee7a415084b4595ecc674785fbffdc341d81b2', class: "b2b-custom-dropdown__text-content" }, this.option), h("div", { key: 'ccc571d8dad1719aa3c33a8e5b8c6141fecac1ac', class: "b2b-custom-dropdown__icon-container" }, this.isHovered && !this.selected && this.hoverIcon ? (h("b2b-icon-100", { icon: this.hoverIcon, style: {
39
39
  color: this.formatColorVariable(this.hoverIconColor),
40
40
  } })) : this.selected && this.selectedIcon ? (h("b2b-icon-100", { icon: this.selectedIcon, style: {
41
41
  color: this.formatColorVariable(this.selectedIconColor),
@@ -297,6 +297,9 @@
297
297
  ::slotted(b2b-custom-dropdown-option.b2b-custom-dropdown__option--hidden) {
298
298
  display: none;
299
299
  }
300
+ ::slotted(b2b-custom-dropdown-option-category.b2b-custom-dropdown__option-category--hidden) {
301
+ display: none;
302
+ }
300
303
  .b2b-custom-dropdown__empty {
301
304
  padding: var(--b2b-size-30);
302
305
  color: var(--b2b-color-grey-400);
@@ -132,4 +132,93 @@ describe('b2b-custom-dropdown - Alignment Tests', () => {
132
132
  const dropdownContainer = await page.find('b2b-custom-dropdown >>> .b2b-custom-dropdown');
133
133
  expect(dropdownContainer).toHaveClass('b2b-custom-dropdown--align-right');
134
134
  });
135
+ describe('b2b-custom-dropdown-option-category', () => {
136
+ it('should render category label when provided', async () => {
137
+ const page = await newE2EPage();
138
+ await page.setContent(`
139
+ <b2b-custom-dropdown placeholder="Select an option">
140
+ <b2b-icon-100 icon="b2b_icon-ellipsis" slot='trigger' clickable focusable></b2b-icon-100>
141
+ <b2b-custom-dropdown-option-category label="Category 1">
142
+ <b2b-custom-dropdown-option option='option1'>
143
+ </b2b-custom-dropdown-option>
144
+ </b2b-custom-dropdown-option-category>
145
+ </b2b-custom-dropdown>
146
+ `);
147
+ const trigger = await page.find('b2b-custom-dropdown [slot="trigger"]');
148
+ await trigger.click();
149
+ await page.waitForChanges();
150
+ const categoryLabel = await page.find('b2b-custom-dropdown-option-category >>> .b2b-custom-dropdown__option-category-label');
151
+ expect(categoryLabel).not.toBeNull();
152
+ expect(categoryLabel.textContent).toEqual('Category 1');
153
+ });
154
+ it('should render category without label', async () => {
155
+ const page = await newE2EPage();
156
+ await page.setContent(`
157
+ <b2b-custom-dropdown placeholder="Select an option">
158
+ <b2b-icon-100 icon="b2b_icon-ellipsis" slot='trigger' clickable focusable></b2b-icon-100>
159
+ <b2b-custom-dropdown-option-category>
160
+ <b2b-custom-dropdown-option option='option1'>
161
+ </b2b-custom-dropdown-option>
162
+ </b2b-custom-dropdown-option-category>
163
+ </b2b-custom-dropdown>
164
+ `);
165
+ const trigger = await page.find('b2b-custom-dropdown [slot="trigger"]');
166
+ await trigger.click();
167
+ await page.waitForChanges();
168
+ const category = await page.find('b2b-custom-dropdown-option-category');
169
+ expect(category).not.toBeNull();
170
+ const categoryLabel = await page.find('b2b-custom-dropdown-option-category >>> .b2b-custom-dropdown__option-category-label');
171
+ expect(categoryLabel).toBeNull();
172
+ });
173
+ it('should contain multiple options within category', async () => {
174
+ const page = await newE2EPage();
175
+ await page.setContent(`
176
+ <b2b-custom-dropdown placeholder="Select an option">
177
+ <b2b-icon-100 icon="b2b_icon-ellipsis" slot='trigger' clickable focusable></b2b-icon-100>
178
+ <b2b-custom-dropdown-option-category label="Category 1">
179
+ <b2b-custom-dropdown-option option='option1'>
180
+ </b2b-custom-dropdown-option>
181
+ <b2b-custom-dropdown-option option='option2'>
182
+ </b2b-custom-dropdown-option>
183
+ <b2b-custom-dropdown-option option='option3'>
184
+ </b2b-custom-dropdown-option>
185
+ </b2b-custom-dropdown-option-category>
186
+ </b2b-custom-dropdown>
187
+ `);
188
+ const trigger = await page.find('b2b-custom-dropdown [slot="trigger"]');
189
+ await trigger.click();
190
+ await page.waitForChanges();
191
+ const optionsInCategory = await page.findAll('b2b-custom-dropdown-option-category b2b-custom-dropdown-option');
192
+ expect(optionsInCategory.length).toEqual(3);
193
+ });
194
+ it('should support multiple categories', async () => {
195
+ const page = await newE2EPage();
196
+ await page.setContent(`
197
+ <b2b-custom-dropdown placeholder="Select an option">
198
+ <b2b-icon-100 icon="b2b_icon-ellipsis" slot='trigger' clickable focusable></b2b-icon-100>
199
+ <b2b-custom-dropdown-option-category label="Category 1">
200
+ <b2b-custom-dropdown-option option='option1'>
201
+ </b2b-custom-dropdown-option>
202
+ <b2b-custom-dropdown-option option='option2'>
203
+ </b2b-custom-dropdown-option>
204
+ </b2b-custom-dropdown-option-category>
205
+ <b2b-custom-dropdown-option-category label="Category 2">
206
+ <b2b-custom-dropdown-option option='option3'>
207
+ </b2b-custom-dropdown-option>
208
+ <b2b-custom-dropdown-option option='option4'>
209
+ </b2b-custom-dropdown-option>
210
+ </b2b-custom-dropdown-option-category>
211
+ </b2b-custom-dropdown>
212
+ `);
213
+ const trigger = await page.find('b2b-custom-dropdown [slot="trigger"]');
214
+ await trigger.click();
215
+ await page.waitForChanges();
216
+ const categories = await page.findAll('b2b-custom-dropdown-option-category');
217
+ expect(categories.length).toEqual(2);
218
+ const categoryLabels = await page.findAll('b2b-custom-dropdown-option-category >>> .b2b-custom-dropdown__option-category-label');
219
+ expect(categoryLabels.length).toEqual(2);
220
+ expect(categoryLabels[0].textContent).toEqual('Category 1');
221
+ expect(categoryLabels[1].textContent).toEqual('Category 2');
222
+ });
223
+ });
135
224
  });
@@ -2,6 +2,7 @@ import { h, Host, } from "@stencil/core";
2
2
  import { isClickOutside } from "../../utils/utils";
3
3
  export class B2bCustomDropdownComponent {
4
4
  constructor() {
5
+ this.allOptionCategories = [];
5
6
  this.toggleMenu = () => {
6
7
  this.opened = !this.opened;
7
8
  };
@@ -23,6 +24,11 @@ export class B2bCustomDropdownComponent {
23
24
  if (match)
24
25
  visibleCount++;
25
26
  });
27
+ // Update option category visibility based on its visible options
28
+ this.allOptionCategories.forEach(optionCategory => {
29
+ const visibleOptionsInCategory = Array.from(optionCategory.querySelectorAll('b2b-custom-dropdown-option')).filter(opt => !opt.classList.contains('b2b-custom-dropdown__option--hidden')).length;
30
+ optionCategory.classList.toggle('b2b-custom-dropdown__option-category--hidden', visibleOptionsInCategory === 0);
31
+ });
26
32
  this.hasVisibleOptions = visibleCount > 0;
27
33
  };
28
34
  this.placeholder = undefined;
@@ -53,6 +59,12 @@ export class B2bCustomDropdownComponent {
53
59
  }
54
60
  connectedCallback() {
55
61
  this.initializeSlottedOptions();
62
+ const trigger = this.hostElement.querySelector('[slot="trigger"]');
63
+ if (trigger) {
64
+ this.triggerEl = trigger;
65
+ this.triggerEl.addEventListener('click', this.toggleMenu, true);
66
+ return;
67
+ }
56
68
  const children = Array.from(this.hostElement.children).filter(x => !x.hasAttribute('option'));
57
69
  if (children.length === 0) {
58
70
  return;
@@ -60,8 +72,15 @@ export class B2bCustomDropdownComponent {
60
72
  this.triggerEl = children[0];
61
73
  this.triggerEl.addEventListener('click', this.toggleMenu, true);
62
74
  }
75
+ disconnectedCallback() {
76
+ var _a;
77
+ (_a = this.triggerEl) === null || _a === void 0 ? void 0 : _a.removeEventListener('click', this.toggleMenu, true);
78
+ }
63
79
  initializeSlottedOptions() {
64
- this.allOptions = Array.from(this.hostElement.querySelectorAll('[slot="option"]'));
80
+ // Find all option categories
81
+ this.allOptionCategories = Array.from(this.hostElement.querySelectorAll('b2b-custom-dropdown-option-category'));
82
+ // Find all options, including those inside option categories
83
+ this.allOptions = Array.from(this.hostElement.querySelectorAll('b2b-custom-dropdown-option'));
65
84
  }
66
85
  handleClickOutside(event) {
67
86
  if (isClickOutside(event, this.hostElement)) {
@@ -69,7 +88,7 @@ export class B2bCustomDropdownComponent {
69
88
  }
70
89
  }
71
90
  render() {
72
- return (h(Host, { key: 'be885facc6441549cd7bc28f689c2eebf07b6987' }, h("div", { key: '450a33089db12ce4730e1996d1efde9db81a71c5', class: "b2b-custom-dropdown__trigger" }, h("slot", { key: '54e75fd7e993fdfba28da2fbeb1822414bdc8457', name: "trigger" })), h("div", { key: '6b62f9590e78bf20aff37fe09e8acb78ef4b8b90', class: {
91
+ return (h(Host, { key: '3ebf0a1fd00e73bd92e9586ff826f2bd6411eb77' }, h("div", { key: 'bfa6d9fb45247bd080a750a16d208a471598106b', class: "b2b-custom-dropdown__trigger" }, h("slot", { key: '178e859cc10114b68740d189d5ad8407cad20bd4', name: "trigger" })), h("div", { key: 'f77c498d65b62b5710d4758f51c883231903c0b7', class: {
73
92
  'b2b-custom-dropdown': true,
74
93
  'b2b-custom-dropdown--on': this.opened && !this.disabled,
75
94
  'b2b-custom-dropdown--drop-shadow': this.dropshadow,
@@ -77,12 +96,12 @@ export class B2bCustomDropdownComponent {
77
96
  'b2b-custom-dropdown--align-left': this.alignment === 'left',
78
97
  'b2b-custom-dropdown--align-center': this.alignment === 'center',
79
98
  'b2b-custom-dropdown--align-right': this.alignment === 'right',
80
- } }, h("b2b-background-box", { key: '5690eb6da07a46248544fb5b1f742c21987cce7b', noPadding: true, borderTop: "none", borderBottom: "none", borderRight: "none", borderLeft: "none" }, h("div", { key: 'aab7a71ed660cce678c40bfcc36dfaf317e329a9', class: {
99
+ } }, h("b2b-background-box", { key: 'e7d60dff330be21c9e7032e48ce6d50f75b9c81d', noPadding: true, borderTop: "none", borderBottom: "none", borderRight: "none", borderLeft: "none" }, h("div", { key: 'bbf4c8895c70b8dbcb8e226506b2c88b899e5389', class: {
81
100
  'b2b-custom-dropdown-search': true,
82
101
  'b2b-custom-dropdown-search--enabled': this.allOptions.length > 6 && !this.disabled,
83
- } }, h("b2b-input", { key: '7fe33bb83de99b112ff6caa3a1a7c866c6160551', placeholder: this.placeholder, "onB2b-input": this.handleInput }, h("b2b-icon-100", { key: '330b9fa7a045588743ba8d4e4de6de4291091132', icon: "b2b_icon-search", slot: "start" })))), h("div", { key: '25d7f57b346bb8da229ba0c2c9994135bd8e7cfb', class: this.allOptions.length > 6
102
+ } }, h("b2b-input", { key: 'ec6a81db0a47d0d187f6c63700120c6360c7de6d', placeholder: this.placeholder, "onB2b-input": this.handleInput }, h("b2b-icon-100", { key: '93d95a333dd155fc054c1d71b7f8964ccb0051db', icon: "b2b_icon-search", slot: "start" })))), h("div", { key: 'da211321b0347074984ff31f2138270a7d2117b5', class: this.allOptions.length > 6
84
103
  ? 'b2b-custom-dropdown__options-scroll-container'
85
- : 'b2b-custom-dropdown__options-container' }, h("slot", { key: 'ed7646c026e8373cbf329fec8c0379f5bd3d47f0', name: "option" })), this.value && !this.hasVisibleOptions && (h("div", { class: "b2b-custom-dropdown__empty", role: "status" }, h("slot", { name: "empty" }, this.noResultsText))))));
104
+ : 'b2b-custom-dropdown__options-container' }, h("slot", { key: '512507ff8a3b2866d9b870bbd91f6ac5c764e397', name: "option" }), h("slot", { key: '1e5bff1d4559492f4ca082ad61af034f6476439c' })), this.value && !this.hasVisibleOptions && (h("div", { class: "b2b-custom-dropdown__empty", role: "status" }, h("slot", { name: "empty" }, this.noResultsText))))));
86
105
  }
87
106
  static get is() { return "b2b-custom-dropdown"; }
88
107
  static get encapsulation() { return "shadow"; }
@@ -136,6 +136,73 @@ export const WithSeparator = {
136
136
  export const WithIcon = {
137
137
  args: Object.assign(Object.assign({}, meta.args), { opened: true, selected: true, hoverIcon: 'b2b_icon-arrow-long-right', hoverIconColor: 'b2b-color-grey-400', selectedIcon: 'b2b_icon-success', selectedIconColor: 'b2b-color-success-100' }),
138
138
  };
139
+ export const WithOptionCategory = {
140
+ args: Object.assign(Object.assign({}, meta.args), { opened: true, selected: true, hoverIcon: 'b2b_icon-arrow-long-right', hoverIconColor: 'b2b-color-grey-400', selectedIcon: 'b2b_icon-success', selectedIconColor: 'b2b-color-success-100' }),
141
+ render: (_a) => {
142
+ var args = __rest(_a, []);
143
+ return html `<div style="margin-left: 16px;width: 300px">
144
+ <b2b-custom-dropdown
145
+ placeholder=${args.placeholder}
146
+ dropshadow=${args.dropshadow}
147
+ border=${args.border}
148
+ alignment=${args.alignment}
149
+ opened=${args.opened}>
150
+ <b2b-paragraph slot="trigger">
151
+ This is a custom dropdown
152
+ <b2b-icon-100
153
+ icon="b2b_icon-arrow-down"
154
+ focusable
155
+ clickable></b2b-icon-100>
156
+ </b2b-paragraph>
157
+ <b2b-custom-dropdown-option-category label="Option Category 1">
158
+ <b2b-custom-dropdown-option
159
+ option="Option 1"
160
+ hover-icon=${args.hoverIcon}
161
+ selected-icon=${args.selectedIcon}
162
+ hover-icon-color=${args.hoverIconColor}
163
+ selected-icon-color=${args.selectedIconColor}
164
+ selected=${args.selected}
165
+ disabled=${args.disabled}>
166
+ </b2b-custom-dropdown-option>
167
+ <b2b-custom-dropdown-option
168
+ option="Option 2"
169
+ hover-icon=${args.hoverIcon}
170
+ selected-icon=${args.selectedIcon}
171
+ hover-icon-color=${args.hoverIconColor}
172
+ selected-icon-color=${args.selectedIconColor}
173
+ disabled=${args.disabled}>
174
+ </b2b-custom-dropdown-option>
175
+ <b2b-custom-dropdown-option
176
+ option="Option 3"
177
+ hover-icon=${args.hoverIcon}
178
+ selected-icon=${args.selectedIcon}
179
+ hover-icon-color=${args.hoverIconColor}
180
+ selected-icon-color=${args.selectedIconColor}
181
+ disabled=${args.disabled}>
182
+ </b2b-custom-dropdown-option>
183
+ </b2b-custom-dropdown-option-category>
184
+ <b2b-custom-dropdown-option-category label="Option Category 2">
185
+ <b2b-custom-dropdown-option
186
+ option="Option 4"
187
+ hover-icon=${args.hoverIcon}
188
+ selected-icon=${args.selectedIcon}
189
+ hover-icon-color=${args.hoverIconColor}
190
+ selected-icon-color=${args.selectedIconColor}
191
+ disabled=${args.disabled}>
192
+ </b2b-custom-dropdown-option>
193
+ <b2b-custom-dropdown-option
194
+ option="Option 5"
195
+ hover-icon=${args.hoverIcon}
196
+ selected-icon=${args.selectedIcon}
197
+ hover-icon-color=${args.hoverIconColor}
198
+ selected-icon-color=${args.selectedIconColor}
199
+ disabled=${args.disabled}>
200
+ </b2b-custom-dropdown-option>
201
+ </b2b-custom-dropdown-option-category>
202
+ </b2b-custom-dropdown>
203
+ </div>`;
204
+ },
205
+ };
139
206
  export const CustomDropdownOptionsDisabled = {
140
207
  args: Object.assign(Object.assign({}, meta.args), { disabled: true, opened: true }),
141
208
  };
@@ -13,7 +13,7 @@ export class B2bDatePickerDaysHeader {
13
13
  this.language = 'de';
14
14
  }
15
15
  render() {
16
- return (h(Host, { key: '6ca6b61422e9664b0468ccee19cd3cd208d0fb97' }, h("div", { key: '69fd18279a42ecfb0a2a07f99bb04565153c8df6', class: "b2b-date-picker-days-header" }, this.displayWeekDays())));
16
+ return (h(Host, { key: 'b263de3bc9e2189a320bd0f1a3c43b15e6a9e0b8' }, h("div", { key: 'ddf44663f7bbf839aa6a365590e9b641711547c8', class: "b2b-date-picker-days-header" }, this.displayWeekDays())));
17
17
  }
18
18
  static get is() { return "b2b-date-picker-days-header"; }
19
19
  static get encapsulation() { return "shadow"; }
@@ -160,7 +160,7 @@ export class B2bDatePickerDays {
160
160
  });
161
161
  }
162
162
  render() {
163
- return (h(Host, { key: '73d99c811d52c00ddec7c3f044b7d850861f7a48' }, h("div", { key: '146b6533fc0d040a896e32baf3068793a8cdfe81', class: "b2b-date-picker-days" }, this.renderDatePickerDays())));
163
+ return (h(Host, { key: 'e1b82227a7d6f35bd707296d356f91c0724d161c' }, h("div", { key: '6dc28f794b1f81fbce7363dd33b8fa54c0cbb9d0', class: "b2b-date-picker-days" }, this.renderDatePickerDays())));
164
164
  }
165
165
  static get is() { return "b2b-date-picker-days"; }
166
166
  static get encapsulation() { return "shadow"; }
@@ -8,9 +8,9 @@ export class B2bDatePickerHeader {
8
8
  }
9
9
  render() {
10
10
  const Months = this.language === 'en' ? MonthsEnglish : MonthsGerman;
11
- return (h(Host, { key: '149ffea5e265aa5988cbd5e9e49a6282a2c26620' }, h("div", { key: 'ff0afa53b9c874475bb1c7362d0b49e458d1cc57', class: "b2b-date-picker-header" }, h("button", { key: '785d10e6fa6339a2fe10b2a11ad9d02432792c16', class: "b2b-date-picker-nav--left", onClick: this.b2bDatePickerPreviousMonth.emit, onMouseOut: event => {
11
+ return (h(Host, { key: '7b757dbe383afbbde516f8aa8153b6192599ec66' }, h("div", { key: '93ba06b2e60a0dc8f688a7878abdb0c47898edb0', class: "b2b-date-picker-header" }, h("button", { key: '905bfce876914038ded90e28c051a87dae2e9577', class: "b2b-date-picker-nav--left", onClick: this.b2bDatePickerPreviousMonth.emit, onMouseOut: event => {
12
12
  event.target.blur();
13
- }, "aria-label": "previous month" }, h("b2b-icon-100", { key: '7e52cd1f6da18c5fdbeb82c1481794aa3f0a81a5', icon: "b2b_icon-arrow-left", clickable: true })), h("b2b-headline", { key: 'd73a470a1e573c843bd45d7276563291fbed287c', size: '100', align: 'center', class: "b2b-date-picker-month", "aria-label": "select month", tabindex: 0, onClick: () => {
13
+ }, "aria-label": "previous month" }, h("b2b-icon-100", { key: 'e001e6d00bcbb13b56c4dd5e34604d3099ffabef', icon: "b2b_icon-arrow-left", clickable: true })), h("b2b-headline", { key: 'fd2d92a0be0314b846e958edf9bccf3c398a247a', size: '100', align: 'center', class: "b2b-date-picker-month", "aria-label": "select month", tabindex: 0, onClick: () => {
14
14
  this.b2bDatePickerViewChanged.emit({
15
15
  value: "Months" /* DatePickerView.Months */,
16
16
  });
@@ -20,7 +20,7 @@ export class B2bDatePickerHeader {
20
20
  value: "Months" /* DatePickerView.Months */,
21
21
  });
22
22
  }
23
- } }, Months[this.selectedMonth]), h("b2b-headline", { key: '9a443891ff3bc1d64f8bd0c94dee0e99c2c899ee', size: '100', align: 'center', class: "b2b-date-picker-year", "aria-label": "select year", tabindex: 0, onClick: () => {
23
+ } }, Months[this.selectedMonth]), h("b2b-headline", { key: '2911aaded910b96beead35c2829468a244c49832', size: '100', align: 'center', class: "b2b-date-picker-year", "aria-label": "select year", tabindex: 0, onClick: () => {
24
24
  this.b2bDatePickerViewChanged.emit({
25
25
  value: "Years" /* DatePickerView.Years */,
26
26
  });
@@ -30,9 +30,9 @@ export class B2bDatePickerHeader {
30
30
  value: "Years" /* DatePickerView.Years */,
31
31
  });
32
32
  }
33
- } }, this.selectedYear), h("button", { key: '08ce033f80749a5d9b882fbf04939b9993289ead', class: "b2b-date-picker-nav--right", onClick: this.b2bDatePickerNextMonth.emit, onMouseOut: event => {
33
+ } }, this.selectedYear), h("button", { key: 'c36292f29993f17e1b3597086714e680d390f2b9', class: "b2b-date-picker-nav--right", onClick: this.b2bDatePickerNextMonth.emit, onMouseOut: event => {
34
34
  event.target.blur();
35
- }, "aria-label": "next month" }, h("b2b-icon-100", { key: '8ba392f6c91dfd7e9c1a262ddca2e3640e7c3840', icon: "b2b_icon-arrow-right", clickable: true })))));
35
+ }, "aria-label": "next month" }, h("b2b-icon-100", { key: '7b7391d2f476a1b4170368caf58e26a265f4af87', icon: "b2b_icon-arrow-right", clickable: true })))));
36
36
  }
37
37
  static get is() { return "b2b-date-picker-header"; }
38
38
  static get encapsulation() { return "shadow"; }
@@ -80,7 +80,7 @@ export class B2bDatePickerMonths {
80
80
  (_a = this.getCurrentMonth()) === null || _a === void 0 ? void 0 : _a.focus();
81
81
  }
82
82
  render() {
83
- return (h(Host, { key: '92f546b998c48d274d76db47db997bcda3968033' }, h("div", { key: 'cfd9e12f5d1047d6acf2be7142d070dd64517049', class: "b2b-date-picker-months" }, this.renderDatePickerMonths())));
83
+ return (h(Host, { key: '33365006ef661b018a70e1f0712e22e0dd9c5dec' }, h("div", { key: 'a06fa2fa936f5fcb51a3d90d6f9ef7463785997a', class: "b2b-date-picker-months" }, this.renderDatePickerMonths())));
84
84
  }
85
85
  static get is() { return "b2b-date-picker-months"; }
86
86
  static get encapsulation() { return "shadow"; }
@@ -97,7 +97,7 @@ export class B2bDatePickerYears {
97
97
  }
98
98
  }
99
99
  render() {
100
- return (h(Host, { key: '2e9b64e857f36f8623cb13aa5ebd5346e21bdc6f' }, h("div", { key: 'b6a82d5fbfc2f18aab9c2c64efe3c8bbe63cfc19', class: "b2b-date-picker-years" }, this.renderDatePickerYears())));
100
+ return (h(Host, { key: '66a4e371ba765166025c8addfd5e8ca3ef6a1223' }, h("div", { key: '2ec5a10c6c605d91b3eb5b18a558ade240980154', class: "b2b-date-picker-years" }, this.renderDatePickerYears())));
101
101
  }
102
102
  static get is() { return "b2b-date-picker-years"; }
103
103
  static get encapsulation() { return "shadow"; }