@dnb/eufemia 9.23.0-beta.3 → 9.23.0-beta.4

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 (203) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/cjs/components/accordion/style/dnb-accordion.css +92 -0
  3. package/cjs/components/accordion/style/dnb-accordion.min.css +1 -1
  4. package/cjs/components/accordion/style/dnb-accordion.scss +3 -0
  5. package/cjs/components/autocomplete/style/dnb-autocomplete.css +1652 -64
  6. package/cjs/components/autocomplete/style/dnb-autocomplete.min.css +2 -2
  7. package/cjs/components/autocomplete/style/dnb-autocomplete.scss +1 -2
  8. package/cjs/components/button/style/dnb-button.css +192 -0
  9. package/cjs/components/button/style/dnb-button.min.css +1 -1
  10. package/cjs/components/button/style/dnb-button.scss +1 -1
  11. package/cjs/components/date-picker/style/dnb-date-picker.css +729 -0
  12. package/cjs/components/date-picker/style/dnb-date-picker.min.css +2 -2
  13. package/cjs/components/dialog/style/dnb-dialog.css +1870 -79
  14. package/cjs/components/dialog/style/dnb-dialog.min.css +1 -1
  15. package/cjs/components/dialog/style/dnb-dialog.scss +1 -1
  16. package/cjs/components/drawer/style/dnb-drawer.css +1870 -79
  17. package/cjs/components/drawer/style/dnb-drawer.min.css +1 -1
  18. package/cjs/components/drawer/style/dnb-drawer.scss +1 -1
  19. package/cjs/components/dropdown/style/dnb-dropdown.css +192 -0
  20. package/cjs/components/dropdown/style/dnb-dropdown.min.css +1 -1
  21. package/cjs/components/dropdown/style/themes/dnb-dropdown-theme-ui.css +12 -11
  22. package/cjs/components/dropdown/style/themes/dnb-dropdown-theme-ui.min.css +1 -1
  23. package/cjs/components/dropdown/style/themes/dnb-dropdown-theme-ui.scss +4 -1
  24. package/cjs/components/global-error/style/dnb-global-error.css +192 -0
  25. package/cjs/components/global-error/style/dnb-global-error.min.css +1 -1
  26. package/cjs/components/global-status/style/dnb-global-status.css +192 -0
  27. package/cjs/components/global-status/style/dnb-global-status.min.css +1 -1
  28. package/cjs/components/help-button/style/dnb-help-button.css +773 -0
  29. package/cjs/components/help-button/style/dnb-help-button.min.css +1 -1
  30. package/cjs/components/help-button/style/dnb-help-button.scss +3 -0
  31. package/cjs/components/icon/Icon.d.ts +1 -1
  32. package/cjs/components/icon-primary/IconPrimary.d.ts +1 -1
  33. package/cjs/components/input/style/dnb-input.css +371 -0
  34. package/cjs/components/input/style/dnb-input.min.css +1 -1
  35. package/cjs/components/input/style/dnb-input.scss +1 -0
  36. package/cjs/components/input-masked/style/dnb-input-masked.css +371 -0
  37. package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
  38. package/cjs/components/modal/style/dnb-modal.css +268 -0
  39. package/cjs/components/modal/style/dnb-modal.min.css +1 -1
  40. package/cjs/components/modal/style/dnb-modal.scss +1 -1
  41. package/cjs/components/pagination/style/dnb-pagination.css +192 -0
  42. package/cjs/components/pagination/style/dnb-pagination.min.css +1 -1
  43. package/cjs/components/slider/style/dnb-slider.css +192 -0
  44. package/cjs/components/slider/style/dnb-slider.min.css +1 -1
  45. package/cjs/components/step-indicator/style/dnb-step-indicator.css +773 -0
  46. package/cjs/components/step-indicator/style/dnb-step-indicator.min.css +1 -1
  47. package/cjs/components/step-indicator/style/dnb-step-indicator.scss +2 -0
  48. package/cjs/components/tabs/Tabs.d.ts +6 -0
  49. package/cjs/components/tabs/Tabs.js +147 -151
  50. package/cjs/components/tabs/style/_tabs.scss +83 -60
  51. package/cjs/components/tabs/style/dnb-tabs.css +189 -181
  52. package/cjs/components/tabs/style/dnb-tabs.min.css +1 -1
  53. package/cjs/components/tag/style/dnb-tag.css +192 -0
  54. package/cjs/components/tag/style/dnb-tag.min.css +1 -1
  55. package/cjs/components/toggle-button/style/dnb-toggle-button.css +192 -0
  56. package/cjs/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  57. package/cjs/components/toggle-button/style/dnb-toggle-button.scss +2 -0
  58. package/cjs/shared/Eufemia.js +1 -1
  59. package/cjs/style/dnb-ui-components.css +189 -181
  60. package/cjs/style/dnb-ui-components.min.css +1 -1
  61. package/cjs/style/themes/theme-open-banking/dnb-theme-open-banking.css +12 -11
  62. package/cjs/style/themes/theme-open-banking/dnb-theme-open-banking.min.css +1 -1
  63. package/cjs/style/themes/theme-ui/dnb-theme-ui.css +12 -11
  64. package/cjs/style/themes/theme-ui/dnb-theme-ui.min.css +1 -1
  65. package/components/accordion/style/dnb-accordion.css +92 -0
  66. package/components/accordion/style/dnb-accordion.min.css +1 -1
  67. package/components/accordion/style/dnb-accordion.scss +3 -0
  68. package/components/autocomplete/style/dnb-autocomplete.css +1652 -64
  69. package/components/autocomplete/style/dnb-autocomplete.min.css +2 -2
  70. package/components/autocomplete/style/dnb-autocomplete.scss +1 -2
  71. package/components/button/style/dnb-button.css +192 -0
  72. package/components/button/style/dnb-button.min.css +1 -1
  73. package/components/button/style/dnb-button.scss +1 -1
  74. package/components/date-picker/style/dnb-date-picker.css +729 -0
  75. package/components/date-picker/style/dnb-date-picker.min.css +2 -2
  76. package/components/dialog/style/dnb-dialog.css +1870 -79
  77. package/components/dialog/style/dnb-dialog.min.css +1 -1
  78. package/components/dialog/style/dnb-dialog.scss +1 -1
  79. package/components/drawer/style/dnb-drawer.css +1870 -79
  80. package/components/drawer/style/dnb-drawer.min.css +1 -1
  81. package/components/drawer/style/dnb-drawer.scss +1 -1
  82. package/components/dropdown/style/dnb-dropdown.css +192 -0
  83. package/components/dropdown/style/dnb-dropdown.min.css +1 -1
  84. package/components/dropdown/style/themes/dnb-dropdown-theme-ui.css +12 -11
  85. package/components/dropdown/style/themes/dnb-dropdown-theme-ui.min.css +1 -1
  86. package/components/dropdown/style/themes/dnb-dropdown-theme-ui.scss +4 -1
  87. package/components/global-error/style/dnb-global-error.css +192 -0
  88. package/components/global-error/style/dnb-global-error.min.css +1 -1
  89. package/components/global-status/style/dnb-global-status.css +192 -0
  90. package/components/global-status/style/dnb-global-status.min.css +1 -1
  91. package/components/help-button/style/dnb-help-button.css +773 -0
  92. package/components/help-button/style/dnb-help-button.min.css +1 -1
  93. package/components/help-button/style/dnb-help-button.scss +3 -0
  94. package/components/icon/Icon.d.ts +1 -1
  95. package/components/icon-primary/IconPrimary.d.ts +1 -1
  96. package/components/input/style/dnb-input.css +371 -0
  97. package/components/input/style/dnb-input.min.css +1 -1
  98. package/components/input/style/dnb-input.scss +1 -0
  99. package/components/input-masked/style/dnb-input-masked.css +371 -0
  100. package/components/input-masked/style/dnb-input-masked.min.css +1 -1
  101. package/components/modal/style/dnb-modal.css +268 -0
  102. package/components/modal/style/dnb-modal.min.css +1 -1
  103. package/components/modal/style/dnb-modal.scss +1 -1
  104. package/components/pagination/style/dnb-pagination.css +192 -0
  105. package/components/pagination/style/dnb-pagination.min.css +1 -1
  106. package/components/slider/style/dnb-slider.css +192 -0
  107. package/components/slider/style/dnb-slider.min.css +1 -1
  108. package/components/step-indicator/style/dnb-step-indicator.css +773 -0
  109. package/components/step-indicator/style/dnb-step-indicator.min.css +1 -1
  110. package/components/step-indicator/style/dnb-step-indicator.scss +2 -0
  111. package/components/tabs/Tabs.d.ts +6 -0
  112. package/components/tabs/Tabs.js +146 -150
  113. package/components/tabs/style/_tabs.scss +83 -60
  114. package/components/tabs/style/dnb-tabs.css +189 -181
  115. package/components/tabs/style/dnb-tabs.min.css +1 -1
  116. package/components/tag/style/dnb-tag.css +192 -0
  117. package/components/tag/style/dnb-tag.min.css +1 -1
  118. package/components/toggle-button/style/dnb-toggle-button.css +192 -0
  119. package/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  120. package/components/toggle-button/style/dnb-toggle-button.scss +2 -0
  121. package/es/components/accordion/style/dnb-accordion.css +92 -0
  122. package/es/components/accordion/style/dnb-accordion.min.css +1 -1
  123. package/es/components/accordion/style/dnb-accordion.scss +3 -0
  124. package/es/components/autocomplete/style/dnb-autocomplete.css +1652 -64
  125. package/es/components/autocomplete/style/dnb-autocomplete.min.css +2 -2
  126. package/es/components/autocomplete/style/dnb-autocomplete.scss +1 -2
  127. package/es/components/button/style/dnb-button.css +192 -0
  128. package/es/components/button/style/dnb-button.min.css +1 -1
  129. package/es/components/button/style/dnb-button.scss +1 -1
  130. package/es/components/date-picker/style/dnb-date-picker.css +729 -0
  131. package/es/components/date-picker/style/dnb-date-picker.min.css +2 -2
  132. package/es/components/dialog/style/dnb-dialog.css +1870 -79
  133. package/es/components/dialog/style/dnb-dialog.min.css +1 -1
  134. package/es/components/dialog/style/dnb-dialog.scss +1 -1
  135. package/es/components/drawer/style/dnb-drawer.css +1870 -79
  136. package/es/components/drawer/style/dnb-drawer.min.css +1 -1
  137. package/es/components/drawer/style/dnb-drawer.scss +1 -1
  138. package/es/components/dropdown/style/dnb-dropdown.css +192 -0
  139. package/es/components/dropdown/style/dnb-dropdown.min.css +1 -1
  140. package/es/components/dropdown/style/themes/dnb-dropdown-theme-ui.css +12 -11
  141. package/es/components/dropdown/style/themes/dnb-dropdown-theme-ui.min.css +1 -1
  142. package/es/components/dropdown/style/themes/dnb-dropdown-theme-ui.scss +4 -1
  143. package/es/components/global-error/style/dnb-global-error.css +192 -0
  144. package/es/components/global-error/style/dnb-global-error.min.css +1 -1
  145. package/es/components/global-status/style/dnb-global-status.css +192 -0
  146. package/es/components/global-status/style/dnb-global-status.min.css +1 -1
  147. package/es/components/help-button/style/dnb-help-button.css +773 -0
  148. package/es/components/help-button/style/dnb-help-button.min.css +1 -1
  149. package/es/components/help-button/style/dnb-help-button.scss +3 -0
  150. package/es/components/icon/Icon.d.ts +1 -1
  151. package/es/components/icon-primary/IconPrimary.d.ts +1 -1
  152. package/es/components/input/style/dnb-input.css +371 -0
  153. package/es/components/input/style/dnb-input.min.css +1 -1
  154. package/es/components/input/style/dnb-input.scss +1 -0
  155. package/es/components/input-masked/style/dnb-input-masked.css +371 -0
  156. package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
  157. package/es/components/modal/style/dnb-modal.css +268 -0
  158. package/es/components/modal/style/dnb-modal.min.css +1 -1
  159. package/es/components/modal/style/dnb-modal.scss +1 -1
  160. package/es/components/pagination/style/dnb-pagination.css +192 -0
  161. package/es/components/pagination/style/dnb-pagination.min.css +1 -1
  162. package/es/components/slider/style/dnb-slider.css +192 -0
  163. package/es/components/slider/style/dnb-slider.min.css +1 -1
  164. package/es/components/step-indicator/style/dnb-step-indicator.css +773 -0
  165. package/es/components/step-indicator/style/dnb-step-indicator.min.css +1 -1
  166. package/es/components/step-indicator/style/dnb-step-indicator.scss +2 -0
  167. package/es/components/tabs/Tabs.d.ts +6 -0
  168. package/es/components/tabs/Tabs.js +110 -114
  169. package/es/components/tabs/style/_tabs.scss +83 -60
  170. package/es/components/tabs/style/dnb-tabs.css +189 -181
  171. package/es/components/tabs/style/dnb-tabs.min.css +1 -1
  172. package/es/components/tag/style/dnb-tag.css +192 -0
  173. package/es/components/tag/style/dnb-tag.min.css +1 -1
  174. package/es/components/toggle-button/style/dnb-toggle-button.css +192 -0
  175. package/es/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  176. package/es/components/toggle-button/style/dnb-toggle-button.scss +2 -0
  177. package/es/shared/Eufemia.js +1 -1
  178. package/es/style/dnb-ui-components.css +189 -181
  179. package/es/style/dnb-ui-components.min.css +1 -1
  180. package/es/style/themes/theme-open-banking/dnb-theme-open-banking.css +12 -11
  181. package/es/style/themes/theme-open-banking/dnb-theme-open-banking.min.css +1 -1
  182. package/es/style/themes/theme-ui/dnb-theme-ui.css +12 -11
  183. package/es/style/themes/theme-ui/dnb-theme-ui.min.css +1 -1
  184. package/esm/dnb-ui-basis.min.mjs +1 -1
  185. package/esm/dnb-ui-components.min.mjs +1 -1
  186. package/esm/dnb-ui-elements.min.mjs +1 -1
  187. package/esm/dnb-ui-extensions.min.mjs +1 -1
  188. package/esm/dnb-ui-lib.min.mjs +2 -2
  189. package/esm/dnb-ui-web-components.min.mjs +2 -2
  190. package/package.json +1 -1
  191. package/shared/Eufemia.js +1 -1
  192. package/style/dnb-ui-components.css +189 -181
  193. package/style/dnb-ui-components.min.css +1 -1
  194. package/style/themes/theme-open-banking/dnb-theme-open-banking.css +12 -11
  195. package/style/themes/theme-open-banking/dnb-theme-open-banking.min.css +1 -1
  196. package/style/themes/theme-ui/dnb-theme-ui.css +12 -11
  197. package/style/themes/theme-ui/dnb-theme-ui.min.css +1 -1
  198. package/umd/dnb-ui-basis.min.js +1 -1
  199. package/umd/dnb-ui-components.min.js +1 -1
  200. package/umd/dnb-ui-elements.min.js +1 -1
  201. package/umd/dnb-ui-extensions.min.js +1 -1
  202. package/umd/dnb-ui-lib.min.js +2 -2
  203. package/umd/dnb-ui-web-components.min.js +4 -4
