@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
@@ -13,353 +13,217 @@ import Input from '../Input/Input.js';
13
13
  * Contains only used and functionality wise necessary properties
14
14
  */
15
15
  const localeData = {
16
- // https://github.com/date-fns/date-fns/blob/main/src/locale/fi/index.ts
17
- 'fi-FI': {
18
- code: 'fi',
19
- formatLong: {
20
- date: () => 'eeee d. MMMM y',
21
- time: () => 'HH.mm',
22
- },
23
- localize: {
24
- day: (i) => ['Su', 'Ma', 'Ti', 'Ke', 'To', 'Pe', 'La'][i],
25
- month: (i) => [
26
- 'Tammikuu',
27
- 'Helmikuu',
28
- 'Maaliskuu',
29
- 'Huhtikuu',
30
- 'Toukokuu',
31
- 'Kesäkuu',
32
- 'Heinäkuu',
33
- 'Elokuu',
34
- 'Syyskuu',
35
- 'Lokakuu',
36
- 'Marraskuu',
37
- 'Joulukuu',
38
- ][i],
39
- timeCaption: 'Aika',
40
- },
41
- options: {
42
- weekStartsOn: 1,
43
- firstWeekContainsDate: 4,
44
- },
16
+ // https://github.com/date-fns/date-fns/blob/main/src/locale/fi/index.ts
17
+ 'fi-FI': {
18
+ code: 'fi',
19
+ formatLong: {
20
+ date: () => 'eeee d. MMMM y',
21
+ time: () => 'HH.mm'
45
22
  },
46
- // Use react-datepicker default language
47
- 'en-GB': undefined,
48
- };
49
- const sentenceCase = (string) => `${string[0].toUpperCase()}${string.slice(1)}`;
50
- const parseFIDateString = (dateString) => {
51
- const parts = dateString.split(/\D+/);
52
- if (!parts || parts.length < 3) {
53
- return null;
23
+ localize: {
24
+ day: i => ['Su', 'Ma', 'Ti', 'Ke', 'To', 'Pe', 'La'][i],
25
+ month: i => ['Tammikuu', 'Helmikuu', 'Maaliskuu', 'Huhtikuu', 'Toukokuu', 'Kesäkuu', 'Heinäkuu', 'Elokuu', 'Syyskuu', 'Lokakuu', 'Marraskuu', 'Joulukuu'][i],
26
+ timeCaption: 'Aika'
27
+ },
28
+ options: {
29
+ weekStartsOn: 1,
30
+ firstWeekContainsDate: 4
54
31
  }
55
- const [day, month, year] = parts.map(Number);
56
- const date = new Date(year, month - 1, day);
57
- return !Number.isNaN(date.getTime()) ? date : null;
32
+ },
33
+ // Use react-datepicker default language
34
+ 'en-GB': undefined
35
+ };
36
+ const sentenceCase = string => `${string[0].toUpperCase()}${string.slice(1)}`;
37
+ const parseFIDateString = dateString => {
38
+ const parts = dateString.split(/\D+/);
39
+ if (!parts || parts.length < 3) {
40
+ return null;
41
+ }
42
+ const [day, month, year] = parts.map(Number);
43
+ const date = new Date(year, month - 1, day);
44
+ return !Number.isNaN(date.getTime()) ? date : null;
58
45
  };
59
46
  // TODO: change `& .react-datepicker` value back to `1` after z-index of Footer removed
60
- const Wrapper = styled.div `
61
- position: relative;
62
-
63
- & .react-datepicker {
64
- position: absolute;
65
- display: flex;
66
- font-size: ${theme.fontSize.xs};
67
- border-radius: ${theme.radius.default};
68
- border: 1px solid ${theme.color.line.L03};
69
- background-color: ${theme.color.background.white.default};
70
- z-index: 2;
71
-
72
- .react-datepicker__aria-live {
73
- display: none;
74
- }
47
+ const Wrapper = styled.div.withConfig({
48
+ displayName: "DateTimePicker__Wrapper",
49
+ componentId: "sc-1qaz26g-0"
50
+ })(["position:relative;& .react-datepicker{position:absolute;display:flex;font-size:", ";border-radius:", ";border:1px solid ", ";background-color:", ";z-index:2;.react-datepicker__aria-live{display:none;}}& .react-datepicker__month-container + .react-datepicker__time-container{border-left:1px solid ", ";}& .react-datepicker__header{display:flex;flex-direction:column;gap:", ";color:", ";padding:", " ", " ", ";background-color:", ";.react-datepicker-time__header{font-size:", ";line-height:", ";font-weight:", ";text-align:center;}}& .react-datepicker__month,.react-datepicker__time-list{display:grid;border-top:1px solid ", ";gap:", ";color:", ";padding:", " ", " ", ";.react-datepicker__day--outside-month{visibility:hidden;}}& .react-datepicker__sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}& .react-datepicker__day-names{background-color:", ";padding:", " 0;}& .react-datepicker__day-names,& .react-datepicker__week{display:flex;gap:", ";justify-content:center;.react-datepicker__day-name,.react-datepicker__day{text-align:center;font-weight:", ";line-height:", ";width:", ";height:", ";}.react-datepicker__day{cursor:pointer;font-weight:", ";border:1px solid transparent;border-radius:", ";&.react-datepicker__day--today{color:", ";font-weight:", ";}&.react-datepicker__day--disabled{color:", ";font-weight:", ";&:hover{cursor:default;color:", ";font-weight:", ";background-color:transparent;border:1px solid transparent;}}&.react-datepicker__day--in-selecting-range{color:", ";font-weight:", ";background-color:", ";}&.react-datepicker__day--selected{color:", ";font-weight:", ";background-color:", ";}&:hover{color:", ";font-weight:", ";background-color:", ";border:1px solid ", ";}&.react-datepicker__day--selecting-range-start{color:", ";background-color:", ";&.react-datepicker__day--selecting-range-end{color:", ";background-color:", ";}}&.react-datepicker__day--selecting-range-end{color:", ";background-color:", ";&:hover{border:1px solid ", ";}}}}& .react-datepicker__time{width:", ";.react-datepicker__time-list{padding-left:0;padding-right:0;list-style:none;margin:0;gap:0;overflow-y:scroll;height:", ";.react-datepicker__time-list-item{cursor:pointer;text-align:center;font-weight:", ";line-height:", ";height:", ";&.react-datepicker__time-list-item--selected{color:", ";font-weight:", ";background-color:", ";}&:hover{color:", ";font-weight:", ";background-color:", ";}}}}"], theme.fontSize.xs, theme.radius.default, theme.color.line.L03, theme.color.background.white.default, theme.color.line.L03, getMultipliedSize(theme.base.baseWidth, 1), theme.color.text.black, getMultipliedSize(theme.base.baseWidth, 1), getMultipliedSize(theme.base.baseWidth, 1), getMultipliedSize(theme.base.baseWidth, 0.5), theme.color.background.sand.E01, theme.fontSize.default, theme.lineHeight.default, theme.fontWeight.bold, theme.color.line.L03, getMultipliedSize(theme.base.baseWidth, 0.5), theme.color.text.gray, getMultipliedSize(theme.base.baseWidth, 0.5), getMultipliedSize(theme.base.baseWidth, 1), getMultipliedSize(theme.base.baseWidth, 1), theme.color.background.sand.E01, getMultipliedSize(theme.base.baseWidth, 0.5), getMultipliedSize(theme.base.baseWidth, 0.8), theme.fontWeight.book, theme.lineHeight.default, getMultipliedSize(theme.base.baseHeight, 2.4), getMultipliedSize(theme.base.baseHeight, 2.4), theme.fontWeight.book, theme.radius.s, theme.color.text.pink, theme.fontWeight.bold, theme.color.text.gray + theme.color.transparency.T40, theme.fontWeight.book, theme.color.text.gray + theme.color.transparency.T40, theme.fontWeight.book, theme.color.text.white, theme.fontWeight.bold, theme.color.background.pink.default, theme.color.text.white, theme.fontWeight.bold, theme.color.background.pink.default, theme.color.text.gray, theme.fontWeight.bold, theme.color.background.sand.E01, theme.color.line.L03, theme.color.text.white, theme.color.background.pink.default, theme.color.text.white, theme.color.background.pink.default, theme.color.text.black, theme.color.background.pink.E02, theme.color.background.pink.E02, getMultipliedSize(theme.base.baseWidth, 15), getMultipliedSize(theme.base.baseHeight, 19), theme.fontWeight.book, theme.lineHeight.h2S, getMultipliedSize(theme.base.baseHeight, 3.2), theme.color.text.white, theme.fontWeight.bold, theme.color.background.pink.default, theme.color.text.gray, theme.fontWeight.bold, theme.color.background.sand.E01);
51
+ const MonthSelector = styled.div.withConfig({
52
+ displayName: "DateTimePicker__MonthSelector",
53
+ componentId: "sc-1qaz26g-1"
54
+ })(["display:flex;align-items:center;justify-content:space-between;span.dnasg-icon > svg{fill:", ";}"], theme.color.text.gray);
55
+ const CurrentMonth = styled.div.withConfig({
56
+ displayName: "DateTimePicker__CurrentMonth",
57
+ componentId: "sc-1qaz26g-2"
58
+ })(["font-size:", ";line-height:", ";font-weight:", ";"], theme.fontSize.default, theme.lineHeight.default, theme.fontWeight.bold);
59
+ /**
60
+ * TODO: Replace the VisuallyHiddenStatus styled component with the global class name.
61
+ * Ticket: https://jira.dna.fi/browse/STYLE-916
62
+ */
63
+ const VisuallyHiddenStatus = styled.div.withConfig({
64
+ displayName: "DateTimePicker__VisuallyHiddenStatus",
65
+ componentId: "sc-1qaz26g-3"
66
+ })(["position:absolute;left:-9999px;"]);
67
+ const DateTimePickerCustomHeader = ({
68
+ date,
69
+ decreaseMonth,
70
+ increaseMonth,
71
+ locale,
72
+ ariaLabelPreviousMonth,
73
+ ariaLabelNextMonth
74
+ }) => (/*#__PURE__*/React__default.createElement(MonthSelector, null, /*#__PURE__*/React__default.createElement(ButtonIcon, {
75
+ icon: ChevronLeft,
76
+ onClick: decreaseMonth,
77
+ ariaLabel: ariaLabelPreviousMonth
78
+ }), /*#__PURE__*/React__default.createElement(CurrentMonth, null, sentenceCase(date.toLocaleString(locale, {
79
+ month: 'long',
80
+ year: 'numeric'
81
+ }))), /*#__PURE__*/React__default.createElement(ButtonIcon, {
82
+ icon: ChevronRight,
83
+ onClick: increaseMonth,
84
+ ariaLabel: ariaLabelNextMonth
85
+ })));
86
+ /** @visibleName DateTime Picker */
87
+ const DateTimePicker = _a => {
88
+ var _b, _c, _d;
89
+ var {
90
+ date: startDate,
91
+ locale = 'fi-FI',
92
+ isDatePicker = true,
93
+ isTimePicker = false,
94
+ timeInterval = 30,
95
+ 'data-testid': dataTestId
96
+ } = _a,
97
+ props = __rest(_a, ["date", "locale", "isDatePicker", "isTimePicker", "timeInterval", 'data-testid']);
98
+ const [showReactDatePicker, setShowReactDatePicker] = useState(false);
99
+ const [manualInputValue, setManualInputValue] = useState(null);
100
+ const isRange = props.endDate !== undefined;
101
+ const callOnChange = (date, event) => {
102
+ props.onChange(date, event);
103
+ };
104
+ const handleOnInputFocus = () => {
105
+ setShowReactDatePicker(true);
106
+ };
107
+ const handleOnInputChange = (_, e) => {
108
+ if (props.isEditable) {
109
+ setManualInputValue(e.target.value);
110
+ return;
75
111
  }
76
-
77
- & .react-datepicker__month-container + .react-datepicker__time-container {
78
- border-left: 1px solid ${theme.color.line.L03};
112
+ if (props.onInputChange) {
113
+ props.onInputChange(e);
79
114
  }
80
-
81
- & .react-datepicker__header {
82
- display: flex;
83
- flex-direction: column;
84
- gap: ${getMultipliedSize(theme.base.baseWidth, 1)};
85
- color: ${theme.color.text.black};
86
- padding: ${getMultipliedSize(theme.base.baseWidth, 1)}
87
- ${getMultipliedSize(theme.base.baseWidth, 1)}
88
- ${getMultipliedSize(theme.base.baseWidth, 0.5)};
89
- background-color: ${theme.color.background.sand.E01};
90
-
91
- .react-datepicker-time__header {
92
- font-size: ${theme.fontSize.default};
93
- line-height: ${theme.lineHeight.default};
94
- font-weight: ${theme.fontWeight.bold};
95
- text-align: center;
96
- }
115
+ };
116
+ const handleOnKeyDown = e => {
117
+ const isNavigationKey = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(e.key);
118
+ if (isNavigationKey && showReactDatePicker) {
119
+ return;
97
120
  }
98
-
99
- & .react-datepicker__month,
100
- .react-datepicker__time-list {
101
- display: grid;
102
- border-top: 1px solid ${theme.color.line.L03};
103
- gap: ${getMultipliedSize(theme.base.baseWidth, 0.5)};
104
- color: ${theme.color.text.gray};
105
- padding: ${getMultipliedSize(theme.base.baseWidth, 0.5)}
106
- ${getMultipliedSize(theme.base.baseWidth, 1)}
107
- ${getMultipliedSize(theme.base.baseWidth, 1)};
108
-
109
- .react-datepicker__day--outside-month {
110
- visibility: hidden;
111
- }
121
+ if (e.key === 'Escape') {
122
+ setShowReactDatePicker(false);
112
123
  }
113
-
114
- & .react-datepicker__sr-only {
115
- position: absolute;
116
- width: 1px;
117
- height: 1px;
118
- padding: 0;
119
- overflow: hidden;
120
- clip: rect(0, 0, 0, 0);
121
- white-space: nowrap;
122
- border: 0;
124
+ if (e.key === 'Enter' && showReactDatePicker) {
125
+ setShowReactDatePicker(false);
123
126
  }
124
-
125
- & .react-datepicker__day-names {
126
- background-color: ${theme.color.background.sand.E01};
127
- padding: ${getMultipliedSize(theme.base.baseWidth, 0.5)} 0;
127
+ if (!props.isEditable && ['Backspace', 'Delete', 'Clear'].includes(e.key)) {
128
+ callOnChange(null, e);
128
129
  }
129
-
130
- & .react-datepicker__day-names,
131
- & .react-datepicker__week {
132
- display: flex;
133
- gap: ${getMultipliedSize(theme.base.baseWidth, 0.8)};
134
- justify-content: center;
135
-
136
- .react-datepicker__day-name,
137
- .react-datepicker__day {
138
- text-align: center;
139
- font-weight: ${theme.fontWeight.book};
140
- line-height: ${theme.lineHeight.default};
141
- width: ${getMultipliedSize(theme.base.baseHeight, 2.4)};
142
- height: ${getMultipliedSize(theme.base.baseHeight, 2.4)};
143
- }
144
-
145
- .react-datepicker__day {
146
- cursor: pointer;
147
- font-weight: ${theme.fontWeight.book};
148
- border: 1px solid transparent;
149
- border-radius: ${theme.radius.s};
150
-
151
- &.react-datepicker__day--today {
152
- color: ${theme.color.text.pink};
153
- font-weight: ${theme.fontWeight.bold};
154
- }
155
- &.react-datepicker__day--disabled {
156
- color: ${theme.color.text.gray + theme.color.transparency.T40};
157
- font-weight: ${theme.fontWeight.book};
158
- &:hover {
159
- cursor: default;
160
- color: ${theme.color.text.gray + theme.color.transparency.T40};
161
- font-weight: ${theme.fontWeight.book};
162
- background-color: transparent;
163
- border: 1px solid transparent;
164
- }
165
- }
166
- &.react-datepicker__day--in-selecting-range {
167
- color: ${theme.color.text.white};
168
- font-weight: ${theme.fontWeight.bold};
169
- background-color: ${theme.color.background.pink.default};
170
- }
171
-
172
- &.react-datepicker__day--selected {
173
- color: ${theme.color.text.white};
174
- font-weight: ${theme.fontWeight.bold};
175
- background-color: ${theme.color.background.pink.default};
176
- }
177
-
178
- &:hover {
179
- color: ${theme.color.text.gray};
180
- font-weight: ${theme.fontWeight.bold};
181
- background-color: ${theme.color.background.sand.E01};
182
- border: 1px solid ${theme.color.line.L03};
183
- }
184
-
185
- &.react-datepicker__day--selecting-range-start {
186
- color: ${theme.color.text.white};
187
- background-color: ${theme.color.background.pink.default};
188
-
189
- &.react-datepicker__day--selecting-range-end {
190
- color: ${theme.color.text.white};
191
- background-color: ${theme.color.background.pink.default};
192
- }
193
- }
194
-
195
- &.react-datepicker__day--selecting-range-end {
196
- color: ${theme.color.text.black};
197
- background-color: ${theme.color.background.pink.E02};
198
-
199
- &:hover {
200
- border: 1px solid ${theme.color.background.pink.E02};
201
- }
202
- }
203
- }
130
+ };
131
+ const handleClearable = e => {
132
+ callOnChange(null, e);
133
+ };
134
+ const handleOnReactDatePickerChange = (date, event) => {
135
+ var _a, _b;
136
+ let shouldKeepOpen = false;
137
+ if (isRange) {
138
+ const [start, end] = Array.isArray(date) && date.length === 2 ? date : [null, null];
139
+ shouldKeepOpen = !(start && end);
140
+ } else if (isDatePicker && isTimePicker && date instanceof Date && ((_a = date.getHours) === null || _a === void 0 ? void 0 : _a.call(date)) === 0 && ((_b = date.getMinutes) === null || _b === void 0 ? void 0 : _b.call(date)) === 0) {
141
+ shouldKeepOpen = true;
204
142
  }
205
-
206
- & .react-datepicker__time {
207
- width: ${getMultipliedSize(theme.base.baseWidth, 15)};
208
-
209
- .react-datepicker__time-list {
210
- padding-left: 0;
211
- padding-right: 0;
212
- list-style: none;
213
- margin: 0;
214
- gap: 0;
215
- overflow-y: scroll;
216
- height: ${getMultipliedSize(theme.base.baseHeight, 19)};
217
-
218
- .react-datepicker__time-list-item {
219
- cursor: pointer;
220
- text-align: center;
221
- font-weight: ${theme.fontWeight.book};
222
- line-height: ${theme.lineHeight.h2S};
223
- height: ${getMultipliedSize(theme.base.baseHeight, 3.2)};
224
-
225
- &.react-datepicker__time-list-item--selected {
226
- color: ${theme.color.text.white};
227
- font-weight: ${theme.fontWeight.bold};
228
- background-color: ${theme.color.background.pink.default};
229
- }
230
-
231
- &:hover {
232
- color: ${theme.color.text.gray};
233
- font-weight: ${theme.fontWeight.bold};
234
- background-color: ${theme.color.background.sand.E01};
235
- }
236
- }
237
- }
143
+ if (!shouldKeepOpen) {
144
+ setShowReactDatePicker(false);
238
145
  }
239
- `;
240
- const MonthSelector = styled.div `
241
- display: flex;
242
- align-items: center;
243
- justify-content: space-between;
244
-
245
- span.dnasg-icon > svg {
246
- fill: ${theme.color.text.gray};
146
+ setManualInputValue(null);
147
+ callOnChange(date, event);
148
+ };
149
+ const handleOnReactDatePickerClickOutside = () => {
150
+ setShowReactDatePicker(false);
151
+ };
152
+ const formatInputValue = [startDate, props.endDate].filter(Boolean).map(date => date === null || date === void 0 ? void 0 : date.toLocaleString(locale, Object.assign(Object.assign({}, isDatePicker && {
153
+ dateStyle: 'medium'
154
+ }), props.endDate === undefined && isTimePicker && {
155
+ timeStyle: 'short'
156
+ }))).join(' - ');
157
+ const getDateTimePickerCustomHeader = args => DateTimePickerCustomHeader(Object.assign(Object.assign({}, args), {
158
+ locale,
159
+ ariaLabelPreviousMonth: props.ariaLabelPreviousMonth,
160
+ ariaLabelNextMonth: props.ariaLabelNextMonth
161
+ }));
162
+ return /*#__PURE__*/React__default.createElement(Wrapper, {
163
+ id: props.id,
164
+ className: props.className,
165
+ "data-testid": dataTestId
166
+ }, /*#__PURE__*/React__default.createElement(Input, {
167
+ id: `datetimepicker-input-${props.id}`,
168
+ name: `datetimepicker-input-${props.id}`,
169
+ label: props.label,
170
+ placeholder: props.placeholder,
171
+ value: manualInputValue !== null && manualInputValue !== void 0 ? manualInputValue : formatInputValue,
172
+ onFocus: handleOnInputFocus,
173
+ onChange: handleOnInputChange,
174
+ onKeyDown: handleOnKeyDown,
175
+ onClearableButtonClick: props.isClearable ? handleClearable : undefined,
176
+ className: "react-datepicker-ignore-onclickoutside",
177
+ "data-testid": dataTestId && `${dataTestId}-datetimepicker-input`,
178
+ disabled: props.isDisabled,
179
+ required: props.isRequired,
180
+ readonlyUnstyled: !props.isEditable,
181
+ status: props.isInError ? 'error' : undefined,
182
+ errorMessage: props.errorMessage,
183
+ ariaLabel: props.ariaLabelInput,
184
+ onBlur: (_val, e) => {
185
+ if (!props.isEditable || !e.target.value) {
186
+ return;
187
+ }
188
+ const date = locale === 'fi-FI' ? parseFIDateString(e.target.value) : new Date(e.target.value);
189
+ if (date && !Number.isNaN(date.getTime())) {
190
+ callOnChange(date, e);
191
+ }
247
192
  }
248
- `;
249
- const CurrentMonth = styled.div `
250
- font-size: ${theme.fontSize.default};
251
- line-height: ${theme.lineHeight.default};
252
- font-weight: ${theme.fontWeight.bold};
253
- `;
254
- /**
255
- * TODO: Replace the VisuallyHiddenStatus styled component with the global class name.
256
- * Ticket: https://jira.dna.fi/browse/STYLE-916
257
- */
258
- const VisuallyHiddenStatus = styled.div `
259
- position: absolute;
260
- left: -9999px;
261
- `;
262
- const DateTimePickerCustomHeader = ({ date, decreaseMonth, increaseMonth, locale, ariaLabelPreviousMonth, ariaLabelNextMonth, }) => (React__default.createElement(MonthSelector, null,
263
- React__default.createElement(ButtonIcon, { icon: ChevronLeft, onClick: decreaseMonth, ariaLabel: ariaLabelPreviousMonth }),
264
- React__default.createElement(CurrentMonth, null, sentenceCase(date.toLocaleString(locale, {
265
- month: 'long',
266
- year: 'numeric',
267
- }))),
268
- React__default.createElement(ButtonIcon, { icon: ChevronRight, onClick: increaseMonth, ariaLabel: ariaLabelNextMonth })));
269
- /** @visibleName DateTime Picker */
270
- const DateTimePicker = (_a) => {
271
- var _b, _c, _d;
272
- var { date: startDate, locale = 'fi-FI', isDatePicker = true, isTimePicker = false, timeInterval = 30, 'data-testid': dataTestId } = _a, props = __rest(_a, ["date", "locale", "isDatePicker", "isTimePicker", "timeInterval", 'data-testid']);
273
- const [showReactDatePicker, setShowReactDatePicker] = useState(false);
274
- const [manualInputValue, setManualInputValue] = useState(null);
275
- const isRange = props.endDate !== undefined;
276
- const callOnChange = (date, event) => {
277
- props.onChange(date, event);
278
- };
279
- const handleOnInputFocus = () => {
280
- setShowReactDatePicker(true);
281
- };
282
- const handleOnInputChange = (_, e) => {
283
- if (props.isEditable) {
284
- setManualInputValue(e.target.value);
285
- return;
286
- }
287
- if (props.onInputChange) {
288
- props.onInputChange(e);
289
- }
290
- };
291
- const handleOnKeyDown = (e) => {
292
- const isNavigationKey = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(e.key);
293
- if (isNavigationKey && showReactDatePicker) {
294
- return;
295
- }
296
- if (e.key === 'Escape') {
297
- setShowReactDatePicker(false);
298
- }
299
- if (e.key === 'Enter' && showReactDatePicker) {
300
- setShowReactDatePicker(false);
301
- }
302
- if (!props.isEditable && ['Backspace', 'Delete', 'Clear'].includes(e.key)) {
303
- callOnChange(null, e);
304
- }
305
- };
306
- const handleClearable = (e) => {
307
- callOnChange(null, e);
308
- };
309
- const handleOnReactDatePickerChange = (date, event) => {
310
- var _a, _b;
311
- let shouldKeepOpen = false;
312
- if (isRange) {
313
- const [start, end] = Array.isArray(date) && date.length === 2 ? date : [null, null];
314
- shouldKeepOpen = !(start && end);
315
- }
316
- else if (isDatePicker &&
317
- isTimePicker &&
318
- date instanceof Date &&
319
- ((_a = date.getHours) === null || _a === void 0 ? void 0 : _a.call(date)) === 0 &&
320
- ((_b = date.getMinutes) === null || _b === void 0 ? void 0 : _b.call(date)) === 0) {
321
- shouldKeepOpen = true;
322
- }
323
- if (!shouldKeepOpen) {
324
- setShowReactDatePicker(false);
325
- }
326
- setManualInputValue(null);
327
- callOnChange(date, event);
328
- };
329
- const handleOnReactDatePickerClickOutside = () => {
330
- setShowReactDatePicker(false);
331
- };
332
- const formatInputValue = [startDate, props.endDate]
333
- .filter(Boolean)
334
- .map(date => date === null || date === void 0 ? void 0 : date.toLocaleString(locale, Object.assign(Object.assign({}, (isDatePicker && {
335
- dateStyle: 'medium',
336
- })), (props.endDate === undefined &&
337
- isTimePicker && {
338
- timeStyle: 'short',
339
- }))))
340
- .join(' - ');
341
- const getDateTimePickerCustomHeader = (args) => DateTimePickerCustomHeader(Object.assign(Object.assign({}, args), { locale, ariaLabelPreviousMonth: props.ariaLabelPreviousMonth, ariaLabelNextMonth: props.ariaLabelNextMonth }));
342
- return (React__default.createElement(Wrapper, { id: props.id, className: props.className, "data-testid": dataTestId },
343
- React__default.createElement(Input, { id: `datetimepicker-input-${props.id}`, name: `datetimepicker-input-${props.id}`, label: props.label, placeholder: props.placeholder, value: manualInputValue !== null && manualInputValue !== void 0 ? manualInputValue : formatInputValue, onFocus: handleOnInputFocus, onChange: handleOnInputChange, onKeyDown: handleOnKeyDown, onClearableButtonClick: props.isClearable ? handleClearable : undefined, className: "react-datepicker-ignore-onclickoutside", "data-testid": dataTestId && `${dataTestId}-datetimepicker-input`, disabled: props.isDisabled, required: props.isRequired, readonlyUnstyled: !props.isEditable, status: props.isInError ? 'error' : undefined, errorMessage: props.errorMessage, ariaLabel: props.ariaLabelInput, onBlur: (_val, e) => {
344
- if (!props.isEditable || !e.target.value) {
345
- return;
346
- }
347
- const date = locale === 'fi-FI'
348
- ? parseFIDateString(e.target.value)
349
- : new Date(e.target.value);
350
- if (date && !Number.isNaN(date.getTime())) {
351
- callOnChange(date, e);
352
- }
353
- } }),
354
- React__default.createElement(VisuallyHiddenStatus, { role: "status", "aria-live": "polite" }, startDate instanceof Date && !Number.isNaN(startDate.getTime())
355
- ? (_b = props.ariaLiveAnnouncement) === null || _b === void 0 ? void 0 : _b.replace('{{date}}', startDate.toLocaleDateString(locale))
356
- : ''),
357
- showReactDatePicker &&
358
- (isRange ? (React__default.createElement(ReactDatePicker, { selectsRange: true, endDate: props.endDate, inline: true, selected: startDate, startDate: startDate, maxDate: props.maxDate, minDate: props.minDate, onChange: handleOnReactDatePickerChange, timeCaption: (_c = localeData[locale]) === null || _c === void 0 ? void 0 : _c.localize.timeCaption, timeIntervals: timeInterval, onClickOutside: handleOnReactDatePickerClickOutside, locale: localeData[locale], dateFormat: [isDatePicker && 'P', isTimePicker && 'p']
359
- .filter(Boolean)
360
- .join(''), renderCustomHeader: getDateTimePickerCustomHeader })) : (React__default.createElement(ReactDatePicker, { showTimeSelect: isTimePicker, showTimeSelectOnly: !isDatePicker && isTimePicker, inline: true, selected: startDate, startDate: startDate, maxDate: props.maxDate, minDate: props.minDate, onChange: handleOnReactDatePickerChange, timeCaption: (_d = localeData[locale]) === null || _d === void 0 ? void 0 : _d.localize.timeCaption, timeIntervals: timeInterval, onClickOutside: handleOnReactDatePickerClickOutside, locale: localeData[locale], dateFormat: [isDatePicker && 'P', isTimePicker && 'p']
361
- .filter(Boolean)
362
- .join(''), renderCustomHeader: getDateTimePickerCustomHeader })))));
193
+ }), /*#__PURE__*/React__default.createElement(VisuallyHiddenStatus, {
194
+ role: "status",
195
+ "aria-live": "polite"
196
+ }, startDate instanceof Date && !Number.isNaN(startDate.getTime()) ? (_b = props.ariaLiveAnnouncement) === null || _b === void 0 ? void 0 : _b.replace('{{date}}', startDate.toLocaleDateString(locale)) : ''), showReactDatePicker && (isRange ? (/*#__PURE__*/React__default.createElement(ReactDatePicker, {
197
+ selectsRange: true,
198
+ endDate: props.endDate,
199
+ inline: true,
200
+ selected: startDate,
201
+ startDate: startDate,
202
+ maxDate: props.maxDate,
203
+ minDate: props.minDate,
204
+ onChange: handleOnReactDatePickerChange,
205
+ timeCaption: (_c = localeData[locale]) === null || _c === void 0 ? void 0 : _c.localize.timeCaption,
206
+ timeIntervals: timeInterval,
207
+ onClickOutside: handleOnReactDatePickerClickOutside,
208
+ locale: localeData[locale],
209
+ dateFormat: [isDatePicker && 'P', isTimePicker && 'p'].filter(Boolean).join(''),
210
+ renderCustomHeader: getDateTimePickerCustomHeader
211
+ })) : (/*#__PURE__*/React__default.createElement(ReactDatePicker, {
212
+ showTimeSelect: isTimePicker,
213
+ showTimeSelectOnly: !isDatePicker && isTimePicker,
214
+ inline: true,
215
+ selected: startDate,
216
+ startDate: startDate,
217
+ maxDate: props.maxDate,
218
+ minDate: props.minDate,
219
+ onChange: handleOnReactDatePickerChange,
220
+ timeCaption: (_d = localeData[locale]) === null || _d === void 0 ? void 0 : _d.localize.timeCaption,
221
+ timeIntervals: timeInterval,
222
+ onClickOutside: handleOnReactDatePickerClickOutside,
223
+ locale: localeData[locale],
224
+ dateFormat: [isDatePicker && 'P', isTimePicker && 'p'].filter(Boolean).join(''),
225
+ renderCustomHeader: getDateTimePickerCustomHeader
226
+ }))));
363
227
  };
