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