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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (572) hide show
  1. package/build/components/index.css +1 -2
  2. package/build/components/index.css.map +1 -1
  3. package/build/components/index.js +7 -7
  4. package/build/components/index.js.map +1 -1
  5. package/build/components/tsconfig.tsbuildinfo +1 -1
  6. package/build/components/types/index.d.ts +1508 -0
  7. package/build/components/types/src/components/Accordion/Accordion.d.ts +2 -0
  8. package/build/components/types/src/components/Accordion/AccordionHeader.d.ts +2 -1
  9. package/build/components/types/src/components/Accordion/AccordionItem.d.ts +2 -1
  10. package/build/components/types/src/components/AnchorNavigation/AnchorNavigation.d.ts +1 -1
  11. package/build/components/types/src/components/AnchorNavigation/AnchorNavigation.static.d.ts +19 -17
  12. package/build/components/types/src/components/AnchorNavigation/index.d.ts +0 -1
  13. package/build/components/types/src/components/BlockAction/index.d.ts +0 -1
  14. package/build/components/types/src/components/BodyBanner/index.d.ts +0 -1
  15. package/build/components/types/src/components/Button/Button.d.ts +1 -0
  16. package/build/components/types/src/components/Button/index.d.ts +0 -1
  17. package/build/components/types/src/components/Card/Card.d.ts +2 -4
  18. package/build/components/types/src/components/Card/CardSection.d.ts +2 -2
  19. package/build/components/types/src/components/Carousel/Carousel.d.ts +4 -0
  20. package/build/components/types/src/components/Carousel/Carousel.static.d.ts +1 -0
  21. package/build/components/types/src/components/Carousel/constants.d.ts +2 -0
  22. package/build/components/types/src/components/CarouselHero/CarouselHero.d.ts +18 -0
  23. package/build/components/types/src/components/CarouselHero/CarouselHero.static.d.ts +47 -0
  24. package/build/components/types/src/components/CarouselHero/CarouselHeroItem.d.ts +8 -0
  25. package/build/components/types/src/components/CarouselHero/constants.d.ts +33 -0
  26. package/build/components/types/src/components/CarouselHero/index.d.ts +2 -0
  27. package/build/components/types/src/components/Cover/index.d.ts +1 -2
  28. package/build/components/types/src/components/Divider/Divider.d.ts +0 -4
  29. package/build/components/types/src/components/Expander/Expander.d.ts +2 -2
  30. package/build/components/types/src/components/Footer/Footer.d.ts +1 -5
  31. package/build/components/types/src/components/Footer/constants.d.ts +9 -0
  32. package/build/components/types/src/components/Forms/Select/index.d.ts +0 -1
  33. package/build/components/types/src/components/Icon/iconSearchTags.d.ts +253 -251
  34. package/build/components/types/src/components/IconList/index.d.ts +2 -3
  35. package/build/components/types/src/components/List/index.d.ts +2 -3
  36. package/build/components/types/src/components/Megamenu/MegaMenuIcon.d.ts +13 -0
  37. package/build/components/types/src/components/Megamenu/Megamenu.d.ts +1 -9
  38. package/build/components/types/src/components/Megamenu/Megamenu.static.d.ts +47 -0
  39. package/build/components/types/src/components/Megamenu/MegamenuBlog.d.ts +1 -0
  40. package/build/components/types/src/components/Megamenu/constants.d.ts +48 -0
  41. package/build/components/types/src/components/Megamenu/index.d.ts +2 -3
  42. package/build/components/types/src/components/Megamenu/static.d.ts +22 -0
  43. package/build/components/types/src/components/Modal/Modal.d.ts +6 -0
  44. package/build/components/types/src/components/Modal/ModalBody.d.ts +4 -3
  45. package/build/components/types/src/components/Modal/ModalProductBody.d.ts +10 -0
  46. package/build/components/types/src/components/Modal/ModalProductFooter.d.ts +10 -0
  47. package/build/components/types/src/components/Modal/index.d.ts +2 -0
  48. package/build/components/types/src/components/Pagination/Pagination.d.ts +2 -3
  49. package/build/components/types/src/components/Pill/Pill.d.ts +4 -1
  50. package/build/components/types/src/components/Preview/PreviewGenerator.d.ts +1 -1
  51. package/build/components/types/src/components/PromoBanner/PromoBanner.d.ts +9 -5
  52. package/build/components/types/src/components/PromotionCard/PromotionCard.d.ts +2 -2
  53. package/build/components/types/src/components/Section/Section.d.ts +4 -1
  54. package/build/components/types/src/components/Tag/Tag.d.ts +9 -2
  55. package/build/components/types/src/components/index.d.ts +3 -5
  56. package/build/components/types/src/scripts/index.d.ts +10 -0
  57. package/build/lib/after-components.css +1 -1
  58. package/build/lib/after-components.css.map +1 -1
  59. package/build/lib/before-components.css +1 -1
  60. package/build/lib/before-components.css.map +1 -1
  61. package/build/lib/components.css +1 -1
  62. package/build/lib/components.css.map +1 -1
  63. package/build/lib/footer.css +2 -0
  64. package/build/lib/footer.css.map +1 -0
  65. package/build/lib/megamenu.css +2 -0
  66. package/build/lib/megamenu.css.map +1 -0
  67. package/build/lib/megamenu.js +2 -0
  68. package/build/lib/megamenu.js.map +1 -0
  69. package/build/lib/scripts.css +1 -1
  70. package/build/lib/scripts.css.map +1 -1
  71. package/build/lib/scripts.js +5 -5
  72. package/build/lib/scripts.js.map +1 -1
  73. package/build/lib/style.css +1 -1
  74. package/build/lib/style.css.map +1 -1
  75. package/build/lib/tsconfig.tsbuildinfo +1 -1
  76. package/build/logo-line.svg +5 -0
  77. package/build/sprite.svg +1 -1
  78. package/package.json +35 -29
  79. package/src/assets/icons/ai.svg +6 -0
  80. package/src/assets/icons/article.svg +7 -0
  81. package/src/assets/icons/pictogram-activation--dark.svg +10 -11
  82. package/src/assets/icons/pictogram-activation-free--dark.svg +4 -5
  83. package/src/assets/icons/pictogram-activation-free.svg +4 -5
  84. package/src/assets/icons/pictogram-activation.svg +10 -11
  85. package/src/assets/icons/pictogram-archive--dark.svg +3 -4
  86. package/src/assets/icons/pictogram-archive.svg +3 -4
  87. package/src/assets/icons/pictogram-calling-minutes--dark.svg +3 -4
  88. package/src/assets/icons/pictogram-calling-minutes.svg +3 -4
  89. package/src/assets/icons/pictogram-canal-plus--dark.svg +3 -4
  90. package/src/assets/icons/pictogram-canal-plus.svg +3 -4
  91. package/src/assets/icons/pictogram-competition-tickets--dark.svg +11 -12
  92. package/src/assets/icons/pictogram-competition-tickets.svg +11 -12
  93. package/src/assets/icons/pictogram-device-discount--dark.svg +7 -6
  94. package/src/assets/icons/pictogram-device-discount.svg +5 -6
  95. package/src/assets/icons/pictogram-discount-general--dark.svg +5 -6
  96. package/src/assets/icons/pictogram-discount-general.svg +5 -6
  97. package/src/assets/icons/pictogram-discount-price--dark.svg +5 -6
  98. package/src/assets/icons/pictogram-discount-price.svg +5 -6
  99. package/src/assets/icons/pictogram-extra-data--dark.svg +6 -7
  100. package/src/assets/icons/pictogram-extra-data.svg +6 -7
  101. package/src/assets/icons/pictogram-free-payment--dark.svg +5 -6
  102. package/src/assets/icons/pictogram-free-payment.svg +3 -6
  103. package/src/assets/icons/pictogram-gift--dark.svg +12 -13
  104. package/src/assets/icons/pictogram-gift-one-benefit--dark.svg +7 -8
  105. package/src/assets/icons/pictogram-gift-one-benefit.svg +7 -8
  106. package/src/assets/icons/pictogram-gift-two-benefits--dark.svg +8 -9
  107. package/src/assets/icons/pictogram-gift-two-benefits.svg +8 -9
  108. package/src/assets/icons/pictogram-gift.svg +3 -4
  109. package/src/assets/icons/pictogram-hbo-max--dark.svg +5 -6
  110. package/src/assets/icons/pictogram-hbo-max.svg +5 -6
  111. package/src/assets/icons/pictogram-infinite-sms--dark.svg +3 -4
  112. package/src/assets/icons/pictogram-infinite-sms.svg +3 -4
  113. package/src/assets/icons/pictogram-installation--dark.svg +4 -5
  114. package/src/assets/icons/pictogram-installation-free--dark.svg +4 -5
  115. package/src/assets/icons/pictogram-installation-free.svg +4 -5
  116. package/src/assets/icons/pictogram-installation.svg +4 -5
  117. package/src/assets/icons/pictogram-max--dark.svg +3 -4
  118. package/src/assets/icons/pictogram-max-canal-plus--dark.svg +5 -6
  119. package/src/assets/icons/pictogram-max-canal-plus.svg +5 -6
  120. package/src/assets/icons/pictogram-max.svg +3 -4
  121. package/src/assets/icons/pictogram-moj-orange-app--dark.svg +3 -4
  122. package/src/assets/icons/pictogram-moj-orange-app.svg +3 -4
  123. package/src/assets/icons/pictogram-movie-storage--dark.svg +4 -5
  124. package/src/assets/icons/pictogram-movie-storage.svg +4 -5
  125. package/src/assets/icons/pictogram-online-protection--dark.svg +3 -4
  126. package/src/assets/icons/pictogram-online-protection.svg +3 -4
  127. package/src/assets/icons/pictogram-random-damage--dark.svg +4 -8
  128. package/src/assets/icons/pictogram-random-damage.svg +4 -8
  129. package/src/assets/icons/pictogram-recycling--dark.svg +7 -8
  130. package/src/assets/icons/pictogram-recycling.svg +14 -15
  131. package/src/assets/icons/pictogram-repair--dark.svg +12 -13
  132. package/src/assets/icons/pictogram-repair.svg +12 -13
  133. package/src/assets/icons/pictogram-roaming--dark.svg +3 -4
  134. package/src/assets/icons/pictogram-roaming-discount--dark.svg +3 -16
  135. package/src/assets/icons/pictogram-roaming-discount.svg +15 -16
  136. package/src/assets/icons/pictogram-roaming.svg +3 -4
  137. package/src/assets/icons/pictogram-skylink--dark.svg +10 -11
  138. package/src/assets/icons/pictogram-skylink-live-tv--dark.svg +7 -8
  139. package/src/assets/icons/pictogram-skylink-live-tv.svg +7 -8
  140. package/src/assets/icons/pictogram-skylink.svg +10 -11
  141. package/src/assets/icons/pictogram-sms--dark.svg +5 -6
  142. package/src/assets/icons/pictogram-sms.svg +5 -6
  143. package/src/assets/icons/pictogram-theft--dark.svg +3 -7
  144. package/src/assets/icons/pictogram-theft.svg +3 -7
  145. package/src/assets/icons/pictogram-three-devices--dark.svg +4 -8
  146. package/src/assets/icons/pictogram-three-devices.svg +4 -8
  147. package/src/assets/icons/pictogram-trust--dark.svg +3 -4
  148. package/src/assets/icons/pictogram-trust.svg +3 -4
  149. package/src/assets/icons/pictogram-water-damage--dark.svg +5 -6
  150. package/src/assets/icons/pictogram-water-damage.svg +5 -6
  151. package/src/components/Accordion/Accordion.tsx +4 -0
  152. package/src/components/Accordion/AccordionHeader.tsx +9 -2
  153. package/src/components/Accordion/AccordionItem.tsx +5 -2
  154. package/src/components/Accordion/styles/config.scss +4 -4
  155. package/src/components/Accordion/styles/mixins.scss +9 -3
  156. package/src/components/Accordion/styles/style.scss +4 -0
  157. package/src/components/Accordion/tests/Accordion.unit.test.js +11 -0
  158. package/src/components/AnchorNavigation/AnchorNavigation.static.ts +253 -73
  159. package/src/components/AnchorNavigation/AnchorNavigation.tsx +20 -16
  160. package/src/components/AnchorNavigation/index.tsx +0 -2
  161. package/src/components/AnchorNavigation/styles/mixins.scss +14 -27
  162. package/src/components/AnchorNavigation/tests/AnchorNavigation.conformance.test.js +67 -0
  163. package/src/components/AnchorNavigation/tests/AnchorNavigation.unit.test.js +163 -0
  164. package/src/components/Bar/styles/config.scss +4 -5
  165. package/src/components/BlockAction/index.tsx +0 -2
  166. package/src/components/BlockAction/styles/mixins.scss +0 -6
  167. package/src/components/BodyBanner/index.tsx +0 -2
  168. package/src/components/Breadcrumbs/styles/mixins.scss +2 -4
  169. package/src/components/Button/Button.tsx +2 -2
  170. package/src/components/Button/index.tsx +0 -2
  171. package/src/components/Button/styles/config.scss +1 -1
  172. package/src/components/Button/styles/mixins.scss +5 -0
  173. package/src/components/Button/styles/style.scss +4 -0
  174. package/src/components/Card/Card.tsx +20 -8
  175. package/src/components/Card/CardSection.tsx +7 -11
  176. package/src/components/Card/styles/config.scss +1 -1
  177. package/src/components/Card/styles/mixins.scss +8 -6
  178. package/src/components/Card/styles/style.scss +4 -0
  179. package/src/components/Card/tests/Card.unit.test.js +45 -11
  180. package/src/components/Card/tests/CardSection.unit.test.js +36 -3
  181. package/src/components/Carousel/Carousel.static.ts +67 -1
  182. package/src/components/Carousel/Carousel.tsx +41 -19
  183. package/src/components/Carousel/constants.ts +2 -0
  184. package/src/components/Carousel/styles/config.scss +1 -2
  185. package/src/components/Carousel/styles/mixins.scss +35 -2
  186. package/src/components/Carousel/styles/style.scss +8 -0
  187. package/src/components/CarouselHero/CarouselHero.static.ts +528 -0
  188. package/src/components/CarouselHero/CarouselHero.tsx +147 -0
  189. package/src/components/CarouselHero/CarouselHeroItem.tsx +40 -0
  190. package/src/components/CarouselHero/constants.ts +36 -0
  191. package/src/components/CarouselHero/index.ts +2 -0
  192. package/src/components/CarouselHero/styles/config.scss +54 -0
  193. package/src/components/CarouselHero/styles/mixins.scss +278 -0
  194. package/src/components/CarouselHero/styles/style.scss +63 -0
  195. package/src/components/CarouselHero/tests/CarouselHero.conformance.test.js +130 -0
  196. package/src/components/CarouselHero/tests/CarouselHero.unit.test.js +346 -0
  197. package/src/components/CarouselHero/tests/CarouselHeroItem.conformance.test.js +135 -0
  198. package/src/components/CarouselHero/tests/CarouselHeroItem.unit.test.js +143 -0
  199. package/src/components/CarouselPromotions/styles/mixins.scss +10 -3
  200. package/src/components/CartTable/FooterPriceColumn.tsx +5 -3
  201. package/src/components/CartTable/Price.tsx +1 -1
  202. package/src/components/Controls/styles/config.scss +2 -2
  203. package/src/components/Controls/tests/Controls.test.js +0 -9
  204. package/src/components/Cover/index.ts +1 -2
  205. package/src/components/Divider/Divider.tsx +2 -16
  206. package/src/components/Divider/styles/config.scss +0 -17
  207. package/src/components/Divider/styles/mixins.scss +8 -10
  208. package/src/components/Divider/styles/style.scss +2 -16
  209. package/src/components/Divider/tests/Divider.conformance.test.js +1 -1
  210. package/src/components/Divider/tests/Divider.unit.test.js +0 -17
  211. package/src/components/Dropdown/styles/mixins.scss +1 -1
  212. package/src/components/Expander/Expander.tsx +4 -2
  213. package/src/components/Expander/styles/style.scss +7 -0
  214. package/src/components/Footer/Footer.tsx +86 -70
  215. package/src/components/Footer/constants.ts +10 -0
  216. package/src/components/Footer/styles/config.scss +1 -0
  217. package/src/components/Footer/styles/mixins.scss +172 -0
  218. package/src/components/Footer/styles/style.scss +48 -0
  219. package/src/components/Footer/tests/Footer.conformance.test.js +133 -8
  220. package/src/components/Footer/tests/Footer.unit.test.js +71 -6
  221. package/src/components/Forms/DatePicker/styles/style.scss +1 -1
  222. package/src/components/Forms/File/styles/mixins.scss +1 -1
  223. package/src/components/Forms/InputStepper/styles/style.scss +0 -66
  224. package/src/components/Forms/RangeSlider/styles/mixins.scss +1 -1
  225. package/src/components/Forms/Select/index.tsx +0 -2
  226. package/src/components/Forms/TextInput/styles/config.scss +1 -1
  227. package/src/components/Forms/styles/config.scss +3 -3
  228. package/src/components/Icon/iconSearchTags.ts +434 -432
  229. package/src/components/Icon/styles/style.scss +15 -0
  230. package/src/components/Icon/tests/Pictogram.unit.test.js +38 -0
  231. package/src/components/IconList/index.ts +2 -3
  232. package/src/components/Link/styles/style.scss +6 -2
  233. package/src/components/Link/tests/Link.conformance.test.js +5 -20
  234. package/src/components/Link/tests/Link.unit.test.js +1 -10
  235. package/src/components/List/index.ts +2 -3
  236. package/src/components/Loader/Loader.tsx +2 -10
  237. package/src/components/Loader/styles/mixins.scss +1 -1
  238. package/src/components/Loader/styles/style.scss +6 -4
  239. package/src/components/Megamenu/MegaMenuIcon.tsx +48 -0
  240. package/src/components/Megamenu/Megamenu.static.ts +600 -0
  241. package/src/components/Megamenu/Megamenu.tsx +799 -356
  242. package/src/components/Megamenu/MegamenuBlog.tsx +309 -0
  243. package/src/components/Megamenu/constants.ts +56 -0
  244. package/src/components/Megamenu/index.ts +2 -5
  245. package/src/components/Megamenu/static.ts +73 -0
  246. package/src/components/Megamenu/styles/config.scss +2 -13
  247. package/src/components/Megamenu/styles/mixins.scss +647 -208
  248. package/src/components/Megamenu/styles/style.scss +173 -61
  249. package/src/components/Modal/Modal.tsx +17 -2
  250. package/src/components/Modal/ModalBody.tsx +29 -14
  251. package/src/components/Modal/ModalProductBody.tsx +52 -0
  252. package/src/components/Modal/ModalProductFooter.tsx +38 -0
  253. package/src/components/Modal/index.ts +2 -0
  254. package/src/components/Modal/styles/config.scss +7 -0
  255. package/src/components/Modal/styles/mixins.scss +121 -14
  256. package/src/components/Modal/styles/style.scss +28 -0
  257. package/src/components/Modal/tests/Modal.unit.test.js +73 -0
  258. package/src/components/Modal/tests/ModalBody.unit.test.js +28 -12
  259. package/src/components/Pagination/Pagination.tsx +2 -2
  260. package/src/components/Pill/Pill.tsx +8 -3
  261. package/src/components/Pill/styles/config.scss +22 -2
  262. package/src/components/Pill/styles/style.scss +7 -3
  263. package/src/components/Pill/tests/Pill.conformance.test.js +7 -3
  264. package/src/components/Pill/tests/Pill.unit.test.js +45 -7
  265. package/src/components/Preview/PreviewGenerator.tsx +78 -34
  266. package/src/components/PromoBanner/PromoBanner.tsx +52 -34
  267. package/src/components/PromoBanner/styles/mixins.scss +37 -20
  268. package/src/components/PromoBanner/styles/style.scss +5 -11
  269. package/src/components/PromoBanner/tests/PromoBanner.conformance.test.js +781 -0
  270. package/src/components/PromoBanner/tests/PromoBanner.unit.test.js +529 -0
  271. package/src/components/PromotionCard/PromotionCard.tsx +13 -12
  272. package/src/components/PromotionCard/tests/PromotionCard.conformance.test.js +567 -0
  273. package/src/components/PromotionCard/tests/PromotionCard.unit.test.js +500 -0
  274. package/src/components/Section/Section.tsx +20 -4
  275. package/src/components/Section/styles/config.scss +18 -16
  276. package/src/components/Section/styles/mixins.scss +16 -13
  277. package/src/components/Section/styles/style.scss +1 -0
  278. package/src/components/Section/tests/Section.conformance.test.js +27 -10
  279. package/src/components/Section/tests/Section.unit.test.js +73 -25
  280. package/src/components/Tag/Tag.tsx +27 -3
  281. package/src/components/Tag/styles/config.scss +31 -0
  282. package/src/components/Tag/styles/mixins.scss +39 -3
  283. package/src/components/Tag/styles/style.scss +28 -2
  284. package/src/components/Tag/tests/Tag.conformance.test.js +19 -1
  285. package/src/components/Tag/tests/Tag.unit.test.js +93 -0
  286. package/src/components/Tile/styles/style.scss +1 -1
  287. package/src/components/index.ts +5 -6
  288. package/src/styles/base/globals.scss +19 -0
  289. package/src/styles/base/styleguide.scss +17 -17
  290. package/src/styles/export/base.js +2 -2
  291. package/src/styles/export/color.js +2 -2
  292. package/src/styles/shame.scss +2 -1
  293. package/src/styles/tokens/base.scss +1 -1
  294. package/src/styles/tokens/color.scss +12 -8
  295. package/src/styles/typography/mixins.scss +3 -2
  296. package/src/styles/utilities/border.scss +1 -1
  297. package/src/styles/utilities/color.scss +113 -20
  298. package/src/styles/utilities/index.scss +1 -0
  299. package/src/styles/utilities/layout.scss +9 -0
  300. package/src/styles/utilities/ordering.scss +44 -0
  301. package/build/components/Accordion/index.js +0 -16
  302. package/build/components/Accordion/index.js.map +0 -1
  303. package/build/components/Accordion/tsconfig.tsbuildinfo +0 -1
  304. package/build/components/Alert/index.js +0 -16
  305. package/build/components/Alert/index.js.map +0 -1
  306. package/build/components/Alert/tsconfig.tsbuildinfo +0 -1
  307. package/build/components/AnchorNavigation/index.js +0 -16
  308. package/build/components/AnchorNavigation/index.js.map +0 -1
  309. package/build/components/AnchorNavigation/style.css +0 -2
  310. package/build/components/AnchorNavigation/style.css.map +0 -1
  311. package/build/components/AnchorNavigation/tsconfig.tsbuildinfo +0 -1
  312. package/build/components/Bar/index.js +0 -16
  313. package/build/components/Bar/index.js.map +0 -1
  314. package/build/components/Bar/tsconfig.tsbuildinfo +0 -1
  315. package/build/components/BlockAction/index.js +0 -16
  316. package/build/components/BlockAction/index.js.map +0 -1
  317. package/build/components/BlockAction/style.css +0 -2
  318. package/build/components/BlockAction/style.css.map +0 -1
  319. package/build/components/BlockAction/tsconfig.tsbuildinfo +0 -1
  320. package/build/components/BodyBanner/index.js +0 -16
  321. package/build/components/BodyBanner/index.js.map +0 -1
  322. package/build/components/BodyBanner/style.css +0 -2
  323. package/build/components/BodyBanner/style.css.map +0 -1
  324. package/build/components/BodyBanner/tsconfig.tsbuildinfo +0 -1
  325. package/build/components/Breadcrumbs/index.js +0 -16
  326. package/build/components/Breadcrumbs/index.js.map +0 -1
  327. package/build/components/Breadcrumbs/tsconfig.tsbuildinfo +0 -1
  328. package/build/components/Button/index.js +0 -16
  329. package/build/components/Button/index.js.map +0 -1
  330. package/build/components/Button/style.css +0 -2
  331. package/build/components/Button/style.css.map +0 -1
  332. package/build/components/Button/tsconfig.tsbuildinfo +0 -1
  333. package/build/components/Buttons/index.js +0 -16
  334. package/build/components/Buttons/index.js.map +0 -1
  335. package/build/components/Buttons/tsconfig.tsbuildinfo +0 -1
  336. package/build/components/Card/index.js +0 -16
  337. package/build/components/Card/index.js.map +0 -1
  338. package/build/components/Card/tsconfig.tsbuildinfo +0 -1
  339. package/build/components/Carousel/index.js +0 -16
  340. package/build/components/Carousel/index.js.map +0 -1
  341. package/build/components/Carousel/style.css +0 -2
  342. package/build/components/Carousel/style.css.map +0 -1
  343. package/build/components/Carousel/tsconfig.tsbuildinfo +0 -1
  344. package/build/components/CarouselPromotions/index.js +0 -16
  345. package/build/components/CarouselPromotions/index.js.map +0 -1
  346. package/build/components/CarouselPromotions/tsconfig.tsbuildinfo +0 -1
  347. package/build/components/CartTable/index.js +0 -16
  348. package/build/components/CartTable/index.js.map +0 -1
  349. package/build/components/CartTable/style.css +0 -2
  350. package/build/components/CartTable/style.css.map +0 -1
  351. package/build/components/CartTable/tsconfig.tsbuildinfo +0 -1
  352. package/build/components/Code/index.js +0 -11
  353. package/build/components/Code/index.js.map +0 -1
  354. package/build/components/Code/style.css +0 -2
  355. package/build/components/Code/style.css.map +0 -1
  356. package/build/components/Code/tsconfig.tsbuildinfo +0 -1
  357. package/build/components/Container/index.js +0 -16
  358. package/build/components/Container/index.js.map +0 -1
  359. package/build/components/Container/tsconfig.tsbuildinfo +0 -1
  360. package/build/components/Controls/index.js +0 -16
  361. package/build/components/Controls/index.js.map +0 -1
  362. package/build/components/Controls/tsconfig.tsbuildinfo +0 -1
  363. package/build/components/Cover/index.js +0 -16
  364. package/build/components/Cover/index.js.map +0 -1
  365. package/build/components/Cover/style.css +0 -2
  366. package/build/components/Cover/style.css.map +0 -1
  367. package/build/components/Cover/tsconfig.tsbuildinfo +0 -1
  368. package/build/components/Divider/index.js +0 -16
  369. package/build/components/Divider/index.js.map +0 -1
  370. package/build/components/Divider/tsconfig.tsbuildinfo +0 -1
  371. package/build/components/DocumentationSidebar/index.js +0 -16
  372. package/build/components/DocumentationSidebar/index.js.map +0 -1
  373. package/build/components/DocumentationSidebar/style.css +0 -2
  374. package/build/components/DocumentationSidebar/style.css.map +0 -1
  375. package/build/components/DocumentationSidebar/tsconfig.tsbuildinfo +0 -1
  376. package/build/components/Dropdown/index.js +0 -16
  377. package/build/components/Dropdown/index.js.map +0 -1
  378. package/build/components/Dropdown/style.css +0 -2
  379. package/build/components/Dropdown/style.css.map +0 -1
  380. package/build/components/Dropdown/tsconfig.tsbuildinfo +0 -1
  381. package/build/components/Expander/index.js +0 -16
  382. package/build/components/Expander/index.js.map +0 -1
  383. package/build/components/Expander/tsconfig.tsbuildinfo +0 -1
  384. package/build/components/FeatureAccordion/index.js +0 -16
  385. package/build/components/FeatureAccordion/index.js.map +0 -1
  386. package/build/components/FeatureAccordion/style.css +0 -2
  387. package/build/components/FeatureAccordion/style.css.map +0 -1
  388. package/build/components/FeatureAccordion/tsconfig.tsbuildinfo +0 -1
  389. package/build/components/Footer/index.js +0 -16
  390. package/build/components/Footer/index.js.map +0 -1
  391. package/build/components/Footer/style.css +0 -2
  392. package/build/components/Footer/style.css.map +0 -1
  393. package/build/components/Footer/tsconfig.tsbuildinfo +0 -1
  394. package/build/components/Forms/index.js +0 -20
  395. package/build/components/Forms/index.js.map +0 -1
  396. package/build/components/Forms/style.css +0 -2
  397. package/build/components/Forms/style.css.map +0 -1
  398. package/build/components/Forms/tsconfig.tsbuildinfo +0 -1
  399. package/build/components/Gauge/index.js +0 -16
  400. package/build/components/Gauge/index.js.map +0 -1
  401. package/build/components/Gauge/tsconfig.tsbuildinfo +0 -1
  402. package/build/components/Grid/index.js +0 -16
  403. package/build/components/Grid/index.js.map +0 -1
  404. package/build/components/Grid/style.css +0 -2
  405. package/build/components/Grid/style.css.map +0 -1
  406. package/build/components/Grid/tsconfig.tsbuildinfo +0 -1
  407. package/build/components/Hero/index.js +0 -16
  408. package/build/components/Hero/index.js.map +0 -1
  409. package/build/components/Hero/style.css +0 -2
  410. package/build/components/Hero/style.css.map +0 -1
  411. package/build/components/Hero/tsconfig.tsbuildinfo +0 -1
  412. package/build/components/Icon/index.js +0 -11
  413. package/build/components/Icon/index.js.map +0 -1
  414. package/build/components/Icon/tsconfig.tsbuildinfo +0 -1
  415. package/build/components/IconList/index.js +0 -16
  416. package/build/components/IconList/index.js.map +0 -1
  417. package/build/components/IconList/style.css +0 -2
  418. package/build/components/IconList/style.css.map +0 -1
  419. package/build/components/IconList/tsconfig.tsbuildinfo +0 -1
  420. package/build/components/Image/index.js +0 -16
  421. package/build/components/Image/index.js.map +0 -1
  422. package/build/components/Image/tsconfig.tsbuildinfo +0 -1
  423. package/build/components/Link/index.js +0 -7
  424. package/build/components/Link/index.js.map +0 -1
  425. package/build/components/Link/tsconfig.tsbuildinfo +0 -1
  426. package/build/components/List/index.js +0 -16
  427. package/build/components/List/index.js.map +0 -1
  428. package/build/components/List/style.css +0 -2
  429. package/build/components/List/style.css.map +0 -1
  430. package/build/components/List/tsconfig.tsbuildinfo +0 -1
  431. package/build/components/Loader/index.js +0 -16
  432. package/build/components/Loader/index.js.map +0 -1
  433. package/build/components/Loader/tsconfig.tsbuildinfo +0 -1
  434. package/build/components/Megamenu/index.js +0 -20
  435. package/build/components/Megamenu/index.js.map +0 -1
  436. package/build/components/Megamenu/style.css +0 -2
  437. package/build/components/Megamenu/style.css.map +0 -1
  438. package/build/components/Megamenu/tsconfig.tsbuildinfo +0 -1
  439. package/build/components/Modal/index.js +0 -20
  440. package/build/components/Modal/index.js.map +0 -1
  441. package/build/components/Modal/style.css +0 -2
  442. package/build/components/Modal/style.css.map +0 -1
  443. package/build/components/Modal/tsconfig.tsbuildinfo +0 -1
  444. package/build/components/Pagination/index.js +0 -16
  445. package/build/components/Pagination/index.js.map +0 -1
  446. package/build/components/Pagination/tsconfig.tsbuildinfo +0 -1
  447. package/build/components/Pill/index.js +0 -16
  448. package/build/components/Pill/index.js.map +0 -1
  449. package/build/components/Pill/tsconfig.tsbuildinfo +0 -1
  450. package/build/components/Preview/index.js +0 -77
  451. package/build/components/Preview/index.js.map +0 -1
  452. package/build/components/Preview/style.css +0 -2
  453. package/build/components/Preview/style.css.map +0 -1
  454. package/build/components/Preview/tsconfig.tsbuildinfo +0 -1
  455. package/build/components/Progress/index.js +0 -16
  456. package/build/components/Progress/index.js.map +0 -1
  457. package/build/components/Progress/tsconfig.tsbuildinfo +0 -1
  458. package/build/components/PromoBanner/index.js +0 -16
  459. package/build/components/PromoBanner/index.js.map +0 -1
  460. package/build/components/PromoBanner/style.css +0 -2
  461. package/build/components/PromoBanner/style.css.map +0 -1
  462. package/build/components/PromoBanner/tsconfig.tsbuildinfo +0 -1
  463. package/build/components/PromotionCard/index.js +0 -16
  464. package/build/components/PromotionCard/index.js.map +0 -1
  465. package/build/components/PromotionCard/tsconfig.tsbuildinfo +0 -1
  466. package/build/components/Section/index.js +0 -16
  467. package/build/components/Section/index.js.map +0 -1
  468. package/build/components/Section/tsconfig.tsbuildinfo +0 -1
  469. package/build/components/Skeleton/index.js +0 -16
  470. package/build/components/Skeleton/index.js.map +0 -1
  471. package/build/components/Skeleton/tsconfig.tsbuildinfo +0 -1
  472. package/build/components/SkipLink/index.js +0 -16
  473. package/build/components/SkipLink/index.js.map +0 -1
  474. package/build/components/SkipLink/tsconfig.tsbuildinfo +0 -1
  475. package/build/components/Stepbar/index.js +0 -16
  476. package/build/components/Stepbar/index.js.map +0 -1
  477. package/build/components/Stepbar/tsconfig.tsbuildinfo +0 -1
  478. package/build/components/Sticker/index.js +0 -16
  479. package/build/components/Sticker/index.js.map +0 -1
  480. package/build/components/Sticker/tsconfig.tsbuildinfo +0 -1
  481. package/build/components/Table/index.js +0 -16
  482. package/build/components/Table/index.js.map +0 -1
  483. package/build/components/Table/style.css +0 -2
  484. package/build/components/Table/style.css.map +0 -1
  485. package/build/components/Table/tsconfig.tsbuildinfo +0 -1
  486. package/build/components/Tabs/index.js +0 -16
  487. package/build/components/Tabs/index.js.map +0 -1
  488. package/build/components/Tabs/tsconfig.tsbuildinfo +0 -1
  489. package/build/components/Tag/index.js +0 -16
  490. package/build/components/Tag/index.js.map +0 -1
  491. package/build/components/Tag/tsconfig.tsbuildinfo +0 -1
  492. package/build/components/Testimonial/index.js +0 -16
  493. package/build/components/Testimonial/index.js.map +0 -1
  494. package/build/components/Testimonial/tsconfig.tsbuildinfo +0 -1
  495. package/build/components/Tile/index.js +0 -16
  496. package/build/components/Tile/index.js.map +0 -1
  497. package/build/components/Tile/tsconfig.tsbuildinfo +0 -1
  498. package/build/components/Tooltip/index.js +0 -16
  499. package/build/components/Tooltip/index.js.map +0 -1
  500. package/build/components/Tooltip/style.css +0 -2
  501. package/build/components/Tooltip/style.css.map +0 -1
  502. package/build/components/Tooltip/tsconfig.tsbuildinfo +0 -1
  503. package/build/components/static.css +0 -2
  504. package/build/components/static.css.map +0 -1
  505. package/build/components/static.js +0 -10
  506. package/build/components/static.js.map +0 -1
  507. package/build/components/types/src/components/Hero/HeroPlayground.d.ts +0 -2
  508. package/build/components/types/src/components/Megamenu/MegamenuDropdown.d.ts +0 -17
  509. package/src/components/Accordion/Accordion.mdx +0 -222
  510. package/src/components/Alert/Alert.mdx +0 -141
  511. package/src/components/Bar/Bar.mdx +0 -203
  512. package/src/components/BlockAction/BlockAction.mdx +0 -244
  513. package/src/components/BodyBanner/BodyBanner.mdx +0 -268
  514. package/src/components/Breadcrumbs/Breadcrumbs.mdx +0 -84
  515. package/src/components/Button/Button.mdx +0 -273
  516. package/src/components/Buttons/Buttons.mdx +0 -39
  517. package/src/components/Card/Card.mdx +0 -334
  518. package/src/components/Carousel/Carousel.mdx +0 -159
  519. package/src/components/CarouselPromotions/CarouselPromotions.mdx +0 -246
  520. package/src/components/CartTable/CartTable.mdx +0 -129
  521. package/src/components/Container/Container.mdx +0 -73
  522. package/src/components/Controls/Controls.mdx +0 -469
  523. package/src/components/Cover/Cover.mdx +0 -87
  524. package/src/components/Divider/Divider.mdx +0 -65
  525. package/src/components/Dropdown/Dropdown.mdx +0 -260
  526. package/src/components/Expander/Expander.mdx +0 -153
  527. package/src/components/FeatureAccordion/FeatureAccordion.mdx +0 -33
  528. package/src/components/Forms/Autocomplete/Autocomplete.mdx +0 -198
  529. package/src/components/Forms/Checkbox/Checkbox.mdx +0 -139
  530. package/src/components/Forms/DatePicker/DatePicker.mdx +0 -149
  531. package/src/components/Forms/Field/Field.mdx +0 -383
  532. package/src/components/Forms/Fieldset/Fieldset.mdx +0 -178
  533. package/src/components/Forms/File/File.mdx +0 -88
  534. package/src/components/Forms/FormTooltip.mdx +0 -51
  535. package/src/components/Forms/Forms.mdx +0 -48
  536. package/src/components/Forms/Group/Group.mdx +0 -146
  537. package/src/components/Forms/Hint/Hint.mdx +0 -40
  538. package/src/components/Forms/InputStepper/InputStepper.mdx +0 -147
  539. package/src/components/Forms/Label/Label.mdx +0 -95
  540. package/src/components/Forms/Message/Message.mdx +0 -40
  541. package/src/components/Forms/Radio/Radio.mdx +0 -98
  542. package/src/components/Forms/RangeSlider/RangeSlider.mdx +0 -304
  543. package/src/components/Forms/Select/Select.mdx +0 -106
  544. package/src/components/Forms/TextArea/TextArea.mdx +0 -109
  545. package/src/components/Forms/TextInput/TextInput.mdx +0 -153
  546. package/src/components/Gauge/Gauge.mdx +0 -35
  547. package/src/components/Grid/Grid.mdx +0 -320
  548. package/src/components/Hero/Hero.mdx +0 -168
  549. package/src/components/Hero/HeroPlayground.tsx +0 -369
  550. package/src/components/Icon/Icon.mdx +0 -172
  551. package/src/components/IconList/IconList.mdx +0 -53
  552. package/src/components/Image/Image.mdx +0 -175
  553. package/src/components/Link/Link.mdx +0 -224
  554. package/src/components/List/List.mdx +0 -216
  555. package/src/components/Loader/Loader.mdx +0 -148
  556. package/src/components/Megamenu/MegamenuDropdown.tsx +0 -64
  557. package/src/components/Modal/Modal.mdx +0 -565
  558. package/src/components/Pagination/Pagination.mdx +0 -45
  559. package/src/components/Pill/Pill.mdx +0 -41
  560. package/src/components/Progress/Progress.mdx +0 -119
  561. package/src/components/PromotionCard/PromotionCard.mdx +0 -191
  562. package/src/components/Section/Section.mdx +0 -397
  563. package/src/components/Skeleton/Skeleton.mdx +0 -90
  564. package/src/components/SkipLink/SkipLink.mdx +0 -23
  565. package/src/components/Stepbar/Stepbar.mdx +0 -137
  566. package/src/components/Sticker/Sticker.mdx +0 -50
  567. package/src/components/Table/Table.mdx +0 -199
  568. package/src/components/Tabs/Tabs.mdx +0 -373
  569. package/src/components/Tag/Tag.mdx +0 -52
  570. package/src/components/Testimonial/Testimonial.mdx +0 -41
  571. package/src/components/Tile/Tile.mdx +0 -163
  572. package/src/components/Tooltip/Tooltip.mdx +0 -227
