@orangesk/orange-design-system 2.0.0-beta.0 → 2.0.0-beta.10

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 (572) hide show
  1. package/build/components/index.css +1 -2
  2. package/build/components/index.css.map +1 -1
  3. package/build/components/index.js +7 -7
  4. package/build/components/index.js.map +1 -1
  5. package/build/components/tsconfig.tsbuildinfo +1 -1
  6. package/build/components/types/index.d.ts +1508 -0
  7. package/build/components/types/src/components/Accordion/Accordion.d.ts +2 -0
  8. package/build/components/types/src/components/Accordion/AccordionHeader.d.ts +2 -1
  9. package/build/components/types/src/components/Accordion/AccordionItem.d.ts +2 -1
  10. package/build/components/types/src/components/AnchorNavigation/AnchorNavigation.d.ts +1 -1
  11. package/build/components/types/src/components/AnchorNavigation/AnchorNavigation.static.d.ts +19 -17
  12. package/build/components/types/src/components/AnchorNavigation/index.d.ts +0 -1
  13. package/build/components/types/src/components/BlockAction/index.d.ts +0 -1
  14. package/build/components/types/src/components/BodyBanner/index.d.ts +0 -1
  15. package/build/components/types/src/components/Button/Button.d.ts +1 -0
  16. package/build/components/types/src/components/Button/index.d.ts +0 -1
  17. package/build/components/types/src/components/Card/Card.d.ts +2 -4
  18. package/build/components/types/src/components/Card/CardSection.d.ts +2 -2
  19. package/build/components/types/src/components/Carousel/Carousel.d.ts +4 -0
  20. package/build/components/types/src/components/Carousel/Carousel.static.d.ts +1 -0
  21. package/build/components/types/src/components/Carousel/constants.d.ts +2 -0
  22. package/build/components/types/src/components/CarouselHero/CarouselHero.d.ts +18 -0
  23. package/build/components/types/src/components/CarouselHero/CarouselHero.static.d.ts +47 -0
  24. package/build/components/types/src/components/CarouselHero/CarouselHeroItem.d.ts +8 -0
  25. package/build/components/types/src/components/CarouselHero/constants.d.ts +33 -0
  26. package/build/components/types/src/components/CarouselHero/index.d.ts +2 -0
  27. package/build/components/types/src/components/Cover/index.d.ts +1 -2
  28. package/build/components/types/src/components/Divider/Divider.d.ts +0 -4
  29. package/build/components/types/src/components/Expander/Expander.d.ts +2 -2
  30. package/build/components/types/src/components/Footer/Footer.d.ts +1 -5
  31. package/build/components/types/src/components/Footer/constants.d.ts +9 -0
  32. package/build/components/types/src/components/Forms/Select/index.d.ts +0 -1
  33. package/build/components/types/src/components/Icon/iconSearchTags.d.ts +253 -251
  34. package/build/components/types/src/components/IconList/index.d.ts +2 -3
  35. package/build/components/types/src/components/List/index.d.ts +2 -3
  36. package/build/components/types/src/components/Megamenu/MegaMenuIcon.d.ts +13 -0
  37. package/build/components/types/src/components/Megamenu/Megamenu.d.ts +1 -9
  38. package/build/components/types/src/components/Megamenu/Megamenu.static.d.ts +47 -0
  39. package/build/components/types/src/components/Megamenu/MegamenuBlog.d.ts +1 -0
  40. package/build/components/types/src/components/Megamenu/constants.d.ts +48 -0
  41. package/build/components/types/src/components/Megamenu/index.d.ts +2 -3
  42. package/build/components/types/src/components/Megamenu/static.d.ts +22 -0
  43. package/build/components/types/src/components/Modal/Modal.d.ts +6 -0
  44. package/build/components/types/src/components/Modal/ModalBody.d.ts +4 -3
  45. package/build/components/types/src/components/Modal/ModalProductBody.d.ts +10 -0
  46. package/build/components/types/src/components/Modal/ModalProductFooter.d.ts +10 -0
  47. package/build/components/types/src/components/Modal/index.d.ts +2 -0
  48. package/build/components/types/src/components/Pagination/Pagination.d.ts +2 -3
  49. package/build/components/types/src/components/Pill/Pill.d.ts +4 -1
  50. package/build/components/types/src/components/Preview/PreviewGenerator.d.ts +1 -1
  51. package/build/components/types/src/components/PromoBanner/PromoBanner.d.ts +9 -5
  52. package/build/components/types/src/components/PromotionCard/PromotionCard.d.ts +2 -2
  53. package/build/components/types/src/components/Section/Section.d.ts +4 -1
  54. package/build/components/types/src/components/Tag/Tag.d.ts +9 -2
  55. package/build/components/types/src/components/index.d.ts +3 -5
  56. package/build/components/types/src/scripts/index.d.ts +10 -0
  57. package/build/lib/after-components.css +1 -1
  58. package/build/lib/after-components.css.map +1 -1
  59. package/build/lib/before-components.css +1 -1
  60. package/build/lib/before-components.css.map +1 -1
  61. package/build/lib/components.css +1 -1
  62. package/build/lib/components.css.map +1 -1
  63. package/build/lib/footer.css +2 -0
  64. package/build/lib/footer.css.map +1 -0
  65. package/build/lib/megamenu.css +2 -0
  66. package/build/lib/megamenu.css.map +1 -0
  67. package/build/lib/megamenu.js +2 -0
  68. package/build/lib/megamenu.js.map +1 -0
  69. package/build/lib/scripts.css +1 -1
  70. package/build/lib/scripts.css.map +1 -1
  71. package/build/lib/scripts.js +5 -5
  72. package/build/lib/scripts.js.map +1 -1
  73. package/build/lib/style.css +1 -1
  74. package/build/lib/style.css.map +1 -1
  75. package/build/lib/tsconfig.tsbuildinfo +1 -1
  76. package/build/logo-line.svg +5 -0
  77. package/build/sprite.svg +1 -1
  78. package/package.json +35 -29
  79. package/src/assets/icons/ai.svg +6 -0
  80. package/src/assets/icons/article.svg +7 -0
  81. package/src/assets/icons/pictogram-activation--dark.svg +10 -11
  82. package/src/assets/icons/pictogram-activation-free--dark.svg +4 -5
  83. package/src/assets/icons/pictogram-activation-free.svg +4 -5
  84. package/src/assets/icons/pictogram-activation.svg +10 -11
  85. package/src/assets/icons/pictogram-archive--dark.svg +3 -4
  86. package/src/assets/icons/pictogram-archive.svg +3 -4
  87. package/src/assets/icons/pictogram-calling-minutes--dark.svg +3 -4
  88. package/src/assets/icons/pictogram-calling-minutes.svg +3 -4
  89. package/src/assets/icons/pictogram-canal-plus--dark.svg +3 -4
  90. package/src/assets/icons/pictogram-canal-plus.svg +3 -4
  91. package/src/assets/icons/pictogram-competition-tickets--dark.svg +11 -12
  92. package/src/assets/icons/pictogram-competition-tickets.svg +11 -12
  93. package/src/assets/icons/pictogram-device-discount--dark.svg +7 -6
  94. package/src/assets/icons/pictogram-device-discount.svg +5 -6
  95. package/src/assets/icons/pictogram-discount-general--dark.svg +5 -6
  96. package/src/assets/icons/pictogram-discount-general.svg +5 -6
  97. package/src/assets/icons/pictogram-discount-price--dark.svg +5 -6
  98. package/src/assets/icons/pictogram-discount-price.svg +5 -6
  99. package/src/assets/icons/pictogram-extra-data--dark.svg +6 -7
  100. package/src/assets/icons/pictogram-extra-data.svg +6 -7
  101. package/src/assets/icons/pictogram-free-payment--dark.svg +5 -6
  102. package/src/assets/icons/pictogram-free-payment.svg +3 -6
  103. package/src/assets/icons/pictogram-gift--dark.svg +12 -13
  104. package/src/assets/icons/pictogram-gift-one-benefit--dark.svg +7 -8
  105. package/src/assets/icons/pictogram-gift-one-benefit.svg +7 -8
  106. package/src/assets/icons/pictogram-gift-two-benefits--dark.svg +8 -9
  107. package/src/assets/icons/pictogram-gift-two-benefits.svg +8 -9
  108. package/src/assets/icons/pictogram-gift.svg +3 -4
  109. package/src/assets/icons/pictogram-hbo-max--dark.svg +5 -6
  110. package/src/assets/icons/pictogram-hbo-max.svg +5 -6
  111. package/src/assets/icons/pictogram-infinite-sms--dark.svg +3 -4
  112. package/src/assets/icons/pictogram-infinite-sms.svg +3 -4
  113. package/src/assets/icons/pictogram-installation--dark.svg +4 -5
  114. package/src/assets/icons/pictogram-installation-free--dark.svg +4 -5
  115. package/src/assets/icons/pictogram-installation-free.svg +4 -5
  116. package/src/assets/icons/pictogram-installation.svg +4 -5
  117. package/src/assets/icons/pictogram-max--dark.svg +3 -4
  118. package/src/assets/icons/pictogram-max-canal-plus--dark.svg +5 -6
  119. package/src/assets/icons/pictogram-max-canal-plus.svg +5 -6
  120. package/src/assets/icons/pictogram-max.svg +3 -4
  121. package/src/assets/icons/pictogram-moj-orange-app--dark.svg +3 -4
  122. package/src/assets/icons/pictogram-moj-orange-app.svg +3 -4
  123. package/src/assets/icons/pictogram-movie-storage--dark.svg +4 -5
  124. package/src/assets/icons/pictogram-movie-storage.svg +4 -5
  125. package/src/assets/icons/pictogram-online-protection--dark.svg +3 -4
  126. package/src/assets/icons/pictogram-online-protection.svg +3 -4
  127. package/src/assets/icons/pictogram-random-damage--dark.svg +4 -8
  128. package/src/assets/icons/pictogram-random-damage.svg +4 -8
  129. package/src/assets/icons/pictogram-recycling--dark.svg +7 -8
  130. package/src/assets/icons/pictogram-recycling.svg +14 -15
  131. package/src/assets/icons/pictogram-repair--dark.svg +12 -13
  132. package/src/assets/icons/pictogram-repair.svg +12 -13
  133. package/src/assets/icons/pictogram-roaming--dark.svg +3 -4
  134. package/src/assets/icons/pictogram-roaming-discount--dark.svg +3 -16
  135. package/src/assets/icons/pictogram-roaming-discount.svg +15 -16
  136. package/src/assets/icons/pictogram-roaming.svg +3 -4
  137. package/src/assets/icons/pictogram-skylink--dark.svg +10 -11
  138. package/src/assets/icons/pictogram-skylink-live-tv--dark.svg +7 -8
  139. package/src/assets/icons/pictogram-skylink-live-tv.svg +7 -8
  140. package/src/assets/icons/pictogram-skylink.svg +10 -11
  141. package/src/assets/icons/pictogram-sms--dark.svg +5 -6
  142. package/src/assets/icons/pictogram-sms.svg +5 -6
  143. package/src/assets/icons/pictogram-theft--dark.svg +3 -7
  144. package/src/assets/icons/pictogram-theft.svg +3 -7
  145. package/src/assets/icons/pictogram-three-devices--dark.svg +4 -8
  146. package/src/assets/icons/pictogram-three-devices.svg +4 -8
  147. package/src/assets/icons/pictogram-trust--dark.svg +3 -4
  148. package/src/assets/icons/pictogram-trust.svg +3 -4
  149. package/src/assets/icons/pictogram-water-damage--dark.svg +5 -6
  150. package/src/assets/icons/pictogram-water-damage.svg +5 -6
  151. package/src/components/Accordion/Accordion.tsx +4 -0
  152. package/src/components/Accordion/AccordionHeader.tsx +9 -2
  153. package/src/components/Accordion/AccordionItem.tsx +5 -2
  154. package/src/components/Accordion/styles/config.scss +4 -4
  155. package/src/components/Accordion/styles/mixins.scss +9 -3
  156. package/src/components/Accordion/styles/style.scss +4 -0
  157. package/src/components/Accordion/tests/Accordion.unit.test.js +11 -0
  158. package/src/components/AnchorNavigation/AnchorNavigation.static.ts +253 -73
  159. package/src/components/AnchorNavigation/AnchorNavigation.tsx +20 -16
  160. package/src/components/AnchorNavigation/index.tsx +0 -2
  161. package/src/components/AnchorNavigation/styles/mixins.scss +14 -27
  162. package/src/components/AnchorNavigation/tests/AnchorNavigation.conformance.test.js +67 -0
  163. package/src/components/AnchorNavigation/tests/AnchorNavigation.unit.test.js +163 -0
  164. package/src/components/Bar/styles/config.scss +4 -5
  165. package/src/components/BlockAction/index.tsx +0 -2
  166. package/src/components/BlockAction/styles/mixins.scss +0 -6
  167. package/src/components/BodyBanner/index.tsx +0 -2
  168. package/src/components/Breadcrumbs/styles/mixins.scss +2 -4
  169. package/src/components/Button/Button.tsx +2 -2
  170. package/src/components/Button/index.tsx +0 -2
  171. package/src/components/Button/styles/config.scss +1 -1
  172. package/src/components/Button/styles/mixins.scss +5 -0
  173. package/src/components/Button/styles/style.scss +4 -0
  174. package/src/components/Card/Card.tsx +20 -8
  175. package/src/components/Card/CardSection.tsx +7 -11
  176. package/src/components/Card/styles/config.scss +1 -1
  177. package/src/components/Card/styles/mixins.scss +8 -6
  178. package/src/components/Card/styles/style.scss +4 -0
  179. package/src/components/Card/tests/Card.unit.test.js +45 -11
  180. package/src/components/Card/tests/CardSection.unit.test.js +36 -3
  181. package/src/components/Carousel/Carousel.static.ts +67 -1
  182. package/src/components/Carousel/Carousel.tsx +41 -19
  183. package/src/components/Carousel/constants.ts +2 -0
  184. package/src/components/Carousel/styles/config.scss +1 -2
  185. package/src/components/Carousel/styles/mixins.scss +35 -2
  186. package/src/components/Carousel/styles/style.scss +8 -0
  187. package/src/components/CarouselHero/CarouselHero.static.ts +528 -0
  188. package/src/components/CarouselHero/CarouselHero.tsx +147 -0
  189. package/src/components/CarouselHero/CarouselHeroItem.tsx +40 -0
  190. package/src/components/CarouselHero/constants.ts +36 -0
  191. package/src/components/CarouselHero/index.ts +2 -0
  192. package/src/components/CarouselHero/styles/config.scss +54 -0
  193. package/src/components/CarouselHero/styles/mixins.scss +278 -0
  194. package/src/components/CarouselHero/styles/style.scss +63 -0
  195. package/src/components/CarouselHero/tests/CarouselHero.conformance.test.js +130 -0
  196. package/src/components/CarouselHero/tests/CarouselHero.unit.test.js +346 -0
  197. package/src/components/CarouselHero/tests/CarouselHeroItem.conformance.test.js +135 -0
  198. package/src/components/CarouselHero/tests/CarouselHeroItem.unit.test.js +143 -0
  199. package/src/components/CarouselPromotions/styles/mixins.scss +10 -3
  200. package/src/components/CartTable/FooterPriceColumn.tsx +5 -3
  201. package/src/components/CartTable/Price.tsx +1 -1
  202. package/src/components/Controls/styles/config.scss +2 -2
  203. package/src/components/Controls/tests/Controls.test.js +0 -9
  204. package/src/components/Cover/index.ts +1 -2
  205. package/src/components/Divider/Divider.tsx +2 -16
  206. package/src/components/Divider/styles/config.scss +0 -17
  207. package/src/components/Divider/styles/mixins.scss +8 -10
  208. package/src/components/Divider/styles/style.scss +2 -16
  209. package/src/components/Divider/tests/Divider.conformance.test.js +1 -1
  210. package/src/components/Divider/tests/Divider.unit.test.js +0 -17
  211. package/src/components/Dropdown/styles/mixins.scss +1 -1
  212. package/src/components/Expander/Expander.tsx +4 -2
  213. package/src/components/Expander/styles/style.scss +7 -0
  214. package/src/components/Footer/Footer.tsx +86 -70
  215. package/src/components/Footer/constants.ts +10 -0
  216. package/src/components/Footer/styles/config.scss +1 -0
  217. package/src/components/Footer/styles/mixins.scss +172 -0
  218. package/src/components/Footer/styles/style.scss +48 -0
  219. package/src/components/Footer/tests/Footer.conformance.test.js +133 -8
  220. package/src/components/Footer/tests/Footer.unit.test.js +71 -6
  221. package/src/components/Forms/DatePicker/styles/style.scss +1 -1
  222. package/src/components/Forms/File/styles/mixins.scss +1 -1
  223. package/src/components/Forms/InputStepper/styles/style.scss +0 -66
  224. package/src/components/Forms/RangeSlider/styles/mixins.scss +1 -1
  225. package/src/components/Forms/Select/index.tsx +0 -2
  226. package/src/components/Forms/TextInput/styles/config.scss +1 -1
  227. package/src/components/Forms/styles/config.scss +3 -3
  228. package/src/components/Icon/iconSearchTags.ts +434 -432
  229. package/src/components/Icon/styles/style.scss +15 -0
  230. package/src/components/Icon/tests/Pictogram.unit.test.js +38 -0
  231. package/src/components/IconList/index.ts +2 -3
  232. package/src/components/Link/styles/style.scss +6 -2
  233. package/src/components/Link/tests/Link.conformance.test.js +5 -20
  234. package/src/components/Link/tests/Link.unit.test.js +1 -10
  235. package/src/components/List/index.ts +2 -3
  236. package/src/components/Loader/Loader.tsx +2 -10
  237. package/src/components/Loader/styles/mixins.scss +1 -1
  238. package/src/components/Loader/styles/style.scss +6 -4
  239. package/src/components/Megamenu/MegaMenuIcon.tsx +48 -0
  240. package/src/components/Megamenu/Megamenu.static.ts +600 -0
  241. package/src/components/Megamenu/Megamenu.tsx +799 -356
  242. package/src/components/Megamenu/MegamenuBlog.tsx +309 -0
  243. package/src/components/Megamenu/constants.ts +56 -0
  244. package/src/components/Megamenu/index.ts +2 -5
  245. package/src/components/Megamenu/static.ts +73 -0
  246. package/src/components/Megamenu/styles/config.scss +2 -13
  247. package/src/components/Megamenu/styles/mixins.scss +647 -208
  248. package/src/components/Megamenu/styles/style.scss +173 -61
  249. package/src/components/Modal/Modal.tsx +17 -2
  250. package/src/components/Modal/ModalBody.tsx +29 -14
  251. package/src/components/Modal/ModalProductBody.tsx +52 -0
  252. package/src/components/Modal/ModalProductFooter.tsx +38 -0
  253. package/src/components/Modal/index.ts +2 -0
  254. package/src/components/Modal/styles/config.scss +7 -0
  255. package/src/components/Modal/styles/mixins.scss +121 -14
  256. package/src/components/Modal/styles/style.scss +28 -0
  257. package/src/components/Modal/tests/Modal.unit.test.js +73 -0
  258. package/src/components/Modal/tests/ModalBody.unit.test.js +28 -12
  259. package/src/components/Pagination/Pagination.tsx +2 -2
  260. package/src/components/Pill/Pill.tsx +8 -3
  261. package/src/components/Pill/styles/config.scss +22 -2
  262. package/src/components/Pill/styles/style.scss +7 -3
  263. package/src/components/Pill/tests/Pill.conformance.test.js +7 -3
  264. package/src/components/Pill/tests/Pill.unit.test.js +45 -7
  265. package/src/components/Preview/PreviewGenerator.tsx +78 -34
  266. package/src/components/PromoBanner/PromoBanner.tsx +52 -34
  267. package/src/components/PromoBanner/styles/mixins.scss +37 -20
  268. package/src/components/PromoBanner/styles/style.scss +5 -11
  269. package/src/components/PromoBanner/tests/PromoBanner.conformance.test.js +781 -0
  270. package/src/components/PromoBanner/tests/PromoBanner.unit.test.js +529 -0
  271. package/src/components/PromotionCard/PromotionCard.tsx +13 -12
  272. package/src/components/PromotionCard/tests/PromotionCard.conformance.test.js +567 -0
  273. package/src/components/PromotionCard/tests/PromotionCard.unit.test.js +500 -0
  274. package/src/components/Section/Section.tsx +20 -4
  275. package/src/components/Section/styles/config.scss +18 -16
  276. package/src/components/Section/styles/mixins.scss +16 -13
  277. package/src/components/Section/styles/style.scss +1 -0
  278. package/src/components/Section/tests/Section.conformance.test.js +27 -10
  279. package/src/components/Section/tests/Section.unit.test.js +73 -25
  280. package/src/components/Tag/Tag.tsx +27 -3
  281. package/src/components/Tag/styles/config.scss +31 -0
  282. package/src/components/Tag/styles/mixins.scss +39 -3
  283. package/src/components/Tag/styles/style.scss +28 -2
  284. package/src/components/Tag/tests/Tag.conformance.test.js +19 -1
  285. package/src/components/Tag/tests/Tag.unit.test.js +93 -0
  286. package/src/components/Tile/styles/style.scss +1 -1
  287. package/src/components/index.ts +5 -6
  288. package/src/styles/base/globals.scss +19 -0
  289. package/src/styles/base/styleguide.scss +17 -17
  290. package/src/styles/export/base.js +2 -2
  291. package/src/styles/export/color.js +2 -2
  292. package/src/styles/shame.scss +2 -1
  293. package/src/styles/tokens/base.scss +1 -1
  294. package/src/styles/tokens/color.scss +12 -8
  295. package/src/styles/typography/mixins.scss +3 -2
  296. package/src/styles/utilities/border.scss +1 -1
  297. package/src/styles/utilities/color.scss +113 -20
  298. package/src/styles/utilities/index.scss +1 -0
  299. package/src/styles/utilities/layout.scss +9 -0
  300. package/src/styles/utilities/ordering.scss +44 -0
  301. package/build/components/Accordion/index.js +0 -16
  302. package/build/components/Accordion/index.js.map +0 -1
  303. package/build/components/Accordion/tsconfig.tsbuildinfo +0 -1
  304. package/build/components/Alert/index.js +0 -16
  305. package/build/components/Alert/index.js.map +0 -1
  306. package/build/components/Alert/tsconfig.tsbuildinfo +0 -1
  307. package/build/components/AnchorNavigation/index.js +0 -16
  308. package/build/components/AnchorNavigation/index.js.map +0 -1
  309. package/build/components/AnchorNavigation/style.css +0 -2
  310. package/build/components/AnchorNavigation/style.css.map +0 -1
  311. package/build/components/AnchorNavigation/tsconfig.tsbuildinfo +0 -1
  312. package/build/components/Bar/index.js +0 -16
  313. package/build/components/Bar/index.js.map +0 -1
  314. package/build/components/Bar/tsconfig.tsbuildinfo +0 -1
  315. package/build/components/BlockAction/index.js +0 -16
  316. package/build/components/BlockAction/index.js.map +0 -1
  317. package/build/components/BlockAction/style.css +0 -2
  318. package/build/components/BlockAction/style.css.map +0 -1
  319. package/build/components/BlockAction/tsconfig.tsbuildinfo +0 -1
  320. package/build/components/BodyBanner/index.js +0 -16
  321. package/build/components/BodyBanner/index.js.map +0 -1
  322. package/build/components/BodyBanner/style.css +0 -2
  323. package/build/components/BodyBanner/style.css.map +0 -1
  324. package/build/components/BodyBanner/tsconfig.tsbuildinfo +0 -1
  325. package/build/components/Breadcrumbs/index.js +0 -16
  326. package/build/components/Breadcrumbs/index.js.map +0 -1
  327. package/build/components/Breadcrumbs/tsconfig.tsbuildinfo +0 -1
  328. package/build/components/Button/index.js +0 -16
  329. package/build/components/Button/index.js.map +0 -1
  330. package/build/components/Button/style.css +0 -2
  331. package/build/components/Button/style.css.map +0 -1
  332. package/build/components/Button/tsconfig.tsbuildinfo +0 -1
  333. package/build/components/Buttons/index.js +0 -16
  334. package/build/components/Buttons/index.js.map +0 -1
  335. package/build/components/Buttons/tsconfig.tsbuildinfo +0 -1
  336. package/build/components/Card/index.js +0 -16
  337. package/build/components/Card/index.js.map +0 -1
  338. package/build/components/Card/tsconfig.tsbuildinfo +0 -1
  339. package/build/components/Carousel/index.js +0 -16
  340. package/build/components/Carousel/index.js.map +0 -1
  341. package/build/components/Carousel/style.css +0 -2
  342. package/build/components/Carousel/style.css.map +0 -1
  343. package/build/components/Carousel/tsconfig.tsbuildinfo +0 -1
  344. package/build/components/CarouselPromotions/index.js +0 -16
  345. package/build/components/CarouselPromotions/index.js.map +0 -1
  346. package/build/components/CarouselPromotions/tsconfig.tsbuildinfo +0 -1
  347. package/build/components/CartTable/index.js +0 -16
  348. package/build/components/CartTable/index.js.map +0 -1
  349. package/build/components/CartTable/style.css +0 -2
  350. package/build/components/CartTable/style.css.map +0 -1
  351. package/build/components/CartTable/tsconfig.tsbuildinfo +0 -1
  352. package/build/components/Code/index.js +0 -11
  353. package/build/components/Code/index.js.map +0 -1
  354. package/build/components/Code/style.css +0 -2
  355. package/build/components/Code/style.css.map +0 -1
  356. package/build/components/Code/tsconfig.tsbuildinfo +0 -1
  357. package/build/components/Container/index.js +0 -16
  358. package/build/components/Container/index.js.map +0 -1
  359. package/build/components/Container/tsconfig.tsbuildinfo +0 -1
  360. package/build/components/Controls/index.js +0 -16
  361. package/build/components/Controls/index.js.map +0 -1
  362. package/build/components/Controls/tsconfig.tsbuildinfo +0 -1
  363. package/build/components/Cover/index.js +0 -16
  364. package/build/components/Cover/index.js.map +0 -1
  365. package/build/components/Cover/style.css +0 -2
  366. package/build/components/Cover/style.css.map +0 -1
  367. package/build/components/Cover/tsconfig.tsbuildinfo +0 -1
  368. package/build/components/Divider/index.js +0 -16
  369. package/build/components/Divider/index.js.map +0 -1
  370. package/build/components/Divider/tsconfig.tsbuildinfo +0 -1
  371. package/build/components/DocumentationSidebar/index.js +0 -16
  372. package/build/components/DocumentationSidebar/index.js.map +0 -1
  373. package/build/components/DocumentationSidebar/style.css +0 -2
  374. package/build/components/DocumentationSidebar/style.css.map +0 -1
  375. package/build/components/DocumentationSidebar/tsconfig.tsbuildinfo +0 -1
  376. package/build/components/Dropdown/index.js +0 -16
  377. package/build/components/Dropdown/index.js.map +0 -1
  378. package/build/components/Dropdown/style.css +0 -2
  379. package/build/components/Dropdown/style.css.map +0 -1
  380. package/build/components/Dropdown/tsconfig.tsbuildinfo +0 -1
  381. package/build/components/Expander/index.js +0 -16
  382. package/build/components/Expander/index.js.map +0 -1
  383. package/build/components/Expander/tsconfig.tsbuildinfo +0 -1
  384. package/build/components/FeatureAccordion/index.js +0 -16
  385. package/build/components/FeatureAccordion/index.js.map +0 -1
  386. package/build/components/FeatureAccordion/style.css +0 -2
  387. package/build/components/FeatureAccordion/style.css.map +0 -1
  388. package/build/components/FeatureAccordion/tsconfig.tsbuildinfo +0 -1
  389. package/build/components/Footer/index.js +0 -16
  390. package/build/components/Footer/index.js.map +0 -1
  391. package/build/components/Footer/style.css +0 -2
  392. package/build/components/Footer/style.css.map +0 -1
  393. package/build/components/Footer/tsconfig.tsbuildinfo +0 -1
  394. package/build/components/Forms/index.js +0 -20
  395. package/build/components/Forms/index.js.map +0 -1
  396. package/build/components/Forms/style.css +0 -2
  397. package/build/components/Forms/style.css.map +0 -1
  398. package/build/components/Forms/tsconfig.tsbuildinfo +0 -1
  399. package/build/components/Gauge/index.js +0 -16
  400. package/build/components/Gauge/index.js.map +0 -1
  401. package/build/components/Gauge/tsconfig.tsbuildinfo +0 -1
  402. package/build/components/Grid/index.js +0 -16
  403. package/build/components/Grid/index.js.map +0 -1
  404. package/build/components/Grid/style.css +0 -2
  405. package/build/components/Grid/style.css.map +0 -1
  406. package/build/components/Grid/tsconfig.tsbuildinfo +0 -1
  407. package/build/components/Hero/index.js +0 -16
  408. package/build/components/Hero/index.js.map +0 -1
  409. package/build/components/Hero/style.css +0 -2
  410. package/build/components/Hero/style.css.map +0 -1
  411. package/build/components/Hero/tsconfig.tsbuildinfo +0 -1
  412. package/build/components/Icon/index.js +0 -11
  413. package/build/components/Icon/index.js.map +0 -1
  414. package/build/components/Icon/tsconfig.tsbuildinfo +0 -1
  415. package/build/components/IconList/index.js +0 -16
  416. package/build/components/IconList/index.js.map +0 -1
  417. package/build/components/IconList/style.css +0 -2
  418. package/build/components/IconList/style.css.map +0 -1
  419. package/build/components/IconList/tsconfig.tsbuildinfo +0 -1
  420. package/build/components/Image/index.js +0 -16
  421. package/build/components/Image/index.js.map +0 -1
  422. package/build/components/Image/tsconfig.tsbuildinfo +0 -1
  423. package/build/components/Link/index.js +0 -7
  424. package/build/components/Link/index.js.map +0 -1
  425. package/build/components/Link/tsconfig.tsbuildinfo +0 -1
  426. package/build/components/List/index.js +0 -16
  427. package/build/components/List/index.js.map +0 -1
  428. package/build/components/List/style.css +0 -2
  429. package/build/components/List/style.css.map +0 -1
  430. package/build/components/List/tsconfig.tsbuildinfo +0 -1
  431. package/build/components/Loader/index.js +0 -16
  432. package/build/components/Loader/index.js.map +0 -1
  433. package/build/components/Loader/tsconfig.tsbuildinfo +0 -1
  434. package/build/components/Megamenu/index.js +0 -20
  435. package/build/components/Megamenu/index.js.map +0 -1
  436. package/build/components/Megamenu/style.css +0 -2
  437. package/build/components/Megamenu/style.css.map +0 -1
  438. package/build/components/Megamenu/tsconfig.tsbuildinfo +0 -1
  439. package/build/components/Modal/index.js +0 -20
  440. package/build/components/Modal/index.js.map +0 -1
  441. package/build/components/Modal/style.css +0 -2
  442. package/build/components/Modal/style.css.map +0 -1
  443. package/build/components/Modal/tsconfig.tsbuildinfo +0 -1
  444. package/build/components/Pagination/index.js +0 -16
  445. package/build/components/Pagination/index.js.map +0 -1
  446. package/build/components/Pagination/tsconfig.tsbuildinfo +0 -1
  447. package/build/components/Pill/index.js +0 -16
  448. package/build/components/Pill/index.js.map +0 -1
  449. package/build/components/Pill/tsconfig.tsbuildinfo +0 -1
  450. package/build/components/Preview/index.js +0 -77
  451. package/build/components/Preview/index.js.map +0 -1
  452. package/build/components/Preview/style.css +0 -2
  453. package/build/components/Preview/style.css.map +0 -1
  454. package/build/components/Preview/tsconfig.tsbuildinfo +0 -1
  455. package/build/components/Progress/index.js +0 -16
  456. package/build/components/Progress/index.js.map +0 -1
  457. package/build/components/Progress/tsconfig.tsbuildinfo +0 -1
  458. package/build/components/PromoBanner/index.js +0 -16
  459. package/build/components/PromoBanner/index.js.map +0 -1
  460. package/build/components/PromoBanner/style.css +0 -2
  461. package/build/components/PromoBanner/style.css.map +0 -1
  462. package/build/components/PromoBanner/tsconfig.tsbuildinfo +0 -1
  463. package/build/components/PromotionCard/index.js +0 -16
  464. package/build/components/PromotionCard/index.js.map +0 -1
  465. package/build/components/PromotionCard/tsconfig.tsbuildinfo +0 -1
  466. package/build/components/Section/index.js +0 -16
  467. package/build/components/Section/index.js.map +0 -1
  468. package/build/components/Section/tsconfig.tsbuildinfo +0 -1
  469. package/build/components/Skeleton/index.js +0 -16
  470. package/build/components/Skeleton/index.js.map +0 -1
  471. package/build/components/Skeleton/tsconfig.tsbuildinfo +0 -1
  472. package/build/components/SkipLink/index.js +0 -16
  473. package/build/components/SkipLink/index.js.map +0 -1
  474. package/build/components/SkipLink/tsconfig.tsbuildinfo +0 -1
  475. package/build/components/Stepbar/index.js +0 -16
  476. package/build/components/Stepbar/index.js.map +0 -1
  477. package/build/components/Stepbar/tsconfig.tsbuildinfo +0 -1
  478. package/build/components/Sticker/index.js +0 -16
  479. package/build/components/Sticker/index.js.map +0 -1
  480. package/build/components/Sticker/tsconfig.tsbuildinfo +0 -1
  481. package/build/components/Table/index.js +0 -16
  482. package/build/components/Table/index.js.map +0 -1
  483. package/build/components/Table/style.css +0 -2
  484. package/build/components/Table/style.css.map +0 -1
  485. package/build/components/Table/tsconfig.tsbuildinfo +0 -1
  486. package/build/components/Tabs/index.js +0 -16
  487. package/build/components/Tabs/index.js.map +0 -1
  488. package/build/components/Tabs/tsconfig.tsbuildinfo +0 -1
  489. package/build/components/Tag/index.js +0 -16
  490. package/build/components/Tag/index.js.map +0 -1
  491. package/build/components/Tag/tsconfig.tsbuildinfo +0 -1
  492. package/build/components/Testimonial/index.js +0 -16
  493. package/build/components/Testimonial/index.js.map +0 -1
  494. package/build/components/Testimonial/tsconfig.tsbuildinfo +0 -1
  495. package/build/components/Tile/index.js +0 -16
  496. package/build/components/Tile/index.js.map +0 -1
  497. package/build/components/Tile/tsconfig.tsbuildinfo +0 -1
  498. package/build/components/Tooltip/index.js +0 -16
  499. package/build/components/Tooltip/index.js.map +0 -1
  500. package/build/components/Tooltip/style.css +0 -2
  501. package/build/components/Tooltip/style.css.map +0 -1
  502. package/build/components/Tooltip/tsconfig.tsbuildinfo +0 -1
  503. package/build/components/static.css +0 -2
  504. package/build/components/static.css.map +0 -1
  505. package/build/components/static.js +0 -10
  506. package/build/components/static.js.map +0 -1
  507. package/build/components/types/src/components/Hero/HeroPlayground.d.ts +0 -2
  508. package/build/components/types/src/components/Megamenu/MegamenuDropdown.d.ts +0 -17
  509. package/src/components/Accordion/Accordion.mdx +0 -222
  510. package/src/components/Alert/Alert.mdx +0 -141
  511. package/src/components/Bar/Bar.mdx +0 -203
  512. package/src/components/BlockAction/BlockAction.mdx +0 -244
  513. package/src/components/BodyBanner/BodyBanner.mdx +0 -268
  514. package/src/components/Breadcrumbs/Breadcrumbs.mdx +0 -84
  515. package/src/components/Button/Button.mdx +0 -273
  516. package/src/components/Buttons/Buttons.mdx +0 -39
  517. package/src/components/Card/Card.mdx +0 -334
  518. package/src/components/Carousel/Carousel.mdx +0 -159
  519. package/src/components/CarouselPromotions/CarouselPromotions.mdx +0 -246
  520. package/src/components/CartTable/CartTable.mdx +0 -129
  521. package/src/components/Container/Container.mdx +0 -73
  522. package/src/components/Controls/Controls.mdx +0 -469
  523. package/src/components/Cover/Cover.mdx +0 -87
  524. package/src/components/Divider/Divider.mdx +0 -65
  525. package/src/components/Dropdown/Dropdown.mdx +0 -260
  526. package/src/components/Expander/Expander.mdx +0 -153
  527. package/src/components/FeatureAccordion/FeatureAccordion.mdx +0 -33
  528. package/src/components/Forms/Autocomplete/Autocomplete.mdx +0 -198
  529. package/src/components/Forms/Checkbox/Checkbox.mdx +0 -139
  530. package/src/components/Forms/DatePicker/DatePicker.mdx +0 -149
  531. package/src/components/Forms/Field/Field.mdx +0 -383
  532. package/src/components/Forms/Fieldset/Fieldset.mdx +0 -178
  533. package/src/components/Forms/File/File.mdx +0 -88
  534. package/src/components/Forms/FormTooltip.mdx +0 -51
  535. package/src/components/Forms/Forms.mdx +0 -48
  536. package/src/components/Forms/Group/Group.mdx +0 -146
  537. package/src/components/Forms/Hint/Hint.mdx +0 -40
  538. package/src/components/Forms/InputStepper/InputStepper.mdx +0 -147
  539. package/src/components/Forms/Label/Label.mdx +0 -95
  540. package/src/components/Forms/Message/Message.mdx +0 -40
  541. package/src/components/Forms/Radio/Radio.mdx +0 -98
  542. package/src/components/Forms/RangeSlider/RangeSlider.mdx +0 -304
  543. package/src/components/Forms/Select/Select.mdx +0 -106
  544. package/src/components/Forms/TextArea/TextArea.mdx +0 -109
  545. package/src/components/Forms/TextInput/TextInput.mdx +0 -153
  546. package/src/components/Gauge/Gauge.mdx +0 -35
  547. package/src/components/Grid/Grid.mdx +0 -320
  548. package/src/components/Hero/Hero.mdx +0 -168
  549. package/src/components/Hero/HeroPlayground.tsx +0 -369
  550. package/src/components/Icon/Icon.mdx +0 -172
  551. package/src/components/IconList/IconList.mdx +0 -53
  552. package/src/components/Image/Image.mdx +0 -175
  553. package/src/components/Link/Link.mdx +0 -224
  554. package/src/components/List/List.mdx +0 -216
  555. package/src/components/Loader/Loader.mdx +0 -148
  556. package/src/components/Megamenu/MegamenuDropdown.tsx +0 -64
  557. package/src/components/Modal/Modal.mdx +0 -565
  558. package/src/components/Pagination/Pagination.mdx +0 -45
  559. package/src/components/Pill/Pill.mdx +0 -41
  560. package/src/components/Progress/Progress.mdx +0 -119
  561. package/src/components/PromotionCard/PromotionCard.mdx +0 -191
  562. package/src/components/Section/Section.mdx +0 -397
  563. package/src/components/Skeleton/Skeleton.mdx +0 -90
  564. package/src/components/SkipLink/SkipLink.mdx +0 -23
  565. package/src/components/Stepbar/Stepbar.mdx +0 -137
  566. package/src/components/Sticker/Sticker.mdx +0 -50
  567. package/src/components/Table/Table.mdx +0 -199
  568. package/src/components/Tabs/Tabs.mdx +0 -373
  569. package/src/components/Tag/Tag.mdx +0 -52
  570. package/src/components/Testimonial/Testimonial.mdx +0 -41
  571. package/src/components/Tile/Tile.mdx +0 -163
  572. package/src/components/Tooltip/Tooltip.mdx +0 -227
