@dnanpm/styleguide 4.0.8 → 4.0.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 (427) hide show
  1. package/build/cjs/_virtual/_virtual_inject.js +5 -0
  2. package/build/cjs/assets/fonts/fonts.css.js +3 -1
  3. package/build/cjs/components/Accordion/Accordion.js +66 -54
  4. package/build/cjs/components/AccordionItem/AccordionItem.js +94 -73
  5. package/build/cjs/components/AmountSelector/AmountSelector.js +121 -134
  6. package/build/cjs/components/Box/Box.js +38 -13
  7. package/build/cjs/components/Breadcrumb/Breadcrumb.js +73 -71
  8. package/build/cjs/components/Button/Button.d.ts +1 -1
  9. package/build/cjs/components/Button/Button.js +131 -127
  10. package/build/cjs/components/ButtonArrow/ButtonArrow.js +47 -49
  11. package/build/cjs/components/ButtonCard/ButtonCard.d.ts +2 -2
  12. package/build/cjs/components/ButtonCard/ButtonCard.js +97 -112
  13. package/build/cjs/components/ButtonClose/ButtonClose.d.ts +1 -1
  14. package/build/cjs/components/ButtonClose/ButtonClose.js +25 -14
  15. package/build/cjs/components/ButtonIcon/ButtonIcon.d.ts +44 -3
  16. package/build/cjs/components/ButtonIcon/ButtonIcon.js +105 -67
  17. package/build/cjs/components/ButtonPrimary/ButtonPrimary.d.ts +43 -2
  18. package/build/cjs/components/ButtonPrimary/ButtonPrimary.js +7 -35
  19. package/build/cjs/components/ButtonSecondary/ButtonSecondary.d.ts +43 -2
  20. package/build/cjs/components/ButtonSecondary/ButtonSecondary.js +7 -35
  21. package/build/cjs/components/Carousel/Carousel.d.ts +8 -2
  22. package/build/cjs/components/Carousel/Carousel.js +315 -346
  23. package/build/cjs/components/Checkbox/Checkbox.js +49 -108
  24. package/build/cjs/components/Chip/Chip.js +40 -34
  25. package/build/cjs/components/DateTimePicker/DateTimePicker.js +198 -334
  26. package/build/cjs/components/Divider/Divider.js +29 -15
  27. package/build/cjs/components/DnaLogo/DnaLogo.js +87 -51
  28. package/build/cjs/components/Drawer/Drawer.js +172 -167
  29. package/build/cjs/components/EmptyState/EmptyState.js +24 -12
  30. package/build/cjs/components/EnergyLabel/EnergyLabel.js +77 -73
  31. package/build/cjs/components/Expander/Expander.js +43 -38
  32. package/build/cjs/components/Floater/Floater.js +36 -14
  33. package/build/cjs/components/Footer/Components/FooterComponents.d.ts +4 -2
  34. package/build/cjs/components/Footer/Components/FooterComponents.js +305 -346
  35. package/build/cjs/components/Footer/Footer.js +51 -80
  36. package/build/cjs/components/Footer/context/FooterContext.js +9 -9
  37. package/build/cjs/components/Hero/Hero.js +101 -149
  38. package/build/cjs/components/Icon/Icon.js +41 -22
  39. package/build/cjs/components/Icons/Small/hlArrowBackSmall.js +12 -4
  40. package/build/cjs/components/Icons/Small/hlArrowForwardSmall.js +12 -4
  41. package/build/cjs/components/Icons/Small/hlArrowUnderSmall.js +12 -4
  42. package/build/cjs/components/Icons/Small/hlCalendarSmall.js +12 -4
  43. package/build/cjs/components/Icons/Small/hlChevronDownSmall.js +12 -4
  44. package/build/cjs/components/Icons/Small/hlChevronLeftSmall.js +12 -4
  45. package/build/cjs/components/Icons/Small/hlChevronRightSmall.js +12 -4
  46. package/build/cjs/components/Icons/Small/hlChevronUpSmall.js +12 -4
  47. package/build/cjs/components/Icons/Small/hlClockSmall.js +14 -5
  48. package/build/cjs/components/Icons/Small/hlDownloadSmall.js +18 -6
  49. package/build/cjs/components/Icons/Small/hlExternalSmall.js +12 -4
  50. package/build/cjs/components/Icons/Small/hlUploadSmall.js +18 -6
  51. package/build/cjs/components/Icons/Social/facebook.js +13 -4
  52. package/build/cjs/components/Icons/Social/instagram.js +13 -4
  53. package/build/cjs/components/Icons/Social/linkedin.js +13 -4
  54. package/build/cjs/components/Icons/Social/tiktok.js +12 -4
  55. package/build/cjs/components/Icons/Social/twitter.js +13 -4
  56. package/build/cjs/components/Icons/Social/youtube.js +12 -4
  57. package/build/cjs/components/Icons/hl404.js +12 -4
  58. package/build/cjs/components/Icons/hl4gSim.js +12 -4
  59. package/build/cjs/components/Icons/hl5gSim.js +12 -4
  60. package/build/cjs/components/Icons/hlBattery.js +16 -6
  61. package/build/cjs/components/Icons/hlBell.js +12 -4
  62. package/build/cjs/components/Icons/hlCableTVCard.js +12 -4
  63. package/build/cjs/components/Icons/hlCalendar.js +56 -15
  64. package/build/cjs/components/Icons/hlCall.js +12 -4
  65. package/build/cjs/components/Icons/hlCameraBack.js +18 -6
  66. package/build/cjs/components/Icons/hlCameraFront.js +14 -5
  67. package/build/cjs/components/Icons/hlCart.js +16 -6
  68. package/build/cjs/components/Icons/hlCartEmpty.js +16 -6
  69. package/build/cjs/components/Icons/hlChat.js +24 -7
  70. package/build/cjs/components/Icons/hlCheck.js +12 -4
  71. package/build/cjs/components/Icons/hlChevronDown.js +12 -4
  72. package/build/cjs/components/Icons/hlChevronLeft.js +12 -4
  73. package/build/cjs/components/Icons/hlChevronRight.js +12 -4
  74. package/build/cjs/components/Icons/hlChevronUp.js +12 -4
  75. package/build/cjs/components/Icons/hlCompensation.js +12 -4
  76. package/build/cjs/components/Icons/hlCookie.js +12 -4
  77. package/build/cjs/components/Icons/hlCopy.js +14 -5
  78. package/build/cjs/components/Icons/hlCoupon.js +16 -6
  79. package/build/cjs/components/Icons/hlDelivery.js +14 -4
  80. package/build/cjs/components/Icons/hlDigiturva.js +14 -4
  81. package/build/cjs/components/Icons/hlDisplaySize.js +19 -6
  82. package/build/cjs/components/Icons/hlDocument.js +14 -5
  83. package/build/cjs/components/Icons/hlDownload.js +18 -6
  84. package/build/cjs/components/Icons/hlEnvelope.js +12 -4
  85. package/build/cjs/components/Icons/hlError.js +22 -6
  86. package/build/cjs/components/Icons/hlEuro.js +12 -4
  87. package/build/cjs/components/Icons/hlExclamationMark.js +12 -4
  88. package/build/cjs/components/Icons/hlExpand.js +12 -4
  89. package/build/cjs/components/Icons/hlExternal.js +12 -4
  90. package/build/cjs/components/Icons/hlEyeClosed.js +12 -4
  91. package/build/cjs/components/Icons/hlEyeOpen.js +14 -5
  92. package/build/cjs/components/Icons/hlFaceId.js +12 -4
  93. package/build/cjs/components/Icons/hlFastDelivery.js +12 -4
  94. package/build/cjs/components/Icons/hlFingerprint.js +20 -8
  95. package/build/cjs/components/Icons/hlGlobe.js +12 -4
  96. package/build/cjs/components/Icons/hlHeadphones.js +12 -4
  97. package/build/cjs/components/Icons/hlHeadset.js +18 -6
  98. package/build/cjs/components/Icons/hlHeart.js +12 -4
  99. package/build/cjs/components/Icons/hlHome.js +12 -4
  100. package/build/cjs/components/Icons/hlHub.js +14 -5
  101. package/build/cjs/components/Icons/hlImage.js +12 -4
  102. package/build/cjs/components/Icons/hlInfo.js +18 -6
  103. package/build/cjs/components/Icons/hlInstallment.js +14 -5
  104. package/build/cjs/components/Icons/hlIotSim.js +14 -5
  105. package/build/cjs/components/Icons/hlLaptop.js +13 -4
  106. package/build/cjs/components/Icons/hlLink.js +16 -5
  107. package/build/cjs/components/Icons/hlLiveVideo.js +12 -4
  108. package/build/cjs/components/Icons/hlLock.js +18 -6
  109. package/build/cjs/components/Icons/hlMagnifyingGlass.js +14 -5
  110. package/build/cjs/components/Icons/hlMarker.js +14 -5
  111. package/build/cjs/components/Icons/hlMemory.js +14 -5
  112. package/build/cjs/components/Icons/hlMenu.js +12 -4
  113. package/build/cjs/components/Icons/hlMinimize.js +12 -4
  114. package/build/cjs/components/Icons/hlMinus.js +12 -4
  115. package/build/cjs/components/Icons/hlMobileData.js +12 -4
  116. package/build/cjs/components/Icons/hlMobilePayment.js +19 -6
  117. package/build/cjs/components/Icons/hlModem.js +26 -8
  118. package/build/cjs/components/Icons/hlMore.js +22 -6
  119. package/build/cjs/components/Icons/hlOs.js +14 -5
  120. package/build/cjs/components/Icons/hlPackage.js +12 -4
  121. package/build/cjs/components/Icons/hlPaperclip.js +12 -4
  122. package/build/cjs/components/Icons/hlPaytime.js +12 -4
  123. package/build/cjs/components/Icons/hlPen.js +12 -4
  124. package/build/cjs/components/Icons/hlPerson.js +12 -4
  125. package/build/cjs/components/Icons/hlPhone.js +17 -5
  126. package/build/cjs/components/Icons/hlPlaylist.js +13 -4
  127. package/build/cjs/components/Icons/hlPlus.js +14 -5
  128. package/build/cjs/components/Icons/hlPrepaid.js +12 -4
  129. package/build/cjs/components/Icons/hlProcessor.js +14 -5
  130. package/build/cjs/components/Icons/hlServices.js +12 -4
  131. package/build/cjs/components/Icons/hlSettings.js +12 -4
  132. package/build/cjs/components/Icons/hlShield.js +14 -5
  133. package/build/cjs/components/Icons/hlSim.js +14 -5
  134. package/build/cjs/components/Icons/hlSimSimple.js +18 -6
  135. package/build/cjs/components/Icons/hlSmile.js +22 -7
  136. package/build/cjs/components/Icons/hlSpeechBubble.js +14 -5
  137. package/build/cjs/components/Icons/hlSquaretrade.js +13 -4
  138. package/build/cjs/components/Icons/hlStar.js +12 -4
  139. package/build/cjs/components/Icons/hlStarFilled.js +12 -4
  140. package/build/cjs/components/Icons/hlTrash.js +14 -5
  141. package/build/cjs/components/Icons/hlTv.js +12 -4
  142. package/build/cjs/components/Icons/hlUnlock.js +14 -6
  143. package/build/cjs/components/Icons/hlUpload.js +18 -6
  144. package/build/cjs/components/Icons/hlWarning.js +18 -6
  145. package/build/cjs/components/Icons/hlWifi.js +18 -6
  146. package/build/cjs/components/Icons/hlWrench.js +12 -4
  147. package/build/cjs/components/Icons/hlX.js +12 -4
  148. package/build/cjs/components/InfoDialog/InfoDialog.js +31 -46
  149. package/build/cjs/components/Input/Input.js +143 -159
  150. package/build/cjs/components/Label/Label.js +22 -22
  151. package/build/cjs/components/LabelText/LabelText.js +24 -17
  152. package/build/cjs/components/MainHeaderNavigation/ChildComponents/BusinessMenu.js +29 -44
  153. package/build/cjs/components/MainHeaderNavigation/ChildComponents/DesktopMenu.js +167 -153
  154. package/build/cjs/components/MainHeaderNavigation/ChildComponents/LanguageSelector.js +34 -20
  155. package/build/cjs/components/MainHeaderNavigation/ChildComponents/LinkModifier.js +50 -32
  156. package/build/cjs/components/MainHeaderNavigation/ChildComponents/LoginTooltip.js +17 -5
  157. package/build/cjs/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.d.ts +5 -2
  158. package/build/cjs/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.js +100 -95
  159. package/build/cjs/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.d.ts +6 -2
  160. package/build/cjs/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.js +4 -58
  161. package/build/cjs/components/MainHeaderNavigation/ChildComponents/MinicartTooltip.js +20 -4
  162. package/build/cjs/components/MainHeaderNavigation/ChildComponents/MobileMenu.js +187 -159
  163. package/build/cjs/components/MainHeaderNavigation/ChildComponents/PageSearch.js +16 -5
  164. package/build/cjs/components/MainHeaderNavigation/MainHeaderNavigation.js +305 -272
  165. package/build/cjs/components/MainHeaderNavigation/context/NavContext.js +61 -49
  166. package/build/cjs/components/MainHeaderNavigation/globalNavStyles.d.ts +31 -16
  167. package/build/cjs/components/MainHeaderNavigation/globalNavStyles.js +39 -172
  168. package/build/cjs/components/Modal/Modal.js +127 -145
  169. package/build/cjs/components/Notification/Notification.js +74 -54
  170. package/build/cjs/components/NotificationBadge/NotificationBadge.js +29 -32
  171. package/build/cjs/components/Overlay/Overlay.js +70 -68
  172. package/build/cjs/components/Pill/Pill.js +91 -82
  173. package/build/cjs/components/PillGroup/PillGroup.js +50 -33
  174. package/build/cjs/components/PixelLoader/PixelLoader.js +37 -34
  175. package/build/cjs/components/PriorityNavigation/PriorityNavigation.js +281 -303
  176. package/build/cjs/components/PriorityNavigationItem/PriorityNavigationItem.js +27 -49
  177. package/build/cjs/components/ProgressIndicator/ProgressIndicator.js +140 -109
  178. package/build/cjs/components/RadioButton/RadioButton.js +91 -114
  179. package/build/cjs/components/ReadMore/ReadMore.js +86 -69
  180. package/build/cjs/components/Search/Search.js +52 -64
  181. package/build/cjs/components/Selectbox/Selectbox.js +279 -94
  182. package/build/cjs/components/Skeleton/Skeleton.js +69 -56
  183. package/build/cjs/components/Switch/Switch.js +62 -76
  184. package/build/cjs/components/Tab/Tab.js +55 -53
  185. package/build/cjs/components/Tabs/Tabs.js +93 -71
  186. package/build/cjs/components/Textarea/Textarea.js +76 -73
  187. package/build/cjs/components/Toaster/Toaster.js +59 -44
  188. package/build/cjs/components/Tooltip/Tooltip.js +74 -87
  189. package/build/cjs/hooks/useCloseOutsideOrElementClicked.js +23 -21
  190. package/build/cjs/hooks/useDebounce.js +9 -9
  191. package/build/cjs/hooks/useDocHeight.js +13 -13
  192. package/build/cjs/hooks/useOutsideClick.js +10 -10
  193. package/build/cjs/hooks/useResizeObserver.js +37 -24
  194. package/build/cjs/hooks/useScrollPosition.js +55 -54
  195. package/build/cjs/hooks/useWindowSize.js +20 -20
  196. package/build/cjs/themes/globalStyles.js +4 -4
  197. package/build/cjs/themes/gridTheme.js +1 -1
  198. package/build/cjs/themes/theme.js +12 -12
  199. package/build/cjs/themes/themeComponents/base.js +9 -8
  200. package/build/cjs/themes/themeComponents/breakpoints.js +6 -6
  201. package/build/cjs/themes/themeComponents/color.js +76 -74
  202. package/build/cjs/themes/themeComponents/fontFamily.js +3 -3
  203. package/build/cjs/themes/themeComponents/fontSize.js +31 -15
  204. package/build/cjs/themes/themeComponents/fontWeight.js +16 -16
  205. package/build/cjs/themes/themeComponents/forms.js +3 -2
  206. package/build/cjs/themes/themeComponents/layout.js +27 -27
  207. package/build/cjs/themes/themeComponents/lineHeight.js +32 -16
  208. package/build/cjs/themes/themeComponents/navigation.js +13 -13
  209. package/build/cjs/themes/themeComponents/radius.js +26 -26
  210. package/build/cjs/utils/common.js +15 -19
  211. package/build/cjs/utils/createStyled.d.ts +154 -134
  212. package/build/cjs/utils/createStyled.js +16 -2
  213. package/build/cjs/utils/styledUtils.js +2 -6
  214. package/build/es/_virtual/_virtual_inject.js +3 -0
  215. package/build/es/assets/fonts/fonts.css.js +3 -1
  216. package/build/es/components/Accordion/Accordion.js +66 -54
  217. package/build/es/components/AccordionItem/AccordionItem.js +94 -73
  218. package/build/es/components/AmountSelector/AmountSelector.js +121 -134
  219. package/build/es/components/Box/Box.js +38 -13
  220. package/build/es/components/Breadcrumb/Breadcrumb.js +73 -71
  221. package/build/es/components/Button/Button.d.ts +1 -1
  222. package/build/es/components/Button/Button.js +131 -127
  223. package/build/es/components/ButtonArrow/ButtonArrow.js +47 -49
  224. package/build/es/components/ButtonCard/ButtonCard.d.ts +2 -2
  225. package/build/es/components/ButtonCard/ButtonCard.js +97 -112
  226. package/build/es/components/ButtonClose/ButtonClose.d.ts +1 -1
  227. package/build/es/components/ButtonClose/ButtonClose.js +25 -14
  228. package/build/es/components/ButtonIcon/ButtonIcon.d.ts +44 -3
  229. package/build/es/components/ButtonIcon/ButtonIcon.js +105 -67
  230. package/build/es/components/ButtonPrimary/ButtonPrimary.d.ts +43 -2
  231. package/build/es/components/ButtonPrimary/ButtonPrimary.js +7 -35
  232. package/build/es/components/ButtonSecondary/ButtonSecondary.d.ts +43 -2
  233. package/build/es/components/ButtonSecondary/ButtonSecondary.js +7 -35
  234. package/build/es/components/Carousel/Carousel.d.ts +8 -2
  235. package/build/es/components/Carousel/Carousel.js +315 -346
  236. package/build/es/components/Checkbox/Checkbox.js +49 -108
  237. package/build/es/components/Chip/Chip.js +40 -34
  238. package/build/es/components/DateTimePicker/DateTimePicker.js +198 -334
  239. package/build/es/components/Divider/Divider.js +29 -15
  240. package/build/es/components/DnaLogo/DnaLogo.js +87 -51
  241. package/build/es/components/Drawer/Drawer.js +172 -167
  242. package/build/es/components/EmptyState/EmptyState.js +24 -12
  243. package/build/es/components/EnergyLabel/EnergyLabel.js +77 -73
  244. package/build/es/components/Expander/Expander.js +43 -38
  245. package/build/es/components/Floater/Floater.js +36 -14
  246. package/build/es/components/Footer/Components/FooterComponents.d.ts +4 -2
  247. package/build/es/components/Footer/Components/FooterComponents.js +305 -346
  248. package/build/es/components/Footer/Footer.js +51 -80
  249. package/build/es/components/Footer/context/FooterContext.js +9 -9
  250. package/build/es/components/Hero/Hero.js +101 -149
  251. package/build/es/components/Icon/Icon.js +41 -22
  252. package/build/es/components/Icons/Small/hlArrowBackSmall.js +12 -4
  253. package/build/es/components/Icons/Small/hlArrowForwardSmall.js +12 -4
  254. package/build/es/components/Icons/Small/hlArrowUnderSmall.js +12 -4
  255. package/build/es/components/Icons/Small/hlCalendarSmall.js +12 -4
  256. package/build/es/components/Icons/Small/hlChevronDownSmall.js +12 -4
  257. package/build/es/components/Icons/Small/hlChevronLeftSmall.js +12 -4
  258. package/build/es/components/Icons/Small/hlChevronRightSmall.js +12 -4
  259. package/build/es/components/Icons/Small/hlChevronUpSmall.js +12 -4
  260. package/build/es/components/Icons/Small/hlClockSmall.js +14 -5
  261. package/build/es/components/Icons/Small/hlDownloadSmall.js +18 -6
  262. package/build/es/components/Icons/Small/hlExternalSmall.js +12 -4
  263. package/build/es/components/Icons/Small/hlUploadSmall.js +18 -6
  264. package/build/es/components/Icons/Social/facebook.js +13 -4
  265. package/build/es/components/Icons/Social/instagram.js +13 -4
  266. package/build/es/components/Icons/Social/linkedin.js +13 -4
  267. package/build/es/components/Icons/Social/tiktok.js +12 -4
  268. package/build/es/components/Icons/Social/twitter.js +13 -4
  269. package/build/es/components/Icons/Social/youtube.js +12 -4
  270. package/build/es/components/Icons/hl404.js +12 -4
  271. package/build/es/components/Icons/hl4gSim.js +12 -4
  272. package/build/es/components/Icons/hl5gSim.js +12 -4
  273. package/build/es/components/Icons/hlBattery.js +16 -6
  274. package/build/es/components/Icons/hlBell.js +12 -4
  275. package/build/es/components/Icons/hlCableTVCard.js +12 -4
  276. package/build/es/components/Icons/hlCalendar.js +56 -15
  277. package/build/es/components/Icons/hlCall.js +12 -4
  278. package/build/es/components/Icons/hlCameraBack.js +18 -6
  279. package/build/es/components/Icons/hlCameraFront.js +14 -5
  280. package/build/es/components/Icons/hlCart.js +16 -6
  281. package/build/es/components/Icons/hlCartEmpty.js +16 -6
  282. package/build/es/components/Icons/hlChat.js +24 -7
  283. package/build/es/components/Icons/hlCheck.js +12 -4
  284. package/build/es/components/Icons/hlChevronDown.js +12 -4
  285. package/build/es/components/Icons/hlChevronLeft.js +12 -4
  286. package/build/es/components/Icons/hlChevronRight.js +12 -4
  287. package/build/es/components/Icons/hlChevronUp.js +12 -4
  288. package/build/es/components/Icons/hlCompensation.js +12 -4
  289. package/build/es/components/Icons/hlCookie.js +12 -4
  290. package/build/es/components/Icons/hlCopy.js +14 -5
  291. package/build/es/components/Icons/hlCoupon.js +16 -6
  292. package/build/es/components/Icons/hlDelivery.js +14 -4
  293. package/build/es/components/Icons/hlDigiturva.js +14 -4
  294. package/build/es/components/Icons/hlDisplaySize.js +19 -6
  295. package/build/es/components/Icons/hlDocument.js +14 -5
  296. package/build/es/components/Icons/hlDownload.js +18 -6
  297. package/build/es/components/Icons/hlEnvelope.js +12 -4
  298. package/build/es/components/Icons/hlError.js +22 -6
  299. package/build/es/components/Icons/hlEuro.js +12 -4
  300. package/build/es/components/Icons/hlExclamationMark.js +12 -4
  301. package/build/es/components/Icons/hlExpand.js +12 -4
  302. package/build/es/components/Icons/hlExternal.js +12 -4
  303. package/build/es/components/Icons/hlEyeClosed.js +12 -4
  304. package/build/es/components/Icons/hlEyeOpen.js +14 -5
  305. package/build/es/components/Icons/hlFaceId.js +12 -4
  306. package/build/es/components/Icons/hlFastDelivery.js +12 -4
  307. package/build/es/components/Icons/hlFingerprint.js +20 -8
  308. package/build/es/components/Icons/hlGlobe.js +12 -4
  309. package/build/es/components/Icons/hlHeadphones.js +12 -4
  310. package/build/es/components/Icons/hlHeadset.js +18 -6
  311. package/build/es/components/Icons/hlHeart.js +12 -4
  312. package/build/es/components/Icons/hlHome.js +12 -4
  313. package/build/es/components/Icons/hlHub.js +14 -5
  314. package/build/es/components/Icons/hlImage.js +12 -4
  315. package/build/es/components/Icons/hlInfo.js +18 -6
  316. package/build/es/components/Icons/hlInstallment.js +14 -5
  317. package/build/es/components/Icons/hlIotSim.js +14 -5
  318. package/build/es/components/Icons/hlLaptop.js +13 -4
  319. package/build/es/components/Icons/hlLink.js +16 -5
  320. package/build/es/components/Icons/hlLiveVideo.js +12 -4
  321. package/build/es/components/Icons/hlLock.js +18 -6
  322. package/build/es/components/Icons/hlMagnifyingGlass.js +14 -5
  323. package/build/es/components/Icons/hlMarker.js +14 -5
  324. package/build/es/components/Icons/hlMemory.js +14 -5
  325. package/build/es/components/Icons/hlMenu.js +12 -4
  326. package/build/es/components/Icons/hlMinimize.js +12 -4
  327. package/build/es/components/Icons/hlMinus.js +12 -4
  328. package/build/es/components/Icons/hlMobileData.js +12 -4
  329. package/build/es/components/Icons/hlMobilePayment.js +19 -6
  330. package/build/es/components/Icons/hlModem.js +26 -8
  331. package/build/es/components/Icons/hlMore.js +22 -6
  332. package/build/es/components/Icons/hlOs.js +14 -5
  333. package/build/es/components/Icons/hlPackage.js +12 -4
  334. package/build/es/components/Icons/hlPaperclip.js +12 -4
  335. package/build/es/components/Icons/hlPaytime.js +12 -4
  336. package/build/es/components/Icons/hlPen.js +12 -4
  337. package/build/es/components/Icons/hlPerson.js +12 -4
  338. package/build/es/components/Icons/hlPhone.js +17 -5
  339. package/build/es/components/Icons/hlPlaylist.js +13 -4
  340. package/build/es/components/Icons/hlPlus.js +14 -5
  341. package/build/es/components/Icons/hlPrepaid.js +12 -4
  342. package/build/es/components/Icons/hlProcessor.js +14 -5
  343. package/build/es/components/Icons/hlServices.js +12 -4
  344. package/build/es/components/Icons/hlSettings.js +12 -4
  345. package/build/es/components/Icons/hlShield.js +14 -5
  346. package/build/es/components/Icons/hlSim.js +14 -5
  347. package/build/es/components/Icons/hlSimSimple.js +18 -6
  348. package/build/es/components/Icons/hlSmile.js +22 -7
  349. package/build/es/components/Icons/hlSpeechBubble.js +14 -5
  350. package/build/es/components/Icons/hlSquaretrade.js +13 -4
  351. package/build/es/components/Icons/hlStar.js +12 -4
  352. package/build/es/components/Icons/hlStarFilled.js +12 -4
  353. package/build/es/components/Icons/hlTrash.js +14 -5
  354. package/build/es/components/Icons/hlTv.js +12 -4
  355. package/build/es/components/Icons/hlUnlock.js +14 -6
  356. package/build/es/components/Icons/hlUpload.js +18 -6
  357. package/build/es/components/Icons/hlWarning.js +18 -6
  358. package/build/es/components/Icons/hlWifi.js +18 -6
  359. package/build/es/components/Icons/hlWrench.js +12 -4
  360. package/build/es/components/Icons/hlX.js +12 -4
  361. package/build/es/components/InfoDialog/InfoDialog.js +31 -46
  362. package/build/es/components/Input/Input.js +143 -159
  363. package/build/es/components/Label/Label.js +22 -22
  364. package/build/es/components/LabelText/LabelText.js +24 -17
  365. package/build/es/components/MainHeaderNavigation/ChildComponents/BusinessMenu.js +29 -44
  366. package/build/es/components/MainHeaderNavigation/ChildComponents/DesktopMenu.js +167 -153
  367. package/build/es/components/MainHeaderNavigation/ChildComponents/LanguageSelector.js +34 -20
  368. package/build/es/components/MainHeaderNavigation/ChildComponents/LinkModifier.js +50 -32
  369. package/build/es/components/MainHeaderNavigation/ChildComponents/LoginTooltip.js +17 -5
  370. package/build/es/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.d.ts +5 -2
  371. package/build/es/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.js +100 -95
  372. package/build/es/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.d.ts +6 -2
  373. package/build/es/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.js +4 -58
  374. package/build/es/components/MainHeaderNavigation/ChildComponents/MinicartTooltip.js +20 -4
  375. package/build/es/components/MainHeaderNavigation/ChildComponents/MobileMenu.js +187 -159
  376. package/build/es/components/MainHeaderNavigation/ChildComponents/PageSearch.js +16 -5
  377. package/build/es/components/MainHeaderNavigation/MainHeaderNavigation.js +305 -272
  378. package/build/es/components/MainHeaderNavigation/context/NavContext.js +61 -49
  379. package/build/es/components/MainHeaderNavigation/globalNavStyles.d.ts +31 -16
  380. package/build/es/components/MainHeaderNavigation/globalNavStyles.js +39 -172
  381. package/build/es/components/Modal/Modal.js +127 -145
  382. package/build/es/components/Notification/Notification.js +74 -54
  383. package/build/es/components/NotificationBadge/NotificationBadge.js +29 -32
  384. package/build/es/components/Overlay/Overlay.js +70 -68
  385. package/build/es/components/Pill/Pill.js +91 -82
  386. package/build/es/components/PillGroup/PillGroup.js +50 -33
  387. package/build/es/components/PixelLoader/PixelLoader.js +37 -34
  388. package/build/es/components/PriorityNavigation/PriorityNavigation.js +281 -303
  389. package/build/es/components/PriorityNavigationItem/PriorityNavigationItem.js +27 -49
  390. package/build/es/components/ProgressIndicator/ProgressIndicator.js +140 -109
  391. package/build/es/components/RadioButton/RadioButton.js +91 -114
  392. package/build/es/components/ReadMore/ReadMore.js +86 -69
  393. package/build/es/components/Search/Search.js +52 -64
  394. package/build/es/components/Selectbox/Selectbox.js +279 -94
  395. package/build/es/components/Skeleton/Skeleton.js +69 -56
  396. package/build/es/components/Switch/Switch.js +62 -76
  397. package/build/es/components/Tab/Tab.js +55 -53
  398. package/build/es/components/Tabs/Tabs.js +93 -71
  399. package/build/es/components/Textarea/Textarea.js +76 -73
  400. package/build/es/components/Toaster/Toaster.js +59 -44
  401. package/build/es/components/Tooltip/Tooltip.js +74 -87
  402. package/build/es/hooks/useCloseOutsideOrElementClicked.js +23 -21
  403. package/build/es/hooks/useDebounce.js +9 -9
  404. package/build/es/hooks/useDocHeight.js +13 -13
  405. package/build/es/hooks/useOutsideClick.js +10 -10
  406. package/build/es/hooks/useResizeObserver.js +37 -24
  407. package/build/es/hooks/useScrollPosition.js +55 -54
  408. package/build/es/hooks/useWindowSize.js +20 -20
  409. package/build/es/themes/globalStyles.js +4 -4
  410. package/build/es/themes/gridTheme.js +1 -1
  411. package/build/es/themes/theme.js +12 -12
  412. package/build/es/themes/themeComponents/base.js +9 -8
  413. package/build/es/themes/themeComponents/breakpoints.js +6 -6
  414. package/build/es/themes/themeComponents/color.js +76 -74
  415. package/build/es/themes/themeComponents/fontFamily.js +3 -3
  416. package/build/es/themes/themeComponents/fontSize.js +31 -15
  417. package/build/es/themes/themeComponents/fontWeight.js +16 -16
  418. package/build/es/themes/themeComponents/forms.js +3 -2
  419. package/build/es/themes/themeComponents/layout.js +27 -27
  420. package/build/es/themes/themeComponents/lineHeight.js +32 -16
  421. package/build/es/themes/themeComponents/navigation.js +13 -13
  422. package/build/es/themes/themeComponents/radius.js +26 -26
  423. package/build/es/utils/common.js +15 -19
  424. package/build/es/utils/createStyled.d.ts +154 -134
  425. package/build/es/utils/createStyled.js +16 -2
  426. package/build/es/utils/styledUtils.js +2 -6
  427. package/package.json +19 -17
