@otto-de/b2b-core-components 1.5.0 → 1.6.1

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 (357) hide show
  1. package/dist/b2b-core-components/b2b-core-components.esm.js +1 -1
  2. package/dist/b2b-core-components/p-01fd54a1.entry.js +1 -0
  3. package/dist/b2b-core-components/{p-b95089a7.entry.js → p-04fc18cd.entry.js} +1 -1
  4. package/dist/b2b-core-components/{p-c20baf90.entry.js → p-077217b3.entry.js} +1 -1
  5. package/dist/b2b-core-components/{p-03beebf5.entry.js → p-0965b990.entry.js} +1 -1
  6. package/dist/b2b-core-components/p-0beabdb4.entry.js +1 -0
  7. package/dist/b2b-core-components/p-163466cf.entry.js +1 -0
  8. package/dist/b2b-core-components/p-197c1a6d.entry.js +1 -0
  9. package/dist/b2b-core-components/{p-75f84f53.entry.js → p-1d007eea.entry.js} +1 -1
  10. package/dist/b2b-core-components/{p-6997ceb0.entry.js → p-1e2752b2.entry.js} +1 -1
  11. package/dist/b2b-core-components/{p-06ef4c5e.entry.js → p-2328144b.entry.js} +1 -1
  12. package/dist/b2b-core-components/{p-9184036b.entry.js → p-2ad8bdb6.entry.js} +1 -1
  13. package/dist/b2b-core-components/p-2d01e68a.entry.js +1 -0
  14. package/dist/b2b-core-components/{p-60c7f6f7.entry.js → p-3c0671ef.entry.js} +1 -1
  15. package/dist/b2b-core-components/p-42e7f397.entry.js +1 -0
  16. package/dist/b2b-core-components/{p-163fe245.entry.js → p-44ccd8f4.entry.js} +1 -1
  17. package/dist/b2b-core-components/{p-38791fb9.entry.js → p-542a358a.entry.js} +1 -1
  18. package/dist/b2b-core-components/p-54fd68eb.entry.js +1 -0
  19. package/dist/b2b-core-components/p-60badad5.entry.js +1 -0
  20. package/dist/b2b-core-components/{p-e1622cb8.entry.js → p-6140304e.entry.js} +1 -1
  21. package/dist/b2b-core-components/p-62e43f91.entry.js +1 -0
  22. package/dist/b2b-core-components/{p-f0aa5e83.entry.js → p-681d6880.entry.js} +1 -1
  23. package/dist/b2b-core-components/{p-bcf36531.entry.js → p-8ad1bb92.entry.js} +1 -1
  24. package/dist/b2b-core-components/p-90a3ffed.entry.js +1 -0
  25. package/dist/b2b-core-components/p-97ef9805.entry.js +1 -0
  26. package/dist/b2b-core-components/{p-48d4d224.entry.js → p-a50ea33f.entry.js} +1 -1
  27. package/dist/b2b-core-components/{p-c8294029.entry.js → p-b3ccfc58.entry.js} +1 -1
  28. package/dist/b2b-core-components/{p-2b3a67db.entry.js → p-b6a8a06f.entry.js} +1 -1
  29. package/dist/b2b-core-components/{p-5c2db521.entry.js → p-b8049234.entry.js} +1 -1
  30. package/dist/b2b-core-components/p-c294dd0c.entry.js +1 -0
  31. package/dist/b2b-core-components/{p-5d7866e8.entry.js → p-d07210e2.entry.js} +1 -1
  32. package/dist/b2b-core-components/p-d7bb8aa1.entry.js +1 -0
  33. package/dist/b2b-core-components/{p-76e240f8.entry.js → p-d83c2084.entry.js} +1 -1
  34. package/dist/b2b-core-components/{p-dcd80266.entry.js → p-db7d2ec3.entry.js} +1 -1
  35. package/dist/b2b-core-components/{p-9facba86.entry.js → p-dd79ab5b.entry.js} +1 -1
  36. package/dist/b2b-core-components/{p-bda69b9a.entry.js → p-e5b78075.entry.js} +1 -1
  37. package/dist/b2b-core-components/{p-7b04f40b.entry.js → p-e811411a.entry.js} +1 -1
  38. package/dist/b2b-core-components/p-f190bf79.entry.js +1 -0
  39. package/dist/b2b-core-components/{p-1e1bdb50.entry.js → p-f24515bf.entry.js} +1 -1
  40. package/dist/b2b-core-components/p-f3ce95bf.js +2 -0
  41. package/dist/b2b-core-components/p-f7e9f889.entry.js +1 -0
  42. package/dist/cjs/b2b-alert.cjs.entry.js +4 -4
  43. package/dist/cjs/b2b-anchor.cjs.entry.js +1 -1
  44. package/dist/cjs/b2b-button_2.cjs.entry.js +12 -8
  45. package/dist/cjs/b2b-card.cjs.entry.js +1 -1
  46. package/dist/cjs/b2b-checkbox-group.cjs.entry.js +7 -5
  47. package/dist/cjs/{b2b-table-cell_2.cjs.entry.js → b2b-checkbox_3.cjs.entry.js} +94 -7
  48. package/dist/cjs/b2b-core-components.cjs.js +3 -3
  49. package/dist/cjs/b2b-dropdown.cjs.entry.js +3 -3
  50. package/dist/cjs/b2b-grid-col.cjs.entry.js +1 -1
  51. package/dist/cjs/b2b-grid-row.cjs.entry.js +2 -2
  52. package/dist/cjs/b2b-grid.cjs.entry.js +1 -1
  53. package/dist/cjs/b2b-headline.cjs.entry.js +1 -1
  54. package/dist/cjs/b2b-icon.cjs.entry.js +4 -4
  55. package/dist/cjs/b2b-input-group_2.cjs.entry.js +10 -21
  56. package/dist/cjs/b2b-input-label.cjs.entry.js +1 -1
  57. package/dist/cjs/b2b-input_2.cjs.entry.js +8 -7
  58. package/dist/cjs/b2b-label.cjs.entry.js +1 -1
  59. package/dist/cjs/b2b-modal.cjs.entry.js +5 -5
  60. package/dist/cjs/b2b-pagination.cjs.entry.js +5 -5
  61. package/dist/cjs/b2b-paragraph.cjs.entry.js +5 -5
  62. package/dist/cjs/b2b-radio-button.cjs.entry.js +1 -1
  63. package/dist/cjs/b2b-radio-group.cjs.entry.js +1 -1
  64. package/dist/cjs/b2b-required-separator.cjs.entry.js +3 -3
  65. package/dist/cjs/b2b-rounded-icon.cjs.entry.js +1 -1
  66. package/dist/cjs/b2b-scrollable-container.cjs.entry.js +1 -1
  67. package/dist/cjs/b2b-search.cjs.entry.js +1 -1
  68. package/dist/cjs/b2b-separator.cjs.entry.js +1 -1
  69. package/dist/cjs/b2b-tab-group.cjs.entry.js +1 -1
  70. package/dist/cjs/b2b-tab-panel.cjs.entry.js +1 -1
  71. package/dist/cjs/b2b-tab.cjs.entry.js +1 -1
  72. package/dist/cjs/b2b-table-row.cjs.entry.js +77 -21
  73. package/dist/cjs/b2b-table-rowgroup.cjs.entry.js +85 -24
  74. package/dist/cjs/b2b-table.cjs.entry.js +10 -10
  75. package/dist/cjs/b2b-textarea.cjs.entry.js +1 -1
  76. package/dist/cjs/b2b-toggle-button.cjs.entry.js +7 -7
  77. package/dist/cjs/b2b-toggle-group.cjs.entry.js +3 -3
  78. package/dist/cjs/b2b-tooltip.cjs.entry.js +4 -4
  79. package/dist/cjs/b2b-wizard-icon.cjs.entry.js +1 -1
  80. package/dist/cjs/b2b-wizard-step.cjs.entry.js +4 -4
  81. package/dist/cjs/b2b-wizard.cjs.entry.js +2 -2
  82. package/dist/cjs/{index-496aa5dd.js → index-04e07a00.js} +88 -31
  83. package/dist/cjs/loader.cjs.js +3 -3
  84. package/dist/cjs/{table.types-bb0926c7.js → table.types-00c8228a.js} +2 -2
  85. package/dist/collection/collection-manifest.json +2 -2
  86. package/dist/collection/components/alert/alert.css +7 -7
  87. package/dist/collection/components/alert/alert.e2e.js +67 -0
  88. package/dist/collection/components/alert/alert.js +2 -2
  89. package/dist/collection/components/anchor/anchor.css +2 -2
  90. package/dist/collection/components/anchor/anchor.spec.js +68 -0
  91. package/dist/collection/components/button/button.css +35 -39
  92. package/dist/collection/components/button/button.e2e.js +80 -0
  93. package/dist/collection/components/button/button.js +31 -6
  94. package/dist/collection/components/card/card.css +2 -2
  95. package/dist/collection/components/card/card.e2e.js +110 -0
  96. package/dist/collection/components/card/card.spec.js +32 -0
  97. package/dist/collection/components/checkbox/checkbox.css +34 -13
  98. package/dist/collection/components/checkbox/checkbox.e2e.js +30 -0
  99. package/dist/collection/components/checkbox/checkbox.js +81 -6
  100. package/dist/collection/components/checkbox/checkbox.spec.js +45 -0
  101. package/dist/collection/components/checkbox-group/checkbox-group.css +5 -5
  102. package/dist/collection/components/checkbox-group/checkbox-group.e2e.js +78 -0
  103. package/dist/collection/components/checkbox-group/checkbox-group.js +5 -3
  104. package/dist/collection/components/checkbox-group/checkbox-group.spec.js +38 -0
  105. package/dist/collection/components/dropdown/dropdown.css +7 -7
  106. package/dist/collection/components/dropdown/dropdown.e2e.js +48 -0
  107. package/dist/collection/components/dropdown/dropdown.js +1 -1
  108. package/dist/collection/components/dropdown/dropdown.spec.js +52 -0
  109. package/dist/collection/components/grid/grid.e2e.js +17 -0
  110. package/dist/collection/components/grid/row.js +1 -1
  111. package/dist/collection/components/headline/headline.css +2 -2
  112. package/dist/collection/components/headline/headline.e2e.js +13 -0
  113. package/dist/collection/components/headline/headline.spec.js +67 -0
  114. package/dist/collection/components/icon/icon.css +9 -9
  115. package/dist/collection/components/icon/icon.js +2 -2
  116. package/dist/collection/components/icon/icon.spec.js +21 -0
  117. package/dist/collection/components/input/input.css +14 -14
  118. package/dist/collection/components/input/input.e2e.js +43 -0
  119. package/dist/collection/components/input/input.js +26 -4
  120. package/dist/collection/components/input/input.spec.js +45 -0
  121. package/dist/collection/components/input-group/input-group.css +4 -4
  122. package/dist/collection/components/input-group/input-group.e2e.js +76 -0
  123. package/dist/collection/components/input-group/input-group.js +4 -21
  124. package/dist/collection/components/input-group/input-group.spec.js +56 -0
  125. package/dist/collection/components/input-label/input-label.e2e.js +10 -0
  126. package/dist/collection/components/input-list/input-list.css +7 -7
  127. package/dist/collection/components/input-list/input-list.e2e.js +227 -0
  128. package/dist/collection/components/input-list/input-list.js +24 -2
  129. package/dist/collection/components/label/label.css +2 -2
  130. package/dist/collection/components/label/label.e2e.js +17 -0
  131. package/dist/collection/components/label/label.spec.js +58 -0
  132. package/dist/collection/components/modal/modal.css +13 -18
  133. package/dist/collection/components/modal/modal.e2e.js +115 -0
  134. package/dist/collection/components/modal/modal.js +3 -3
  135. package/dist/collection/components/pagination/pagination.css +7 -7
  136. package/dist/collection/components/pagination/pagination.e2e.js +256 -0
  137. package/dist/collection/components/pagination/pagination.js +3 -3
  138. package/dist/collection/components/pagination/pagination.spec.js +104 -0
  139. package/dist/collection/components/paragraph/paragraph.css +9 -9
  140. package/dist/collection/components/paragraph/paragraph.e2e.js +13 -0
  141. package/dist/collection/components/paragraph/paragraph.js +3 -3
  142. package/dist/collection/components/radio/radio.css +2 -2
  143. package/dist/collection/components/radio/radio.e2e.js +36 -0
  144. package/dist/collection/components/radio/radio.spec.js +38 -0
  145. package/dist/collection/components/radio-group/radio-group.css +2 -2
  146. package/dist/collection/components/radio-group/radio-group.e2e.js +71 -0
  147. package/dist/collection/components/radio-group/radio-group.spec.js +31 -0
  148. package/dist/collection/components/required-separator/required-separator.css +4 -4
  149. package/dist/collection/components/required-separator/required-separator.e2e.js +17 -0
  150. package/dist/collection/components/required-separator/required-separator.js +1 -1
  151. package/dist/collection/components/rounded-icon/rounded-icon.css +2 -2
  152. package/dist/collection/components/scrollable-container/scrollable-container.css +2 -2
  153. package/dist/collection/components/search/search.e2e.js +97 -0
  154. package/dist/collection/components/separator/separator.css +2 -2
  155. package/dist/collection/components/separator/separator.e2e.js +22 -0
  156. package/dist/collection/components/spinner/spinner.css +2 -2
  157. package/dist/collection/components/spinner/spinner.e2e.js +12 -0
  158. package/dist/collection/components/spinner/spinner.spec.js +41 -0
  159. package/dist/collection/components/tab/tab.css +2 -2
  160. package/dist/collection/components/tab/tab.e2e.js +35 -0
  161. package/dist/collection/components/tab/tab.spec.js +31 -0
  162. package/dist/collection/components/tab-group/tab-group.e2e.js +98 -0
  163. package/dist/collection/components/tab-panel/tab-panel.css +2 -2
  164. package/dist/collection/components/tab-panel/tab-panel.e2e.js +12 -0
  165. package/dist/collection/components/tab-panel/tab-panel.spec.js +10 -0
  166. package/dist/collection/components/table/stories.data.js +6 -6
  167. package/dist/collection/components/table/table-cell/table-cell.css +2 -2
  168. package/dist/collection/components/table/table-header/table-header.css +17 -17
  169. package/dist/collection/components/table/table-header/table-header.js +4 -4
  170. package/dist/collection/components/table/table-row/table-row.css +3 -3
  171. package/dist/collection/components/table/table-row/table-row.js +185 -25
  172. package/dist/collection/components/table/table-rowgroup/table-rowgroup.css +3 -3
  173. package/dist/collection/components/table/table-rowgroup/table-rowgroup.js +118 -23
  174. package/dist/collection/components/table/table.css +2 -2
  175. package/dist/collection/components/table/table.e2e.js +370 -0
  176. package/dist/collection/components/table/table.js +8 -8
  177. package/dist/collection/components/table/table.stories.js +16 -7
  178. package/dist/collection/components/table/utils.js +18 -0
  179. package/dist/collection/components/textarea/textarea.css +2 -2
  180. package/dist/collection/components/textarea/textarea.e2e.js +91 -0
  181. package/dist/collection/components/toggle-button/toggle-button.css +9 -9
  182. package/dist/collection/components/toggle-button/toggle-button.e2e.js +44 -0
  183. package/dist/collection/components/toggle-button/toggle-button.js +5 -5
  184. package/dist/collection/components/toggle-group/toggle-group.css +3 -3
  185. package/dist/collection/components/toggle-group/toggle-group.e2e.js +65 -0
  186. package/dist/collection/components/toggle-group/toggle-group.js +1 -1
  187. package/dist/collection/components/tooltip/tooltip.css +14 -14
  188. package/dist/collection/components/tooltip/tooltip.e2e.js +64 -0
  189. package/dist/collection/components/tooltip/tooltip.js +2 -2
  190. package/dist/collection/components/wizard/wizard-step.js +2 -2
  191. package/dist/collection/components/wizard/wizard.css +3 -3
  192. package/dist/collection/components/wizard/wizard.e2e.js +149 -0
  193. package/dist/collection/components/wizard-icon/wizard-icon.css +2 -2
  194. package/dist/collection/docs/config/replace-prop-controls.spec.js +32 -0
  195. package/dist/collection/utils/types/table.types.js +5 -1
  196. package/dist/collection/utils/utils.spec.js +15 -0
  197. package/dist/components/b2b-alert.js +4 -4
  198. package/dist/components/b2b-anchor.js +1 -1
  199. package/dist/components/b2b-card.js +1 -1
  200. package/dist/components/b2b-checkbox-group.js +7 -5
  201. package/dist/components/b2b-checkbox.js +1 -99
  202. package/dist/components/b2b-dropdown.js +3 -3
  203. package/dist/components/b2b-grid-col.js +1 -1
  204. package/dist/components/b2b-grid-row.js +2 -2
  205. package/dist/components/b2b-grid.js +1 -1
  206. package/dist/components/b2b-label.js +1 -1
  207. package/dist/components/b2b-modal.js +5 -5
  208. package/dist/components/b2b-pagination.js +5 -5
  209. package/dist/components/b2b-paragraph.js +5 -5
  210. package/dist/components/b2b-radio-button.js +1 -1
  211. package/dist/components/b2b-radio-group.js +1 -1
  212. package/dist/components/b2b-required-separator.js +3 -3
  213. package/dist/components/b2b-scrollable-container.js +1 -1
  214. package/dist/components/b2b-search.js +1 -1
  215. package/dist/components/b2b-tab-group.js +1 -1
  216. package/dist/components/b2b-tab-panel.js +1 -1
  217. package/dist/components/b2b-tab.js +1 -1
  218. package/dist/components/b2b-table-row.js +97 -25
  219. package/dist/components/b2b-table-rowgroup.js +91 -27
  220. package/dist/components/b2b-table.js +9 -9
  221. package/dist/components/b2b-textarea.js +1 -1
  222. package/dist/components/b2b-toggle-button.js +7 -7
  223. package/dist/components/b2b-toggle-group.js +3 -3
  224. package/dist/components/b2b-tooltip.js +4 -4
  225. package/dist/components/b2b-wizard-step.js +4 -4
  226. package/dist/components/b2b-wizard.js +2 -2
  227. package/dist/components/button.js +13 -8
  228. package/dist/{esm/b2b-checkbox.entry.js → components/checkbox.js} +66 -13
  229. package/dist/components/headline.js +1 -1
  230. package/dist/components/icon.js +4 -4
  231. package/dist/components/input-group.js +7 -20
  232. package/dist/components/input-label.js +1 -1
  233. package/dist/components/input-list-option.js +2 -2
  234. package/dist/components/input-list.js +6 -4
  235. package/dist/components/input.js +8 -6
  236. package/dist/components/rounded-icon.js +1 -1
  237. package/dist/components/separator.js +1 -1
  238. package/dist/components/spinner.js +1 -1
  239. package/dist/components/table-cell.js +1 -1
  240. package/dist/components/table-header.js +6 -6
  241. package/dist/components/table.types.js +2 -2
  242. package/dist/components/wizard-icon.js +1 -1
  243. package/dist/custom-elements.json +22 -13
  244. package/dist/esm/b2b-alert.entry.js +4 -4
  245. package/dist/esm/b2b-anchor.entry.js +1 -1
  246. package/dist/esm/b2b-button_2.entry.js +12 -8
  247. package/dist/esm/b2b-card.entry.js +1 -1
  248. package/dist/esm/b2b-checkbox-group.entry.js +7 -5
  249. package/dist/esm/{b2b-table-cell_2.entry.js → b2b-checkbox_3.entry.js} +94 -8
  250. package/dist/esm/b2b-core-components.js +4 -4
  251. package/dist/esm/b2b-dropdown.entry.js +3 -3
  252. package/dist/esm/b2b-grid-col.entry.js +1 -1
  253. package/dist/esm/b2b-grid-row.entry.js +2 -2
  254. package/dist/esm/b2b-grid.entry.js +1 -1
  255. package/dist/esm/b2b-headline.entry.js +1 -1
  256. package/dist/esm/b2b-icon.entry.js +4 -4
  257. package/dist/esm/b2b-input-group_2.entry.js +10 -21
  258. package/dist/esm/b2b-input-label.entry.js +1 -1
  259. package/dist/esm/b2b-input_2.entry.js +8 -7
  260. package/dist/esm/b2b-label.entry.js +1 -1
  261. package/dist/esm/b2b-modal.entry.js +5 -5
  262. package/dist/esm/b2b-pagination.entry.js +5 -5
  263. package/dist/esm/b2b-paragraph.entry.js +5 -5
  264. package/dist/esm/b2b-radio-button.entry.js +1 -1
  265. package/dist/esm/b2b-radio-group.entry.js +1 -1
  266. package/dist/esm/b2b-required-separator.entry.js +3 -3
  267. package/dist/esm/b2b-rounded-icon.entry.js +1 -1
  268. package/dist/esm/b2b-scrollable-container.entry.js +1 -1
  269. package/dist/esm/b2b-search.entry.js +1 -1
  270. package/dist/esm/b2b-separator.entry.js +1 -1
  271. package/dist/esm/b2b-tab-group.entry.js +1 -1
  272. package/dist/esm/b2b-tab-panel.entry.js +1 -1
  273. package/dist/esm/b2b-tab.entry.js +1 -1
  274. package/dist/esm/b2b-table-row.entry.js +77 -21
  275. package/dist/esm/b2b-table-rowgroup.entry.js +85 -24
  276. package/dist/esm/b2b-table.entry.js +10 -10
  277. package/dist/esm/b2b-textarea.entry.js +1 -1
  278. package/dist/esm/b2b-toggle-button.entry.js +7 -7
  279. package/dist/esm/b2b-toggle-group.entry.js +3 -3
  280. package/dist/esm/b2b-tooltip.entry.js +4 -4
  281. package/dist/esm/b2b-wizard-icon.entry.js +1 -1
  282. package/dist/esm/b2b-wizard-step.entry.js +4 -4
  283. package/dist/esm/b2b-wizard.entry.js +2 -2
  284. package/dist/esm/{index-026605c2.js → index-dfdbf4b9.js} +88 -31
  285. package/dist/esm/loader.js +4 -4
  286. package/dist/esm/{table.types-9943c937.js → table.types-dd829d83.js} +2 -2
  287. package/dist/types/components/alert/alert.stories.d.ts +1 -1
  288. package/dist/types/components/anchor/anchor.stories.d.ts +1 -1
  289. package/dist/types/components/button/button.d.ts +2 -0
  290. package/dist/types/components/button/button.stories.d.ts +1 -1
  291. package/dist/types/components/card/card.stories.d.ts +1 -1
  292. package/dist/types/components/checkbox/checkbox.d.ts +8 -1
  293. package/dist/types/components/checkbox/checkbox.stories.d.ts +1 -1
  294. package/dist/types/components/checkbox-group/checkbox-group.stories.d.ts +1 -1
  295. package/dist/types/components/dropdown/dropdown.stories.d.ts +1 -1
  296. package/dist/types/components/grid/grid.stories.d.ts +1 -1
  297. package/dist/types/components/headline/headline.stories.d.ts +1 -1
  298. package/dist/types/components/icon/icon.stories.d.ts +1 -1
  299. package/dist/types/components/input/input.d.ts +2 -0
  300. package/dist/types/components/input/input.stories.d.ts +1 -1
  301. package/dist/types/components/input-group/input-group.d.ts +0 -4
  302. package/dist/types/components/input-group/input-group.stories.d.ts +1 -1
  303. package/dist/types/components/input-list/input-list.d.ts +2 -0
  304. package/dist/types/components/input-list/input-list.stories.d.ts +1 -1
  305. package/dist/types/components/label/label.stories.d.ts +1 -1
  306. package/dist/types/components/modal/modal.stories.d.ts +1 -1
  307. package/dist/types/components/pagination/pagination.stories.d.ts +1 -1
  308. package/dist/types/components/paragraph/paragraph.stories.d.ts +1 -1
  309. package/dist/types/components/radio/radio.stories.d.ts +1 -1
  310. package/dist/types/components/radio-group/radio-group.stories.d.ts +1 -1
  311. package/dist/types/components/required-separator/required-separator.stories.d.ts +1 -1
  312. package/dist/types/components/rounded-icon/rounded-icon.stories.d.ts +1 -1
  313. package/dist/types/components/scrollable-container/scrollable-container.stories.d.ts +1 -1
  314. package/dist/types/components/search/search.stories.d.ts +1 -1
  315. package/dist/types/components/separator/separator.stories.d.ts +1 -1
  316. package/dist/types/components/spinner/spinner.stories.d.ts +1 -1
  317. package/dist/types/components/tab-group/tab-group.stories.d.ts +1 -1
  318. package/dist/types/components/table/table-row/table-row.d.ts +23 -7
  319. package/dist/types/components/table/table-rowgroup/table-rowgroup.d.ts +12 -2
  320. package/dist/types/components/table/table.d.ts +1 -1
  321. package/dist/types/components/table/table.stories.d.ts +2 -1
  322. package/dist/types/components/table/utils.d.ts +4 -0
  323. package/dist/types/components/textarea/textarea.stories.d.ts +1 -1
  324. package/dist/types/components/toggle-group/toggle-group.stories.d.ts +1 -1
  325. package/dist/types/components/tooltip/tooltip.stories.d.ts +1 -1
  326. package/dist/types/components/wizard/wizard.stories.d.ts +1 -1
  327. package/dist/types/components/wizard-icon/wizard-icon.stories.d.ts +1 -1
  328. package/dist/types/components.d.ts +71 -9
  329. package/dist/types/docs/tokens/color.stories.d.ts +1 -1
  330. package/dist/types/docs/tokens/font.stories.d.ts +1 -1
  331. package/dist/types/docs/tokens/size.stories.d.ts +1 -1
  332. package/dist/types/stencil-public-runtime.d.ts +3 -0
  333. package/dist/types/utils/interfaces/content.interface.d.ts +4 -0
  334. package/dist/types/utils/interfaces/form.interface.d.ts +1 -0
  335. package/dist/types/utils/types/table.types.d.ts +7 -2
  336. package/dist/web-types.json +76 -6
  337. package/loader/index.d.ts +1 -1
  338. package/package.json +4 -4
  339. package/dist/b2b-core-components/p-0675225a.entry.js +0 -1
  340. package/dist/b2b-core-components/p-080a0741.entry.js +0 -1
  341. package/dist/b2b-core-components/p-0f8bd310.entry.js +0 -1
  342. package/dist/b2b-core-components/p-14f1b674.entry.js +0 -1
  343. package/dist/b2b-core-components/p-1eb784f9.entry.js +0 -1
  344. package/dist/b2b-core-components/p-21bfe96a.entry.js +0 -1
  345. package/dist/b2b-core-components/p-3cd9088a.entry.js +0 -1
  346. package/dist/b2b-core-components/p-42da7a57.entry.js +0 -1
  347. package/dist/b2b-core-components/p-4fc894c8.entry.js +0 -1
  348. package/dist/b2b-core-components/p-710600ca.entry.js +0 -1
  349. package/dist/b2b-core-components/p-83cb9d03.entry.js +0 -1
  350. package/dist/b2b-core-components/p-a7417890.js +0 -2
  351. package/dist/b2b-core-components/p-c9dcb35a.entry.js +0 -1
  352. package/dist/b2b-core-components/p-cf010e88.entry.js +0 -1
  353. package/dist/b2b-core-components/p-e3cd216c.entry.js +0 -1
  354. package/dist/b2b-core-components/p-fa6cd2ac.entry.js +0 -1
  355. package/dist/b2b-core-components/p-fe96d81a.entry.js +0 -1
  356. package/dist/cjs/b2b-checkbox.cjs.entry.js +0 -74
  357. /package/dist/b2b-core-components/{p-de2c1003.js → p-34eb99cb.js} +0 -0