@@ -75,4 +75,77 @@ describe("rendering Modal", () => {
75
75
  expect(getByTestId("modal-light")).toHaveClass("is-light");
76
76
  });
77
77
  });
78
+ describe("disableHeaderSpacing prop", () => {
79
+ it("should have modal__header--no-spacing class when disableHeaderSpacing is true", () => {
80
+ const { getByTestId } = render(
81
+ <div id="root">
82
+ <Modal
83
+ id="modal-no-header-spacing"
84
+ data-testid="modal-no-header-spacing"
85
+ disableHeaderSpacing
86
+ />
87
+ </div>,
88
+ );
89
+ const child = getByTestId(
90
+ "modal-no-header-spacing",
91
+ ).getElementsByClassName("modal__header--no-spacing");
92
+ expect(child.length).toBe(1);
93
+ expect(child[0]).toHaveClass("modal__header--no-spacing");
94
+ });
95
+ });
96
+ describe("disableFooterSpacing prop", () => {
97
+ it("should have modal__footer--no-spacing class when disableFooterSpacing is true", () => {
98
+ const { getByTestId } = render(
99
+ <div id="root">
100
+ <Modal
101
+ id="modal-no-footer-spacing"
102
+ data-testid="modal-no-footer-spacing"
103
+ disableFooterSpacing
104
+ />
105
+ </div>,
106
+ );
107
+ const child = getByTestId(
108
+ "modal-no-footer-spacing",
109
+ ).getElementsByClassName("modal__footer--no-spacing");
110
+ expect(child.length).toBe(1);
111
+ expect(child[0]).toHaveClass("modal__footer--no-spacing");
112
+ });
113
+ });
114
+ describe("disableBodySpacing prop", () => {
115
+ it("should have modal__body--no-spacing class when disableBodySpacing is true", () => {
116
+ const { getByTestId } = render(
117
+ <div id="root">
118
+ <Modal
119
+ id="modal-no-body-spacing"
120
+ data-testid="modal-no-body-spacing"
121
+ disableBodySpacing
122
+ />
123
+ </div>,
124
+ );
125
+ const child = getByTestId("modal-no-body-spacing").getElementsByClassName(
126
+ "modal__body--no-spacing",
127
+ );
128
+ expect(child.length).toBe(1);
129
+ expect(child[0]).toHaveClass("modal__body--no-spacing");
130
+ });
131
+
132
+ it("should not apply with-top-padding class on body when custom header renderer is present with disableBodySpacing prop", () => {
133
+ const { getByTestId } = render(
134
+ <div id="root">
135
+ <Modal
136
+ id="modal-no-body-spacing"
137
+ data-testid="modal-no-body-spacing"
138
+ disableBodySpacing
139
+ renderHeader={() => <div>Custom Header</div>}
140
+ />
141
+ </div>,
142
+ );
143
+ const child = getByTestId("modal-no-body-spacing").getElementsByClassName(
144
+ "modal__body",
145
+ );
146
+ expect(child.length).toBe(1);
147
+ expect(child[0]).not.toHaveClass("with-top-padding");
148
+ expect(child[0]).toHaveClass("modal__body--no-spacing");
149
+ });
150
+ });
78
151
  });
