@orangesk/orange-design-system 2.0.0-beta.1 → 2.0.0-beta.11

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 (577) 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 +1509 -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 +2 -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/index.d.ts +1 -0
  47. package/build/components/types/src/components/Pagination/Pagination.d.ts +2 -3
  48. package/build/components/types/src/components/Pill/Pill.d.ts +4 -1
  49. package/build/components/types/src/components/Preview/PreviewGenerator.d.ts +1 -1
  50. package/build/components/types/src/components/PromoBanner/PromoBanner.d.ts +9 -5
  51. package/build/components/types/src/components/PromotionCard/PromotionCard.d.ts +2 -2
  52. package/build/components/types/src/components/Section/Section.d.ts +4 -1
  53. package/build/components/types/src/components/Tag/Tag.d.ts +9 -2
  54. package/build/components/types/src/components/Tile/Tile.d.ts +2 -1
  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 +37 -31
  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 +14 -4
  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 +15 -28
  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 +10 -1
  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 -15
  247. package/src/components/Megamenu/styles/mixins.scss +647 -209
  248. package/src/components/Megamenu/styles/style.scss +173 -61
  249. package/src/components/Modal/Modal.tsx +9 -1
  250. package/src/components/Modal/ModalBody.tsx +29 -14
  251. package/src/components/Modal/ModalProductBody.tsx +52 -0
  252. package/src/components/Modal/index.ts +1 -0
  253. package/src/components/Modal/styles/mixins.scss +62 -5
  254. package/src/components/Modal/styles/style.scss +16 -0
  255. package/src/components/Modal/tests/Modal.unit.test.js +37 -0
  256. package/src/components/Modal/tests/ModalBody.unit.test.js +28 -12
  257. package/src/components/Pagination/Pagination.tsx +2 -2
  258. package/src/components/Pill/Pill.tsx +8 -3
  259. package/src/components/Pill/styles/config.scss +22 -2
  260. package/src/components/Pill/styles/style.scss +7 -3
  261. package/src/components/Pill/tests/Pill.conformance.test.js +7 -3
  262. package/src/components/Pill/tests/Pill.unit.test.js +45 -7
  263. package/src/components/Preview/PreviewGenerator.tsx +78 -34
  264. package/src/components/PromoBanner/PromoBanner.tsx +68 -33
  265. package/src/components/PromoBanner/styles/mixins.scss +37 -20
  266. package/src/components/PromoBanner/styles/style.scss +5 -11
  267. package/src/components/PromoBanner/tests/PromoBanner.conformance.test.js +813 -0
  268. package/src/components/PromoBanner/tests/PromoBanner.unit.test.js +581 -0
  269. package/src/components/PromotionCard/PromotionCard.tsx +13 -12
  270. package/src/components/PromotionCard/tests/PromotionCard.conformance.test.js +567 -0
  271. package/src/components/PromotionCard/tests/PromotionCard.unit.test.js +500 -0
  272. package/src/components/Section/Section.tsx +20 -10
  273. package/src/components/Section/styles/config.scss +18 -16
  274. package/src/components/Section/styles/mixins.scss +16 -13
  275. package/src/components/Section/styles/style.scss +1 -0
  276. package/src/components/Section/tests/Section.conformance.test.js +23 -12
  277. package/src/components/Section/tests/Section.unit.test.js +53 -32
  278. package/src/components/Table/styles/mixins.scss +3 -4
  279. package/src/components/Tag/Tag.tsx +27 -3
  280. package/src/components/Tag/styles/config.scss +31 -0
  281. package/src/components/Tag/styles/mixins.scss +39 -3
  282. package/src/components/Tag/styles/style.scss +28 -2
  283. package/src/components/Tag/tests/Tag.conformance.test.js +19 -1
  284. package/src/components/Tag/tests/Tag.unit.test.js +93 -0
  285. package/src/components/Tile/CHANGELOG.md +15 -1
  286. package/src/components/Tile/Tile.tsx +11 -3
  287. package/src/components/Tile/styles/config.scss +0 -11
  288. package/src/components/Tile/styles/style.scss +1 -5
  289. package/src/components/Tile/tests/Tile.unit.test.js +10 -3
  290. package/src/components/index.ts +5 -6
  291. package/src/styles/base/globals.scss +24 -0
  292. package/src/styles/base/styleguide.scss +17 -17
  293. package/src/styles/export/base.js +2 -2
  294. package/src/styles/export/color.js +2 -2
  295. package/src/styles/shame.scss +2 -1
  296. package/src/styles/tokens/base.scss +1 -1
  297. package/src/styles/tokens/color.scss +8 -8
  298. package/src/styles/typography/mixins.scss +21 -2
  299. package/src/styles/typography/style.scss +6 -3
  300. package/src/styles/utilities/border.scss +1 -1
  301. package/src/styles/utilities/color.scss +99 -20
  302. package/src/styles/utilities/index.scss +1 -0
  303. package/src/styles/utilities/layout.scss +9 -0
  304. package/src/styles/utilities/ordering.scss +44 -0
  305. package/src/styles/utilities/text.scss +1 -0
  306. package/build/components/Accordion/index.js +0 -16
  307. package/build/components/Accordion/index.js.map +0 -1
  308. package/build/components/Accordion/tsconfig.tsbuildinfo +0 -1
  309. package/build/components/Alert/index.js +0 -16
  310. package/build/components/Alert/index.js.map +0 -1
  311. package/build/components/Alert/tsconfig.tsbuildinfo +0 -1
  312. package/build/components/AnchorNavigation/index.js +0 -16
  313. package/build/components/AnchorNavigation/index.js.map +0 -1
  314. package/build/components/AnchorNavigation/style.css +0 -2
  315. package/build/components/AnchorNavigation/style.css.map +0 -1
  316. package/build/components/AnchorNavigation/tsconfig.tsbuildinfo +0 -1
  317. package/build/components/Bar/index.js +0 -16
  318. package/build/components/Bar/index.js.map +0 -1
  319. package/build/components/Bar/tsconfig.tsbuildinfo +0 -1
  320. package/build/components/BlockAction/index.js +0 -16
  321. package/build/components/BlockAction/index.js.map +0 -1
  322. package/build/components/BlockAction/style.css +0 -2
  323. package/build/components/BlockAction/style.css.map +0 -1
  324. package/build/components/BlockAction/tsconfig.tsbuildinfo +0 -1
  325. package/build/components/BodyBanner/index.js +0 -16
  326. package/build/components/BodyBanner/index.js.map +0 -1
  327. package/build/components/BodyBanner/style.css +0 -2
  328. package/build/components/BodyBanner/style.css.map +0 -1
  329. package/build/components/BodyBanner/tsconfig.tsbuildinfo +0 -1
  330. package/build/components/Breadcrumbs/index.js +0 -16
  331. package/build/components/Breadcrumbs/index.js.map +0 -1
  332. package/build/components/Breadcrumbs/tsconfig.tsbuildinfo +0 -1
  333. package/build/components/Button/index.js +0 -16
  334. package/build/components/Button/index.js.map +0 -1
  335. package/build/components/Button/style.css +0 -2
  336. package/build/components/Button/style.css.map +0 -1
  337. package/build/components/Button/tsconfig.tsbuildinfo +0 -1
  338. package/build/components/Buttons/index.js +0 -16
  339. package/build/components/Buttons/index.js.map +0 -1
  340. package/build/components/Buttons/tsconfig.tsbuildinfo +0 -1
  341. package/build/components/Card/index.js +0 -16
  342. package/build/components/Card/index.js.map +0 -1
  343. package/build/components/Card/tsconfig.tsbuildinfo +0 -1
  344. package/build/components/Carousel/index.js +0 -16
  345. package/build/components/Carousel/index.js.map +0 -1
  346. package/build/components/Carousel/style.css +0 -2
  347. package/build/components/Carousel/style.css.map +0 -1
  348. package/build/components/Carousel/tsconfig.tsbuildinfo +0 -1
  349. package/build/components/CarouselPromotions/index.js +0 -16
  350. package/build/components/CarouselPromotions/index.js.map +0 -1
  351. package/build/components/CarouselPromotions/tsconfig.tsbuildinfo +0 -1
  352. package/build/components/CartTable/index.js +0 -16
  353. package/build/components/CartTable/index.js.map +0 -1
  354. package/build/components/CartTable/style.css +0 -2
  355. package/build/components/CartTable/style.css.map +0 -1
  356. package/build/components/CartTable/tsconfig.tsbuildinfo +0 -1
  357. package/build/components/Code/index.js +0 -11
  358. package/build/components/Code/index.js.map +0 -1
  359. package/build/components/Code/style.css +0 -2
  360. package/build/components/Code/style.css.map +0 -1
  361. package/build/components/Code/tsconfig.tsbuildinfo +0 -1
  362. package/build/components/Container/index.js +0 -16
  363. package/build/components/Container/index.js.map +0 -1
  364. package/build/components/Container/tsconfig.tsbuildinfo +0 -1
  365. package/build/components/Controls/index.js +0 -16
  366. package/build/components/Controls/index.js.map +0 -1
  367. package/build/components/Controls/tsconfig.tsbuildinfo +0 -1
  368. package/build/components/Cover/index.js +0 -16
  369. package/build/components/Cover/index.js.map +0 -1
  370. package/build/components/Cover/style.css +0 -2
  371. package/build/components/Cover/style.css.map +0 -1
  372. package/build/components/Cover/tsconfig.tsbuildinfo +0 -1
  373. package/build/components/Divider/index.js +0 -16
  374. package/build/components/Divider/index.js.map +0 -1
  375. package/build/components/Divider/tsconfig.tsbuildinfo +0 -1
  376. package/build/components/DocumentationSidebar/index.js +0 -16
  377. package/build/components/DocumentationSidebar/index.js.map +0 -1
  378. package/build/components/DocumentationSidebar/style.css +0 -2
  379. package/build/components/DocumentationSidebar/style.css.map +0 -1
  380. package/build/components/DocumentationSidebar/tsconfig.tsbuildinfo +0 -1
  381. package/build/components/Dropdown/index.js +0 -16
  382. package/build/components/Dropdown/index.js.map +0 -1
  383. package/build/components/Dropdown/style.css +0 -2
  384. package/build/components/Dropdown/style.css.map +0 -1
  385. package/build/components/Dropdown/tsconfig.tsbuildinfo +0 -1
  386. package/build/components/Expander/index.js +0 -16
  387. package/build/components/Expander/index.js.map +0 -1
  388. package/build/components/Expander/tsconfig.tsbuildinfo +0 -1
  389. package/build/components/FeatureAccordion/index.js +0 -16
  390. package/build/components/FeatureAccordion/index.js.map +0 -1
  391. package/build/components/FeatureAccordion/style.css +0 -2
  392. package/build/components/FeatureAccordion/style.css.map +0 -1
  393. package/build/components/FeatureAccordion/tsconfig.tsbuildinfo +0 -1
  394. package/build/components/Footer/index.js +0 -16
  395. package/build/components/Footer/index.js.map +0 -1
  396. package/build/components/Footer/style.css +0 -2
  397. package/build/components/Footer/style.css.map +0 -1
  398. package/build/components/Footer/tsconfig.tsbuildinfo +0 -1
  399. package/build/components/Forms/index.js +0 -20
  400. package/build/components/Forms/index.js.map +0 -1
  401. package/build/components/Forms/style.css +0 -2
  402. package/build/components/Forms/style.css.map +0 -1
  403. package/build/components/Forms/tsconfig.tsbuildinfo +0 -1
  404. package/build/components/Gauge/index.js +0 -16
  405. package/build/components/Gauge/index.js.map +0 -1
  406. package/build/components/Gauge/tsconfig.tsbuildinfo +0 -1
  407. package/build/components/Grid/index.js +0 -16
  408. package/build/components/Grid/index.js.map +0 -1
  409. package/build/components/Grid/style.css +0 -2
  410. package/build/components/Grid/style.css.map +0 -1
  411. package/build/components/Grid/tsconfig.tsbuildinfo +0 -1
  412. package/build/components/Hero/index.js +0 -16
  413. package/build/components/Hero/index.js.map +0 -1
  414. package/build/components/Hero/style.css +0 -2
  415. package/build/components/Hero/style.css.map +0 -1
  416. package/build/components/Hero/tsconfig.tsbuildinfo +0 -1
  417. package/build/components/Icon/index.js +0 -11
  418. package/build/components/Icon/index.js.map +0 -1
  419. package/build/components/Icon/tsconfig.tsbuildinfo +0 -1
  420. package/build/components/IconList/index.js +0 -16
  421. package/build/components/IconList/index.js.map +0 -1
  422. package/build/components/IconList/style.css +0 -2
  423. package/build/components/IconList/style.css.map +0 -1
  424. package/build/components/IconList/tsconfig.tsbuildinfo +0 -1
  425. package/build/components/Image/index.js +0 -16
  426. package/build/components/Image/index.js.map +0 -1
  427. package/build/components/Image/tsconfig.tsbuildinfo +0 -1
  428. package/build/components/Link/index.js +0 -7
  429. package/build/components/Link/index.js.map +0 -1
  430. package/build/components/Link/tsconfig.tsbuildinfo +0 -1
  431. package/build/components/List/index.js +0 -16
  432. package/build/components/List/index.js.map +0 -1
  433. package/build/components/List/style.css +0 -2
  434. package/build/components/List/style.css.map +0 -1
  435. package/build/components/List/tsconfig.tsbuildinfo +0 -1
  436. package/build/components/Loader/index.js +0 -16
  437. package/build/components/Loader/index.js.map +0 -1
  438. package/build/components/Loader/tsconfig.tsbuildinfo +0 -1
  439. package/build/components/Megamenu/index.js +0 -20
  440. package/build/components/Megamenu/index.js.map +0 -1
  441. package/build/components/Megamenu/style.css +0 -2
  442. package/build/components/Megamenu/style.css.map +0 -1
  443. package/build/components/Megamenu/tsconfig.tsbuildinfo +0 -1
  444. package/build/components/Modal/index.js +0 -20
  445. package/build/components/Modal/index.js.map +0 -1
  446. package/build/components/Modal/style.css +0 -2
  447. package/build/components/Modal/style.css.map +0 -1
  448. package/build/components/Modal/tsconfig.tsbuildinfo +0 -1
  449. package/build/components/Pagination/index.js +0 -16
  450. package/build/components/Pagination/index.js.map +0 -1
  451. package/build/components/Pagination/tsconfig.tsbuildinfo +0 -1
  452. package/build/components/Pill/index.js +0 -16
  453. package/build/components/Pill/index.js.map +0 -1
  454. package/build/components/Pill/tsconfig.tsbuildinfo +0 -1
  455. package/build/components/Preview/index.js +0 -77
  456. package/build/components/Preview/index.js.map +0 -1
  457. package/build/components/Preview/style.css +0 -2
  458. package/build/components/Preview/style.css.map +0 -1
  459. package/build/components/Preview/tsconfig.tsbuildinfo +0 -1
  460. package/build/components/Progress/index.js +0 -16
  461. package/build/components/Progress/index.js.map +0 -1
  462. package/build/components/Progress/tsconfig.tsbuildinfo +0 -1
  463. package/build/components/PromoBanner/index.js +0 -16
  464. package/build/components/PromoBanner/index.js.map +0 -1
  465. package/build/components/PromoBanner/style.css +0 -2
  466. package/build/components/PromoBanner/style.css.map +0 -1
  467. package/build/components/PromoBanner/tsconfig.tsbuildinfo +0 -1
  468. package/build/components/PromotionCard/index.js +0 -16
  469. package/build/components/PromotionCard/index.js.map +0 -1
  470. package/build/components/PromotionCard/tsconfig.tsbuildinfo +0 -1
  471. package/build/components/Section/index.js +0 -16
  472. package/build/components/Section/index.js.map +0 -1
  473. package/build/components/Section/tsconfig.tsbuildinfo +0 -1
  474. package/build/components/Skeleton/index.js +0 -16
  475. package/build/components/Skeleton/index.js.map +0 -1
  476. package/build/components/Skeleton/tsconfig.tsbuildinfo +0 -1
  477. package/build/components/SkipLink/index.js +0 -16
  478. package/build/components/SkipLink/index.js.map +0 -1
  479. package/build/components/SkipLink/tsconfig.tsbuildinfo +0 -1
  480. package/build/components/Stepbar/index.js +0 -16
  481. package/build/components/Stepbar/index.js.map +0 -1
  482. package/build/components/Stepbar/tsconfig.tsbuildinfo +0 -1
  483. package/build/components/Sticker/index.js +0 -16
  484. package/build/components/Sticker/index.js.map +0 -1
  485. package/build/components/Sticker/tsconfig.tsbuildinfo +0 -1
  486. package/build/components/Table/index.js +0 -16
  487. package/build/components/Table/index.js.map +0 -1
  488. package/build/components/Table/style.css +0 -2
  489. package/build/components/Table/style.css.map +0 -1
  490. package/build/components/Table/tsconfig.tsbuildinfo +0 -1
  491. package/build/components/Tabs/index.js +0 -16
  492. package/build/components/Tabs/index.js.map +0 -1
  493. package/build/components/Tabs/tsconfig.tsbuildinfo +0 -1
  494. package/build/components/Tag/index.js +0 -16
  495. package/build/components/Tag/index.js.map +0 -1
  496. package/build/components/Tag/tsconfig.tsbuildinfo +0 -1
  497. package/build/components/Testimonial/index.js +0 -16
  498. package/build/components/Testimonial/index.js.map +0 -1
  499. package/build/components/Testimonial/tsconfig.tsbuildinfo +0 -1
  500. package/build/components/Tile/index.js +0 -16
  501. package/build/components/Tile/index.js.map +0 -1
  502. package/build/components/Tile/tsconfig.tsbuildinfo +0 -1
  503. package/build/components/Tooltip/index.js +0 -16
  504. package/build/components/Tooltip/index.js.map +0 -1
  505. package/build/components/Tooltip/style.css +0 -2
  506. package/build/components/Tooltip/style.css.map +0 -1
  507. package/build/components/Tooltip/tsconfig.tsbuildinfo +0 -1
  508. package/build/components/static.css +0 -2
  509. package/build/components/static.css.map +0 -1
  510. package/build/components/static.js +0 -10
  511. package/build/components/static.js.map +0 -1
  512. package/build/components/types/src/components/Hero/HeroPlayground.d.ts +0 -2
  513. package/build/components/types/src/components/Megamenu/MegamenuDropdown.d.ts +0 -17
  514. package/src/components/Accordion/Accordion.mdx +0 -222
  515. package/src/components/Alert/Alert.mdx +0 -141
  516. package/src/components/Bar/Bar.mdx +0 -203
  517. package/src/components/BlockAction/BlockAction.mdx +0 -244
  518. package/src/components/BodyBanner/BodyBanner.mdx +0 -268
  519. package/src/components/Breadcrumbs/Breadcrumbs.mdx +0 -84
  520. package/src/components/Button/Button.mdx +0 -273
  521. package/src/components/Buttons/Buttons.mdx +0 -39
  522. package/src/components/Card/Card.mdx +0 -334
  523. package/src/components/Carousel/Carousel.mdx +0 -159
  524. package/src/components/CarouselPromotions/CarouselPromotions.mdx +0 -246
  525. package/src/components/CartTable/CartTable.mdx +0 -129
  526. package/src/components/Container/Container.mdx +0 -73
  527. package/src/components/Controls/Controls.mdx +0 -469
  528. package/src/components/Cover/Cover.mdx +0 -87
  529. package/src/components/Divider/Divider.mdx +0 -65
  530. package/src/components/Dropdown/Dropdown.mdx +0 -260
  531. package/src/components/Expander/Expander.mdx +0 -153
  532. package/src/components/FeatureAccordion/FeatureAccordion.mdx +0 -33
  533. package/src/components/Forms/Autocomplete/Autocomplete.mdx +0 -198
  534. package/src/components/Forms/Checkbox/Checkbox.mdx +0 -139
  535. package/src/components/Forms/DatePicker/DatePicker.mdx +0 -149
  536. package/src/components/Forms/Field/Field.mdx +0 -383
  537. package/src/components/Forms/Fieldset/Fieldset.mdx +0 -178
  538. package/src/components/Forms/File/File.mdx +0 -88
  539. package/src/components/Forms/FormTooltip.mdx +0 -51
  540. package/src/components/Forms/Forms.mdx +0 -48
  541. package/src/components/Forms/Group/Group.mdx +0 -146
  542. package/src/components/Forms/Hint/Hint.mdx +0 -40
  543. package/src/components/Forms/InputStepper/InputStepper.mdx +0 -147
  544. package/src/components/Forms/Label/Label.mdx +0 -95
  545. package/src/components/Forms/Message/Message.mdx +0 -40
  546. package/src/components/Forms/Radio/Radio.mdx +0 -98
  547. package/src/components/Forms/RangeSlider/RangeSlider.mdx +0 -304
  548. package/src/components/Forms/Select/Select.mdx +0 -106
  549. package/src/components/Forms/TextArea/TextArea.mdx +0 -109
  550. package/src/components/Forms/TextInput/TextInput.mdx +0 -153
  551. package/src/components/Gauge/Gauge.mdx +0 -35
  552. package/src/components/Grid/Grid.mdx +0 -320
  553. package/src/components/Hero/Hero.mdx +0 -168
  554. package/src/components/Hero/HeroPlayground.tsx +0 -369
  555. package/src/components/Icon/Icon.mdx +0 -172
  556. package/src/components/IconList/IconList.mdx +0 -53
  557. package/src/components/Image/Image.mdx +0 -175
  558. package/src/components/Link/Link.mdx +0 -224
  559. package/src/components/List/List.mdx +0 -216
  560. package/src/components/Loader/Loader.mdx +0 -148
  561. package/src/components/Megamenu/MegamenuDropdown.tsx +0 -64
  562. package/src/components/Modal/Modal.mdx +0 -565
  563. package/src/components/Pagination/Pagination.mdx +0 -45
  564. package/src/components/Pill/Pill.mdx +0 -41
  565. package/src/components/Progress/Progress.mdx +0 -119
  566. package/src/components/PromotionCard/PromotionCard.mdx +0 -191
  567. package/src/components/Section/Section.mdx +0 -397
  568. package/src/components/Skeleton/Skeleton.mdx +0 -90
  569. package/src/components/SkipLink/SkipLink.mdx +0 -23
  570. package/src/components/Stepbar/Stepbar.mdx +0 -137
  571. package/src/components/Sticker/Sticker.mdx +0 -50
  572. package/src/components/Table/Table.mdx +0 -199
  573. package/src/components/Tabs/Tabs.mdx +0 -373
  574. package/src/components/Tag/Tag.mdx +0 -52
  575. package/src/components/Testimonial/Testimonial.mdx +0 -41
  576. package/src/components/Tile/Tile.mdx +0 -163
  577. 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
  })}