@@ -0,0 +1,529 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+
5
+ import React from "react";
6
+ import { render, screen } from "@testing-library/react";
7
+
8
+ import { PromoBanner } from "../";
9
+
10
+ describe("PromoBanner", () => {
11
+ describe("rendering", () => {
12
+ describe("initial state", () => {
13
+ it("renders with default props", () => {
14
+ render(<PromoBanner />);
15
+ const banner = document.querySelector(".promo-banner");
16
+ expect(banner).toBeInTheDocument();
17
+ });
18
+
19
+ it("has default CSS class", () => {
20
+ render(<PromoBanner />);
21
+ const banner = document.querySelector(".promo-banner");
22
+ expect(banner).toHaveClass("promo-banner");
23
+ });
24
+
25
+ it("renders as Grid component", () => {
26
+ const { container } = render(<PromoBanner />);
27
+ const grid = container.querySelector(".grid");
28
+ expect(grid).toBeInTheDocument();
29
+ });
30
+ });
31
+
32
+ describe("content", () => {
33
+ it("renders children content", () => {
34
+ render(
35
+ <PromoBanner>
36
+ <h2>Test Title</h2>
37
+ <p>Test description</p>
38
+ </PromoBanner>,
39
+ );
40
+
41
+ expect(screen.getByRole("heading", { level: 2 })).toHaveTextContent(
42
+ "Test Title",
43
+ );
44
+ expect(screen.getByText("Test description")).toBeInTheDocument();
45
+ });
46
+
47
+ it("renders text children", () => {
48
+ render(<PromoBanner>Simple text content</PromoBanner>);
49
+ expect(screen.getByText("Simple text content")).toBeInTheDocument();
50
+ });
51
+
52
+ it("renders complex JSX children", () => {
53
+ render(
54
+ <PromoBanner>
55
+ <div data-testid="complex-content">
56
+ <h1>Complex Title</h1>
57
+ <p>
58
+ Complex description with <strong>bold text</strong>
59
+ </p>
60
+ <button type="button">Action Button</button>
61
+ </div>
62
+ </PromoBanner>,
63
+ );
64
+
65
+ expect(screen.getByTestId("complex-content")).toBeInTheDocument();
66
+ expect(screen.getByRole("heading", { level: 1 })).toHaveTextContent(
67
+ "Complex Title",
68
+ );
69
+ expect(screen.getByRole("button")).toHaveTextContent("Action Button");
70
+ });
71
+
72
+ it("renders multiple children", () => {
73
+ render(
74
+ <PromoBanner>
75
+ <h2>Title</h2>
76
+ <p>Description</p>
77
+ <button type="button">Button</button>
78
+ </PromoBanner>,
79
+ );
80
+
81
+ expect(screen.getByRole("heading")).toBeInTheDocument();
82
+ expect(screen.getByText("Description")).toBeInTheDocument();
83
+ expect(screen.getByRole("button")).toBeInTheDocument();
84
+ });
85
+ });
86
+
87
+ describe("prop variations", () => {
88
+ describe("className", () => {
89
+ it("applies custom className", () => {
90
+ render(<PromoBanner className="custom-class" />);
91
+ const banner = document.querySelector(".promo-banner");
92
+ expect(banner).toHaveClass("custom-class");
93
+ });
94
+
95
+ it("merges custom className with default", () => {
96
+ render(<PromoBanner className="custom-class" />);
97
+ const banner = document.querySelector(".promo-banner");
98
+ expect(banner).toHaveClass("promo-banner", "custom-class");
99
+ });
100
+ });
101
+
102
+ describe("colorScheme", () => {
103
+ it("applies light color scheme", () => {
104
+ render(<PromoBanner colorScheme="light" />);
105
+ const banner = document.querySelector(".promo-banner");
106
+ expect(banner).toHaveClass("is-light");
107
+ });
108
+
109
+ it("applies dark color scheme", () => {
110
+ render(<PromoBanner colorScheme="dark" />);
111
+ const banner = document.querySelector(".promo-banner");
112
+ expect(banner).toHaveClass("is-dark");
113
+ });
114
+
115
+ it("does not apply color scheme class when not specified", () => {
116
+ render(<PromoBanner />);
117
+ const banner = document.querySelector(".promo-banner");
118
+ expect(banner).not.toHaveClass("is-light");
119
+ expect(banner).not.toHaveClass("is-dark");
120
+ });
121
+ });
122
+
123
+ describe("itemClassName", () => {
124
+ it("applies custom itemClassName to content column", () => {
125
+ render(
126
+ <PromoBanner itemClassName="custom-item-class">
127
+ Content
128
+ </PromoBanner>,
129
+ );
130
+ const item = document.querySelector(".promo-banner__item");
131
+ expect(item).toHaveClass("custom-item-class");
132
+ });
133
+
134
+ it("merges itemClassName with default item classes", () => {
135
+ render(
136
+ <PromoBanner itemClassName="custom-item-class">
137
+ Content
138
+ </PromoBanner>,
139
+ );
140
+ const item = document.querySelector(".promo-banner__item");
141
+ expect(item).toHaveClass("promo-banner__item", "custom-item-class");
142
+ });
143
+ });
144
+ });
145
+
146
+ describe("variant", () => {
147
+ describe("default (horizontal) variant", () => {
148
+ it("uses correct column sizes without image", () => {
149
+ render(<PromoBanner>Content</PromoBanner>);
150
+ const contentCol = document
151
+ .querySelector(".promo-banner__item")
152
+ .closest(".grid__col");
153
+ expect(contentCol).toHaveClass("grid__col");
154
+ });
155
+
156
+ it("uses correct column sizes with image", () => {
157
+ render(<PromoBanner image="test.jpg">Content</PromoBanner>);
158
+ const contentCol = document
159
+ .querySelector(".promo-banner__item")
160
+ .closest(".grid__col");
161
+ const imageCol = document
162
+ .querySelector(".promo-banner__image")
163
+ .closest(".grid__col");
164
+ expect(contentCol).toHaveClass("grid__col");
165
+ expect(imageCol).toHaveClass("grid__col");
166
+ });
167
+
168
+ it("does not apply vertical-specific classes", () => {
169
+ render(<PromoBanner>Content</PromoBanner>);
170
+ const item = document.querySelector(".promo-banner__item");
171
+ expect(item).not.toHaveClass(
172
+ "align-items-center",
173
+ "align-center",
174
+ "align-self-center",
175
+ );
176
+ });
177
+ });
178
+
179
+ describe("vertical variant", () => {
180
+ it("applies vertical variant column layout", () => {
181
+ render(<PromoBanner variant="vertical">Content</PromoBanner>);
182
+ const contentCol = document
183
+ .querySelector(".promo-banner__item")
184
+ .closest(".grid__col");
185
+ expect(contentCol).toHaveClass("grid__col");
186
+ });
187
+
188
+ it("applies vertical alignment classes", () => {
189
+ render(<PromoBanner variant="vertical">Content</PromoBanner>);
190
+ const item = document.querySelector(".promo-banner__item");
191
+ expect(item).toHaveClass(
192
+ "align-items-center",
193
+ "align-center",
194
+ "align-self-center",
195
+ );
196
+ });
197
+
198
+ it("applies vertical image column layout", () => {
199
+ render(
200
+ <PromoBanner variant="vertical" image="test.jpg">
201
+ Content
202
+ </PromoBanner>,
203
+ );
204
+ const imageCol = document
205
+ .querySelector(".promo-banner__image")
206
+ .closest(".grid__col");
207
+ expect(imageCol).toHaveClass("grid__col");
208
+ });
209
+
210
+ it("applies center alignment to image in vertical variant", () => {
211
+ render(
212
+ <PromoBanner variant="vertical" image="test.jpg">
213
+ Content
214
+ </PromoBanner>,
215
+ );
216
+ const imageElement = document.querySelector(".promo-banner__image");
217
+ expect(imageElement).toHaveClass("align-center");
218
+ });
219
+ });
220
+ });
221
+
222
+ describe("image", () => {
223
+ it("does not render image when not provided", () => {
224
+ render(<PromoBanner>Content only</PromoBanner>);
225
+ const image = document.querySelector(".promo-banner__image");
226
+ expect(image).not.toBeInTheDocument();
227
+ });
228
+
229
+ it("renders image when provided", () => {
230
+ render(
231
+ <PromoBanner image="https://example.com/test.jpg">
232
+ Content
233
+ </PromoBanner>,
234
+ );
235
+ const image = screen.getByRole("img");
236
+ expect(image).toBeInTheDocument();
237
+ expect(image).toHaveAttribute("src", "https://example.com/test.jpg");
238
+ });
239
+
240
+ it("applies default alt text", () => {
241
+ render(<PromoBanner image="test.jpg">Content</PromoBanner>);
242
+ const image = screen.getByRole("img");
243
+ expect(image).toHaveAttribute("alt", "Obrázok");
244
+ });
245
+
246
+ it("has default image classes", () => {
247
+ render(<PromoBanner image="test.jpg">Content</PromoBanner>);
248
+ const image = screen.getByRole("img");
249
+ expect(image).toHaveClass("mb-none");
250
+ });
251
+
252
+ describe("imageClassName", () => {
253
+ it("applies custom imageClassName", () => {
254
+ render(
255
+ <PromoBanner image="test.jpg" imageClassName="custom-image-class">
256
+ Content
257
+ </PromoBanner>,
258
+ );
259
+ const imageContainer = document.querySelector(".promo-banner__image");
260
+ expect(imageContainer).toHaveClass("custom-image-class");
261
+ });
262
+
263
+ it("merges imageClassName with default image classes", () => {
264
+ render(
265
+ <PromoBanner image="test.jpg" imageClassName="custom-image-class">
266
+ Content
267
+ </PromoBanner>,
268
+ );
269
+ const imageContainer = document.querySelector(".promo-banner__image");
270
+ expect(imageContainer).toHaveClass(
271
+ "promo-banner__image",
272
+ "custom-image-class",
273
+ );
274
+ });
275
+ });
276
+
277
+ describe("alignImage", () => {
278
+ it("applies bottom alignment", () => {
279
+ render(
280
+ <PromoBanner image="test.jpg" alignImage="bottom">
281
+ Content
282
+ </PromoBanner>,
283
+ );
284
+ const imageContainer = document.querySelector(".promo-banner__image");
285
+ expect(imageContainer).toHaveClass("align-self-bottom");
286
+ });
287
+
288
+ it("applies top alignment", () => {
289
+ render(
290
+ <PromoBanner image="test.jpg" alignImage="top">
291
+ Content
292
+ </PromoBanner>,
293
+ );
294
+ const imageContainer = document.querySelector(".promo-banner__image");
295
+ expect(imageContainer).toHaveClass("align-self-top");
296
+ });
297
+
298
+ it("does not apply alignment class when not specified", () => {
299
+ render(<PromoBanner image="test.jpg">Content</PromoBanner>);
300
+ const imageContainer = document.querySelector(".promo-banner__image");
301
+ expect(imageContainer).not.toHaveClass("align-self-bottom");
302
+ expect(imageContainer).not.toHaveClass("align-self-top");
303
+ });
304
+ });
305
+
306
+ describe("bleedImage", () => {
307
+ it("applies bleed class when bleedImage is true", () => {
308
+ render(
309
+ <PromoBanner image="test.jpg" bleedImage>
310
+ Content
311
+ </PromoBanner>,
312
+ );
313
+ const imageContainer = document.querySelector(".promo-banner__image");
314
+ expect(imageContainer).toHaveClass(
315
+ "promo-banner__image--bleed-right",
316
+ );
317
+ });
318
+
319
+ it("does not apply bleed class when bleedImage is false", () => {
320
+ render(
321
+ <PromoBanner image="test.jpg" bleedImage={false}>
322
+ Content
323
+ </PromoBanner>,
324
+ );
325
+ const imageContainer = document.querySelector(".promo-banner__image");
326
+ expect(imageContainer).not.toHaveClass(
327
+ "promo-banner__image--bleed-right",
328
+ );
329
+ });
330
+
331
+ it("does not apply bleed class when bleedImage is not specified", () => {
332
+ render(<PromoBanner image="test.jpg">Content</PromoBanner>);
333
+ const imageContainer = document.querySelector(".promo-banner__image");
334
+ expect(imageContainer).not.toHaveClass(
335
+ "promo-banner__image--bleed-right",
336
+ );
337
+ });
338
+ });
339
+
340
+ describe("imageFullWidth", () => {
341
+ it("applies fullwidth class when imageFullWidth is true", () => {
342
+ render(
343
+ <PromoBanner image="test.jpg" imageFullWidth>
344
+ Content
345
+ </PromoBanner>,
346
+ );
347
+ const image = screen.getByRole("img");
348
+ expect(image).toHaveClass("fullwidth");
349
+ });
350
+
351
+ it("does not apply fullwidth class when imageFullWidth is false", () => {
352
+ render(
353
+ <PromoBanner image="test.jpg" imageFullWidth={false}>
354
+ Content
355
+ </PromoBanner>,
356
+ );
357
+ const image = screen.getByRole("img");
358
+ expect(image).not.toHaveClass("fullwidth");
359
+ });
360
+
361
+ it("does not apply fullwidth class when imageFullWidth is not specified", () => {
362
+ render(<PromoBanner image="test.jpg">Content</PromoBanner>);
363
+ const image = screen.getByRole("img");
364
+ expect(image).not.toHaveClass("fullwidth");
365
+ });
366
+ });
367
+ });
368
+
369
+ describe("combined props", () => {
370
+ it("handles all image-related props together", () => {
371
+ render(
372
+ <PromoBanner
373
+ image="test.jpg"
374
+ alignImage="top"
375
+ bleedImage
376
+ imageFullWidth
377
+ imageClassName="custom-image"
378
+ >
379
+ Content
380
+ </PromoBanner>,
381
+ );
382
+
383
+ const imageContainer = document.querySelector(".promo-banner__image");
384
+ const image = screen.getByRole("img");
385
+
386
+ expect(imageContainer).toHaveClass(
387
+ "promo-banner__image",
388
+ "promo-banner__image--bleed-right",
389
+ "align-self-top",
390
+ "custom-image",
391
+ );
392
+ expect(image).toHaveClass("mb-none", "fullwidth");
393
+ });
394
+
395
+ it("handles all variant and styling props together", () => {
396
+ render(
397
+ <PromoBanner
398
+ variant="vertical"
399
+ colorScheme="dark"
400
+ className="custom-banner"
401
+ itemClassName="custom-item"
402
+ image="test.jpg"
403
+ imageClassName="custom-image"
404
+ >
405
+ Content
406
+ </PromoBanner>,
407
+ );
408
+
409
+ const banner = document.querySelector(".promo-banner");
410
+ const item = document.querySelector(".promo-banner__item");
411
+ const imageContainer = document.querySelector(".promo-banner__image");
412
+
413
+ expect(banner).toHaveClass("promo-banner", "is-dark", "custom-banner");
414
+ expect(item).toHaveClass(
415
+ "promo-banner__item",
416
+ "align-items-center",
417
+ "align-center",
418
+ "align-self-center",
419
+ "custom-item",
420
+ );
421
+ expect(imageContainer).toHaveClass(
422
+ "promo-banner__image",
423
+ "align-center",
424
+ "custom-image",
425
+ );
426
+ });
427
+ });
428
+
429
+ describe("edge cases", () => {
430
+ it("handles empty children", () => {
431
+ render(<PromoBanner>{""}</PromoBanner>);
432
+ const banner = document.querySelector(".promo-banner");
433
+ expect(banner).toBeInTheDocument();
434
+ });
435
+
436
+ it("handles null children", () => {
437
+ render(<PromoBanner>{null}</PromoBanner>);
438
+ const banner = document.querySelector(".promo-banner");
439
+ expect(banner).toBeInTheDocument();
440
+ });
441
+
442
+ it("handles undefined children", () => {
443
+ render(<PromoBanner>{undefined}</PromoBanner>);
444
+ const banner = document.querySelector(".promo-banner");
445
+ expect(banner).toBeInTheDocument();
446
+ });
447
+
448
+ it("handles number children", () => {
449
+ render(<PromoBanner>{42}</PromoBanner>);
450
+ expect(screen.getByText("42")).toBeInTheDocument();
451
+ });
452
+
453
+ it("handles boolean children", () => {
454
+ render(<PromoBanner>{true}</PromoBanner>);
455
+ const banner = document.querySelector(".promo-banner");
456
+ expect(banner).toBeInTheDocument();
457
+ });
458
+
459
+ it("handles array children", () => {
460
+ render(<PromoBanner>{["Item 1", "Item 2", "Item 3"]}</PromoBanner>);
461
+ expect(screen.getByText(/Item 1/)).toBeInTheDocument();
462
+ expect(screen.getByText(/Item 2/)).toBeInTheDocument();
463
+ expect(screen.getByText(/Item 3/)).toBeInTheDocument();
464
+ });
465
+
466
+ it("handles empty image URL", () => {
467
+ render(<PromoBanner image="">Content</PromoBanner>);
468
+ // Empty image URL should not render an image element
469
+ expect(screen.queryByRole("img")).not.toBeInTheDocument();
470
+ });
471
+
472
+ it("handles invalid colorScheme gracefully", () => {
473
+ const { container } = render(
474
+ <PromoBanner colorScheme="invalid">Content</PromoBanner>,
475
+ );
476
+ const banner = container.querySelector(".promo-banner");
477
+ expect(banner).toHaveClass("promo-banner");
478
+ expect(banner).not.toHaveClass("is-light");
479
+ expect(banner).not.toHaveClass("is-dark");
480
+ });
481
+
482
+ it("handles invalid alignImage gracefully", () => {
483
+ render(
484
+ <PromoBanner image="test.jpg" alignImage="invalid">
485
+ Content
486
+ </PromoBanner>,
487
+ );
488
+ const imageContainer = document.querySelector(".promo-banner__image");
489
+ expect(imageContainer).toHaveClass("promo-banner__image");
490
+ // Invalid align values are passed through but shouldn't break the component
491
+ expect(imageContainer).toHaveClass("align-self-invalid");
492
+ });
493
+
494
+ it("handles invalid variant gracefully", () => {
495
+ render(<PromoBanner variant="invalid">Content</PromoBanner>);
496
+ const contentCol = document
497
+ .querySelector(".promo-banner__item")
498
+ .closest(".grid__col");
499
+ // Should use default horizontal behavior
500
+ expect(contentCol).toHaveClass("grid__col");
501
+ const item = document.querySelector(".promo-banner__item");
502
+ expect(item).not.toHaveClass(
503
+ "align-items-center",
504
+ "align-center",
505
+ "align-self-center",
506
+ );
507
+ });
508
+ });
509
+
510
+ describe("additional props", () => {
511
+ it("applies custom className to banner", () => {
512
+ render(<PromoBanner className="test-banner">Content</PromoBanner>);
513
+ const banner = document.querySelector(".promo-banner");
514
+ expect(banner).toHaveClass("promo-banner", "test-banner");
515
+ });
516
+
517
+ it("component structure is stable", () => {
518
+ const { container } = render(<PromoBanner>Content</PromoBanner>);
519
+ const banner = container.querySelector(".promo-banner");
520
+ const item = container.querySelector(".promo-banner__item");
521
+
522
+ expect(banner).toBeInTheDocument();
523
+ expect(item).toBeInTheDocument();
524
+ expect(banner).toHaveClass("promo-banner");
525
+ expect(item).toHaveClass("promo-banner__item");
526
+ });
527
+ });
528
+ });
529
+ });
@@ -1,26 +1,27 @@
1
- import React from 'react';
2
- import cx from 'classnames';
1
+ import React from "react";
2
+ import cx from "classnames";
3
3
 
