@dnb/eufemia 9.16.2 → 9.17.2

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 (515) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/assets/assets/icons/above_the_line.svg +1 -1
  3. package/assets/assets/icons/eufemia-icons-pdf-categorized.tgz +0 -0
  4. package/assets/assets/icons/eufemia-icons-pdf.tgz +0 -0
  5. package/assets/assets/icons/facebook.svg +3 -0
  6. package/assets/assets/icons/facebook_medium.svg +3 -0
  7. package/assets/assets/icons/fridge.svg +1 -1
  8. package/assets/assets/icons/information_circled.svg +2 -1
  9. package/assets/assets/icons/information_circled_medium.svg +2 -1
  10. package/assets/assets/icons/instagram.svg +5 -0
  11. package/assets/assets/icons/instagram_medium.svg +12 -0
  12. package/assets/assets/icons/linkedin.svg +3 -0
  13. package/assets/assets/icons/linkedin_medium.svg +3 -0
  14. package/assets/assets/icons/motorcycle_medium.svg +2 -2
  15. package/assets/assets/icons/paragraph.svg +1 -1
  16. package/assets/assets/icons/scooter_medium.svg +2 -2
  17. package/assets/assets/icons/tag.svg +4 -0
  18. package/assets/assets/icons/tag_medium.svg +4 -0
  19. package/assets/icons/above_the_line.svg +1 -1
  20. package/assets/icons/eufemia-icons-pdf-categorized.tgz +0 -0
  21. package/assets/icons/eufemia-icons-pdf.tgz +0 -0
  22. package/assets/icons/facebook.svg +3 -0
  23. package/assets/icons/facebook_medium.svg +3 -0
  24. package/assets/icons/fridge.svg +1 -1
  25. package/assets/icons/information_circled.svg +2 -1
  26. package/assets/icons/information_circled_medium.svg +2 -1
  27. package/assets/icons/instagram.svg +5 -0
  28. package/assets/icons/instagram_medium.svg +12 -0
  29. package/assets/icons/linkedin.svg +3 -0
  30. package/assets/icons/linkedin_medium.svg +3 -0
  31. package/assets/icons/motorcycle_medium.svg +2 -2
  32. package/assets/icons/paragraph.svg +1 -1
  33. package/assets/icons/scooter_medium.svg +2 -2
  34. package/assets/icons/tag.svg +4 -0
  35. package/assets/icons/tag_medium.svg +4 -0
  36. package/cjs/components/accordion/Accordion.d.ts +1 -1
  37. package/cjs/components/autocomplete/style/dnb-autocomplete.css +0 -2
  38. package/cjs/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  39. package/cjs/components/breadcrumb/Breadcrumb.js +5 -3
  40. package/cjs/components/breadcrumb/style/_breadcrumb.scss +7 -4
  41. package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +10 -8
  42. package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  43. package/cjs/components/button/Button.js +1 -1
  44. package/cjs/components/button/style/_button.scss +0 -4
  45. package/cjs/components/button/style/dnb-button.css +0 -2
  46. package/cjs/components/button/style/dnb-button.min.css +1 -1
  47. package/cjs/components/button/style/themes/dnb-button-theme-open-banking.css +4 -13
  48. package/cjs/components/button/style/themes/dnb-button-theme-open-banking.min.css +1 -1
  49. package/cjs/components/button/style/themes/dnb-button-theme-ui.css +4 -13
  50. package/cjs/components/button/style/themes/dnb-button-theme-ui.min.css +1 -1
  51. package/cjs/components/button/style/themes/dnb-button-theme-ui.scss +5 -18
  52. package/cjs/components/date-picker/style/dnb-date-picker.css +0 -6
  53. package/cjs/components/date-picker/style/dnb-date-picker.min.css +1 -1
  54. package/cjs/components/dropdown/style/dnb-dropdown.css +0 -2
  55. package/cjs/components/dropdown/style/dnb-dropdown.min.css +1 -1
  56. package/cjs/components/form-set/FormSet.d.ts +1 -1
  57. package/cjs/components/global-error/style/dnb-global-error.css +0 -2
  58. package/cjs/components/global-error/style/dnb-global-error.min.css +1 -1
  59. package/cjs/components/global-status/GlobalStatus.js +21 -73
  60. package/cjs/components/global-status/style/_global-status.scss +14 -12
  61. package/cjs/components/global-status/style/dnb-global-status.css +13 -17
  62. package/cjs/components/global-status/style/dnb-global-status.min.css +1 -1
  63. package/cjs/components/global-status/style/themes/dnb-global-status-theme-ui.css +2 -48
  64. package/cjs/components/global-status/style/themes/dnb-global-status-theme-ui.min.css +1 -1
  65. package/cjs/components/global-status/style/themes/dnb-global-status-theme-ui.scss +2 -36
  66. package/cjs/components/help-button/HelpButton.d.ts +200 -0
  67. package/cjs/components/input/style/dnb-input.css +0 -2
  68. package/cjs/components/input/style/dnb-input.min.css +1 -1
  69. package/cjs/components/input/style/themes/dnb-input-theme-ui.css +11 -2
  70. package/cjs/components/input/style/themes/dnb-input-theme-ui.min.css +1 -1
  71. package/cjs/components/input/style/themes/dnb-input-theme-ui.scss +4 -1
  72. package/cjs/components/input-masked/InputMaskedElement.js +1 -4
  73. package/cjs/components/input-masked/InputMaskedHooks.js +42 -19
  74. package/cjs/components/input-masked/InputMaskedUtils.js +8 -2
  75. package/cjs/components/input-masked/style/dnb-input-masked.css +0 -2
  76. package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
  77. package/cjs/components/modal/Modal.d.ts +4 -0
  78. package/cjs/components/modal/Modal.js +37 -31
  79. package/cjs/components/modal/ModalContent.js +48 -39
  80. package/cjs/components/modal/style/_modal-mixins.scss +4 -4
  81. package/cjs/components/modal/style/_modal.scss +13 -30
  82. package/cjs/components/modal/style/dnb-modal.css +27 -47
  83. package/cjs/components/modal/style/dnb-modal.min.css +1 -1
  84. package/cjs/components/pagination/Pagination.d.ts +6 -0
  85. package/cjs/components/pagination/Pagination.js +2 -0
  86. package/cjs/components/pagination/PaginationBar.js +1 -1
  87. package/cjs/components/pagination/PaginationInfinity.js +152 -89
  88. package/cjs/components/pagination/PaginationProvider.js +65 -68
  89. package/cjs/components/pagination/style/dnb-pagination.css +0 -2
  90. package/cjs/components/pagination/style/dnb-pagination.min.css +1 -1
  91. package/cjs/components/section/style/themes/dnb-section-theme-ui.css +77 -19
  92. package/cjs/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  93. package/cjs/components/section/style/themes/dnb-section-theme-ui.scss +15 -2
  94. package/cjs/components/slider/style/dnb-slider.css +0 -2
  95. package/cjs/components/slider/style/dnb-slider.min.css +1 -1
  96. package/cjs/components/step-indicator/StepIndicator.d.ts +1 -1
  97. package/cjs/components/step-indicator/StepIndicator.js +4 -98
  98. package/cjs/components/step-indicator/StepIndicatorContext.d.ts +1 -0
  99. package/cjs/components/step-indicator/StepIndicatorContext.js +221 -19
  100. package/cjs/components/step-indicator/StepIndicatorItem.js +3 -6
  101. package/cjs/components/step-indicator/StepIndicatorModal.js +40 -49
  102. package/cjs/components/step-indicator/StepIndicatorProps.js +1 -1
  103. package/cjs/components/step-indicator/StepIndicatorSidebar.d.ts +39 -0
  104. package/cjs/components/step-indicator/StepIndicatorSidebar.js +57 -54
  105. package/cjs/components/step-indicator/StepIndicatorTriggerButton.js +1 -1
  106. package/cjs/components/step-indicator/style/_step-indicator.scss +17 -4
  107. package/cjs/components/step-indicator/style/dnb-step-indicator.css +14 -6
  108. package/cjs/components/step-indicator/style/dnb-step-indicator.min.css +1 -1
  109. package/cjs/components/tabs/style/_tabs.scss +5 -1
  110. package/cjs/components/tabs/style/dnb-tabs.css +4 -1
  111. package/cjs/components/tabs/style/dnb-tabs.min.css +1 -1
  112. package/cjs/components/tabs/style/themes/dnb-tabs-theme-ui.css +37 -34
  113. package/cjs/components/tabs/style/themes/dnb-tabs-theme-ui.min.css +1 -1
  114. package/cjs/components/tabs/style/themes/dnb-tabs-theme-ui.scss +12 -9
  115. package/cjs/components/textarea/style/_textarea.scss +4 -0
  116. package/cjs/components/textarea/style/dnb-textarea.css +3 -0
  117. package/cjs/components/textarea/style/dnb-textarea.min.css +1 -1
  118. package/cjs/components/toggle-button/ToggleButton.js +6 -2
  119. package/cjs/components/toggle-button/style/dnb-toggle-button.css +0 -2
  120. package/cjs/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  121. package/cjs/icons/above_the_line.js +1 -1
  122. package/cjs/icons/facebook.js +35 -0
  123. package/cjs/icons/facebook_medium.js +35 -0
  124. package/cjs/icons/fridge.js +1 -1
  125. package/cjs/icons/icons-meta.json +24 -0
  126. package/cjs/icons/icons-pdf.lock +1 -1
  127. package/cjs/icons/icons-svg.lock +1 -1
  128. package/cjs/icons/index.d.ts +16 -0
  129. package/cjs/icons/index.js +64 -0
  130. package/cjs/icons/information_circled.js +11 -4
  131. package/cjs/icons/information_circled_medium.js +10 -4
  132. package/cjs/icons/instagram.js +47 -0
  133. package/cjs/icons/instagram_medium.js +54 -0
  134. package/cjs/icons/linkedin.js +32 -0
  135. package/cjs/icons/linkedin_medium.js +32 -0
  136. package/cjs/icons/motorcycle_medium.js +2 -2
  137. package/cjs/icons/paragraph.js +1 -1
  138. package/cjs/icons/scooter_medium.js +2 -2
  139. package/cjs/icons/secondary_icons.js +32 -0
  140. package/cjs/icons/secondary_icons_medium.js +32 -0
  141. package/cjs/icons/tag.js +41 -0
  142. package/cjs/icons/tag_medium.js +41 -0
  143. package/cjs/shared/EventEmitter.js +6 -8
  144. package/cjs/shared/component-helper.js +108 -74
  145. package/cjs/shared/helpers.js +55 -19
  146. package/cjs/style/dnb-ui-components.css +71 -77
  147. package/cjs/style/dnb-ui-components.min.css +5 -5
  148. package/cjs/style/themes/theme-open-banking/dnb-theme-open-banking.css +135 -129
  149. package/cjs/style/themes/theme-open-banking/dnb-theme-open-banking.min.css +4 -4
  150. package/cjs/style/themes/theme-ui/dnb-theme-ui.css +131 -116
  151. package/cjs/style/themes/theme-ui/dnb-theme-ui.min.css +4 -4
  152. package/components/accordion/Accordion.d.ts +1 -1
  153. package/components/autocomplete/style/dnb-autocomplete.css +0 -2
  154. package/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  155. package/components/breadcrumb/Breadcrumb.js +5 -3
  156. package/components/breadcrumb/Breadcrumb.tsx +9 -0
  157. package/components/breadcrumb/style/_breadcrumb.scss +7 -4
  158. package/components/breadcrumb/style/dnb-breadcrumb.css +10 -8
  159. package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  160. package/components/button/Button.js +1 -1
  161. package/components/button/style/_button.scss +0 -4
  162. package/components/button/style/dnb-button.css +0 -2
  163. package/components/button/style/dnb-button.min.css +1 -1
  164. package/components/button/style/themes/dnb-button-theme-open-banking.css +4 -13
  165. package/components/button/style/themes/dnb-button-theme-open-banking.min.css +1 -1
  166. package/components/button/style/themes/dnb-button-theme-ui.css +4 -13
  167. package/components/button/style/themes/dnb-button-theme-ui.min.css +1 -1
  168. package/components/button/style/themes/dnb-button-theme-ui.scss +5 -18
  169. package/components/date-picker/style/dnb-date-picker.css +0 -6
  170. package/components/date-picker/style/dnb-date-picker.min.css +1 -1
  171. package/components/dropdown/style/dnb-dropdown.css +0 -2
  172. package/components/dropdown/style/dnb-dropdown.min.css +1 -1
  173. package/components/form-set/FormSet.d.ts +1 -1
  174. package/components/global-error/style/dnb-global-error.css +0 -2
  175. package/components/global-error/style/dnb-global-error.min.css +1 -1
  176. package/components/global-status/GlobalStatus.js +18 -71
  177. package/components/global-status/style/_global-status.scss +14 -12
  178. package/components/global-status/style/dnb-global-status.css +13 -17
  179. package/components/global-status/style/dnb-global-status.min.css +1 -1
  180. package/components/global-status/style/themes/dnb-global-status-theme-ui.css +2 -48
  181. package/components/global-status/style/themes/dnb-global-status-theme-ui.min.css +1 -1
  182. package/components/global-status/style/themes/dnb-global-status-theme-ui.scss +2 -36
  183. package/components/help-button/HelpButton.d.ts +200 -0
  184. package/components/input/style/dnb-input.css +0 -2
  185. package/components/input/style/dnb-input.min.css +1 -1
  186. package/components/input/style/themes/dnb-input-theme-ui.css +11 -2
  187. package/components/input/style/themes/dnb-input-theme-ui.min.css +1 -1
  188. package/components/input/style/themes/dnb-input-theme-ui.scss +4 -1
  189. package/components/input-masked/InputMaskedElement.js +1 -4
  190. package/components/input-masked/InputMaskedHooks.js +42 -19
  191. package/components/input-masked/InputMaskedUtils.js +9 -3
  192. package/components/input-masked/style/dnb-input-masked.css +0 -2
  193. package/components/input-masked/style/dnb-input-masked.min.css +1 -1
  194. package/components/modal/Modal.d.ts +4 -0
  195. package/components/modal/Modal.js +37 -31
  196. package/components/modal/ModalContent.js +46 -37
  197. package/components/modal/style/_modal-mixins.scss +4 -4
  198. package/components/modal/style/_modal.scss +13 -30
  199. package/components/modal/style/dnb-modal.css +27 -47
  200. package/components/modal/style/dnb-modal.min.css +1 -1
  201. package/components/pagination/Pagination.d.ts +6 -0
  202. package/components/pagination/Pagination.js +2 -0
  203. package/components/pagination/PaginationBar.js +1 -1
  204. package/components/pagination/PaginationInfinity.js +137 -67
  205. package/components/pagination/PaginationProvider.js +64 -68
  206. package/components/pagination/style/dnb-pagination.css +0 -2
  207. package/components/pagination/style/dnb-pagination.min.css +1 -1
  208. package/components/section/style/themes/dnb-section-theme-ui.css +77 -19
  209. package/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  210. package/components/section/style/themes/dnb-section-theme-ui.scss +15 -2
  211. package/components/slider/style/dnb-slider.css +0 -2
  212. package/components/slider/style/dnb-slider.min.css +1 -1
  213. package/components/step-indicator/StepIndicator.d.ts +1 -1
  214. package/components/step-indicator/StepIndicator.js +4 -91
  215. package/components/step-indicator/StepIndicatorContext.d.ts +1 -0
  216. package/components/step-indicator/StepIndicatorContext.js +196 -18
  217. package/components/step-indicator/StepIndicatorItem.js +2 -5
  218. package/components/step-indicator/StepIndicatorModal.js +33 -32
  219. package/components/step-indicator/StepIndicatorProps.js +1 -1
  220. package/components/step-indicator/StepIndicatorSidebar.d.ts +39 -0
  221. package/components/step-indicator/StepIndicatorSidebar.js +54 -52
  222. package/components/step-indicator/StepIndicatorTriggerButton.js +1 -1
  223. package/components/step-indicator/style/_step-indicator.scss +17 -4
  224. package/components/step-indicator/style/dnb-step-indicator.css +14 -6
  225. package/components/step-indicator/style/dnb-step-indicator.min.css +1 -1
  226. package/components/tabs/style/_tabs.scss +5 -1
  227. package/components/tabs/style/dnb-tabs.css +4 -1
  228. package/components/tabs/style/dnb-tabs.min.css +1 -1
  229. package/components/tabs/style/themes/dnb-tabs-theme-ui.css +37 -34
  230. package/components/tabs/style/themes/dnb-tabs-theme-ui.min.css +1 -1
  231. package/components/tabs/style/themes/dnb-tabs-theme-ui.scss +12 -9
  232. package/components/textarea/style/_textarea.scss +4 -0
  233. package/components/textarea/style/dnb-textarea.css +3 -0
  234. package/components/textarea/style/dnb-textarea.min.css +1 -1
  235. package/components/toggle-button/ToggleButton.js +6 -2
  236. package/components/toggle-button/style/dnb-toggle-button.css +0 -2
  237. package/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  238. package/es/components/accordion/Accordion.d.ts +1 -1
  239. package/es/components/autocomplete/style/dnb-autocomplete.css +0 -2
  240. package/es/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  241. package/es/components/breadcrumb/Breadcrumb.js +5 -3
  242. package/es/components/breadcrumb/Breadcrumb.tsx +9 -0
  243. package/es/components/breadcrumb/style/_breadcrumb.scss +7 -4
  244. package/es/components/breadcrumb/style/dnb-breadcrumb.css +10 -8
  245. package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  246. package/es/components/button/Button.js +2 -1
  247. package/es/components/button/style/_button.scss +0 -4
  248. package/es/components/button/style/dnb-button.css +0 -2
  249. package/es/components/button/style/dnb-button.min.css +1 -1
  250. package/es/components/button/style/themes/dnb-button-theme-open-banking.css +4 -13
  251. package/es/components/button/style/themes/dnb-button-theme-open-banking.min.css +1 -1
  252. package/es/components/button/style/themes/dnb-button-theme-ui.css +4 -13
  253. package/es/components/button/style/themes/dnb-button-theme-ui.min.css +1 -1
  254. package/es/components/button/style/themes/dnb-button-theme-ui.scss +5 -18
  255. package/es/components/date-picker/style/dnb-date-picker.css +0 -6
  256. package/es/components/date-picker/style/dnb-date-picker.min.css +1 -1
  257. package/es/components/dropdown/style/dnb-dropdown.css +0 -2
  258. package/es/components/dropdown/style/dnb-dropdown.min.css +1 -1
  259. package/es/components/form-set/FormSet.d.ts +1 -1
  260. package/es/components/global-error/style/dnb-global-error.css +0 -2
  261. package/es/components/global-error/style/dnb-global-error.min.css +1 -1
  262. package/es/components/global-status/GlobalStatus.js +18 -67
  263. package/es/components/global-status/style/_global-status.scss +14 -12
  264. package/es/components/global-status/style/dnb-global-status.css +13 -17
  265. package/es/components/global-status/style/dnb-global-status.min.css +1 -1
  266. package/es/components/global-status/style/themes/dnb-global-status-theme-ui.css +2 -48
  267. package/es/components/global-status/style/themes/dnb-global-status-theme-ui.min.css +1 -1
  268. package/es/components/global-status/style/themes/dnb-global-status-theme-ui.scss +2 -36
  269. package/es/components/help-button/HelpButton.d.ts +200 -0
  270. package/es/components/input/style/dnb-input.css +0 -2
  271. package/es/components/input/style/dnb-input.min.css +1 -1
  272. package/es/components/input/style/themes/dnb-input-theme-ui.css +11 -2
  273. package/es/components/input/style/themes/dnb-input-theme-ui.min.css +1 -1
  274. package/es/components/input/style/themes/dnb-input-theme-ui.scss +4 -1
  275. package/es/components/input-masked/InputMaskedElement.js +1 -4
  276. package/es/components/input-masked/InputMaskedHooks.js +36 -15
  277. package/es/components/input-masked/InputMaskedUtils.js +9 -3
  278. package/es/components/input-masked/style/dnb-input-masked.css +0 -2
  279. package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
  280. package/es/components/modal/Modal.d.ts +4 -0
  281. package/es/components/modal/Modal.js +33 -27
  282. package/es/components/modal/ModalContent.js +39 -28
  283. package/es/components/modal/style/_modal-mixins.scss +4 -4
  284. package/es/components/modal/style/_modal.scss +13 -30
  285. package/es/components/modal/style/dnb-modal.css +27 -47
  286. package/es/components/modal/style/dnb-modal.min.css +1 -1
  287. package/es/components/pagination/Pagination.d.ts +6 -0
  288. package/es/components/pagination/Pagination.js +2 -0
  289. package/es/components/pagination/PaginationBar.js +1 -1
  290. package/es/components/pagination/PaginationInfinity.js +110 -37
  291. package/es/components/pagination/PaginationProvider.js +57 -61
  292. package/es/components/pagination/style/dnb-pagination.css +0 -2
  293. package/es/components/pagination/style/dnb-pagination.min.css +1 -1
  294. package/es/components/section/style/themes/dnb-section-theme-ui.css +77 -19
  295. package/es/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  296. package/es/components/section/style/themes/dnb-section-theme-ui.scss +15 -2
  297. package/es/components/slider/style/dnb-slider.css +0 -2
  298. package/es/components/slider/style/dnb-slider.min.css +1 -1
  299. package/es/components/step-indicator/StepIndicator.d.ts +1 -1
  300. package/es/components/step-indicator/StepIndicator.js +3 -79
  301. package/es/components/step-indicator/StepIndicatorContext.d.ts +1 -0
  302. package/es/components/step-indicator/StepIndicatorContext.js +165 -17
  303. package/es/components/step-indicator/StepIndicatorItem.js +1 -5
  304. package/es/components/step-indicator/StepIndicatorModal.js +31 -34
  305. package/es/components/step-indicator/StepIndicatorProps.js +1 -1
  306. package/es/components/step-indicator/StepIndicatorSidebar.d.ts +39 -0
  307. package/es/components/step-indicator/StepIndicatorSidebar.js +44 -46
  308. package/es/components/step-indicator/StepIndicatorTriggerButton.js +1 -1
  309. package/es/components/step-indicator/style/_step-indicator.scss +17 -4
  310. package/es/components/step-indicator/style/dnb-step-indicator.css +14 -6
  311. package/es/components/step-indicator/style/dnb-step-indicator.min.css +1 -1
  312. package/es/components/tabs/style/_tabs.scss +5 -1
  313. package/es/components/tabs/style/dnb-tabs.css +4 -1
  314. package/es/components/tabs/style/dnb-tabs.min.css +1 -1
  315. package/es/components/tabs/style/themes/dnb-tabs-theme-ui.css +37 -34
  316. package/es/components/tabs/style/themes/dnb-tabs-theme-ui.min.css +1 -1
  317. package/es/components/tabs/style/themes/dnb-tabs-theme-ui.scss +12 -9
  318. package/es/components/textarea/style/_textarea.scss +4 -0
  319. package/es/components/textarea/style/dnb-textarea.css +3 -0
  320. package/es/components/textarea/style/dnb-textarea.min.css +1 -1
  321. package/es/components/toggle-button/ToggleButton.js +6 -2
  322. package/es/components/toggle-button/style/dnb-toggle-button.css +0 -2
  323. package/es/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  324. package/es/icons/above_the_line.js +1 -1
  325. package/es/icons/facebook.js +23 -0
  326. package/es/icons/facebook_medium.js +23 -0
  327. package/es/icons/fridge.js +1 -1
  328. package/es/icons/icons-meta.json +24 -0
  329. package/es/icons/icons-pdf.lock +1 -1
  330. package/es/icons/icons-svg.lock +1 -1
  331. package/es/icons/index.d.ts +16 -0
  332. package/es/icons/index.js +9 -1
  333. package/es/icons/information_circled.js +11 -4
  334. package/es/icons/information_circled_medium.js +10 -4
  335. package/es/icons/instagram.js +35 -0
  336. package/es/icons/instagram_medium.js +42 -0
  337. package/es/icons/linkedin.js +20 -0
  338. package/es/icons/linkedin_medium.js +20 -0
  339. package/es/icons/motorcycle_medium.js +2 -2
  340. package/es/icons/paragraph.js +1 -1
  341. package/es/icons/scooter_medium.js +2 -2
  342. package/es/icons/secondary_icons.js +5 -1
  343. package/es/icons/secondary_icons_medium.js +5 -1
  344. package/es/icons/tag.js +29 -0
  345. package/es/icons/tag_medium.js +29 -0
  346. package/es/shared/EventEmitter.js +5 -8
  347. package/es/shared/component-helper.js +58 -49
  348. package/es/shared/helpers.js +28 -12
  349. package/es/style/dnb-ui-components.css +71 -77
  350. package/es/style/dnb-ui-components.min.css +5 -5
  351. package/es/style/themes/theme-open-banking/dnb-theme-open-banking.css +135 -129
  352. package/es/style/themes/theme-open-banking/dnb-theme-open-banking.min.css +4 -4
  353. package/es/style/themes/theme-ui/dnb-theme-ui.css +131 -116
  354. package/es/style/themes/theme-ui/dnb-theme-ui.min.css +4 -4
  355. package/esm/components/accordion/Accordion.d.ts +1 -1
  356. package/esm/components/autocomplete/style/dnb-autocomplete.css +0 -2
  357. package/esm/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  358. package/esm/components/breadcrumb/Breadcrumb.js +5 -3
  359. package/esm/components/breadcrumb/Breadcrumb.tsx +9 -0
  360. package/esm/components/breadcrumb/style/_breadcrumb.scss +7 -4
  361. package/esm/components/breadcrumb/style/dnb-breadcrumb.css +10 -8
  362. package/esm/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  363. package/esm/components/button/Button.js +1 -1
  364. package/esm/components/button/style/_button.scss +0 -4
  365. package/esm/components/button/style/dnb-button.css +0 -2
  366. package/esm/components/button/style/dnb-button.min.css +1 -1
  367. package/esm/components/button/style/themes/dnb-button-theme-open-banking.css +4 -13
  368. package/esm/components/button/style/themes/dnb-button-theme-open-banking.min.css +1 -1
  369. package/esm/components/button/style/themes/dnb-button-theme-ui.css +4 -13
  370. package/esm/components/button/style/themes/dnb-button-theme-ui.min.css +1 -1
  371. package/esm/components/button/style/themes/dnb-button-theme-ui.scss +5 -18
  372. package/esm/components/date-picker/style/dnb-date-picker.css +0 -6
  373. package/esm/components/date-picker/style/dnb-date-picker.min.css +1 -1
  374. package/esm/components/dropdown/style/dnb-dropdown.css +0 -2
  375. package/esm/components/dropdown/style/dnb-dropdown.min.css +1 -1
  376. package/esm/components/form-set/FormSet.d.ts +1 -1
  377. package/esm/components/global-error/style/dnb-global-error.css +0 -2
  378. package/esm/components/global-error/style/dnb-global-error.min.css +1 -1
  379. package/esm/components/global-status/GlobalStatus.js +18 -71
  380. package/esm/components/global-status/style/_global-status.scss +14 -12
  381. package/esm/components/global-status/style/dnb-global-status.css +13 -17
  382. package/esm/components/global-status/style/dnb-global-status.min.css +1 -1
  383. package/esm/components/global-status/style/themes/dnb-global-status-theme-ui.css +2 -48
  384. package/esm/components/global-status/style/themes/dnb-global-status-theme-ui.min.css +1 -1
  385. package/esm/components/global-status/style/themes/dnb-global-status-theme-ui.scss +2 -36
  386. package/esm/components/help-button/HelpButton.d.ts +200 -0
  387. package/esm/components/input/style/dnb-input.css +0 -2
  388. package/esm/components/input/style/dnb-input.min.css +1 -1
  389. package/esm/components/input/style/themes/dnb-input-theme-ui.css +11 -2
  390. package/esm/components/input/style/themes/dnb-input-theme-ui.min.css +1 -1
  391. package/esm/components/input/style/themes/dnb-input-theme-ui.scss +4 -1
  392. package/esm/components/input-masked/InputMaskedElement.js +1 -4
  393. package/esm/components/input-masked/InputMaskedHooks.js +42 -19
  394. package/esm/components/input-masked/InputMaskedUtils.js +9 -3
  395. package/esm/components/input-masked/style/dnb-input-masked.css +0 -2
  396. package/esm/components/input-masked/style/dnb-input-masked.min.css +1 -1
  397. package/esm/components/modal/Modal.d.ts +4 -0
  398. package/esm/components/modal/Modal.js +37 -31
  399. package/esm/components/modal/ModalContent.js +46 -37
  400. package/esm/components/modal/style/_modal-mixins.scss +4 -4
  401. package/esm/components/modal/style/_modal.scss +13 -30
  402. package/esm/components/modal/style/dnb-modal.css +27 -47
  403. package/esm/components/modal/style/dnb-modal.min.css +1 -1
  404. package/esm/components/pagination/Pagination.d.ts +6 -0
  405. package/esm/components/pagination/Pagination.js +2 -0
  406. package/esm/components/pagination/PaginationBar.js +1 -1
  407. package/esm/components/pagination/PaginationInfinity.js +137 -67
  408. package/esm/components/pagination/PaginationProvider.js +64 -68
  409. package/esm/components/pagination/style/dnb-pagination.css +0 -2
  410. package/esm/components/pagination/style/dnb-pagination.min.css +1 -1
  411. package/esm/components/section/style/themes/dnb-section-theme-ui.css +77 -19
  412. package/esm/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  413. package/esm/components/section/style/themes/dnb-section-theme-ui.scss +15 -2
  414. package/esm/components/slider/style/dnb-slider.css +0 -2
  415. package/esm/components/slider/style/dnb-slider.min.css +1 -1
  416. package/esm/components/step-indicator/StepIndicator.d.ts +1 -1
  417. package/esm/components/step-indicator/StepIndicator.js +4 -91
  418. package/esm/components/step-indicator/StepIndicatorContext.d.ts +1 -0
  419. package/esm/components/step-indicator/StepIndicatorContext.js +196 -18
  420. package/esm/components/step-indicator/StepIndicatorItem.js +2 -5
  421. package/esm/components/step-indicator/StepIndicatorModal.js +33 -32
  422. package/esm/components/step-indicator/StepIndicatorProps.js +1 -1
  423. package/esm/components/step-indicator/StepIndicatorSidebar.d.ts +39 -0
  424. package/esm/components/step-indicator/StepIndicatorSidebar.js +54 -52
  425. package/esm/components/step-indicator/StepIndicatorTriggerButton.js +1 -1
  426. package/esm/components/step-indicator/style/_step-indicator.scss +17 -4
  427. package/esm/components/step-indicator/style/dnb-step-indicator.css +14 -6
  428. package/esm/components/step-indicator/style/dnb-step-indicator.min.css +1 -1
  429. package/esm/components/tabs/style/_tabs.scss +5 -1
  430. package/esm/components/tabs/style/dnb-tabs.css +4 -1
  431. package/esm/components/tabs/style/dnb-tabs.min.css +1 -1
  432. package/esm/components/tabs/style/themes/dnb-tabs-theme-ui.css +37 -34
  433. package/esm/components/tabs/style/themes/dnb-tabs-theme-ui.min.css +1 -1
  434. package/esm/components/tabs/style/themes/dnb-tabs-theme-ui.scss +12 -9
  435. package/esm/components/textarea/style/_textarea.scss +4 -0
  436. package/esm/components/textarea/style/dnb-textarea.css +3 -0
  437. package/esm/components/textarea/style/dnb-textarea.min.css +1 -1
  438. package/esm/components/toggle-button/ToggleButton.js +6 -2
  439. package/esm/components/toggle-button/style/dnb-toggle-button.css +0 -2
  440. package/esm/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  441. package/esm/dnb-ui-basis.min.mjs +2 -2
  442. package/esm/dnb-ui-components.min.mjs +3 -3
  443. package/esm/dnb-ui-elements.min.mjs +4 -4
  444. package/esm/dnb-ui-extensions.min.mjs +4 -4
  445. package/esm/dnb-ui-lib.min.mjs +4 -4
  446. package/esm/dnb-ui-web-components.min.mjs +4 -4
  447. package/esm/icons/above_the_line.js +1 -1
  448. package/esm/icons/facebook.js +23 -0
  449. package/esm/icons/facebook_medium.js +23 -0
  450. package/esm/icons/fridge.js +1 -1
  451. package/esm/icons/icons-meta.json +24 -0
  452. package/esm/icons/icons-pdf.lock +1 -1
  453. package/esm/icons/icons-svg.lock +1 -1
  454. package/esm/icons/index.d.ts +16 -0
  455. package/esm/icons/index.js +9 -1
  456. package/esm/icons/information_circled.js +11 -4
  457. package/esm/icons/information_circled_medium.js +10 -4
  458. package/esm/icons/instagram.js +35 -0
  459. package/esm/icons/instagram_medium.js +42 -0
  460. package/esm/icons/linkedin.js +20 -0
  461. package/esm/icons/linkedin_medium.js +20 -0
  462. package/esm/icons/motorcycle_medium.js +2 -2
  463. package/esm/icons/paragraph.js +1 -1
  464. package/esm/icons/scooter_medium.js +2 -2
  465. package/esm/icons/secondary_icons.js +5 -1
  466. package/esm/icons/secondary_icons_medium.js +5 -1
  467. package/esm/icons/tag.js +29 -0
  468. package/esm/icons/tag_medium.js +29 -0
  469. package/esm/shared/EventEmitter.js +6 -8
  470. package/esm/shared/component-helper.js +94 -58
  471. package/esm/shared/helpers.js +36 -12
  472. package/esm/style/dnb-ui-components.css +71 -77
  473. package/esm/style/dnb-ui-components.min.css +5 -5
  474. package/esm/style/themes/theme-open-banking/dnb-theme-open-banking.css +135 -129
  475. package/esm/style/themes/theme-open-banking/dnb-theme-open-banking.min.css +4 -4
  476. package/esm/style/themes/theme-ui/dnb-theme-ui.css +131 -116
  477. package/esm/style/themes/theme-ui/dnb-theme-ui.min.css +4 -4
  478. package/icons/above_the_line.js +1 -1
  479. package/icons/facebook.js +23 -0
  480. package/icons/facebook_medium.js +23 -0
  481. package/icons/fridge.js +1 -1
  482. package/icons/icons-meta.json +24 -0
  483. package/icons/icons-pdf.lock +1 -1
  484. package/icons/icons-svg.lock +1 -1
  485. package/icons/index.d.ts +16 -0
  486. package/icons/index.js +9 -1
  487. package/icons/information_circled.js +11 -4
  488. package/icons/information_circled_medium.js +10 -4
  489. package/icons/instagram.js +35 -0
  490. package/icons/instagram_medium.js +42 -0
  491. package/icons/linkedin.js +20 -0
  492. package/icons/linkedin_medium.js +20 -0
  493. package/icons/motorcycle_medium.js +2 -2
  494. package/icons/paragraph.js +1 -1
  495. package/icons/scooter_medium.js +2 -2
  496. package/icons/secondary_icons.js +5 -1
  497. package/icons/secondary_icons_medium.js +5 -1
  498. package/icons/tag.js +29 -0
  499. package/icons/tag_medium.js +29 -0
  500. package/package.json +2 -2
  501. package/shared/EventEmitter.js +6 -8
  502. package/shared/component-helper.js +94 -58
  503. package/shared/helpers.js +36 -12
  504. package/style/dnb-ui-components.css +71 -77
  505. package/style/dnb-ui-components.min.css +5 -5
  506. package/style/themes/theme-open-banking/dnb-theme-open-banking.css +135 -129
  507. package/style/themes/theme-open-banking/dnb-theme-open-banking.min.css +4 -4
  508. package/style/themes/theme-ui/dnb-theme-ui.css +131 -116
  509. package/style/themes/theme-ui/dnb-theme-ui.min.css +4 -4
  510. package/umd/dnb-ui-basis.min.js +3 -3
  511. package/umd/dnb-ui-components.min.js +5 -5
  512. package/umd/dnb-ui-elements.min.js +5 -5
  513. package/umd/dnb-ui-extensions.min.js +5 -5
  514. package/umd/dnb-ui-lib.min.js +5 -5
  515. package/umd/dnb-ui-web-components.min.js +5 -5
