@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,346 @@
1
+ import { render } from "@testing-library/react";
2
+
3
+ import { CarouselHero } from "../CarouselHero";
4
+ import { CarouselHeroItem } from "../CarouselHeroItem";
5
+
6
+ describe("rendering CarouselHero", () => {
7
+ describe("initial state", () => {
8
+ it("has default class carousel-hero", () => {
9
+ const { getByTestId } = render(<CarouselHero data-testid="test-id" />);
10
+ expect(getByTestId("test-id")).toHaveClass("carousel-hero");
11
+ });
12
+
13
+ it("has data-carousel-hero attribute", () => {
14
+ const { container } = render(<CarouselHero />);
15
+ expect(container.querySelector(".carousel-hero")).toHaveAttribute(
16
+ "data-carousel-hero",
17
+ );
18
+ });
19
+
20
+ it("has default class carousel-hero__viewport-wrapper", () => {
21
+ const { container } = render(<CarouselHero />);
22
+ expect(
23
+ container.getElementsByClassName("carousel-hero__viewport-wrapper")
24
+ .length,
25
+ ).toBe(1);
26
+ });
27
+
28
+ it("has default class carousel-hero__viewport", () => {
29
+ const { container } = render(<CarouselHero />);
30
+ expect(
31
+ container.getElementsByClassName("carousel-hero__viewport").length,
32
+ ).toBe(1);
33
+ });
34
+
35
+ it("has default class carousel-hero__track", () => {
36
+ const { container } = render(<CarouselHero />);
37
+ expect(
38
+ container.getElementsByClassName("carousel-hero__track").length,
39
+ ).toBe(1);
40
+ });
41
+
42
+ it("has container with d-flex class for controls", () => {
43
+ const { container } = render(<CarouselHero />);
44
+ expect(container.querySelector(".container.d-flex")).toBeInTheDocument();
45
+ });
46
+
47
+ it("has default class carousel-hero__navigation", () => {
48
+ const { container } = render(<CarouselHero />);
49
+ expect(
50
+ container.getElementsByClassName("carousel-hero__navigation").length,
51
+ ).toBe(1);
52
+ });
53
+
54
+ it("has default class carousel-hero__pagination", () => {
55
+ const { container } = render(<CarouselHero />);
56
+ expect(
57
+ container.getElementsByClassName("carousel-hero__pagination").length,
58
+ ).toBe(1);
59
+ });
60
+
61
+ it("renders navigation controls (prev/next)", () => {
62
+ const { container } = render(<CarouselHero />);
63
+ expect(
64
+ container.getElementsByClassName("carousel-hero__prev").length,
65
+ ).toBe(1);
66
+ expect(
67
+ container.getElementsByClassName("carousel-hero__next").length,
68
+ ).toBe(1);
69
+ });
70
+
71
+ it("navigation controls have proper ARIA labels", () => {
72
+ const { container } = render(<CarouselHero />);
73
+
74
+ const prevButton = container.querySelector(".carousel-hero__prev");
75
+ const nextButton = container.querySelector(".carousel-hero__next");
76
+
77
+ expect(prevButton).toHaveAttribute("aria-label", "Predchádzajúci snímok");
78
+ expect(nextButton).toHaveAttribute("aria-label", "Nasledujúci snímok");
79
+ });
80
+
81
+ it("play/pause button has proper ARIA label when displayed", () => {
82
+ const { container } = render(<CarouselHero interval={3000} />);
83
+
84
+ const playPauseButton = container.querySelector(
85
+ ".carousel-hero__play-pause",
86
+ );
87
+ expect(playPauseButton).toHaveAttribute(
88
+ "aria-label",
89
+ "Pozastaviť/Spustiť automatické prehrávanie",
90
+ );
91
+ });
92
+ });
93
+
94
+ describe("passed props", () => {
95
+ const tabs = [{ label: "Tab 1" }, { label: "Tab 2" }, { label: "Tab 3" }];
96
+
97
+ const children = (
98
+ <>
99
+ <CarouselHeroItem key="slide-1" image="https://placehold.co/720x560">
100
+ <h2>Test Title 1</h2>
101
+ <p>Test content 1</p>
102
+ </CarouselHeroItem>
103
+ <CarouselHeroItem key="slide-2" image="https://placehold.co/720x560">
104
+ <h2>Test Title 2</h2>
105
+ <p>Test content 2</p>
106
+ </CarouselHeroItem>
107
+ </>
108
+ );
109
+
110
+ it("renders children slides", () => {
111
+ const { container } = render(<CarouselHero>{children}</CarouselHero>);
112
+ const slides = container.getElementsByClassName("carousel-hero__slide");
113
+ expect(slides.length).toBe(2);
114
+ expect(slides[0]).toHaveTextContent("Test Title 1");
115
+ expect(slides[1]).toHaveTextContent("Test Title 2");
116
+ });
117
+
118
+ it("has additional class when className is set", () => {
119
+ const { getByTestId } = render(
120
+ <CarouselHero data-testid="test-id" className="test-class" />,
121
+ );
122
+ expect(getByTestId("test-id")).toHaveClass("carousel-hero");
123
+ expect(getByTestId("test-id")).toHaveClass("test-class");
124
+ });
125
+
126
+ it("has is-light class when colorScheme is light", () => {
127
+ const { getByTestId } = render(
128
+ <CarouselHero data-testid="test-id" colorScheme="light" />,
129
+ );
130
+ expect(getByTestId("test-id")).toHaveClass("is-light");
131
+ });
132
+
133
+ it("has is-dark class when colorScheme is dark", () => {
134
+ const { getByTestId } = render(
135
+ <CarouselHero data-testid="test-id" colorScheme="dark" />,
136
+ );
137
+ expect(getByTestId("test-id")).toHaveClass("is-dark");
138
+ });
139
+
140
+ it("does not have is-light or is-dark class by default", () => {
141
+ const { getByTestId } = render(<CarouselHero data-testid="test-id" />);
142
+ expect(getByTestId("test-id")).not.toHaveClass("is-light");
143
+ expect(getByTestId("test-id")).not.toHaveClass("is-dark");
144
+ });
145
+
146
+ it("renders tabs when tabs prop is provided", () => {
147
+ const { container } = render(
148
+ <CarouselHero tabs={tabs}>{children}</CarouselHero>,
149
+ );
150
+
151
+ const tabsContainer = container.querySelector(".carousel-hero__tabs");
152
+ expect(tabsContainer).toBeInTheDocument();
153
+ expect(tabsContainer).toHaveAttribute("role", "tablist");
154
+
155
+ const tabButtons = container.querySelectorAll(".carousel-hero__tab");
156
+ expect(tabButtons.length).toBe(3);
157
+ expect(tabButtons[0]).toHaveTextContent("Tab 1");
158
+ expect(tabButtons[1]).toHaveTextContent("Tab 2");
159
+ expect(tabButtons[2]).toHaveTextContent("Tab 3");
160
+ });
161
+
162
+ it("does not render tabs when tabs prop is empty", () => {
163
+ const { container } = render(<CarouselHero>{children}</CarouselHero>);
164
+
165
+ const tabsContainer = container.querySelector(".carousel-hero__tabs");
166
+ expect(tabsContainer).not.toBeInTheDocument();
167
+ });
168
+
169
+ it("sets proper ARIA attributes on tabs", () => {
170
+ const { container } = render(
171
+ <CarouselHero tabs={tabs}>{children}</CarouselHero>,
172
+ );
173
+
174
+ const tabButtons = container.querySelectorAll(".carousel-hero__tab");
175
+
176
+ // First tab should be active
177
+ expect(tabButtons[0]).toHaveAttribute("role", "tab");
178
+ expect(tabButtons[0]).toHaveAttribute("aria-selected", "true");
179
+ expect(tabButtons[0]).toHaveAttribute("tabIndex", "0");
180
+
181
+ // Other tabs should not be active
182
+ expect(tabButtons[1]).toHaveAttribute("aria-selected", "false");
183
+ expect(tabButtons[1]).toHaveAttribute("tabIndex", "-1");
184
+ expect(tabButtons[2]).toHaveAttribute("aria-selected", "false");
185
+ expect(tabButtons[2]).toHaveAttribute("tabIndex", "-1");
186
+ });
187
+
188
+ it("shows play/pause button when interval is provided", () => {
189
+ const { container } = render(
190
+ <CarouselHero interval={3000}>{children}</CarouselHero>,
191
+ );
192
+
193
+ expect(
194
+ container.getElementsByClassName("carousel-hero__play-pause").length,
195
+ ).toBe(1);
196
+ });
197
+
198
+ it("does not show play/pause button when interval is not provided", () => {
199
+ const { container } = render(<CarouselHero>{children}</CarouselHero>);
200
+
201
+ expect(
202
+ container.getElementsByClassName("carousel-hero__play-pause").length,
203
+ ).toBe(0);
204
+ });
205
+
206
+ it("does not show play/pause button when interval is 0", () => {
207
+ const { container } = render(
208
+ <CarouselHero interval={0}>{children}</CarouselHero>,
209
+ );
210
+
211
+ expect(
212
+ container.getElementsByClassName("carousel-hero__play-pause").length,
213
+ ).toBe(0);
214
+ });
215
+
216
+ it("sets data-interval attribute when interval is provided", () => {
217
+ const { container } = render(
218
+ <CarouselHero interval={5000}>{children}</CarouselHero>,
219
+ );
220
+
221
+ const carousel = container.querySelector(".carousel-hero");
222
+ expect(carousel).toHaveAttribute("data-interval", "5000");
223
+ });
224
+
225
+ it("does not set data-interval attribute when interval is not provided", () => {
226
+ const { container } = render(<CarouselHero>{children}</CarouselHero>);
227
+
228
+ const carousel = container.querySelector(".carousel-hero");
229
+ expect(carousel).not.toHaveAttribute("data-interval");
230
+ });
231
+ });
232
+
233
+ describe("swiperOptions prop", () => {
234
+ const children = (
235
+ <CarouselHeroItem key="slide-1" image="https://placehold.co/720x560">
236
+ <h2>Test Title</h2>
237
+ <p>Test content</p>
238
+ </CarouselHeroItem>
239
+ );
240
+
241
+ it("sets data-swiper-options attribute when swiperOptions prop is provided", () => {
242
+ const swiperOptions = { speed: 500, loop: true };
243
+ const { container } = render(
244
+ <CarouselHero swiperOptions={swiperOptions}>{children}</CarouselHero>,
245
+ );
246
+
247
+ const carousel = container.querySelector(".carousel-hero");
248
+ expect(carousel.getAttribute("data-swiper-options")).toBe(
249
+ JSON.stringify(swiperOptions),
250
+ );
251
+ });
252
+
253
+ it("does not set data-swiper-options attribute when swiperOptions prop is not provided", () => {
254
+ const { container } = render(<CarouselHero>{children}</CarouselHero>);
255
+
256
+ const carousel = container.querySelector(".carousel-hero");
257
+ expect(carousel.hasAttribute("data-swiper-options")).toBe(false);
258
+ });
259
+
260
+ it("shows play/pause button when swiperOptions has autoplay with delay >= 1000ms", () => {
261
+ const swiperOptions = {
262
+ autoplay: {
263
+ delay: 3000,
264
+ disableOnInteraction: false,
265
+ },
266
+ };
267
+ const { container } = render(
268
+ <CarouselHero swiperOptions={swiperOptions}>{children}</CarouselHero>,
269
+ );
270
+
271
+ expect(
272
+ container.getElementsByClassName("carousel-hero__play-pause").length,
273
+ ).toBe(1);
274
+ });
275
+
276
+ it("does not show play/pause button when swiperOptions autoplay delay < 1000ms", () => {
277
+ const swiperOptions = {
278
+ autoplay: {
279
+ delay: 500,
280
+ },
281
+ };
282
+ const { container } = render(
283
+ <CarouselHero swiperOptions={swiperOptions}>{children}</CarouselHero>,
284
+ );
285
+
286
+ expect(
287
+ container.getElementsByClassName("carousel-hero__play-pause").length,
288
+ ).toBe(0);
289
+ });
290
+
291
+ it("does not show play/pause button when autoplay is boolean true", () => {
292
+ const swiperOptions = {
293
+ autoplay: true,
294
+ };
295
+ const { container } = render(
296
+ <CarouselHero swiperOptions={swiperOptions}>{children}</CarouselHero>,
297
+ );
298
+
299
+ expect(
300
+ container.getElementsByClassName("carousel-hero__play-pause").length,
301
+ ).toBe(0);
302
+ });
303
+ });
304
+
305
+ describe("Swiper integration", () => {
306
+ const children = (
307
+ <>
308
+ <CarouselHeroItem key="slide-1" image="https://placehold.co/720x560">
309
+ <h2>Test Title 1</h2>
310
+ <p>Test content 1</p>
311
+ </CarouselHeroItem>
312
+ <CarouselHeroItem key="slide-2" image="https://placehold.co/720x560">
313
+ <h2>Test Title 2</h2>
314
+ <p>Test content 2</p>
315
+ </CarouselHeroItem>
316
+ </>
317
+ );
318
+
319
+ it("track element uses carousel-hero__track class which maps to swiper-wrapper", () => {
320
+ const { container } = render(<CarouselHero>{children}</CarouselHero>);
321
+ expect(
322
+ container.querySelector(".carousel-hero__track"),
323
+ ).toBeInTheDocument();
324
+ });
325
+
326
+ it("slide elements use carousel-hero__slide class which maps to swiper-slide", () => {
327
+ const { container } = render(<CarouselHero>{children}</CarouselHero>);
328
+ const slides = container.getElementsByClassName("carousel-hero__slide");
329
+ expect(slides.length).toBe(2);
330
+ });
331
+
332
+ it("viewport element uses carousel-hero__viewport class which maps to swiper-container", () => {
333
+ const { container } = render(<CarouselHero>{children}</CarouselHero>);
334
+ expect(
335
+ container.querySelector(".carousel-hero__viewport"),
336
+ ).toBeInTheDocument();
337
+ });
338
+
339
+ it("pagination element uses carousel-hero__pagination class which maps to swiper-pagination", () => {
340
+ const { container } = render(<CarouselHero>{children}</CarouselHero>);
341
+ expect(
342
+ container.querySelector(".carousel-hero__pagination"),
343
+ ).toBeInTheDocument();
344
+ });
345
+ });
346
+ });
@@ -0,0 +1,135 @@
1
+ import { render } from "@testing-library/react";
2
+ import { axe } from "jest-axe";
3
+
4
+ import { CarouselHeroItem } from "../";
5
+
6
+ const basicExample = (
7
+ <CarouselHeroItem image="https://placehold.co/720x560?text=Basic">
8
+ <h2>Basic Slide Title</h2>
9
+ <p>Basic slide content</p>
10
+ </CarouselHeroItem>
11
+ );
12
+
13
+ const exampleWithButton = (
14
+ <CarouselHeroItem image="https://placehold.co/720x560?text=Button">
15
+ <h2>Slide with Button</h2>
16
+ <p>This slide has interactive content.</p>
17
+ <button type="button">Click me</button>
18
+ </CarouselHeroItem>
19
+ );
20
+
21
+ const exampleWithComplexContent = (
22
+ <CarouselHeroItem image="https://placehold.co/720x560?text=Complex">
23
+ <h2>Complex Content Slide</h2>
24
+ <p>This slide contains various content types:</p>
25
+ <ul>
26
+ <li>List item 1</li>
27
+ <li>List item 2</li>
28
+ <li>List item 3</li>
29
+ </ul>
30
+ <div>
31
+ <button type="button">Primary Action</button>
32
+ <button type="button">Secondary Action</button>
33
+ </div>
34
+ </CarouselHeroItem>
35
+ );
36
+
37
+ const exampleWithLongContent = (
38
+ <CarouselHeroItem image="https://placehold.co/720x560?text=Long+Title">
39
+ <h2>
40
+ This is a Very Long Title That Should Still Be Accessible and Properly
41
+ Rendered
42
+ </h2>
43
+ <p>Content for slide with long title.</p>
44
+ </CarouselHeroItem>
45
+ );
46
+
47
+ const exampleWithSpecialCharacters = (
48
+ <CarouselHeroItem image="https://placehold.co/720x560?text=Special+Chars">
49
+ <h2>Špeciálny Titul s Diakritikou & Symbolmi €</h2>
50
+ <p>Obsah so špeciálnymi znakmi: áéíóúôäňľščťžý.</p>
51
+ <p>Mathematical symbols: ∑ ∞ ± × ÷</p>
52
+ </CarouselHeroItem>
53
+ );
54
+
55
+ const exampleWithCustomClassName = (
56
+ <CarouselHeroItem
57
+ className="custom-slide-class"
58
+ image="https://placehold.co/720x560?text=Custom"
59
+ >
60
+ <h2>Custom Styled Slide</h2>
61
+ <p>This slide has custom styling.</p>
62
+ </CarouselHeroItem>
63
+ );
64
+
65
+ describe("CarouselHeroItem conformance", () => {
66
+ it("is valid html", () => {
67
+ const { container } = render(basicExample);
68
+ expect(container).toHTMLValidate();
69
+ });
70
+
71
+ it("is accessible", async () => {
72
+ const { container } = render(basicExample);
73
+ expect(await axe(container)).toHaveNoViolations();
74
+ });
75
+ });
76
+
77
+ describe("CarouselHeroItem with button conformance", () => {
78
+ it("is valid html", () => {
79
+ const { container } = render(exampleWithButton);
80
+ expect(container).toHTMLValidate();
81
+ });
82
+
83
+ it("is accessible", async () => {
84
+ const { container } = render(exampleWithButton);
85
+ expect(await axe(container)).toHaveNoViolations();
86
+ });
87
+ });
88
+
89
+ describe("CarouselHeroItem with complex content conformance", () => {
90
+ it("is valid html", () => {
91
+ const { container } = render(exampleWithComplexContent);
92
+ expect(container).toHTMLValidate();
93
+ });
94
+
95
+ it("is accessible", async () => {
96
+ const { container } = render(exampleWithComplexContent);
97
+ expect(await axe(container)).toHaveNoViolations();
98
+ });
99
+ });
100
+
101
+ describe("CarouselHeroItem with long content conformance", () => {
102
+ it("is valid html", () => {
103
+ const { container } = render(exampleWithLongContent);
104
+ expect(container).toHTMLValidate();
105
+ });
106
+
107
+ it("is accessible", async () => {
108
+ const { container } = render(exampleWithLongContent);
109
+ expect(await axe(container)).toHaveNoViolations();
110
+ });
111
+ });
112
+
113
+ describe("CarouselHeroItem with special characters conformance", () => {
114
+ it("is valid html", () => {
115
+ const { container } = render(exampleWithSpecialCharacters);
116
+ expect(container).toHTMLValidate();
117
+ });
118
+
119
+ it("is accessible", async () => {
120
+ const { container } = render(exampleWithSpecialCharacters);
121
+ expect(await axe(container)).toHaveNoViolations();
122
+ });
123
+ });
124
+
125
+ describe("CarouselHeroItem with custom class conformance", () => {
126
+ it("is valid html", () => {
127
+ const { container } = render(exampleWithCustomClassName);
128
+ expect(container).toHTMLValidate();
129
+ });
130
+
131
+ it("is accessible", async () => {
132
+ const { container } = render(exampleWithCustomClassName);
133
+ expect(await axe(container)).toHaveNoViolations();
134
+ });
135
+ });
@@ -0,0 +1,143 @@
1
+ import { render } from "@testing-library/react";
2
+
3
+ import { CarouselHeroItem } from "../CarouselHeroItem";
4
+
5
+ describe("rendering CarouselHeroItem", () => {
6
+ describe("initial state", () => {
7
+ it("has default class carousel-hero__slide", () => {
8
+ const { getByTestId } = render(
9
+ <CarouselHeroItem
10
+ data-testid="test-id"
11
+ image="https://placehold.co/720x560"
12
+ />,
13
+ );
14
+ expect(getByTestId("test-id")).toHaveClass("carousel-hero__slide");
15
+ });
16
+
17
+ it("renders slide content container", () => {
18
+ const { container } = render(
19
+ <CarouselHeroItem image="https://placehold.co/720x560" />,
20
+ );
21
+ expect(
22
+ container.getElementsByClassName("carousel-hero__slide-content").length,
23
+ ).toBe(1);
24
+ });
25
+
26
+ it("renders Container wrapper with proper class", () => {
27
+ const { container } = render(
28
+ <CarouselHeroItem image="https://placehold.co/720x560" />,
29
+ );
30
+ expect(
31
+ container.getElementsByClassName("carousel-hero__slide-container")
32
+ .length,
33
+ ).toBe(1);
34
+ });
35
+
36
+ it("renders image with proper attributes", () => {
37
+ const imageUrl = "https://placehold.co/720x560";
38
+ const { container } = render(<CarouselHeroItem image={imageUrl} />);
39
+
40
+ const imageElement = container.querySelector(
41
+ ".carousel-hero__slide-image",
42
+ );
43
+ expect(imageElement).toBeInTheDocument();
44
+ expect(imageElement).toHaveAttribute("src", imageUrl);
45
+ expect(imageElement).toHaveAttribute("alt", "Obrázok");
46
+ });
47
+ });
48
+
49
+ describe("passed props", () => {
50
+ it("renders children content", () => {
51
+ const { getByText } = render(
52
+ <CarouselHeroItem image="https://placehold.co/720x560">
53
+ <p>Test content</p>
54
+ <button>Test button</button>
55
+ </CarouselHeroItem>,
56
+ );
57
+ expect(getByText("Test content")).toBeInTheDocument();
58
+ expect(getByText("Test button")).toBeInTheDocument();
59
+ });
60
+
61
+ it("has additional class when className is set", () => {
62
+ const { getByTestId } = render(
63
+ <CarouselHeroItem
64
+ data-testid="test-id"
65
+ className="test-class"
66
+ image="https://placehold.co/720x560"
67
+ />,
68
+ );
69
+ expect(getByTestId("test-id")).toHaveClass("carousel-hero__slide");
70
+ expect(getByTestId("test-id")).toHaveClass("test-class");
71
+ });
72
+
73
+ it("passes through other HTML attributes", () => {
74
+ const { getByTestId } = render(
75
+ <CarouselHeroItem
76
+ data-testid="test-id"
77
+ id="custom-id"
78
+ role="tabpanel"
79
+ image="https://placehold.co/720x560"
80
+ />,
81
+ );
82
+ expect(getByTestId("test-id")).toHaveAttribute("id", "custom-id");
83
+ expect(getByTestId("test-id")).toHaveAttribute("role", "tabpanel");
84
+ });
85
+
86
+ it("renders with different image source", () => {
87
+ const customImage = "https://example.com/custom-image.jpg";
88
+ const { container } = render(<CarouselHeroItem image={customImage} />);
89
+
90
+ const imageElement = container.querySelector(
91
+ ".carousel-hero__slide-image",
92
+ );
93
+ expect(imageElement).toHaveAttribute("src", customImage);
94
+ expect(imageElement).toHaveAttribute("alt", "Obrázok");
95
+ });
96
+
97
+ it("renders children in proper content container", () => {
98
+ const { container } = render(
99
+ <CarouselHeroItem image="https://placehold.co/720x560">
100
+ <p data-testid="child-content">Child content</p>
101
+ </CarouselHeroItem>,
102
+ );
103
+
104
+ const contentContainer = container.querySelector(
105
+ ".carousel-hero__slide-content",
106
+ );
107
+ const childContent = container.querySelector(
108
+ "[data-testid='child-content']",
109
+ );
110
+
111
+ expect(contentContainer).toContainElement(childContent);
112
+ });
113
+
114
+ it("maintains proper DOM structure", () => {
115
+ const { container } = render(
116
+ <CarouselHeroItem image="https://placehold.co/720x560">
117
+ <h2>Title</h2>
118
+ <p>Content</p>
119
+ </CarouselHeroItem>,
120
+ );
121
+
122
+ const slide = container.querySelector(".carousel-hero__slide");
123
+ const slideContainer = container.querySelector(
124
+ ".carousel-hero__slide-container",
125
+ );
126
+ const slideContent = container.querySelector(
127
+ ".carousel-hero__slide-content",
128
+ );
129
+ const slideImage = container.querySelector(".carousel-hero__slide-image");
130
+
131
+ // Check that slide contains the Container wrapper
132
+ expect(slide).toContainElement(slideContainer);
133
+
134
+ // Check that Container wrapper contains both content and image
135
+ expect(slideContainer).toContainElement(slideContent);
136
+ expect(slideContainer).toContainElement(slideImage);
137
+
138
+ // Check that slide content contains children
139
+ expect(slideContent).toHaveTextContent("Title");
140
+ expect(slideContent).toHaveTextContent("Content");
141
+ });
142
+ });
143
+ });
@@ -129,7 +129,7 @@
129
129
  display: flex;