@@ -15,25 +15,41 @@ describe("rendering ModalBody", () => {
15
15
  const { getByText } = render(<ModalBody>test</ModalBody>);
16
16
  expect(getByText("test")).toBeInTheDocument();
17
17
  });
18
+
18
19
  [
19
- "white",
20
- "gray",
21
- "orange",
22
- "orange-dark",
23
- "black",
24
- "blue",
25
- "green",
26
- "pink",
27
- "violet",
28
- "yellow",
20
+ "background-primary",
21
+ "background-secondary",
22
+ "background-accent",
23
+ "surface-primary",
24
+ "surface-secondary",
25
+ "surface-tertiary",
26
+ "surface-subtle",
27
+ "fill-accent1",
28
+ "fill-accent2",
29
29
  ].map((color) => {
30
- it(`has classes bg-${color} and modal__body--colorful when color is set to ${color}`, () => {
30
+ it(`has class ${color} and modal__body--colorful when color is set to ${color}`, () => {
31
31
  const { getByTestId } = render(
32
32
  <ModalBody color={color} data-testid="test-id" />,
33
33
  );
34
- expect(getByTestId("test-id")).toHaveClass(`bg-${color}`);
34
+ expect(getByTestId("test-id")).toHaveClass(color);
35
35
  expect(getByTestId("test-id")).toHaveClass("modal__body--colorful");
36
36
  });
37
37
  });
38
+
39
+ it("has classes background-contrast and text-inverse when color is set to background-contrast", () => {
40
+ const { getByTestId } = render(
41
+ <ModalBody color="background-contrast" data-testid="test-id" />,
42
+ );
43
+ expect(getByTestId("test-id")).toHaveClass("background-contrast");
44
+ expect(getByTestId("test-id")).toHaveClass("text-inverse");
45
+ expect(getByTestId("test-id")).toHaveClass("modal__body--colorful");
46
+ });
47
+
48
+ it("applies disableSpacing prop", () => {
49
+ const { getByTestId } = render(
50
+ <ModalBody disableSpacing data-testid="test-id" />,
51
+ );
52
+ expect(getByTestId("test-id")).toHaveClass("modal__body--no-spacing");
53
+ });
38
54
  });