@@ -8,371 +8,340 @@ import { media, getMultipliedSize } from '../../utils/styledUtils.js';
8
8
  import ButtonArrow from '../ButtonArrow/ButtonArrow.js';
9
9
  import ButtonIcon from '../ButtonIcon/ButtonIcon.js';
10
10
 
11
- const CarouselWrapper = styled.div ``;
12
- const Header = styled.div `
13
- display: flex;
14
- justify-content: space-between;
15
- gap: 1.25rem;
16
- margin-bottom: 1.25rem;
17
- `;
18
- const Title = styled.h2 `
19
- margin: 0;
20
- `;
21
- const Navigation = styled.div `
22
- display: inline-flex;
23
- margin-left: auto;
24
- gap: 0.625rem;
25
- `;
26
- const Content = styled.div `
27
- position: relative;
28
- overflow: hidden;
29
- touch-action: pan-y;
30
- `;
31
- const SlidesWrapper = styled.div `
32
- position: relative;
33
- display: flex;
34
- width: 100%;
35
- height: 100%;
36
- transition-property: transform;
37
- transform: translate3d(0px, 0, 0);
38
- transition-duration: 0ms;
39
- transition-delay: 0ms;
40
- user-select: none;
41
- `;
42
- const SlideItem = styled.div `
43
- display: block;
44
- position: relative;
45
- flex-shrink: 0;
46
- padding-right: ${({ $gap }) => $gap}rem;
47
-
48
- ${({ $responsive, $visibleItems }) => !$responsive && $visibleItems
49
- ? `flex-basis: calc(100% / ${$visibleItems});`
50
- : `
11
+ const CarouselWrapper = styled.div.withConfig({
12
+ displayName: "Carousel__CarouselWrapper",
13
+ componentId: "sc-ekmiuj-0"
14
+ })([""]);
15
+ const Header = styled.div.withConfig({
16
+ displayName: "Carousel__Header",
17
+ componentId: "sc-ekmiuj-1"
18
+ })(["display:flex;justify-content:space-between;gap:1.25rem;margin-bottom:1.25rem;"]);
19
+ const Title = styled.h2.withConfig({
20
+ displayName: "Carousel__Title",
21
+ componentId: "sc-ekmiuj-2"
22
+ })(["margin:0;"]);
23
+ const Navigation = styled.div.withConfig({
24
+ displayName: "Carousel__Navigation",
25
+ componentId: "sc-ekmiuj-3"
26
+ })(["display:inline-flex;margin-left:auto;gap:0.625rem;"]);
27
+ const Content = styled.div.withConfig({
28
+ displayName: "Carousel__Content",
29
+ componentId: "sc-ekmiuj-4"
30
+ })(["position:relative;overflow:hidden;touch-action:pan-y;"]);
31
+ const SlidesWrapper = styled.div.withConfig({
32
+ displayName: "Carousel__SlidesWrapper",
33
+ componentId: "sc-ekmiuj-5"
34
+ })(["position:relative;display:flex;width:100%;height:100%;transition-property:transform;transform:translate3d(0px,0,0);transition-duration:0ms;transition-delay:0ms;user-select:none;"]);
35
+ const SlideItem = styled.div.withConfig({
36
+ displayName: "Carousel__SlideItem",
37
+ componentId: "sc-ekmiuj-6"
38
+ })(["display:block;position:relative;flex-shrink:0;padding-right:", "rem;", " a{pointer-events:", ";}"], ({
39
+ $gap
40
+ }) => $gap, ({
41
+ $responsive,
42
+ $visibleItems
43
+ }) => !$responsive && $visibleItems ? `flex-basis: calc(100% / ${$visibleItems});` : `
51
44
  flex-basis: auto;
52
45
  width: max-content;
53
- `}
54
-
55
- a {
56
- pointer-events: ${({ $isSwiping }) => ($isSwiping ? 'none' : 'auto')};
57
- }
58
- `;
59
- const Footer = styled.div `
60
- ${media.md `
46
+ `, ({
47
+ $isSwiping
48
+ }) => $isSwiping ? 'none' : 'auto');
49
+ const Footer = styled.div.withConfig({
50
+ displayName: "Carousel__Footer",
51
+ componentId: "sc-ekmiuj-7"
52
+ })(["", ";"], media.md`
61
53
  display: grid;
62
54
  grid-template-columns: [whitespace] 1fr [pagination] auto [footerButton] 1fr;
63
55
  gap: 2rem;
64
56
  margin: ${getMultipliedSize(theme.base.baseHeight, 2)} 0;
65
57
  align-items: center;
66
- `};
67
- `;
68
- const Pagination = styled.div `
69
- display: none;
70
-
71
- ${media.md `
58
+ `);
59
+ const Pagination = styled.div.withConfig({
60
+ displayName: "Carousel__Pagination",
61
+ componentId: "sc-ekmiuj-8"
62
+ })(["display:none;", ";"], media.md`
72
63
  display: flex;
73
64
  grid-column: pagination;
74
65
  flex-wrap: wrap;
75
66
  justify-content: center;
76
67
  gap: 0.5rem 1rem;
77
68
  width: 100%;
78
- `};
79
- `;
80
- const PaginationItem = styled.button `
81
- display: inline-block;
82
- cursor: pointer;
83
- width: 2rem;
84
- height: 1rem;
85
- border-radius: ${theme.radius.pill};
86
- border: 2px solid ${theme.color.line.L01};
87
- background-color: ${theme.color.background.white.default};
88
- transition: all 0.2s ease-in-out;
89
-
90
- ${({ $isActive }) => $isActive &&
91
- `
69
+ `);
70
+ const PaginationItem = styled.button.withConfig({
71
+ displayName: "Carousel__PaginationItem",
72
+ componentId: "sc-ekmiuj-9"
73
+ })(["display:inline-block;cursor:pointer;width:2rem;height:1rem;border-radius:", ";border:2px solid ", ";background-color:", ";transition:all 0.2s ease-in-out;", " &:focus{border:2px solid ", ";box-shadow:0px 0px 0px 2px ", ";outline:none;}&:hover{border-color:", ";}"], theme.radius.pill, theme.color.line.L01, theme.color.background.white.default, ({
74
+ $isActive
75
+ }) => $isActive && `
92
76
  width: 3rem;
93
77
  border-color: ${theme.color.default.pink};
94
78
  background-color: ${theme.color.background.pink.default};
95
- `}
96
-
97
- &:focus {
98
- border: 2px solid ${theme.color.focus.light};
99
- box-shadow: 0px 0px 0px 2px ${theme.color.focus.dark};
100
- outline: none;
101
- }
102
-
103
- &:hover {
104
- border-color: ${theme.color.default.pink};
105
- }
106
- `;
107
- const Scrollbar = styled.div `
108
- width: 100%;
109
- height: ${getMultipliedSize(theme.base.baseHeight, 0.6)};
110
- margin: 1rem 0;
111
- border-radius: ${theme.radius.pill};
112
- background-color: ${theme.color.background.sand.E02};
113
- user-select: none;
114
- touch-action: pan-y;
115
-
116
- ${media.md `
79
+ `, theme.color.focus.light, theme.color.focus.dark, theme.color.default.pink);
80
+ const Scrollbar = styled.div.withConfig({
81
+ displayName: "Carousel__Scrollbar",
82
+ componentId: "sc-ekmiuj-10"
83
+ })(["width:100%;height:", ";margin:1rem 0;border-radius:", ";background-color:", ";user-select:none;touch-action:pan-y;", ";"], getMultipliedSize(theme.base.baseHeight, 0.6), theme.radius.pill, theme.color.background.sand.E02, media.md`
117
84
  display: none;
118
- `};
119
- `;
120
- const Knob = styled.div `
121
- position: relative;
122
- top: 0;
123
- left: 0;
124
- width: calc(100% / ${({ $knobSize }) => $knobSize});
125
- height: 100%;
126
- border-radius: ${theme.radius.pill};
127
- background-color: ${theme.color.background.pink.default};
128
- transform: translate3d(0px, 0, 0);
129
- transition-duration: 0ms;
130
- transition-delay: 0ms;
131
- user-select: none;
132
- `;
133
- const FooterButton = styled.div `
134
- grid-column: footerButton;
135
- text-align: right;
136
- `;
137
- const Counter = styled.span `
138
- margin-top: 0.5rem;
139
- font-size: ${theme.fontSize.s};
140
- font-weight: ${theme.fontWeight.medium};
141
- margin-right: 1rem;
142
- `;
85
+ `);
86
+ const Knob = styled.div.withConfig({
87
+ displayName: "Carousel__Knob",
88
+ componentId: "sc-ekmiuj-11"
89
+ })(["position:relative;top:0;left:0;width:calc(100% / ", ");height:100%;border-radius:", ";background-color:", ";transform:translate3d(0px,0,0);transition-duration:0ms;transition-delay:0ms;user-select:none;"], ({
90
+ $knobSize
91
+ }) => $knobSize, theme.radius.pill, theme.color.background.pink.default);
92
+ const FooterButton = styled.div.withConfig({
93
+ displayName: "Carousel__FooterButton",
94
+ componentId: "sc-ekmiuj-12"
95
+ })(["grid-column:footerButton;text-align:right;"]);
96
+ const Counter = styled.span.withConfig({
97
+ displayName: "Carousel__Counter",
98
+ componentId: "sc-ekmiuj-13"
99
+ })(["margin-top:0.5rem;font-size:", ";font-weight:", ";margin-right:1rem;"], theme.fontSize.s, theme.fontWeight.medium);
143
100
  /** @visibleName Carousel */