130
130
  align-self: center;
131
131
  flex-shrink: 0;
132
- margin: space.get('small');
132
+ margin: space.get("small");
133
133
 
134
134
  picture,
135
135
  img {
@@ -193,6 +193,8 @@
193
193
  {
194
194
  #{$property}: $value;
195
195
  }
196
+
197
+ margin-bottom: space.get();
196
198
  }
197
199
  }
198
200
 
@@ -200,7 +202,8 @@
200
202
  display: flex;
201
203
  flex-direction: column;
202
204
  align-items: flex-start;
203
- padding: space.get('small') space.get('small') space.get('small') 0;
205
+ justify-content: center;
206
+ padding: space.get("small") space.get("small") space.get("small") 0;
204
207
 
205
208
  > *:last-child {
206
209
  margin-bottom: 0;
@@ -210,7 +213,11 @@
210
213
  height: 100%;
211
214
  max-width: convert.to-rem(545px);
212
215
  justify-content: space-between;
213
- padding: space.get('medium');
216
+ padding: space.get("medium");
217
+ }
218
+
219
+ @include breakpoint.get('md', 'down') {
220
+ @include generate.css-map(typography-config.$body-text, 'small');
214
221
  }
215
222
  }
216
223
 
@@ -22,10 +22,12 @@ const FooterPriceColumn: React.FC<FooterPriceColumnProps> = ({
22
22
 
23
23
  return (
24
24
  <>
25
- {discount > 0 && <del className="color-gray">{formatPrice(price)}</del>}
25
+ {discount > 0 && (
26
+ <del className="text-secondary">{formatPrice(price)}</del>
27
+ )}
26
28
  <div>
27
29
  <div
28
- className={cx("color-orange mb-none", {
30
+ className={cx("text-accent mb-none", {
29
31
  h4: size !== "large",
30
32
  h2: size === "large",
31
33
  })}
@@ -33,7 +35,7 @@ const FooterPriceColumn: React.FC<FooterPriceColumnProps> = ({
33
35
  {formatPrice(price - discount)}
34
36
  </div>
35
37
  <span
36
- className={cx("color-orange mb-none", {
38
+ className={cx("text-accent mb-none", {
37
39
  h6: size !== "large",
38
40
  h3: size === "large",
39
41
  })}