@@ -85,7 +85,6 @@
85
85
  box-shadow: inset 0 0 0 1px #737373;
86
86
  -webkit-box-shadow: inset 0 0 0 1px var(--color-black-55);
87
87
  box-shadow: inset 0 0 0 1px var(--color-black-55); } }
88
- .dnb-input[data-input-state='focus'] .dnb-input__shell,
89
88
  .dnb-input:not([data-input-state='disabled']) .dnb-input__shell:hover,
90
89
  .dnb-input:not([data-input-state='disabled']):hover .dnb-input__shell {
91
90
  --border-color: var(--color-sea-green);
@@ -93,13 +92,23 @@
93
92
  box-shadow: 0 0 0 0.125rem var(--border-color);
94
93
  border-color: transparent; }
95
94
  @media screen and (-ms-high-contrast: none) {
96
- .dnb-input[data-input-state='focus'] .dnb-input__shell,
97
95
  .dnb-input:not([data-input-state='disabled']) .dnb-input__shell:hover,
98
96
  .dnb-input:not([data-input-state='disabled']):hover .dnb-input__shell {
99
97
  -webkit-box-shadow: 0 0 0 0.125rem #007272;
100
98
  box-shadow: 0 0 0 0.125rem #007272;
101
99
  -webkit-box-shadow: 0 0 0 0.125rem var(--color-sea-green);
102
100
  box-shadow: 0 0 0 0.125rem var(--color-sea-green); } }