4
- import { Card } from '../Card';
4
+ import { Card } from "../Card";
5
5
 
6
- import { CLASS_ROOT } from './constants';
6
+ import { CLASS_ROOT } from "./constants";
7
7
 
8
8
  export interface PromotionCardProps {
9
9
  /** Inverse colors */
10
- colorScheme?: 'light' | 'dark';
10
+ colorScheme?: "light" | "dark";
11
11
  className?: string;
12
12
  children?: React.ReactNode;
13
13
  [key: string]: any;
14
14
  }
15
15
 
16
- export const PromotionCard: React.FC<PromotionCardProps> = ({
17
- colorScheme = 'light',
18
- className,
19
- children,
20
- ...other
16
+ export const PromotionCard: React.FC<PromotionCardProps> = ({
17
+ colorScheme = "light",
18
+ className,
19
+ children,
20
+ ...other
21
21
  }) => {
22
22
  const classes = cx(CLASS_ROOT, className);
23
- const color = colorScheme === 'dark' ? 'black' : 'white';
23
+ const color =
24
+ colorScheme === "dark" ? "background-contrast" : "background-primary";
24
25
  return (
25
26
  <Card className={classes} color={color} {...other}>
26
27
  {children}
@@ -28,4 +29,4 @@ export const PromotionCard: React.FC<PromotionCardProps> = ({
28
29
  );
29
30
  };
30
31
 
31
- PromotionCard.displayName = 'PromotionCard';
32
+ PromotionCard.displayName = "PromotionCard";