364
228
 
365
229
  export { DateTimePicker as default };
@@ -4,21 +4,35 @@ import { styled } from 'styled-components';
4
4
  import theme from '../../themes/theme.js';
5
5
  import { getMultipliedSize } from '../../utils/styledUtils.js';
6
6
 
7
- const DividerWrapper = styled.div `
8
- display: flex;
9
- justify-content: center;
10
- align-items: center;
11
- width: 100%;
12
- margin: ${({ $margin }) => $margin || `${getMultipliedSize(theme.base.baseHeight, 1)} 0`};
13
- ${({ $padding }) => $padding && `padding: ${$padding}`};
14
- border-style: solid;
15
- border-color: ${theme.color.line.L03};
16
- border-width: 1px ${({ children }) => !children && '0 0 0'};
17
- `;
18
- const Divider = (_a) => {
19
- var { 'data-testid': dataTestId } = _a, props = __rest(_a, ['data-testid']);
20
- const isFocusableSeparator = Boolean(props.children);
21
- return (React__default.createElement(DividerWrapper, { id: props.id, "$margin": props.margin, "$padding": props.padding, className: props.className, "data-testid": dataTestId, as: isFocusableSeparator ? 'div' : 'hr', role: isFocusableSeparator ? 'separator' : undefined, "aria-orientation": "horizontal", "aria-label": props.ariaLabelFocusableSeparator, "aria-hidden": !isFocusableSeparator, tabIndex: isFocusableSeparator ? 0 : -1 }, props.children));
7
+ const DividerWrapper = styled.div.withConfig({
8
+ displayName: "Divider__DividerWrapper",
9
+ componentId: "sc-1exe9ao-0"
10
+ })(["display:flex;justify-content:center;align-items:center;width:100%;margin:", ";", ";border-style:solid;border-color:", ";border-width:1px ", ";"], ({
11
+ $margin
12
+ }) => $margin || `${getMultipliedSize(theme.base.baseHeight, 1)} 0`, ({
13
+ $padding
14
+ }) => $padding && `padding: ${$padding}`, theme.color.line.L03, ({
15
+ children
16
+ }) => !children && '0 0 0');
17
+ const Divider = _a => {
18
+ var {
19
+ 'data-testid': dataTestId
20
+ } = _a,
21
+ props = __rest(_a, ['data-testid']);
22
+ const isFocusableSeparator = Boolean(props.children);
23
+ return /*#__PURE__*/React__default.createElement(DividerWrapper, {
24
+ id: props.id,
25
+ "$margin": props.margin,
26
+ "$padding": props.padding,
27
+ className: props.className,
28
+ "data-testid": dataTestId,
29
+ as: isFocusableSeparator ? 'div' : 'hr',
30
+ role: isFocusableSeparator ? 'separator' : undefined,
31
+ "aria-orientation": "horizontal",
32
+ "aria-label": props.ariaLabelFocusableSeparator,
33
+ "aria-hidden": !isFocusableSeparator,
34
+ tabIndex: isFocusableSeparator ? 0 : -1
35
+ }, props.children);
22
36
  };
23
37
 
24
38
  export { Divider as default };