@orangesk/orange-design-system 2.0.0-beta.2 → 2.0.0-beta.21

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 (784) hide show
  1. package/README.md +346 -19
  2. package/build/components/Accordion/style.css +2 -0
  3. package/build/components/Accordion/style.css.map +1 -0
  4. package/build/components/Alert/style.css +2 -0
  5. package/build/components/Alert/style.css.map +1 -0
  6. package/build/components/AnchorNavigation/style.css +1 -1
  7. package/build/components/AnchorNavigation/style.css.map +1 -1
  8. package/build/components/Bar/style.css +2 -0
  9. package/build/components/Bar/style.css.map +1 -0
  10. package/build/components/BlockAction/style.css +2 -0
  11. package/build/components/BlockAction/style.css.map +1 -0
  12. package/build/components/BodyBanner/style.css +1 -1
  13. package/build/components/BodyBanner/style.css.map +1 -1
  14. package/build/components/Breadcrumbs/style.css +2 -0
  15. package/build/components/Breadcrumbs/style.css.map +1 -0
  16. package/build/components/Button/style.css +2 -0
  17. package/build/components/Button/style.css.map +1 -0
  18. package/build/components/Buttons/style.css +2 -0
  19. package/build/components/Buttons/style.css.map +1 -0
  20. package/build/components/Card/style.css +2 -0
  21. package/build/components/Card/style.css.map +1 -0
  22. package/build/components/Carousel/style.css +1 -1
  23. package/build/components/Carousel/style.css.map +1 -1
  24. package/build/components/CarouselHero/style.css +2 -0
  25. package/build/components/CarouselHero/style.css.map +1 -0
  26. package/build/components/CarouselPromotions/style.css +2 -0
  27. package/build/components/CarouselPromotions/style.css.map +1 -0
  28. package/build/components/CartTable/style.css +1 -1
  29. package/build/components/CartTable/style.css.map +1 -1
  30. package/build/components/Container/style.css +2 -0
  31. package/build/components/Container/style.css.map +1 -0
  32. package/build/components/Controls/style.css +2 -0
  33. package/build/components/Controls/style.css.map +1 -0
  34. package/build/components/Cover/style.css +2 -0
  35. package/build/components/Cover/style.css.map +1 -0
  36. package/build/components/Divider/style.css +2 -0
  37. package/build/components/Divider/style.css.map +1 -0
  38. package/build/components/DocumentationSidebar/style.css +1 -1
  39. package/build/components/DocumentationSidebar/style.css.map +1 -1
  40. package/build/components/Dropdown/style.css +1 -1
  41. package/build/components/Dropdown/style.css.map +1 -1
  42. package/build/components/Expander/style.css +2 -0
  43. package/build/components/Expander/style.css.map +1 -0
  44. package/build/components/FeatureAccordion/style.css +1 -1
  45. package/build/components/FeatureAccordion/style.css.map +1 -1
  46. package/build/components/Footer/style.css +1 -1
  47. package/build/components/Footer/style.css.map +1 -1
  48. package/build/components/Gauge/style.css +2 -0
  49. package/build/components/Gauge/style.css.map +1 -0
  50. package/build/components/Grid/style.css +1 -1
  51. package/build/components/Grid/style.css.map +1 -1
  52. package/build/components/Hero/style.css +1 -1
  53. package/build/components/Hero/style.css.map +1 -1
  54. package/build/components/Icon/style.css +2 -0
  55. package/build/components/Icon/style.css.map +1 -0
  56. package/build/components/IconList/style.css +1 -1
  57. package/build/components/IconList/style.css.map +1 -1
  58. package/build/components/Image/style.css +2 -0
  59. package/build/components/Image/style.css.map +1 -0
  60. package/build/components/Link/style.css +2 -0
  61. package/build/components/Link/style.css.map +1 -0
  62. package/build/components/List/style.css +2 -0
  63. package/build/components/List/style.css.map +1 -0
  64. package/build/components/Loader/style.css +2 -0
  65. package/build/components/Loader/style.css.map +1 -0
  66. package/build/components/Megamenu/style.css +2 -0
  67. package/build/components/Megamenu/style.css.map +1 -0
  68. package/build/components/Modal/style.css +2 -0
  69. package/build/components/Modal/style.css.map +1 -0
  70. package/build/components/Pagination/style.css +2 -0
  71. package/build/components/Pagination/style.css.map +1 -0
  72. package/build/components/Pill/style.css +2 -0
  73. package/build/components/Pill/style.css.map +1 -0
  74. package/build/components/Preview/style.css +1 -1
  75. package/build/components/Preview/style.css.map +1 -1
  76. package/build/components/Progress/style.css +2 -0
  77. package/build/components/Progress/style.css.map +1 -0
  78. package/build/components/PromoBanner/style.css +1 -1
  79. package/build/components/PromoBanner/style.css.map +1 -1
  80. package/build/components/PromotionCard/style.css +2 -0
  81. package/build/components/PromotionCard/style.css.map +1 -0
  82. package/build/components/Section/style.css +2 -0
  83. package/build/components/Section/style.css.map +1 -0
  84. package/build/components/Skeleton/style.css +2 -0
  85. package/build/components/Skeleton/style.css.map +1 -0
  86. package/build/components/SkipLink/style.css +2 -0
  87. package/build/components/SkipLink/style.css.map +1 -0
  88. package/build/components/SocialButton/style.css +2 -0
  89. package/build/components/SocialButton/style.css.map +1 -0
  90. package/build/components/Stepbar/style.css +2 -0
  91. package/build/components/Stepbar/style.css.map +1 -0
  92. package/build/components/Sticker/style.css +2 -0
  93. package/build/components/Sticker/style.css.map +1 -0
  94. package/build/components/Table/style.css +2 -0
  95. package/build/components/Table/style.css.map +1 -0
  96. package/build/components/Tabs/style.css +2 -0
  97. package/build/components/Tabs/style.css.map +1 -0
  98. package/build/components/Tag/style.css +2 -0
  99. package/build/components/Tag/style.css.map +1 -0
  100. package/build/components/Testimonial/style.css +2 -0
  101. package/build/components/Testimonial/style.css.map +1 -0
  102. package/build/components/Tile/style.css +2 -0
  103. package/build/components/Tile/style.css.map +1 -0
  104. package/build/components/Tooltip/style.css +1 -1
  105. package/build/components/Tooltip/style.css.map +1 -1
  106. package/build/components/index.js +1 -23
  107. package/build/components/index.js.map +1 -1
  108. package/build/components/tsconfig.tsbuildinfo +1 -1
  109. package/build/components/types/index.d.ts +1497 -0
  110. package/build/components/types/src/components/Accordion/Accordion.d.ts +2 -2
  111. package/build/components/types/src/components/Accordion/Accordion.static.d.ts +1 -0
  112. package/build/components/types/src/components/Alert/Alert.d.ts +0 -2
  113. package/build/components/types/src/components/AnchorNavigation/AnchorNavigation.d.ts +1 -2
  114. package/build/components/types/src/components/AnchorNavigation/AnchorNavigation.static.d.ts +20 -17
  115. package/build/components/types/src/components/BlockAction/BlockAction.d.ts +2 -0
  116. package/build/components/types/src/components/BlockAction/Context.d.ts +2 -0
  117. package/build/components/types/src/components/BodyBanner/BodyBanner.d.ts +10 -10
  118. package/build/components/types/src/components/Breadcrumbs/Breadcrumbs.d.ts +0 -2
  119. package/build/components/types/src/components/Button/Button.d.ts +1 -1
  120. package/build/components/types/src/components/Button/index.d.ts +3 -4
  121. package/build/components/types/src/components/Card/Card.d.ts +2 -1
  122. package/build/components/types/src/components/Card/CardSection.d.ts +2 -2
  123. package/build/components/types/src/components/Card/index.d.ts +1 -0
  124. package/build/components/types/src/components/Carousel/Carousel.d.ts +4 -2
  125. package/build/components/types/src/components/Carousel/Carousel.static.d.ts +61 -7
  126. package/build/components/types/src/components/Carousel/constants.d.ts +2 -0
  127. package/build/components/types/src/components/CarouselHero/CarouselHero.d.ts +17 -0
  128. package/build/components/types/src/components/CarouselHero/CarouselHero.static.d.ts +47 -0
  129. package/build/components/types/src/components/CarouselHero/CarouselHeroItem.d.ts +8 -0
  130. package/build/components/types/src/components/CarouselHero/constants.d.ts +33 -0
  131. package/build/components/types/src/components/CarouselHero/index.d.ts +2 -0
  132. package/build/components/types/src/components/CarouselPromotions/CarouselPromotions.d.ts +0 -1
  133. package/build/components/types/src/components/Controls/Controls.d.ts +0 -1
  134. package/build/components/types/src/components/Cover/Cover.d.ts +3 -3
  135. package/build/components/types/src/components/Divider/Divider.d.ts +0 -4
  136. package/build/components/types/src/components/DocumentationSidebar/DocumentationSidebar.d.ts +1 -0
  137. package/build/components/types/src/components/Expander/Expander.d.ts +2 -5
  138. package/build/components/types/src/components/FeatureAccordion/FeatureAccordion.d.ts +1 -3
  139. package/build/components/types/src/components/Footer/Footer.d.ts +1 -5
  140. package/build/components/types/src/components/Footer/PlanObnovy.d.ts +1 -0
  141. package/build/components/types/src/components/Footer/constants.d.ts +10 -0
  142. package/build/components/types/src/components/Footer/data.d.ts +6 -0
  143. package/build/components/types/src/components/Forms/InputStepper/InputStepper.d.ts +0 -1
  144. package/build/components/types/src/components/Forms/Select/index.d.ts +1 -1
  145. package/build/components/types/src/components/Grid/Grid.d.ts +1 -1
  146. package/build/components/types/src/components/Grid/GridCol.d.ts +1 -1
  147. package/build/components/types/src/components/Hero/Hero.d.ts +0 -3
  148. package/build/components/types/src/components/Icon/IconSearch.d.ts +2 -2
  149. package/build/components/types/src/components/Icon/IconSearchWrapper.d.ts +1 -1
  150. package/build/components/types/src/components/Icon/iconSearchTags.d.ts +259 -252
  151. package/build/components/types/src/components/Link/Link.d.ts +2 -2
  152. package/build/components/types/src/components/Megamenu/Megamenu.d.ts +6 -1
  153. package/build/components/types/src/components/Megamenu/MegamenuBlog.d.ts +2 -1
  154. package/build/components/types/src/components/Megamenu/constants.d.ts +4 -0
  155. package/build/components/types/src/components/Megamenu/static.d.ts +2 -3
  156. package/build/components/types/src/components/Modal/Modal.d.ts +0 -4
  157. package/build/components/types/src/components/Modal/ModalBody.d.ts +3 -3
  158. package/build/components/types/src/components/Modal/ModalProductHeader.d.ts +2 -0
  159. package/build/components/types/src/components/Modal/index.d.ts +0 -1
  160. package/build/components/types/src/components/Pagination/Pagination.d.ts +2 -5
  161. package/build/components/types/src/components/Pagination/Separator.d.ts +2 -2
  162. package/build/components/types/src/components/Pill/Pill.d.ts +3 -1
  163. package/build/components/types/src/components/Preview/Preview.d.ts +1 -1
  164. package/build/components/types/src/components/Preview/PreviewGenerator.d.ts +1 -0
  165. package/build/components/types/src/components/Preview/index.d.ts +1 -1
  166. package/build/components/types/src/components/Progress/Progress.d.ts +0 -1
  167. package/build/components/types/src/components/PromoBanner/PromoBanner.d.ts +9 -6
  168. package/build/components/types/src/components/PromotionCard/PromotionCard.d.ts +3 -3
  169. package/build/components/types/src/components/Section/Section.d.ts +4 -1
  170. package/build/components/types/src/components/SocialButton/SocialButton.d.ts +13 -0
  171. package/build/components/types/src/components/SocialButton/index.d.ts +1 -0
  172. package/build/components/types/src/components/Stepbar/Stepbar.d.ts +0 -2
  173. package/build/components/types/src/components/Table/Row.d.ts +1 -2
  174. package/build/components/types/src/components/Table/Table.d.ts +2 -2
  175. package/build/components/types/src/components/Table/docsData.d.ts +2 -0
  176. package/build/components/types/src/components/Table/types.d.ts +1 -0
  177. package/build/components/types/src/components/Tabs/Tabs.d.ts +0 -2
  178. package/build/components/types/src/components/Tag/Tag.d.ts +0 -2
  179. package/build/components/types/src/components/Tile/Tile.d.ts +2 -1
  180. package/build/components/types/src/components/Tooltip/Tooltip.d.ts +0 -1
  181. package/build/components/types/src/components/Tooltip/tests/BaseWrapper.d.ts +1 -1
  182. package/build/components/types/src/components/index.d.ts +5 -5
  183. package/build/components/types/src/docs/utils/SpacePreview.d.ts +1 -2
  184. package/build/components/types/src/scripts/index.d.ts +12 -3
  185. package/build/components/types/src/scripts/modules/SameHeight.d.ts +3 -0
  186. package/build/components/types/src/styles/export/color.d.ts +105 -0
  187. package/build/fonts/HelveticaNeue-Bold.woff2 +0 -0
  188. package/build/fonts/HelveticaNeue-Light.woff2 +0 -0
  189. package/build/fonts/HelveticaNeue-Roman.woff2 +0 -0
  190. package/build/lib/base.css +3 -0
  191. package/build/lib/base.css.map +1 -0
  192. package/build/lib/components.css +1 -1
  193. package/build/lib/components.css.map +1 -1
  194. package/build/lib/footer.css +2 -0
  195. package/build/lib/footer.css.map +1 -0
  196. package/build/lib/megamenu.css +1 -1
  197. package/build/lib/megamenu.css.map +1 -1
  198. package/build/lib/megamenu.js +1 -1
  199. package/build/lib/megamenu.js.map +1 -1
  200. package/build/lib/scripts.js +1 -9
  201. package/build/lib/scripts.js.map +1 -1
  202. package/build/lib/style.css +1 -1
  203. package/build/lib/style.css.map +1 -1
  204. package/build/lib/tsconfig.tsbuildinfo +1 -1
  205. package/build/lib/utilities.css +2 -0
  206. package/build/lib/utilities.css.map +1 -0
  207. package/build/plan-obnovy.svg +53 -0
  208. package/build/sprite.svg +1 -1
  209. package/package.json +46 -38
  210. package/public/fonts/HelveticaNeue-Bold.woff2 +0 -0
  211. package/public/fonts/HelveticaNeue-Light.woff2 +0 -0
  212. package/public/fonts/HelveticaNeue-Roman.woff2 +0 -0
  213. package/src/assets/icons/ai.svg +6 -0
  214. package/src/assets/icons/article.svg +7 -0
  215. package/src/assets/icons/instagram.svg +5 -1
  216. package/src/assets/icons/linkedin-2.svg +3 -1
  217. package/src/assets/icons/pictogram-activation--dark.svg +10 -11
  218. package/src/assets/icons/pictogram-activation-free--dark.svg +4 -5
  219. package/src/assets/icons/pictogram-activation-free.svg +4 -5
  220. package/src/assets/icons/pictogram-activation.svg +10 -11
  221. package/src/assets/icons/pictogram-archive--dark.svg +3 -4
  222. package/src/assets/icons/pictogram-archive.svg +3 -4
  223. package/src/assets/icons/pictogram-calling-minutes--dark.svg +3 -4
  224. package/src/assets/icons/pictogram-calling-minutes.svg +3 -4
  225. package/src/assets/icons/pictogram-canal-plus--dark.svg +3 -4
  226. package/src/assets/icons/pictogram-canal-plus.svg +3 -4
  227. package/src/assets/icons/pictogram-competition-tickets--dark.svg +11 -12
  228. package/src/assets/icons/pictogram-competition-tickets.svg +11 -12
  229. package/src/assets/icons/pictogram-device-discount--dark.svg +7 -6
  230. package/src/assets/icons/pictogram-device-discount.svg +5 -6
  231. package/src/assets/icons/pictogram-discount-general--dark.svg +5 -6
  232. package/src/assets/icons/pictogram-discount-general.svg +5 -6
  233. package/src/assets/icons/pictogram-discount-price--dark.svg +5 -6
  234. package/src/assets/icons/pictogram-discount-price.svg +5 -6
  235. package/src/assets/icons/pictogram-extra-data--dark.svg +6 -7
  236. package/src/assets/icons/pictogram-extra-data.svg +6 -7
  237. package/src/assets/icons/pictogram-free-payment--dark.svg +5 -6
  238. package/src/assets/icons/pictogram-free-payment.svg +3 -6
  239. package/src/assets/icons/pictogram-gift--dark.svg +12 -13
  240. package/src/assets/icons/pictogram-gift-one-benefit--dark.svg +7 -8
  241. package/src/assets/icons/pictogram-gift-one-benefit.svg +7 -8
  242. package/src/assets/icons/pictogram-gift-two-benefits--dark.svg +8 -9
  243. package/src/assets/icons/pictogram-gift-two-benefits.svg +8 -9
  244. package/src/assets/icons/pictogram-gift.svg +3 -4
  245. package/src/assets/icons/pictogram-hbo-max--dark.svg +5 -6
  246. package/src/assets/icons/pictogram-hbo-max.svg +5 -6
  247. package/src/assets/icons/pictogram-infinite-sms--dark.svg +3 -4
  248. package/src/assets/icons/pictogram-infinite-sms.svg +3 -4
  249. package/src/assets/icons/pictogram-installation--dark.svg +4 -5
  250. package/src/assets/icons/pictogram-installation-free--dark.svg +4 -5
  251. package/src/assets/icons/pictogram-installation-free.svg +4 -5
  252. package/src/assets/icons/pictogram-installation.svg +4 -5
  253. package/src/assets/icons/pictogram-max--dark.svg +3 -4
  254. package/src/assets/icons/pictogram-max-canal-plus--dark.svg +5 -6
  255. package/src/assets/icons/pictogram-max-canal-plus.svg +5 -6
  256. package/src/assets/icons/pictogram-max.svg +3 -4
  257. package/src/assets/icons/pictogram-moj-orange-app--dark.svg +3 -4
  258. package/src/assets/icons/pictogram-moj-orange-app.svg +3 -4
  259. package/src/assets/icons/pictogram-movie-storage--dark.svg +4 -5
  260. package/src/assets/icons/pictogram-movie-storage.svg +4 -5
  261. package/src/assets/icons/pictogram-online-protection--dark.svg +3 -4
  262. package/src/assets/icons/pictogram-online-protection.svg +3 -4
  263. package/src/assets/icons/pictogram-random-damage--dark.svg +4 -8
  264. package/src/assets/icons/pictogram-random-damage.svg +4 -8
  265. package/src/assets/icons/pictogram-recycling--dark.svg +7 -8
  266. package/src/assets/icons/pictogram-recycling.svg +14 -15
  267. package/src/assets/icons/pictogram-repair--dark.svg +12 -13
  268. package/src/assets/icons/pictogram-repair.svg +12 -13
  269. package/src/assets/icons/pictogram-roaming--dark.svg +3 -4
  270. package/src/assets/icons/pictogram-roaming-discount--dark.svg +3 -16
  271. package/src/assets/icons/pictogram-roaming-discount.svg +15 -16
  272. package/src/assets/icons/pictogram-roaming.svg +3 -4
  273. package/src/assets/icons/pictogram-skylink--dark.svg +10 -11
  274. package/src/assets/icons/pictogram-skylink-live-tv--dark.svg +7 -8
  275. package/src/assets/icons/pictogram-skylink-live-tv.svg +7 -8
  276. package/src/assets/icons/pictogram-skylink.svg +10 -11
  277. package/src/assets/icons/pictogram-sms--dark.svg +5 -6
  278. package/src/assets/icons/pictogram-sms.svg +5 -6
  279. package/src/assets/icons/pictogram-theft--dark.svg +3 -7
  280. package/src/assets/icons/pictogram-theft.svg +3 -7
  281. package/src/assets/icons/pictogram-three-devices--dark.svg +4 -8
  282. package/src/assets/icons/pictogram-three-devices.svg +4 -8
  283. package/src/assets/icons/pictogram-trust--dark.svg +3 -4
  284. package/src/assets/icons/pictogram-trust.svg +3 -4
  285. package/src/assets/icons/pictogram-water-damage--dark.svg +5 -6
  286. package/src/assets/icons/pictogram-water-damage.svg +5 -6
  287. package/src/assets/icons/pinterest.svg +4 -0
  288. package/src/assets/icons/play.svg +4 -1
  289. package/src/assets/icons/quote.svg +4 -0
  290. package/src/assets/icons/snapchat.svg +4 -0
  291. package/src/assets/icons/tiktok.svg +4 -0
  292. package/src/assets/icons/whatsapp.svg +4 -0
  293. package/src/components/Accordion/Accordion.static.ts +36 -30
  294. package/src/components/Accordion/Accordion.tsx +4 -4
  295. package/src/components/Accordion/AccordionHeader.tsx +0 -10
  296. package/src/components/Accordion/AccordionItem.tsx +1 -0
  297. package/src/components/Accordion/styles/config.scss +5 -4
  298. package/src/components/Accordion/styles/mixins.scss +12 -11
  299. package/src/components/Accordion/styles/style.scss +2 -2
  300. package/src/components/Accordion/tests/Accordion.unit.test.js +12 -26
  301. package/src/components/Alert/Alert.tsx +0 -6
  302. package/src/components/Alert/styles/config.scss +1 -1
  303. package/src/components/Alert/styles/mixins.scss +3 -1
  304. package/src/components/Alert/tests/Alert.test.js +0 -14
  305. package/src/components/AnchorNavigation/AnchorNavigation.static.ts +296 -72
  306. package/src/components/AnchorNavigation/AnchorNavigation.tsx +21 -26
  307. package/src/components/AnchorNavigation/styles/mixins.scss +23 -32
  308. package/src/components/AnchorNavigation/tests/AnchorNavigation.conformance.test.js +58 -0
  309. package/src/components/AnchorNavigation/tests/AnchorNavigation.unit.test.js +163 -0
  310. package/src/components/Bar/styles/config.scss +4 -5
  311. package/src/components/Bar/styles/mixins.scss +11 -11
  312. package/src/components/BlockAction/BlockAction.tsx +10 -3
  313. package/src/components/BlockAction/Context.tsx +4 -0
  314. package/src/components/BlockAction/styles/mixins.scss +6 -6
  315. package/src/components/BlockAction/styles/style.scss +5 -0
  316. package/src/components/BodyBanner/BodyBanner.tsx +52 -73
  317. package/src/components/BodyBanner/styles/mixins.scss +39 -33
  318. package/src/components/BodyBanner/styles/style.scss +4 -18
  319. package/src/components/BodyBanner/tests/BodyBanner.conformance.test.js +67 -0
  320. package/src/components/BodyBanner/tests/BodyBanner.unit.test.js +194 -0
  321. package/src/components/Breadcrumbs/BreadcrumbItem.tsx +16 -7
  322. package/src/components/Breadcrumbs/Breadcrumbs.tsx +4 -12
  323. package/src/components/Breadcrumbs/styles/mixins.scss +2 -4
  324. package/src/components/Breadcrumbs/tests/BreadcrumbItem.unit.test.js +14 -8
  325. package/src/components/Breadcrumbs/tests/Breadcrumbs.integration.test.js +14 -37
  326. package/src/components/Breadcrumbs/tests/Breadcrumbs.unit.test.js +19 -23
  327. package/src/components/Button/Button.tsx +2 -6
  328. package/src/components/Button/styles/config.scss +5 -5
  329. package/src/components/Button/styles/mixins.scss +6 -1
  330. package/src/components/Button/styles/style.scss +4 -0
  331. package/src/components/Button/tests/Button.test.js +0 -10
  332. package/src/components/Buttons/styles/mixins.scss +1 -1
  333. package/src/components/Card/Card.tsx +20 -3
  334. package/src/components/Card/CardSection.tsx +7 -11
  335. package/src/components/Card/index.ts +1 -0
  336. package/src/components/Card/styles/config.scss +2 -2
  337. package/src/components/Card/styles/mixins.scss +8 -6
  338. package/src/components/Card/styles/style.scss +4 -0
  339. package/src/components/Card/tests/Card.unit.test.js +45 -6
  340. package/src/components/Card/tests/CardSection.unit.test.js +36 -3
  341. package/src/components/Carousel/Carousel.static.ts +371 -10
  342. package/src/components/Carousel/Carousel.tsx +41 -24
  343. package/src/components/Carousel/constants.ts +2 -0
  344. package/src/components/Carousel/styles/config.scss +1 -2
  345. package/src/components/Carousel/styles/mixins.scss +42 -3
  346. package/src/components/Carousel/styles/style.scss +8 -0
  347. package/src/components/Carousel/tests/Carousel.static.test.js +616 -0
  348. package/src/components/Carousel/tests/Carousel.unit.test.js +117 -12
  349. package/src/components/CarouselHero/CarouselHero.static.ts +528 -0
  350. package/src/components/CarouselHero/CarouselHero.tsx +139 -0
  351. package/src/components/CarouselHero/CarouselHeroItem.tsx +40 -0
  352. package/src/components/CarouselHero/constants.ts +36 -0
  353. package/src/components/CarouselHero/index.ts +2 -0
  354. package/src/components/CarouselHero/styles/config.scss +54 -0
  355. package/src/components/CarouselHero/styles/mixins.scss +278 -0
  356. package/src/components/CarouselHero/styles/style.scss +63 -0
  357. package/src/components/CarouselHero/tests/CarouselHero.conformance.test.js +129 -0
  358. package/src/components/CarouselHero/tests/CarouselHero.unit.test.js +332 -0
  359. package/src/components/CarouselHero/tests/CarouselHeroItem.conformance.test.js +135 -0
  360. package/src/components/CarouselHero/tests/CarouselHeroItem.unit.test.js +143 -0
  361. package/src/components/CarouselPromotions/CarouselPromotions.tsx +1 -6
  362. package/src/components/CarouselPromotions/styles/mixins.scss +8 -5
  363. package/src/components/CarouselPromotions/tests/CarouselPromotions.unit.test.js +0 -17
  364. package/src/components/CartTable/FooterPriceColumn.tsx +5 -3
  365. package/src/components/CartTable/Price.tsx +1 -1
  366. package/src/components/Code/styles/style.scss +6 -5
  367. package/src/components/Controls/Controls.tsx +2 -7
  368. package/src/components/Controls/styles/config.scss +2 -2
  369. package/src/components/Controls/tests/Controls.test.js +0 -32
  370. package/src/components/Cover/Cover.tsx +22 -20
  371. package/src/components/Cover/styles/config.scss +23 -12
  372. package/src/components/Cover/styles/mixins.scss +6 -5
  373. package/src/components/Cover/tests/Cover.unit.test.js +52 -52
  374. package/src/components/Divider/Divider.tsx +2 -16
  375. package/src/components/Divider/styles/config.scss +0 -17
  376. package/src/components/Divider/styles/mixins.scss +8 -10
  377. package/src/components/Divider/styles/style.scss +2 -16
  378. package/src/components/Divider/tests/Divider.conformance.test.js +1 -1
  379. package/src/components/Divider/tests/Divider.unit.test.js +0 -17
  380. package/src/components/DocumentationSidebar/DocumentationSidebar.tsx +188 -2
  381. package/src/components/DocumentationSidebar/styles/style.scss +76 -3
  382. package/src/components/Dropdown/styles/mixins.scss +1 -1
  383. package/src/components/Expander/Expander.static.ts +11 -12
  384. package/src/components/Expander/Expander.tsx +4 -8
  385. package/src/components/Expander/styles/style.scss +12 -3
  386. package/src/components/Expander/tests/Expander.conformance.test.js +8 -12
  387. package/src/components/Expander/tests/Expander.unit.test.js +37 -47
  388. package/src/components/FeatureAccordion/FeatureAccordion.tsx +3 -13
  389. package/src/components/FeatureAccordion/styles/mixins.scss +6 -14
  390. package/src/components/FeatureAccordion/styles/style.scss +2 -4
  391. package/src/components/FeatureAccordion/tests/FeatureAccordion.conformance.test.js +2 -0
  392. package/src/components/FeatureAccordion/tests/FeatureAccordion.unit.test.js +0 -5
  393. package/src/components/Footer/Footer.tsx +110 -71
  394. package/src/components/Footer/PlanObnovy.tsx +211 -0
  395. package/src/components/Footer/constants.ts +11 -0
  396. package/src/components/Footer/data.ts +27 -0
  397. package/src/components/Footer/styles/config.scss +1 -0
  398. package/src/components/Footer/styles/mixins.scss +182 -0
  399. package/src/components/Footer/styles/style.scss +54 -0
  400. package/src/components/Footer/tests/Footer.conformance.test.js +133 -8
  401. package/src/components/Footer/tests/Footer.unit.test.js +71 -6
  402. package/src/components/Forms/DatePicker/styles/style.scss +1 -1
  403. package/src/components/Forms/Field/styles/config.scss +8 -8
  404. package/src/components/Forms/Field/tests/Autocomplete.Field.conformance.test.js +1 -1
  405. package/src/components/Forms/Field/tests/Checkbox.Field.conformance.test.js +1 -0
  406. package/src/components/Forms/Field/tests/File.Field.conformance.test.js +1 -0
  407. package/src/components/Forms/Field/tests/Group.Field.conformance.test.js +1 -0
  408. package/src/components/Forms/Field/tests/Radio.Field.conformance.test.js +1 -0
  409. package/src/components/Forms/Field/tests/Rangeslider.Field.test.js +1 -0
  410. package/src/components/Forms/Field/tests/Select.Field.conformance.test.js +1 -0
  411. package/src/components/Forms/Field/tests/Text.Field.conformance.test.js +1 -0
  412. package/src/components/Forms/Field/tests/Textarea.Field.conformance.test.js +1 -0
  413. package/src/components/Forms/Fieldset/styles/mixins.scss +3 -3
  414. package/src/components/Forms/File/styles/mixins.scss +1 -1
  415. package/src/components/Forms/Group/styles/mixins.scss +14 -0
  416. package/src/components/Forms/InputStepper/InputStepper.tsx +0 -4
  417. package/src/components/Forms/InputStepper/styles/style.scss +0 -66
  418. package/src/components/Forms/Label/styles/config.scss +3 -0
  419. package/src/components/Forms/RangeSlider/styles/mixins.scss +1 -1
  420. package/src/components/Forms/TextArea/styles/mixins.scss +10 -9
  421. package/src/components/Forms/TextInput/styles/config.scss +1 -1
  422. package/src/components/Forms/styles/config.scss +5 -4
  423. package/src/components/Gauge/styles/style.scss +1 -1
  424. package/src/components/Grid/Grid.tsx +1 -1
  425. package/src/components/Grid/styles/config.scss +5 -3
  426. package/src/components/Grid/styles/mixins.scss +29 -19
  427. package/src/components/Grid/tests/Grid.unit.test.js +11 -0
  428. package/src/components/Hero/Hero.tsx +2 -16
  429. package/src/components/Hero/styles/style.scss +0 -14
  430. package/src/components/Hero/tests/Hero.unit.test.js +109 -119
  431. package/src/components/Icon/iconSearchTags.ts +440 -432
  432. package/src/components/Icon/styles/style.scss +15 -0
  433. package/src/components/Icon/tests/Pictogram.unit.test.js +38 -0
  434. package/src/components/IconList/styles/mixins.scss +5 -5
  435. package/src/components/Image/styles/mixins.scss +2 -2
  436. package/src/components/Link/Link.tsx +4 -5
  437. package/src/components/Link/styles/mixins.scss +9 -3
  438. package/src/components/Link/styles/style.scss +4 -2
  439. package/src/components/Link/tests/Link.conformance.test.js +6 -27
  440. package/src/components/Link/tests/Link.unit.test.js +1 -30
  441. package/src/components/List/styles/config.scss +12 -12
  442. package/src/components/List/styles/mixins.scss +16 -9
  443. package/src/components/Loader/Loader.tsx +2 -10
  444. package/src/components/Loader/styles/mixins.scss +1 -1
  445. package/src/components/Loader/styles/style.scss +6 -4
  446. package/src/components/Megamenu/Megamenu.static.ts +2 -0
  447. package/src/components/Megamenu/Megamenu.tsx +730 -650
  448. package/src/components/Megamenu/MegamenuBlog.tsx +201 -183
  449. package/src/components/Megamenu/constants.ts +4 -0
  450. package/src/components/Megamenu/static.ts +5 -11
  451. package/src/components/Megamenu/styles/mixins.scss +50 -3
  452. package/src/components/Megamenu/styles/style.scss +10 -0
  453. package/src/components/Modal/Modal.tsx +1 -14
  454. package/src/components/Modal/ModalBody.tsx +26 -14
  455. package/src/components/Modal/ModalProductHeader.tsx +6 -2
  456. package/src/components/Modal/index.ts +0 -1
  457. package/src/components/Modal/styles/config.scss +4 -4
  458. package/src/components/Modal/styles/mixins.scss +18 -57
  459. package/src/components/Modal/styles/style.scss +1 -16
  460. package/src/components/Modal/tests/Modal.unit.test.js +0 -59
  461. package/src/components/Modal/tests/ModalBody.unit.test.js +21 -12
  462. package/src/components/Modal/tests/ModalProductHeader.unit.test.js +12 -0
  463. package/src/components/Pagination/Pagination.tsx +3 -13
  464. package/src/components/Pagination/styles/mixins.scss +1 -1
  465. package/src/components/Pill/Pill.tsx +17 -5
  466. package/src/components/Pill/styles/config.scss +2 -1
  467. package/src/components/Pill/styles/style.scss +17 -1
  468. package/src/components/Pill/tests/Pill.conformance.test.js +9 -3
  469. package/src/components/Pill/tests/Pill.unit.test.js +87 -9
  470. package/src/components/Preview/PreviewGenerator.tsx +50 -29
  471. package/src/components/Progress/Progress.tsx +1 -13
  472. package/src/components/Progress/styles/config.scss +4 -4
  473. package/src/components/Progress/styles/mixins.scss +9 -7
  474. package/src/components/PromoBanner/PromoBanner.tsx +70 -43
  475. package/src/components/PromoBanner/styles/mixins.scss +39 -17
  476. package/src/components/PromoBanner/styles/style.scss +5 -7
  477. package/src/components/PromoBanner/tests/PromoBanner.conformance.test.js +783 -0
  478. package/src/components/PromoBanner/tests/PromoBanner.unit.test.js +549 -0
  479. package/src/components/PromotionCard/PromotionCard.tsx +12 -13
  480. package/src/components/PromotionCard/styles/mixins.scss +2 -1
  481. package/src/components/PromotionCard/tests/PromotionCard.conformance.test.js +566 -0
  482. package/src/components/PromotionCard/tests/PromotionCard.unit.test.js +438 -0
  483. package/src/components/Section/Section.tsx +20 -10
  484. package/src/components/Section/styles/config.scss +18 -16
  485. package/src/components/Section/styles/mixins.scss +16 -13
  486. package/src/components/Section/styles/style.scss +1 -0
  487. package/src/components/Section/tests/Section.conformance.test.js +23 -12
  488. package/src/components/Section/tests/Section.unit.test.js +53 -32
  489. package/src/components/SocialButton/SocialButton.tsx +67 -0
  490. package/src/components/SocialButton/index.ts +1 -0
  491. package/src/components/SocialButton/styles/config.scss +172 -0
  492. package/src/components/SocialButton/styles/mixins.scss +42 -0
  493. package/src/components/SocialButton/styles/style.scss +16 -0
  494. package/src/components/SocialButton/tests/SocialButton.unit.test.js +162 -0
  495. package/src/components/Stepbar/Stepbar.tsx +0 -5
  496. package/src/components/Stepbar/styles/mixins.scss +1 -1
  497. package/src/components/Table/Row.tsx +9 -3
  498. package/src/components/Table/Table.tsx +11 -6
  499. package/src/components/Table/TableContext.ts +1 -0
  500. package/src/components/Table/docsData.ts +25 -0
  501. package/src/components/Table/styles/mixins.scss +41 -5
  502. package/src/components/Table/styles/style.scss +6 -0
  503. package/src/components/Table/tests/Table.conformance.test.js +5 -1
  504. package/src/components/Table/tests/Table.unit.test.js +0 -31
  505. package/src/components/Table/types.ts +1 -0
  506. package/src/components/Tabs/Tabs.tsx +0 -5
  507. package/src/components/Tabs/styles/mixins.scss +1 -1
  508. package/src/components/Tabs/tests/Tabs.unit.test.js +0 -8
  509. package/src/components/Tag/Tag.tsx +0 -4
  510. package/src/components/Tag/styles/config.scss +19 -23
  511. package/src/components/Tag/styles/style.scss +33 -0
  512. package/src/components/Tile/CHANGELOG.md +15 -1
  513. package/src/components/Tile/Tile.tsx +11 -3
  514. package/src/components/Tile/styles/config.scss +0 -11
  515. package/src/components/Tile/styles/mixins.scss +1 -0
  516. package/src/components/Tile/styles/style.scss +1 -5
  517. package/src/components/Tile/tests/Tile.unit.test.js +10 -3
  518. package/src/components/Tooltip/InfoTooltip.tsx +1 -5
  519. package/src/components/Tooltip/Tooltip.tsx +1 -10
  520. package/src/components/Tooltip/tests/Tooltip.conformance.test.js +5 -1
  521. package/src/components/Tooltip/tests/Tooltip.unit.test.js +0 -29
  522. package/src/components/index.ts +9 -4
  523. package/src/styles/base/globals-forms.scss +8 -0
  524. package/src/styles/base/globals.scss +26 -22
  525. package/src/styles/base/styleguide.scss +22 -17
  526. package/src/styles/export/base.js +1 -1
  527. package/src/styles/export/color.js +102 -20
  528. package/src/styles/export/color.scss +10 -20
  529. package/src/styles/shame.scss +1 -0
  530. package/src/styles/tokens/color-vars.scss +39 -0
  531. package/src/styles/tokens/color.scss +14 -14
  532. package/src/styles/tokens/tag-colors.scss +20 -0
  533. package/src/styles/typography/config.scss +83 -37
  534. package/src/styles/typography/mixins.scss +29 -15
  535. package/src/styles/typography/style.scss +6 -3
  536. package/src/styles/utilities/border.scss +1 -1
  537. package/src/styles/utilities/color.scss +99 -20
  538. package/src/styles/utilities/horizontal-scroll.scss +1 -1
  539. package/src/styles/utilities/index.scss +1 -0
  540. package/src/styles/utilities/layout.scss +27 -0
  541. package/src/styles/utilities/ordering.scss +44 -0
  542. package/src/styles/utilities/text.scss +44 -2
  543. package/src/styles/utilities/visibility.scss +2 -4
  544. package/build/components/Accordion/index.js +0 -16
  545. package/build/components/Accordion/index.js.map +0 -1
  546. package/build/components/Accordion/tsconfig.tsbuildinfo +0 -1
  547. package/build/components/Alert/index.js +0 -16
  548. package/build/components/Alert/index.js.map +0 -1
  549. package/build/components/Alert/tsconfig.tsbuildinfo +0 -1
  550. package/build/components/AnchorNavigation/index.js +0 -16
  551. package/build/components/AnchorNavigation/index.js.map +0 -1
  552. package/build/components/AnchorNavigation/tsconfig.tsbuildinfo +0 -1
  553. package/build/components/Bar/index.js +0 -16
  554. package/build/components/Bar/index.js.map +0 -1
  555. package/build/components/Bar/tsconfig.tsbuildinfo +0 -1
  556. package/build/components/BlockAction/index.js +0 -16
  557. package/build/components/BlockAction/index.js.map +0 -1
  558. package/build/components/BlockAction/tsconfig.tsbuildinfo +0 -1
  559. package/build/components/BodyBanner/index.js +0 -16
  560. package/build/components/BodyBanner/index.js.map +0 -1
  561. package/build/components/BodyBanner/tsconfig.tsbuildinfo +0 -1
  562. package/build/components/Breadcrumbs/index.js +0 -16
  563. package/build/components/Breadcrumbs/index.js.map +0 -1
  564. package/build/components/Breadcrumbs/tsconfig.tsbuildinfo +0 -1
  565. package/build/components/Button/index.js +0 -16
  566. package/build/components/Button/index.js.map +0 -1
  567. package/build/components/Button/tsconfig.tsbuildinfo +0 -1
  568. package/build/components/Buttons/index.js +0 -16
  569. package/build/components/Buttons/index.js.map +0 -1
  570. package/build/components/Buttons/tsconfig.tsbuildinfo +0 -1
  571. package/build/components/Card/index.js +0 -16
  572. package/build/components/Card/index.js.map +0 -1
  573. package/build/components/Card/tsconfig.tsbuildinfo +0 -1
  574. package/build/components/Carousel/index.js +0 -16
  575. package/build/components/Carousel/index.js.map +0 -1
  576. package/build/components/Carousel/tsconfig.tsbuildinfo +0 -1
  577. package/build/components/CarouselPromotions/index.js +0 -16
  578. package/build/components/CarouselPromotions/index.js.map +0 -1
  579. package/build/components/CarouselPromotions/tsconfig.tsbuildinfo +0 -1
  580. package/build/components/CartTable/index.js +0 -16
  581. package/build/components/CartTable/index.js.map +0 -1
  582. package/build/components/CartTable/tsconfig.tsbuildinfo +0 -1
  583. package/build/components/Code/index.js +0 -11
  584. package/build/components/Code/index.js.map +0 -1
  585. package/build/components/Code/tsconfig.tsbuildinfo +0 -1
  586. package/build/components/Container/index.js +0 -16
  587. package/build/components/Container/index.js.map +0 -1
  588. package/build/components/Container/tsconfig.tsbuildinfo +0 -1
  589. package/build/components/Controls/index.js +0 -16
  590. package/build/components/Controls/index.js.map +0 -1
  591. package/build/components/Controls/tsconfig.tsbuildinfo +0 -1
  592. package/build/components/Cover/index.js +0 -16
  593. package/build/components/Cover/index.js.map +0 -1
  594. package/build/components/Cover/tsconfig.tsbuildinfo +0 -1
  595. package/build/components/Divider/index.js +0 -16
  596. package/build/components/Divider/index.js.map +0 -1
  597. package/build/components/Divider/tsconfig.tsbuildinfo +0 -1
  598. package/build/components/DocumentationSidebar/index.js +0 -16
  599. package/build/components/DocumentationSidebar/index.js.map +0 -1
  600. package/build/components/DocumentationSidebar/tsconfig.tsbuildinfo +0 -1
  601. package/build/components/Dropdown/index.js +0 -16
  602. package/build/components/Dropdown/index.js.map +0 -1
  603. package/build/components/Dropdown/tsconfig.tsbuildinfo +0 -1
  604. package/build/components/Expander/index.js +0 -16
  605. package/build/components/Expander/index.js.map +0 -1
  606. package/build/components/Expander/tsconfig.tsbuildinfo +0 -1
  607. package/build/components/FeatureAccordion/index.js +0 -16
  608. package/build/components/FeatureAccordion/index.js.map +0 -1
  609. package/build/components/FeatureAccordion/tsconfig.tsbuildinfo +0 -1
  610. package/build/components/Footer/index.js +0 -16
  611. package/build/components/Footer/index.js.map +0 -1
  612. package/build/components/Footer/tsconfig.tsbuildinfo +0 -1
  613. package/build/components/Forms/index.js +0 -20
  614. package/build/components/Forms/index.js.map +0 -1
  615. package/build/components/Forms/style.css +0 -2
  616. package/build/components/Forms/style.css.map +0 -1
  617. package/build/components/Forms/tsconfig.tsbuildinfo +0 -1
  618. package/build/components/Gauge/index.js +0 -16
  619. package/build/components/Gauge/index.js.map +0 -1
  620. package/build/components/Gauge/tsconfig.tsbuildinfo +0 -1
  621. package/build/components/Grid/index.js +0 -16
  622. package/build/components/Grid/index.js.map +0 -1
  623. package/build/components/Grid/tsconfig.tsbuildinfo +0 -1
  624. package/build/components/Hero/index.js +0 -16
  625. package/build/components/Hero/index.js.map +0 -1
  626. package/build/components/Hero/tsconfig.tsbuildinfo +0 -1
  627. package/build/components/Icon/index.js +0 -11
  628. package/build/components/Icon/index.js.map +0 -1
  629. package/build/components/Icon/tsconfig.tsbuildinfo +0 -1
  630. package/build/components/IconList/index.js +0 -16
  631. package/build/components/IconList/index.js.map +0 -1
  632. package/build/components/IconList/tsconfig.tsbuildinfo +0 -1
  633. package/build/components/Image/index.js +0 -16
  634. package/build/components/Image/index.js.map +0 -1
  635. package/build/components/Image/tsconfig.tsbuildinfo +0 -1
  636. package/build/components/Link/index.js +0 -7
  637. package/build/components/Link/index.js.map +0 -1
  638. package/build/components/Link/tsconfig.tsbuildinfo +0 -1
  639. package/build/components/List/index.js +0 -16
  640. package/build/components/List/index.js.map +0 -1
  641. package/build/components/List/tsconfig.tsbuildinfo +0 -1
  642. package/build/components/Loader/index.js +0 -16
  643. package/build/components/Loader/index.js.map +0 -1
  644. package/build/components/Loader/tsconfig.tsbuildinfo +0 -1
  645. package/build/components/Megamenu/index.js +0 -16
  646. package/build/components/Megamenu/index.js.map +0 -1
  647. package/build/components/Megamenu/tsconfig.tsbuildinfo +0 -1
  648. package/build/components/Modal/index.js +0 -20
  649. package/build/components/Modal/index.js.map +0 -1
  650. package/build/components/Modal/tsconfig.tsbuildinfo +0 -1
  651. package/build/components/Pagination/index.js +0 -16
  652. package/build/components/Pagination/index.js.map +0 -1
  653. package/build/components/Pagination/tsconfig.tsbuildinfo +0 -1
  654. package/build/components/Pill/index.js +0 -16
  655. package/build/components/Pill/index.js.map +0 -1
  656. package/build/components/Pill/tsconfig.tsbuildinfo +0 -1
  657. package/build/components/Preview/index.js +0 -77
  658. package/build/components/Preview/index.js.map +0 -1
  659. package/build/components/Preview/tsconfig.tsbuildinfo +0 -1
  660. package/build/components/Progress/index.js +0 -16
  661. package/build/components/Progress/index.js.map +0 -1
  662. package/build/components/Progress/tsconfig.tsbuildinfo +0 -1
  663. package/build/components/PromoBanner/index.js +0 -16
  664. package/build/components/PromoBanner/index.js.map +0 -1
  665. package/build/components/PromoBanner/tsconfig.tsbuildinfo +0 -1
  666. package/build/components/PromotionCard/index.js +0 -16
  667. package/build/components/PromotionCard/index.js.map +0 -1
  668. package/build/components/PromotionCard/tsconfig.tsbuildinfo +0 -1
  669. package/build/components/Section/index.js +0 -16
  670. package/build/components/Section/index.js.map +0 -1
  671. package/build/components/Section/tsconfig.tsbuildinfo +0 -1
  672. package/build/components/Skeleton/index.js +0 -16
  673. package/build/components/Skeleton/index.js.map +0 -1
  674. package/build/components/Skeleton/tsconfig.tsbuildinfo +0 -1
  675. package/build/components/SkipLink/index.js +0 -16
  676. package/build/components/SkipLink/index.js.map +0 -1
  677. package/build/components/SkipLink/tsconfig.tsbuildinfo +0 -1
  678. package/build/components/Stepbar/index.js +0 -16
  679. package/build/components/Stepbar/index.js.map +0 -1
  680. package/build/components/Stepbar/tsconfig.tsbuildinfo +0 -1
  681. package/build/components/Sticker/index.js +0 -16
  682. package/build/components/Sticker/index.js.map +0 -1
  683. package/build/components/Sticker/tsconfig.tsbuildinfo +0 -1
  684. package/build/components/Table/index.js +0 -16
  685. package/build/components/Table/index.js.map +0 -1
  686. package/build/components/Table/tsconfig.tsbuildinfo +0 -1
  687. package/build/components/Tabs/index.js +0 -16
  688. package/build/components/Tabs/index.js.map +0 -1
  689. package/build/components/Tabs/tsconfig.tsbuildinfo +0 -1
  690. package/build/components/Tag/index.js +0 -16
  691. package/build/components/Tag/index.js.map +0 -1
  692. package/build/components/Tag/tsconfig.tsbuildinfo +0 -1
  693. package/build/components/Testimonial/index.js +0 -16
  694. package/build/components/Testimonial/index.js.map +0 -1
  695. package/build/components/Testimonial/tsconfig.tsbuildinfo +0 -1
  696. package/build/components/Tile/index.js +0 -16
  697. package/build/components/Tile/index.js.map +0 -1
  698. package/build/components/Tile/tsconfig.tsbuildinfo +0 -1
  699. package/build/components/Tooltip/index.js +0 -16
  700. package/build/components/Tooltip/index.js.map +0 -1
  701. package/build/components/Tooltip/tsconfig.tsbuildinfo +0 -1
  702. package/build/components/index.css +0 -3
  703. package/build/components/index.css.map +0 -1
  704. package/build/components/static.css +0 -2
  705. package/build/components/static.css.map +0 -1
  706. package/build/components/static.js +0 -10
  707. package/build/components/static.js.map +0 -1
  708. package/build/components/types/src/components/Hero/HeroPlayground.d.ts +0 -2
  709. package/build/components/types/src/components/Modal/ModalProductBody.d.ts +0 -10
  710. package/build/lib/after-components.css +0 -2
  711. package/build/lib/after-components.css.map +0 -1
  712. package/build/lib/before-components.css +0 -3
  713. package/build/lib/before-components.css.map +0 -1
  714. package/build/lib/scripts.css +0 -2
  715. package/build/lib/scripts.css.map +0 -1
  716. package/src/components/Accordion/Accordion.mdx +0 -240
  717. package/src/components/Alert/Alert.mdx +0 -141
  718. package/src/components/Bar/Bar.mdx +0 -203
  719. package/src/components/BlockAction/BlockAction.mdx +0 -244
  720. package/src/components/BodyBanner/BodyBanner.mdx +0 -268
  721. package/src/components/Breadcrumbs/Breadcrumbs.mdx +0 -84
  722. package/src/components/Button/Button.mdx +0 -273
  723. package/src/components/Buttons/Buttons.mdx +0 -39
  724. package/src/components/Card/Card.mdx +0 -334
  725. package/src/components/Carousel/Carousel.mdx +0 -159
  726. package/src/components/CarouselPromotions/CarouselPromotions.mdx +0 -246
  727. package/src/components/CartTable/CartTable.mdx +0 -129
  728. package/src/components/Container/Container.mdx +0 -73
  729. package/src/components/Controls/Controls.mdx +0 -469
  730. package/src/components/Cover/Cover.mdx +0 -87
  731. package/src/components/Divider/Divider.mdx +0 -65
  732. package/src/components/Dropdown/Dropdown.mdx +0 -260
  733. package/src/components/Expander/Expander.mdx +0 -153
  734. package/src/components/FeatureAccordion/FeatureAccordion.mdx +0 -33
  735. package/src/components/Forms/Autocomplete/Autocomplete.mdx +0 -198
  736. package/src/components/Forms/Checkbox/Checkbox.mdx +0 -139
  737. package/src/components/Forms/DatePicker/DatePicker.mdx +0 -149
  738. package/src/components/Forms/Field/Field.mdx +0 -383
  739. package/src/components/Forms/Fieldset/Fieldset.mdx +0 -178
  740. package/src/components/Forms/File/File.mdx +0 -88
  741. package/src/components/Forms/FormTooltip.mdx +0 -51
  742. package/src/components/Forms/Forms.mdx +0 -48
  743. package/src/components/Forms/Group/Group.mdx +0 -146
  744. package/src/components/Forms/Hint/Hint.mdx +0 -40
  745. package/src/components/Forms/InputStepper/InputStepper.mdx +0 -147
  746. package/src/components/Forms/Label/Label.mdx +0 -95
  747. package/src/components/Forms/Message/Message.mdx +0 -40
  748. package/src/components/Forms/Radio/Radio.mdx +0 -98
  749. package/src/components/Forms/RangeSlider/RangeSlider.mdx +0 -304
  750. package/src/components/Forms/Select/Select.mdx +0 -106
  751. package/src/components/Forms/TextArea/TextArea.mdx +0 -109
  752. package/src/components/Forms/TextInput/TextInput.mdx +0 -153
  753. package/src/components/Gauge/Gauge.mdx +0 -35
  754. package/src/components/Grid/Grid.mdx +0 -320
  755. package/src/components/Hero/Hero.mdx +0 -168
  756. package/src/components/Hero/HeroPlayground.tsx +0 -369
  757. package/src/components/Icon/Icon.mdx +0 -172
  758. package/src/components/IconList/IconList.mdx +0 -53
  759. package/src/components/Image/Image.mdx +0 -175
  760. package/src/components/Link/Link.mdx +0 -238
  761. package/src/components/List/List.mdx +0 -216
  762. package/src/components/Loader/Loader.mdx +0 -148
  763. package/src/components/Modal/Modal.mdx +0 -565
  764. package/src/components/Modal/ModalProductBody.tsx +0 -52
  765. package/src/components/Pagination/Pagination.mdx +0 -45
  766. package/src/components/Pagination/tests/utils.js +0 -12
  767. package/src/components/Pill/Pill.mdx +0 -41
  768. package/src/components/Progress/Progress.mdx +0 -119
  769. package/src/components/PromotionCard/PromotionCard.mdx +0 -191
  770. package/src/components/Section/Section.mdx +0 -397
  771. package/src/components/Skeleton/Skeleton.mdx +0 -90
  772. package/src/components/SkipLink/SkipLink.mdx +0 -23
  773. package/src/components/Stepbar/Stepbar.mdx +0 -137
  774. package/src/components/Sticker/Sticker.mdx +0 -50
  775. package/src/components/Table/Table.mdx +0 -199
  776. package/src/components/Tabs/Tabs.mdx +0 -373
  777. package/src/components/Tag/Tag.mdx +0 -52
  778. package/src/components/Testimonial/Testimonial.mdx +0 -41
  779. package/src/components/Tile/Tile.mdx +0 -163
  780. package/src/components/Tooltip/Tooltip.mdx +0 -227
  781. package/src/styles/after-components.scss +0 -2
  782. package/src/styles/before-components.scss +0 -18
  783. /package/build/lib/{after-components.js → base.js} +0 -0
  784. /package/build/lib/{before-components.js → utilities.js} +0 -0