@@ -28,18 +28,35 @@ export class CheckboxComponent {
28
28
  if (this.disabled) {
29
29
  return;
30
30
  }
31
- this.checked = !this.checked;
31
+ else if (this.indeterminate) {
32
+ this.indeterminate = false;
33
+ this.checked = true;
34
+ }
35
+ else {
36
+ this.checked = !this.checked;
37
+ }
32
38
  this.emitDetail();
33
39
  };
40
+ this.renderIcon = () => {
41
+ if (this.indeterminate) {
42
+ return (h("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 11 1", class: "b2b-checkbox__icon" }, h("path", { d: "M8.5 0H0.5C0.223633 0 0 0.223633 0 0.5C0 0.776367 0.223633 1 0.5 1H8.5C8.77637 1 9 0.776367 9 0.5C9 0.223633 8.77637 0 8.5 0Z", fill: "white" })));
43
+ }
44
+ if (this.checked) {
45
+ return (h("svg", { class: "b2b-checkbox__icon", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 32 32" }, h("path", { d: "M11.798 25.082c-.341 0-.681-.13-.942-.389l-7.132-7.115a1.334 1.334 0 0 1 1.884-1.888l6.19 6.175L26.391 7.307a1.334 1.334 0 0 1 1.884 1.888L12.74 24.693c-.26.259-.601.389-.942.389z" })));
46
+ }
47
+ };
34
48
  this.label = undefined;
35
49
  this.required = false;
36
50
  this.checked = false;
37
51
  this.disabled = false;
52
+ this.indeterminate = undefined;
38
53
  this.error = undefined;
39
54
  this.hint = undefined;
40
55
  this.name = undefined;
41
56
  this.value = undefined;
42
57
  this.invalid = false;
58
+ this.standalone = false;
59
+ this.groupDisabled = false;
43
60
  }
44
61
  connectedCallback() {
45
62
  const form = this.hostElement.closest('form');
@@ -51,9 +68,11 @@ export class CheckboxComponent {
51
68
  return (h(Host, { onClick: this.onClick }, h("div", { class: {
52
69
  'b2b-checkbox': true,
53
70
  'b2b-checkbox--error': this.invalid && !this.disabled,
54
- 'b2b-checkbox--disabled': this.disabled,
55
- 'b2b-checkbox-checked': this.checked,
56
- } }, h("div", { class: "b2b-checkbox-items" }, h("svg", { class: "b2b-checkbox-icon", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 32 32" }, h("path", { d: "M11.798 25.082c-.341 0-.681-.13-.942-.389l-7.132-7.115a1.334 1.334 0 0 1 1.884-1.888l6.19 6.175L26.391 7.307a1.334 1.334 0 0 1 1.884 1.888L12.74 24.693c-.26.259-.601.389-.942.389z" })), h("input", { class: "b2b-checkbox-input", "aria-labelledby": this.name, type: "checkbox", name: this.name, id: this.name, value: this.value, checked: this.checked, disabled: this.disabled, onFocus: this.onFocus, onBlur: this.onBlur }), h("b2b-input-label", { id: this.name, required: this.required, disabled: this.disabled }, this.label)), (this.hint !== undefined && !this.invalid) ||
71
+ 'b2b-checkbox--disabled': this.disabled || this.groupDisabled,
72
+ 'b2b-checkbox--checked': this.checked,
73
+ 'b2b-checkbox--standalone': this.standalone,
74
+ 'b2b-checkbox--indeterminate': this.indeterminate,
75
+ } }, h("div", { class: "b2b-checkbox-items" }, this.renderIcon(), h("input", { class: "b2b-checkbox__input", "aria-labelledby": this.name, type: "checkbox", name: this.name, id: this.name, value: this.value, checked: this.checked, disabled: this.disabled || this.groupDisabled, onFocus: this.onFocus, onBlur: this.onBlur }), !this.standalone && (h("b2b-input-label", { id: this.name, required: this.required, disabled: this.disabled }, this.label))), (this.hint !== undefined && !this.invalid) ||
57
76
  (this.hint !== undefined && this.disabled) ? (h("span", null, this.hint)) : (''), this.error !== undefined && this.invalid && !this.disabled ? (h("span", null, this.error)) : (''))));
58
77
  }
59
78
  static get is() { return "b2b-checkbox"; }
@@ -78,8 +97,8 @@ export class CheckboxComponent {
78
97
  "resolved": "string",
79
98
  "references": {}
80
99
  },
81
- "required": true,
82
- "optional": false,
100
+ "required": false,
101
+ "optional": true,
83
102
  "docs": {
84
103
  "tags": [],
85
104
  "text": "The checkbox label. This attribute is required."
@@ -141,6 +160,23 @@ export class CheckboxComponent {
141
160
  "reflect": true,
142
161
  "defaultValue": "false"
143
162
  },
163
+ "indeterminate": {
164
+ "type": "boolean",
165
+ "mutable": true,
166
+ "complexType": {
167
+ "original": "boolean",
168
+ "resolved": "boolean",
169
+ "references": {}
170
+ },
171
+ "required": false,
172
+ "optional": false,
173
+ "docs": {
174
+ "tags": [],
175
+ "text": "If used in combination with other checkboxes, this state indicates that some checkboxes are checked, but not all. Per default, it is false."
176
+ },
177
+ "attribute": "indeterminate",
178
+ "reflect": false
179
+ },
144
180
  "error": {
145
181
  "type": "string",
146
182
  "mutable": false,
@@ -226,6 +262,45 @@ export class CheckboxComponent {
226
262
  "attribute": "invalid",
227
263
  "reflect": false,
228
264
  "defaultValue": "false"
265
+ },
266
+ "standalone": {
267
+ "type": "boolean",
268
+ "mutable": false,
269
+ "complexType": {
270
+ "original": "boolean",
271
+ "resolved": "boolean",
272
+ "references": {}
273
+ },
274
+ "required": false,
275
+ "optional": false,
276
+ "docs": {
277
+ "tags": [],
278
+ "text": "If true, renders a standalone inline checkbox with no label and hint/error."
279
+ },
280
+ "attribute": "standalone",
281
+ "reflect": false,
282
+ "defaultValue": "false"
283
+ },
284
+ "groupDisabled": {
285
+ "type": "boolean",
286
+ "mutable": false,
287
+ "complexType": {
288
+ "original": "boolean",
289
+ "resolved": "boolean",
290
+ "references": {}
291
+ },
292
+ "required": false,
293
+ "optional": false,
294
+ "docs": {
295
+ "tags": [{
296
+ "name": "internal",
297
+ "text": "whether the parent checkbox-group is disabled."
298
+ }],
299
+ "text": ""
300
+ },
301
+ "attribute": "group-disabled",
302
+ "reflect": false,
303
+ "defaultValue": "false"
229
304
  }
230
305
  };
231
306
  }
@@ -0,0 +1,45 @@
1
+ import { newSpecPage } from '@stencil/core/testing';
2
+ import { h } from '@stencil/core';
3
+ import { CheckboxComponent } from './checkbox';
4
+ it('should render the checkbox', async () => {
5
+ const page = await newSpecPage({
6
+ components: [CheckboxComponent],
7
+ template: () => h("b2b-checkbox", { label: "test" }),
8
+ });
9
+ expect(page.root).toMatchSnapshot();
10
+ });
11
+ it('should disable the checkbox', async () => {
12
+ const page = await newSpecPage({
13
+ components: [CheckboxComponent],
14
+ template: () => h("b2b-checkbox", { label: "test", disabled: true }),
15
+ });
16
+ expect(page.root).toMatchSnapshot();
17
+ });
18
+ it('should render a hint message if a hint string is specified', async () => {
19
+ const page = await newSpecPage({
20
+ components: [CheckboxComponent],
21
+ template: () => (h("b2b-checkbox", { label: "test", hint: "this is a hint" })),
22
+ });
23
+ expect(page.root).toMatchSnapshot();
24
+ });
25
+ it('should apply an error style if it is marked as invalid.', async () => {
26
+ const page = await newSpecPage({
27
+ components: [CheckboxComponent],
28
+ template: () => (h("b2b-checkbox", { label: "test", error: "this is an error", invalid: true })),
29
+ });
30
+ expect(page.root).toMatchSnapshot();
31
+ });
32
+ it('should render an error message if an error is specified and it is marked as invalid', async () => {
33
+ const page = await newSpecPage({
34
+ components: [CheckboxComponent],
35
+ template: () => (h("b2b-checkbox", { label: "test", error: "this is an error", invalid: true })),
36
+ });
37
+ expect(page.root).toMatchSnapshot();
38
+ });
39
+ it('should render a hint if invalid and disabled are true at the same time', async () => {
40
+ const page = await newSpecPage({
41
+ components: [CheckboxComponent],
42
+ template: () => (h("b2b-checkbox", { label: "test", error: "This is a test error", hint: "this is a test hint", invalid: true, disabled: true })),
43
+ });
44
+ expect(page.root).toMatchSnapshot();
45
+ });
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Mon, 03 Jul 2023 11:38:27 GMT
3
+ * Generated on Tue, 22 Aug 2023 12:55:37 GMT
4
4
  */
5
5
  :root, :host {
6
6
  --b2b-size-200: 5rem; /* 80px */
@@ -122,7 +122,7 @@
122
122
  }
123
123
  /**
124
124
  * Do not edit directly
125
- * Generated on Mon, 03 Jul 2023 11:38:27 GMT
125
+ * Generated on Tue, 22 Aug 2023 12:55:37 GMT
126
126
  */
127
127
  :root [data-theme="dark"] {
128
128
  --b2b-size-200: 5rem; /* 80px */
@@ -219,7 +219,7 @@
219
219
  font-family: var(--b2b-font-family-default);
220
220
  font-size: var(--b2b-size-copy-100);
221
221
  }
222
- .b2b-checkbox-group-options {
222
+ .b2b-checkbox-group__options {
223
223
  display: flex;
224
224
  flex-wrap: wrap;
225
225
  align-items: stretch;
@@ -243,9 +243,9 @@
243
243
  .b2b-checkbox-group--error span {
244
244
  color: var(--b2b-color-error-100);
245
245
  }
246
- .b2b-checkbox-group--vertical .b2b-checkbox-group-options {
246
+ .b2b-checkbox-group--vertical .b2b-checkbox-group__options {
247
247
  flex-direction: column;
248
248
  }
249
- .b2b-checkbox-group--horizontal .b2b-checkbox-group-options {
249
+ .b2b-checkbox-group--horizontal .b2b-checkbox-group__options {
250
250
  flex-direction: row;
251
251
  }
@@ -0,0 +1,78 @@
1
+ import { newE2EPage } from '@stencil/core/testing';
2
+ describe('B2B-Checkbox-Group', () => {
3
+ let page;
4
+ beforeEach(async () => {
5
+ page = await newE2EPage();
6
+ await page.setContent(`
7
+ <b2b-checkbox-group label="test label">
8
+ <b2b-checkbox label="one" value="one" error="test" hint="test"></b2b-checkbox>
9
+ <b2b-checkbox id="disabled-checkbox" label="two" value="two" error="test" hint="test" disabled></b2b-checkbox>
10
+ </b2b-checkbox-group>
11
+ `);
12
+ });
13
+ it('should render the checkbox group component', async () => {
14
+ const element = await page.find('b2b-checkbox-group');
15
+ expect(element).not.toBeNull();
16
+ });
17
+ it('should have all checkboxes unchecked by default and check a checkbox', async () => {
18
+ const element = await page.find('b2b-checkbox >>> .b2b-checkbox');
19
+ await element.click();
20
+ await page.waitForChanges();
21
+ expect(element).toHaveClass('b2b-checkbox--checked');
22
+ });
23
+ it('should receive a custom event', async () => {
24
+ const element = await page.find('b2b-checkbox');
25
+ const b2bChange = await page.spyOnEvent('b2b-change');
26
+ element.triggerEvent('b2b-change', {
27
+ detail: {
28
+ value: '',
29
+ checked: true,
30
+ },
31
+ });
32
+ await page.waitForChanges();
33
+ expect(b2bChange).toHaveReceivedEvent();
34
+ });
35
+ it('should emit a custom event when a checkbox is checked', async () => {
36
+ const element = await page.find('b2b-checkbox >>> .b2b-checkbox');
37
+ const b2bGroupChange = await page.spyOnEvent('b2b-group-change');
38
+ element.click();
39
+ await page.waitForChanges();
40
+ // currently a limitation of Puppeteer - no event details on custom events inside the shadow dom
41
+ expect(b2bGroupChange).toHaveReceivedEvent();
42
+ });
43
+ it('should disable all checkboxes when the property is specified', async () => {
44
+ const parentElement = await page.find('b2b-checkbox-group');
45
+ const element = await page.find('b2b-checkbox >>> .b2b-checkbox');
46
+ expect(element).not.toHaveClass('b2b-checkbox--disabled');
47
+ parentElement.setProperty('disabled', true);
48
+ await page.waitForChanges();
49
+ expect(element).toHaveClass('b2b-checkbox--disabled');
50
+ });
51
+ it('should set all checkboxes to invalid when the property is specified', async () => {
52
+ const parentElement = await page.find('b2b-checkbox-group');
53
+ const element = await page.find('b2b-checkbox >>> .b2b-checkbox');
54
+ expect(element).not.toHaveClass('b2b-checkbox--error');
55
+ parentElement.setProperty('invalid', true);
56
+ await page.waitForChanges();
57
+ expect(element).toHaveClass('b2b-checkbox--error');
58
+ });
59
+ it('should remove all children hint texts when the component is rendered', async () => {
60
+ const element = await page.find('b2b-checkbox');
61
+ const error = element.error;
62
+ const hint = element.hint;
63
+ expect(hint).not.toBeDefined;
64
+ expect(error).not.toBeDefined;
65
+ });
66
+ it('should disable individual elements of the group and keep their state when the group is dis- and enabled', async () => {
67
+ let checkbox = await page.find('#disabled-checkbox');
68
+ expect(await checkbox.getProperty('disabled')).toBe(true);
69
+ let group = await page.find('b2b-checkbox-group');
70
+ await group.setProperty('disabled', true);
71
+ await page.waitForChanges();
72
+ expect(await group.getProperty('disabled')).toBe(true);
73
+ await group.setProperty('disabled', false);
74
+ await page.waitForChanges();
75
+ expect(await group.getProperty('disabled')).toBe(false);
76
+ expect(await checkbox.getProperty('disabled')).toBe(true);
77
+ });
78
+ });
@@ -13,7 +13,7 @@ export class CheckboxGroupComponent {
13
13
  }
14
14
  else {
15
15
  nodes.forEach(node => {
16
- node.disabled = false;
16
+ node.groupDisabled = this.disabled;
17
17
  });
18
18
  }
19
19
  };
@@ -59,15 +59,17 @@ export class CheckboxGroupComponent {
59
59
  }
60
60
  componentDidLoad() {
61
61
  this.toggleAllError();
62
- this.toggleAllDisabled();
63
62
  this.removeChildText();
63
+ if (this.disabled) {
64
+ this.toggleAllDisabled();
65
+ }
64
66
  }
65
67
  render() {
66
68
  return (h(Host, null, h("div", { class: {
67
69
  'b2b-checkbox-group': true,
68
70
  'b2b-checkbox-group--error': this.invalid && !this.disabled,
69
71
  [`b2b-checkbox-group--${this.alignment}`]: true,
70
- } }, this.label && (h("b2b-input-label", { required: this.required }, this.label)), h("fieldset", null, h("div", { class: "b2b-checkbox-group-options" }, h("slot", null))), (this.hint !== undefined && !this.invalid) ||
72
+ } }, this.label && (h("b2b-input-label", { required: this.required }, this.label)), h("fieldset", null, h("div", { class: "b2b-checkbox-group__options" }, h("slot", null))), (this.hint !== undefined && !this.invalid) ||
71
73
  (this.hint !== undefined && this.disabled) ? (h("span", null, this.hint)) : (''), this.error !== undefined && this.invalid && !this.disabled ? (h("span", null, this.error)) : (''))));
72
74
  }
73
75
  static get is() { return "b2b-checkbox-group"; }
@@ -0,0 +1,38 @@
1
+ import { newSpecPage } from '@stencil/core/testing';
2
+ import { h } from '@stencil/core';
3
+ import { CheckboxGroupComponent } from './checkbox-group';
4
+ it('should render the checkbox group and not show a hint or an error unless specified', async () => {
5
+ const page = await newSpecPage({
6
+ components: [CheckboxGroupComponent],
7
+ template: () => h("b2b-checkbox-group", { label: "test" }),
8
+ });
9
+ expect(page.root).toMatchSnapshot();
10
+ });
11
+ it('should render a group hint if a hint string is specified', async () => {
12
+ const page = await newSpecPage({
13
+ components: [CheckboxGroupComponent],
14
+ template: () => (h("b2b-checkbox-group", { label: "test", hint: "this is a test hint" })),
15
+ });
16
+ expect(page.root).toMatchSnapshot();
17
+ });
18
+ it('should not render a group hint if a hint string and an error are specified and the group is set to invalid', async () => {
19
+ const page = await newSpecPage({
20
+ components: [CheckboxGroupComponent],
21
+ template: () => (h("b2b-checkbox-group", { label: "test", hint: "this is a test hint", error: "this is a test error", invalid: true })),
22
+ });
23
+ expect(page.root).toMatchSnapshot();
24
+ });
25
+ it('should render a hint if invalid and disabled are true at the same time', async () => {
26
+ const page = await newSpecPage({
27
+ components: [CheckboxGroupComponent],
28
+ template: () => (h("b2b-checkbox-group", { label: "test", hint: "this is a test hint", error: "this is a test error", invalid: true, disabled: true })),
29
+ });
30
+ expect(page.root).toMatchSnapshot();
31
+ });
32
+ it('should align the checkboxes horizontally if set to horizontal', async () => {
33
+ const page = await newSpecPage({
34
+ components: [CheckboxGroupComponent],
35
+ template: () => (h("b2b-checkbox-group", { label: "test", alignment: "horizontal" })),
36
+ });
37
+ expect(page.root).toMatchSnapshot();
38
+ });
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Mon, 03 Jul 2023 11:38:27 GMT
3
+ * Generated on Tue, 22 Aug 2023 12:55:37 GMT
4
4
  */
5
5
  :root, :host {
6
6
  --b2b-size-200: 5rem; /* 80px */
@@ -122,7 +122,7 @@
122
122
  }
123
123
  /**
124
124
  * Do not edit directly
125
- * Generated on Mon, 03 Jul 2023 11:38:27 GMT
125
+ * Generated on Tue, 22 Aug 2023 12:55:37 GMT
126
126
  */
127
127
  :root [data-theme="dark"] {
128
128
  --b2b-size-200: 5rem; /* 80px */
@@ -222,7 +222,7 @@
222
222
  font-family: var(--b2b-font-family-default);
223
223
  font-size: var(--b2b-size-copy-100);
224
224
  }
225
- :host(.b2b-dropdown) .b2b-dropdown-select {
225
+ :host(.b2b-dropdown) .b2b-dropdown__select {
226
226
  font-family: var(--b2b-font-family-default);
227
227
  font-size: var(--b2b-size-copy-100);
228
228
  appearance: none;
@@ -243,7 +243,7 @@
243
243
  box-sizing: border-box;
244
244
  position: relative;
245
245
  }
246
- :host(.b2b-dropdown) .b2b-dropdown-select:focus-visible {
246
+ :host(.b2b-dropdown) .b2b-dropdown__select:focus-visible {
247
247
  outline: 2px solid Highlight;
248
248
  outline: 2px solid -webkit-focus-ring-color;
249
249
  border-radius: var(--b2b-border-radius);
@@ -261,20 +261,20 @@
261
261
  font-size: var(--b2b-size-copy-50);
262
262
  line-height: var(--b2b-size-copy-line-height-75);
263
263
  }
264
- :host(.b2b-dropdown--error) .b2b-dropdown-select {
264
+ :host(.b2b-dropdown--error) .b2b-dropdown__select {
265
265
  background-color: var(--b2b-color-error-50);
266
266
  border: 1px solid var(--b2b-color-error-100);
267
267
  border-right: var(--b2b-border-right);
268
268
  border-color: var(--b2b-color-error-100);
269
269
  }
270
- :host(.b2b-dropdown--error) .b2b-dropdown-select:focus {
270
+ :host(.b2b-dropdown--error) .b2b-dropdown__select:focus {
271
271
  outline: 2px solid var(--b2b-color-error-100);
272
272
  outline-offset: -1px;
273
273
  }
274
274
  :host(.b2b-dropdown--error) span {
275
275
  color: var(--b2b-color-error-100);
276
276
  }
277
- :host(.b2b-dropdown--disabled) .b2b-dropdown-select {
277
+ :host(.b2b-dropdown--disabled) .b2b-dropdown__select {
278
278
  background-image: url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" fill="grey" viewBox="0 0 32 32"><path d="M27.748 12.017l-11.333 9.01a.666.666 0 0 1-.829 0l-11.333-9a.665.665 0 1 1 .829-1.044l10.919 8.671 10.919-8.68a.663.663 0 0 1 .936.107.667.667 0 0 1-.107.937z"/></svg>');
279
279
  background-color: var(--b2b-color-grey-25);
280
280
  color: var(--b2b-color-grey-250);
@@ -0,0 +1,48 @@
1
+ import { newE2EPage } from '@stencil/core/testing';
2
+ describe('B2B-Dropdown', () => {
3
+ let page;
4
+ beforeEach(async () => {
5
+ page = await newE2EPage();
6
+ await page.setContent(`
7
+ <b2b-dropdown label="Test Dropdown">
8
+ <option value="option-1" selected id="option-1">Option 1</option>
9
+ <option value="option-2" id="option-2">Option 2</option>
10
+ </b2b-dropdown>
11
+ `);
12
+ });
13
+ it('should render the dropdown component', async () => {
14
+ const element = await page.find('b2b-dropdown');
15
+ expect(element).not.toBeNull();
16
+ });
17
+ it('should receive a custom event when an option is selected', async () => {
18
+ const element = await page.find('b2b-dropdown');
19
+ const b2bChange = await page.spyOnEvent('b2b-change');
20
+ element.triggerEvent('b2b-change');
21
+ await page.waitForChanges();
22
+ expect(b2bChange).toHaveReceivedEvent();
23
+ });
24
+ // TODO: reimplement this test with new testing framework
25
+ // it('should emit the selected value when an option is clicked', async () => {
26
+ // const b2bChange = await page.spyOnEvent('b2b-change');
27
+ //
28
+ // page.select('b2b-dropdown', 'option-2');
29
+ //
30
+ // await page.waitForChanges();
31
+ //
32
+ // expect(b2bChange).toHaveReceivedEventDetail('option-2');
33
+ // });
34
+ it('should disable the select when the property is specified', async () => {
35
+ const element = await page.find('b2b-dropdown');
36
+ expect(element).not.toHaveClass('b2b-dropdown--disabled');
37
+ element.setProperty('disabled', true);
38
+ await page.waitForChanges();
39
+ expect(element).toHaveClass('b2b-dropdown--disabled');
40
+ });
41
+ it('should set the select to invalid when the property is specified', async () => {
42
+ const element = await page.find('b2b-dropdown');
43
+ expect(element).not.toHaveClass('b2b-dropdown--error');
44
+ element.setProperty('invalid', true);
45
+ await page.waitForChanges();
46
+ expect(element).toHaveClass('b2b-dropdown--error');
47
+ });
48
+ });
@@ -47,7 +47,7 @@ export class DropdownComponent {
47
47
  'b2b-dropdown': true,
48
48
  'b2b-dropdown--error': this.invalid && !this.disabled,
49
49
  'b2b-dropdown--disabled': this.disabled,
50
- } }, this.label && (h("b2b-input-label", { id: this.name, required: this.required }, this.label)), h("select", { class: "b2b-dropdown-select", "aria-labelledby": this.name, name: this.name, disabled: this.disabled, onChange: this.onSelect, onFocus: this.onFocus, onBlur: this.onBlur }), (this.hint !== undefined && !this.invalid) ||
50
+ } }, this.label && (h("b2b-input-label", { id: this.name, required: this.required }, this.label)), h("select", { class: "b2b-dropdown__select", "aria-labelledby": this.name, name: this.name, disabled: this.disabled, onChange: this.onSelect, onFocus: this.onFocus, onBlur: this.onBlur }), (this.hint !== undefined && !this.invalid) ||
51
51
  (this.hint !== undefined && this.disabled) ? (h("span", null, this.hint)) : (''), this.error !== undefined && this.invalid && !this.disabled ? (h("span", null, this.error)) : ('')));
52
52
  }
53
53
  static get is() { return "b2b-dropdown"; }
@@ -0,0 +1,52 @@
1
+ import { newSpecPage } from '@stencil/core/testing';
2
+ import { h } from '@stencil/core';
3
+ import { DropdownComponent } from './dropdown';
4
+ it('should render the dropdown', async () => {
5
+ const page = await newSpecPage({
6
+ components: [DropdownComponent],
7
+ template: () => h("b2b-dropdown", { label: "test" }),
8
+ });
9
+ expect(page.root).toMatchSnapshot();
10
+ });
11
+ it('should render the dropdown with options', async () => {
12
+ const page = await newSpecPage({
13
+ components: [DropdownComponent],
14
+ template: () => (h("b2b-dropdown", { label: "test" }, h("option", null, "An option"))),
15
+ });
16
+ expect(page.root).toMatchSnapshot();
17
+ });
18
+ it('should render a hint if a hint string is specified', async () => {
19
+ const page = await newSpecPage({
20
+ components: [DropdownComponent],
21
+ template: () => (h("b2b-dropdown", { label: "test", hint: "This is a test hint" })),
22
+ });
23
+ expect(page.root).toMatchSnapshot();
24
+ });
25
+ it('should disable the dropdown', async () => {
26
+ const page = await newSpecPage({
27
+ components: [DropdownComponent],
28
+ template: () => h("b2b-dropdown", { label: "test", disabled: true }),
29
+ });
30
+ expect(page.root).toMatchSnapshot();
31
+ });
32
+ it('should apply an error style to the host element if an error is specified and the select is set to invalid', async () => {
33
+ const page = await newSpecPage({
34
+ components: [DropdownComponent],
35
+ template: () => (h("b2b-dropdown", { label: "test", error: "This is a test error", invalid: true })),
36
+ });
37
+ expect(page.root).toMatchSnapshot();
38
+ });
39
+ it('should render an error message if an error is specified and the select is set to invalid', async () => {
40
+ const page = await newSpecPage({
41
+ components: [DropdownComponent],
42
+ template: () => (h("b2b-dropdown", { label: "test", error: "This is a test error", invalid: true })),
43
+ });
44
+ expect(page.root).toMatchSnapshot();
45
+ });
46
+ it('should render a hint if invalid and disabled are true at the same time', async () => {
47
+ const page = await newSpecPage({
48
+ components: [DropdownComponent],
49
+ template: () => (h("b2b-dropdown", { label: "test", error: "This is a test error", hint: "this is a test hint", invalid: true, disabled: true })),
50
+ });
51
+ expect(page.root).toMatchSnapshot();
52
+ });
@@ -0,0 +1,17 @@
1
+ import { newE2EPage } from '@stencil/core/testing';
2
+ describe('B2B Grid', () => {
3
+ it('should render the grid and children', async () => {
4
+ const page = await newE2EPage();
5
+ await page.setContent(`<b2b-grid>
6
+ <b2b-grid-row>
7
+ <b2b-grid-col></b2b-grid-col>
8
+ </b2b-grid-row>
9
+ </b2b-grid>`);
10
+ const grid = await page.find('b2b-grid');
11
+ expect(grid).not.toBeNull();
12
+ const row = await page.find('b2b-grid-row');
13
+ expect(row).not.toBeNull();
14
+ const col = await page.find('b2b-grid-col');
15
+ expect(col).not.toBeNull();
16
+ });
17
+ });
@@ -15,7 +15,7 @@ export class B2bGridRowComponent {
15
15
  ['display']: 'flex',
16
16
  ['flex-wrap']: 'wrap',
17
17
  ['box-sizing']: 'border-box',
18
- }, class: "b2b-grid--row" }, h("slot", null)));
18
+ } }, h("slot", null)));
19
19
  }