144
- const Carousel = (_a) => {
145
- var _b, _c;
146
- var { 'data-testid': dataTestId } = _a, props = __rest(_a, ['data-testid']);
147
- const slidesWrapperRef = useRef(null);
148
- const scrollbarRef = useRef(null);
149
- const knobRef = useRef(null);
150
- const firstItemRef = useRef(null);
151
- const { isMobile, width: windowWidth } = useWindowSize(theme.breakpoints.md);
152
- const [currentIndex, setCurrentIndex] = useState(0);
153
- const [isSwiping, setIsSwiping] = useState(false);
154
- const [autoVisibleItems, setAutoVisibleItems] = useState(null);
155
- useEffect(() => {
156
- if (props.responsive) {
157
- const container = slidesWrapperRef.current;
158
- const firstItem = firstItemRef.current;
159
- if (container && firstItem) {
160
- Array.from(container.children).forEach(itemElement => {
161
- const item = itemElement;
162
- item.style.flexBasis = '';
163
- item.style.width = '';
164
- });
165
- const containerWidth = container.offsetWidth;
166
- const itemWidth = firstItem.offsetWidth;
167
- if (itemWidth > 0) {
168
- const realVisibleItems = containerWidth / itemWidth;
169
- setAutoVisibleItems(Math.max(1, realVisibleItems));
170
- }
171
- }
172
- }
173
- else {
174
- setAutoVisibleItems(null);
175
- }
176
- }, [props.responsive, windowWidth, props.children]);
177
- const getStep = (step, visibleItems) => {
178
- if (step > visibleItems) {
179
- return Math.floor(visibleItems);
180
- }
181
- return Math.floor(step);
182
- };
183
- const visibleItems = (_b = autoVisibleItems !== null && autoVisibleItems !== void 0 ? autoVisibleItems : props.visibleItems) !== null && _b !== void 0 ? _b : (isMobile ? 1.2 : 1);
184
- const slidesWrapperGapSizePx = 20;
185
- const slidesCount = Children.count(props.children);
186
- const slideScreensCount = Math.max(1, slidesCount - Math.floor(visibleItems) + 1);
187
- const step = getStep((_c = props.swipeStep) !== null && _c !== void 0 ? _c : 1, visibleItems);
188
- const currentStepIndex = Math.ceil(currentIndex / step);
189
- const totalSwipeSteps = Math.ceil(slideScreensCount / step + ((slideScreensCount - 1) % step !== 0 ? 1 : 0));
190
- const data = useMemo(() => ({
191
- startX: 0,
192
- startTime: 0,
193
- startTransform: 0,
194
- currentTransform: 0,
195
- knobStartTransform: 0,
196
- knobCurrentTransform: 0,
197
- direction: 0,
198
- itemWidth: 0,
199
- lastItemX: 0,
200
- scrollWidth: 0,
201
- scrollbarNavigation: false,
202
- scrollbarToSlidesRatio: 1,
203
- }), []);
204
- const getElementTransform = (element) => {
205
- const matrix = new DOMMatrix(window.getComputedStyle(element).transform);
206
- return matrix.m41 || 0;
207
- };
208
- const setElementTransform = (element, transform, delay) => {
209
- if (element.current) {
210
- element.current.style.setProperty('transition-duration', `${delay !== null && delay !== void 0 ? delay : 300}ms`);
211
- element.current.style.setProperty('transform', `translate3d(${Number.isNaN(transform) ? 0 : transform}px, 0px, 0px)`);
212
- }
213
- };
214
- const handleSetCurrentIndex = (index) => {
215
- if (index === currentIndex) {
216
- setElementTransform(slidesWrapperRef, data.startTransform);
217
- setElementTransform(knobRef, data.knobStartTransform);
218
- }
219
- else if (index < 0) {
220
- setCurrentIndex(0);
221
- setElementTransform(slidesWrapperRef, 0);
222
- }
223
- else if (index > slideScreensCount - 1) {
224
- setCurrentIndex(slideScreensCount - 1);
225
- setElementTransform(slidesWrapperRef, data.startTransform);
226
- }
227
- else {
228
- setCurrentIndex(index);
229
- }
230
- };
231
- const handleNavigationButtonPreviousClick = () => {
232
- handleSetCurrentIndex(currentIndex - step);
233
- };
234
- const handleNavigationButtonNextClick = () => {
235
- handleSetCurrentIndex(currentIndex + step);
236
- };
237
- const handlePaginationItemClick = (e) => {
238
- if (e.currentTarget.parentElement) {
239
- const index = [...e.currentTarget.parentElement.children].indexOf(e.currentTarget);
240
- handleSetCurrentIndex(index * step);
241
- }
242
- };
243
- const handlePointerMove = (e) => {
244
- const diff = e.pageX - data.startX;
245
- if (Math.abs(diff) < 5) {
246
- return;
247
- }
248
- data.currentTransform =
249
- diff * (data.scrollbarNavigation ? data.scrollbarToSlidesRatio * -1 : 1) +
250
- data.startTransform;
251
- data.knobCurrentTransform =
252
- diff / (data.scrollbarNavigation ? 1 : data.scrollbarToSlidesRatio * -1) +
253
- data.knobStartTransform;
254
- data.direction = Math.sign(diff) * (data.scrollbarNavigation ? 1 : -1);
255
- if (currentIndex <= 0) {
256
- if (data.currentTransform > 0) {
257
- data.currentTransform = -1 + Math.pow((data.startTransform + diff), 0.85);
258
- }
259
- }
260
- else if (currentIndex + Math.ceil(visibleItems) >= Children.count(props.children)) {
261
- if (data.currentTransform < -data.lastItemX) {
262
- data.currentTransform =
263
- -data.lastItemX + 1 - Math.pow((-data.lastItemX - data.startTransform - diff), 0.85);
264
- }
101
+ const Carousel = _a => {
102
+ var _b, _c;
103
+ var {
104
+ 'data-testid': dataTestId
105
+ } = _a,
106
+ props = __rest(_a, ['data-testid']);
107
+ const slidesWrapperRef = useRef(null);
108
+ const scrollbarRef = useRef(null);
109
+ const knobRef = useRef(null);
110
+ const firstItemRef = useRef(null);
111
+ const {
112
+ isMobile,
113
+ width: windowWidth
114
+ } = useWindowSize(theme.breakpoints.md);
115
+ const [currentIndex, setCurrentIndex] = useState(0);
116
+ const [isSwiping, setIsSwiping] = useState(false);
117
+ const [autoVisibleItems, setAutoVisibleItems] = useState(null);
118
+ useEffect(() => {
119
+ if (props.responsive) {
120
+ const container = slidesWrapperRef.current;
121
+ const firstItem = firstItemRef.current;
122
+ if (container && firstItem) {
123
+ Array.from(container.children).forEach(itemElement => {
124
+ const item = itemElement;
125
+ item.style.flexBasis = '';
126
+ item.style.width = '';
127
+ });
128
+ const containerWidth = container.offsetWidth;
129
+ const itemWidth = firstItem.offsetWidth;
130
+ if (itemWidth > 0) {
131
+ const realVisibleItems = containerWidth / itemWidth;
132
+ setAutoVisibleItems(Math.max(1, realVisibleItems));
265
133
  }
266
- if (data.knobCurrentTransform < 0) {
267
- data.knobCurrentTransform = 0;
268
- }
269
- if (data.knobCurrentTransform > data.lastItemX / data.scrollbarToSlidesRatio) {
270
- data.knobCurrentTransform = data.lastItemX / data.scrollbarToSlidesRatio;
271
- }
272
- setElementTransform(slidesWrapperRef, data.currentTransform, 0);
273
- setElementTransform(knobRef, data.knobCurrentTransform, 0);
274
- setIsSwiping(true);
275
- };
276
- const handlePointerUp = (e) => {
277
- const endTime = Date.now();
278
- if (endTime - data.startTime > 300) {
279
- const swipeRatio = Math.abs(data.currentTransform - data.startTransform) / data.itemWidth;
280
- if (swipeRatio >= 0.5) {
281
- handleSetCurrentIndex(currentIndex + Math.round(data.direction > 0 ? swipeRatio : -swipeRatio) * step);
282
- }
283
- else {
284
- handleSetCurrentIndex(currentIndex);
285
- }
286
- }
287
- else {
288
- handleSetCurrentIndex(currentIndex + data.direction * step);
289
- }
290
- if (data.scrollbarNavigation && data.direction === 0) {
291
- if (knobRef.current) {
292
- handleSetCurrentIndex(currentIndex +
293
- Math.round((e.pageX -
294
- knobRef.current.getBoundingClientRect().x -
295
- knobRef.current.offsetWidth / 2) /
296
- knobRef.current.offsetWidth));
297
- }
298
- }
299
- document.removeEventListener('pointermove', handlePointerMove);
300
- document.removeEventListener('pointerup', handlePointerUp);
301
- setIsSwiping(false);
302
- };
303
- const handleSlidesPointerDown = (e) => {
304
- if (e.button !== 0)
305
- return;
306
- if (slidesWrapperRef.current && scrollbarRef.current && knobRef.current) {
307
- data.startX = e.pageX;
308
- data.startTime = Date.now();
309
- data.startTransform = getElementTransform(slidesWrapperRef.current);
310
- data.scrollbarNavigation = Boolean(e.currentTarget === scrollbarRef.current);
311
- data.knobStartTransform = getElementTransform(knobRef.current);
312
- document.addEventListener('pointermove', handlePointerMove);
313
- document.addEventListener('pointerup', handlePointerUp);
314
- }
315
- };
316
- const handleScrollbarPointerDown = (e) => {
317
- handleSlidesPointerDown(e);
318
- };
319
- const handlePointerDown = (e) => {
320
- e.preventDefault();
321
- };
322
- useEffect(() => {
323
- if (slidesWrapperRef.current && scrollbarRef.current) {
324
- const isRest = Children.count(props.children) - (currentIndex + visibleItems) < 0;
325
- data.itemWidth = slidesWrapperRef.current.offsetWidth / visibleItems;
326
- data.scrollWidth = slidesWrapperRef.current.scrollWidth;
327
- data.lastItemX =
328
- data.itemWidth * (Children.count(props.children) - visibleItems) -
329
- (isRest ? slidesWrapperGapSizePx * (Math.ceil(visibleItems) - visibleItems) : 0);
330
- data.scrollbarToSlidesRatio =
331
- data.lastItemX /
332
- (scrollbarRef.current.offsetWidth -
333
- scrollbarRef.current.offsetWidth / slideScreensCount);
334
- let slidesTransform = 0;
335
- if (Children.count(props.children) >= visibleItems) {
336
- slidesTransform =
337
- data.itemWidth * currentIndex -
338
- (isRest ? data.itemWidth * (visibleItems % 1) + slidesWrapperGapSizePx : 0);
339
- }
340
- setElementTransform(slidesWrapperRef, -slidesTransform);
341
- setElementTransform(knobRef, slidesTransform / data.scrollbarToSlidesRatio);
342
- }
343
- }, [currentIndex, data, props.children, slideScreensCount, visibleItems]);
344
- useEffect(() => {
345
- var _a;
346
- if (props.responsive && autoVisibleItems) {
347
- const items = (_a = slidesWrapperRef.current) === null || _a === void 0 ? void 0 : _a.children;
348
- if (items) {
349
- Array.from(items).forEach(itemElement => {
350
- const item = itemElement;
351
- item.style.flexBasis = `calc(100% / ${autoVisibleItems})`;
352
- item.style.width = '';
353
- });
354
- }
355
- }
356
- }, [autoVisibleItems, props.responsive]);
357
- return (React__default.createElement(CarouselWrapper, { id: props.id, className: props.className, "data-testid": dataTestId },
358
- React__default.createElement(Header, { "data-testid": dataTestId && `${dataTestId}-header` },
359
- props.title && React__default.createElement(Title, null, props.title),
360
- React__default.createElement(Navigation, null,
361
- props.hasCounter && (React__default.createElement(Counter, null,
362
- slideScreensCount === 0 ? 0 : currentStepIndex + 1,
363
- "/",
364
- totalSwipeSteps)),
365
- React__default.createElement(ButtonArrow, { direction: "left", "aria-label": props.previousAriaLabel, onClick: handleNavigationButtonPreviousClick, disabled: currentIndex <= 0, type: "button" }),
366
- React__default.createElement(ButtonArrow, { direction: "right", "aria-label": props.nextAriaLabel, onClick: handleNavigationButtonNextClick, disabled: currentIndex + visibleItems >= Children.count(props.children), type: "button" }))),
367
- React__default.createElement(Content, { "data-testid": dataTestId && `${dataTestId}-content` },
368
- React__default.createElement(SlidesWrapper, { ref: slidesWrapperRef, onPointerDown: handleSlidesPointerDown }, Children.map(props.children, (child, index) => (React__default.createElement(SlideItem, { ref: index === 0 ? firstItemRef : undefined, "$visibleItems": visibleItems, "$isSwiping": isSwiping, onPointerDown: handlePointerDown, "$responsive": Boolean(props.responsive), "$gap": slidesWrapperGapSizePx / 16 }, child))))),
369
- React__default.createElement(Footer, { "data-testid": dataTestId && `${dataTestId}-footer` },
370
- React__default.createElement(Pagination, null, [...Array(totalSwipeSteps).keys()].map((value, index) => (React__default.createElement(PaginationItem, { key: value, "aria-label": props.paginationAriaLabel &&
371
- `${props.paginationAriaLabel} ${index + 1}`, "aria-current": Math.ceil(currentIndex / step) === index, "$isActive": Math.ceil(currentIndex / step) === index, onClick: handlePaginationItemClick, type: "button" })))),
372
- React__default.createElement(Scrollbar, { ref: scrollbarRef, onPointerDown: handleScrollbarPointerDown },
373
- React__default.createElement(Knob, { ref: knobRef, "$knobSize": slideScreensCount })),
374
- props.footerButton && (React__default.createElement(FooterButton, null,
375
- React__default.createElement(ButtonIcon, { icon: ArrowRight, onClick: props.onFooterButtonClick }, props.footerButton))))));
134
+ }
135
+ } else {
136
+ setAutoVisibleItems(null);
137
+ }
138
+ }, [props.responsive, windowWidth, props.children]);
139
+ const getStep = (step, visibleItems) => {
140
+ if (step > visibleItems) {
141
+ return Math.floor(visibleItems);
142
+ }
143
+ return Math.floor(step);
144
+ };
145
+ const visibleItems = (_b = autoVisibleItems !== null && autoVisibleItems !== void 0 ? autoVisibleItems : props.visibleItems) !== null && _b !== void 0 ? _b : isMobile ? 1.2 : 1;
146
+ const slidesWrapperGapSizePx = 20;
147
+ const slidesCount = Children.count(props.children);
148
+ const slideScreensCount = Math.max(1, slidesCount - Math.floor(visibleItems) + 1);
149
+ const step = getStep((_c = props.swipeStep) !== null && _c !== void 0 ? _c : 1, visibleItems);
150
+ const currentStepIndex = Math.ceil(currentIndex / step);
151
+ const totalSwipeSteps = Math.ceil(slideScreensCount / step + ((slideScreensCount - 1) % step !== 0 ? 1 : 0));
152
+ const data = useMemo(() => ({
153
+ startX: 0,
154
+ startTime: 0,
155
+ startTransform: 0,
156
+ currentTransform: 0,
157
+ knobStartTransform: 0,
158
+ knobCurrentTransform: 0,
159
+ direction: 0,
160
+ itemWidth: 0,
161
+ lastItemX: 0,
162
+ scrollWidth: 0,
163
+ scrollbarNavigation: false,
164
+ scrollbarToSlidesRatio: 1
165
+ }), []);
166
+ const getElementTransform = element => {
167
+ const matrix = new DOMMatrix(window.getComputedStyle(element).transform);
168
+ return matrix.m41 || 0;
169
+ };
170
+ const setElementTransform = (element, transform, delay) => {
171
+ if (element.current) {
172
+ element.current.style.setProperty('transition-duration', `${delay !== null && delay !== void 0 ? delay : 300}ms`);
173
+ element.current.style.setProperty('transform', `translate3d(${Number.isNaN(transform) ? 0 : transform}px, 0px, 0px)`);
174
+ }
175
+ };
176
+ const handleSetCurrentIndex = index => {
177
+ if (index === currentIndex) {
178
+ setElementTransform(slidesWrapperRef, data.startTransform);
179
+ setElementTransform(knobRef, data.knobStartTransform);
180
+ } else if (index < 0) {
181
+ setCurrentIndex(0);
182
+ setElementTransform(slidesWrapperRef, 0);
183
+ } else if (index > slideScreensCount - 1) {
184
+ setCurrentIndex(slideScreensCount - 1);
185
+ setElementTransform(slidesWrapperRef, data.startTransform);
186
+ } else {
187
+ setCurrentIndex(index);
188
+ }
189
+ };
190
+ const handleNavigationButtonPreviousClick = () => {
191
+ handleSetCurrentIndex(currentIndex - step);
192
+ };
193
+ const handleNavigationButtonNextClick = () => {
194
+ handleSetCurrentIndex(currentIndex + step);
195
+ };
196
+ const handlePaginationItemClick = e => {
197
+ if (e.currentTarget.parentElement) {
198
+ const index = [...e.currentTarget.parentElement.children].indexOf(e.currentTarget);
199
+ handleSetCurrentIndex(index * step);
200
+ }
201
+ };
202
+ const handlePointerMove = e => {
203
+ const diff = e.pageX - data.startX;
204
+ if (Math.abs(diff) < 5) {
205
+ return;
206
+ }
207
+ data.currentTransform = diff * (data.scrollbarNavigation ? data.scrollbarToSlidesRatio * -1 : 1) + data.startTransform;
208
+ data.knobCurrentTransform = diff / (data.scrollbarNavigation ? 1 : data.scrollbarToSlidesRatio * -1) + data.knobStartTransform;
209
+ data.direction = Math.sign(diff) * (data.scrollbarNavigation ? 1 : -1);
210
+ if (currentIndex <= 0) {
211
+ if (data.currentTransform > 0) {
212
+ data.currentTransform = -1 + Math.pow(data.startTransform + diff, 0.85);
213
+ }
214
+ } else if (currentIndex + Math.ceil(visibleItems) >= Children.count(props.children)) {
215
+ if (data.currentTransform < -data.lastItemX) {
216
+ data.currentTransform = -data.lastItemX + 1 - Math.pow(-data.lastItemX - data.startTransform - diff, 0.85);
217
+ }
218
+ }
219
+ if (data.knobCurrentTransform < 0) {
220
+ data.knobCurrentTransform = 0;
221
+ }
222
+ if (data.knobCurrentTransform > data.lastItemX / data.scrollbarToSlidesRatio) {
223
+ data.knobCurrentTransform = data.lastItemX / data.scrollbarToSlidesRatio;
224
+ }
225
+ setElementTransform(slidesWrapperRef, data.currentTransform, 0);
226
+ setElementTransform(knobRef, data.knobCurrentTransform, 0);
227
+ setIsSwiping(true);
228
+ };
229
+ const handlePointerUp = e => {
230
+ const endTime = Date.now();
231
+ if (endTime - data.startTime > 300) {
232
+ const swipeRatio = Math.abs(data.currentTransform - data.startTransform) / data.itemWidth;
233
+ if (swipeRatio >= 0.5) {
234
+ handleSetCurrentIndex(currentIndex + Math.round(data.direction > 0 ? swipeRatio : -swipeRatio) * step);
235
+ } else {
236
+ handleSetCurrentIndex(currentIndex);
237
+ }
238
+ } else {
239
+ handleSetCurrentIndex(currentIndex + data.direction * step);
240
+ }
241
+ if (data.scrollbarNavigation && data.direction === 0) {
242
+ if (knobRef.current) {
243
+ handleSetCurrentIndex(currentIndex + Math.round((e.pageX - knobRef.current.getBoundingClientRect().x - knobRef.current.offsetWidth / 2) / knobRef.current.offsetWidth));
244
+ }
245
+ }
246
+ document.removeEventListener('pointermove', handlePointerMove);
247
+ document.removeEventListener('pointerup', handlePointerUp);
248
+ setIsSwiping(false);
249
+ };
250
+ const handleSlidesPointerDown = e => {
251
+ if (e.button !== 0) return;
252
+ if (slidesWrapperRef.current && scrollbarRef.current && knobRef.current) {
253
+ data.startX = e.pageX;
254
+ data.startTime = Date.now();
255
+ data.startTransform = getElementTransform(slidesWrapperRef.current);
256
+ data.scrollbarNavigation = Boolean(e.currentTarget === scrollbarRef.current);
257
+ data.knobStartTransform = getElementTransform(knobRef.current);
258
+ document.addEventListener('pointermove', handlePointerMove);
259
+ document.addEventListener('pointerup', handlePointerUp);
260
+ }
261
+ };
262
+ const handleScrollbarPointerDown = e => {
263
+ handleSlidesPointerDown(e);
264
+ };
265
+ const handlePointerDown = e => {
266
+ e.preventDefault();
267
+ };
268
+ useEffect(() => {
269
+ if (slidesWrapperRef.current && scrollbarRef.current) {
270
+ const isRest = Children.count(props.children) - (currentIndex + visibleItems) < 0;
271
+ data.itemWidth = slidesWrapperRef.current.offsetWidth / visibleItems;
272
+ data.scrollWidth = slidesWrapperRef.current.scrollWidth;
273
+ data.lastItemX = data.itemWidth * (Children.count(props.children) - visibleItems) - (isRest ? slidesWrapperGapSizePx * (Math.ceil(visibleItems) - visibleItems) : 0);
274
+ data.scrollbarToSlidesRatio = data.lastItemX / (scrollbarRef.current.offsetWidth - scrollbarRef.current.offsetWidth / slideScreensCount);
275
+ let slidesTransform = 0;
276
+ if (Children.count(props.children) >= visibleItems) {
277
+ slidesTransform = data.itemWidth * currentIndex - (isRest ? data.itemWidth * (visibleItems % 1) + slidesWrapperGapSizePx : 0);
278
+ }
279
+ setElementTransform(slidesWrapperRef, -slidesTransform);
280
+ setElementTransform(knobRef, slidesTransform / data.scrollbarToSlidesRatio);
281
+ }
282
+ }, [currentIndex, data, props.children, slideScreensCount, visibleItems]);
283
+ useEffect(() => {
284
+ var _a;
285
+ if (props.responsive && autoVisibleItems) {
286
+ const items = (_a = slidesWrapperRef.current) === null || _a === void 0 ? void 0 : _a.children;
287
+ if (items) {
288
+ Array.from(items).forEach(itemElement => {
289
+ const item = itemElement;
290
+ item.style.flexBasis = `calc(100% / ${autoVisibleItems})`;
291
+ item.style.width = '';
292
+ });
293
+ }
294
+ }
295
+ }, [autoVisibleItems, props.responsive]);
296
+ return /*#__PURE__*/React__default.createElement(CarouselWrapper, {
297
+ id: props.id,
298
+ className: props.className,
299
+ "data-testid": dataTestId
300
+ }, /*#__PURE__*/React__default.createElement(Header, {
301
+ "data-testid": dataTestId && `${dataTestId}-header`
302
+ }, props.title && /*#__PURE__*/React__default.createElement(Title, null, props.title), /*#__PURE__*/React__default.createElement(Navigation, null, props.hasCounter && (/*#__PURE__*/React__default.createElement(Counter, null, slideScreensCount === 0 ? 0 : currentStepIndex + 1, "/", totalSwipeSteps)), /*#__PURE__*/React__default.createElement(ButtonArrow, {
303
+ direction: "left",
304
+ "aria-label": props.previousAriaLabel,
305
+ onClick: handleNavigationButtonPreviousClick,
306
+ disabled: currentIndex <= 0,
307
+ type: "button"
308
+ }), /*#__PURE__*/React__default.createElement(ButtonArrow, {
309
+ direction: "right",
310
+ "aria-label": props.nextAriaLabel,
311
+ onClick: handleNavigationButtonNextClick,
312
+ disabled: currentIndex + visibleItems >= Children.count(props.children),
313
+ type: "button"
314
+ }))), /*#__PURE__*/React__default.createElement(Content, {
315
+ "data-testid": dataTestId && `${dataTestId}-content`
316
+ }, /*#__PURE__*/React__default.createElement(SlidesWrapper, {
317
+ ref: slidesWrapperRef,
318
+ onPointerDown: handleSlidesPointerDown
319
+ }, Children.map(props.children, (child, index) => (/*#__PURE__*/React__default.createElement(SlideItem, {
320
+ ref: index === 0 ? firstItemRef : undefined,
321
+ "$visibleItems": visibleItems,
322
+ "$isSwiping": isSwiping,
323
+ onPointerDown: handlePointerDown,
324
+ "$responsive": Boolean(props.responsive),
325
+ "$gap": slidesWrapperGapSizePx / 16
326
+ }, child))))), /*#__PURE__*/React__default.createElement(Footer, {
327
+ "data-testid": dataTestId && `${dataTestId}-footer`
328
+ }, /*#__PURE__*/React__default.createElement(Pagination, null, [...Array(totalSwipeSteps).keys()].map((value, index) => (/*#__PURE__*/React__default.createElement(PaginationItem, {
329
+ key: value,
330
+ "aria-label": props.paginationAriaLabel && `${props.paginationAriaLabel} ${index + 1}`,
331
+ "aria-current": Math.ceil(currentIndex / step) === index,
332
+ "$isActive": Math.ceil(currentIndex / step) === index,
333
+ onClick: handlePaginationItemClick,
334
+ type: "button"
335
+ })))), /*#__PURE__*/React__default.createElement(Scrollbar, {
336
+ ref: scrollbarRef,
337
+ onPointerDown: handleScrollbarPointerDown
338
+ }, /*#__PURE__*/React__default.createElement(Knob, {
339
+ ref: knobRef,
340
+ "$knobSize": slideScreensCount
341
+ })), props.footerButton && (/*#__PURE__*/React__default.createElement(FooterButton, null, /*#__PURE__*/React__default.createElement(ButtonIcon, {
342
+ icon: ArrowRight,
343
+ onClick: props.onFooterButtonClick
344
+ }, props.footerButton)))));
376
345
  };
377
346
 
378
347
  export { SlideItem, Carousel as default };