39
55
  });
@@ -5,7 +5,7 @@ import { PaginationItem } from "./PaginationItem";
5
5
  import Separator from "./Separator";
6
6
  import { getItemState } from "./helpers";
7
7
 
8
- interface PaginationItem {
8
+ interface PaginationItemProps {
9
9
  /** Page link href */
10
10
  href: string;
11
11
  /** Text label inside page item */
@@ -22,7 +22,7 @@ interface PaginationProps {
22
22
  /** Dark theme */
23
23
  colorScheme?: "light" | "dark";
24
24
  /** All pagination items - buttons & numbers */
25
- items: PaginationItem[];
25
+ items: PaginationItemProps[];
26
26
  /** Accessibility label */
27
27
  label?: string;
28
28
  /** Additional CSS class name */
@@ -3,17 +3,22 @@ import cx from "classnames";
3
3
 
4
4
  const CLASS_ROOT = "pill";
5
5
 
6
+ export const pillColors = ["white", "gray", "transparent", "orange"] as const;
7
+ export type PillColor = (typeof pillColors)[number];
8
+
6
9
  interface PillProps extends HTMLAttributes<HTMLSpanElement> {
7
10
  className?: string;
8
11
  children?: ReactNode;
9
- colorScheme?: "dark" | "light" | "transparent";
12
+ color?: PillColor;
10
13
  size?: "small" | "medium" | "large" | "xlarge" | "xxlarge";
14
+ colorScheme?: "light" | "dark";
11
15
  }
12
16
 
13
17
  const Pill: React.FC<PillProps> = ({
14
18
  className,
15
19
  children,
16
20
  size,
21
+ color,
17
22
  colorScheme,
18
23
  ...other
19
24
  }) => (
@@ -21,9 +26,9 @@ const Pill: React.FC<PillProps> = ({
21
26
  className={cx(
22
27
  CLASS_ROOT,
23
28
  {
24
- "is-dark": colorScheme === "dark",
29
+ [`${CLASS_ROOT}--${color}`]: color, // Only apply modifier if color is specified
25
30
  "is-light": colorScheme === "light",
26
- "is-transparent": colorScheme === "transparent",
31
+ "is-dark": colorScheme === "dark",
27
32
  [CLASS_ROOT + "--" + size]: size,
28
33
  },
29
34
  className,
@@ -1,10 +1,11 @@
1
1
  @use "../../../styles/tokens/color";
2
2
  @use "../../../styles/tools/convert";
3
+ @use "sass:map";
3
4
 
4
5
  $base: (
5
- background-color: var(--color-surface-contrast),
6
- color: var(--color-text-inverse),
7
6
  font-weight: bold,
7
+ background-color: map.get(color.$colors-dark, border-subtle),
8
+ color: color.$white,
8
9
  );
9
10
 
10
11
  $sizes: (
@@ -20,3 +21,22 @@ $sizes: (
20
21
  xxlarge: convert.to-rem(64px),
21
22
  ),
22
23
  );
24
+
25
+ $colors: (
26
+ "white": (
27
+ background-color: color.$white,
28
+ color: color.$black,
29
+ ),
30
+ "gray": (
31
+ background-color: var(--color-surface-subtle),
32
+ color: var(--color-text-default),
33
+ ),
34
+ "orange": (
35
+ background-color: var(--color-icon-brand),
36
+ color: var(--color-text-inverse),
37
+ ),
38
+ "transparent": (
39
+ background-color: rgba(#ffffff, 0.5),
40
+ color: var(--color-text-default),
41
+ ),
42
+ );
@@ -1,15 +1,19 @@
1
1
  @use "../../../styles/tools/generate";
2
2
  @use "./config";
3
3
  @use "./mixins";
4
+ @use "sass:map";
4
5
 
5
6
  @layer components {
6
7
  .pill {
7
8
  @include mixins.base();
8
9
  @include mixins.sizes();
9
10
 
10
- &.is-transparent {
11
- color: var(--color-text-default);
12
- background-color: rgba(#ffffff, 0.5);
11
+ @each $colorName, $colorProps in config.$colors {
12
+ &--#{$colorName} {
13
+ @each $property, $value in $colorProps {
14
+ #{$property}: $value;
15
+ }
16
+ }
13
17
  }
14
18
  }
15
19
  }
@@ -18,15 +18,19 @@ const example = (
18
18
  Max 3 digits please. <Pill>123</Pill>
19
19
  </p>
20
20
  <p>
21
- <Pill colorScheme="transparent">T</Pill>
22
- <Pill colorScheme="dark">D</Pill>
23
- <Pill colorScheme="light">L</Pill>
21
+ <Pill color="transparent">T</Pill>
22
+ <Pill color="black">D</Pill>
23
+ <Pill color="white">L</Pill>
24
24
  </p>
25
25
  <p>
26
26
  <Pill size="small">S</Pill>
27
27
  <Pill size="medium">M</Pill>
28
28
  <Pill size="large">L</Pill>
29
29
  </p>
30
+ <p>
31
+ <Pill colorScheme="light">Light</Pill>
32
+ <Pill colorScheme="dark">Dark</Pill>
33
+ </p>
30
34
  </>
31
35
  );
32
36
 
@@ -35,25 +35,54 @@ describe("rendering Pill", () => {
35
35
  expect(getByTestId("test-id")).toHaveClass("pill--large");
36
36
  });
37
37
 
38
- it("has colorScheme class when colorScheme prop is set", () => {
38
+ it("has default black styling without modifier", () => {
39
+ const { getByTestId } = render(<Pill data-testid="test-id">pill</Pill>);
40
+ expect(getByTestId("test-id")).toHaveClass("pill");
41
+ expect(getByTestId("test-id")).not.toHaveClass("pill--black");
42
+ });
43
+
44
+ it("has white class when color is white", () => {
39
45
  const { getByTestId } = render(
40
- <Pill colorScheme="transparent" data-testid="test-id">
46
+ <Pill color="white" data-testid="test-id">
41
47
  pill
42
48
  </Pill>,
43
49
  );
44
- expect(getByTestId("test-id")).toHaveClass("is-transparent");
50
+ expect(getByTestId("test-id")).toHaveClass("pill--white");
45
51
  });
46
52
 
47
- it("has dark colorScheme class when colorScheme is dark", () => {
53
+ it("has gray class when color is gray", () => {
48
54
  const { getByTestId } = render(
49
- <Pill colorScheme="dark" data-testid="test-id">
55
+ <Pill color="gray" data-testid="test-id">
50
56
  pill
51
57
  </Pill>,
52
58
  );
53
- expect(getByTestId("test-id")).toHaveClass("is-dark");
59
+ expect(getByTestId("test-id")).toHaveClass("pill--gray");
54
60
  });
55
61
 
56
- it("has light colorScheme class when colorScheme is light", () => {
62
+ it("has transparent class when color is transparent", () => {
63
+ const { getByTestId } = render(
64
+ <Pill color="transparent" data-testid="test-id">
65
+ pill
66
+ </Pill>,
67
+ );
68
+ expect(getByTestId("test-id")).toHaveClass("pill--transparent");
69
+ });
70
+
71
+ it("supports all available colors", () => {
72
+ const colors = ["white", "gray", "transparent"];
73
+
74
+ colors.forEach((color) => {
75
+ const { getByTestId } = render(
76
+ <Pill color={color} data-testid={`test-${color}`}>
77
+ {color}
78
+ </Pill>,
79
+ );
80
+
81
+ expect(getByTestId(`test-${color}`)).toHaveClass(`pill--${color}`);
82
+ });
83
+ });
84
+
85
+ it("has is-light class when colorScheme is light", () => {
57
86
  const { getByTestId } = render(
58
87
  <Pill colorScheme="light" data-testid="test-id">
59
88
  pill
@@ -62,6 +91,15 @@ describe("rendering Pill", () => {
62
91
  expect(getByTestId("test-id")).toHaveClass("is-light");
63
92
  });
64
93
 
94
+ it("has is-dark class when colorScheme is dark", () => {
95
+ const { getByTestId } = render(
96
+ <Pill colorScheme="dark" data-testid="test-id">
97
+ pill
98
+ </Pill>,
99
+ );
100
+ expect(getByTestId("test-id")).toHaveClass("is-dark");
101
+ });
102
+
65
103
  it("passes other props", () => {
66
104
  const { getByTestId } = render(<Pill data-testid="test">Pill</Pill>);
67
105
  expect(getByTestId("test")).toBeInTheDocument();
@@ -81,6 +81,7 @@ interface PreviewBackground {
81
81
  }
82
82
 
83
83
  interface PreviewProps {
84
+ isDark?: boolean;
84
85
  bgTheme?: string | boolean;
85
86
  bgThemeColors?: Record<string, string>;
86
87
  bgThemeExcludedColors?: string[];
@@ -97,7 +98,6 @@ interface PreviewProps {
97
98
  enableFullscreen?: boolean;
98
99
  hasCodePreview?: boolean;
99
100
  html?: string;
100
- interactiveProps?: Record<string, any>;
101
101
  jsxCode?: string; // Pre-generated JSX string (from server component)
102
102
  [key: string]: any;
103
103
  }
@@ -116,37 +116,36 @@ const getBackgroundsAsArray = (
116
116
  return acc;
117
117
  }, []);
118
118
 
119
- // Map human-friendly color names to bg-* utility classes
119
+ // Map names to only the 6 allowed background classes
120
120
  const getBgClassFromName = (name: string): string => {
121
121
  const normalized = name.toLowerCase().replace(/\s+/g, "-");
122
- const n = normalized === "grey" ? "gray" : normalized;
123
- if (n === "none") return "bg-none";
124
- return `bg-${n}`; // e.g. white -> bg-white, orange-dark -> bg-orange-dark
125
- };
126
122
 
127
- // Determine contrast helper class for nested component styling
128
- const getThemeClassFromName = (name: string): string => {
129
- const n = name.toLowerCase();
130
- // Only black switches global dark tokens; other colors keep light tokens
131
- return n === "black" ? "is-dark" : "is-light";
123
+ // Only allow these background classes
124
+ const allowedBackgrounds = [
125
+ "background-primary",
126
+ "background-secondary",
127
+ "background-contrast",
128
+ "background-accent",
129
+ "background-accent1-blog",
130
+ "background-accent2-blog",
131
+ "background-none",
132
+ ];
133
+
134
+ // Return the class if it's in the allowed list, otherwise default to background-primary
135
+ return allowedBackgrounds.includes(normalized)
136
+ ? normalized
137
+ : "background-primary";
132
138
  };
133
139
 
134
140
  const PreviewGenerator: FunctionComponent<PreviewProps> = ({
135
- bgTheme = "white",
141
+ bgTheme = "background-primary",
136
142
  bgThemeColors = {
137
- White: "bg-white",
138
- Gray: "bg-gray",
139
- Black: "bg-black",
140
- Orange: "bg-orange",
141
- "Orange Dark": "bg-orange-dark",
142
- Blue: "bg-blue",
143
- Green: "bg-green",
144
- Pink: "bg-pink",
145
- Violet: "bg-violet",
146
- Yellow: "bg-yellow",
147
- "Yellow Lighter": "bg-yellow-lighter",
148
- Red: "bg-red",
149
- None: "bg-none",
143
+ "Background Primary": "background-primary",
144
+ "Background Secondary": "background-secondary",
145
+ "Background Contrast": "background-contrast",
146
+ "Background Accent": "background-accent",
147
+ "Background Accent1 Blog": "background-accent1-blog",
148
+ "Background Accent2 Blog": "background-accent2-blog",
150
149
  },
151
150
  bgThemeExcludedColors = [],
152
151
  children,
@@ -157,12 +156,13 @@ const PreviewGenerator: FunctionComponent<PreviewProps> = ({
157
156
  enableFullscreen = true,
158
157
  hasCodePreview = true,
159
158
  html,
160
- interactiveProps = {},
161
159
  jsxCode,
160
+ isDark = false,
162
161
  ...other
163
162
  }) => {
164
163
  const [isCodeShown, setIsCodeShown] = useState(false);
165
164
  const [isFullscreen, setIsFullscreen] = useState(false);
165
+ const [isDarkMode, setIsDarkMode] = useState(isDark);
166
166
  // Ensure unique dropdown id per Preview instance to avoid id collisions (SSR-safe)
167
167
  const backgroundDropdownId = `background-select-${useId()}`;
168
168
  const [previewBackground, setPreviewBackground] = useState<PreviewBackground>(
@@ -195,10 +195,10 @@ const PreviewGenerator: FunctionComponent<PreviewProps> = ({
195
195
 
196
196
  return {
197
197
  label: bgTheme,
198
- value: bgThemeColors[bgTheme] || "bg-white",
198
+ value: bgThemeColors[bgTheme] || "background-primary",
199
199
  };
200
200
  }
201
- return { label: "white", value: "bg-white" };
201
+ return { label: "Background Primary", value: "background-primary" };
202
202
  },
203
203
  );
204
204
 
@@ -214,7 +214,11 @@ const PreviewGenerator: FunctionComponent<PreviewProps> = ({
214
214
  setIsFullscreen(!isFullscreen);
215
215
  }
216
216
 
217
- const themeClass = getThemeClassFromName(previewBackground.label);
217
+ function handleToggleDarkMode() {
218
+ setIsDarkMode(!isDarkMode);
219
+ }
220
+
221
+ const themeClass = isDarkMode ? "is-dark" : "is-light";
218
222
  const bgClass = getBgClassFromName(previewBackground.label);
219
223
 
220
224
  const classes = cx(CLASS_ROOT, themeClass, bgClass, className);
@@ -230,6 +234,23 @@ const PreviewGenerator: FunctionComponent<PreviewProps> = ({
230
234
  bgThemeExcludedColors,
231
235
  );
232
236
 
237
+ // Add theme toggle button
238
+ actions.push(
239
+ <Button key="theme-toggle" onClick={handleToggleDarkMode} type="ghost">
240
+ <Icon
241
+ name={isDarkMode ? "sleep" : "flashlight"}
242
+ size="medium"
243
+ fill={"currentColor"}
244
+ style={{ marginRight: "0.5rem" }}
245
+ />
246
+ {isDarkMode ? (
247
+ <code className="small bold">{".is-dark"}</code>
248
+ ) : (
249
+ <code className="small bold">{".is-light"}</code>
250
+ )}
251
+ </Button>,
252
+ );
253
+
233
254
  if (bgColorsOptions.length) {
234
255
  actions.push(
235
256
  <Dropdown
@@ -289,9 +310,34 @@ const PreviewGenerator: FunctionComponent<PreviewProps> = ({
289
310
  ? children(renderAsFunctionContext)
290
311
  : children;
291
312
 
292
- const toRender = childrenToRender || (
293
- <div dangerouslySetInnerHTML={{ __html: html || "" }} />
294
- );
313
+ // Wrap the component to ensure theme classes are applied to the root element
314
+ const wrapComponentWithTheme = (component: ReactNode) => {
315
+ if (!component) return component;
316
+
317
+ // If it's a single React element, clone it with additional classes
318
+ if (React.isValidElement(component)) {
319
+ const props = component.props as any;
320
+ const existingClassName = props.className || "";
321
+ const newClassName = cx(existingClassName, themeClass);
322
+
323
+ return React.cloneElement(component, {
324
+ ...props,
325
+ className: newClassName,
326
+ } as any);
327
+ }
328
+
329
+ // For multiple elements or other cases, wrap in a div with theme classes
330
+ return <div className={cx(themeClass)}>{component}</div>;
331
+ };
332
+
333
+ const toRender = childrenToRender ? (
334
+ wrapComponentWithTheme(childrenToRender)
335
+ ) : html ? (
336
+ <div
337
+ className={cx(themeClass)}
338
+ dangerouslySetInnerHTML={{ __html: html || "" }}
339
+ />
340
+ ) : null;
295
341
 
296
342
  const toCode =
297
343
  (code && typeof code === "function"
@@ -337,6 +383,4 @@ const PreviewGenerator: FunctionComponent<PreviewProps> = ({
337
383
  );
338
384
  };
339
385
 
340
- PreviewGenerator.displayName = "PreviewGenerator";
341
-
342
386
  export { PreviewGenerator };
@@ -2,27 +2,33 @@ import React from "react";
2
2
  import cx from "classnames";
3
3
  import { Grid, GridCol } from "../Grid";
4
4
  import { Image } from "../Image";
5
- import { Button } from "../Button";
6
5
 
7
6
  interface PromoBannerProps {
8
7
  colorScheme?: "light" | "dark";
9
8
  className?: string;
10
- title: string;
11
- secondaryTitle?: string;
12
- description: string;
13
- buttonText: string;
14
9
  image?: string;
10
+ alignImage?: "bottom" | "top";
11
+ imageFullWidth?: boolean;
12
+ /** Make image extend to the edge of viewport even when inside container */
13
+ bleedImage?: boolean;
14
+ children?: React.ReactNode;
15
+ itemClassName?: string;
16
+ imageClassName?: string;
17
+ variant?: "vertical";
15
18
  }
16
19
 
17
20
  const CLASS_ROOT = "promo-banner";
18
21
  export const PromoBanner = ({
19
- title,
20
- secondaryTitle,
21
- description,
22
- buttonText,
23
22
  image,
24
23
  colorScheme,
25
24
  className,
25
+ alignImage,
26
+ bleedImage,
27
+ children,
28
+ itemClassName,
29
+ imageClassName,
30
+ variant,
31
+ imageFullWidth,
26
32
  }: PromoBannerProps) => {
27
33
  const classes = cx(
28
34
  CLASS_ROOT,
@@ -33,33 +39,45 @@ export const PromoBanner = ({
33
39
  className,
34
40
  );
35
41
  return (
36
- <div className={classes}>
37
- <Grid>
42
+ <Grid className={classes}>
43
+ <GridCol
44
+ size={
45
+ variant === "vertical"
46
+ ? { xs: 12, sm: 10, md: 8, lg: 6 }
47
+ : { xs: 12, md: image ? 6 : 7 }
48
+ }
49
+ className={cx(
50
+ `${CLASS_ROOT}__item`,
51
+ {
52
+ "align-items-center align-center align-self-center":
53
+ variant === "vertical",
54
+ },
55
+ itemClassName,
56
+ )}
57
+ >
58
+ {children}
59
+ </GridCol>
60
+
61
+ {image && (
38
62
  <GridCol
39
- size={{ xs: 12, md: image ? 6 : 8 }}
40
- className={`${CLASS_ROOT}__item`}
63
+ size={variant === "vertical" ? { xs: 12 } : { xs: 12, md: 6 }}
64
+ className={cx(
65
+ `${CLASS_ROOT}__image`,
66
+ {
67
+ [`${CLASS_ROOT}__image--bleed-right`]: bleedImage,
68
+ [`align-self-${alignImage}`]: alignImage,
69
+ "align-center": variant === "vertical",
70
+ },
71
+ imageClassName,
72
+ )}
41
73
  >
42
- <h2 className="display-3 thin mb-medium">
43
- <span
44
- className={`${secondaryTitle ? `${CLASS_ROOT}__item-title` : ""}`}
45
- >
46
- {title}
47
- </span>
48
- {secondaryTitle && (
49
- <span className={`color-orange ml-small`}>{secondaryTitle}</span>
50
- )}
51
- </h2>
52
- <p className={`mb-large ${image ? "show-lg" : ""}`}>{description}</p>
53
- <Button type="fill" size="large">
54
- {buttonText}
55
- </Button>
74
+ <Image
75
+ src={image}
76
+ alt="Obrázok"
77
+ className={cx("mb-none", { fullwidth: imageFullWidth })}
78
+ />
56
79
  </GridCol>
57
- {image && (
58
- <GridCol size={{ xs: 12, md: 6 }} className={`${CLASS_ROOT}__image`}>
59
- <Image src={image} alt="" className="mb-none" />
60
- </GridCol>
61
- )}
62
- </Grid>
63
- </div>
80
+ )}
81
+ </Grid>
64
82
  );
65
83
  };