20
20
  static get is() { return "b2b-grid-row"; }
21
21
  static get encapsulation() { return "shadow"; }
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Mon, 03 Jul 2023 11:38:27 GMT
3
+ * Generated on Tue, 22 Aug 2023 12:55:37 GMT
4
4
  */
5
5
  :root, :host {
6
6
  --b2b-size-200: 5rem; /* 80px */
@@ -122,7 +122,7 @@
122
122
  }
123
123
  /**
124
124
  * Do not edit directly
125
- * Generated on Mon, 03 Jul 2023 11:38:27 GMT
125
+ * Generated on Tue, 22 Aug 2023 12:55:37 GMT
126
126
  */
127
127
  :root [data-theme="dark"] {
128
128
  --b2b-size-200: 5rem; /* 80px */
@@ -0,0 +1,13 @@
1
+ import { newE2EPage } from '@stencil/core/testing';
2
+ describe('B2B-Headline', () => {
3
+ let page;
4
+ beforeEach(async () => {
5
+ page = await newE2EPage();
6
+ await page.setContent(`<b2b-headline>Headline</b2b-headline>`);
7
+ });
8
+ it('should render headline component', async () => {
9
+ const element = await page.find('b2b-headline');
10
+ expect(element).not.toBeNull();
11
+ expect(element).toEqualText('Headline');
12
+ });
13
+ });
@@ -0,0 +1,67 @@
1
+ import { newSpecPage } from '@stencil/core/testing';
2
+ import { h } from '@stencil/core';
3
+ import { HeadlineComponent } from './headline';
4
+ it('should use h1 tag with headline 400 size', async () => {
5
+ const page = await newSpecPage({
6
+ components: [HeadlineComponent],
7
+ template: () => (h("b2b-headline", { size: "400" }, "This is a h1 Headline")),
8
+ });
9
+ expect(page.root).toEqualHtml(`
10
+ <b2b-headline>
11
+ <mock:shadow-root>
12
+ <h1 class="b2b-headline--400 b2b-headline--left">
13
+ <slot></slot>
14
+ </h1>
15
+ </mock:shadow-root>
16
+ This is a h1 Headline
17
+ </b2b-headline>
18
+ `);
19
+ });
20
+ it('should use h2 tag with headline 200 size', async () => {
21
+ const page = await newSpecPage({
22
+ components: [HeadlineComponent],
23
+ template: () => (h("b2b-headline", { size: "200" }, "This is a h2 Headline")),
24
+ });
25
+ expect(page.root).toEqualHtml(`
26
+ <b2b-headline>
27
+ <mock:shadow-root>
28
+ <h2 class="b2b-headline--200 b2b-headline--left">
29
+ <slot></slot>
30
+ </h2>
31
+ </mock:shadow-root>
32
+ This is a h2 Headline
33
+ </b2b-headline>
34
+ `);
35
+ });
36
+ it('should use h3 tag with headline 100 size', async () => {
37
+ const page = await newSpecPage({
38
+ components: [HeadlineComponent],
39
+ template: () => (h("b2b-headline", { size: "100" }, "This is a h3 Headline")),
40
+ });
41
+ expect(page.root).toEqualHtml(`
42
+ <b2b-headline>
43
+ <mock:shadow-root>
44
+ <h3 class="b2b-headline--100 b2b-headline--left">
45
+ <slot></slot>
46
+ </h3>
47
+ </mock:shadow-root>
48
+ This is a h3 Headline
49
+ </b2b-headline>
50
+ `);
51
+ });
52
+ it('should use h1 tag as default size', async () => {
53
+ const page = await newSpecPage({
54
+ components: [HeadlineComponent],
55
+ template: () => h("b2b-headline", null, "This is a h3 Headline"),
56
+ });
57
+ expect(page.root).toEqualHtml(`
58
+ <b2b-headline>
59
+ <mock:shadow-root>
60
+ <h1 class="b2b-headline--400 b2b-headline--left">
61
+ <slot></slot>
62
+ </h1>
63
+ </mock:shadow-root>
64
+ This is a h3 Headline
65
+ </b2b-headline>
66
+ `);
67
+ });