@@ -1,2 +1,2 @@
1
- .dnb-step-indicator{-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-step-indicator *,.dnb-step-indicator :after,.dnb-step-indicator :before{background-repeat:no-repeat;-webkit-box-sizing:border-box;box-sizing:border-box}.dnb-step-indicator :after,.dnb-step-indicator :before{text-decoration:inherit;vertical-align:inherit}.dnb-step-indicator-v1 .dnb-step-indicator{display:block;padding:0;position:relative;z-index:1}.dnb-step-indicator-v1 .dnb-step-indicator__list{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;list-style:none;margin:0;padding:0}.dnb-spacing .dnb-step-indicator-v1 .dnb-step-indicator__list,.dnb-spacing .dnb-step-indicator-v1 .dnb-step-indicator__list li{margin-bottom:0;margin-top:0}.dnb-step-indicator-v1 .dnb-step-indicator__item{-ms-flex-item-align:end;align-self:flex-end}.dnb-step-indicator-v1 .dnb-step-indicator__item-content{font-size:1.125rem;font-size:var(--font-size-basis)}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--link,.dnb-step-indicator-v1 .dnb-step-indicator__item-content--static,.dnb-step-indicator-v1 .dnb-step-indicator__item-content.dnb-anchor,.dnb-step-indicator-v1 .dnb-step-indicator__item-contenta{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;border-bottom:none;-webkit-box-shadow:none;box-shadow:none;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;height:100%;margin:0;padding:.25rem;position:relative;text-decoration:none;z-index:2}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--link.dnb-anchor{line-height:1.5rem;line-height:var(--line-height-basis)}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus[disabled],html:not([data-whatintent=touch]) .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus[disabled]{cursor:not-allowed}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]),html:not([data-whatintent=touch]) .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]){outline:none}html[data-whatinput=keyboard] .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]),html[data-whatinput=keyboard] html:not([data-whatintent=touch]) .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]){--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-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]),html[data-whatinput=keyboard] html:not([data-whatintent=touch]) .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]){-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-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]):after,html:not([data-whatintent=touch]) .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]):after{content:none}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--number{padding-right:.25rem;white-space:nowrap}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--text{text-align:left}.dnb-step-indicator-v1 .dnb-step-indicator__item-content:after{border-radius:1.5px;bottom:0;content:"";height:3px;left:0;position:absolute;width:100%;z-index:1}.dnb-step-indicator-v1 .dnb-step-indicator:after{background-color:currentColor;bottom:0;-webkit-box-shadow:100vw 0 0 0 currentColor;box-shadow:100vw 0 0 0 currentColor;color:#000;color:var(--color-black);content:"";height:1px;left:-100vw;position:absolute;width:100vw;z-index:-1}@media screen and (min-width:50.1em){.dnb-step-indicator__sidebar{margin-right:3rem;margin-right:var(--spacing-x-large);max-width:20rem}.dnb-step-indicator__sidebar .dnb-step-indicator__item{min-width:320px}}@media screen and (max-width:50.1em){.dnb-step-indicator__sidebar--ssr-skeleton{height:5.5rem;overflow:hidden;visibility:hidden;width:0}}.dnb-step-indicator-v2 .dnb-step-indicator__list{list-style:none;margin:0;padding:0}.dnb-step-indicator-v2 .dnb-step-indicator__list,.dnb-step-indicator-v2 .dnb-step-indicator__trigger{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button,.dnb-step-indicator-v2 .dnb-step-indicator__trigger__button{-webkit-box-pack:justify;-ms-flex-pack:justify;border-radius:.25rem;justify-content:space-between;overflow:hidden;-webkit-transition:height .4s cubic-bezier(.42,0,0,1);transition:height .4s cubic-bezier(.42,0,0,1);will-change:height}.dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button .dnb-button__text,.dnb-step-indicator-v2 .dnb-step-indicator__trigger__button .dnb-button__text{text-align:left}.dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button.dnb-button--has-icon .dnb-button__text,.dnb-step-indicator-v2 .dnb-step-indicator__trigger__button.dnb-button--has-icon .dnb-button__text{margin-right:1rem}.dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button .dnb-button__alignment,.dnb-step-indicator-v2 .dnb-step-indicator__trigger__button .dnb-button__alignment{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}html[data-visual-test] .dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button,html[data-visual-test] .dnb-step-indicator-v2 .dnb-step-indicator__trigger__button{-webkit-transition-duration:1ms!important;transition-duration:1ms!important}.dnb-step-indicator-v2 .dnb-step-indicator__trigger button.dnb-step-indicator-v2 .dnb-step-indicator__trigger__button{margin-top:.5rem}.dnb-step-indicator-v2 .dnb-step-indicator__item{margin-bottom:1rem}.dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button__icon{opacity:1;-webkit-transition:opacity 1.4s ease-in-out;transition:opacity 1.4s ease-in-out}html[data-visual-test] .dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button__icon{-webkit-transition-duration:1ms!important;transition-duration:1ms!important}.dnb-step-indicator-v2 .dnb-step-indicator__item:not(.dnb-step-indicator__item--visited) .dnb-button:not(.dnb-step-indicator__button__status)
1
+ .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-tooltip{-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-tooltip *,.dnb-tooltip :after,.dnb-tooltip :before{background-repeat:no-repeat;-webkit-box-sizing:border-box;box-sizing:border-box}.dnb-tooltip :after,.dnb-tooltip :before{text-decoration:inherit;vertical-align:inherit}.dnb-tooltip{-webkit-box-orient:vertical;-webkit-box-direction:normal;-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;-ms-flex-direction:column;flex-direction:column;justify-content:center;opacity:0;padding:0 1rem;position:absolute;-webkit-transition:opacity .2s ease-out;transition:opacity .2s ease-out;visibility:hidden;z-index:3100}.dnb-tooltip--large{padding:.25rem 1rem}.dnb-tooltip--animate_position{-webkit-transition:all .3s ease-in-out,opacity .2s ease-out;transition:all .3s ease-in-out,opacity .2s ease-out}.dnb-tooltip--active{-webkit-animation:show-tooltip .2s ease-out forwards;animation:show-tooltip .2s ease-out forwards;visibility:visible}.dnb-tooltip--active.dnb-tooltip--no-animation,html[data-visual-test] .dnb-tooltip--active{-webkit-animation:show-tooltip 1ms ease-out forwards;animation:show-tooltip 1ms ease-out forwards}.dnb-tooltip--hide{-webkit-animation:hide-tooltip .2s ease-in-out forwards;animation:hide-tooltip .2s ease-in-out forwards;visibility:visible}.dnb-tooltip--hide.dnb-tooltip--no-animation{-webkit-animation:hide-tooltip 1ms ease-out forwards;animation:hide-tooltip 1ms ease-out forwards}.dnb-tooltip--fixed{position:fixed}html[data-visual-test] .dnb-tooltip--hide{-webkit-animation:hide-tooltip 1ms ease-out 1s forwards;animation:hide-tooltip 1ms ease-out 1s forwards}.dnb-tooltip__content{min-height:1.5rem;min-width:2rem;padding:0}.dnb-tooltip__arrow{height:.5rem;margin:0;overflow:hidden;pointer-events:none;position:absolute;width:1rem}.dnb-tooltip__arrow:before{bottom:0;content:"";height:1rem;left:0;position:absolute;-webkit-transform:translateY(70%) rotate(45deg);transform:translateY(70%) rotate(45deg);width:1rem}.dnb-tooltip__arrow__position--bottom{top:-.5rem}.dnb-tooltip__arrow__position--top{bottom:-.5rem;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.dnb-tooltip__arrow__position--left{margin-right:3px;right:-.75rem;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.dnb-tooltip__arrow__position--right{left:-.75rem;margin-left:3px;-webkit-transform:rotate(270deg);transform:rotate(270deg)}.dnb-tooltip__arrow__arrow--left{-ms-flex-item-align:start;align-self:flex-start}.dnb-tooltip__arrow__arrow--right{-ms-flex-item-align:end;align-self:flex-end}@-webkit-keyframes show-tooltip{0%{opacity:0}to{opacity:1}}@keyframes show-tooltip{0%{opacity:0}to{opacity:1}}@-webkit-keyframes hide-tooltip{0%{opacity:1}to{opacity:0;visibility:hidden}}@keyframes hide-tooltip{0%{opacity:1}to{opacity:0;visibility:hidden}}.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-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-step-indicator{-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-step-indicator *,.dnb-step-indicator :after,.dnb-step-indicator :before{background-repeat:no-repeat;-webkit-box-sizing:border-box;box-sizing:border-box}.dnb-step-indicator :after,.dnb-step-indicator :before{text-decoration:inherit;vertical-align:inherit}.dnb-step-indicator-v1 .dnb-step-indicator{display:block;padding:0;position:relative;z-index:1}.dnb-step-indicator-v1 .dnb-step-indicator__list{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;list-style:none;margin:0;padding:0}.dnb-spacing .dnb-step-indicator-v1 .dnb-step-indicator__list,.dnb-spacing .dnb-step-indicator-v1 .dnb-step-indicator__list li{margin-bottom:0;margin-top:0}.dnb-step-indicator-v1 .dnb-step-indicator__item{-ms-flex-item-align:end;align-self:flex-end}.dnb-step-indicator-v1 .dnb-step-indicator__item-content{font-size:1.125rem;font-size:var(--font-size-basis)}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--link,.dnb-step-indicator-v1 .dnb-step-indicator__item-content--static,.dnb-step-indicator-v1 .dnb-step-indicator__item-content.dnb-anchor,.dnb-step-indicator-v1 .dnb-step-indicator__item-contenta{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;border-bottom:none;-webkit-box-shadow:none;box-shadow:none;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;height:100%;margin:0;padding:.25rem;position:relative;text-decoration:none;z-index:2}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--link.dnb-anchor{line-height:1.5rem;line-height:var(--line-height-basis)}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus[disabled],html:not([data-whatintent=touch]) .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus[disabled]{cursor:not-allowed}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]),html:not([data-whatintent=touch]) .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]){outline:none}html[data-whatinput=keyboard] .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]),html[data-whatinput=keyboard] html:not([data-whatintent=touch]) .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]){--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-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]),html[data-whatinput=keyboard] html:not([data-whatintent=touch]) .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]){-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-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]):after,html:not([data-whatintent=touch]) .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]):after{content:none}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--number{padding-right:.25rem;white-space:nowrap}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--text{text-align:left}.dnb-step-indicator-v1 .dnb-step-indicator__item-content:after{border-radius:1.5px;bottom:0;content:"";height:3px;left:0;position:absolute;width:100%;z-index:1}.dnb-step-indicator-v1 .dnb-step-indicator:after{background-color:currentColor;bottom:0;-webkit-box-shadow:100vw 0 0 0 currentColor;box-shadow:100vw 0 0 0 currentColor;color:#000;color:var(--color-black);content:"";height:1px;left:-100vw;position:absolute;width:100vw;z-index:-1}@media screen and (min-width:50.1em){.dnb-step-indicator__sidebar{margin-right:3rem;margin-right:var(--spacing-x-large);max-width:20rem}.dnb-step-indicator__sidebar .dnb-step-indicator__item{min-width:320px}}@media screen and (max-width:50.1em){.dnb-step-indicator__sidebar--ssr-skeleton{height:5.5rem;overflow:hidden;visibility:hidden;width:0}}.dnb-step-indicator-v2 .dnb-step-indicator__list{list-style:none;margin:0;padding:0}.dnb-step-indicator-v2 .dnb-step-indicator__list,.dnb-step-indicator-v2 .dnb-step-indicator__trigger{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button,.dnb-step-indicator-v2 .dnb-step-indicator__trigger__button{-webkit-box-pack:justify;-ms-flex-pack:justify;border-radius:.25rem;justify-content:space-between;overflow:hidden;-webkit-transition:height .4s cubic-bezier(.42,0,0,1);transition:height .4s cubic-bezier(.42,0,0,1);will-change:height}.dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button .dnb-button__text,.dnb-step-indicator-v2 .dnb-step-indicator__trigger__button .dnb-button__text{text-align:left}.dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button.dnb-button--has-icon .dnb-button__text,.dnb-step-indicator-v2 .dnb-step-indicator__trigger__button.dnb-button--has-icon .dnb-button__text{margin-right:1rem}.dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button .dnb-button__alignment,.dnb-step-indicator-v2 .dnb-step-indicator__trigger__button .dnb-button__alignment{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}html[data-visual-test] .dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button,html[data-visual-test] .dnb-step-indicator-v2 .dnb-step-indicator__trigger__button{-webkit-transition-duration:1ms!important;transition-duration:1ms!important}.dnb-step-indicator-v2 .dnb-step-indicator__trigger button.dnb-step-indicator-v2 .dnb-step-indicator__trigger__button{margin-top:.5rem}.dnb-step-indicator-v2 .dnb-step-indicator__item{margin-bottom:1rem}.dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button__icon{opacity:1;-webkit-transition:opacity 1.4s ease-in-out;transition:opacity 1.4s ease-in-out}html[data-visual-test] .dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button__icon{-webkit-transition-duration:1ms!important;transition-duration:1ms!important}.dnb-step-indicator-v2 .dnb-step-indicator__item:not(.dnb-step-indicator__item--visited) .dnb-button:not(.dnb-step-indicator__button__status)
2
2
  .dnb-button__icon{opacity:0}.dnb-step-indicator-v2 .dnb-step-indicator__item-content{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;padding:.5rem 0}.dnb-step-indicator-v2 .dnb-step-indicator__item-content__number{padding-right:.5rem;white-space:nowrap}.dnb-step-indicator-v2 .dnb-step-indicator__item-content__wrapper{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.dnb-step-indicator-v2 .dnb-step-indicator__button__status .dnb-step-indicator__item-content__status{color:#333;color:var(--color-black-80);font-size:.875rem;font-size:var(--font-size-x-small)}
@@ -5,6 +5,8 @@
5
5
 
6
6
  @import '../../../style/components/imports.scss';
7
7
 
8
+ @import '../../button/style/dnb-button.scss';
9
+
8
10
  .dnb-step-indicator {
9
11
  @include componentReset();
10
12
  }
@@ -23,6 +23,7 @@ export type TabsSelectedKey = string | number;
23
23
  export type TabsAlign = 'left' | 'center' | 'right';
24
24
  export type TabsTabsSpacing = string | boolean;
25
25
  export type TabsNoBorder = string | boolean;
26
+ export type TabsNavButtonEdge = string | boolean;
26
27
  export type TabsUseHash = string | boolean;
27
28
  export type TabsPrerender = string | boolean;
28
29
  export type TabsPreventRerender = string | boolean;
@@ -116,6 +117,11 @@ export interface TabsProps extends React.HTMLProps<HTMLElement> {
116
117
  * If set to `true`, the default horizontal border line under the tablist will be removed. Defaults to `false`.
117
118
  */
118
119
  no_border?: TabsNoBorder;
120
+
121
+ /**
122
+ * If set to `true`, the navigation icons will have a straight border at their outside. This feature is meant to be used when the Tabs component goes all the way to the browser window. Defaults to `false`.
123
+ */
124
+ nav_button_edge?: TabsNavButtonEdge;
119
125
  use_hash?: TabsUseHash;
120
126
 
121
127
  /**
@@ -134,17 +134,24 @@ export default class Tabs extends React.PureComponent {
134
134
  _defineProperty(this, "init", () => {
135
135
  if (this._isMounted) {
136
136
  this.addScrollBehaviour();
137
- this.scrollToLastPosition();
138
- this.scrollToTab('selected');
137
+ this.setScrollbarState();
138
+ this.scrollToTab({
139
+ type: 'focus',
140
+ behavior: 'auto'
141
+ });
142
+ this.scrollToTab({
143
+ type: 'selected',
144
+ behavior: 'auto'
145
+ });
139
146
 
140
- if (this.getLastUsedTab() !== null) {
141
- this.setState(null, this.setFocusOnTab);
147
+ if (this.hasLastUsedTab() !== null) {
148
+ this.setState(null, this.setFocusOnTabButton);
142
149
  }
143
150
  }
144
151
  });
145
152
 
146
- _defineProperty(this, "onResizeHandler", () => {
147
- const hasScrollbar = this._hasScrollbar = this.hasScrollbar();
153
+ _defineProperty(this, "setScrollbarState", () => {
154
+ const hasScrollbar = this.hasScrollbar();
148
155
 
149
156
  if (hasScrollbar !== this.state.hasScrollbar) {
150
157
  this.setState({
@@ -152,42 +159,14 @@ export default class Tabs extends React.PureComponent {
152
159
  });
153
160
  }
154
161
 
155
- if (this._hasScrollbar) {
156
- try {
157
- if (Math.ceil(window.innerWidth / 16) <= 40 || this.isAtEdge()) {
158
- if (!this._tabsRef.current.style.marginLeft) {
159
- const tabsStyle = window.getComputedStyle(this._tabsRef.current);
160
-
161
- if (!(Math.abs(parseFloat(tabsStyle.marginLeft)) > 0)) {
162
- const diff = window.innerWidth - this._tabsRef.current.offsetWidth;
163
- let val = Math.round(diff / 16) / 2 * 16;
164
- this._tabsRef.current.style.marginLeft = `-${val}px`;
165
- this._tabsRef.current.style.marginRight = `-${val}px`;
166
-
167
- if (val < 32) {
168
- val = 32;
169
- }
170
-
171
- const tablistStyle = window.getComputedStyle(this._tablistRef.current);
172
- this._tablistRef.current.style.paddingLeft = `${(parseFloat(tablistStyle.paddingLeft) || 0) + val}px`;
173
- this._tablistRef.current.style.paddingRight = `${(parseFloat(tablistStyle.paddingRight) || 0) + val}px`;
174
- }
175
- }
176
- } else {
177
- this._tabsRef.current.style.marginLeft = '';
178
- this._tabsRef.current.style.marginRight = '';
179
- this._tablistRef.current.style.paddingLeft = '';
180
- this._tablistRef.current.style.paddingRight = '';
181
- }
182
- } catch (e) {}
183
- }
184
-
185
- this.setState({
186
- atEdge: this.isAtEdge()
187
- });
162
+ return hasScrollbar;
163
+ });
188
164
 
189
- if (hasScrollbar) {
190
- this.scrollToTab('selected');
165
+ _defineProperty(this, "onResizeHandler", () => {
166
+ if (this.setScrollbarState()) {
167
+ this.scrollToTab({
168
+ type: 'selected'
169
+ });
191
170
  }
192
171
  });
193
172
 
@@ -222,33 +201,45 @@ export default class Tabs extends React.PureComponent {
222
201
  _defineProperty(this, "focusFirstTab", e => {
223
202
  const key = this.state.data[0].key;
224
203
  this.focusTab(key, e, 'step');
225
- this.scrollToTab('focus');
204
+ this.scrollToTab({
205
+ type: 'focus'
206
+ });
226
207
  });
227
208
 
228
209
  _defineProperty(this, "focusLastTab", e => {
229
210
  const key = this.state.data[this.state.data.length - 1].key;
230
211
  this.focusTab(key, e, 'step');
231
- this.scrollToTab('focus');
212
+ this.scrollToTab({
213
+ type: 'focus'
214
+ });
232
215
  });
233
216
 
234
217
  _defineProperty(this, "focusPrevTab", e => {
235
218
  this.focusTab(-1, e, 'step');
236
- this.scrollToTab('focus');
219
+ this.scrollToTab({
220
+ type: 'focus'
221
+ });
237
222
  });
238
223
 
239
224
  _defineProperty(this, "focusNextTab", e => {
240
225
  this.focusTab(+1, e, 'step');
241
- this.scrollToTab('focus');
226
+ this.scrollToTab({
227
+ type: 'focus'
228
+ });
242
229
  });
243
230
 
244
231
  _defineProperty(this, "openPrevTab", e => {
245
232
  this.openTab(-1, e, 'step');
246
- this.scrollToTab('selected');
233
+ this.scrollToTab({
234
+ type: 'selected'
235
+ });
247
236
  });
248
237
 
249
238
  _defineProperty(this, "openNextTab", e => {
250
239
  this.openTab(+1, e, 'step');
251
- this.scrollToTab('selected');
240
+ this.scrollToTab({
241
+ type: 'selected'
242
+ });
252
243
  });
253
244
 
254
245
  _defineProperty(this, "handleVerticalScroll", () => {
@@ -260,14 +251,20 @@ export default class Tabs extends React.PureComponent {
260
251
  }
261
252
  });
262
253
 
254
+ _defineProperty(this, "onMouseDown", event => {
255
+ event.preventDefault();
256
+ });
257
+
263
258
  _defineProperty(this, "onKeyDownHandler", event => {
264
259
  switch (keycode(event)) {
265
260
  case 'enter':
266
261
  try {
267
262
  const elem = document.getElementById(`${this._id}-content`);
268
- elem.focus();
263
+ elem.focus({
264
+ preventScroll: true
265
+ });
269
266
  } catch (e) {
270
- warn(e);
267
+ this.warnAboutMissingContainer();
271
268
  }
272
269
 
273
270
  break;
@@ -296,7 +293,9 @@ export default class Tabs extends React.PureComponent {
296
293
 
297
294
  if (ret !== false) {
298
295
  this.openTab(selected_key, event);
299
- this.scrollToTab('selected');
296
+ this.scrollToTab({
297
+ type: 'selected'
298
+ });
300
299
  }
301
300
  }
302
301
  });
@@ -332,7 +331,7 @@ export default class Tabs extends React.PureComponent {
332
331
  this.setState({
333
332
  focus_key,
334
333
  _listenForPropChanges: false
335
- }, this.setFocusOnTab);
334
+ }, this.setFocusOnTabButton);
336
335
  dispatchCustomElementEvent(this, 'on_focus', this.getEventArgs({
337
336
  event,
338
337
  focus_key
@@ -340,14 +339,16 @@ export default class Tabs extends React.PureComponent {
340
339
  this.setWhatInput();
341
340
  });
342
341
 
343
- _defineProperty(this, "setFocusOnTab", () => {
342
+ _defineProperty(this, "setFocusOnTabButton", () => {
344
343
  try {
345
344
  const elem = this._tablistRef.current.querySelector('.dnb-tabs__button.focus');
346
345
 
347
- elem.focus();
346
+ elem.focus({
347
+ preventScroll: true
348
+ });
348
349
 
349
350
  if (!document.getElementById(`${this._id}-content`) && typeof process !== 'undefined' && process.env.NODE_ENV !== 'test') {
350
- warn(`Could not find the required <Tabs.Content id="${this._id}-content" ... /> that provides role="tabpanel"`);
351
+ this.warnAboutMissingContainer();
351
352
  }
352
353
  } catch (e) {
353
354
  warn(e);
@@ -469,23 +470,23 @@ export default class Tabs extends React.PureComponent {
469
470
  align,
470
471
  tabs_style,
471
472
  tabs_spacing,
472
- no_border
473
+ no_border,
474
+ nav_button_edge
473
475
  } = this.props;
474
476
  const {
475
- hasScrollbar,
476
- atEdge
477
+ hasScrollbar
477
478
  } = this.state;
478
479
  return React.createElement("div", _extends({
479
- className: classnames('dnb-tabs__tabs', className, align && `dnb-tabs__tabs--${align}`, tabs_style && `dnb-section dnb-section--${tabs_style}`, tabs_spacing && `dnb-section--spacing-${isTrue(tabs_spacing) ? 'default' : tabs_spacing}`, hasScrollbar && 'dnb-tabs--has-scrollbar', atEdge && 'dnb-tabs--at-edge', no_border && 'dnb-tabs__tabs--no-border'),
480
+ className: classnames('dnb-tabs__tabs', className, align && `dnb-tabs__tabs--${align}`, tabs_style && `dnb-section dnb-section--${tabs_style}`, tabs_spacing && `dnb-section--spacing-${isTrue(tabs_spacing) ? 'default' : tabs_spacing}`, hasScrollbar && 'dnb-tabs--has-scrollbar', nav_button_edge && 'dnb-tabs--at-edge', no_border && 'dnb-tabs__tabs--no-border'),
480
481
  ref: this._tabsRef
481
482
  }, rest), React.createElement(ScrollNavButton, {
482
483
  onMouseDown: this.openPrevTab,
483
484
  icon: "chevron_left",
484
- className: classnames(hasScrollbar && 'dnb-tabs__scroll-nav-button--visible', this.state.isFirst && 'dnb-tabs__scroll-nav-button--hide')
485
+ className: classnames(hasScrollbar && typeof this.state.isFirst !== 'undefined' && 'dnb-tabs__scroll-nav-button--visible', this.state.isFirst && 'dnb-tabs__scroll-nav-button--hide')
485
486
  }), children, React.createElement(ScrollNavButton, {
486
487
  onMouseDown: this.openNextTab,
487
488
  icon: "chevron_right",
488
- className: classnames(hasScrollbar && 'dnb-tabs__scroll-nav-button--visible', this.state.isLast && 'dnb-tabs__scroll-nav-button--hide')
489
+ className: classnames(hasScrollbar && typeof this.state.isLast !== 'undefined' && 'dnb-tabs__scroll-nav-button--visible', this.state.isLast && 'dnb-tabs__scroll-nav-button--hide')
489
490
  }));
490
491
  });
491
492
 
@@ -560,6 +561,7 @@ Tip: Check out other solutions like <Tabs.Content id="unique">Your content, outs
560
561
  onMouseEnter: this.onMouseEnterHandler,
561
562
  onClick: this.onClickHandler,
562
563
  onKeyUp: this.onKeyDownHandler,
564
+ onMouseDown: this.onMouseDown,
563
565
  "data-tab-key": key
564
566
  }, itemParams), React.createElement("span", {
565
567
  className: classnames('dnb-tabs__button__title', createSkeletonClass('font', skeleton, this.context))
@@ -602,7 +604,6 @@ Tip: Check out other solutions like <Tabs.Content id="unique">Your content, outs
602
604
  const lastPosition = this.getLastPosition();
603
605
  this.state = {
604
606
  data,
605
- lastPosition,
606
607
  selected_key: _selected_key,
607
608
  focus_key: _selected_key,
608
609
  atEdge: false,
@@ -643,8 +644,6 @@ Tip: Check out other solutions like <Tabs.Content id="unique">Your content, outs
643
644
  this._eventEmitter = null;
644
645
  }
645
646
 
646
- clearTimeout(this._scrollToTabTimeout);
647
-
648
647
  if (typeof window !== 'undefined') {
649
648
  window.removeEventListener('resize', this.onResizeHandler);
650
649
  window.removeEventListener('load', this.init);
@@ -652,22 +651,24 @@ Tip: Check out other solutions like <Tabs.Content id="unique">Your content, outs
652
651
  }
653
652
 
654
653
  componentDidUpdate(props) {
655
- this.onResizeHandler();
654
+ if (this._eventEmitter && (this.props.selected_key !== props.selected_key || this.props.data !== props.data)) {
655
+ this.onResizeHandler();
656
656
 
657
- if (this._eventEmitter && this.props.selected_key !== props.selected_key) {
658
- const selected_key = this.state.selected_key;
657
+ if (this._eventEmitter) {
658
+ const selected_key = this.state.selected_key;
659
659
 
660
- this._eventEmitter.update(this.getEventArgs({
661
- selected_key
662
- }));
660
+ this._eventEmitter.update(this.getEventArgs({
661
+ selected_key
662
+ }));
663
+ }
663
664
  }
664
665
  }
665
666
 
666
667
  getLastPosition() {
667
668
  if (typeof window !== 'undefined') {
668
669
  try {
669
- const pos = parseFloat(window.localStorage.getItem('tmp-tabs-pos')) || -1;
670
- window.localStorage.removeItem('tmp-tabs-pos');
670
+ const pos = parseFloat(window.localStorage.getItem(`tabs-pos-${this._id}`)) || -1;
671
+ window.localStorage.removeItem(`tabs-pos-${this._id}`);
671
672
  return pos;
672
673
  } catch (e) {
673
674
  warn(e);
@@ -677,11 +678,11 @@ Tip: Check out other solutions like <Tabs.Content id="unique">Your content, outs
677
678
  return -1;
678
679
  }
679
680
 
680
- getLastUsedTab() {
681
+ hasLastUsedTab() {
681
682
  if (typeof window !== 'undefined') {
682
683
  try {
683
- const key = window.localStorage.getItem('tmp-tabs-last') || null;
684
- window.localStorage.removeItem('tmp-tabs-last');
684
+ const key = window.localStorage.getItem(`tabs-last-${this._id}`) || null;
685
+ window.localStorage.removeItem(`tabs-last-${this._id}`);
685
686
  return key;
686
687
  } catch (e) {
687
688
  warn(e);
@@ -694,7 +695,7 @@ Tip: Check out other solutions like <Tabs.Content id="unique">Your content, outs
694
695
  saveLastUsedTab() {
695
696
  if (typeof window !== 'undefined') {
696
697
  try {
697
- window.localStorage.setItem('tmp-tabs-last', this.state.selected_key);
698
+ window.localStorage.setItem(`tabs-last-${this._id}`, this.state.selected_key);
698
699
  } catch (e) {
699
700
  warn(e);
700
701
  }
@@ -704,7 +705,7 @@ Tip: Check out other solutions like <Tabs.Content id="unique">Your content, outs
704
705
  saveLastPosition(pos = this._tablistRef.current.scrollLeft) {
705
706
  if (typeof window !== 'undefined') {
706
707
  try {
707
- window.localStorage.setItem('tmp-tabs-pos', pos);
708
+ window.localStorage.setItem(`tabs-pos-${this._id}`, pos);
708
709
  } catch (e) {
709
710
  warn(e);
710
711
  }
@@ -715,46 +716,27 @@ Tip: Check out other solutions like <Tabs.Content id="unique">Your content, outs
715
716
  return this._tablistRef.current.scrollWidth - 1 > this._tablistRef.current.offsetWidth;
716
717
  }
717
718
 
718
- isAtEdge() {
719
- if (!this._hasScrollbar || typeof window === 'undefined') {
720
- return false;
721
- }
722
-
723
- try {
724
- const padding = parseFloat(window.getComputedStyle(this._tablistRef.current).paddingLeft);
725
- const width = this._tablistRef.current.offsetWidth + 2 + 64 - padding;
726
- const screenWidth = window.innerWidth;
727
- return width >= screenWidth;
728
- } catch (e) {}
729
-
730
- return false;
731
- }
732
-
733
719
  addScrollBehaviour() {
734
- this.onResizeHandler();
735
-
736
720
  if (typeof window !== 'undefined') {
737
721
  window.addEventListener('resize', this.onResizeHandler);
738
722
  }
739
723
  }
740
724
 
741
- scrollToLastPosition() {
742
- try {
743
- this._tablistRef.current.style.scrollBehavior = 'auto';
744
- this._tablistRef.current.scrollLeft = this.state.lastPosition;
745
- this._tablistRef.current.style.scrollBehavior = 'smooth';
746
- } catch (e) {}
747
- }
748
-
749
- scrollToTab(type) {
725
+ scrollToTab({
726
+ type,
727
+ behavior = 'smooth'
728
+ }) {
750
729
  if (typeof window === 'undefined') {
751
730
  return;
752
731
  }
753
732
 
754
- clearTimeout(this._scrollToTabTimeout);
755
- this._scrollToTabTimeout = setTimeout(() => {
733
+ if (window.IS_TEST) {
734
+ behavior = 'auto';
735
+ }
736
+
737
+ const delay = () => {
756
738
  try {
757
- if ((this._hasScrollbar || this.state.hasScrollbar) && this._tablistRef.current) {
739
+ if (this.state.hasScrollbar && this._tablistRef.current) {
758
740
  const first = this._tablistRef.current.querySelector('.dnb-tabs__button__snap:first-of-type');
759
741
 
760
742
  const isFirst = first.classList.contains(type);
@@ -768,21 +750,23 @@ Tip: Check out other solutions like <Tabs.Content id="unique">Your content, outs
768
750
  const style = window.getComputedStyle(this._tabsRef.current);
769
751
  const margin = parseFloat(style.marginLeft);
770
752
  let padding = margin < 0 ? parseFloat(style.paddingLeft) : 0;
753
+ const leftPadding = (margin < 0 ? Math.abs(margin) : 0) + padding + parseFloat(window.getComputedStyle(first).paddingLeft);
754
+ const offsetLeft = elem.offsetLeft;
755
+ const left = elem && !isFirst ? offsetLeft - leftPadding : 0;
771
756
 
772
- if (!isFirst && this.state.atEdge && parseFloat(style.paddingLeft) < 16) {
773
- const navButton = this._tabsRef.current.querySelector('.dnb-tabs__scroll-nav-button:first-of-type');
774
-
775
- padding = parseFloat(window.getComputedStyle(navButton).width);
757
+ if (behavior === 'auto') {
758
+ this._tablistRef.current.style.scrollBehavior = 'auto';
776
759
  }
777
760
 
778
- const leftPadding = (margin < 0 ? Math.abs(margin) : 0) + padding + parseFloat(window.getComputedStyle(first).paddingLeft);
779
- const left = elem && !isFirst ? elem.offsetLeft - leftPadding : 0;
780
-
781
761
  this._tablistRef.current.scrollTo({
782
762
  left,
783
- behavior: window.IS_TEST ? 'auto' : 'smooth'
763
+ behavior
784
764
  });
785
765
 
766
+ if (behavior === 'auto') {
767
+ this._tablistRef.current.style.scrollBehavior = '';
768
+ }
769
+
786
770
  this.setState({
787
771
  isFirst,
788
772
  isLast
@@ -791,7 +775,13 @@ Tip: Check out other solutions like <Tabs.Content id="unique">Your content, outs
791
775
  } catch (e) {
792
776
  warn(e);
793
777
  }
794
- }, window.IS_TEST ? 0 : 100);
778
+ };
779
+
780
+ if (window.IS_TEST) {
781
+ delay();
782
+ } else {
783
+ window.requestAnimationFrame(delay);
784
+ }
795
785
  }
796
786
 
797
787
  getStepKey(useKey, stateKey) {
@@ -824,6 +814,10 @@ Tip: Check out other solutions like <Tabs.Content id="unique">Your content, outs
824
814
  whatInput.specificKeys([9]);
825
815
  }
826
816
 
817
+ warnAboutMissingContainer() {
818
+ warn(`Could not find the required <Tabs.Content id="${this._id}-content" ... /> that provides role="tabpanel"`);
819
+ }
820
+
827
821
  getEventArgs(args) {
828
822
  const {
829
823
  selected_key,
@@ -950,6 +944,7 @@ _defineProperty(Tabs, "defaultProps", {
950
944
  tabs_style: null,
951
945
  tabs_spacing: null,
952
946
  no_border: false,
947
+ nav_button_edge: false,
953
948
  use_hash: false,
954
949
  prerender: false,
955
950
  prevent_rerender: false,
@@ -991,6 +986,7 @@ process.env.NODE_ENV !== "production" ? Tabs.propTypes = _objectSpread(_objectSp
991
986
  tabs_style: PropTypes.string,
992
987
  tabs_spacing: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
993
988
  no_border: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
989
+ nav_button_edge: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
994
990
  use_hash: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
995
991
  prerender: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
996
992
  prevent_rerender: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),