@@ -26,6 +26,8 @@ import {
26
26
  SELECTOR_ACTIVE,
27
27
  CLASS_SLIDE_NEXT,
28
28
  CLASS_SLIDE_PREV,
29
+ CLASS_BLEED_RIGHT,
30
+ CLASS_VIEWPORT_WRAPPER,
29
31
  } from "./constants";
30
32
 
31
33
  export const defaultConfig: SwiperOptions = {
@@ -48,6 +50,7 @@ export const defaultConfig: SwiperOptions = {
48
50
  enabled: true,
49
51
  horizontalClass: CLASS_SCROLLBAR_HORIZONTAL,
50
52
  dragClass: CLASS_SCROLLBAR_DRAG,
53
+ hide: false,
51
54
  },
52
55
  slidesPerView: 1.2,
53
56
  a11y: {
@@ -83,6 +86,7 @@ export default class Carousel {
83
86
  viewport!: HTMLElement;
84
87
  track!: HTMLElement;
85
88
  instance!: Swiper;
89
+ carouselId?: string;
86
90
 
87
91
  constructor(element: HTMLElement, config?: Partial<SwiperOptions>) {
88
92
  this.element = element;
@@ -103,7 +107,6 @@ export default class Carousel {
103
107
 
104
108
  (this.element as any).ODS_Carousel = this;
105
109
 
106
- // Defer initialization to ensure DOM is ready
107
110
  requestAnimationFrame(() => {
108
111
  this.init();
109
112
  });
@@ -119,18 +122,110 @@ export default class Carousel {
119
122
 
120
123
  this.instance = new Swiper(this.viewport, {
121
124
  ...this.config,
125
+ enabled: false,
122
126
  modules: [Navigation, Pagination, Scrollbar, A11y, Keyboard],
123
127
  on: {
124
128
  slideChange: this.handleSlideChange,
129
+ slideChangeTransitionEnd: () => {
130
+ this.updateExternalControlsState();
131
+ },
125
132
  },
126
133
  });
134
+
135
+ this.updateCarouselEnabledState();
136
+
137
+ if (this.element.classList.contains(CLASS_BLEED_RIGHT)) {
138
+ this.adjustConfigForBleedRight();
139
+ this.fixBleedRightScrollbar();
140
+ }
141
+
142
+ if (this.instance && typeof this.instance.on === "function") {
143
+ this.instance.on("resize", () => {
144
+ this.updateCarouselEnabledState();
145
+ });
146
+ }
147
+
148
+ this.initExternalControls();
149
+ }
150
+
151
+ /**
152
+ * Fix scrollbar drag size and position for bleed-right carousels.
153
+ * Overrides Swiper's default scrollbar calculations to work correctly with bleed-right layouts.
154
+ */
155
+ fixBleedRightScrollbar() {
156
+ const updateScrollbar = () => {
157
+ const viewportWrapper = this.element.querySelector(
158
+ `.${CLASS_VIEWPORT_WRAPPER}`,
159
+ ) as HTMLElement;
160
+ const scrollbar = this.instance?.scrollbar;
161
+
162
+ if (!viewportWrapper || !scrollbar || !scrollbar.dragEl) {
163
+ return;
164
+ }
165
+
166
+ const slidesCount = this.instance.slides.length;
167
+ const slidesPerView = Number(this.instance.params.slidesPerView) || 1;
168
+
169
+ // Only show scrollbar when there are more slides than visible at once
170
+ if (slidesCount > slidesPerView) {
171
+ if (scrollbar.el) {
172
+ scrollbar.el.style.display = "";
173
+ }
174
+
175
+ const scrollbarWidth = scrollbar.el.offsetWidth;
176
+
177
+ // Calculate drag handle size based on the ratio of visible slides to total slides
178
+ // Example: 3 visible out of 5 total = 60% of scrollbar width
179
+ const visibleRatio = slidesPerView / slidesCount;
180
+ const dragSize = visibleRatio * scrollbarWidth;
181
+ // Ensure minimum 30px for usability
182
+ const finalDragSize = Math.max(dragSize, 30);
183
+
184
+ scrollbar.dragEl.style.width = `${finalDragSize}px`;
185
+ scrollbar.dragEl.style.display = "";
186
+
187
+ // Calculate scrollbar position based on carousel's actual scroll position
188
+ const maxScrollableSlides = slidesCount - slidesPerView;
189
+ const currentTranslate = Math.abs(this.instance.translate || 0);
190
+ const slideSize = this.instance.slidesSizesGrid?.[0] || 0;
191
+
192
+ // Determine how far we've scrolled as a ratio (0 = start, 1 = end)
193
+ const maxTranslateValue = maxScrollableSlides * slideSize;
194
+ const scrollRatio =
195
+ maxTranslateValue > 0
196
+ ? Math.min(currentTranslate / maxTranslateValue, 1)
197
+ : 0;
198
+
199
+ // Position scrollbar drag handle proportionally
200
+ const maxDragTranslate = scrollbarWidth - finalDragSize;
201
+ const dragTranslateX = scrollRatio * maxDragTranslate;
202
+
203
+ scrollbar.dragEl.style.transform = `translate3d(${dragTranslateX}px, 0, 0)`;
204
+ } else {
205
+ // Hide scrollbar when all slides are visible (no scrolling needed)
206
+ if (scrollbar.el) {
207
+ scrollbar.el.style.display = "none";
208
+ }
209
+ }
210
+ };
211
+
212
+ // Initial update (double requestAnimationFrame ensures DOM is fully ready)
213
+ requestAnimationFrame(() => {
214
+ requestAnimationFrame(updateScrollbar);
215
+ });
216
+
217
+ // Keep scrollbar in sync with carousel state changes
218
+ this.instance.on("progress", updateScrollbar);
219
+ this.instance.on("slideChange", updateScrollbar);
220
+ this.instance.on("resize", updateScrollbar);
221
+ this.instance.on("update", updateScrollbar);
222
+ this.instance.on("setTranslate", updateScrollbar);
127
223
  }
128
224
 
129
225
  getElements() {
130
226
  this.viewport = this.element.querySelector(SELECTOR_VIEWPORT)!;
131
227
  this.track = this.viewport.querySelector(SELECTOR_TRACK)!;
132
228
 
133
- // Ensure pagination container has proper role
134
229
  const paginationEl = this.element.querySelector(
135
230
  SELECTOR_DOTS,
136
231
  ) as HTMLElement | null;
@@ -148,7 +243,7 @@ export default class Carousel {
148
243
  ...((this.config.pagination ?? {}) as object),
149
244
  el: paginationEl,
150
245
  clickable: true,
151
- bulletClass: "carousel__pagination-item",
246
+ bulletClass: CLASS_DOT,
152
247
  bulletActiveClass: CLASS_ACTIVE,
153
248
  },
154
249
  };
@@ -173,9 +268,94 @@ export default class Carousel {
173
268
  }
174
269
 
175
270
  /**
176
- * Handles the slide change event on the carousel.
177
- * Updates the tooltip position for the active slide and hides tooltips for non-active slides.
178
- * Also updates accessibility attributes for pagination buttons.
271
+ * Enable or disable the carousel based on whether content requires scrolling.
272
+ * Carousel is enabled only when there are more slides than can fit in the current viewport.
273
+ */
274
+ private updateCarouselEnabledState(): void {
275
+ if (!this.instance || !this.instance.params) return;
276
+
277
+ const slidesCount = this.instance.slides.length;
278
+ const slidesPerView = Number(this.instance.params.slidesPerView) || 1;
279
+
280
+ if (slidesCount > slidesPerView) {
281
+ this.instance.enable();
282
+ } else {
283
+ this.instance.disable();
284
+ }
285
+ }
286
+
287
+ /**
288
+ * Calculate how much the carousel should extend beyond the container (bleed effect).
289
+ * On screens 2560px and wider, the bleed effect is disabled.
290
+ */
291
+ private calculateBleedAmount(container: HTMLElement): number {
292
+ const containerWidth = container.offsetWidth;
293
+ const halfViewportWidth = window.innerWidth / 2;
294
+ const halfContainerWidth = containerWidth / 2;
295
+ let bleedAmount = halfViewportWidth - halfContainerWidth;
296
+
297
+ if (window.innerWidth >= 2560) {
298
+ bleedAmount = 0;
299
+ }
300
+
301
+ return Math.max(bleedAmount, 0);
302
+ }
303
+
304
+ /**
305
+ * Apply the bleed offset to extend the carousel beyond the container edge.
306
+ * Only applies when content exceeds the visible area.
307
+ */
308
+ private applyBleedOffset(
309
+ viewportWrapper: HTMLElement,
310
+ bleedAmount: number,
311
+ ): void {
312
+ // Safety check: ensure instance and params are initialized
313
+ if (!this.instance || !this.instance.params) {
314
+ return;
315
+ }
316
+
317
+ const visibleWidth = viewportWrapper.clientWidth;
318
+ const totalWidth = this.track.scrollWidth;
319
+ const contentFitsWithoutScroll = totalWidth <= visibleWidth + 5;
320
+
321
+ if (bleedAmount > 0 && !contentFitsWithoutScroll) {
322
+ this.instance.params.slidesOffsetAfter = bleedAmount;
323
+ } else {
324
+ this.instance.params.slidesOffsetAfter = 0;
325
+ }
326
+
327
+ this.instance.update();
328
+ }
329
+
330
+ /**
331
+ * Configure bleed-right carousel to extend beyond the container edge.
332
+ * Calculates the exact offset needed for the carousel to reach the viewport edge
333
+ * while keeping the last slide aligned with the container edge when scrolled to the end.
334
+ */
335
+ adjustConfigForBleedRight() {
336
+ requestAnimationFrame(() => {
337
+ const container = this.element.closest(".container") as HTMLElement;
338
+ if (!container || !this.instance) return;
339
+
340
+ const viewportWrapper = this.element.querySelector(
341
+ `.${CLASS_VIEWPORT_WRAPPER}`,
342
+ ) as HTMLElement;
343
+ if (!viewportWrapper) return;
344
+
345
+ const bleedAmount = this.calculateBleedAmount(container);
346
+ this.applyBleedOffset(viewportWrapper, bleedAmount);
347
+
348
+ // Recalculate bleed on window resize
349
+ this.instance.on("resize", () => {
350
+ const newBleedAmount = this.calculateBleedAmount(container);
351
+ this.applyBleedOffset(viewportWrapper, newBleedAmount);
352
+ });
353
+ });
354
+ }
355
+
356
+ /**
357
+ * Handle carousel slide change events.
358
+ * Updates tooltip positions and accessibility states for the active slide.
179
359
  */
180
360
  handleSlideChange() {
181
361
  const activeSlide = this.track.querySelector(SELECTOR_ACTIVE);
@@ -190,11 +370,12 @@ export default class Carousel {
190
370
  if (nonActiveSlides.length > 0) {
191
371
  this.hideAllTooltips(nonActiveSlides);
192
372
  }
373
+
374
+ this.updateExternalControlsState();
193
375
  }
194
376
 
195
377
  /**
196
- * Updates the position of tooltips for the given element.
197
- * @param {HTMLElement} element - The element containing tooltip triggers.
378
+ * Update tooltip positions for elements within a slide.
198
379
  */
199
380
  updateTooltipPosition(element: HTMLElement) {
200
381
  const tooltipTriggers = element.querySelectorAll(
@@ -217,8 +398,7 @@ export default class Carousel {
217
398
  }
218
399
 
219
400
  /**
220
- * Hides all tooltips for the given elements.
221
- * @param {NodeListOf<HTMLElement>} elements - The elements containing tooltip triggers.
401
+ * Hide all tooltips for non-active slides.
222
402
  */
223
403
  hideAllTooltips(elements: NodeListOf<Element>) {
224
404
  elements.forEach((element) => {
@@ -243,7 +423,178 @@ export default class Carousel {
243
423
  });
244
424
  }
245
425
 
426
+ /**
427
+ * Initialize external navigation controls that reference this carousel via data attributes.
428
+ * Supports prev/next buttons placed anywhere in the DOM.
429
+ */
430
+ initExternalControls() {
431
+ const carouselId = this.element.dataset.carouselId || this.element.id;
432
+
433
+ if (!carouselId) {
434
+ return;
435
+ }
436
+
437
+ this.carouselId = carouselId;
438
+
439
+ const controlElements = document.querySelectorAll(
440
+ `[data-carousel-controls="${carouselId}"]`,
441
+ );
442
+
443
+ controlElements.forEach((control) => {
444
+ const htmlControl = control as HTMLElement;
445
+
446
+ if (htmlControl.hasAttribute("data-carousel-initialized")) {
447
+ return;
448
+ }
449
+
450
+ if ((htmlControl as any)._carouselClickHandler) {
451
+ htmlControl.removeEventListener(
452
+ "click",
453
+ (htmlControl as any)._carouselClickHandler,
454
+ );
455
+ }
456
+
457
+ const action = htmlControl.dataset.carouselAction;
458
+
459
+ const clickHandler = (e: Event) => {
460
+ e.preventDefault();
461
+ if (htmlControl.hasAttribute("disabled")) {
462
+ return;
463
+ }
464
+ if (action === "next") {
465
+ this.slideNext();
466
+ } else if (action === "prev") {
467
+ this.slidePrev();
468
+ }
469
+ };
470
+
471
+ if (action === "next" || action === "prev") {
472
+ htmlControl.addEventListener("click", clickHandler);
473
+
474
+ htmlControl.setAttribute(
475
+ "aria-label",
476
+ action === "next"
477
+ ? this.config.a11y?.nextSlideMessage || "Nasledujúci snímok"
478
+ : this.config.a11y?.prevSlideMessage || "Predchádzajúci snímok",
479
+ );
480
+ htmlControl.setAttribute("type", "button");
481
+
482
+ (htmlControl as any)._carouselClickHandler = clickHandler;
483
+ }
484
+
485
+ htmlControl.setAttribute("data-carousel-initialized", "true");
486
+ });
487
+
488
+ this.updateExternalControlsState();
489
+ }
490
+
491
+ /**
492
+ * Update the disabled state of external navigation controls.
493
+ * Controls are disabled at the start/end of the carousel based on slide position.
494
+ */
495
+ updateExternalControlsState() {
496
+ if (!this.carouselId || !this.instance) {
497
+ return;
498
+ }
499
+
500
+ const isAtStart = this.instance.isBeginning;
501
+ const slidesCount = this.instance.slides.length;
502
+ const slidesPerView = this.instance.params.slidesPerView as number;
503
+ const activeIndex = this.instance.activeIndex;
504
+
505
+ // Check if we've reached the end (when there are no more slides to scroll to)
506
+ const isAtEnd = activeIndex + slidesPerView >= slidesCount;
507
+
508
+ const prevControls = document.querySelectorAll(
509
+ `[data-carousel-controls="${this.carouselId}"][data-carousel-action="prev"]`,
510
+ );
511
+
512
+ const nextControls = document.querySelectorAll(
513
+ `[data-carousel-controls="${this.carouselId}"][data-carousel-action="next"]`,
514
+ );
515
+
516
+ prevControls.forEach((control) => {
517
+ const htmlControl = control as HTMLElement;
518
+ if (isAtStart) {
519
+ htmlControl.setAttribute("disabled", "true");
520
+ htmlControl.setAttribute("aria-disabled", "true");
521
+ htmlControl.style.cursor = "not-allowed";
522
+ } else {
523
+ htmlControl.removeAttribute("disabled");
524
+ htmlControl.setAttribute("aria-disabled", "false");
525
+ htmlControl.style.cursor = "pointer";
526
+ }
527
+ });
528
+
529
+ nextControls.forEach((control) => {
530
+ const htmlControl = control as HTMLElement;
531
+ if (isAtEnd) {
532
+ htmlControl.setAttribute("disabled", "true");
533
+ htmlControl.setAttribute("aria-disabled", "true");
534
+ htmlControl.style.cursor = "not-allowed";
535
+ } else {
536
+ htmlControl.removeAttribute("disabled");
537
+ htmlControl.setAttribute("aria-disabled", "false");
538
+ htmlControl.style.cursor = "pointer";
539
+ }
540
+ });
541
+ }
542
+
543
+ /**
544
+ * Navigate to the next slide.
545
+ */
546
+ slideNext() {
547
+ if (this.instance) {
548
+ this.instance.slideNext();
549
+ }
550
+ }
551
+
552
+ /**
553
+ * Navigate to the previous slide.
554
+ */
555
+ slidePrev() {
556
+ if (this.instance) {
557
+ this.instance.slidePrev();
558
+ }
559
+ }
560
+
561
+ /**
562
+ * Get the current active slide index.
563
+ */
564
+ getActiveIndex(): number {
565
+ return this.instance ? this.instance.activeIndex : 0;
566
+ }
567
+
568
+ /**
569
+ * Register a callback for slide change events.
570
+ */
571
+ onSlideChange(callback: (activeIndex: number) => void) {
572
+ if (this.instance) {
573
+ this.instance.on("slideChange", () => {
574
+ callback(this.instance.activeIndex);
575
+ });
576
+ }
577
+ }
578
+
246
579
  destroy() {
580
+ // Clean up external controls
581
+ if (this.carouselId) {
582
+ const controlElements = document.querySelectorAll(
583
+ `[data-carousel-controls="${this.carouselId}"]`,
584
+ );
585
+ controlElements.forEach((control) => {
586
+ const htmlControl = control as HTMLElement;
587
+ if ((htmlControl as any)._carouselClickHandler) {
588
+ htmlControl.removeEventListener(
589
+ "click",
590
+ (htmlControl as any)._carouselClickHandler,
591
+ );
592
+ delete (htmlControl as any)._carouselClickHandler;
593
+ }
594
+ htmlControl.removeAttribute("data-carousel-initialized");
595
+ });
596
+ }
597
+
247
598
  if (this.instance) {
248
599
  this.instance.destroy();
249
600
  }
@@ -258,4 +609,14 @@ export default class Carousel {
258
609
  static getInstance(el: HTMLElement): Carousel | null {
259
610
  return el && (el as any).ODS_Carousel ? (el as any).ODS_Carousel : null;
260
611
  }
612
+
613
+ /**
614
+ * Find a carousel instance by its ID or data-carousel-id attribute.
615
+ */
616
+ static getInstanceById(carouselId: string): Carousel | null {
617
+ const element =
618
+ document.querySelector(`[data-carousel-id="${carouselId}"]`) ||
619
+ document.getElementById(carouselId);
620
+ return element ? this.getInstance(element as HTMLElement) : null;
621
+ }
261
622
  }
@@ -23,10 +23,12 @@ import { useStatic } from "@/utils/hooks";
23
23
  interface CarouselProps extends HTMLAttributes<HTMLDivElement> {
24
24
  /** Swiper.js (https://swiperjs.com/) options object */
25
25
  swiperOptions?: Record<string, any>;
26
- /** Inverse colors */
27
- colorScheme?: "light" | "dark";
28
26
  /** Carousel items */
29
27
  items: ReactNode[];
28
+ /** Always show scrollbar and hide dots */
29
+ showScrollbar?: boolean;
30
+ /** Make carousel bleed to the right edge of screen while keeping left aligned with container */
31
+ bleedRight?: boolean;
30
32
  className?: string;
31
33
  }
32
34
 
@@ -34,7 +36,8 @@ const Carousel: React.FC<CarouselProps> = ({
34
36
  className,
35
37
  swiperOptions,
36
38
  items,
37
- colorScheme,
39
+ showScrollbar = false,
40
+ bleedRight = false,
38
41
  ...other
39
42
  }) => {
40
43
  const [carouselRef] = useStatic(CarouselStatic);
@@ -44,23 +47,33 @@ const Carousel: React.FC<CarouselProps> = ({
44
47
  ));
45
48
 
46
49
  const classes = cx(CLASS_ROOT, className, {
47
- "is-dark": colorScheme === "dark",
48
- "is-light": colorScheme === "light",
50
+ [`${CLASS_ROOT}--scrollbar`]: showScrollbar,
51
+ [`${CLASS_ROOT}--bleed-right`]: bleedRight,
49
52
  });
50
53
 
51
54
  const elementClasses = {
52
55
  prev: cx(CLASS_PREV),
53
56
  next: cx(CLASS_NEXT),
54
- dots: cx(CLASS_DOTS, "show-md"),
57
+ dots: cx(CLASS_DOTS, showScrollbar ? "hide" : "show-md"),
55
58
  };
56
59
 
60
+ // Only override pagination when showScrollbar is true
61
+ const customSwiperOptions = showScrollbar
62
+ ? {
63
+ pagination: {
64
+ enabled: false,
65
+ },
66
+ ...swiperOptions,
67
+ }
68
+ : swiperOptions;
69
+
57
70
  return (
58
71
  <div
59
72
  className={classes}
60
73
  ref={carouselRef}
61
74
  data-carousel
62
- {...(swiperOptions
63
- ? { "data-swiper-options": JSON.stringify(swiperOptions) }
75
+ {...(showScrollbar || swiperOptions
76
+ ? { "data-swiper-options": JSON.stringify(customSwiperOptions) }
64
77
  : {})}
65
78
  {...other}
66
79
  >
@@ -68,25 +81,29 @@ const Carousel: React.FC<CarouselProps> = ({
68
81
  <div className={CLASS_VIEWPORT}>
69
82
  <div className={CLASS_TRACK}>{carouselItems}</div>
70
83
  </div>
71
- <button
72
- type="button"
73
- aria-label="Naspäť"
74
- className={elementClasses.prev}
75
- >
76
- <Icon size="medium" name="chevron-left" />
77
- </button>
78
- <button
79
- type="button"
80
- aria-label="Ďalej"
81
- className={elementClasses.next}
82
- >
83
- <Icon size="medium" name="chevron-right" />
84
- </button>
84
+ {showScrollbar ? null : (
85
+ <>
86
+ <button
87
+ type="button"
88
+ aria-label="Naspäť"
89
+ className={elementClasses.prev}
90
+ >
91
+ <Icon size="medium" name="chevron-left" />
92
+ </button>
93
+ <button
94
+ type="button"
95
+ aria-label="Ďalej"
96
+ className={elementClasses.next}
97
+ >
98
+ <Icon size="medium" name="chevron-right" />
99
+ </button>
100
+ </>
101
+ )}
85
102
  </div>
86
103
 
87
- <div role="tablist" className={elementClasses.dots} />
104
+ {!showScrollbar && <div role="tablist" className={elementClasses.dots} />}
88
105
 
89
- <div className={cx(CLASS_SCROLLBAR, "hide-md")}>
106
+ <div className={cx(CLASS_SCROLLBAR, !showScrollbar && "hide-md")}>
90
107
  <div className={CLASS_SCROLLBAR_DRAG} />
91
108
  </div>
92
109
  </div>
@@ -14,6 +14,8 @@ export const CLASS_SCROLLBAR = `${CLASS_ROOT}__scrollbar`;
14
14
  export const CLASS_SCROLLBAR_HORIZONTAL = `${CLASS_ROOT}__scrollbar-horizontal`;
15
15
  export const CLASS_SCROLLBAR_DRAG = `${CLASS_ROOT}__scrollbar-drag`;
16
16
  export const CLASS_ACTIVE = "is-active";
17
+ export const CLASS_SCROLLBAR_VARIANT = `${CLASS_ROOT}--scrollbar`;
18
+ export const CLASS_BLEED_RIGHT = `${CLASS_ROOT}--bleed-right`;
17
19
 
18
20
  export const SELECTOR_VIEWPORT = `.${CLASS_VIEWPORT}`;
19
21
  export const SELECTOR_TRACK = `.${CLASS_TRACK}`;
@@ -25,7 +25,6 @@ $breakout-buttons-breakpoints: (
25
25
  );
26
26
 
27
27
  $viewport-horizontal-spacing: (
28
- "default": -#{space.get("small")},
29
28
  // button dimension + space - slide padding,
30
- "md": convert.to-rem(50px),
29
+ "md": convert.to-rem(50px)
31
30
  );
@@ -18,7 +18,7 @@
18
18
  flex-direction: column;
19
19
  margin: 0 auto;
20
20
  position: relative;
21
- margin-bottom: config.$space;
21
+ margin-bottom: space.get("large");
22
22
  }
23
23
 
24
24
  @mixin viewport-wrapper {
@@ -43,6 +43,11 @@
43
43
  }
44
44
  }
45
45
 
46
+ .carousel--scrollbar & {
47
+ margin-left: 0;
48
+ margin-right: 0;
49
+ }
50
+
46
51
  @include breakpoint.get("sm", "down") {
47
52
  padding-bottom: math.div(config.$space, 2);
48
53
  }
@@ -88,15 +93,19 @@
88
93
  margin-right: -#{convert.to-rem(60px)};
89
94
  }
90
95
  }
96
+
97
+ &.carousel--bleed-right {
98
+ margin-left: 0;
99
+ margin-right: 0;
100
+ }
91
101
  }
92
102
 
93
103
  @mixin slide-base {
94
104
  display: flex;
95
105
  flex-direction: column;
96
106
  max-width: 100%;
97
- // width: auto !important;
98
107
  flex: 0 0 auto;
99
- padding: 0 math.div(config.$space, 2);
108
+ padding: 0 convert.to-rem(20px) 0 0;
100
109
  user-select: none;
101
110
 
102
111
  > * {
@@ -193,4 +202,34 @@
193
202
  opacity: 1;
194
203
  background-color: var(--color-fill-contrast);
195
204
  border-radius: 99px;
205
+ height: convert.to-rem(6px);
206
+ }
207
+
208
+ @mixin scrollbar-variant {
209
+ margin-left: 0 !important;
210
+ margin-right: 0 !important;
211
+ }
212
+
213
+ @mixin bleed-right-variant {
214
+ // Allow overflow on the left side at the carousel container level
215
+ overflow: visible;
216
+
217
+ .carousel__viewport-wrapper {
218
+ // Allow overflow from viewport
219
+ overflow: visible;
220
+ }
221
+
222
+ .carousel__viewport {
223
+ // Extend the viewport to the right edge of the screen
224
+ width: calc(100% + 50vw - 50%);
225
+ margin-right: 0;
226
+ margin-left: 0 !important; // Don't add left margin - let content flow naturally
227
+ overflow: visible !important; // Allow content to overflow on left side
228
+ overflow-y: hidden; // Still hide vertical overflow
229
+
230
+ // On very large screens (above 2K), stop the bleeding effect entirely
231
+ @media (min-width: 2560px) {
232
+ width: 100%;
233
+ }
234
+ }
196
235
  }
@@ -5,6 +5,14 @@
5
5
  .carousel {
6
6
  @include mixins.base;
7
7
 
8
+ &--scrollbar {
9
+ @include mixins.scrollbar-variant;
10
+ }
11
+
12
+ &--bleed-right {
13
+ @include mixins.bleed-right-variant;
14
+ }
15
+
8
16
  .container > & {
9
17
  @include mixins.base-breakout-buttons;
10
18
  }