101
+ .dnb-input[data-input-state='focus']:not([data-input-state='disabled']) .dnb-input__shell {
102
+ --border-color: var(--color-emerald-green);
103
+ -webkit-box-shadow: 0 0 0 0.125rem var(--border-color);
104
+ box-shadow: 0 0 0 0.125rem var(--border-color);
105
+ border-color: transparent; }
106
+ @media screen and (-ms-high-contrast: none) {
107
+ .dnb-input[data-input-state='focus']:not([data-input-state='disabled']) .dnb-input__shell {
108
+ -webkit-box-shadow: 0 0 0 0.125rem #14555a;
109
+ box-shadow: 0 0 0 0.125rem #14555a;
110
+ -webkit-box-shadow: 0 0 0 0.125rem var(--color-emerald-green);
111
+ box-shadow: 0 0 0 0.125rem var(--color-emerald-green); } }
103
112
  .dnb-input__status--error.dnb-input:not([data-input-state='focus']) .dnb-input__shell {
104
113
  color: #dc2a2a;
105
114
  color: var(--color-fire-red); }
@@ -1,4 +1,4 @@
1
- .dnb-input{color:#000;color:var(--color-black)}.dnb-input__inner{color:inherit}.dnb-input__shell{--border-color:var(--color-sea-green);background-color:#fff;background-color:var(--color-white);border:transparent;-webkit-box-shadow:inset 0 0 0 .0625rem var(--border-color);box-shadow:inset 0 0 0 .0625rem var(--border-color);-webkit-box-shadow:inset 0 0 0 var(--input-border-width) var(--border-color);box-shadow:inset 0 0 0 var(--input-border-width) var(--border-color);color:inherit}@supports (-webkit-touch-callout:none){.dnb-input__shell{-webkit-box-shadow:0 0 0 .0625rem var(--border-color);box-shadow:0 0 0 .0625rem var(--border-color);-webkit-box-shadow:0 0 0 var(--input-border-width) var(--border-color);box-shadow:0 0 0 var(--input-border-width) var(--border-color)}}@media not all and (min-resolution:0.001dpcm){@supports (-webkit-appearance:none) and (stroke-color:transparent) and (not (-webkit-overflow-scrolling:touch)){.dnb-input__shell{-webkit-box-shadow:0 0 0 .0625rem var(--border-color);box-shadow:0 0 0 .0625rem var(--border-color);-webkit-box-shadow:0 0 0 var(--input-border-width) var(--border-color);box-shadow:0 0 0 var(--input-border-width) var(--border-color)}}}@media screen and (-ms-high-contrast:none){.dnb-input__shell{-webkit-box-shadow:inset 0 0 0 1px #007272;box-shadow:inset 0 0 0 1px #007272;-webkit-box-shadow:inset 0 0 0 1px var(--color-sea-green);box-shadow:inset 0 0 0 1px var(--color-sea-green)}}.dnb-input__icon{color:#007272;color:var(--color-sea-green)}.dnb-input[data-input-state=disabled] .dnb-input__shell{-webkit-text-fill-color:currentColor;--border-color:var(--color-black-55);background-color:#f8f8f8;background-color:var(--color-black-3);border-color:transparent;-webkit-box-shadow:inset 0 0 0 .0625rem var(--border-color);box-shadow:inset 0 0 0 .0625rem var(--border-color);-webkit-box-shadow:inset 0 0 0 var(--input-border-width) var(--border-color);box-shadow:inset 0 0 0 var(--input-border-width) var(--border-color)}.dnb-input[data-input-state=disabled] .dnb-input__shell,.dnb-input[data-input-state=disabled] .dnb-input__shell .dnb-icon{color:#737373;color:var(--color-black-55)}@supports (-webkit-touch-callout:none){.dnb-input[data-input-state=disabled] .dnb-input__shell{-webkit-box-shadow:0 0 0 .0625rem var(--border-color);box-shadow:0 0 0 .0625rem var(--border-color);-webkit-box-shadow:0 0 0 var(--input-border-width) var(--border-color);box-shadow:0 0 0 var(--input-border-width) var(--border-color)}}@media not all and (min-resolution:0.001dpcm){@supports (-webkit-appearance:none) and (stroke-color:transparent) and (not (-webkit-overflow-scrolling:touch)){.dnb-input[data-input-state=disabled] .dnb-input__shell{-webkit-box-shadow:0 0 0 .0625rem var(--border-color);box-shadow:0 0 0 .0625rem var(--border-color);-webkit-box-shadow:0 0 0 var(--input-border-width) var(--border-color);box-shadow:0 0 0 var(--input-border-width) var(--border-color)}}}@media screen and (-ms-high-contrast:none){.dnb-input[data-input-state=disabled] .dnb-input__shell{-webkit-box-shadow:inset 0 0 0 1px #737373;box-shadow:inset 0 0 0 1px #737373;-webkit-box-shadow:inset 0 0 0 1px var(--color-black-55);box-shadow:inset 0 0 0 1px var(--color-black-55)}}.dnb-input:not([data-input-state=disabled]) .dnb-input__shell:hover,.dnb-input:not([data-input-state=disabled]):hover .dnb-input__shell,.dnb-input[data-input-state=focus] .dnb-input__shell{--border-color:var(--color-sea-green);border-color:transparent;-webkit-box-shadow:0 0 0 .125rem var(--border-color);box-shadow:0 0 0 .125rem var(--border-color)}@media screen and (-ms-high-contrast:none){.dnb-input:not([data-input-state=disabled]) .dnb-input__shell:hover,.dnb-input:not([data-input-state=disabled]):hover .dnb-input__shell,.dnb-input[data-input-state=focus] .dnb-input__shell{-webkit-box-shadow:0 0 0 .125rem #007272;box-shadow:0 0 0 .125rem #007272;-webkit-box-shadow:0 0 0 .125rem var(--color-sea-green);box-shadow:0 0 0 .125rem var(--color-sea-green)}}.dnb-input__status--error.dnb-input:not([data-input-state=focus]) .dnb-input__shell{color:#dc2a2a;color:var(--color-fire-red)}.dnb-input__status--error.dnb-input:not([data-input-state=focus]):not(:hover) .dnb-input__shell{--border-color:var(--color-fire-red);border-color:transparent;-webkit-box-shadow:0 0 0 .0625rem var(--border-color);box-shadow:0 0 0 .0625rem var(--border-color)}@media screen and (-ms-high-contrast:none){.dnb-input__status--error.dnb-input:not([data-input-state=focus]):not(:hover) .dnb-input__shell{-webkit-box-shadow:0 0 0 .0625rem #dc2a2a;box-shadow:0 0 0 .0625rem #dc2a2a;-webkit-box-shadow:0 0 0 .0625rem var(--color-fire-red);box-shadow:0 0 0 .0625rem var(--color-fire-red)}}.dnb-input__status--error.dnb-input:not([data-input-state=disabled]) .dnb-input__shell:hover,.dnb-input__status--error.dnb-input:not([data-input-state=disabled]):hover .dnb-input__shell,.dnb-input__status--error.dnb-input[data-input-state=focus] .dnb-input__shell{--border-color:var(--color-fire-red);border-color:transparent;-webkit-box-shadow:0 0 0 .125rem var(--border-color);box-shadow:0 0 0 .125rem var(--border-color)}@media screen and (-ms-high-contrast:none){.dnb-input__status--error.dnb-input:not([data-input-state=disabled]) .dnb-input__shell:hover,.dnb-input__status--error.dnb-input:not([data-input-state=disabled]):hover .dnb-input__shell,.dnb-input__status--error.dnb-input[data-input-state=focus] .dnb-input__shell{-webkit-box-shadow:0 0 0 .125rem #dc2a2a;box-shadow:0 0 0 .125rem #dc2a2a;-webkit-box-shadow:0 0 0 .125rem var(--color-fire-red);box-shadow:0 0 0 .125rem var(--color-fire-red)}}html:not([data-whatintent=touch])
1
+ .dnb-input{color:#000;color:var(--color-black)}.dnb-input__inner{color:inherit}.dnb-input__shell{--border-color:var(--color-sea-green);background-color:#fff;background-color:var(--color-white);border:transparent;-webkit-box-shadow:inset 0 0 0 .0625rem var(--border-color);box-shadow:inset 0 0 0 .0625rem var(--border-color);-webkit-box-shadow:inset 0 0 0 var(--input-border-width) var(--border-color);box-shadow:inset 0 0 0 var(--input-border-width) var(--border-color);color:inherit}@supports (-webkit-touch-callout:none){.dnb-input__shell{-webkit-box-shadow:0 0 0 .0625rem var(--border-color);box-shadow:0 0 0 .0625rem var(--border-color);-webkit-box-shadow:0 0 0 var(--input-border-width) var(--border-color);box-shadow:0 0 0 var(--input-border-width) var(--border-color)}}@media not all and (min-resolution:0.001dpcm){@supports (-webkit-appearance:none) and (stroke-color:transparent) and (not (-webkit-overflow-scrolling:touch)){.dnb-input__shell{-webkit-box-shadow:0 0 0 .0625rem var(--border-color);box-shadow:0 0 0 .0625rem var(--border-color);-webkit-box-shadow:0 0 0 var(--input-border-width) var(--border-color);box-shadow:0 0 0 var(--input-border-width) var(--border-color)}}}@media screen and (-ms-high-contrast:none){.dnb-input__shell{-webkit-box-shadow:inset 0 0 0 1px #007272;box-shadow:inset 0 0 0 1px #007272;-webkit-box-shadow:inset 0 0 0 1px var(--color-sea-green);box-shadow:inset 0 0 0 1px var(--color-sea-green)}}.dnb-input__icon{color:#007272;color:var(--color-sea-green)}.dnb-input[data-input-state=disabled] .dnb-input__shell{-webkit-text-fill-color:currentColor;--border-color:var(--color-black-55);background-color:#f8f8f8;background-color:var(--color-black-3);border-color:transparent;-webkit-box-shadow:inset 0 0 0 .0625rem var(--border-color);box-shadow:inset 0 0 0 .0625rem var(--border-color);-webkit-box-shadow:inset 0 0 0 var(--input-border-width) var(--border-color);box-shadow:inset 0 0 0 var(--input-border-width) var(--border-color)}.dnb-input[data-input-state=disabled] .dnb-input__shell,.dnb-input[data-input-state=disabled] .dnb-input__shell .dnb-icon{color:#737373;color:var(--color-black-55)}@supports (-webkit-touch-callout:none){.dnb-input[data-input-state=disabled] .dnb-input__shell{-webkit-box-shadow:0 0 0 .0625rem var(--border-color);box-shadow:0 0 0 .0625rem var(--border-color);-webkit-box-shadow:0 0 0 var(--input-border-width) var(--border-color);box-shadow:0 0 0 var(--input-border-width) var(--border-color)}}@media not all and (min-resolution:0.001dpcm){@supports (-webkit-appearance:none) and (stroke-color:transparent) and (not (-webkit-overflow-scrolling:touch)){.dnb-input[data-input-state=disabled] .dnb-input__shell{-webkit-box-shadow:0 0 0 .0625rem var(--border-color);box-shadow:0 0 0 .0625rem var(--border-color);-webkit-box-shadow:0 0 0 var(--input-border-width) var(--border-color);box-shadow:0 0 0 var(--input-border-width) var(--border-color)}}}@media screen and (-ms-high-contrast:none){.dnb-input[data-input-state=disabled] .dnb-input__shell{-webkit-box-shadow:inset 0 0 0 1px #737373;box-shadow:inset 0 0 0 1px #737373;-webkit-box-shadow:inset 0 0 0 1px var(--color-black-55);box-shadow:inset 0 0 0 1px var(--color-black-55)}}.dnb-input:not([data-input-state=disabled]) .dnb-input__shell:hover,.dnb-input:not([data-input-state=disabled]):hover .dnb-input__shell{--border-color:var(--color-sea-green);border-color:transparent;-webkit-box-shadow:0 0 0 .125rem var(--border-color);box-shadow:0 0 0 .125rem var(--border-color)}@media screen and (-ms-high-contrast:none){.dnb-input:not([data-input-state=disabled]) .dnb-input__shell:hover,.dnb-input:not([data-input-state=disabled]):hover .dnb-input__shell{-webkit-box-shadow:0 0 0 .125rem #007272;box-shadow:0 0 0 .125rem #007272;-webkit-box-shadow:0 0 0 .125rem var(--color-sea-green);box-shadow:0 0 0 .125rem var(--color-sea-green)}}.dnb-input[data-input-state=focus]:not([data-input-state=disabled]) .dnb-input__shell{--border-color:var(--color-emerald-green);border-color:transparent;-webkit-box-shadow:0 0 0 .125rem var(--border-color);box-shadow:0 0 0 .125rem var(--border-color)}@media screen and (-ms-high-contrast:none){.dnb-input[data-input-state=focus]:not([data-input-state=disabled]) .dnb-input__shell{-webkit-box-shadow:0 0 0 .125rem #14555a;box-shadow:0 0 0 .125rem #14555a;-webkit-box-shadow:0 0 0 .125rem var(--color-emerald-green);box-shadow:0 0 0 .125rem var(--color-emerald-green)}}.dnb-input__status--error.dnb-input:not([data-input-state=focus]) .dnb-input__shell{color:#dc2a2a;color:var(--color-fire-red)}.dnb-input__status--error.dnb-input:not([data-input-state=focus]):not(:hover) .dnb-input__shell{--border-color:var(--color-fire-red);border-color:transparent;-webkit-box-shadow:0 0 0 .0625rem var(--border-color);box-shadow:0 0 0 .0625rem var(--border-color)}@media screen and (-ms-high-contrast:none){.dnb-input__status--error.dnb-input:not([data-input-state=focus]):not(:hover) .dnb-input__shell{-webkit-box-shadow:0 0 0 .0625rem #dc2a2a;box-shadow:0 0 0 .0625rem #dc2a2a;-webkit-box-shadow:0 0 0 .0625rem var(--color-fire-red);box-shadow:0 0 0 .0625rem var(--color-fire-red)}}.dnb-input__status--error.dnb-input:not([data-input-state=disabled]) .dnb-input__shell:hover,.dnb-input__status--error.dnb-input:not([data-input-state=disabled]):hover .dnb-input__shell,.dnb-input__status--error.dnb-input[data-input-state=focus] .dnb-input__shell{--border-color:var(--color-fire-red);border-color:transparent;-webkit-box-shadow:0 0 0 .125rem var(--border-color);box-shadow:0 0 0 .125rem var(--border-color)}@media screen and (-ms-high-contrast:none){.dnb-input__status--error.dnb-input:not([data-input-state=disabled]) .dnb-input__shell:hover,.dnb-input__status--error.dnb-input:not([data-input-state=disabled]):hover .dnb-input__shell,.dnb-input__status--error.dnb-input[data-input-state=focus] .dnb-input__shell{-webkit-box-shadow:0 0 0 .125rem #dc2a2a;box-shadow:0 0 0 .125rem #dc2a2a;-webkit-box-shadow:0 0 0 .125rem var(--color-fire-red);box-shadow:0 0 0 .125rem var(--color-fire-red)}}html:not([data-whatintent=touch])
2
2
  .dnb-input__status--error .dnb-input__submit-button__button.dnb-button--secondary:not([disabled]):focus,html:not([data-whatintent=touch])
3
3
  .dnb-input__status--error .dnb-input__submit-button__button.dnb-button--secondary:not([disabled]):focus:after,html:not([data-whatintent=touch])
4
4
  .dnb-input__status--error .dnb-input__submit-button__button.dnb-button--secondary:not([disabled]):hover,html:not([data-whatintent=touch])
@@ -45,12 +45,15 @@
45
45
  background-color: var(--color-black-3);
46
46
  }
47
47
 
48
- &[data-input-state='focus'] &__shell,
49
48
  &:not([data-input-state='disabled']) &__shell:hover,
50
49
  &:not([data-input-state='disabled']):hover &__shell {
51
50
  @include fakeBorder(var(--color-sea-green), 0.125rem);
52
51
  }
53
52
 
53
+ &[data-input-state='focus']:not([data-input-state='disabled']) &__shell {
54
+ @include fakeBorder(var(--color-emerald-green), 0.125rem);
55
+ }
56
+
54
57
  // with status_state = "error"
55
58
  &__status--error#{&}:not([data-input-state='focus']) &__shell {
56
59
  color: var(--color-fire-red);
@@ -17,10 +17,7 @@ export default function InputMaskedElement() {
17
17
  htmlAttributes
18
18
  } = useFilteredProps();
19
19
  const {
20
- className,
21
- show_guide,
22
- show_mask,
23
- placeholder_char
20
+ className
24
21
  } = props;
25
22
  return React.createElement(Input, _extends({}, htmlAttributes, events, {
26
23
  input_element: inputElement,
@@ -73,7 +73,7 @@ export const useLocalValue = () => {
73
73
  props
74
74
  } = React.useContext(InputMaskedContext);
75
75
  const context = React.useContext(Context);
76
- const maskParams = useNumberMaskParams();
76
+ const maskParams = useNumberMaskParams() || {};
77
77
  const locale = useLocale();
78
78
  const [localValue, setLocalValue] = React.useState(() => correctNumberValue({
79
79
  props,
@@ -200,14 +200,22 @@ export const useEventMapping = ({
200
200
  setLocalValue
201
201
  });
202
202
  return {
203
+ onBeforeInput: event => callEvent({
204
+ event
205
+ }, 'on_before_input'),
206
+ onFocus: params => callEvent(params, 'on_focus'),
207
+ onBlur: params => callEvent(params, 'on_blur'),
203
208
  onMouseUp: event => callEvent({
204
209
  event
205
210
  }, 'on_mouse_up'),
206
- on_focus: params => callEvent(params, 'on_focus'),
207
- on_key_down: params => callEvent(params, 'on_key_down'),
208
- on_submit: params => callEvent(params, 'on_submit'),
209
- on_blur: params => callEvent(params, 'on_blur'),
210
- on_change: params => callEvent(params, 'on_change')
211
+ onKeyDown: params => callEvent(params, 'on_key_down'),
212
+ onSubmit: params => callEvent(params, 'on_submit'),
213
+ onChange: params => callEvent(params, 'on_change'),
214
+ on_focus: undefined,
215
+ on_blur: undefined,
216
+ on_key_down: undefined,
217
+ on_submit: undefined,
218
+ on_change: undefined
211
219
  };
212
220
  };
213
221
 
@@ -218,22 +226,29 @@ const useCallEvent = ({
218
226
  props
219
227
  } = React.useContext(InputMaskedContext);
220
228
  const maskParams = useMaskParams();
221
-
222
- if (!maskParams) {
223
- return () => {};
224
- }
225
-
229
+ const isNumberMask = useNumberMask();
226
230
  const decimalSeparators = /[,.'·]/;
231
+ let isUnidentified = false;
227
232
 
228
233
  const callEvent = ({
229
234
  event,
230
235
  value
231
236
  }, name) => {
232
237
  value = value || event.target.value;
233
- const keyCode = keycode(event);
234
238
  const selStart = event.target.selectionStart;
239
+ let keyCode = keycode(event);
235
240
 
236
- if (name === 'on_key_down' && !(maskParams !== null && maskParams !== void 0 && maskParams.allowLeadingZeroes) && (keyCode === '0' || value.replace(/[^\d]/g, '') === '' && decimalSeparators.test(keyCode))) {
241
+ if (name === 'on_key_down' && (event.which === 229 || keyCode === undefined)) {
242
+ isUnidentified = true;
243
+ }
244
+
245
+ if (isUnidentified && name === 'on_before_input' && typeof (event === null || event === void 0 ? void 0 : event.data) !== 'undefined') {
246
+ name = 'on_key_down';
247
+ keyCode = event.data;
248
+ isUnidentified = false;
249
+ }
250
+
251
+ if (name === 'on_key_down' && !isUnidentified && (isNumberMask && !(maskParams !== null && maskParams !== void 0 && maskParams.allowLeadingZeroes) || !isNumberMask && (maskParams === null || maskParams === void 0 ? void 0 : maskParams.allowLeadingZeroes) === false) && (keyCode === '0' || keyCode === 'numpad 0' || value.replace(/[^\d]/g, '') === '' && decimalSeparators.test(keyCode))) {
237
252
  const testValue = (value.slice(0, selStart) + '0' + value.slice(selStart + 1, value.length)).replace(/[^\d]/g, '');
238
253
 
239
254
  if (/^0/.test(testValue)) {
@@ -242,7 +257,7 @@ const useCallEvent = ({
242
257
  }
243
258
  }
244
259
 
245
- if (name === 'on_key_down' && maskParams !== null && maskParams !== void 0 && maskParams.decimalSymbol) {
260
+ if (name === 'on_key_down' && isNumberMask && !isUnidentified && maskParams !== null && maskParams !== void 0 && maskParams.decimalSymbol) {
246
261
  const hasDecimalSymbol = value.includes(maskParams.decimalSymbol);
247
262
  const allowedDecimals = maskParams.decimalLimit > 0 || maskParams.allowDecimal !== false;
248
263
 
@@ -267,16 +282,22 @@ const useCallEvent = ({
267
282
  value = value.slice(0, selStart);
268
283
  setLocalValue(value + maskParams.decimalSymbol);
269
284
  event.target.value = value + maskParams.decimalSymbol;
285
+ event.preventDefault();
270
286
  }
271
287
  }
272
288
  }
273
289
 
274
- const num = cleanNumber(value, {
290
+ let num = cleanNumber(value, {
275
291
  prefix: maskParams.prefix,
276
292
  suffix: maskParams.suffix,
277
293
  decimalSeparator: maskParams.decimalSymbol || ',',
278
294
  thousandsSeparator: maskParams.thousandsSeparatorSymbol || ' '
279
295
  });
296
+
297
+ if (num === '-') {
298
+ num = -0;
299
+ }
300
+
280
301
  const numberValue = Number(num);
281
302
  const cleanedValue = numberValue === 0 ? '' : num;
282
303
  const cleaned_value = cleanedValue;
@@ -6,7 +6,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
6
6
 
7
7
  import { format, getDecimalSeparator, getThousandsSeparator } from '../number-format/NumberUtils';
8
8
  import { warn } from '../../shared/component-helper';
9
- import { IS_IE11 } from '../../shared/helpers';
9
+ import { IS_IE11, IS_ANDROID, IS_IOS } from '../../shared/helpers';
10
10
  const enableLocaleSupportWhen = ['as_number', 'as_percent', 'as_currency'];
11
11
  const enableNumberMaskWhen = ['as_number', 'as_percent', 'as_currency', 'number_mask', 'currency_mask'];
12
12
  export const invisibleSpace = '\u200B';
@@ -67,7 +67,7 @@ export const correctNumberValue = ({
67
67
 
68
68
  if (endsWithDecimal) {
69
69
  value = `${value}${decimalSymbol}`;
70
- } else if (endsWithZeroAndDecimal) {
70
+ } else if (endsWithZeroAndDecimal && !numberValue.endsWith(`${decimalSymbol}0`)) {
71
71
  value = `${value}${decimalSymbol}0`;
72
72
  }
73
73
 
@@ -75,7 +75,9 @@ export const correctNumberValue = ({
75
75
  value = localValue;
76
76
  }
77
77
 
78
- if (localNumberValue === '' && numberValue === '0') {
78
+ if (/^-|-0$/.test(localValue)) {
79
+ value = localValue;
80
+ } else if (localNumberValue === '' && numberValue === '0') {
79
81
  value = '';
80
82
  }
81
83
  }
@@ -187,6 +189,10 @@ export const handleNumberMask = ({
187
189
  export function getInputModeFromMask(mask) {
188
190
  const maskParams = mask === null || mask === void 0 ? void 0 : mask.maskParams;
189
191
 
192
+ if ((IS_ANDROID || IS_IOS) && (maskParams === null || maskParams === void 0 ? void 0 : maskParams.allowNegative) !== false) {
193
+ return undefined;
194
+ }
195
+
190
196
  if (maskParams && (mask === null || mask === void 0 ? void 0 : mask.instanceOf) === 'createNumberMask') {
191
197
  return maskParams.allowDecimal && maskParams.decimalLimit !== 0 ? 'decimal' : 'numeric';
192
198
  }
@@ -509,8 +509,6 @@
509
509
  padding-left: 1rem; }
510
510
  .dnb-button--has-text.dnb-button--icon-position-right.dnb-button--size-large {
511
511
  padding-right: 1rem; }
512
- .dnb-button--tertiary .dnb-button__text {
513
- margin: 0; }
514
512
  .dnb-button--has-text {
515
513
  width: auto; }
516
514
  .dnb-button--has-text .dnb-button__icon {
@@ -1,2 +1,2 @@
1
- .dnb-button{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;color:#333;color:var(--color-black-80,#333);font-family:DNB,sans-serif;font-family:var(--font-family-default);font-style:normal;font-weight:400;font-weight:var(--font-weight-basis);line-height:1.5rem;line-height:var(--line-height-basis);margin:0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-break:break-word}.dnb-button *,.dnb-button :after,.dnb-button :before{background-repeat:no-repeat;-webkit-box-sizing:border-box;box-sizing:border-box}.dnb-button :after,.dnb-button :before{text-decoration:inherit;vertical-align:inherit}:root{--button-font-size:var(--font-size-basis);--button-font-size-small:var(--font-size-small);--button-width:2.5rem;--button-height:2.5rem;--button-width--small:1.5rem;--button-height--small:1.5rem;--button-width--medium:2rem;--button-height--medium:2rem;--button-width--large:3rem;--button-height--large:3rem;--button-icon-size:1rem;--button-border-width:0.0625rem;--button-border-width--hover:0.1875rem;--button-border-radius:calc(var(--button-height)/2);--button-border-radius--small:calc(var(--button-height--small)/2);--button-border-radius--medium:calc(var(--button-height--medium)/2);--button-border-radius--large:calc(var(--button-height--large)/2)}.dnb-button{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border:.0625rem solid transparent;border:var(--button-border-width) solid transparent;border-radius:1.25rem;border-radius:var(--button-border-radius);cursor:pointer;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-size:1rem;font-size:var(--font-size-small);height:auto;justify-content:center;padding:0;position:relative;text-decoration:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none;white-space:nowrap;width:2.5rem;width:var(--button-width)}.dnb-button--wrap{word-wrap:break-word;white-space:normal}.dnb-button,.dnb-core-style .dnb-button{line-height:2.5rem;line-height:var(--button-height)}.dnb-button__text{color:inherit;font-size:1.125rem;font-size:var(--button-font-size);line-height:1.5rem;line-height:var(--line-height-basis);margin:.5rem 0;-webkit-transform:translateY(-.03125rem);transform:translateY(-.03125rem)}.dnb-button__text [data-os=linux]{-webkit-transform:translateY(-.035rem);transform:translateY(-.035rem)}.dnb-button__alignment{display:inline-block;width:0}.dnb-button__bounding{background-color:transparent;border-radius:1.25rem;border-radius:var(--button-border-radius);bottom:0;left:0;position:absolute;right:0;top:0;-webkit-transform:scale(1.1,1.4);transform:scale(1.1,1.4)}.dnb-button--has-text{padding-left:1.5rem;padding-right:1.5rem}.dnb-button--size-small{border-radius:.75rem;border-radius:var(--button-border-radius--small);font-size:1rem;font-size:var(--button-font-size-small);width:1.5rem;width:var(--button-width--small)}.dnb-button--size-small,.dnb-core-style .dnb-button--size-small{line-height:1.5rem;line-height:var(--button-height--small)}.dnb-button--size-small .dnb-button__text{margin:0}.dnb-button--has-text.dnb-button--size-small{padding-left:1rem;padding-right:1rem}.dnb-button--has-text.dnb-button--icon-position-left.dnb-button--size-small{padding-left:.5rem}.dnb-button--has-text.dnb-button--icon-position-right.dnb-button--size-small{padding-right:.5rem}.dnb-button--size-medium{border-radius:1rem;border-radius:var(--button-border-radius--medium);width:2rem;width:var(--button-width--medium)}.dnb-button--size-medium,.dnb-core-style .dnb-button--size-medium{line-height:2rem;line-height:var(--button-height--medium)}.dnb-button--size-medium .dnb-button__text{margin:0}.dnb-button--has-text.dnb-button--size-medium{padding-left:1rem;padding-right:1rem}.dnb-button--has-text.dnb-button--icon-position-left.dnb-button--size-medium{padding-left:.5rem}.dnb-button--has-text.dnb-button--icon-position-right.dnb-button--size-medium{padding-right:.5rem}.dnb-button--size-large{border-radius:1.5rem;border-radius:var(--button-border-radius--large);width:3rem;width:var(--button-width--large)}.dnb-button--size-large,.dnb-core-style .dnb-button--size-large{line-height:3rem;line-height:var(--button-height--large)}.dnb-button--has-text.dnb-button--size-large{padding-left:2rem;padding-right:2rem}.dnb-button--has-text.dnb-button--icon-position-left.dnb-button--size-large{padding-left:1rem}.dnb-button--has-text.dnb-button--icon-position-right.dnb-button--size-large{padding-right:1rem}.dnb-button--tertiary .dnb-button__text{margin:0}.dnb-button--has-text{width:auto}.dnb-button--has-text .dnb-button__icon{margin:0 .5rem;margin:0 calc(var(--button-icon-size)/2)}.dnb-button--has-text.dnb-button--icon-position-left{padding-left:.5rem}.dnb-button--has-text.dnb-button--icon-position-right{padding-right:.5rem}.dnb-button--has-text.dnb-button--has-icon .dnb-button__icon{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.dnb-button--has-text.dnb-button--has-icon .dnb-button__text{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.dnb-button:not(.dnb-button--has-text) .dnb-button__icon{width:inherit}.dnb-button__icon.dnb-icon svg:not([width]):not([height]){height:1rem;height:var(--button-icon-size);width:1rem;width:var(--button-icon-size)}[href]>.dnb-button__icon.dnb-icon{line-height:1.125rem;line-height:var(--button-font-size)}.dnb-button--has-text.dnb-button--has-icon.dnb-button--icon-position-left .dnb-button__icon,.dnb-button--has-text.dnb-button--has-icon.dnb-button--icon-position-top .dnb-button__icon{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.dnb-button--has-text.dnb-button--has-icon.dnb-button--icon-position-left .dnb-button__text,.dnb-button--has-text.dnb-button--has-icon.dnb-button--icon-position-left>*,.dnb-button--has-text.dnb-button--has-icon.dnb-button--icon-position-top .dnb-button__text,.dnb-button--has-text.dnb-button--has-icon.dnb-button--icon-position-top>*{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.dnb-button--stretch{width:100%}.dnb-button--reset{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:0;-webkit-box-shadow:none;box-shadow:none;color:inherit;font:inherit;height:auto;line-height:inherit;margin:0;overflow:visible;padding:0;text-align:inherit;width:auto}html:not([data-whatintent=touch]) .dnb-button--reset:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-button--reset:hover:not([disabled]){border:none;-webkit-box-shadow:none;box-shadow:none}.dnb-button--reset:not([disabled]):active,.dnb-button--reset:not([disabled]):focus{outline:none}html[data-whatinput=keyboard] .dnb-button--reset:not([disabled]):active,html[data-whatinput=keyboard] .dnb-button--reset:not([disabled]):focus{--border-color:var(--color-emerald-green);border-color:transparent;-webkit-box-shadow:0 0 0 .125rem var(--border-color);box-shadow:0 0 0 .125rem var(--border-color)}@media screen and (-ms-high-contrast:none){html[data-whatinput=keyboard] .dnb-button--reset:not([disabled]):active,html[data-whatinput=keyboard] .dnb-button--reset:not([disabled]):focus{-webkit-box-shadow:0 0 0 .125rem #14555a;box-shadow:0 0 0 .125rem #14555a;-webkit-box-shadow:0 0 0 .125rem var(--color-emerald-green);box-shadow:0 0 0 .125rem var(--color-emerald-green)}}html[data-whatinput=mouse] .dnb-button--reset:not([disabled]):active,html[data-whatinput=mouse] .dnb-button--reset:not([disabled]):focus{border:none;-webkit-box-shadow:none;box-shadow:none;color:inherit}.dnb-button[type=button],.dnb-button[type=reset],.dnb-button[type=submit]{appearance:none;-moz-appearance:none;-webkit-appearance:none}.dnb-button[disabled]{cursor:not-allowed}.dnb-form-row--vertical .dnb-form-row__content>.dnb-button{-ms-flex-item-align:start;align-self:flex-start}.dnb-form-row--horizontal .dnb-form-row__content .dnb-button__text{white-space:nowrap}.dnb-button+.dnb-form-status{margin-top:.5rem}@media screen and (-ms-high-contrast:none){.dnb-button{-webkit-box-flex:0;-ms-flex:none;flex:none}.dnb-button__icon,.dnb-button__text{-webkit-transform:translateY(-.0625rem);transform:translateY(-.0625rem)}}button.dnb-button::-moz-focus-inner{border:none}.dnb-icon{color:inherit;display:inline-block;font-size:1rem;height:1em;line-height:1rem;vertical-align:middle;width:1em}.dnb-icon img,.dnb-icon svg{shape-rendering:geometricPrecision;height:inherit;vertical-align:top;width:inherit}.dnb-icon svg[width="100%"]{width:inherit}.dnb-icon svg[height="100%"]{height:inherit}.dnb-icon--inherit-color svg:not([fill]),.dnb-icon--inherit-color svg [fill]{fill:currentColor}.dnb-icon--inherit-color svg [stroke]{stroke:currentColor}.dnb-icon--small{font-size:.75rem}.dnb-icon--default{font-size:1rem}.dnb-icon--medium{font-size:1.5rem}.dnb-icon--large{font-size:2rem}.dnb-icon--x-large{font-size:2.5rem}.dnb-icon--xx-large{font-size:3rem}.dnb-icon--custom-size{height:auto;width:auto}.dnb-icon--auto{font-size:1em}.dnb-icon--auto>.dnb-icon--wrapper{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;justify-content:center}h1 .dnb-icon,h2 .dnb-icon,h3 .dnb-icon,h4 .dnb-icon,h5 .dnb-icon,h6 .dnb-icon{vertical-align:middle}.dnb-icon.dnb-skeleton{color:#ebebeb!important;color:var(--skeleton-color)!important}.dnb-icon.dnb-skeleton:after,.dnb-icon.dnb-skeleton:before{content:none!important}@media screen and (-ms-high-contrast:none){.dnb-icon{-webkit-box-flex:0;-ms-flex:none;flex:none}}.dnb-form-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;color:#333;color:var(--color-black-80,#333);font-family:DNB,sans-serif;font-family:var(--font-family-default);font-size:1rem;font-size:var(--font-size-small);font-style:normal;font-weight:400;font-weight:var(--font-weight-basis);line-height:1.5rem;line-height:var(--line-height-basis);margin:0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-break:break-word}.dnb-form-label *,.dnb-form-label :after,.dnb-form-label :before{background-repeat:no-repeat;-webkit-box-sizing:border-box;box-sizing:border-box}.dnb-form-label :after,.dnb-form-label :before{text-decoration:inherit;vertical-align:inherit}.dnb-form-label{color:inherit;display:inline-block;font-size:1.125rem;font-size:var(--font-size-basis);margin-right:1rem;padding:0;text-align:left;vertical-align:baseline;white-space:pre-wrap;width:auto;word-break:normal}.dnb-form-label--vertical{display:block;margin-bottom:.5rem;margin-right:0}.dnb-form-label--sr-only{margin:0 0 0 -1px!important;overflow:hidden!important;padding:0!important;white-space:nowrap!important;width:1px!important}.dnb-form-label[for]:not([disabled]){cursor:pointer;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.dnb-form-label[disabled]{cursor:not-allowed}@media screen and (-ms-high-contrast:none){.dnb-form-label{max-width:60vw}}legend.dnb-form-label{display:inline-block}.dnb-form-status{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;color:#333;color:var(--color-black-80,#333);font-family:DNB,sans-serif;font-family:var(--font-family-default);font-size:1rem;font-size:var(--font-size-small);font-style:normal;font-weight:400;font-weight:var(--font-weight-basis);line-height:1.5rem;line-height:var(--line-height-basis);margin:0;padding:0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-break:break-word}.dnb-form-status *,.dnb-form-status :after,.dnb-form-status :before{background-repeat:no-repeat;-webkit-box-sizing:border-box;box-sizing:border-box}.dnb-form-status :after,.dnb-form-status :before{text-decoration:inherit;vertical-align:inherit}:root{--form-status-radius:0.25rem}.dnb-form-status{display:-webkit-box;display:-ms-flexbox;display:flex;opacity:1;-webkit-transition:height .4s cubic-bezier(.42,0,0,1),opacity .4s cubic-bezier(.42,0,0,1),margin .4s cubic-bezier(.42,0,0,1),padding .4s cubic-bezier(.42,0,0,1);transition:height .4s cubic-bezier(.42,0,0,1),opacity .4s cubic-bezier(.42,0,0,1),margin .4s cubic-bezier(.42,0,0,1),padding .4s cubic-bezier(.42,0,0,1)}.dnb-form-status--hidden{height:0;opacity:0;width:0;will-change:height,opacity,margin,padding}.dnb-form-status--is-animating{overflow:hidden;width:auto}.dnb-form-status--disappear,.dnb-form-status--hidden{margin:0!important;padding:0!important}.dnb-form-status__shell{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;border-radius:.25rem;border-radius:var(--form-status-radius);display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:flex-start;min-width:inherit}.dnb-form-status__text{color:inherit;cursor:text;font-size:1rem;font-size:var(--font-size-small);line-height:1.25rem;line-height:var(--line-height-small);padding:.625rem 1rem;white-space:normal}button .dnb-form-status__text{cursor:inherit}.dnb-form-status__text .dnb-anchor{font-size:inherit}.dnb-icon+.dnb-form-status__text{padding-left:.5rem}.dnb-form-status__shell>.dnb-icon{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;margin:.3333333em .3333333em .3333333em .6666666em}.dnb-form-status__size--large .dnb-form-status__text{padding-bottom:1.125rem;padding-top:1.125rem}.dnb-form-status__size--large .dnb-form-status__shell>.dnb-icon{margin-bottom:.6666666em;margin-top:.6666666em}.dnb-form-status--stretch{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.dnb-form-status--stretch .dnb-form-status__shell{width:100%}.dnb-form-status--stretch .dnb-form-status__text{max-width:47rem}.dnb-form-status[hidden]{display:none}.dnb-form-status--no-animation,html[data-visual-test] .dnb-form-status{-webkit-transition-duration:1ms!important;transition-duration:1ms!important}@media screen and (-ms-high-contrast:none){.dnb-form-status__shell>.dnb-icon{border-width:1px}}.dnb-input{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;color:#333;color:var(--color-black-80,#333);font-family:DNB,sans-serif;font-family:var(--font-family-default);font-size:1rem;font-size:var(--font-size-small);font-style:normal;font-weight:400;font-weight:var(--font-weight-basis);line-height:1.5rem;line-height:var(--line-height-basis);margin:0;padding:0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-break:break-word}.dnb-input *,.dnb-input :after,.dnb-input :before{background-repeat:no-repeat;-webkit-box-sizing:border-box;box-sizing:border-box}.dnb-input :after,.dnb-input :before{text-decoration:inherit;vertical-align:inherit}:root{--input-font-size:var(--font-size-basis);--input-font-size--small:var(--font-size-basis);--input-font-size--medium:var(--font-size-basis);--input-font-size--large:var(--font-size-medium);--input-padding:1rem;--input-padding--small:1rem;--input-padding--medium:1rem;--input-padding--large:1rem;--input-height:2rem;--input-height--small:1.5rem;--input-height--medium:2.5rem;--input-height--large:3rem;--input-border-width:0.0625rem;--input-border-radius:0.25rem}.dnb-input{-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:var(--input-font-small);line-height:2rem;line-height:var(--input-height);text-align:left}.dnb-input,.dnb-input__inner{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.dnb-input__inner{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:auto}.dnb-input__shell{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:.0625rem solid #007272;border:var(--input-border-width) solid var(--color-sea-green);display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.dnb-input__input{border:none;outline:none;position:relative;word-break:normal;z-index:2}.dnb-input input.dnb-input__input{font-size:1.125rem;font-size:var(--input-font-size);line-height:1.125rem;line-height:var(--font-size-basis)}.dnb-input__input[disabled]{opacity:1;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.dnb-input__input,.dnb-input__shell{border-radius:.25rem;border-radius:var(--input-border-radius);height:2rem;height:var(--input-height)}.dnb-input__input,.dnb-input__placeholder{background-color:transparent;color:inherit;font-size:1.125rem;font-size:var(--input-font-size);padding-left:1rem;padding-left:var(--input-padding);padding-right:1rem;padding-right:var(--input-padding);text-align:inherit;width:100%}.dnb-input__placeholder{left:0;overflow:hidden;pointer-events:none;position:absolute;text-overflow:ellipsis;top:0;white-space:nowrap;z-index:1}.dnb-input input.dnb-input__input[type=file]{line-height:calc(2rem - 2px);line-height:calc(var(--input-height) - 2px)}.dnb-input__input::-webkit-search-cancel-button{display:none}.dnb-input__input::-ms-clear{display:none}.dnb-input ::-webkit-file-upload-button{color:#007272;color:var(--color-sea-green);cursor:pointer;outline:none}.dnb-input ::-webkit-file-upload-button:active,.dnb-input ::-webkit-file-upload-button:hover{color:#14555a;color:var(--color-emerald-green)}.dnb-input--has-clear-button .dnb-input__input,.dnb-input--has-clear-button .dnb-input__placeholder,.dnb-input--has-submit-element .dnb-input__input,.dnb-input--has-submit-element .dnb-input__placeholder{padding-right:2.5rem;padding-right:calc(var(--input-padding)*2.5)}.dnb-input--password .dnb-input__input,.dnb-input--password .dnb-input__placeholder{margin-right:2.5rem;padding-right:0}.dnb-input--password .dnb-input__input::-ms-clear,.dnb-input--password .dnb-input__placeholder::-ms-clear{display:none}.dnb-input--password .dnb-input__placeholder{padding-right:4rem}.dnb-input--password .dnb-input__input{font-family:DNBMono,Menlo,Consolas,Roboto Mono,"Ubuntu Monospace",Noto Mono,Oxygen Mono,Liberation Mono,monospace;font-family:var(--font-family-monospace)}.dnb-input__row{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.dnb-input__suffix{color:inherit}.dnb-input__submit-element{line-height:1.5rem;line-height:var(--line-height-basis);margin-left:-2rem;margin-left:calc(0px - var(--input-height));z-index:3}.dnb-input__submit-button{-ms-flex-item-align:center;align-self:center;position:relative}.dnb-input__submit-button__button{border-radius:0 .25rem .25rem 0;border-radius:0 var(--input-border-radius) var(--input-border-radius) 0}.dnb-input>.dnb-form-label{line-height:1.5rem;line-height:var(--line-height-basis)}@media screen and (max-width:40em){.dnb-input{-ms-flex-wrap:wrap;flex-wrap:wrap}.dnb-input>.dnb-form-label{margin-bottom:.5rem;margin-top:.5rem}}.dnb-input:not(.dnb-input--vertical)[class*=__status]{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.dnb-input:not(.dnb-input--vertical)[class*=__status]>.dnb-form-label{margin-top:.25rem}.dnb-input--small{line-height:1.5rem;line-height:var(--input-height--small)}.dnb-input--small .dnb-input__input,.dnb-input--small .dnb-input__shell{height:1.5rem;height:var(--input-height--small)}.dnb-input--small .dnb-input__input,.dnb-input--small .dnb-input__placeholder{font-size:1.125rem;font-size:var(--input-font-size--small);padding-left:1rem;padding-left:var(--input-padding--small);padding-right:1rem;padding-right:var(--input-padding--small)}.dnb-input--small .dnb-input__submit-element{margin-left:-1.5rem;margin-left:calc(0px - var(--input-height--small))}.dnb-input--small .dnb-input__submit-element .dnb-button--input-button{height:1.5rem;height:var(--input-height--small);line-height:1.5rem;line-height:var(--input-height--small);width:1.5rem;width:var(--input-height--small)}.dnb-input--small.dnb-input--has-clear-button .dnb-input__input,.dnb-input--small.dnb-input--has-clear-button .dnb-input__placeholder,.dnb-input--small.dnb-input--has-submit-element .dnb-input__input,.dnb-input--small.dnb-input--has-submit-element .dnb-input__placeholder{padding-right:2rem;padding-right:calc(var(--input-padding--small)*2)}.dnb-input--medium{line-height:2.5rem;line-height:var(--input-height--medium)}.dnb-input--medium .dnb-input__input,.dnb-input--medium .dnb-input__shell{height:2.5rem;height:var(--input-height--medium)}.dnb-input--medium .dnb-input__input,.dnb-input--medium .dnb-input__placeholder{font-size:1.125rem;font-size:var(--input-font-size--medium);padding-left:1rem;padding-left:var(--input-padding--medium);padding-right:1rem;padding-right:var(--input-padding--medium)}.dnb-input--medium .dnb-input__submit-element{margin-left:-2.5rem;margin-left:calc(0px - var(--input-height--medium))}.dnb-input--medium .dnb-input__submit-element .dnb-button--input-button{height:2.5rem;height:var(--input-height--medium);line-height:2.5rem;line-height:var(--input-height--medium);width:2.5rem;width:var(--input-height--medium)}.dnb-input--medium.dnb-input--has-clear-button .dnb-input__input,.dnb-input--medium.dnb-input--has-clear-button .dnb-input__placeholder,.dnb-input--medium.dnb-input--has-submit-element .dnb-input__input,.dnb-input--medium.dnb-input--has-submit-element .dnb-input__placeholder{padding-right:3rem;padding-right:calc(var(--input-padding--medium)*3)}.dnb-input--large{line-height:3rem;line-height:var(--input-height--large)}.dnb-input--large .dnb-input__input,.dnb-input--large .dnb-input__shell{height:3rem;height:var(--input-height--large)}.dnb-input--large .dnb-input__input,.dnb-input--large .dnb-input__placeholder{font-size:1.25rem;font-size:var(--input-font-size--large);padding-left:1rem;padding-left:var(--input-padding--large);padding-right:1rem;padding-right:var(--input-padding--large)}.dnb-input--large .dnb-input__submit-element{margin-left:-3rem;margin-left:calc(0px - var(--input-height--large))}.dnb-input--large .dnb-input__submit-element .dnb-button--input-button{height:3rem;height:var(--input-height--large);width:3rem;width:var(--input-height--large)}.dnb-input--large.dnb-input--has-clear-button .dnb-input__input,.dnb-input--large.dnb-input--has-clear-button .dnb-input__placeholder,.dnb-input--large.dnb-input--has-submit-element .dnb-input__input,.dnb-input--large.dnb-input--has-submit-element .dnb-input__placeholder{padding-right:3rem;padding-right:calc(var(--input-padding--large)*3)}.dnb-input--large.dnb-input--has-clear-button:not(.dnb-input--has-submit-element) .dnb-input__submit-element{margin-left:-2.5rem;margin-left:calc(0px - var(--input-height--large) + .5rem)}.dnb-input__align--center .dnb-input__input,.dnb-input__align--center .dnb-input__placeholder{text-align:center}.dnb-input__align--right .dnb-input__input,.dnb-input__align--right .dnb-input__placeholder{text-align:right}.dnb-input--clear.dnb-input__submit-element{opacity:0;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.dnb-input--clear.dnb-input__submit-element .dnb-button{border-radius:1.25rem;border-radius:var(--button-border-radius);height:1.5rem;height:var(--input-height--small);width:1.5rem;width:var(--input-height--small)}.dnb-input--clear.dnb-input__submit-element .dnb-button .dnb-button__icon{margin:auto}html:not([data-whatintent=touch])
1
+ .dnb-button{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;color:#333;color:var(--color-black-80,#333);font-family:DNB,sans-serif;font-family:var(--font-family-default);font-style:normal;font-weight:400;font-weight:var(--font-weight-basis);line-height:1.5rem;line-height:var(--line-height-basis);margin:0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-break:break-word}.dnb-button *,.dnb-button :after,.dnb-button :before{background-repeat:no-repeat;-webkit-box-sizing:border-box;box-sizing:border-box}.dnb-button :after,.dnb-button :before{text-decoration:inherit;vertical-align:inherit}:root{--button-font-size:var(--font-size-basis);--button-font-size-small:var(--font-size-small);--button-width:2.5rem;--button-height:2.5rem;--button-width--small:1.5rem;--button-height--small:1.5rem;--button-width--medium:2rem;--button-height--medium:2rem;--button-width--large:3rem;--button-height--large:3rem;--button-icon-size:1rem;--button-border-width:0.0625rem;--button-border-width--hover:0.1875rem;--button-border-radius:calc(var(--button-height)/2);--button-border-radius--small:calc(var(--button-height--small)/2);--button-border-radius--medium:calc(var(--button-height--medium)/2);--button-border-radius--large:calc(var(--button-height--large)/2)}.dnb-button{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border:.0625rem solid transparent;border:var(--button-border-width) solid transparent;border-radius:1.25rem;border-radius:var(--button-border-radius);cursor:pointer;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-size:1rem;font-size:var(--font-size-small);height:auto;justify-content:center;padding:0;position:relative;text-decoration:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none;white-space:nowrap;width:2.5rem;width:var(--button-width)}.dnb-button--wrap{word-wrap:break-word;white-space:normal}.dnb-button,.dnb-core-style .dnb-button{line-height:2.5rem;line-height:var(--button-height)}.dnb-button__text{color:inherit;font-size:1.125rem;font-size:var(--button-font-size);line-height:1.5rem;line-height:var(--line-height-basis);margin:.5rem 0;-webkit-transform:translateY(-.03125rem);transform:translateY(-.03125rem)}.dnb-button__text [data-os=linux]{-webkit-transform:translateY(-.035rem);transform:translateY(-.035rem)}.dnb-button__alignment{display:inline-block;width:0}.dnb-button__bounding{background-color:transparent;border-radius:1.25rem;border-radius:var(--button-border-radius);bottom:0;left:0;position:absolute;right:0;top:0;-webkit-transform:scale(1.1,1.4);transform:scale(1.1,1.4)}.dnb-button--has-text{padding-left:1.5rem;padding-right:1.5rem}.dnb-button--size-small{border-radius:.75rem;border-radius:var(--button-border-radius--small);font-size:1rem;font-size:var(--button-font-size-small);width:1.5rem;width:var(--button-width--small)}.dnb-button--size-small,.dnb-core-style .dnb-button--size-small{line-height:1.5rem;line-height:var(--button-height--small)}.dnb-button--size-small .dnb-button__text{margin:0}.dnb-button--has-text.dnb-button--size-small{padding-left:1rem;padding-right:1rem}.dnb-button--has-text.dnb-button--icon-position-left.dnb-button--size-small{padding-left:.5rem}.dnb-button--has-text.dnb-button--icon-position-right.dnb-button--size-small{padding-right:.5rem}.dnb-button--size-medium{border-radius:1rem;border-radius:var(--button-border-radius--medium);width:2rem;width:var(--button-width--medium)}.dnb-button--size-medium,.dnb-core-style .dnb-button--size-medium{line-height:2rem;line-height:var(--button-height--medium)}.dnb-button--size-medium .dnb-button__text{margin:0}.dnb-button--has-text.dnb-button--size-medium{padding-left:1rem;padding-right:1rem}.dnb-button--has-text.dnb-button--icon-position-left.dnb-button--size-medium{padding-left:.5rem}.dnb-button--has-text.dnb-button--icon-position-right.dnb-button--size-medium{padding-right:.5rem}.dnb-button--size-large{border-radius:1.5rem;border-radius:var(--button-border-radius--large);width:3rem;width:var(--button-width--large)}.dnb-button--size-large,.dnb-core-style .dnb-button--size-large{line-height:3rem;line-height:var(--button-height--large)}.dnb-button--has-text.dnb-button--size-large{padding-left:2rem;padding-right:2rem}.dnb-button--has-text.dnb-button--icon-position-left.dnb-button--size-large{padding-left:1rem}.dnb-button--has-text.dnb-button--icon-position-right.dnb-button--size-large{padding-right:1rem}.dnb-button--has-text{width:auto}.dnb-button--has-text .dnb-button__icon{margin:0 .5rem;margin:0 calc(var(--button-icon-size)/2)}.dnb-button--has-text.dnb-button--icon-position-left{padding-left:.5rem}.dnb-button--has-text.dnb-button--icon-position-right{padding-right:.5rem}.dnb-button--has-text.dnb-button--has-icon .dnb-button__icon{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.dnb-button--has-text.dnb-button--has-icon .dnb-button__text{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.dnb-button:not(.dnb-button--has-text) .dnb-button__icon{width:inherit}.dnb-button__icon.dnb-icon svg:not([width]):not([height]){height:1rem;height:var(--button-icon-size);width:1rem;width:var(--button-icon-size)}[href]>.dnb-button__icon.dnb-icon{line-height:1.125rem;line-height:var(--button-font-size)}.dnb-button--has-text.dnb-button--has-icon.dnb-button--icon-position-left .dnb-button__icon,.dnb-button--has-text.dnb-button--has-icon.dnb-button--icon-position-top .dnb-button__icon{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.dnb-button--has-text.dnb-button--has-icon.dnb-button--icon-position-left .dnb-button__text,.dnb-button--has-text.dnb-button--has-icon.dnb-button--icon-position-left>*,.dnb-button--has-text.dnb-button--has-icon.dnb-button--icon-position-top .dnb-button__text,.dnb-button--has-text.dnb-button--has-icon.dnb-button--icon-position-top>*{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.dnb-button--stretch{width:100%}.dnb-button--reset{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:0;-webkit-box-shadow:none;box-shadow:none;color:inherit;font:inherit;height:auto;line-height:inherit;margin:0;overflow:visible;padding:0;text-align:inherit;width:auto}html:not([data-whatintent=touch]) .dnb-button--reset:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-button--reset:hover:not([disabled]){border:none;-webkit-box-shadow:none;box-shadow:none}.dnb-button--reset:not([disabled]):active,.dnb-button--reset:not([disabled]):focus{outline:none}html[data-whatinput=keyboard] .dnb-button--reset:not([disabled]):active,html[data-whatinput=keyboard] .dnb-button--reset:not([disabled]):focus{--border-color:var(--color-emerald-green);border-color:transparent;-webkit-box-shadow:0 0 0 .125rem var(--border-color);box-shadow:0 0 0 .125rem var(--border-color)}@media screen and (-ms-high-contrast:none){html[data-whatinput=keyboard] .dnb-button--reset:not([disabled]):active,html[data-whatinput=keyboard] .dnb-button--reset:not([disabled]):focus{-webkit-box-shadow:0 0 0 .125rem #14555a;box-shadow:0 0 0 .125rem #14555a;-webkit-box-shadow:0 0 0 .125rem var(--color-emerald-green);box-shadow:0 0 0 .125rem var(--color-emerald-green)}}html[data-whatinput=mouse] .dnb-button--reset:not([disabled]):active,html[data-whatinput=mouse] .dnb-button--reset:not([disabled]):focus{border:none;-webkit-box-shadow:none;box-shadow:none;color:inherit}.dnb-button[type=button],.dnb-button[type=reset],.dnb-button[type=submit]{appearance:none;-moz-appearance:none;-webkit-appearance:none}.dnb-button[disabled]{cursor:not-allowed}.dnb-form-row--vertical .dnb-form-row__content>.dnb-button{-ms-flex-item-align:start;align-self:flex-start}.dnb-form-row--horizontal .dnb-form-row__content .dnb-button__text{white-space:nowrap}.dnb-button+.dnb-form-status{margin-top:.5rem}@media screen and (-ms-high-contrast:none){.dnb-button{-webkit-box-flex:0;-ms-flex:none;flex:none}.dnb-button__icon,.dnb-button__text{-webkit-transform:translateY(-.0625rem);transform:translateY(-.0625rem)}}button.dnb-button::-moz-focus-inner{border:none}.dnb-icon{color:inherit;display:inline-block;font-size:1rem;height:1em;line-height:1rem;vertical-align:middle;width:1em}.dnb-icon img,.dnb-icon svg{shape-rendering:geometricPrecision;height:inherit;vertical-align:top;width:inherit}.dnb-icon svg[width="100%"]{width:inherit}.dnb-icon svg[height="100%"]{height:inherit}.dnb-icon--inherit-color svg:not([fill]),.dnb-icon--inherit-color svg [fill]{fill:currentColor}.dnb-icon--inherit-color svg [stroke]{stroke:currentColor}.dnb-icon--small{font-size:.75rem}.dnb-icon--default{font-size:1rem}.dnb-icon--medium{font-size:1.5rem}.dnb-icon--large{font-size:2rem}.dnb-icon--x-large{font-size:2.5rem}.dnb-icon--xx-large{font-size:3rem}.dnb-icon--custom-size{height:auto;width:auto}.dnb-icon--auto{font-size:1em}.dnb-icon--auto>.dnb-icon--wrapper{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;justify-content:center}h1 .dnb-icon,h2 .dnb-icon,h3 .dnb-icon,h4 .dnb-icon,h5 .dnb-icon,h6 .dnb-icon{vertical-align:middle}.dnb-icon.dnb-skeleton{color:#ebebeb!important;color:var(--skeleton-color)!important}.dnb-icon.dnb-skeleton:after,.dnb-icon.dnb-skeleton:before{content:none!important}@media screen and (-ms-high-contrast:none){.dnb-icon{-webkit-box-flex:0;-ms-flex:none;flex:none}}.dnb-form-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;color:#333;color:var(--color-black-80,#333);font-family:DNB,sans-serif;font-family:var(--font-family-default);font-size:1rem;font-size:var(--font-size-small);font-style:normal;font-weight:400;font-weight:var(--font-weight-basis);line-height:1.5rem;line-height:var(--line-height-basis);margin:0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-break:break-word}.dnb-form-label *,.dnb-form-label :after,.dnb-form-label :before{background-repeat:no-repeat;-webkit-box-sizing:border-box;box-sizing:border-box}.dnb-form-label :after,.dnb-form-label :before{text-decoration:inherit;vertical-align:inherit}.dnb-form-label{color:inherit;display:inline-block;font-size:1.125rem;font-size:var(--font-size-basis);margin-right:1rem;padding:0;text-align:left;vertical-align:baseline;white-space:pre-wrap;width:auto;word-break:normal}.dnb-form-label--vertical{display:block;margin-bottom:.5rem;margin-right:0}.dnb-form-label--sr-only{margin:0 0 0 -1px!important;overflow:hidden!important;padding:0!important;white-space:nowrap!important;width:1px!important}.dnb-form-label[for]:not([disabled]){cursor:pointer;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.dnb-form-label[disabled]{cursor:not-allowed}@media screen and (-ms-high-contrast:none){.dnb-form-label{max-width:60vw}}legend.dnb-form-label{display:inline-block}.dnb-form-status{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;color:#333;color:var(--color-black-80,#333);font-family:DNB,sans-serif;font-family:var(--font-family-default);font-size:1rem;font-size:var(--font-size-small);font-style:normal;font-weight:400;font-weight:var(--font-weight-basis);line-height:1.5rem;line-height:var(--line-height-basis);margin:0;padding:0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-break:break-word}.dnb-form-status *,.dnb-form-status :after,.dnb-form-status :before{background-repeat:no-repeat;-webkit-box-sizing:border-box;box-sizing:border-box}.dnb-form-status :after,.dnb-form-status :before{text-decoration:inherit;vertical-align:inherit}:root{--form-status-radius:0.25rem}.dnb-form-status{display:-webkit-box;display:-ms-flexbox;display:flex;opacity:1;-webkit-transition:height .4s cubic-bezier(.42,0,0,1),opacity .4s cubic-bezier(.42,0,0,1),margin .4s cubic-bezier(.42,0,0,1),padding .4s cubic-bezier(.42,0,0,1);transition:height .4s cubic-bezier(.42,0,0,1),opacity .4s cubic-bezier(.42,0,0,1),margin .4s cubic-bezier(.42,0,0,1),padding .4s cubic-bezier(.42,0,0,1)}.dnb-form-status--hidden{height:0;opacity:0;width:0;will-change:height,opacity,margin,padding}.dnb-form-status--is-animating{overflow:hidden;width:auto}.dnb-form-status--disappear,.dnb-form-status--hidden{margin:0!important;padding:0!important}.dnb-form-status__shell{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;border-radius:.25rem;border-radius:var(--form-status-radius);display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:flex-start;min-width:inherit}.dnb-form-status__text{color:inherit;cursor:text;font-size:1rem;font-size:var(--font-size-small);line-height:1.25rem;line-height:var(--line-height-small);padding:.625rem 1rem;white-space:normal}button .dnb-form-status__text{cursor:inherit}.dnb-form-status__text .dnb-anchor{font-size:inherit}.dnb-icon+.dnb-form-status__text{padding-left:.5rem}.dnb-form-status__shell>.dnb-icon{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center;margin:.3333333em .3333333em .3333333em .6666666em}.dnb-form-status__size--large .dnb-form-status__text{padding-bottom:1.125rem;padding-top:1.125rem}.dnb-form-status__size--large .dnb-form-status__shell>.dnb-icon{margin-bottom:.6666666em;margin-top:.6666666em}.dnb-form-status--stretch{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.dnb-form-status--stretch .dnb-form-status__shell{width:100%}.dnb-form-status--stretch .dnb-form-status__text{max-width:47rem}.dnb-form-status[hidden]{display:none}.dnb-form-status--no-animation,html[data-visual-test] .dnb-form-status{-webkit-transition-duration:1ms!important;transition-duration:1ms!important}@media screen and (-ms-high-contrast:none){.dnb-form-status__shell>.dnb-icon{border-width:1px}}.dnb-input{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;color:#333;color:var(--color-black-80,#333);font-family:DNB,sans-serif;font-family:var(--font-family-default);font-size:1rem;font-size:var(--font-size-small);font-style:normal;font-weight:400;font-weight:var(--font-weight-basis);line-height:1.5rem;line-height:var(--line-height-basis);margin:0;padding:0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-break:break-word}.dnb-input *,.dnb-input :after,.dnb-input :before{background-repeat:no-repeat;-webkit-box-sizing:border-box;box-sizing:border-box}.dnb-input :after,.dnb-input :before{text-decoration:inherit;vertical-align:inherit}:root{--input-font-size:var(--font-size-basis);--input-font-size--small:var(--font-size-basis);--input-font-size--medium:var(--font-size-basis);--input-font-size--large:var(--font-size-medium);--input-padding:1rem;--input-padding--small:1rem;--input-padding--medium:1rem;--input-padding--large:1rem;--input-height:2rem;--input-height--small:1.5rem;--input-height--medium:2.5rem;--input-height--large:3rem;--input-border-width:0.0625rem;--input-border-radius:0.25rem}.dnb-input{-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:var(--input-font-small);line-height:2rem;line-height:var(--input-height);text-align:left}.dnb-input,.dnb-input__inner{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.dnb-input__inner{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:auto}.dnb-input__shell{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:.0625rem solid #007272;border:var(--input-border-width) solid var(--color-sea-green);display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.dnb-input__input{border:none;outline:none;position:relative;word-break:normal;z-index:2}.dnb-input input.dnb-input__input{font-size:1.125rem;font-size:var(--input-font-size);line-height:1.125rem;line-height:var(--font-size-basis)}.dnb-input__input[disabled]{opacity:1;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.dnb-input__input,.dnb-input__shell{border-radius:.25rem;border-radius:var(--input-border-radius);height:2rem;height:var(--input-height)}.dnb-input__input,.dnb-input__placeholder{background-color:transparent;color:inherit;font-size:1.125rem;font-size:var(--input-font-size);padding-left:1rem;padding-left:var(--input-padding);padding-right:1rem;padding-right:var(--input-padding);text-align:inherit;width:100%}.dnb-input__placeholder{left:0;overflow:hidden;pointer-events:none;position:absolute;text-overflow:ellipsis;top:0;white-space:nowrap;z-index:1}.dnb-input input.dnb-input__input[type=file]{line-height:calc(2rem - 2px);line-height:calc(var(--input-height) - 2px)}.dnb-input__input::-webkit-search-cancel-button{display:none}.dnb-input__input::-ms-clear{display:none}.dnb-input ::-webkit-file-upload-button{color:#007272;color:var(--color-sea-green);cursor:pointer;outline:none}.dnb-input ::-webkit-file-upload-button:active,.dnb-input ::-webkit-file-upload-button:hover{color:#14555a;color:var(--color-emerald-green)}.dnb-input--has-clear-button .dnb-input__input,.dnb-input--has-clear-button .dnb-input__placeholder,.dnb-input--has-submit-element .dnb-input__input,.dnb-input--has-submit-element .dnb-input__placeholder{padding-right:2.5rem;padding-right:calc(var(--input-padding)*2.5)}.dnb-input--password .dnb-input__input,.dnb-input--password .dnb-input__placeholder{margin-right:2.5rem;padding-right:0}.dnb-input--password .dnb-input__input::-ms-clear,.dnb-input--password .dnb-input__placeholder::-ms-clear{display:none}.dnb-input--password .dnb-input__placeholder{padding-right:4rem}.dnb-input--password .dnb-input__input{font-family:DNBMono,Menlo,Consolas,Roboto Mono,"Ubuntu Monospace",Noto Mono,Oxygen Mono,Liberation Mono,monospace;font-family:var(--font-family-monospace)}.dnb-input__row{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.dnb-input__suffix{color:inherit}.dnb-input__submit-element{line-height:1.5rem;line-height:var(--line-height-basis);margin-left:-2rem;margin-left:calc(0px - var(--input-height));z-index:3}.dnb-input__submit-button{-ms-flex-item-align:center;align-self:center;position:relative}.dnb-input__submit-button__button{border-radius:0 .25rem .25rem 0;border-radius:0 var(--input-border-radius) var(--input-border-radius) 0}.dnb-input>.dnb-form-label{line-height:1.5rem;line-height:var(--line-height-basis)}@media screen and (max-width:40em){.dnb-input{-ms-flex-wrap:wrap;flex-wrap:wrap}.dnb-input>.dnb-form-label{margin-bottom:.5rem;margin-top:.5rem}}.dnb-input:not(.dnb-input--vertical)[class*=__status]{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.dnb-input:not(.dnb-input--vertical)[class*=__status]>.dnb-form-label{margin-top:.25rem}.dnb-input--small{line-height:1.5rem;line-height:var(--input-height--small)}.dnb-input--small .dnb-input__input,.dnb-input--small .dnb-input__shell{height:1.5rem;height:var(--input-height--small)}.dnb-input--small .dnb-input__input,.dnb-input--small .dnb-input__placeholder{font-size:1.125rem;font-size:var(--input-font-size--small);padding-left:1rem;padding-left:var(--input-padding--small);padding-right:1rem;padding-right:var(--input-padding--small)}.dnb-input--small .dnb-input__submit-element{margin-left:-1.5rem;margin-left:calc(0px - var(--input-height--small))}.dnb-input--small .dnb-input__submit-element .dnb-button--input-button{height:1.5rem;height:var(--input-height--small);line-height:1.5rem;line-height:var(--input-height--small);width:1.5rem;width:var(--input-height--small)}.dnb-input--small.dnb-input--has-clear-button .dnb-input__input,.dnb-input--small.dnb-input--has-clear-button .dnb-input__placeholder,.dnb-input--small.dnb-input--has-submit-element .dnb-input__input,.dnb-input--small.dnb-input--has-submit-element .dnb-input__placeholder{padding-right:2rem;padding-right:calc(var(--input-padding--small)*2)}.dnb-input--medium{line-height:2.5rem;line-height:var(--input-height--medium)}.dnb-input--medium .dnb-input__input,.dnb-input--medium .dnb-input__shell{height:2.5rem;height:var(--input-height--medium)}.dnb-input--medium .dnb-input__input,.dnb-input--medium .dnb-input__placeholder{font-size:1.125rem;font-size:var(--input-font-size--medium);padding-left:1rem;padding-left:var(--input-padding--medium);padding-right:1rem;padding-right:var(--input-padding--medium)}.dnb-input--medium .dnb-input__submit-element{margin-left:-2.5rem;margin-left:calc(0px - var(--input-height--medium))}.dnb-input--medium .dnb-input__submit-element .dnb-button--input-button{height:2.5rem;height:var(--input-height--medium);line-height:2.5rem;line-height:var(--input-height--medium);width:2.5rem;width:var(--input-height--medium)}.dnb-input--medium.dnb-input--has-clear-button .dnb-input__input,.dnb-input--medium.dnb-input--has-clear-button .dnb-input__placeholder,.dnb-input--medium.dnb-input--has-submit-element .dnb-input__input,.dnb-input--medium.dnb-input--has-submit-element .dnb-input__placeholder{padding-right:3rem;padding-right:calc(var(--input-padding--medium)*3)}.dnb-input--large{line-height:3rem;line-height:var(--input-height--large)}.dnb-input--large .dnb-input__input,.dnb-input--large .dnb-input__shell{height:3rem;height:var(--input-height--large)}.dnb-input--large .dnb-input__input,.dnb-input--large .dnb-input__placeholder{font-size:1.25rem;font-size:var(--input-font-size--large);padding-left:1rem;padding-left:var(--input-padding--large);padding-right:1rem;padding-right:var(--input-padding--large)}.dnb-input--large .dnb-input__submit-element{margin-left:-3rem;margin-left:calc(0px - var(--input-height--large))}.dnb-input--large .dnb-input__submit-element .dnb-button--input-button{height:3rem;height:var(--input-height--large);width:3rem;width:var(--input-height--large)}.dnb-input--large.dnb-input--has-clear-button .dnb-input__input,.dnb-input--large.dnb-input--has-clear-button .dnb-input__placeholder,.dnb-input--large.dnb-input--has-submit-element .dnb-input__input,.dnb-input--large.dnb-input--has-submit-element .dnb-input__placeholder{padding-right:3rem;padding-right:calc(var(--input-padding--large)*3)}.dnb-input--large.dnb-input--has-clear-button:not(.dnb-input--has-submit-element) .dnb-input__submit-element{margin-left:-2.5rem;margin-left:calc(0px - var(--input-height--large) + .5rem)}.dnb-input__align--center .dnb-input__input,.dnb-input__align--center .dnb-input__placeholder{text-align:center}.dnb-input__align--right .dnb-input__input,.dnb-input__align--right .dnb-input__placeholder{text-align:right}.dnb-input--clear.dnb-input__submit-element{opacity:0;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.dnb-input--clear.dnb-input__submit-element .dnb-button{border-radius:1.25rem;border-radius:var(--button-border-radius);height:1.5rem;height:var(--input-height--small);width:1.5rem;width:var(--input-height--small)}.dnb-input--clear.dnb-input__submit-element .dnb-button .dnb-button__icon{margin:auto}html:not([data-whatintent=touch])
2
2
  .dnb-input--clear.dnb-input__submit-element .dnb-button:not(.dnb-button--has-text):hover[disabled]{cursor:default}.dnb-input--small .dnb-input--clear.dnb-input__submit-element .dnb-button{height:1rem;width:1rem}.dnb-input--large .dnb-input--clear.dnb-input__submit-element .dnb-button,.dnb-input--medium .dnb-input--clear.dnb-input__submit-element .dnb-button{height:1.5rem;height:var(--input-height--small);width:1.5rem;width:var(--input-height--small)}.dnb-input[data-has-content=true] .dnb-input--clear{opacity:1}.dnb-input--has-submit-element .dnb-input--clear.dnb-input__submit-element{margin-right:2.5rem}.dnb-input--small.dnb-input--has-submit-element .dnb-input--clear.dnb-input__submit-element{margin-right:2rem}.dnb-input--medium.dnb-input--has-submit-element .dnb-input--clear.dnb-input__submit-element{margin-right:3rem}.dnb-input--large.dnb-input--has-submit-element .dnb-input--clear.dnb-input__submit-element{margin-right:3.5rem}.dnb-input__inner>.dnb-form-status{-webkit-box-ordinal-group:3;-ms-flex-order:2;margin-top:.5rem;order:2}.dnb-input--vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-ms-flex-direction:column;flex-direction:column}.dnb-input--stretch,.dnb-input--vertical{display:-webkit-box;display:-ms-flexbox;display:flex}.dnb-input--stretch,.dnb-input--stretch .dnb-input__inner{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.dnb-input--stretch .dnb-input__inner,.dnb-input--stretch .dnb-input__shell{width:100%}.dnb-input--stretch .dnb-form-label+.dnb-input__inner{width:auto}.dnb-form-row--horizontal .dnb-input--stretch,.dnb-input--vertical.dnb-input--stretch .dnb-input__inner{width:100%}.dnb-input__icon{-webkit-box-ordinal-group:1;-ms-flex-order:0;bottom:0;left:1rem;margin:auto;order:0;position:absolute;right:auto;top:0}.dnb-input--icon-position-right .dnb-input__icon{-webkit-box-ordinal-group:2;-ms-flex-order:1;left:auto;order:1;right:1rem}.dnb-input--icon-position-left.dnb-input--has-icon .dnb-input__input,.dnb-input--icon-position-left.dnb-input--has-icon .dnb-input__placeholder{padding-left:2.5rem}.dnb-input--icon-position-right.dnb-input--has-icon .dnb-input__input,.dnb-input--icon-position-right.dnb-input--has-icon .dnb-input__placeholder{padding-right:2.5rem}.dnb-input--icon-size-medium.dnb-input--icon-position-left.dnb-input--has-icon .dnb-input__input,.dnb-input--icon-size-medium.dnb-input--icon-position-left.dnb-input--has-icon .dnb-input__placeholder{padding-left:3rem}.dnb-input--icon-size-medium.dnb-input--icon-position-right.dnb-input--has-icon .dnb-input__input,.dnb-input--icon-size-medium.dnb-input--icon-position-right.dnb-input--has-icon .dnb-input__placeholder{padding-right:3rem}html[data-visual-test] .dnb-input__input{caret-color:#fff;caret-color:var(--color-white)}@media screen and (max-width:40em){.dnb-responsive-component .dnb-input{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin-bottom:.5rem}.dnb-responsive-component .dnb-input,.dnb-responsive-component .dnb-input__row{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.dnb-responsive-component .dnb-input>.dnb-form-label{margin-bottom:.5rem}}@media screen and (-ms-high-contrast:none){.dnb-input{vertical-align:baseline}.dnb-form-row--horizontal .dnb-input,.dnb-input:not(.dnb-input--stretch){-webkit-box-flex:0;-ms-flex:none;flex:none}.dnb-input__inner{width:100%}.dnb-input__input,.dnb-input__placeholder{-webkit-transform:translateY(-.0625rem);transform:translateY(-.0625rem)}}.dnb-input-masked{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;color:#333;color:var(--color-black-80,#333);font-family:DNB,sans-serif;font-family:var(--font-family-default);font-size:1rem;font-size:var(--font-size-small);font-style:normal;font-weight:400;font-weight:var(--font-weight-basis);line-height:1.5rem;line-height:var(--line-height-basis);margin:0;padding:0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-break:break-word}.dnb-input-masked *,.dnb-input-masked :after,.dnb-input-masked :before{background-repeat:no-repeat;-webkit-box-sizing:border-box;box-sizing:border-box}.dnb-input-masked :after,.dnb-input-masked :before{text-decoration:inherit;vertical-align:inherit}.dnb-input-masked--guide{font-family:DNBMono,Menlo,Consolas,Roboto Mono,"Ubuntu Monospace",Noto Mono,Oxygen Mono,Liberation Mono,monospace;font-family:var(--font-family-monospace)}
@@ -242,6 +242,10 @@ export interface ModalProps extends React.HTMLProps<HTMLElement> {
242
242
  * Set a function to call the callback function, once the modal/drawer should close: `close_modal={(close) => close()}`
243
243
  */
244
244
  close_modal?: (...args: any[]) => any;
245
+
246
+ /**
247
+ * Provide a custom trigger component. Like `trigger={<Anchor href="/" />}`. It will set the focus on it when the modal/drawer gets closed.
248
+ */
245
249
  trigger?: ModalTrigger;
246
250
 
247
251
  /**
@@ -120,7 +120,6 @@ export default class Modal extends React.PureComponent {
120
120
  this.setState({
121
121
  hide: true
122
122
  });
123
- clearTimeout(this._closeTimeout);
124
123
  this._closeTimeout = setTimeout(doItNow, parseFloat(this.props.animation_duration));
125
124
  } else {
126
125
  doItNow();
@@ -131,13 +130,14 @@ export default class Modal extends React.PureComponent {
131
130
  const delay = parseFloat(this.props.open_delay);
132
131
 
133
132
  if (delay > 0 && !isTrue(this.props.no_animation)) {
134
- clearTimeout(this._openTimeout);
135
133
  this._openTimeout = setTimeout(toggleNow, delay);
136
134
  } else {
137
135
  toggleNow();
138
136
  }
139
137
  };
140
138
 
139
+ clearTimeout(this._closeTimeout);
140
+ clearTimeout(this._openTimeout);
141
141
  const {
142
142
  open_modal
143
143
  } = this.props;
@@ -184,13 +184,7 @@ export default class Modal extends React.PureComponent {
184
184
  } catch (e) {}
185
185
  }
186
186
 
187
- const last = getListOfModalRoots(-1);
188
-
189
- if (last) {
190
- this.setActiveState(last._id);
191
- } else if (getListOfModalRoots().length <= 1) {
192
- this.setActiveState(false);
193
- }
187
+ this.removeActiveState();
194
188
  }
195
189
  });
196
190
 
@@ -235,7 +229,7 @@ export default class Modal extends React.PureComponent {
235
229
  }
236
230
  });
237
231
 
238
- this._id = props.id || makeUniqueId();
232
+ this._id = props.id || makeUniqueId('modal-');
239
233
  this._triggerRef = React.createRef();
240
234
  this._onUnmount = [];
241
235
  }
@@ -245,16 +239,15 @@ export default class Modal extends React.PureComponent {
245
239
  }
246
240
 
247
241
  componentWillUnmount() {
242
+ clearTimeout(this._openTimeout);
243
+ clearTimeout(this._closeTimeout);
244
+ this.removeActiveState(false);
245
+
248
246
  this._onUnmount.forEach(fn => {
249
247
  if (typeof fn === 'function') {
250
248
  fn();
251
249
  }
252
250
  });
253
-
254
- clearTimeout(this._openTimeout);
255
- clearTimeout(this._closeTimeout);
256
- clearTimeout(this._sideEffectsTimeout);
257
- clearTimeout(this._tryToOpenTimeout);
258
251
  }
259
252
 
260
253
  componentDidUpdate(prevProps) {
@@ -265,8 +258,7 @@ export default class Modal extends React.PureComponent {
265
258
 
266
259
  openBasedOnStateUpdate() {
267
260
  const {
268
- hide,
269
- modalActive
261
+ hide
270
262
  } = this.state;
271
263
  const {
272
264
  open_state
@@ -276,25 +268,39 @@ export default class Modal extends React.PureComponent {
276
268
  this.activeElement = document.activeElement;
277
269
  }
278
270
 
279
- if (!hide && !modalActive && (open_state === 'opened' || open_state === true)) {
271
+ if (!hide && (open_state === 'opened' || open_state === true)) {
280
272
  this.toggleOpenClose(null, true);
281
- } else if (hide && modalActive && (open_state === 'closed' || open_state === false)) {
273
+ } else if (hide && (open_state === 'closed' || open_state === false)) {
282
274
  this.toggleOpenClose(null, false);
283
275
  }
284
276
  }
285
277
 
278
+ removeActiveState() {
279
+ const last = getListOfModalRoots(-1);
280
+
281
+ if (last !== null && last !== void 0 && last._id && last._id !== this._id) {
282
+ return this.setActiveState(last._id);
283
+ }
284
+
285
+ try {
286
+ document.documentElement.removeAttribute('data-dnb-modal-active');
287
+ document.body.setAttribute('data-dnb-modal-active', 'false');
288
+ } catch (e) {
289
+ warn('Modal: Error on remove "data-dnb-modal-active"', e);
290
+ }
291
+ }
292
+
286
293
  setActiveState(modalId) {
294
+ if (!modalId) {
295
+ warn('Modal: A valid modalId is required');
296
+ }
297
+
287
298
  if (typeof document !== 'undefined') {
288
299
  try {
289
- if (modalId) {
290
- document.documentElement.setAttribute('data-dnb-modal-active', modalId);
291
- } else {
292
- document.documentElement.removeAttribute('data-dnb-modal-active');
293
- }
294
-
295
- document.body.setAttribute('data-dnb-modal-active', modalId ? 'true' : 'false');
300
+ document.documentElement.setAttribute('data-dnb-modal-active', modalId);
301
+ document.body.setAttribute('data-dnb-modal-active', 'true');
296
302
  } catch (e) {
297
- warn('Modal: Error on set "data-dnb-modal-active" by using element.setAttribute()', e);
303
+ warn('Modal: Error on set "data-dnb-modal-active"', e);
298
304
  }
299
305
  }
300
306
  }
@@ -27,6 +27,31 @@ export default class ModalContent extends React.PureComponent {
27
27
  triggeredByEvent: null
28
28
  });
29
29
 
30
+ _defineProperty(this, "lockBody", () => {
31
+ const modalRoots = getListOfModalRoots();
32
+ const firstLevel = modalRoots[0];
33
+
34
+ if (firstLevel === this) {
35
+ this._ii = new InteractionInvalidation();
36
+
37
+ this._ii.setBypassSelector(['.dnb-modal__content *', `#dnb-modal-${this.props.root_id || 'root'} *`].filter(Boolean));
38
+
39
+ this._ii.activate();
40
+ } else {
41
+ modalRoots.forEach(modal => {
42
+ if (modal !== this && typeof modal._iiLocal === 'undefined' && typeof modal._contentRef !== 'undefined') {
43
+ modal._iiLocal = new InteractionInvalidation();
44
+
45
+ modal._iiLocal.activate(modal._contentRef.current);
46
+ }
47
+ });
48
+ }
49
+
50
+ if (typeof document !== 'undefined') {
51
+ document.addEventListener('keydown', this.onKeyDownHandler);
52
+ }
53
+ });
54
+
30
55
  _defineProperty(this, "_androidFocusHelper", () => {
31
56
  clearTimeout(this._androidFocusTimeout);
32
57
  this._androidFocusTimeout = setTimeout(() => {
@@ -37,7 +62,7 @@ export default class ModalContent extends React.PureComponent {
37
62
  document.activeElement.scrollIntoView();
38
63
  }
39
64
  } catch (e) {}
40
- }, 100);
65
+ }, parseFloat(this.props.animation_duration) / 2);
41
66
  });
42
67
 
43
68
  _defineProperty(this, "preventClick", e => {
@@ -85,50 +110,40 @@ export default class ModalContent extends React.PureComponent {
85
110
 
86
111
  this._contentRef = React.createRef();
87
112
  this._id = props.id;
88
- this._ii = new InteractionInvalidation();
89
-
90
- this._ii.setBypassSelector(['.dnb-modal__content', `#dnb-modal-${props.root_id || 'root'}`]);
91
113
  }
92
114
 
93
115
  componentDidMount() {
94
116
  this.addToIndex();
95
- const modalRoots = getListOfModalRoots();
96
- const firstLevel = modalRoots[0];
97
117
  this.removeScrollPossibility();
98
-
99
- if (firstLevel === this) {
100
- this._ii.activate();
101
- } else {
102
- modalRoots.forEach(modal => {
103
- if (modal !== this && typeof modal._iiLocal === 'undefined' && typeof modal._contentRef !== 'undefined') {
104
- modal._iiLocal = new InteractionInvalidation();
105
-
106
- modal._iiLocal.activate(modal._contentRef.current);
107
- }
108
- });
109
- }
110
-
111
- this.setAndroidFocusHelper();
112
118
  this.setFocus();
119
+ this.setAndroidFocusHelper();
113
120
  const id = this.props.id;
114
121
  dispatchCustomElementEvent(this, 'on_open', {
115
122
  id
116
123
  });
117
124
 
118
- if (typeof document !== 'undefined') {
119
- document.addEventListener('keydown', this.onKeyDownHandler);
125
+ if (isTrue(this.props.no_animation) || process.env.NODE_ENV === 'test') {
126
+ this.lockBody();
127
+ } else {
128
+ this._lockTimeout = setTimeout(this.lockBody, parseFloat(this.props.animation_duration) * 1.2);
120
129
  }
121
130
  }
122
131
 
123
132
  componentWillUnmount() {
124
133
  clearTimeout(this._focusTimeout);
134
+ clearTimeout(this._lockTimeout);
135
+ this.removeLocks();
136
+ }
137
+
138
+ removeLocks() {
125
139
  const modalRoots = getListOfModalRoots();
126
140
  const firstLevel = modalRoots[0];
127
141
  this.removeFromIndex();
128
142
 
129
143
  if (firstLevel === this) {
130
- this._ii.revert();
144
+ var _this$_ii;
131
145
 
146
+ (_this$_ii = this._ii) === null || _this$_ii === void 0 ? void 0 : _this$_ii.revert();
132
147
  this.revertScrollPossibility();
133
148
  } else {
134
149
  try {
@@ -194,10 +209,6 @@ export default class ModalContent extends React.PureComponent {
194
209
  }
195
210
 
196
211
  window.__modalStack = window.__modalStack.filter(cur => cur !== this);
197
-
198
- if (!window.__modalStack.length) {
199
- delete window.__modalStack;
200
- }
201
212
  } catch (e) {
202
213
  warn(e);
203
214
  }
@@ -303,7 +314,7 @@ export default class ModalContent extends React.PureComponent {
303
314
  } = _this$props,
304
315
  rest = _objectWithoutProperties(_this$props, _excluded2);
305
316
 
306
- const contentId = content_id || makeUniqueId();
317
+ const contentId = content_id || makeUniqueId('modal-');
307
318
  const style = this.state.color ? {
308
319
  '--modal-background-color': `var(--color-${this.state.color})`
309
320
  } : null;