@dnb/eufemia 10.0.0-beta.6 → 10.0.0-beta.8

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 (372) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/cjs/components/accordion/Accordion.d.ts +2 -1
  3. package/cjs/components/anchor/Anchor.d.ts +5 -1
  4. package/cjs/components/anchor/Anchor.js +53 -4
  5. package/cjs/components/anchor/style/anchor-mixins.scss +8 -4
  6. package/cjs/components/anchor/style/dnb-anchor.css +8 -9
  7. package/cjs/components/anchor/style/dnb-anchor.min.css +1 -1
  8. package/cjs/components/anchor/style/dnb-anchor.scss +2 -1
  9. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +63 -1
  10. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  11. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +88 -26
  12. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.css +4 -4
  13. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  14. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.scss +4 -4
  15. package/cjs/components/autocomplete/Autocomplete.d.ts +3 -2
  16. package/cjs/components/autocomplete/Autocomplete.js +8 -5
  17. package/cjs/components/button/Button.d.ts +5 -3
  18. package/cjs/components/button/Button.js +8 -5
  19. package/cjs/components/button/style/dnb-button--tertiary.css +16 -7
  20. package/cjs/components/button/style/dnb-button--tertiary.min.css +1 -1
  21. package/cjs/components/button/style/dnb-button--tertiary.scss +28 -18
  22. package/cjs/components/button/style/dnb-button.css +1 -3
  23. package/cjs/components/button/style/dnb-button.min.css +1 -1
  24. package/cjs/components/button/style/dnb-button.scss +0 -1
  25. package/cjs/components/button/style/themes/button-mixins.scss +4 -4
  26. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.css +16 -7
  27. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.min.css +1 -1
  28. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.css +38 -7
  29. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.min.css +1 -1
  30. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.scss +6 -0
  31. package/cjs/components/button/style/themes/dnb-button-theme-ui.css +16 -7
  32. package/cjs/components/button/style/themes/dnb-button-theme-ui.min.css +1 -1
  33. package/cjs/components/checkbox/Checkbox.d.ts +3 -2
  34. package/cjs/components/checkbox/Checkbox.js +8 -5
  35. package/cjs/components/date-picker/DatePicker.d.ts +3 -2
  36. package/cjs/components/date-picker/DatePicker.js +9 -5
  37. package/cjs/components/dialog/style/dnb-dialog.css +3 -3
  38. package/cjs/components/dialog/style/dnb-dialog.min.css +1 -1
  39. package/cjs/components/dialog/style/dnb-dialog.scss +2 -4
  40. package/cjs/components/dropdown/Dropdown.d.ts +3 -2
  41. package/cjs/components/dropdown/Dropdown.js +8 -5
  42. package/cjs/components/form-row/FormRow.d.ts +2 -1
  43. package/cjs/components/form-row/FormRow.js +8 -5
  44. package/cjs/components/form-set/FormSet.d.ts +2 -1
  45. package/cjs/components/form-status/FormStatus.d.ts +6 -6
  46. package/cjs/components/form-status/FormStatus.js +13 -7
  47. package/cjs/components/global-status/GlobalStatus.d.ts +8 -0
  48. package/cjs/components/help-button/HelpButton.d.ts +1 -3
  49. package/cjs/components/help-button/HelpButton.js +9 -17
  50. package/cjs/components/icon/style/dnb-icon.css +7 -3
  51. package/cjs/components/icon/style/dnb-icon.min.css +1 -1
  52. package/cjs/components/icon/style/dnb-icon.scss +16 -10
  53. package/cjs/components/input/Input.d.ts +11 -5
  54. package/cjs/components/input/Input.js +8 -5
  55. package/cjs/components/input-masked/InputMasked.d.ts +3 -2
  56. package/cjs/components/input-masked/InputMaskedUtils.js +7 -3
  57. package/cjs/components/lib.d.ts +1 -1
  58. package/cjs/components/modal/Modal.js +21 -7
  59. package/cjs/components/modal/ModalContent.js +2 -2
  60. package/cjs/components/number-format/NumberUtils.js +5 -4
  61. package/cjs/components/progress-indicator/ProgressIndicator.d.ts +1 -1
  62. package/cjs/components/progress-indicator/ProgressIndicatorCircular.d.ts +1 -1
  63. package/cjs/components/progress-indicator/ProgressIndicatorLinear.d.ts +1 -1
  64. package/cjs/components/radio/Radio.d.ts +4 -3
  65. package/cjs/components/radio/Radio.js +8 -5
  66. package/cjs/components/radio/RadioGroup.d.ts +4 -3
  67. package/cjs/components/radio/RadioGroup.js +8 -5
  68. package/cjs/components/slider/SliderInstance.js +2 -3
  69. package/cjs/components/slider/SliderProvider.js +2 -2
  70. package/cjs/components/slider/types.d.ts +2 -1
  71. package/cjs/components/switch/Switch.d.ts +3 -2
  72. package/cjs/components/switch/Switch.js +8 -5
  73. package/cjs/components/textarea/Textarea.d.ts +3 -2
  74. package/cjs/components/textarea/Textarea.js +8 -5
  75. package/cjs/components/timeline/TimelineItem.d.ts +2 -2
  76. package/cjs/components/toggle-button/ToggleButton.d.ts +4 -3
  77. package/cjs/components/toggle-button/ToggleButton.js +8 -5
  78. package/cjs/components/toggle-button/ToggleButtonGroup.d.ts +3 -2
  79. package/cjs/components/toggle-button/ToggleButtonGroup.js +8 -5
  80. package/cjs/components/tooltip/TooltipWithEvents.d.ts +2 -2
  81. package/cjs/components/tooltip/TooltipWithEvents.js +6 -1
  82. package/cjs/components/visually-hidden/style/dnb-visually-hidden.css +14 -14
  83. package/cjs/components/visually-hidden/style/dnb-visually-hidden.min.css +1 -1
  84. package/cjs/elements/Link.d.ts +1 -1
  85. package/cjs/elements/lib.d.ts +1 -1
  86. package/cjs/elements/typography/style/themes/dnb-typography-theme-sbanken.scss +16 -0
  87. package/cjs/elements/typography/style/themes/dnb-typography-theme-ui.scss +4 -23
  88. package/cjs/elements/typography/style/typography-mixins.scss +33 -0
  89. package/cjs/shared/Eufemia.d.ts +1 -0
  90. package/cjs/shared/Eufemia.js +4 -1
  91. package/cjs/shared/Theme.d.ts +6 -2
  92. package/cjs/shared/Theme.js +11 -5
  93. package/cjs/shared/VisibilityByTheme.js +10 -1
  94. package/cjs/style/core/scopes.scss +1 -1
  95. package/cjs/style/core/utilities.scss +17 -13
  96. package/cjs/style/dnb-ui-basis.css +16 -16
  97. package/cjs/style/dnb-ui-basis.min.css +1 -1
  98. package/cjs/style/dnb-ui-body.css +2 -2
  99. package/cjs/style/dnb-ui-body.min.css +1 -1
  100. package/cjs/style/dnb-ui-components.css +33 -32
  101. package/cjs/style/dnb-ui-components.min.css +1 -1
  102. package/cjs/style/dnb-ui-core.css +16 -16
  103. package/cjs/style/dnb-ui-core.min.css +1 -1
  104. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +5 -0
  105. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +69 -50
  106. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  107. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +5 -0
  108. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +39 -30
  109. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  110. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.scss +4 -0
  111. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +133 -40
  112. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  113. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +36 -31
  114. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  115. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.scss +1 -1
  116. package/cjs/style/themes/theme-ui/ui-theme-basis.css +5 -0
  117. package/cjs/style/themes/theme-ui/ui-theme-components.css +53 -43
  118. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  119. package/cjs/style/themes/theme-ui/ui-theme-elements.css +5 -0
  120. package/cjs/style/themes/theme-ui/ui-theme-tags.css +3 -3
  121. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  122. package/components/accordion/Accordion.d.ts +2 -1
  123. package/components/anchor/Anchor.d.ts +5 -1
  124. package/components/anchor/Anchor.js +49 -4
  125. package/components/anchor/style/anchor-mixins.scss +8 -4
  126. package/components/anchor/style/dnb-anchor.css +8 -9
  127. package/components/anchor/style/dnb-anchor.min.css +1 -1
  128. package/components/anchor/style/dnb-anchor.scss +2 -1
  129. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +63 -1
  130. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  131. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +88 -26
  132. package/components/anchor/style/themes/dnb-anchor-theme-ui.css +4 -4
  133. package/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  134. package/components/anchor/style/themes/dnb-anchor-theme-ui.scss +4 -4
  135. package/components/autocomplete/Autocomplete.d.ts +3 -2
  136. package/components/autocomplete/Autocomplete.js +8 -5
  137. package/components/button/Button.d.ts +5 -3
  138. package/components/button/Button.js +8 -5
  139. package/components/button/style/dnb-button--tertiary.css +16 -7
  140. package/components/button/style/dnb-button--tertiary.min.css +1 -1
  141. package/components/button/style/dnb-button--tertiary.scss +28 -18
  142. package/components/button/style/dnb-button.css +1 -3
  143. package/components/button/style/dnb-button.min.css +1 -1
  144. package/components/button/style/dnb-button.scss +0 -1
  145. package/components/button/style/themes/button-mixins.scss +4 -4
  146. package/components/button/style/themes/dnb-button-theme-eiendom.css +16 -7
  147. package/components/button/style/themes/dnb-button-theme-eiendom.min.css +1 -1
  148. package/components/button/style/themes/dnb-button-theme-sbanken.css +38 -7
  149. package/components/button/style/themes/dnb-button-theme-sbanken.min.css +1 -1
  150. package/components/button/style/themes/dnb-button-theme-sbanken.scss +6 -0
  151. package/components/button/style/themes/dnb-button-theme-ui.css +16 -7
  152. package/components/button/style/themes/dnb-button-theme-ui.min.css +1 -1
  153. package/components/checkbox/Checkbox.d.ts +3 -2
  154. package/components/checkbox/Checkbox.js +8 -5
  155. package/components/date-picker/DatePicker.d.ts +3 -2
  156. package/components/date-picker/DatePicker.js +9 -5
  157. package/components/dialog/style/dnb-dialog.css +3 -3
  158. package/components/dialog/style/dnb-dialog.min.css +1 -1
  159. package/components/dialog/style/dnb-dialog.scss +2 -4
  160. package/components/dropdown/Dropdown.d.ts +3 -2
  161. package/components/dropdown/Dropdown.js +8 -5
  162. package/components/form-row/FormRow.d.ts +2 -1
  163. package/components/form-row/FormRow.js +8 -5
  164. package/components/form-set/FormSet.d.ts +2 -1
  165. package/components/form-status/FormStatus.d.ts +6 -6
  166. package/components/form-status/FormStatus.js +13 -7
  167. package/components/global-status/GlobalStatus.d.ts +8 -0
  168. package/components/help-button/HelpButton.d.ts +1 -3
  169. package/components/help-button/HelpButton.js +9 -16
  170. package/components/icon/style/dnb-icon.css +7 -3
  171. package/components/icon/style/dnb-icon.min.css +1 -1
  172. package/components/icon/style/dnb-icon.scss +16 -10
  173. package/components/input/Input.d.ts +11 -5
  174. package/components/input/Input.js +8 -5
  175. package/components/input-masked/InputMasked.d.ts +3 -2
  176. package/components/input-masked/InputMaskedUtils.js +7 -3
  177. package/components/lib.d.ts +1 -1
  178. package/components/modal/Modal.js +21 -7
  179. package/components/modal/ModalContent.js +2 -2
  180. package/components/number-format/NumberUtils.js +5 -4
  181. package/components/progress-indicator/ProgressIndicator.d.ts +1 -1
  182. package/components/progress-indicator/ProgressIndicatorCircular.d.ts +1 -1
  183. package/components/progress-indicator/ProgressIndicatorLinear.d.ts +1 -1
  184. package/components/radio/Radio.d.ts +4 -3
  185. package/components/radio/Radio.js +8 -5
  186. package/components/radio/RadioGroup.d.ts +4 -3
  187. package/components/radio/RadioGroup.js +8 -5
  188. package/components/slider/SliderInstance.js +2 -3
  189. package/components/slider/SliderProvider.js +2 -2
  190. package/components/slider/types.d.ts +2 -1
  191. package/components/switch/Switch.d.ts +3 -2
  192. package/components/switch/Switch.js +8 -5
  193. package/components/textarea/Textarea.d.ts +3 -2
  194. package/components/textarea/Textarea.js +8 -5
  195. package/components/timeline/TimelineItem.d.ts +2 -2
  196. package/components/toggle-button/ToggleButton.d.ts +4 -3
  197. package/components/toggle-button/ToggleButton.js +8 -5
  198. package/components/toggle-button/ToggleButtonGroup.d.ts +3 -2
  199. package/components/toggle-button/ToggleButtonGroup.js +8 -5
  200. package/components/tooltip/TooltipWithEvents.d.ts +2 -2
  201. package/components/tooltip/TooltipWithEvents.js +6 -1
  202. package/components/visually-hidden/style/dnb-visually-hidden.css +14 -14
  203. package/components/visually-hidden/style/dnb-visually-hidden.min.css +1 -1
  204. package/elements/Link.d.ts +1 -1
  205. package/elements/lib.d.ts +1 -1
  206. package/elements/typography/style/themes/dnb-typography-theme-sbanken.scss +16 -0
  207. package/elements/typography/style/themes/dnb-typography-theme-ui.scss +4 -23
  208. package/elements/typography/style/typography-mixins.scss +33 -0
  209. package/es/components/accordion/Accordion.d.ts +2 -1
  210. package/es/components/anchor/Anchor.d.ts +5 -1
  211. package/es/components/anchor/Anchor.js +49 -4
  212. package/es/components/anchor/style/anchor-mixins.scss +8 -4
  213. package/es/components/anchor/style/dnb-anchor.css +8 -9
  214. package/es/components/anchor/style/dnb-anchor.min.css +1 -1
  215. package/es/components/anchor/style/dnb-anchor.scss +2 -1
  216. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +63 -1
  217. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  218. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +88 -26
  219. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.css +4 -4
  220. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  221. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.scss +4 -4
  222. package/es/components/autocomplete/Autocomplete.d.ts +3 -2
  223. package/es/components/autocomplete/Autocomplete.js +8 -5
  224. package/es/components/button/Button.d.ts +5 -3
  225. package/es/components/button/Button.js +8 -5
  226. package/es/components/button/style/dnb-button--tertiary.css +16 -7
  227. package/es/components/button/style/dnb-button--tertiary.min.css +1 -1
  228. package/es/components/button/style/dnb-button--tertiary.scss +28 -18
  229. package/es/components/button/style/dnb-button.css +1 -3
  230. package/es/components/button/style/dnb-button.min.css +1 -1
  231. package/es/components/button/style/dnb-button.scss +0 -1
  232. package/es/components/button/style/themes/button-mixins.scss +4 -4
  233. package/es/components/button/style/themes/dnb-button-theme-eiendom.css +16 -7
  234. package/es/components/button/style/themes/dnb-button-theme-eiendom.min.css +1 -1
  235. package/es/components/button/style/themes/dnb-button-theme-sbanken.css +38 -7
  236. package/es/components/button/style/themes/dnb-button-theme-sbanken.min.css +1 -1
  237. package/es/components/button/style/themes/dnb-button-theme-sbanken.scss +6 -0
  238. package/es/components/button/style/themes/dnb-button-theme-ui.css +16 -7
  239. package/es/components/button/style/themes/dnb-button-theme-ui.min.css +1 -1
  240. package/es/components/checkbox/Checkbox.d.ts +3 -2
  241. package/es/components/checkbox/Checkbox.js +8 -5
  242. package/es/components/date-picker/DatePicker.d.ts +3 -2
  243. package/es/components/date-picker/DatePicker.js +9 -5
  244. package/es/components/dialog/style/dnb-dialog.css +3 -3
  245. package/es/components/dialog/style/dnb-dialog.min.css +1 -1
  246. package/es/components/dialog/style/dnb-dialog.scss +2 -4
  247. package/es/components/dropdown/Dropdown.d.ts +3 -2
  248. package/es/components/dropdown/Dropdown.js +8 -5
  249. package/es/components/form-row/FormRow.d.ts +2 -1
  250. package/es/components/form-row/FormRow.js +8 -5
  251. package/es/components/form-set/FormSet.d.ts +2 -1
  252. package/es/components/form-status/FormStatus.d.ts +6 -6
  253. package/es/components/form-status/FormStatus.js +13 -7
  254. package/es/components/global-status/GlobalStatus.d.ts +8 -0
  255. package/es/components/help-button/HelpButton.d.ts +1 -3
  256. package/es/components/help-button/HelpButton.js +9 -16
  257. package/es/components/icon/style/dnb-icon.css +7 -3
  258. package/es/components/icon/style/dnb-icon.min.css +1 -1
  259. package/es/components/icon/style/dnb-icon.scss +16 -10
  260. package/es/components/input/Input.d.ts +11 -5
  261. package/es/components/input/Input.js +8 -5
  262. package/es/components/input-masked/InputMasked.d.ts +3 -2
  263. package/es/components/input-masked/InputMaskedUtils.js +7 -3
  264. package/es/components/lib.d.ts +1 -1
  265. package/es/components/modal/Modal.js +21 -7
  266. package/es/components/modal/ModalContent.js +2 -2
  267. package/es/components/number-format/NumberUtils.js +5 -4
  268. package/es/components/progress-indicator/ProgressIndicator.d.ts +1 -1
  269. package/es/components/progress-indicator/ProgressIndicatorCircular.d.ts +1 -1
  270. package/es/components/progress-indicator/ProgressIndicatorLinear.d.ts +1 -1
  271. package/es/components/radio/Radio.d.ts +4 -3
  272. package/es/components/radio/Radio.js +8 -5
  273. package/es/components/radio/RadioGroup.d.ts +4 -3
  274. package/es/components/radio/RadioGroup.js +8 -5
  275. package/es/components/slider/SliderInstance.js +2 -3
  276. package/es/components/slider/SliderProvider.js +2 -2
  277. package/es/components/slider/types.d.ts +2 -1
  278. package/es/components/switch/Switch.d.ts +3 -2
  279. package/es/components/switch/Switch.js +8 -5
  280. package/es/components/textarea/Textarea.d.ts +3 -2
  281. package/es/components/textarea/Textarea.js +8 -5
  282. package/es/components/timeline/TimelineItem.d.ts +2 -2
  283. package/es/components/toggle-button/ToggleButton.d.ts +4 -3
  284. package/es/components/toggle-button/ToggleButton.js +8 -5
  285. package/es/components/toggle-button/ToggleButtonGroup.d.ts +3 -2
  286. package/es/components/toggle-button/ToggleButtonGroup.js +8 -5
  287. package/es/components/tooltip/TooltipWithEvents.d.ts +2 -2
  288. package/es/components/tooltip/TooltipWithEvents.js +6 -1
  289. package/es/components/visually-hidden/style/dnb-visually-hidden.css +14 -14
  290. package/es/components/visually-hidden/style/dnb-visually-hidden.min.css +1 -1
  291. package/es/elements/Link.d.ts +1 -1
  292. package/es/elements/lib.d.ts +1 -1
  293. package/es/elements/typography/style/themes/dnb-typography-theme-sbanken.scss +16 -0
  294. package/es/elements/typography/style/themes/dnb-typography-theme-ui.scss +4 -23
  295. package/es/elements/typography/style/typography-mixins.scss +33 -0
  296. package/es/shared/Eufemia.d.ts +1 -0
  297. package/es/shared/Eufemia.js +2 -1
  298. package/es/shared/Theme.d.ts +6 -2
  299. package/es/shared/Theme.js +11 -5
  300. package/es/shared/VisibilityByTheme.js +6 -1
  301. package/es/style/core/scopes.scss +1 -1
  302. package/es/style/core/utilities.scss +17 -13
  303. package/es/style/dnb-ui-basis.css +16 -16
  304. package/es/style/dnb-ui-basis.min.css +1 -1
  305. package/es/style/dnb-ui-body.css +2 -2
  306. package/es/style/dnb-ui-body.min.css +1 -1
  307. package/es/style/dnb-ui-components.css +33 -32
  308. package/es/style/dnb-ui-components.min.css +1 -1
  309. package/es/style/dnb-ui-core.css +16 -16
  310. package/es/style/dnb-ui-core.min.css +1 -1
  311. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +5 -0
  312. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +69 -50
  313. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  314. package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +5 -0
  315. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +39 -30
  316. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  317. package/es/style/themes/theme-sbanken/sbanken-theme-basis.scss +4 -0
  318. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +133 -40
  319. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  320. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +36 -31
  321. package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  322. package/es/style/themes/theme-sbanken/sbanken-theme-elements.scss +1 -1
  323. package/es/style/themes/theme-ui/ui-theme-basis.css +5 -0
  324. package/es/style/themes/theme-ui/ui-theme-components.css +53 -43
  325. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  326. package/es/style/themes/theme-ui/ui-theme-elements.css +5 -0
  327. package/es/style/themes/theme-ui/ui-theme-tags.css +3 -3
  328. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  329. package/esm/dnb-ui-basis.min.mjs +1 -1
  330. package/esm/dnb-ui-components.min.mjs +1 -1
  331. package/esm/dnb-ui-elements.min.mjs +1 -1
  332. package/esm/dnb-ui-extensions.min.mjs +1 -1
  333. package/esm/dnb-ui-lib.min.mjs +1 -1
  334. package/package.json +1 -1
  335. package/shared/Eufemia.d.ts +1 -0
  336. package/shared/Eufemia.js +2 -1
  337. package/shared/Theme.d.ts +6 -2
  338. package/shared/Theme.js +11 -5
  339. package/shared/VisibilityByTheme.js +6 -1
  340. package/style/core/scopes.scss +1 -1
  341. package/style/core/utilities.scss +17 -13
  342. package/style/dnb-ui-basis.css +16 -16
  343. package/style/dnb-ui-basis.min.css +1 -1
  344. package/style/dnb-ui-body.css +2 -2
  345. package/style/dnb-ui-body.min.css +1 -1
  346. package/style/dnb-ui-components.css +33 -32
  347. package/style/dnb-ui-components.min.css +1 -1
  348. package/style/dnb-ui-core.css +16 -16
  349. package/style/dnb-ui-core.min.css +1 -1
  350. package/style/themes/theme-eiendom/eiendom-theme-basis.css +5 -0
  351. package/style/themes/theme-eiendom/eiendom-theme-components.css +69 -50
  352. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  353. package/style/themes/theme-eiendom/eiendom-theme-elements.css +5 -0
  354. package/style/themes/theme-sbanken/sbanken-theme-basis.css +39 -30
  355. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  356. package/style/themes/theme-sbanken/sbanken-theme-basis.scss +4 -0
  357. package/style/themes/theme-sbanken/sbanken-theme-components.css +133 -40
  358. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  359. package/style/themes/theme-sbanken/sbanken-theme-elements.css +36 -31
  360. package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  361. package/style/themes/theme-sbanken/sbanken-theme-elements.scss +1 -1
  362. package/style/themes/theme-ui/ui-theme-basis.css +5 -0
  363. package/style/themes/theme-ui/ui-theme-components.css +53 -43
  364. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  365. package/style/themes/theme-ui/ui-theme-elements.css +5 -0
  366. package/style/themes/theme-ui/ui-theme-tags.css +3 -3
  367. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  368. package/umd/dnb-ui-basis.min.js +1 -1
  369. package/umd/dnb-ui-components.min.js +1 -1
  370. package/umd/dnb-ui-elements.min.js +1 -1
  371. package/umd/dnb-ui-extensions.min.js +1 -1
  372. package/umd/dnb-ui-lib.min.js +1 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,69 @@
3
3
  All notable changes to @dnb/eufemia will be documented in this file. See
4
4
  [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [10.0.0-beta.8](https://github.com/dnbexperience/eufemia/compare/v10.0.0-beta.7...v10.0.0-beta.8) (2023-05-26)
7
+
8
+
9
+ ### :barber: Style Changes
10
+
11
+ * **Button:** smaller tertiary button focus effect for Sbanken ([#2319](https://github.com/dnbexperience/eufemia/issues/2319)) ([0652d0d](https://github.com/dnbexperience/eufemia/commit/0652d0d13a13739a176e82618a144cbe641f977a))
12
+
13
+
14
+ ### :sparkles: Features
15
+
16
+ * **Anchor:** add `scrollToHash` feature ([#2290](https://github.com/dnbexperience/eufemia/issues/2290)) ([d9a692e](https://github.com/dnbexperience/eufemia/commit/d9a692ecd0565832928ee1668bab04873a668e8f)), closes [#2286](https://github.com/dnbexperience/eufemia/issues/2286)
17
+ * **Anchor:** always show focus when `dnb-anchor--focus` is used ([#2364](https://github.com/dnbexperience/eufemia/issues/2364)) ([cdd75b2](https://github.com/dnbexperience/eufemia/commit/cdd75b28c107d154c6d5a879eee081329ab263a3))
18
+ * **Anchor:** remove horizontal padding ([#2365](https://github.com/dnbexperience/eufemia/issues/2365)) ([05d75a6](https://github.com/dnbexperience/eufemia/commit/05d75a65ce9412d38d7a50073b1c88191b46b915))
19
+ * **Anchor:** Sbanken styling, added icon props ([#2318](https://github.com/dnbexperience/eufemia/issues/2318)) ([c8e63a1](https://github.com/dnbexperience/eufemia/commit/c8e63a18a660a750bcf6fec938ad979c0f46ada1))
20
+ * expose package version ([#2327](https://github.com/dnbexperience/eufemia/issues/2327)) ([b63b7cd](https://github.com/dnbexperience/eufemia/commit/b63b7cdd643b1dd949373632bcfc06ea221f9ef9))
21
+ * **GlobalStatus:** add possibility for a custom message (replace `global_status_id` with `globalStatus` prop) ([#2351](https://github.com/dnbexperience/eufemia/issues/2351)) ([a6f59d8](https://github.com/dnbexperience/eufemia/commit/a6f59d8b92cebcc62548aead5ab5ba0a72c81b98))
22
+ * **HelpButton:** remove `modal_props` in favour of `render` ([#2333](https://github.com/dnbexperience/eufemia/issues/2333)) ([6cb1767](https://github.com/dnbexperience/eufemia/commit/6cb1767623729c743c506a0858a83886ecc3ce21))
23
+ * **Theme:** add `darkMode` and `contrastMode` props ([#2355](https://github.com/dnbexperience/eufemia/issues/2355)) ([712441b](https://github.com/dnbexperience/eufemia/commit/712441b979c63b450693f47ed94c037f0dfc0973))
24
+ * **Typography:** Use text color on typography for Sbanken ([#2363](https://github.com/dnbexperience/eufemia/issues/2363)) ([eb2763b](https://github.com/dnbexperience/eufemia/commit/eb2763bf83ba9d6504e37508d9e80ccf02eedac7))
25
+
26
+
27
+ ### :memo: Documentation
28
+
29
+ * Add Sbanken color table and -documentation ([#2332](https://github.com/dnbexperience/eufemia/issues/2332)) ([6523643](https://github.com/dnbexperience/eufemia/commit/6523643d0074a9567dce99e4ef7f08df3393800b))
30
+ * **Breadcrumb:** improve event docs ([76f2294](https://github.com/dnbexperience/eufemia/commit/76f2294efe1cd4c48ecc843ca592c92162abdbe0))
31
+ * **Grid:** removes WIP ([42b7d8d](https://github.com/dnbexperience/eufemia/commit/42b7d8dd498819eb00a3d77b9d463049c26be3e2))
32
+ * **PaymentCard:** change imports of types to /payment-card ([e6588dc](https://github.com/dnbexperience/eufemia/commit/e6588dc84403ad6dbdd819bbb5fcd3b3ae1e3caa))
33
+ * **ProgressIndicator:** Update size properties ([a216855](https://github.com/dnbexperience/eufemia/commit/a2168553f7e94f156ec26274185eb153d4cc2502))
34
+ * **ProgressIndicator:** Update size properties ([4df05eb](https://github.com/dnbexperience/eufemia/commit/4df05ebb5341f6ffa315095b58d3f620442984ce))
35
+ * **Radio:** improve event docs ([f277b13](https://github.com/dnbexperience/eufemia/commit/f277b1363e39619cd402b2c666c953719d4bc777))
36
+ * **Table:** enhance info about the component and possibilities ([#2336](https://github.com/dnbexperience/eufemia/issues/2336)) ([9963029](https://github.com/dnbexperience/eufemia/commit/9963029ab7f0d9faf525a5a6df40c0840d9d83ba))
37
+ * **Table:** improve event docs ([4bd22b7](https://github.com/dnbexperience/eufemia/commit/4bd22b7847ec24c6d46e6c52bace18528f86fea5))
38
+ * **Tag:** improve event docs ([389ddd0](https://github.com/dnbexperience/eufemia/commit/389ddd0e1b41d15fc9f4667d9021c16ebdd39462))
39
+ * **ToggleButton:** improve event docs ([aaf811c](https://github.com/dnbexperience/eufemia/commit/aaf811c526ad840fc58816ef41a8d62caa39c46a))
40
+ * **v10:** adds examples for updating imports to assets and fonts ([d3d91b3](https://github.com/dnbexperience/eufemia/commit/d3d91b33540d6d803629e3da6cf3c2af0125f0d0))
41
+ * **v10:** where -> was ([9acc294](https://github.com/dnbexperience/eufemia/commit/9acc29462a8b5c13ab9cb5cb7439bac1d3ee1e28))
42
+
43
+
44
+ ### :bug: Bug Fixes
45
+
46
+ * **Button:** fix icon alignment issue when left positioned ([#2371](https://github.com/dnbexperience/eufemia/issues/2371)) ([bbb1ec8](https://github.com/dnbexperience/eufemia/commit/bbb1ec8d4bd4b1fef0af89a1cfa0081e6b80561d))
47
+ * **Dialog:** make action buttons responsive ([#2373](https://github.com/dnbexperience/eufemia/issues/2373)) ([be41c14](https://github.com/dnbexperience/eufemia/commit/be41c14b2191ca754d69c85cd4196f9402185e00))
48
+ * **Icon:** enhance alignment when used in paragraphs ([#2368](https://github.com/dnbexperience/eufemia/issues/2368)) ([69699f7](https://github.com/dnbexperience/eufemia/commit/69699f7efcbdefc80e78becf4c2b5c908d3eb362))
49
+ * **InputMasked:** duplicate decimal number when typing ([#2344](https://github.com/dnbexperience/eufemia/issues/2344)) ([0d66dc0](https://github.com/dnbexperience/eufemia/commit/0d66dc06a9dab2eb9d91f93948337dff78f9346b))
50
+ * **InputMasked:** fix integerLimit issue when combined with decimals ([#2338](https://github.com/dnbexperience/eufemia/issues/2338)) ([6df4b31](https://github.com/dnbexperience/eufemia/commit/6df4b31f8ae7a4ec4d18f03a0df17eebe55cb631))
51
+ * **InputMasked:** on custom mask – avoid interaction stall after focus ([#2270](https://github.com/dnbexperience/eufemia/issues/2270)) ([2201ea9](https://github.com/dnbexperience/eufemia/commit/2201ea9e2e764e8ff7a98d591d2916fd3cb37814))
52
+ * **NumberFormat:** fix tooltip theme inheritance ([#2354](https://github.com/dnbexperience/eufemia/issues/2354)) ([502c847](https://github.com/dnbexperience/eufemia/commit/502c847e1fba8bbbf2a55f03b299b97cf13b241d))
53
+ * omit showing Tooltip after Dialog or Drawer got closed ([#2375](https://github.com/dnbexperience/eufemia/issues/2375)) ([583fb8d](https://github.com/dnbexperience/eufemia/commit/583fb8d19d6c86ce2a080490bd10066c17621539))
54
+ * **VisuallyHidden:** force properties to overcome unwanted CSS specificity ([#2366](https://github.com/dnbexperience/eufemia/issues/2366)) ([64a3c6f](https://github.com/dnbexperience/eufemia/commit/64a3c6f2ff8fb4482acc402875b97649a954f279))
55
+
56
+ ## [10.0.0-beta.7](https://github.com/dnbexperience/eufemia/compare/v10.0.0-beta.6...v10.0.0-beta.7) (2023-05-10)
57
+
58
+
59
+ ### :sparkles: Features
60
+
61
+ * **Accordion:** export type AccordionIconPosition ([23056cd](https://github.com/dnbexperience/eufemia/commit/23056cdd4f27b8f6ba74a43ad11c346f9ee50369))
62
+ * **Button:** export type ButtonIcon ([ad315bf](https://github.com/dnbexperience/eufemia/commit/ad315bf62ce89dfb02af1a62484c1f5ff593672a))
63
+
64
+
65
+ ### :memo: Documentation
66
+
67
+ * **v10:** adds examples for updating import of boolean props ([b598078](https://github.com/dnbexperience/eufemia/commit/b59807882164ca6136a57237c53d231d8ac11684))
68
+
6
69
  ## [10.0.0-beta.6](https://github.com/dnbexperience/eufemia/compare/v10.0.0-beta.5...v10.0.0-beta.6) (2023-05-10)
7
70
 
8
71
 
@@ -21,6 +21,7 @@ export type AccordionIcon =
21
21
  expanded?: React.ReactNode | ((...args: any[]) => any);
22
22
  };
23
23
  export type AccordionAttributes = string | Record<string, unknown>;
24
+ export type AccordionIconPosition = ButtonIconPosition;
24
25
  export interface AccordionProps
25
26
  extends Omit<React.HTMLProps<HTMLElement>, 'ref'>,
26
27
  SpacingProps {
@@ -129,7 +130,7 @@ export interface AccordionProps
129
130
  /**
130
131
  * Will set the placement of the icon. Defaults to `left`.
131
132
  */
132
- icon_position?: ButtonIconPosition;
133
+ icon_position?: AccordionIconPosition;
133
134
 
134
135
  /**
135
136
  * Define a different icon size. Defaults to `medium` (1.5rem).
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import React from 'react';
6
6
  import { ElementIsType } from '../../elements/Element';
7
+ import type { IconIcon } from '../icon/Icon';
7
8
  import type { SkeletonShow } from '../skeleton/Skeleton';
8
9
  import type { SpacingProps } from '../../shared/types';
9
10
  export declare type AnchorProps = {
@@ -13,6 +14,8 @@ export declare type AnchorProps = {
13
14
  targetBlankTitle?: string;
14
15
  target?: string;
15
16
  tooltip?: React.ReactNode;
17
+ icon?: IconIcon;
18
+ iconPosition?: 'left' | 'right';
16
19
  skeleton?: SkeletonShow;
17
20
  omitClass?: boolean;
18
21
  innerRef?: React.RefObject<HTMLAnchorElement>;
@@ -23,5 +26,6 @@ export declare type AnchorAllProps = AnchorProps & React.HTMLProps<HTMLAnchorEle
23
26
  export declare function AnchorInstance(localProps: AnchorAllProps): JSX.Element;
24
27
  declare const Anchor: React.ForwardRefExoticComponent<Pick<AnchorProps & React.HTMLProps<HTMLAnchorElement> & import("../space/types").SpacingElementProps & {
25
28
  space?: import("../space/types").SpaceType | import("../space/types").SpacingElementProps;
26
- }, "aria-hidden" | "cite" | "data" | "dir" | "form" | "label" | "slot" | "span" | "style" | "summary" | "title" | "pattern" | "accessKey" | "key" | "value" | "space" | "top" | "right" | "bottom" | "left" | "children" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "className" | "contentEditable" | "contextMenu" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "innerRef" | "list" | "tooltip" | "step" | "shape" | "skeleton" | "as" | "accept" | "acceptCharset" | "action" | "allowFullScreen" | "allowTransparency" | "alt" | "async" | "autoComplete" | "autoFocus" | "autoPlay" | "capture" | "cellPadding" | "cellSpacing" | "charSet" | "challenge" | "checked" | "classID" | "cols" | "colSpan" | "content" | "controls" | "coords" | "crossOrigin" | "dateTime" | "default" | "defer" | "disabled" | "download" | "encType" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "frameBorder" | "headers" | "height" | "high" | "href" | "hrefLang" | "htmlFor" | "httpEquiv" | "integrity" | "keyParams" | "keyType" | "kind" | "loop" | "low" | "manifest" | "marginHeight" | "marginWidth" | "max" | "maxLength" | "media" | "mediaGroup" | "method" | "min" | "minLength" | "multiple" | "muted" | "name" | "nonce" | "noValidate" | "open" | "optimum" | "playsInline" | "poster" | "preload" | "readOnly" | "rel" | "required" | "reversed" | "rows" | "rowSpan" | "sandbox" | "scope" | "scoped" | "scrolling" | "seamless" | "selected" | "size" | "sizes" | "src" | "srcDoc" | "srcLang" | "srcSet" | "start" | "target" | "type" | "useMap" | "width" | "wmode" | "wrap" | "to" | "element" | "targetBlankTitle" | "omitClass" | "inner_ref"> & React.RefAttributes<HTMLAnchorElement>>;
29
+ }, "aria-hidden" | "cite" | "data" | "dir" | "form" | "label" | "slot" | "span" | "style" | "summary" | "title" | "pattern" | "accessKey" | "key" | "value" | "space" | "top" | "right" | "bottom" | "left" | "children" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "className" | "contentEditable" | "contextMenu" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "innerRef" | "list" | "tooltip" | "step" | "shape" | "skeleton" | "as" | "accept" | "acceptCharset" | "action" | "allowFullScreen" | "allowTransparency" | "alt" | "async" | "autoComplete" | "autoFocus" | "autoPlay" | "capture" | "cellPadding" | "cellSpacing" | "charSet" | "challenge" | "checked" | "classID" | "cols" | "colSpan" | "content" | "controls" | "coords" | "crossOrigin" | "dateTime" | "default" | "defer" | "disabled" | "download" | "encType" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "frameBorder" | "headers" | "height" | "high" | "href" | "hrefLang" | "htmlFor" | "httpEquiv" | "integrity" | "keyParams" | "keyType" | "kind" | "loop" | "low" | "manifest" | "marginHeight" | "marginWidth" | "max" | "maxLength" | "media" | "mediaGroup" | "method" | "min" | "minLength" | "multiple" | "muted" | "name" | "nonce" | "noValidate" | "open" | "optimum" | "playsInline" | "poster" | "preload" | "readOnly" | "rel" | "required" | "reversed" | "rows" | "rowSpan" | "sandbox" | "scope" | "scoped" | "scrolling" | "seamless" | "selected" | "size" | "sizes" | "src" | "srcDoc" | "srcLang" | "srcSet" | "start" | "target" | "type" | "useMap" | "width" | "wmode" | "wrap" | "to" | "icon" | "element" | "targetBlankTitle" | "iconPosition" | "omitClass" | "inner_ref"> & React.RefAttributes<HTMLAnchorElement>>;
27
30
  export default Anchor;
31
+ export declare function scrollToHashHandler(e: React.MouseEvent<HTMLAnchorElement, MouseEvent>): void;
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.AnchorInstance = AnchorInstance;
7
7
  exports.default = void 0;
8
+ exports.scrollToHashHandler = scrollToHashHandler;
8
9
 
9
10
  var _react = _interopRequireDefault(require("react"));
10
11
 
@@ -16,9 +17,13 @@ var _Context = _interopRequireDefault(require("../../shared/Context"));
16
17
 
17
18
  var _componentHelper = require("../../shared/component-helper");
18
19
 
20
+ var _helpers = require("../../shared/helpers");
21
+
22
+ var _IconPrimary = _interopRequireDefault(require("../icon-primary/IconPrimary"));
23
+
19
24
  var _Tooltip = _interopRequireDefault(require("../tooltip/Tooltip"));
20
25
 
21
- const _excluded = ["id", "element", "className", "children", "tooltip", "omitClass", "innerRef", "targetBlankTitle"];
26
+ const _excluded = ["id", "element", "className", "children", "tooltip", "icon", "iconPosition", "omitClass", "innerRef", "targetBlankTitle"];
22
27
 
23
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
29
 
@@ -52,6 +57,8 @@ function AnchorInstance(localProps) {
52
57
  className,
53
58
  children,
54
59
  tooltip,
60
+ icon,
61
+ iconPosition = 'left',
55
62
  omitClass,
56
63
  innerRef,
57
64
  targetBlankTitle
@@ -62,13 +69,28 @@ function AnchorInstance(localProps) {
62
69
  const internalId = id || 'id' + (0, _componentHelper.makeUniqueId)();
63
70
  const showTooltip = tooltip || allProps.target === '_blank' && !allProps.title;
64
71
  const as = element || 'a';
72
+ let prefix;
73
+ let suffix;
74
+
75
+ if (icon) {
76
+ const iconNode = typeof icon === 'string' ? _react.default.createElement(_IconPrimary.default, {
77
+ icon: icon
78
+ }) : icon;
79
+
80
+ if (iconPosition === 'left') {
81
+ prefix = _react.default.createElement(_react.default.Fragment, null, iconNode, " ");
82
+ } else if (iconPosition === 'right') {
83
+ suffix = _react.default.createElement(_react.default.Fragment, null, " ", iconNode);
84
+ }
85
+ }
86
+
65
87
  return _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_Element.default, _extends({
66
88
  as: as,
67
89
  id: id,
68
- className: (0, _classnames.default)(className, omitClass !== true && 'dnb-anchor', allProps.target === '_blank' && typeof children !== 'string' && 'dnb-anchor--no-icon')
90
+ className: (0, _classnames.default)(className, omitClass !== true && 'dnb-anchor', typeof children !== 'string' && 'dnb-anchor--has-icon', prefix && 'dnb-anchor--icon-left', suffix && 'dnb-anchor--icon-right', allProps.target === '_blank' && (typeof children !== 'string' || suffix) && 'dnb-anchor--no-icon')
69
91
  }, attributes, {
70
92
  innerRef: innerRef
71
- }), children), showTooltip && _react.default.createElement(_Tooltip.default, {
93
+ }), prefix, children, suffix), showTooltip && _react.default.createElement(_Tooltip.default, {
72
94
  showDelay: 100,
73
95
  id: internalId + '-tooltip',
74
96
  targetElement: innerRef,
@@ -83,4 +105,31 @@ const Anchor = _react.default.forwardRef((props, ref) => {
83
105
  });
84
106
 
85
107
  var _default = Anchor;
86
- exports.default = _default;
108
+ exports.default = _default;
109
+
110
+ function scrollToHashHandler(e) {
111
+ var _element$pathname;
112
+
113
+ const element = e.currentTarget;
114
+ const href = element.getAttribute('href');
115
+
116
+ if (typeof document === 'undefined' || !href.includes('#')) {
117
+ return;
118
+ }
119
+
120
+ const isSamePath = href.startsWith('#') || window.location.href.includes((_element$pathname = element.pathname) === null || _element$pathname === void 0 ? void 0 : _element$pathname.replace(/\/$/, ''));
121
+
122
+ if (isSamePath) {
123
+ const id = href.split(/#/g).reverse()[0];
124
+ const anchorElem = document.getElementById(id);
125
+
126
+ if (anchorElem instanceof HTMLElement) {
127
+ e.preventDefault();
128
+ const scrollPadding = parseFloat(window.getComputedStyle(document.documentElement).scrollPaddingTop);
129
+ const top = (0, _helpers.getOffsetTop)(anchorElem) - scrollPadding || 0;
130
+ window.scroll({
131
+ top
132
+ });
133
+ }
134
+ }
135
+ }
@@ -9,12 +9,12 @@
9
9
  // make sure we have always `display: inline;` as inline-block is breaking the border-bottom
10
10
  display: inline;
11
11
 
12
- padding: 0.05575em 0.125em; // the total body height will then be 24px if font-size is 18px
12
+ padding: 0.05575em 0; // the total body height will then be 24px if font-size is 18px
13
13
 
14
14
  font-size: var(--font-size-basis);
15
15
  text-decoration: underline;
16
16
  text-decoration-color: currentcolor;
17
- text-decoration-thickness: 0.0938rem;
17
+ text-decoration-thickness: var(--anchor-underline-thickness);
18
18
  text-underline-offset: 0.25em;
19
19
  border-radius: 0;
20
20
 
@@ -107,6 +107,11 @@
107
107
  border-radius: 0.25em;
108
108
  }
109
109
 
110
+ @mixin anchorBackground($color) {
111
+ box-shadow: inset 100vw 100vw 0 0 $color, -0.125em 0 0 0 $color,
112
+ 0.125em 0 0 0 $color;
113
+ }
114
+
110
115
  // other styles
111
116
  @mixin useAnchorContrastStyle($contrastColor: var(--color-emerald-green)) {
112
117
  color: var(--color-white);
@@ -197,8 +202,7 @@
197
202
  }
198
203
  }
199
204
 
200
- transition: background-color 200ms ease-in-out,
201
- border-radius 200ms ease-in-out;
205
+ transition: box-shadow 200ms ease-in-out, border-radius 200ms ease-in-out;
202
206
 
203
207
  [data-visual-test-wrapper] & {
204
208
  transition: none;
@@ -20,16 +20,17 @@ button.dnb-anchor {
20
20
  }
21
21
 
22
22
  .dnb-anchor {
23
+ --anchor-underline-thickness: 0.0938rem;
23
24
  display: inline;
24
- padding: 0.05575em 0.125em;
25
+ padding: 0.05575em 0;
25
26
  font-size: var(--font-size-basis);
26
27
  text-decoration: underline;
27
28
  -webkit-text-decoration-color: currentcolor;
28
29
  text-decoration-color: currentcolor;
29
- text-decoration-thickness: 0.0938rem;
30
+ text-decoration-thickness: var(--anchor-underline-thickness);
30
31
  text-underline-offset: 0.25em;
31
32
  border-radius: 0;
32
- transition: background-color 200ms ease-in-out, border-radius 200ms ease-in-out;
33
+ transition: box-shadow 200ms ease-in-out, border-radius 200ms ease-in-out;
33
34
  }
34
35
  sup .dnb-anchor, sub .dnb-anchor {
35
36
  padding: 0 0.025em;
@@ -115,6 +116,10 @@ html[data-whatinput=keyboard] .dnb-anchor:focus {
115
116
 
116
117
  .dnb-anchor--focus {
117
118
  outline: none;
119
+ --border-color: var(--focus-ring-color);
120
+ --border-width: var(--focus-ring-width);
121
+ box-shadow: 0 0 0 var(--border-width) var(--border-color);
122
+ border-color: transparent;
118
123
  border-radius: 0.25em;
119
124
  }
120
125
  .dnb-anchor--focus:not(:active) {
@@ -124,12 +129,6 @@ html[data-whatinput=keyboard] .dnb-anchor:focus {
124
129
  .dnb-anchor--focus:not(:active), .dnb-section .dnb-anchor--focus:not(:active).dnb-anchor {
125
130
  text-decoration: none;
126
131
  }
127
- html[data-whatinput=mouse] .dnb-anchor--focus {
128
- --border-color: var(--focus-ring-color);
129
- --border-width: var(--focus-ring-width);
130
- box-shadow: 0 0 0 var(--border-width) var(--border-color);
131
- border-color: transparent;
132
- }
133
132
 
134
133
  .dnb-anchor--no-style {
135
134
  color: inherit;
@@ -1 +1 @@
1
- button.dnb-anchor{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;cursor:pointer;line-height:calc(var(--line-height-basis) + .125rem)}.dnb-anchor{border-radius:0;display:inline;font-size:var(--font-size-basis);padding:.05575em .125em;text-decoration:underline;-webkit-text-decoration-color:currentcolor;text-decoration-color:currentcolor;text-decoration-thickness:.0938rem;text-underline-offset:.25em;transition:background-color .2s ease-in-out,border-radius .2s ease-in-out}sub .dnb-anchor,sup .dnb-anchor{padding:0 .025em}.dnb-h--basis .dnb-anchor,.dnb-h--large .dnb-anchor,.dnb-h--medium .dnb-anchor,.dnb-h--small .dnb-anchor,.dnb-h--x-large .dnb-anchor,.dnb-h--x-small .dnb-anchor,.dnb-h--xx-large .dnb-anchor,.dnb-lead .dnb-anchor,.dnb-p .dnb-anchor{font-size:inherit}.dnb-anchor:focus{border-radius:.25em;outline:none}.dnb-anchor:focus:not(:active){background-color:transparent;transition:none}.dnb-anchor:focus:not(:active),.dnb-section .dnb-anchor:focus:not(:active).dnb-anchor{text-decoration:none}html[data-whatinput=keyboard] .dnb-anchor:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-anchor:active,.dnb-anchor:hover{border-radius:.25em}.dnb-anchor:active,.dnb-anchor:hover,.dnb-section .dnb-anchor:active.dnb-anchor,.dnb-section .dnb-anchor:hover.dnb-anchor{text-decoration:none}.dnb-anchor:active{border-radius:.25em}.dnb-anchor:active,.dnb-section .dnb-anchor:active.dnb-anchor{text-decoration:none}.dnb-anchor[target=_blank]:not(:empty):not(.dnb-anchor--no-icon){background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTExIDBhLjc1Ljc1IDAgMCAwIDAgMS41VjB6bTQgLjc1aC43NUEuNzUuNzUgMCAwIDAgMTUgMHYuNzV6bS0uNzUgNGEuNzUuNzUgMCAwIDAgMS41IDBoLTEuNXptMS41IDRhLjc1Ljc1IDAgMCAwLTEuNSAwaDEuNXptLS43NSA2LjVWMTZjLjQxIDAgLjc1LS4zNC43NS0uNzVIMTV6bS0xNCAwSC4yNWMwIC40MS4zNC43NS43NS43NXYtLjc1ek0xIC43NVYwYS43NS43NSAwIDAgMC0uNzUuNzVIMXptNS43NS43NWEuNzUuNzUgMCAwIDAgMC0xLjV2MS41em0yLjcyIDMuNzJhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNkw5LjQ3IDUuMjJ6TTE0LjI1Ljc1djRoMS41di00aC0xLjV6bTAgOHY2LjVoMS41di02LjVoLTEuNXpNMTUgMTQuNUgxVjE2aDE0di0xLjV6bS0xMy4yNS43NVYuNzVILjI1djE0LjVoMS41ek0xIDEuNWg1Ljc1VjBIMXYxLjV6bTEwIDBoNFYwaC00djEuNXptLS40NyA0Ljc4IDUtNUwxNC40Ny4yMmwtNSA1IDEuMDYgMS4wNnoiIGZpbGw9IiMwMDcyNzIiLz48L3N2Zz4=");background-size:0;position:relative}.dnb-anchor[target=_blank]:not(:empty):not(.dnb-anchor--no-icon):after{background-image:inherit;background-size:cover;color:inherit;content:"";display:inline-block;height:.889em;margin-left:.3em;margin-right:.125em;position:relative;transform-origin:bottom;transition:transform .3s ease-out,filter 1s ease-in-out;width:.889em}.dnb-anchor[target=_blank]:not(:empty):not(.dnb-anchor--no-icon):active{background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTExIDBhLjc1Ljc1IDAgMCAwIDAgMS41VjB6bTQgLjc1aC43NUEuNzUuNzUgMCAwIDAgMTUgMHYuNzV6bS0uNzUgNGEuNzUuNzUgMCAwIDAgMS41IDBoLTEuNXptMS41IDRhLjc1Ljc1IDAgMCAwLTEuNSAwaDEuNXptLS43NSA2LjVWMTZjLjQxIDAgLjc1LS4zNC43NS0uNzVIMTV6bS0xNCAwSC4yNWMwIC40MS4zNC43NS43NS43NXYtLjc1ek0xIC43NVYwYS43NS43NSAwIDAgMC0uNzUuNzVIMXptNS43NS43NWEuNzUuNzUgMCAwIDAgMC0xLjV2MS41em0yLjcyIDMuNzJhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNkw5LjQ3IDUuMjJ6TTE0LjI1Ljc1djRoMS41di00aC0xLjV6bTAgOHY2LjVoMS41di02LjVoLTEuNXpNMTUgMTQuNUgxVjE2aDE0di0xLjV6bS0xMy4yNS43NVYuNzVILjI1djE0LjVoMS41ek0xIDEuNWg1Ljc1VjBIMXYxLjV6bTEwIDBoNFYwaC00djEuNXptLS40NyA0Ljc4IDUtNUwxNC40Ny4yMmwtNSA1IDEuMDYgMS4wNnoiIGZpbGw9IiNhNWUxZDIiLz48L3N2Zz4=")}.dnb-anchor[target=_blank]:not(:empty):not(.dnb-anchor--no-icon):after{top:.125em}[data-visual-test-wrapper] .dnb-anchor{transition:none}.dnb-anchor .dnb-icon{display:inline-block;transform:translateY(-.0625em)}.dnb-anchor--hover{border-radius:.25em}.dnb-anchor--hover,.dnb-section .dnb-anchor--hover.dnb-anchor{text-decoration:none}.dnb-anchor--active{border-radius:.25em}.dnb-anchor--active,.dnb-section .dnb-anchor--active.dnb-anchor{text-decoration:none}.dnb-anchor--focus{border-radius:.25em;outline:none}.dnb-anchor--focus:not(:active){background-color:transparent;transition:none}.dnb-anchor--focus:not(:active),.dnb-section .dnb-anchor--focus:not(:active).dnb-anchor{text-decoration:none}html[data-whatinput=mouse] .dnb-anchor--focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-anchor--no-style{color:inherit;transition:none}.dnb-anchor--no-style,.dnb-section .dnb-anchor--no-style.dnb-anchor{text-decoration:none}.dnb-anchor--no-style:hover{background-color:transparent;color:inherit}.dnb-anchor--no-underline,.dnb-section .dnb-anchor--no-underline.dnb-anchor{text-decoration:none}.dnb-anchor--no-hover:hover{background-color:transparent;color:inherit}.dnb-anchor--no-radius,.dnb-anchor--no-radius:active,.dnb-anchor--no-radius:focus,.dnb-anchor--no-radius:hover{border-radius:0}.dnb-anchor--no-animation,a.dnb-button{transition:none}.dnb-anchor.dnb-skeleton,.dnb-skeleton>.dnb-anchor{text-decoration:none}.dnb-anchor.dnb-skeleton:after,.dnb-skeleton>.dnb-anchor:after{filter:grayscale(100%) opacity(.3)}
1
+ button.dnb-anchor{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;cursor:pointer;line-height:calc(var(--line-height-basis) + .125rem)}.dnb-anchor{--anchor-underline-thickness:0.0938rem;border-radius:0;display:inline;font-size:var(--font-size-basis);padding:.05575em 0;text-decoration:underline;-webkit-text-decoration-color:currentcolor;text-decoration-color:currentcolor;text-decoration-thickness:var(--anchor-underline-thickness);text-underline-offset:.25em;transition:box-shadow .2s ease-in-out,border-radius .2s ease-in-out}sub .dnb-anchor,sup .dnb-anchor{padding:0 .025em}.dnb-h--basis .dnb-anchor,.dnb-h--large .dnb-anchor,.dnb-h--medium .dnb-anchor,.dnb-h--small .dnb-anchor,.dnb-h--x-large .dnb-anchor,.dnb-h--x-small .dnb-anchor,.dnb-h--xx-large .dnb-anchor,.dnb-lead .dnb-anchor,.dnb-p .dnb-anchor{font-size:inherit}.dnb-anchor:focus{border-radius:.25em;outline:none}.dnb-anchor:focus:not(:active){background-color:transparent;transition:none}.dnb-anchor:focus:not(:active),.dnb-section .dnb-anchor:focus:not(:active).dnb-anchor{text-decoration:none}html[data-whatinput=keyboard] .dnb-anchor:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-anchor:active,.dnb-anchor:hover{border-radius:.25em}.dnb-anchor:active,.dnb-anchor:hover,.dnb-section .dnb-anchor:active.dnb-anchor,.dnb-section .dnb-anchor:hover.dnb-anchor{text-decoration:none}.dnb-anchor:active{border-radius:.25em}.dnb-anchor:active,.dnb-section .dnb-anchor:active.dnb-anchor{text-decoration:none}.dnb-anchor[target=_blank]:not(:empty):not(.dnb-anchor--no-icon){background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTExIDBhLjc1Ljc1IDAgMCAwIDAgMS41VjB6bTQgLjc1aC43NUEuNzUuNzUgMCAwIDAgMTUgMHYuNzV6bS0uNzUgNGEuNzUuNzUgMCAwIDAgMS41IDBoLTEuNXptMS41IDRhLjc1Ljc1IDAgMCAwLTEuNSAwaDEuNXptLS43NSA2LjVWMTZjLjQxIDAgLjc1LS4zNC43NS0uNzVIMTV6bS0xNCAwSC4yNWMwIC40MS4zNC43NS43NS43NXYtLjc1ek0xIC43NVYwYS43NS43NSAwIDAgMC0uNzUuNzVIMXptNS43NS43NWEuNzUuNzUgMCAwIDAgMC0xLjV2MS41em0yLjcyIDMuNzJhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNkw5LjQ3IDUuMjJ6TTE0LjI1Ljc1djRoMS41di00aC0xLjV6bTAgOHY2LjVoMS41di02LjVoLTEuNXpNMTUgMTQuNUgxVjE2aDE0di0xLjV6bS0xMy4yNS43NVYuNzVILjI1djE0LjVoMS41ek0xIDEuNWg1Ljc1VjBIMXYxLjV6bTEwIDBoNFYwaC00djEuNXptLS40NyA0Ljc4IDUtNUwxNC40Ny4yMmwtNSA1IDEuMDYgMS4wNnoiIGZpbGw9IiMwMDcyNzIiLz48L3N2Zz4=");background-size:0;position:relative}.dnb-anchor[target=_blank]:not(:empty):not(.dnb-anchor--no-icon):after{background-image:inherit;background-size:cover;color:inherit;content:"";display:inline-block;height:.889em;margin-left:.3em;margin-right:.125em;position:relative;transform-origin:bottom;transition:transform .3s ease-out,filter 1s ease-in-out;width:.889em}.dnb-anchor[target=_blank]:not(:empty):not(.dnb-anchor--no-icon):active{background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTExIDBhLjc1Ljc1IDAgMCAwIDAgMS41VjB6bTQgLjc1aC43NUEuNzUuNzUgMCAwIDAgMTUgMHYuNzV6bS0uNzUgNGEuNzUuNzUgMCAwIDAgMS41IDBoLTEuNXptMS41IDRhLjc1Ljc1IDAgMCAwLTEuNSAwaDEuNXptLS43NSA2LjVWMTZjLjQxIDAgLjc1LS4zNC43NS0uNzVIMTV6bS0xNCAwSC4yNWMwIC40MS4zNC43NS43NS43NXYtLjc1ek0xIC43NVYwYS43NS43NSAwIDAgMC0uNzUuNzVIMXptNS43NS43NWEuNzUuNzUgMCAwIDAgMC0xLjV2MS41em0yLjcyIDMuNzJhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNkw5LjQ3IDUuMjJ6TTE0LjI1Ljc1djRoMS41di00aC0xLjV6bTAgOHY2LjVoMS41di02LjVoLTEuNXpNMTUgMTQuNUgxVjE2aDE0di0xLjV6bS0xMy4yNS43NVYuNzVILjI1djE0LjVoMS41ek0xIDEuNWg1Ljc1VjBIMXYxLjV6bTEwIDBoNFYwaC00djEuNXptLS40NyA0Ljc4IDUtNUwxNC40Ny4yMmwtNSA1IDEuMDYgMS4wNnoiIGZpbGw9IiNhNWUxZDIiLz48L3N2Zz4=")}.dnb-anchor[target=_blank]:not(:empty):not(.dnb-anchor--no-icon):after{top:.125em}[data-visual-test-wrapper] .dnb-anchor{transition:none}.dnb-anchor .dnb-icon{display:inline-block;transform:translateY(-.0625em)}.dnb-anchor--hover{border-radius:.25em}.dnb-anchor--hover,.dnb-section .dnb-anchor--hover.dnb-anchor{text-decoration:none}.dnb-anchor--active{border-radius:.25em}.dnb-anchor--active,.dnb-section .dnb-anchor--active.dnb-anchor{text-decoration:none}.dnb-anchor--focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;border-radius:.25em;box-shadow:0 0 0 var(--border-width) var(--border-color);outline:none}.dnb-anchor--focus:not(:active){background-color:transparent;transition:none}.dnb-anchor--focus:not(:active),.dnb-section .dnb-anchor--focus:not(:active).dnb-anchor{text-decoration:none}.dnb-anchor--no-style{color:inherit;transition:none}.dnb-anchor--no-style,.dnb-section .dnb-anchor--no-style.dnb-anchor{text-decoration:none}.dnb-anchor--no-style:hover{background-color:transparent;color:inherit}.dnb-anchor--no-underline,.dnb-section .dnb-anchor--no-underline.dnb-anchor{text-decoration:none}.dnb-anchor--no-hover:hover{background-color:transparent;color:inherit}.dnb-anchor--no-radius,.dnb-anchor--no-radius:active,.dnb-anchor--no-radius:focus,.dnb-anchor--no-radius:hover{border-radius:0}.dnb-anchor--no-animation,a.dnb-button{transition:none}.dnb-anchor.dnb-skeleton,.dnb-skeleton>.dnb-anchor{text-decoration:none}.dnb-anchor.dnb-skeleton:after,.dnb-skeleton>.dnb-anchor:after{filter:grayscale(100%) opacity(.3)}
@@ -17,6 +17,7 @@ button.dnb-anchor {
17
17
  }
18
18
 
19
19
  .dnb-anchor {
20
+ --anchor-underline-thickness: 0.0938rem;
20
21
  @include anchorStyle();
21
22
  }
22
23
 
@@ -29,7 +30,7 @@ button.dnb-anchor {
29
30
  }
30
31
 
31
32
  .dnb-anchor--focus {
32
- @include anchorFocusStyle('mouse');
33
+ @include anchorFocusStyle('always');
33
34
  }
34
35
 
35
36
  // no use case for that yet
@@ -1,3 +1,7 @@
1
+ @charset "UTF-8";
2
+ /*
3
+ * Utilities
4
+ */
1
5
  /*
2
6
  * Anchor mixins
3
7
  *
@@ -6,14 +10,17 @@
6
10
  * Utilities
7
11
  */
8
12
  .dnb-anchor {
13
+ --anchor-underline-thickness: 0.125rem;
9
14
  font-weight: var(--sb-font-weight-bold);
10
15
  color: var(--sb-color-gray-dark-3);
11
16
  -webkit-text-decoration-color: var(--sb-color-green-dark);
12
17
  text-decoration-color: var(--sb-color-green-dark);
18
+ padding: calc((var(--line-height-basis) - 1.2em) / 2) 0.25em;
13
19
  }
14
20
  .dnb-anchor:hover {
15
21
  color: var(--sb-color-text);
16
22
  background-color: var(--sb-color-green-dark);
23
+ transition: none;
17
24
  border-radius: 0.5rem;
18
25
  }
19
26
  .dnb-anchor:active {
@@ -21,15 +28,58 @@
21
28
  background-color: var(--sb-color-green);
22
29
  border-radius: 0.5rem;
23
30
  }
24
- .dnb-anchor:focus:not(:active) {
31
+ html[data-whatinput=keyboard] .dnb-anchor:focus:not(:active) {
25
32
  color: var(--sb-color-blue-dark);
26
33
  background-color: var(--sb-color-blue-light-3);
27
34
  border-radius: 0.25rem;
28
35
  }
36
+ html[data-whatinput=keyboard] .dnb-anchor:focus:not(:active).dnb-anchor--icon-left {
37
+ margin-left: 0;
38
+ }
39
+ html[data-whatinput=keyboard] .dnb-anchor:focus:not(:active).dnb-anchor--icon-left .dnb-icon {
40
+ margin-left: 0;
41
+ }
42
+ html[data-whatinput=keyboard] .dnb-anchor:focus:not(:active).dnb-anchor--icon-right {
43
+ margin-right: 0;
44
+ }
45
+ html[data-whatinput=keyboard] .dnb-anchor:focus:not(:active).dnb-anchor--icon-right .dnb-icon {
46
+ margin-right: 0;
47
+ }
48
+ .dnb-anchor.dnb-anchor--icon-left {
49
+ padding-left: 0;
50
+ margin-left: 1.125em;
51
+ }
52
+ .dnb-anchor.dnb-anchor--icon-left .dnb-icon {
53
+ font-size: 1em;
54
+ margin-right: 0.125em;
55
+ margin-left: -1.125em;
56
+ }
57
+ .dnb-anchor.dnb-anchor--icon-right {
58
+ padding-right: 0;
59
+ margin-right: 1.125em;
60
+ }
61
+ .dnb-anchor.dnb-anchor--icon-right .dnb-icon {
62
+ font-size: 1em;
63
+ margin-left: 0.125em;
64
+ margin-right: -1.125em;
65
+ }
66
+ .dnb-anchor:not(.dnb-anchor--no-underline):not(.dnb-anchor--has-icon):not(.anchor-hash):not(.dnb-anchor--icon-left) {
67
+ padding-left: 0;
68
+ }
69
+ .dnb-anchor:not(.dnb-anchor--no-underline):not(.dnb-anchor--has-icon):not(.anchor-hash):not(.dnb-anchor--icon-left)::before {
70
+ content: " ";
71
+ }
72
+ .dnb-anchor:not(.dnb-anchor--no-underline):not(.dnb-anchor--has-icon):not(.anchor-hash):not(.dnb-anchor--icon-right):not(.dnb-anchor[target=_blank]) {
73
+ padding-right: 0;
74
+ }
75
+ .dnb-anchor:not(.dnb-anchor--no-underline):not(.dnb-anchor--has-icon):not(.anchor-hash):not(.dnb-anchor--icon-right):not(.dnb-anchor[target=_blank])::after {
76
+ content: " ";
77
+ }
29
78
 
30
79
  .dnb-anchor--hover {
31
80
  color: var(--sb-color-text);
32
81
  background-color: var(--sb-color-green-dark);
82
+ transition: none;
33
83
  border-radius: 0.5rem;
34
84
  }
35
85
 
@@ -44,6 +94,18 @@
44
94
  background-color: var(--sb-color-blue-light-3);
45
95
  border-radius: 0.25rem;
46
96
  }
97
+ .dnb-anchor--focus:not(:active).dnb-anchor--icon-left {
98
+ margin-left: 0;
99
+ }
100
+ .dnb-anchor--focus:not(:active).dnb-anchor--icon-left .dnb-icon {
101
+ margin-left: 0;
102
+ }
103
+ .dnb-anchor--focus:not(:active).dnb-anchor--icon-right {
104
+ margin-right: 0;
105
+ }
106
+ .dnb-anchor--focus:not(:active).dnb-anchor--icon-right .dnb-icon {
107
+ margin-right: 0;
108
+ }
47
109
 
48
110
  .dnb-anchor--contrast {
49
111
  color: var(--color-white);
@@ -1 +1 @@
1
- .dnb-anchor{color:var(--sb-color-gray-dark-3);font-weight:var(--sb-font-weight-bold);-webkit-text-decoration-color:var(--sb-color-green-dark);text-decoration-color:var(--sb-color-green-dark)}.dnb-anchor:hover{background-color:var(--sb-color-green-dark)}.dnb-anchor:active,.dnb-anchor:hover{border-radius:.5rem;color:var(--sb-color-text)}.dnb-anchor:active{background-color:var(--sb-color-green)}.dnb-anchor:focus:not(:active){background-color:var(--sb-color-blue-light-3);border-radius:.25rem;color:var(--sb-color-blue-dark)}.dnb-anchor--hover{background-color:var(--sb-color-green-dark)}.dnb-anchor--active,.dnb-anchor--hover{border-radius:.5rem;color:var(--sb-color-text)}.dnb-anchor--active{background-color:var(--sb-color-green)}.dnb-anchor--focus:not(:active){background-color:var(--sb-color-blue-light-3);border-radius:.25rem;color:var(--sb-color-blue-dark)}.dnb-anchor--contrast{color:var(--color-white)}.dnb-anchor--contrast:active,.dnb-anchor--contrast:hover{text-decoration:none}.dnb-anchor--contrast:active,.dnb-anchor--contrast:hover{background-color:var(--color-white);color:var(--color-emerald-green)}.dnb-anchor--contrast:not(:disabled):focus{background-color:transparent;color:var(--color-white);outline:none}html[data-whatinput=keyboard] .dnb-anchor--contrast:not(:disabled):focus{--border-color:var(--color-white);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}
1
+ @charset "UTF-8";.dnb-anchor{--anchor-underline-thickness:0.125rem;color:var(--sb-color-gray-dark-3);font-weight:var(--sb-font-weight-bold);padding:calc(var(--line-height-basis)/2 - .6em) .25em;-webkit-text-decoration-color:var(--sb-color-green-dark);text-decoration-color:var(--sb-color-green-dark)}.dnb-anchor:hover{background-color:var(--sb-color-green-dark);transition:none}.dnb-anchor:active,.dnb-anchor:hover{border-radius:.5rem;color:var(--sb-color-text)}.dnb-anchor:active{background-color:var(--sb-color-green)}html[data-whatinput=keyboard] .dnb-anchor:focus:not(:active){background-color:var(--sb-color-blue-light-3);border-radius:.25rem;color:var(--sb-color-blue-dark)}html[data-whatinput=keyboard] .dnb-anchor:focus:not(:active).dnb-anchor--icon-left,html[data-whatinput=keyboard] .dnb-anchor:focus:not(:active).dnb-anchor--icon-left .dnb-icon{margin-left:0}html[data-whatinput=keyboard] .dnb-anchor:focus:not(:active).dnb-anchor--icon-right,html[data-whatinput=keyboard] .dnb-anchor:focus:not(:active).dnb-anchor--icon-right .dnb-icon{margin-right:0}.dnb-anchor.dnb-anchor--icon-left{margin-left:1.125em;padding-left:0}.dnb-anchor.dnb-anchor--icon-left .dnb-icon{font-size:1em;margin-left:-1.125em;margin-right:.125em}.dnb-anchor.dnb-anchor--icon-right{margin-right:1.125em;padding-right:0}.dnb-anchor.dnb-anchor--icon-right .dnb-icon{font-size:1em;margin-left:.125em;margin-right:-1.125em}.dnb-anchor:not(.dnb-anchor--no-underline):not(.dnb-anchor--has-icon):not(.anchor-hash):not(.dnb-anchor--icon-left){padding-left:0}.dnb-anchor:not(.dnb-anchor--no-underline):not(.dnb-anchor--has-icon):not(.anchor-hash):not(.dnb-anchor--icon-left):before{content:" "}.dnb-anchor:not(.dnb-anchor--no-underline):not(.dnb-anchor--has-icon):not(.anchor-hash):not(.dnb-anchor--icon-right):not(.dnb-anchor[target=_blank]){padding-right:0}.dnb-anchor:not(.dnb-anchor--no-underline):not(.dnb-anchor--has-icon):not(.anchor-hash):not(.dnb-anchor--icon-right):not(.dnb-anchor[target=_blank]):after{content:" "}.dnb-anchor--hover{background-color:var(--sb-color-green-dark);transition:none}.dnb-anchor--active,.dnb-anchor--hover{border-radius:.5rem;color:var(--sb-color-text)}.dnb-anchor--active{background-color:var(--sb-color-green)}.dnb-anchor--focus:not(:active){background-color:var(--sb-color-blue-light-3);border-radius:.25rem;color:var(--sb-color-blue-dark)}.dnb-anchor--focus:not(:active).dnb-anchor--icon-left,.dnb-anchor--focus:not(:active).dnb-anchor--icon-left .dnb-icon{margin-left:0}.dnb-anchor--focus:not(:active).dnb-anchor--icon-right,.dnb-anchor--focus:not(:active).dnb-anchor--icon-right .dnb-icon{margin-right:0}.dnb-anchor--contrast{color:var(--color-white)}.dnb-anchor--contrast:active,.dnb-anchor--contrast:hover{text-decoration:none}.dnb-anchor--contrast:active,.dnb-anchor--contrast:hover{background-color:var(--color-white);color:var(--color-emerald-green)}.dnb-anchor--contrast:not(:disabled):focus{background-color:transparent;color:var(--color-white);outline:none}html[data-whatinput=keyboard] .dnb-anchor--contrast:not(:disabled):focus{--border-color:var(--color-white);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}
@@ -1,56 +1,118 @@
1
+ @use '../../../../style/core/utilities.scss';
1
2
  @use '../anchor-mixins.scss';
2
3
 
4
+ @mixin anchorHover() {
5
+ color: var(--sb-color-text);
6
+ background-color: var(--sb-color-green-dark);
7
+
8
+ transition: none;
9
+ border-radius: 0.5rem;
10
+ }
11
+
12
+ @mixin anchorActive() {
13
+ color: var(--sb-color-text);
14
+ background-color: var(--sb-color-green);
15
+
16
+ border-radius: 0.5rem;
17
+ }
18
+
19
+ @mixin anchorFocus() {
20
+ &:not(:active) {
21
+ color: var(--sb-color-blue-dark);
22
+ background-color: var(--sb-color-blue-light-3);
23
+
24
+ border-radius: 0.25rem;
25
+
26
+ &.dnb-anchor--icon-left {
27
+ margin-left: 0;
28
+ .dnb-icon {
29
+ margin-left: 0;
30
+ }
31
+ }
32
+
33
+ &.dnb-anchor--icon-right {
34
+ margin-right: 0;
35
+ .dnb-icon {
36
+ margin-right: 0;
37
+ }
38
+ }
39
+ }
40
+ }
41
+
3
42
  .dnb-anchor {
43
+ --anchor-underline-thickness: 0.125rem;
44
+
4
45
  // Has to use --sb-font-weight-bold to get correct weighting as --sb-font-weight-medium does nothing at the moment
5
46
  font-weight: var(--sb-font-weight-bold);
6
47
  color: var(--sb-color-gray-dark-3);
7
48
  text-decoration-color: var(--sb-color-green-dark);
49
+ padding: calc((var(--line-height-basis) - 1.2em) / 2) 0.25em;
8
50
 
9
- &:hover {
10
- color: var(--sb-color-text);
11
- background-color: var(--sb-color-green-dark);
51
+ $anchor-icon-gutter: 0.125em;
12
52
 
13
- border-radius: 0.5rem;
53
+ &:hover {
54
+ @include anchorHover();
14
55
  }
15
56
 
16
57
  &:active {
17
- color: var(--sb-color-text);
18
- background-color: var(--sb-color-green);
19
-
20
- border-radius: 0.5rem;
58
+ @include anchorActive();
21
59
  }
22
60
 
23
61
  &:focus {
24
- &:not(:active) {
25
- color: var(--sb-color-blue-dark);
26
- background-color: var(--sb-color-blue-light-3);
62
+ @include utilities.whatInput('keyboard') {
63
+ @include anchorFocus();
64
+ }
65
+ }
66
+
67
+ &.dnb-anchor--icon-left {
68
+ padding-left: 0;
69
+ margin-left: 1em + $anchor-icon-gutter;
70
+
71
+ .dnb-icon {
72
+ font-size: 1em;
73
+ margin-right: $anchor-icon-gutter;
74
+ margin-left: -1em - $anchor-icon-gutter;
75
+ }
76
+ }
27
77
 
28
- border-radius: 0.25rem;
78
+ &.dnb-anchor--icon-right {
79
+ padding-right: 0;
80
+ margin-right: 1em + $anchor-icon-gutter;
81
+
82
+ .dnb-icon {
83
+ font-size: 1em;
84
+ margin-left: $anchor-icon-gutter;
85
+ margin-right: -1em - $anchor-icon-gutter;
86
+ }
87
+ }
88
+
89
+ &:not(.dnb-anchor--no-underline):not(.dnb-anchor--has-icon):not(.anchor-hash) {
90
+ &:not(.dnb-anchor--icon-left) {
91
+ padding-left: 0;
92
+ &::before {
93
+ content: '\00a0';
94
+ }
95
+ }
96
+
97
+ &:not(.dnb-anchor--icon-right):not(.dnb-anchor[target='_blank']) {
98
+ padding-right: 0;
99
+ &::after {
100
+ content: '\00a0';
101
+ }
29
102
  }
30
103
  }
31
104
  }
32
105
 
33
106
  .dnb-anchor--hover {
34
- color: var(--sb-color-text);
35
- background-color: var(--sb-color-green-dark);
36
-
37
- border-radius: 0.5rem;
107
+ @include anchorHover();
38
108
  }
39
109
 
40
110
  .dnb-anchor--active {
41
- color: var(--sb-color-text);
42
- background-color: var(--sb-color-green);
43
-
44
- border-radius: 0.5rem;
111
+ @include anchorActive();
45
112
  }
46
113
 
47
114
  .dnb-anchor--focus {
48
- &:not(:active) {
49
- color: var(--sb-color-blue-dark);
50
- background-color: var(--sb-color-blue-light-3);
51
-
52
- border-radius: 0.25rem;
53
- }
115
+ @include anchorFocus();
54
116
  }
55
117
 
56
118
  // TODO: add correct contrast styling when designs are in place