@dnb/eufemia 10.22.0 → 10.23.0

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 (1077) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/cjs/components/accordion/Accordion.js +1 -1
  3. package/cjs/components/accordion/Accordion.js.map +1 -1
  4. package/cjs/components/accordion/AccordionContext.d.ts +1 -1
  5. package/cjs/components/accordion/AccordionGroup.js +1 -1
  6. package/cjs/components/accordion/AccordionGroup.js.map +1 -1
  7. package/cjs/components/anchor/Anchor.d.ts +2 -3
  8. package/cjs/components/anchor/Anchor.js +14 -23
  9. package/cjs/components/anchor/Anchor.js.map +1 -1
  10. package/cjs/components/anchor/style/anchor-mixins.scss +16 -10
  11. package/cjs/components/anchor/style/dnb-anchor.css +6 -12
  12. package/cjs/components/anchor/style/dnb-anchor.min.css +1 -1
  13. package/cjs/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +8 -16
  14. package/cjs/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  15. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +126 -78
  16. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  17. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +55 -52
  18. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.css +8 -16
  19. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  20. package/cjs/components/aria-live/useAriaLive.d.ts +1 -1
  21. package/cjs/components/breadcrumb/Breadcrumb.js +26 -17
  22. package/cjs/components/breadcrumb/Breadcrumb.js.map +1 -1
  23. package/cjs/components/breadcrumb/BreadcrumbItem.d.ts +6 -4
  24. package/cjs/components/breadcrumb/BreadcrumbItem.js +17 -9
  25. package/cjs/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  26. package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +29 -4
  27. package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  28. package/cjs/components/breadcrumb/style/dnb-breadcrumb.scss +32 -4
  29. package/cjs/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.css +9 -0
  30. package/cjs/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.min.css +1 -1
  31. package/cjs/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.scss +7 -0
  32. package/cjs/components/button/style/button--tertiary.scss +30 -75
  33. package/cjs/components/button/style/dnb-button.css +43 -49
  34. package/cjs/components/button/style/dnb-button.min.css +1 -1
  35. package/cjs/components/button/style/dnb-button.scss +46 -59
  36. package/cjs/components/button/style/themes/button-mixins.scss +26 -5
  37. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.css +29 -60
  38. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.min.css +12 -2
  39. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.css +44 -72
  40. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.min.css +16 -4
  41. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.scss +14 -16
  42. package/cjs/components/button/style/themes/dnb-button-theme-ui.css +29 -60
  43. package/cjs/components/button/style/themes/dnb-button-theme-ui.min.css +12 -2
  44. package/cjs/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
  45. package/cjs/components/card/Card.d.ts +15 -2
  46. package/cjs/components/card/Card.js +19 -7
  47. package/cjs/components/card/Card.js.map +1 -1
  48. package/cjs/components/card/CardDocs.d.ts +2 -0
  49. package/cjs/components/card/CardDocs.js +65 -0
  50. package/cjs/components/card/CardDocs.js.map +1 -0
  51. package/cjs/components/card/style/dnb-card.css +24 -5
  52. package/cjs/components/card/style/dnb-card.min.css +1 -1
  53. package/cjs/components/card/style/dnb-card.scss +47 -16
  54. package/cjs/components/checkbox/style/dnb-checkbox.css +3 -0
  55. package/cjs/components/checkbox/style/dnb-checkbox.min.css +1 -1
  56. package/cjs/components/checkbox/style/dnb-checkbox.scss +7 -0
  57. package/cjs/components/date-picker/DatePicker.d.ts +2 -0
  58. package/cjs/components/date-picker/DatePicker.js +2 -1
  59. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  60. package/cjs/components/date-picker/DatePickerInput.js +19 -3
  61. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  62. package/cjs/components/date-picker/DatePickerProvider.js +8 -3
  63. package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
  64. package/cjs/components/dropdown/style/dnb-dropdown.css +3 -0
  65. package/cjs/components/dropdown/style/dnb-dropdown.min.css +1 -1
  66. package/cjs/components/dropdown/style/dnb-dropdown.scss +4 -0
  67. package/cjs/components/form-label/FormLabel.js +1 -1
  68. package/cjs/components/form-label/FormLabel.js.map +1 -1
  69. package/cjs/components/form-label/style/dnb-form-label.css +3 -0
  70. package/cjs/components/form-label/style/dnb-form-label.min.css +1 -1
  71. package/cjs/components/form-label/style/dnb-form-label.scss +4 -0
  72. package/cjs/components/form-label/style/themes/dnb-form-label-theme-sbanken.css +0 -3
  73. package/cjs/components/form-label/style/themes/dnb-form-label-theme-sbanken.min.css +1 -1
  74. package/cjs/components/form-label/style/themes/dnb-form-label-theme-sbanken.scss +0 -8
  75. package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.css +0 -6
  76. package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
  77. package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.scss +0 -8
  78. package/cjs/components/heading/HeadingContext.d.ts +1 -1
  79. package/cjs/components/height-animation/style/dnb-height-animation.css +2 -2
  80. package/cjs/components/height-animation/style/dnb-height-animation.min.css +1 -1
  81. package/cjs/components/height-animation/style/dnb-height-animation.scss +3 -2
  82. package/cjs/components/number-format/NumberUtils.d.ts +1 -1
  83. package/cjs/components/radio/style/dnb-radio.css +4 -0
  84. package/cjs/components/radio/style/dnb-radio.min.css +1 -1
  85. package/cjs/components/radio/style/dnb-radio.scss +9 -0
  86. package/cjs/components/section/style/themes/dnb-section-theme-ui.css +3 -6
  87. package/cjs/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  88. package/cjs/components/skeleton/SkeletonHelper.d.ts +6 -6
  89. package/cjs/components/skeleton/style/dnb-skeleton.css +1 -0
  90. package/cjs/components/skeleton/style/dnb-skeleton.min.css +1 -1
  91. package/cjs/components/skeleton/style/dnb-skeleton.scss +1 -0
  92. package/cjs/components/slider/SliderInstance.js +1 -0
  93. package/cjs/components/slider/SliderInstance.js.map +1 -1
  94. package/cjs/components/slider/SliderThumb.js +4 -2
  95. package/cjs/components/slider/SliderThumb.js.map +1 -1
  96. package/cjs/components/step-indicator/StepIndicator.js +11 -5
  97. package/cjs/components/step-indicator/StepIndicator.js.map +1 -1
  98. package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.css +1 -1
  99. package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.min.css +1 -1
  100. package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.scss +1 -1
  101. package/cjs/components/table/TableScrollView.d.ts +5 -1
  102. package/cjs/components/table/TableScrollView.js +1 -0
  103. package/cjs/components/table/TableScrollView.js.map +1 -1
  104. package/cjs/components/table/TableTr.d.ts +1 -2
  105. package/cjs/components/table/TableTr.js.map +1 -1
  106. package/cjs/components/table/style/dnb-table.css +8 -1
  107. package/cjs/components/table/style/dnb-table.min.css +1 -1
  108. package/cjs/components/table/style/dnb-table.scss +7 -1
  109. package/cjs/components/table/style/table-header-buttons.scss +4 -1
  110. package/cjs/components/table/useTableAnimationHandler.d.ts +1 -1
  111. package/cjs/components/table/useTableAnimationHandler.js +3 -3
  112. package/cjs/components/table/useTableAnimationHandler.js.map +1 -1
  113. package/cjs/components/tag/Tag.d.ts +11 -0
  114. package/cjs/components/tag/Tag.js +55 -40
  115. package/cjs/components/tag/Tag.js.map +1 -1
  116. package/cjs/components/tag/style/dnb-tag.css +50 -86
  117. package/cjs/components/tag/style/dnb-tag.min.css +1 -1
  118. package/cjs/components/tag/style/dnb-tag.scss +37 -45
  119. package/cjs/components/tag/style/themes/tag-mixins.scss +24 -6
  120. package/cjs/components/tooltip/Tooltip.js +1 -1
  121. package/cjs/components/tooltip/Tooltip.js.map +1 -1
  122. package/cjs/elements/Element.d.ts +3 -4
  123. package/cjs/elements/Element.js.map +1 -1
  124. package/cjs/elements/code/style/themes/dnb-code-theme-sbanken.scss +5 -3
  125. package/cjs/extensions/forms/DataContext/At/At.js.map +1 -1
  126. package/cjs/extensions/forms/DataContext/Context.d.ts +31 -8
  127. package/cjs/extensions/forms/DataContext/Context.js +14 -3
  128. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  129. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +29 -16
  130. package/cjs/extensions/forms/DataContext/Provider/Provider.js +324 -77
  131. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  132. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.d.ts +3 -0
  133. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +93 -0
  134. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -0
  135. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +1 -1
  136. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  137. package/cjs/extensions/forms/Field/Date/Date.js +3 -3
  138. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  139. package/cjs/extensions/forms/Field/Expiry/Expiry.js +4 -4
  140. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  141. package/cjs/extensions/forms/Field/Number/Number.js +3 -3
  142. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  143. package/cjs/extensions/forms/Field/Password/Password.d.ts +1 -1
  144. package/cjs/extensions/forms/Field/Password/Password.js.map +1 -1
  145. package/cjs/extensions/forms/Field/Password/style/dnb-password.scss +1 -1
  146. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +4 -4
  147. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  148. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -1
  149. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  150. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +3 -3
  151. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  152. package/cjs/extensions/forms/Field/Selection/Selection.js +5 -5
  153. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  154. package/cjs/extensions/forms/Field/String/String.js +3 -3
  155. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  156. package/cjs/extensions/forms/Field/String/StringDocs.js +9 -4
  157. package/cjs/extensions/forms/Field/String/StringDocs.js.map +1 -1
  158. package/cjs/extensions/forms/Field/Toggle/Toggle.js +7 -7
  159. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  160. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -1
  161. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +41 -19
  162. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  163. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +2 -2
  164. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  165. package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  166. package/cjs/extensions/forms/Form/Handler/Handler.js +50 -8
  167. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  168. package/cjs/extensions/forms/Form/Handler/HandlerDocs.d.ts +3 -0
  169. package/cjs/extensions/forms/Form/Handler/HandlerDocs.js +49 -0
  170. package/cjs/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -0
  171. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.d.ts +6 -1
  172. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js +19 -10
  173. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  174. package/cjs/extensions/forms/Form/SubmitButton/SubmitButtonDocs.d.ts +2 -0
  175. package/cjs/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js +30 -0
  176. package/cjs/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js.map +1 -0
  177. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.d.ts +14 -0
  178. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +81 -0
  179. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -0
  180. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.d.ts +2 -0
  181. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js +25 -0
  182. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js.map +1 -0
  183. package/cjs/extensions/forms/Form/SubmitIndicator/index.d.ts +2 -0
  184. package/cjs/extensions/forms/Form/SubmitIndicator/index.js +27 -0
  185. package/cjs/extensions/forms/Form/SubmitIndicator/index.js.map +1 -0
  186. package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +99 -0
  187. package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -0
  188. package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +117 -0
  189. package/cjs/extensions/forms/Form/SubmitIndicator/style/index.d.ts +5 -0
  190. package/cjs/extensions/forms/Form/SubmitIndicator/style/index.js +4 -0
  191. package/cjs/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -0
  192. package/cjs/extensions/forms/Form/data-context/getData.d.ts +1 -1
  193. package/cjs/extensions/forms/Form/data-context/getData.js.map +1 -1
  194. package/cjs/extensions/forms/Form/data-context/useData.d.ts +3 -3
  195. package/cjs/extensions/forms/Form/data-context/useData.js +32 -12
  196. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  197. package/cjs/extensions/forms/Form/data-context/useError.d.ts +3 -2
  198. package/cjs/extensions/forms/Form/data-context/useError.js +8 -5
  199. package/cjs/extensions/forms/Form/data-context/useError.js.map +1 -1
  200. package/cjs/extensions/forms/Form/index.d.ts +1 -0
  201. package/cjs/extensions/forms/Form/index.js +7 -0
  202. package/cjs/extensions/forms/Form/index.js.map +1 -1
  203. package/cjs/extensions/forms/Iterate/Array/Array.js +1 -1
  204. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  205. package/cjs/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +1 -1
  206. package/cjs/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
  207. package/cjs/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +1 -1
  208. package/cjs/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
  209. package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.d.ts +1 -3
  210. package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js +4 -3
  211. package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  212. package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.d.ts +1 -3
  213. package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +6 -2
  214. package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  215. package/cjs/extensions/forms/StepsLayout/StepsLayout.d.ts +2 -2
  216. package/cjs/extensions/forms/StepsLayout/StepsLayout.js +54 -25
  217. package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  218. package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +3 -0
  219. package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.js +58 -0
  220. package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -0
  221. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.css +6 -1
  222. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  223. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +11 -1
  224. package/cjs/extensions/forms/Value/Boolean/Boolean.js +1 -1
  225. package/cjs/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  226. package/cjs/extensions/forms/Value/Number/Number.js +5 -5
  227. package/cjs/extensions/forms/Value/Number/Number.js.map +1 -1
  228. package/cjs/extensions/forms/Value/String/String.js +1 -1
  229. package/cjs/extensions/forms/Value/String/String.js.map +1 -1
  230. package/cjs/extensions/forms/hooks/DataValueDocs.js +3 -3
  231. package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  232. package/cjs/extensions/forms/hooks/index.d.ts +6 -3
  233. package/cjs/extensions/forms/hooks/index.js +4 -12
  234. package/cjs/extensions/forms/hooks/index.js.map +1 -1
  235. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +23 -0
  236. package/cjs/extensions/forms/hooks/useFieldProps.js +774 -0
  237. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -0
  238. package/cjs/extensions/forms/style/dnb-forms.css +105 -1
  239. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  240. package/cjs/extensions/forms/types.d.ts +67 -4
  241. package/cjs/extensions/forms/types.js +3 -2
  242. package/cjs/extensions/forms/types.js.map +1 -1
  243. package/cjs/extensions/forms/utils/ajv.d.ts +9 -7
  244. package/cjs/extensions/forms/utils/ajv.js +29 -16
  245. package/cjs/extensions/forms/utils/ajv.js.map +1 -1
  246. package/cjs/fragments/scroll-view/ScrollView.d.ts +2 -2
  247. package/cjs/fragments/scroll-view/ScrollView.js +4 -1
  248. package/cjs/fragments/scroll-view/ScrollView.js.map +1 -1
  249. package/cjs/shared/Context.d.ts +20 -11
  250. package/cjs/shared/Context.js.map +1 -1
  251. package/cjs/shared/Eufemia.d.ts +2 -2
  252. package/cjs/shared/Eufemia.js +2 -2
  253. package/cjs/shared/Eufemia.js.map +1 -1
  254. package/cjs/shared/Provider.js.map +1 -1
  255. package/cjs/shared/defaults.d.ts +3 -3
  256. package/cjs/shared/defaults.js.map +1 -1
  257. package/cjs/shared/helpers/debounce.d.ts +21 -30
  258. package/cjs/shared/helpers/debounce.js +23 -11
  259. package/cjs/shared/helpers/debounce.js.map +1 -1
  260. package/cjs/shared/helpers/isAsync.d.ts +7 -0
  261. package/cjs/shared/helpers/isAsync.js +20 -0
  262. package/cjs/shared/helpers/isAsync.js.map +1 -0
  263. package/cjs/shared/helpers/runCssVersionMismatchWarning.d.ts +8 -0
  264. package/cjs/shared/helpers/runCssVersionMismatchWarning.js +31 -0
  265. package/cjs/shared/helpers/runCssVersionMismatchWarning.js.map +1 -0
  266. package/cjs/{extensions/forms/hooks → shared/helpers}/useId.js +1 -1
  267. package/cjs/shared/helpers/useId.js.map +1 -0
  268. package/cjs/shared/helpers/useMountEffect.js.map +1 -0
  269. package/cjs/shared/helpers/useMounted.js.map +1 -0
  270. package/cjs/shared/helpers/useSharedState.js +15 -9
  271. package/cjs/shared/helpers/useSharedState.js.map +1 -1
  272. package/cjs/shared/helpers/useUnmountEffect.js.map +1 -0
  273. package/cjs/shared/helpers/useUpdateEffect.js.map +1 -0
  274. package/cjs/shared/helpers.js +2 -0
  275. package/cjs/shared/helpers.js.map +1 -1
  276. package/cjs/shared/index.d.ts +10 -10
  277. package/cjs/shared/index.js +7 -1
  278. package/cjs/shared/index.js.map +1 -1
  279. package/cjs/shared/locales/en-GB.d.ts +1 -0
  280. package/cjs/shared/locales/en-GB.js +2 -1
  281. package/cjs/shared/locales/en-GB.js.map +1 -1
  282. package/cjs/shared/locales/en-US.d.ts +1 -0
  283. package/cjs/shared/locales/index.d.ts +4 -2
  284. package/cjs/shared/locales/index.js +2 -1
  285. package/cjs/shared/locales/index.js.map +1 -1
  286. package/cjs/shared/locales/nb-NO.d.ts +1 -0
  287. package/cjs/shared/locales/nb-NO.js +2 -1
  288. package/cjs/shared/locales/nb-NO.js.map +1 -1
  289. package/cjs/shared/types.d.ts +4 -1
  290. package/cjs/shared/types.js.map +1 -1
  291. package/cjs/shared/useLocale.d.ts +2 -0
  292. package/cjs/shared/useLocale.js +37 -0
  293. package/cjs/shared/useLocale.js.map +1 -0
  294. package/cjs/style/core/scopes.scss +3 -0
  295. package/cjs/style/dnb-ui-basis.css +1 -0
  296. package/cjs/style/dnb-ui-basis.min.css +1 -1
  297. package/cjs/style/dnb-ui-body.css +1 -0
  298. package/cjs/style/dnb-ui-body.min.css +1 -1
  299. package/cjs/style/dnb-ui-components.css +281 -160
  300. package/cjs/style/dnb-ui-components.min.css +3 -3
  301. package/cjs/style/dnb-ui-core.css +1 -0
  302. package/cjs/style/dnb-ui-core.min.css +1 -1
  303. package/cjs/style/dnb-ui-extensions.css +105 -1
  304. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  305. package/cjs/style/dnb-ui-forms.css +105 -1
  306. package/cjs/style/dnb-ui-forms.min.css +1 -1
  307. package/cjs/style/dnb-ui-forms.scss +1 -0
  308. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +3 -6
  309. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  310. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +427 -250
  311. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +16 -6
  312. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +3 -6
  313. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  314. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +105 -1
  315. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  316. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +105 -1
  317. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  318. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +5 -2
  319. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  320. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +566 -315
  321. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +20 -8
  322. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +5 -2
  323. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  324. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +105 -1
  325. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  326. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +105 -1
  327. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  328. package/cjs/style/themes/theme-ui/ui-theme-basis.css +3 -6
  329. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  330. package/cjs/style/themes/theme-ui/ui-theme-components.css +427 -250
  331. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +16 -6
  332. package/cjs/style/themes/theme-ui/ui-theme-elements.css +3 -6
  333. package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  334. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +105 -1
  335. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  336. package/cjs/style/themes/theme-ui/ui-theme-forms.css +105 -1
  337. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  338. package/cjs/style/themes/theme-ui/ui-theme-tags.css +3 -6
  339. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  340. package/components/accordion/Accordion.js +1 -1
  341. package/components/accordion/Accordion.js.map +1 -1
  342. package/components/accordion/AccordionContext.d.ts +1 -1
  343. package/components/accordion/AccordionGroup.js +1 -1
  344. package/components/accordion/AccordionGroup.js.map +1 -1
  345. package/components/anchor/Anchor.d.ts +2 -3
  346. package/components/anchor/Anchor.js +14 -23
  347. package/components/anchor/Anchor.js.map +1 -1
  348. package/components/anchor/style/anchor-mixins.scss +16 -10
  349. package/components/anchor/style/dnb-anchor.css +6 -12
  350. package/components/anchor/style/dnb-anchor.min.css +1 -1
  351. package/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +8 -16
  352. package/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  353. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +126 -78
  354. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  355. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +55 -52
  356. package/components/anchor/style/themes/dnb-anchor-theme-ui.css +8 -16
  357. package/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  358. package/components/aria-live/useAriaLive.d.ts +1 -1
  359. package/components/breadcrumb/Breadcrumb.js +27 -18
  360. package/components/breadcrumb/Breadcrumb.js.map +1 -1
  361. package/components/breadcrumb/BreadcrumbItem.d.ts +6 -4
  362. package/components/breadcrumb/BreadcrumbItem.js +18 -10
  363. package/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  364. package/components/breadcrumb/style/dnb-breadcrumb.css +29 -4
  365. package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  366. package/components/breadcrumb/style/dnb-breadcrumb.scss +32 -4
  367. package/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.css +9 -0
  368. package/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.min.css +1 -1
  369. package/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.scss +7 -0
  370. package/components/button/style/button--tertiary.scss +30 -75
  371. package/components/button/style/dnb-button.css +43 -49
  372. package/components/button/style/dnb-button.min.css +1 -1
  373. package/components/button/style/dnb-button.scss +46 -59
  374. package/components/button/style/themes/button-mixins.scss +26 -5
  375. package/components/button/style/themes/dnb-button-theme-eiendom.css +29 -60
  376. package/components/button/style/themes/dnb-button-theme-eiendom.min.css +12 -2
  377. package/components/button/style/themes/dnb-button-theme-sbanken.css +44 -72
  378. package/components/button/style/themes/dnb-button-theme-sbanken.min.css +16 -4
  379. package/components/button/style/themes/dnb-button-theme-sbanken.scss +14 -16
  380. package/components/button/style/themes/dnb-button-theme-ui.css +29 -60
  381. package/components/button/style/themes/dnb-button-theme-ui.min.css +12 -2
  382. package/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
  383. package/components/card/Card.d.ts +15 -2
  384. package/components/card/Card.js +19 -7
  385. package/components/card/Card.js.map +1 -1
  386. package/components/card/CardDocs.d.ts +2 -0
  387. package/components/card/CardDocs.js +58 -0
  388. package/components/card/CardDocs.js.map +1 -0
  389. package/components/card/style/dnb-card.css +24 -5
  390. package/components/card/style/dnb-card.min.css +1 -1
  391. package/components/card/style/dnb-card.scss +47 -16
  392. package/components/checkbox/style/dnb-checkbox.css +3 -0
  393. package/components/checkbox/style/dnb-checkbox.min.css +1 -1
  394. package/components/checkbox/style/dnb-checkbox.scss +7 -0
  395. package/components/date-picker/DatePicker.d.ts +2 -0
  396. package/components/date-picker/DatePicker.js +2 -1
  397. package/components/date-picker/DatePicker.js.map +1 -1
  398. package/components/date-picker/DatePickerInput.js +19 -3
  399. package/components/date-picker/DatePickerInput.js.map +1 -1
  400. package/components/date-picker/DatePickerProvider.js +8 -3
  401. package/components/date-picker/DatePickerProvider.js.map +1 -1
  402. package/components/dropdown/style/dnb-dropdown.css +3 -0
  403. package/components/dropdown/style/dnb-dropdown.min.css +1 -1
  404. package/components/dropdown/style/dnb-dropdown.scss +4 -0
  405. package/components/form-label/FormLabel.js +1 -1
  406. package/components/form-label/FormLabel.js.map +1 -1
  407. package/components/form-label/style/dnb-form-label.css +3 -0
  408. package/components/form-label/style/dnb-form-label.min.css +1 -1
  409. package/components/form-label/style/dnb-form-label.scss +4 -0
  410. package/components/form-label/style/themes/dnb-form-label-theme-sbanken.css +0 -3
  411. package/components/form-label/style/themes/dnb-form-label-theme-sbanken.min.css +1 -1
  412. package/components/form-label/style/themes/dnb-form-label-theme-sbanken.scss +0 -8
  413. package/components/form-label/style/themes/dnb-form-label-theme-ui.css +0 -6
  414. package/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
  415. package/components/form-label/style/themes/dnb-form-label-theme-ui.scss +0 -8
  416. package/components/heading/HeadingContext.d.ts +1 -1
  417. package/components/height-animation/style/dnb-height-animation.css +2 -2
  418. package/components/height-animation/style/dnb-height-animation.min.css +1 -1
  419. package/components/height-animation/style/dnb-height-animation.scss +3 -2
  420. package/components/number-format/NumberUtils.d.ts +1 -1
  421. package/components/radio/style/dnb-radio.css +4 -0
  422. package/components/radio/style/dnb-radio.min.css +1 -1
  423. package/components/radio/style/dnb-radio.scss +9 -0
  424. package/components/section/style/themes/dnb-section-theme-ui.css +3 -6
  425. package/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  426. package/components/skeleton/SkeletonHelper.d.ts +6 -6
  427. package/components/skeleton/style/dnb-skeleton.css +1 -0
  428. package/components/skeleton/style/dnb-skeleton.min.css +1 -1
  429. package/components/skeleton/style/dnb-skeleton.scss +1 -0
  430. package/components/slider/SliderInstance.js +1 -0
  431. package/components/slider/SliderInstance.js.map +1 -1
  432. package/components/slider/SliderThumb.js +4 -2
  433. package/components/slider/SliderThumb.js.map +1 -1
  434. package/components/step-indicator/StepIndicator.js +11 -6
  435. package/components/step-indicator/StepIndicator.js.map +1 -1
  436. package/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.css +1 -1
  437. package/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.min.css +1 -1
  438. package/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.scss +1 -1
  439. package/components/table/TableScrollView.d.ts +5 -1
  440. package/components/table/TableScrollView.js +1 -0
  441. package/components/table/TableScrollView.js.map +1 -1
  442. package/components/table/TableTr.d.ts +1 -2
  443. package/components/table/TableTr.js.map +1 -1
  444. package/components/table/style/dnb-table.css +8 -1
  445. package/components/table/style/dnb-table.min.css +1 -1
  446. package/components/table/style/dnb-table.scss +7 -1
  447. package/components/table/style/table-header-buttons.scss +4 -1
  448. package/components/table/useTableAnimationHandler.d.ts +1 -1
  449. package/components/table/useTableAnimationHandler.js +3 -3
  450. package/components/table/useTableAnimationHandler.js.map +1 -1
  451. package/components/tag/Tag.d.ts +11 -0
  452. package/components/tag/Tag.js +54 -39
  453. package/components/tag/Tag.js.map +1 -1
  454. package/components/tag/style/dnb-tag.css +50 -86
  455. package/components/tag/style/dnb-tag.min.css +1 -1
  456. package/components/tag/style/dnb-tag.scss +37 -45
  457. package/components/tag/style/themes/tag-mixins.scss +24 -6
  458. package/components/tooltip/Tooltip.js +1 -1
  459. package/components/tooltip/Tooltip.js.map +1 -1
  460. package/elements/Element.d.ts +3 -4
  461. package/elements/Element.js.map +1 -1
  462. package/elements/code/style/themes/dnb-code-theme-sbanken.scss +5 -3
  463. package/es/components/accordion/Accordion.js +1 -1
  464. package/es/components/accordion/Accordion.js.map +1 -1
  465. package/es/components/accordion/AccordionContext.d.ts +1 -1
  466. package/es/components/accordion/AccordionGroup.js +1 -1
  467. package/es/components/accordion/AccordionGroup.js.map +1 -1
  468. package/es/components/anchor/Anchor.d.ts +2 -3
  469. package/es/components/anchor/Anchor.js +14 -23
  470. package/es/components/anchor/Anchor.js.map +1 -1
  471. package/es/components/anchor/style/anchor-mixins.scss +16 -10
  472. package/es/components/anchor/style/dnb-anchor.css +6 -12
  473. package/es/components/anchor/style/dnb-anchor.min.css +1 -1
  474. package/es/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +8 -16
  475. package/es/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  476. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +126 -78
  477. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  478. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +55 -52
  479. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.css +8 -16
  480. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  481. package/es/components/aria-live/useAriaLive.d.ts +1 -1
  482. package/es/components/breadcrumb/Breadcrumb.js +27 -18
  483. package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
  484. package/es/components/breadcrumb/BreadcrumbItem.d.ts +6 -4
  485. package/es/components/breadcrumb/BreadcrumbItem.js +18 -10
  486. package/es/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  487. package/es/components/breadcrumb/style/dnb-breadcrumb.css +29 -4
  488. package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  489. package/es/components/breadcrumb/style/dnb-breadcrumb.scss +32 -4
  490. package/es/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.css +9 -0
  491. package/es/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.min.css +1 -1
  492. package/es/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.scss +7 -0
  493. package/es/components/button/style/button--tertiary.scss +30 -75
  494. package/es/components/button/style/dnb-button.css +43 -49
  495. package/es/components/button/style/dnb-button.min.css +1 -1
  496. package/es/components/button/style/dnb-button.scss +46 -59
  497. package/es/components/button/style/themes/button-mixins.scss +26 -5
  498. package/es/components/button/style/themes/dnb-button-theme-eiendom.css +29 -60
  499. package/es/components/button/style/themes/dnb-button-theme-eiendom.min.css +12 -2
  500. package/es/components/button/style/themes/dnb-button-theme-sbanken.css +44 -72
  501. package/es/components/button/style/themes/dnb-button-theme-sbanken.min.css +16 -4
  502. package/es/components/button/style/themes/dnb-button-theme-sbanken.scss +14 -16
  503. package/es/components/button/style/themes/dnb-button-theme-ui.css +29 -60
  504. package/es/components/button/style/themes/dnb-button-theme-ui.min.css +12 -2
  505. package/es/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
  506. package/es/components/card/Card.d.ts +15 -2
  507. package/es/components/card/Card.js +19 -7
  508. package/es/components/card/Card.js.map +1 -1
  509. package/es/components/card/CardDocs.d.ts +2 -0
  510. package/es/components/card/CardDocs.js +58 -0
  511. package/es/components/card/CardDocs.js.map +1 -0
  512. package/es/components/card/style/dnb-card.css +24 -5
  513. package/es/components/card/style/dnb-card.min.css +1 -1
  514. package/es/components/card/style/dnb-card.scss +47 -16
  515. package/es/components/checkbox/style/dnb-checkbox.css +3 -0
  516. package/es/components/checkbox/style/dnb-checkbox.min.css +1 -1
  517. package/es/components/checkbox/style/dnb-checkbox.scss +7 -0
  518. package/es/components/date-picker/DatePicker.d.ts +2 -0
  519. package/es/components/date-picker/DatePicker.js +2 -1
  520. package/es/components/date-picker/DatePicker.js.map +1 -1
  521. package/es/components/date-picker/DatePickerInput.js +19 -3
  522. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  523. package/es/components/date-picker/DatePickerProvider.js +8 -3
  524. package/es/components/date-picker/DatePickerProvider.js.map +1 -1
  525. package/es/components/dropdown/style/dnb-dropdown.css +3 -0
  526. package/es/components/dropdown/style/dnb-dropdown.min.css +1 -1
  527. package/es/components/dropdown/style/dnb-dropdown.scss +4 -0
  528. package/es/components/form-label/FormLabel.js +1 -1
  529. package/es/components/form-label/FormLabel.js.map +1 -1
  530. package/es/components/form-label/style/dnb-form-label.css +3 -0
  531. package/es/components/form-label/style/dnb-form-label.min.css +1 -1
  532. package/es/components/form-label/style/dnb-form-label.scss +4 -0
  533. package/es/components/form-label/style/themes/dnb-form-label-theme-sbanken.css +0 -3
  534. package/es/components/form-label/style/themes/dnb-form-label-theme-sbanken.min.css +1 -1
  535. package/es/components/form-label/style/themes/dnb-form-label-theme-sbanken.scss +0 -8
  536. package/es/components/form-label/style/themes/dnb-form-label-theme-ui.css +0 -6
  537. package/es/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
  538. package/es/components/form-label/style/themes/dnb-form-label-theme-ui.scss +0 -8
  539. package/es/components/heading/HeadingContext.d.ts +1 -1
  540. package/es/components/height-animation/style/dnb-height-animation.css +2 -2
  541. package/es/components/height-animation/style/dnb-height-animation.min.css +1 -1
  542. package/es/components/height-animation/style/dnb-height-animation.scss +3 -2
  543. package/es/components/number-format/NumberUtils.d.ts +1 -1
  544. package/es/components/radio/style/dnb-radio.css +4 -0
  545. package/es/components/radio/style/dnb-radio.min.css +1 -1
  546. package/es/components/radio/style/dnb-radio.scss +9 -0
  547. package/es/components/section/style/themes/dnb-section-theme-ui.css +3 -6
  548. package/es/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  549. package/es/components/skeleton/SkeletonHelper.d.ts +6 -6
  550. package/es/components/skeleton/style/dnb-skeleton.css +1 -0
  551. package/es/components/skeleton/style/dnb-skeleton.min.css +1 -1
  552. package/es/components/skeleton/style/dnb-skeleton.scss +1 -0
  553. package/es/components/slider/SliderInstance.js +1 -0
  554. package/es/components/slider/SliderInstance.js.map +1 -1
  555. package/es/components/slider/SliderThumb.js +4 -2
  556. package/es/components/slider/SliderThumb.js.map +1 -1
  557. package/es/components/step-indicator/StepIndicator.js +11 -6
  558. package/es/components/step-indicator/StepIndicator.js.map +1 -1
  559. package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.css +1 -1
  560. package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.min.css +1 -1
  561. package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.scss +1 -1
  562. package/es/components/table/TableScrollView.d.ts +5 -1
  563. package/es/components/table/TableScrollView.js +1 -0
  564. package/es/components/table/TableScrollView.js.map +1 -1
  565. package/es/components/table/TableTr.d.ts +1 -2
  566. package/es/components/table/TableTr.js.map +1 -1
  567. package/es/components/table/style/dnb-table.css +8 -1
  568. package/es/components/table/style/dnb-table.min.css +1 -1
  569. package/es/components/table/style/dnb-table.scss +7 -1
  570. package/es/components/table/style/table-header-buttons.scss +4 -1
  571. package/es/components/table/useTableAnimationHandler.d.ts +1 -1
  572. package/es/components/table/useTableAnimationHandler.js +3 -3
  573. package/es/components/table/useTableAnimationHandler.js.map +1 -1
  574. package/es/components/tag/Tag.d.ts +11 -0
  575. package/es/components/tag/Tag.js +54 -39
  576. package/es/components/tag/Tag.js.map +1 -1
  577. package/es/components/tag/style/dnb-tag.css +50 -86
  578. package/es/components/tag/style/dnb-tag.min.css +1 -1
  579. package/es/components/tag/style/dnb-tag.scss +37 -45
  580. package/es/components/tag/style/themes/tag-mixins.scss +24 -6
  581. package/es/components/tooltip/Tooltip.js +1 -1
  582. package/es/components/tooltip/Tooltip.js.map +1 -1
  583. package/es/elements/Element.d.ts +3 -4
  584. package/es/elements/Element.js.map +1 -1
  585. package/es/elements/code/style/themes/dnb-code-theme-sbanken.scss +5 -3
  586. package/es/extensions/forms/DataContext/At/At.js.map +1 -1
  587. package/es/extensions/forms/DataContext/Context.d.ts +31 -8
  588. package/es/extensions/forms/DataContext/Context.js +14 -3
  589. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  590. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +29 -16
  591. package/es/extensions/forms/DataContext/Provider/Provider.js +321 -75
  592. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  593. package/es/extensions/forms/DataContext/Provider/ProviderDocs.d.ts +3 -0
  594. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +85 -0
  595. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -0
  596. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +2 -2
  597. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  598. package/es/extensions/forms/Field/Date/Date.js +4 -4
  599. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  600. package/es/extensions/forms/Field/Expiry/Expiry.js +5 -5
  601. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  602. package/es/extensions/forms/Field/Number/Number.js +4 -4
  603. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  604. package/es/extensions/forms/Field/Password/Password.d.ts +1 -1
  605. package/es/extensions/forms/Field/Password/Password.js.map +1 -1
  606. package/es/extensions/forms/Field/Password/style/dnb-password.scss +1 -1
  607. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +5 -5
  608. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  609. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -1
  610. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  611. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -4
  612. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  613. package/es/extensions/forms/Field/Selection/Selection.js +6 -6
  614. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  615. package/es/extensions/forms/Field/String/String.js +4 -4
  616. package/es/extensions/forms/Field/String/String.js.map +1 -1
  617. package/es/extensions/forms/Field/String/StringDocs.js +9 -4
  618. package/es/extensions/forms/Field/String/StringDocs.js.map +1 -1
  619. package/es/extensions/forms/Field/Toggle/Toggle.js +8 -8
  620. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  621. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -1
  622. package/es/extensions/forms/FieldBlock/FieldBlock.js +41 -20
  623. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  624. package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +2 -2
  625. package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  626. package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  627. package/es/extensions/forms/Form/Handler/Handler.js +45 -9
  628. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  629. package/es/extensions/forms/Form/Handler/HandlerDocs.d.ts +3 -0
  630. package/es/extensions/forms/Form/Handler/HandlerDocs.js +39 -0
  631. package/es/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -0
  632. package/es/extensions/forms/Form/SubmitButton/SubmitButton.d.ts +6 -1
  633. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js +21 -12
  634. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  635. package/es/extensions/forms/Form/SubmitButton/SubmitButtonDocs.d.ts +2 -0
  636. package/es/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js +23 -0
  637. package/es/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js.map +1 -0
  638. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.d.ts +14 -0
  639. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +69 -0
  640. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -0
  641. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.d.ts +2 -0
  642. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js +18 -0
  643. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js.map +1 -0
  644. package/es/extensions/forms/Form/SubmitIndicator/index.d.ts +2 -0
  645. package/es/extensions/forms/Form/SubmitIndicator/index.js +3 -0
  646. package/es/extensions/forms/Form/SubmitIndicator/index.js.map +1 -0
  647. package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +99 -0
  648. package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -0
  649. package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +117 -0
  650. package/es/extensions/forms/Form/SubmitIndicator/style/index.d.ts +5 -0
  651. package/es/extensions/forms/Form/SubmitIndicator/style/index.js +1 -0
  652. package/es/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -0
  653. package/es/extensions/forms/Form/data-context/getData.d.ts +1 -1
  654. package/es/extensions/forms/Form/data-context/getData.js.map +1 -1
  655. package/es/extensions/forms/Form/data-context/useData.d.ts +3 -3
  656. package/es/extensions/forms/Form/data-context/useData.js +30 -12
  657. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  658. package/es/extensions/forms/Form/data-context/useError.d.ts +3 -2
  659. package/es/extensions/forms/Form/data-context/useError.js +7 -6
  660. package/es/extensions/forms/Form/data-context/useError.js.map +1 -1
  661. package/es/extensions/forms/Form/index.d.ts +1 -0
  662. package/es/extensions/forms/Form/index.js +1 -0
  663. package/es/extensions/forms/Form/index.js.map +1 -1
  664. package/es/extensions/forms/Iterate/Array/Array.js +2 -2
  665. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  666. package/es/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +2 -2
  667. package/es/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
  668. package/es/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +2 -2
  669. package/es/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
  670. package/es/extensions/forms/StepsLayout/NextButton/NextButton.d.ts +1 -3
  671. package/es/extensions/forms/StepsLayout/NextButton/NextButton.js +4 -3
  672. package/es/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  673. package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.d.ts +1 -3
  674. package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +6 -2
  675. package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  676. package/es/extensions/forms/StepsLayout/StepsLayout.d.ts +2 -2
  677. package/es/extensions/forms/StepsLayout/StepsLayout.js +55 -26
  678. package/es/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  679. package/es/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +3 -0
  680. package/es/extensions/forms/StepsLayout/StepsLayoutDocs.js +50 -0
  681. package/es/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -0
  682. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.css +6 -1
  683. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  684. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +11 -1
  685. package/es/extensions/forms/Value/Boolean/Boolean.js +2 -2
  686. package/es/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  687. package/es/extensions/forms/Value/Number/Number.js +5 -5
  688. package/es/extensions/forms/Value/Number/Number.js.map +1 -1
  689. package/es/extensions/forms/Value/String/String.js +2 -2
  690. package/es/extensions/forms/Value/String/String.js.map +1 -1
  691. package/es/extensions/forms/hooks/DataValueDocs.js +3 -3
  692. package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  693. package/es/extensions/forms/hooks/index.d.ts +6 -3
  694. package/es/extensions/forms/hooks/index.js +2 -3
  695. package/es/extensions/forms/hooks/index.js.map +1 -1
  696. package/es/extensions/forms/hooks/useFieldProps.d.ts +23 -0
  697. package/es/extensions/forms/hooks/useFieldProps.js +749 -0
  698. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -0
  699. package/es/extensions/forms/style/dnb-forms.css +105 -1
  700. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  701. package/es/extensions/forms/types.d.ts +67 -4
  702. package/es/extensions/forms/types.js +3 -2
  703. package/es/extensions/forms/types.js.map +1 -1
  704. package/es/extensions/forms/utils/ajv.d.ts +9 -7
  705. package/es/extensions/forms/utils/ajv.js +29 -14
  706. package/es/extensions/forms/utils/ajv.js.map +1 -1
  707. package/es/fragments/scroll-view/ScrollView.d.ts +2 -2
  708. package/es/fragments/scroll-view/ScrollView.js +4 -1
  709. package/es/fragments/scroll-view/ScrollView.js.map +1 -1
  710. package/es/shared/Context.d.ts +20 -11
  711. package/es/shared/Context.js.map +1 -1
  712. package/es/shared/Eufemia.d.ts +2 -2
  713. package/es/shared/Eufemia.js +2 -2
  714. package/es/shared/Eufemia.js.map +1 -1
  715. package/es/shared/Provider.js.map +1 -1
  716. package/es/shared/defaults.d.ts +3 -3
  717. package/es/shared/defaults.js.map +1 -1
  718. package/es/shared/helpers/debounce.d.ts +21 -30
  719. package/es/shared/helpers/debounce.js +21 -9
  720. package/es/shared/helpers/debounce.js.map +1 -1
  721. package/es/shared/helpers/isAsync.d.ts +7 -0
  722. package/es/shared/helpers/isAsync.js +14 -0
  723. package/es/shared/helpers/isAsync.js.map +1 -0
  724. package/es/shared/helpers/runCssVersionMismatchWarning.d.ts +8 -0
  725. package/es/shared/helpers/runCssVersionMismatchWarning.js +25 -0
  726. package/es/shared/helpers/runCssVersionMismatchWarning.js.map +1 -0
  727. package/es/{extensions/forms/hooks → shared/helpers}/useId.js +1 -1
  728. package/es/shared/helpers/useId.js.map +1 -0
  729. package/es/shared/helpers/useMountEffect.js.map +1 -0
  730. package/es/shared/helpers/useMounted.js.map +1 -0
  731. package/es/shared/helpers/useSharedState.js +15 -9
  732. package/es/shared/helpers/useSharedState.js.map +1 -1
  733. package/es/shared/helpers/useUnmountEffect.js.map +1 -0
  734. package/es/shared/helpers/useUpdateEffect.js.map +1 -0
  735. package/es/shared/helpers.js +2 -0
  736. package/es/shared/helpers.js.map +1 -1
  737. package/es/shared/index.d.ts +10 -10
  738. package/es/shared/index.js +9 -11
  739. package/es/shared/index.js.map +1 -1
  740. package/es/shared/locales/en-GB.d.ts +1 -0
  741. package/es/shared/locales/en-GB.js +2 -1
  742. package/es/shared/locales/en-GB.js.map +1 -1
  743. package/es/shared/locales/en-US.d.ts +1 -0
  744. package/es/shared/locales/index.d.ts +4 -2
  745. package/es/shared/locales/index.js +2 -1
  746. package/es/shared/locales/index.js.map +1 -1
  747. package/es/shared/locales/nb-NO.d.ts +1 -0
  748. package/es/shared/locales/nb-NO.js +2 -1
  749. package/es/shared/locales/nb-NO.js.map +1 -1
  750. package/es/shared/types.d.ts +4 -1
  751. package/es/shared/types.js.map +1 -1
  752. package/es/shared/useLocale.d.ts +2 -0
  753. package/es/shared/useLocale.js +29 -0
  754. package/es/shared/useLocale.js.map +1 -0
  755. package/es/style/core/scopes.scss +3 -0
  756. package/es/style/dnb-ui-basis.css +1 -0
  757. package/es/style/dnb-ui-basis.min.css +1 -1
  758. package/es/style/dnb-ui-body.css +1 -0
  759. package/es/style/dnb-ui-body.min.css +1 -1
  760. package/es/style/dnb-ui-components.css +281 -160
  761. package/es/style/dnb-ui-components.min.css +3 -3
  762. package/es/style/dnb-ui-core.css +1 -0
  763. package/es/style/dnb-ui-core.min.css +1 -1
  764. package/es/style/dnb-ui-extensions.css +105 -1
  765. package/es/style/dnb-ui-extensions.min.css +1 -1
  766. package/es/style/dnb-ui-forms.css +105 -1
  767. package/es/style/dnb-ui-forms.min.css +1 -1
  768. package/es/style/dnb-ui-forms.scss +1 -0
  769. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +3 -6
  770. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  771. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +427 -250
  772. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +16 -6
  773. package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +3 -6
  774. package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  775. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +105 -1
  776. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  777. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +105 -1
  778. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  779. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +5 -2
  780. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  781. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +566 -315
  782. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +20 -8
  783. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +5 -2
  784. package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  785. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +105 -1
  786. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  787. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +105 -1
  788. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  789. package/es/style/themes/theme-ui/ui-theme-basis.css +3 -6
  790. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  791. package/es/style/themes/theme-ui/ui-theme-components.css +427 -250
  792. package/es/style/themes/theme-ui/ui-theme-components.min.css +16 -6
  793. package/es/style/themes/theme-ui/ui-theme-elements.css +3 -6
  794. package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  795. package/es/style/themes/theme-ui/ui-theme-extensions.css +105 -1
  796. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  797. package/es/style/themes/theme-ui/ui-theme-forms.css +105 -1
  798. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  799. package/es/style/themes/theme-ui/ui-theme-tags.css +3 -6
  800. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  801. package/esm/dnb-ui-basis.min.mjs +1 -1
  802. package/esm/dnb-ui-components.min.mjs +1 -1
  803. package/esm/dnb-ui-elements.min.mjs +1 -1
  804. package/esm/dnb-ui-extensions.min.mjs +3 -3
  805. package/esm/dnb-ui-lib.min.mjs +1 -1
  806. package/extensions/forms/DataContext/At/At.js.map +1 -1
  807. package/extensions/forms/DataContext/Context.d.ts +31 -8
  808. package/extensions/forms/DataContext/Context.js +14 -3
  809. package/extensions/forms/DataContext/Context.js.map +1 -1
  810. package/extensions/forms/DataContext/Provider/Provider.d.ts +29 -16
  811. package/extensions/forms/DataContext/Provider/Provider.js +325 -78
  812. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  813. package/extensions/forms/DataContext/Provider/ProviderDocs.d.ts +3 -0
  814. package/extensions/forms/DataContext/Provider/ProviderDocs.js +85 -0
  815. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -0
  816. package/extensions/forms/Field/ArraySelection/ArraySelection.js +2 -2
  817. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  818. package/extensions/forms/Field/Date/Date.js +4 -4
  819. package/extensions/forms/Field/Date/Date.js.map +1 -1
  820. package/extensions/forms/Field/Expiry/Expiry.js +5 -5
  821. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  822. package/extensions/forms/Field/Number/Number.js +4 -4
  823. package/extensions/forms/Field/Number/Number.js.map +1 -1
  824. package/extensions/forms/Field/Password/Password.d.ts +1 -1
  825. package/extensions/forms/Field/Password/Password.js.map +1 -1
  826. package/extensions/forms/Field/Password/style/dnb-password.scss +1 -1
  827. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +5 -5
  828. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  829. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -1
  830. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  831. package/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -4
  832. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  833. package/extensions/forms/Field/Selection/Selection.js +6 -6
  834. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  835. package/extensions/forms/Field/String/String.js +4 -4
  836. package/extensions/forms/Field/String/String.js.map +1 -1
  837. package/extensions/forms/Field/String/StringDocs.js +9 -4
  838. package/extensions/forms/Field/String/StringDocs.js.map +1 -1
  839. package/extensions/forms/Field/Toggle/Toggle.js +8 -8
  840. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  841. package/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -1
  842. package/extensions/forms/FieldBlock/FieldBlock.js +42 -20
  843. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  844. package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +2 -2
  845. package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  846. package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  847. package/extensions/forms/Form/Handler/Handler.js +49 -9
  848. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  849. package/extensions/forms/Form/Handler/HandlerDocs.d.ts +3 -0
  850. package/extensions/forms/Form/Handler/HandlerDocs.js +39 -0
  851. package/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -0
  852. package/extensions/forms/Form/SubmitButton/SubmitButton.d.ts +6 -1
  853. package/extensions/forms/Form/SubmitButton/SubmitButton.js +21 -12
  854. package/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  855. package/extensions/forms/Form/SubmitButton/SubmitButtonDocs.d.ts +2 -0
  856. package/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js +23 -0
  857. package/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js.map +1 -0
  858. package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.d.ts +14 -0
  859. package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +69 -0
  860. package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -0
  861. package/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.d.ts +2 -0
  862. package/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js +18 -0
  863. package/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js.map +1 -0
  864. package/extensions/forms/Form/SubmitIndicator/index.d.ts +2 -0
  865. package/extensions/forms/Form/SubmitIndicator/index.js +3 -0
  866. package/extensions/forms/Form/SubmitIndicator/index.js.map +1 -0
  867. package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +99 -0
  868. package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -0
  869. package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +117 -0
  870. package/extensions/forms/Form/SubmitIndicator/style/index.d.ts +5 -0
  871. package/extensions/forms/Form/SubmitIndicator/style/index.js +1 -0
  872. package/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -0
  873. package/extensions/forms/Form/data-context/getData.d.ts +1 -1
  874. package/extensions/forms/Form/data-context/getData.js.map +1 -1
  875. package/extensions/forms/Form/data-context/useData.d.ts +3 -3
  876. package/extensions/forms/Form/data-context/useData.js +32 -12
  877. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  878. package/extensions/forms/Form/data-context/useError.d.ts +3 -2
  879. package/extensions/forms/Form/data-context/useError.js +8 -6
  880. package/extensions/forms/Form/data-context/useError.js.map +1 -1
  881. package/extensions/forms/Form/index.d.ts +1 -0
  882. package/extensions/forms/Form/index.js +1 -0
  883. package/extensions/forms/Form/index.js.map +1 -1
  884. package/extensions/forms/Iterate/Array/Array.js +2 -2
  885. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  886. package/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +2 -2
  887. package/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
  888. package/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +2 -2
  889. package/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
  890. package/extensions/forms/StepsLayout/NextButton/NextButton.d.ts +1 -3
  891. package/extensions/forms/StepsLayout/NextButton/NextButton.js +4 -3
  892. package/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  893. package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.d.ts +1 -3
  894. package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +6 -2
  895. package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  896. package/extensions/forms/StepsLayout/StepsLayout.d.ts +2 -2
  897. package/extensions/forms/StepsLayout/StepsLayout.js +55 -26
  898. package/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  899. package/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +3 -0
  900. package/extensions/forms/StepsLayout/StepsLayoutDocs.js +50 -0
  901. package/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -0
  902. package/extensions/forms/StepsLayout/style/dnb-steps-layout.css +6 -1
  903. package/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  904. package/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +11 -1
  905. package/extensions/forms/Value/Boolean/Boolean.js +2 -2
  906. package/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  907. package/extensions/forms/Value/Number/Number.js +5 -5
  908. package/extensions/forms/Value/Number/Number.js.map +1 -1
  909. package/extensions/forms/Value/String/String.js +2 -2
  910. package/extensions/forms/Value/String/String.js.map +1 -1
  911. package/extensions/forms/hooks/DataValueDocs.js +3 -3
  912. package/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  913. package/extensions/forms/hooks/index.d.ts +6 -3
  914. package/extensions/forms/hooks/index.js +2 -3
  915. package/extensions/forms/hooks/index.js.map +1 -1
  916. package/extensions/forms/hooks/useFieldProps.d.ts +23 -0
  917. package/extensions/forms/hooks/useFieldProps.js +764 -0
  918. package/extensions/forms/hooks/useFieldProps.js.map +1 -0
  919. package/extensions/forms/style/dnb-forms.css +105 -1
  920. package/extensions/forms/style/dnb-forms.min.css +1 -1
  921. package/extensions/forms/types.d.ts +67 -4
  922. package/extensions/forms/types.js +3 -2
  923. package/extensions/forms/types.js.map +1 -1
  924. package/extensions/forms/utils/ajv.d.ts +9 -7
  925. package/extensions/forms/utils/ajv.js +29 -14
  926. package/extensions/forms/utils/ajv.js.map +1 -1
  927. package/fragments/scroll-view/ScrollView.d.ts +2 -2
  928. package/fragments/scroll-view/ScrollView.js +4 -1
  929. package/fragments/scroll-view/ScrollView.js.map +1 -1
  930. package/package.json +1 -1
  931. package/shared/Context.d.ts +20 -11
  932. package/shared/Context.js.map +1 -1
  933. package/shared/Eufemia.d.ts +2 -2
  934. package/shared/Eufemia.js +2 -2
  935. package/shared/Eufemia.js.map +1 -1
  936. package/shared/Provider.js.map +1 -1
  937. package/shared/defaults.d.ts +3 -3
  938. package/shared/defaults.js.map +1 -1
  939. package/shared/helpers/debounce.d.ts +21 -30
  940. package/shared/helpers/debounce.js +23 -11
  941. package/shared/helpers/debounce.js.map +1 -1
  942. package/shared/helpers/isAsync.d.ts +7 -0
  943. package/shared/helpers/isAsync.js +14 -0
  944. package/shared/helpers/isAsync.js.map +1 -0
  945. package/shared/helpers/runCssVersionMismatchWarning.d.ts +8 -0
  946. package/shared/helpers/runCssVersionMismatchWarning.js +25 -0
  947. package/shared/helpers/runCssVersionMismatchWarning.js.map +1 -0
  948. package/{extensions/forms/hooks → shared/helpers}/useId.js +1 -1
  949. package/shared/helpers/useId.js.map +1 -0
  950. package/shared/helpers/useMountEffect.js.map +1 -0
  951. package/shared/helpers/useMounted.js.map +1 -0
  952. package/shared/helpers/useSharedState.js +15 -9
  953. package/shared/helpers/useSharedState.js.map +1 -1
  954. package/shared/helpers/useUnmountEffect.js.map +1 -0
  955. package/shared/helpers/useUpdateEffect.js.map +1 -0
  956. package/shared/helpers.js +2 -0
  957. package/shared/helpers.js.map +1 -1
  958. package/shared/index.d.ts +10 -10
  959. package/shared/index.js +9 -11
  960. package/shared/index.js.map +1 -1
  961. package/shared/locales/en-GB.d.ts +1 -0
  962. package/shared/locales/en-GB.js +2 -1
  963. package/shared/locales/en-GB.js.map +1 -1
  964. package/shared/locales/en-US.d.ts +1 -0
  965. package/shared/locales/index.d.ts +4 -2
  966. package/shared/locales/index.js +2 -1
  967. package/shared/locales/index.js.map +1 -1
  968. package/shared/locales/nb-NO.d.ts +1 -0
  969. package/shared/locales/nb-NO.js +2 -1
  970. package/shared/locales/nb-NO.js.map +1 -1
  971. package/shared/types.d.ts +4 -1
  972. package/shared/types.js.map +1 -1
  973. package/shared/useLocale.d.ts +2 -0
  974. package/shared/useLocale.js +29 -0
  975. package/shared/useLocale.js.map +1 -0
  976. package/style/core/scopes.scss +3 -0
  977. package/style/dnb-ui-basis.css +1 -0
  978. package/style/dnb-ui-basis.min.css +1 -1
  979. package/style/dnb-ui-body.css +1 -0
  980. package/style/dnb-ui-body.min.css +1 -1
  981. package/style/dnb-ui-components.css +281 -160
  982. package/style/dnb-ui-components.min.css +3 -3
  983. package/style/dnb-ui-core.css +1 -0
  984. package/style/dnb-ui-core.min.css +1 -1
  985. package/style/dnb-ui-extensions.css +105 -1
  986. package/style/dnb-ui-extensions.min.css +1 -1
  987. package/style/dnb-ui-forms.css +105 -1
  988. package/style/dnb-ui-forms.min.css +1 -1
  989. package/style/dnb-ui-forms.scss +1 -0
  990. package/style/themes/theme-eiendom/eiendom-theme-basis.css +3 -6
  991. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  992. package/style/themes/theme-eiendom/eiendom-theme-components.css +427 -250
  993. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +16 -6
  994. package/style/themes/theme-eiendom/eiendom-theme-elements.css +3 -6
  995. package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  996. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +105 -1
  997. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  998. package/style/themes/theme-eiendom/eiendom-theme-forms.css +105 -1
  999. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  1000. package/style/themes/theme-sbanken/sbanken-theme-basis.css +5 -2
  1001. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  1002. package/style/themes/theme-sbanken/sbanken-theme-components.css +566 -315
  1003. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +20 -8
  1004. package/style/themes/theme-sbanken/sbanken-theme-elements.css +5 -2
  1005. package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  1006. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +105 -1
  1007. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  1008. package/style/themes/theme-sbanken/sbanken-theme-forms.css +105 -1
  1009. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  1010. package/style/themes/theme-ui/ui-theme-basis.css +3 -6
  1011. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  1012. package/style/themes/theme-ui/ui-theme-components.css +427 -250
  1013. package/style/themes/theme-ui/ui-theme-components.min.css +16 -6
  1014. package/style/themes/theme-ui/ui-theme-elements.css +3 -6
  1015. package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  1016. package/style/themes/theme-ui/ui-theme-extensions.css +105 -1
  1017. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  1018. package/style/themes/theme-ui/ui-theme-forms.css +105 -1
  1019. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  1020. package/style/themes/theme-ui/ui-theme-tags.css +3 -6
  1021. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  1022. package/umd/dnb-ui-basis.min.js +1 -1
  1023. package/umd/dnb-ui-components.min.js +1 -1
  1024. package/umd/dnb-ui-elements.min.js +1 -1
  1025. package/umd/dnb-ui-extensions.min.js +3 -3
  1026. package/umd/dnb-ui-lib.min.js +1 -1
  1027. package/cjs/extensions/forms/hooks/useDataValue.d.ts +0 -18
  1028. package/cjs/extensions/forms/hooks/useDataValue.js +0 -461
  1029. package/cjs/extensions/forms/hooks/useDataValue.js.map +0 -1
  1030. package/cjs/extensions/forms/hooks/useId.js.map +0 -1
  1031. package/cjs/extensions/forms/hooks/useMountEffect.js.map +0 -1
  1032. package/cjs/extensions/forms/hooks/useMounted.js.map +0 -1
  1033. package/cjs/extensions/forms/hooks/useUnmountEffect.js.map +0 -1
  1034. package/cjs/extensions/forms/hooks/useUpdateEffect.js.map +0 -1
  1035. package/es/extensions/forms/hooks/useDataValue.d.ts +0 -18
  1036. package/es/extensions/forms/hooks/useDataValue.js +0 -443
  1037. package/es/extensions/forms/hooks/useDataValue.js.map +0 -1
  1038. package/es/extensions/forms/hooks/useId.js.map +0 -1
  1039. package/es/extensions/forms/hooks/useMountEffect.js.map +0 -1
  1040. package/es/extensions/forms/hooks/useMounted.js.map +0 -1
  1041. package/es/extensions/forms/hooks/useUnmountEffect.js.map +0 -1
  1042. package/es/extensions/forms/hooks/useUpdateEffect.js.map +0 -1
  1043. package/extensions/forms/hooks/useDataValue.d.ts +0 -18
  1044. package/extensions/forms/hooks/useDataValue.js +0 -451
  1045. package/extensions/forms/hooks/useDataValue.js.map +0 -1
  1046. package/extensions/forms/hooks/useId.js.map +0 -1
  1047. package/extensions/forms/hooks/useMountEffect.js.map +0 -1
  1048. package/extensions/forms/hooks/useMounted.js.map +0 -1
  1049. package/extensions/forms/hooks/useUnmountEffect.js.map +0 -1
  1050. package/extensions/forms/hooks/useUpdateEffect.js.map +0 -1
  1051. /package/cjs/{extensions/forms/hooks → shared/helpers}/useId.d.ts +0 -0
  1052. /package/cjs/{extensions/forms/hooks → shared/helpers}/useMountEffect.d.ts +0 -0
  1053. /package/cjs/{extensions/forms/hooks → shared/helpers}/useMountEffect.js +0 -0
  1054. /package/cjs/{extensions/forms/hooks → shared/helpers}/useMounted.d.ts +0 -0
  1055. /package/cjs/{extensions/forms/hooks → shared/helpers}/useMounted.js +0 -0
  1056. /package/cjs/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.d.ts +0 -0
  1057. /package/cjs/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.js +0 -0
  1058. /package/cjs/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.d.ts +0 -0
  1059. /package/cjs/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.js +0 -0
  1060. /package/es/{extensions/forms/hooks → shared/helpers}/useId.d.ts +0 -0
  1061. /package/es/{extensions/forms/hooks → shared/helpers}/useMountEffect.d.ts +0 -0
  1062. /package/es/{extensions/forms/hooks → shared/helpers}/useMountEffect.js +0 -0
  1063. /package/es/{extensions/forms/hooks → shared/helpers}/useMounted.d.ts +0 -0
  1064. /package/es/{extensions/forms/hooks → shared/helpers}/useMounted.js +0 -0
  1065. /package/es/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.d.ts +0 -0
  1066. /package/es/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.js +0 -0
  1067. /package/es/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.d.ts +0 -0
  1068. /package/es/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.js +0 -0
  1069. /package/{extensions/forms/hooks → shared/helpers}/useId.d.ts +0 -0
  1070. /package/{extensions/forms/hooks → shared/helpers}/useMountEffect.d.ts +0 -0
  1071. /package/{extensions/forms/hooks → shared/helpers}/useMountEffect.js +0 -0
  1072. /package/{extensions/forms/hooks → shared/helpers}/useMounted.d.ts +0 -0
  1073. /package/{extensions/forms/hooks → shared/helpers}/useMounted.js +0 -0
  1074. /package/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.d.ts +0 -0
  1075. /package/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.js +0 -0
  1076. /package/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.d.ts +0 -0
  1077. /package/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.js","names":["React","useContext","useState","useEffect","useRef","classnames","makeUniqueId","findElementInChildren","extendPropsWithContext","validateDOMAttributes","dispatchCustomElementEvent","createSpacingClasses","AccordionGroup","AccordionHeader","AccordionContent","AccordionContext","AccordionProviderContext","Context","AccordionStore","Store","rememberWarning","accordionDefaultProps","Accordion","_ref","variant","icon_size","restOfProps","_objectWithoutProperties","_excluded","props","_objectSpread","context","group","id","current","store","previousExpanded","setPreviousExpanded","expanded","setExpanded","getInitialExpandedState","undefined","thisInstance","_id","handleDisabledClick","callOnChange","callOnChangeHandler","close","setExpandedState","state","window","addInstance","onInit","_window","_window$__dnbAccordio","removeInstance","flush_remembered_state","flush","expanded_id","expanded_ssr","remember_state","storedExpanded","getState","changeOpened","saveState","e","preventDefault","params","onChange","_window2","_window2$__dnbAccordi","event","createElement","Consumer","globalContext","nestedContext","expandedState","extendedProps","skeleton","translation","className","class","_className","prerender","prevent_rerender","prevent_rerender_conditional","single_container","disabled","no_animation","_expanded_ssr","children","_group","title","description","left_component","icon","icon_position","on_change","on_state_update","contentRef","restOfExtendedProps","_excluded2","mainParams","onClick","extendedPropsForContext","accordionContext","Provider","value","cur","type","_AccordionHeader","defaultProps","Group","expandedId","setExpandedId","instanceIDs","storedData","getData","currentIDs","includes","fallbackId","instance","push","_extends","Header","Content","_supportsSpacingProps"],"sources":["../../../../src/components/accordion/Accordion.tsx"],"sourcesContent":["/**\n * Web Accordion Component\n *\n */\n\nimport React, {\n useContext,\n useState,\n useEffect,\n useRef,\n HTMLProps,\n} from 'react'\n\nimport classnames from 'classnames'\nimport {\n makeUniqueId,\n findElementInChildren,\n extendPropsWithContext,\n validateDOMAttributes,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\n\nimport type { ButtonIconPosition } from '../Button'\nimport type { HeadingLevel } from '../Heading'\nimport type { IconIcon, IconSize } from '../Icon'\nimport type { SkeletonShow } from '../Skeleton'\nimport type { SpacingProps } from '../space/types'\n\nimport AccordionGroup from './AccordionGroup'\nimport AccordionHeader from './AccordionHeader'\nimport AccordionContent from './AccordionContent'\nimport AccordionContext from './AccordionContext'\nimport AccordionProviderContext from './AccordionProviderContext'\nimport Context from '../../shared/Context'\n\nimport { AccordionStore, Store, rememberWarning } from './AccordionStore'\nimport { accordionDefaultProps } from './defaultProps'\n\nexport type AccordionVariant = 'plain' | 'default' | 'outlined' | 'filled'\n\nexport type AccordionHeading = boolean | React.ReactNode\n\nexport type AccordionIcon =\n | IconIcon\n | {\n closed?: React.ReactNode | ((...args: any[]) => any)\n /**\n * If set to `true` the accordion will be expanded as its initial state.\n */\n expanded?: React.ReactNode | ((...args: any[]) => any)\n }\n\nexport type AccordionAttributes = string | Record<string, unknown>\n\nexport type AccordionIconPosition = ButtonIconPosition\n\nexport type AccordionProps = Omit<React.HTMLProps<HTMLElement>, 'ref'> &\n SpacingProps & {\n /**\n * A title as a string or React element. It will be used as the button text.\n */\n title?: React.ReactNode\n description?: React.ReactNode\n /**\n * If set to `true` the accordion will be expanded as its initial state.\n */\n expanded?: boolean\n /**\n * If set to `true`, the open and close animation will be omitted.\n */\n no_animation?: boolean\n /**\n * If set to `true` the accordion will be expanded during SSR. Can be potentially useful for SEO, although it will disturb client hydration, where React expects the same state. But that&#39;s mainly a technical aspect to consider.\n */\n expanded_ssr?: boolean\n /**\n */\n prerender?: boolean\n /**\n * If set to `true` the accordion component will not re-render its content – can be useful for widgets you don&#39;t have control of storing the temporary state during an interaction.\n */\n prevent_rerender?: boolean\n /**\n * Use this prop together with `prevent_rerender` – and if it is to `true`, the accordion component will re-render if the children are a new React element and does not match the previous one anymore.\n */\n prevent_rerender_conditional?: boolean\n /**\n * If set to `true`, it will remember a changed state initiated by the user. It requires a unique `id`. It will store the sate in the local storage.\n */\n remember_state?: boolean\n /**\n * Send along a custom React Ref for `.dnb-accordion__content`.\n */\n contentRef?: React.MutableRefObject<unknown>\n /**\n * If set to `true`, the saved (remembered) will be removed and the initial component state will be used and set.\n */\n flush_remembered_state?: boolean\n /**\n * If set to `true`, a group of accordions will be wrapped to sidebar looking menu for medium and larger screens.\n */\n single_container?: boolean\n /**\n * Defines the used styling. As of now, only `outlined` is available. Use `plain` for no styles. It defaults to `outlined`.\n */\n variant?: AccordionVariant\n /**\n * Will add a React element on the left side of the `title`, inside `AccordionHeaderContainer`.\n */\n left_component?: React.ReactNode\n /**\n * If set to `true`, the accordion button will be disabled (dimmed).\n */\n disabled?: boolean\n /**\n * If set to `true`, an overlaying skeleton with animation will be shown.\n */\n skeleton?: SkeletonShow\n /**\n * A unique `id` that will be used on the button element. If you use `remember_state`, an id is required.\n */\n id?: string\n group?: string\n /**\n * Gives you the option to replace the used `button` element. Provide a React element, including a string (HTML element). Defaults to a `div` with all the needed accessibility features included.\n */\n element?: React.ReactNode\n /**\n * If set to `true`, level 2 (h2) will be used. You can provide your own HTML heading (`h3`), or provide a `heading_level` property.\n */\n heading?: AccordionHeading\n /**\n * If `heading` is set to `true`, you can provide a numeric value to define a different heading level. Defaults to `2`.\n */\n heading_level?: HeadingLevel\n /**\n * Will replace the `chevron` icon. The icon will still rotate (by CSS). You can use an object to use two different icons, one for the closed state and one for the expanded state `{ closed, expanded }`.\n */\n icon?: AccordionIcon\n /**\n * Will set the placement of the icon. Defaults to `left`.\n */\n icon_position?: AccordionIconPosition\n /**\n * Define a different icon size. Defaults to `medium` (1.5rem).\n */\n icon_size?: IconSize\n attributes?: AccordionAttributes\n class?: string\n className?: string\n children?: React.ReactNode\n /**\n * Will be called by user click interaction. Returns an object with a boolean state `expanded` inside `{ expanded, id, event, ...event }`.\n */\n on_change?: (...args: any[]) => any\n on_state_update?: (...args: any[]) => any\n }\n\nfunction Accordion({\n variant = 'outlined',\n icon_size = 'medium',\n ...restOfProps\n}: AccordionProps) {\n const props = { variant, icon_size, ...restOfProps }\n\n const context = useContext(AccordionProviderContext)\n\n const group = props.group || context?.group\n const id = useRef(props.id || makeUniqueId()).current\n\n const store = new Store({ id: props.id, group })\n\n // States ordered last here to make sure that the getInitialExpandedState have access to the store\n const [previousExpanded, setPreviousExpanded] = useState(props.expanded)\n const [expanded, setExpanded] = useState<boolean>(\n getInitialExpandedState()\n )\n\n // replacement for getDerivedStateFromProps\n if (props.expanded !== previousExpanded) {\n setExpanded(props.expanded !== undefined ? props.expanded : false)\n setPreviousExpanded(props.expanded)\n }\n\n const thisInstance = {\n _id: id,\n context,\n handleDisabledClick,\n callOnChange,\n callOnChangeHandler,\n close,\n setExpandedState,\n state: { expanded, group },\n props,\n store,\n }\n\n // Constructor\n useEffect(() => {\n if (group && typeof window !== 'undefined') {\n window['__dnbAccordion'] = window['__dnbAccordion'] || {}\n window['__dnbAccordion'][group] =\n window['__dnbAccordion'][group] || new AccordionStore(group)\n\n window['__dnbAccordion'][group].addInstance(thisInstance)\n }\n\n if (context && typeof context?.onInit === 'function') {\n context.onInit(thisInstance)\n }\n\n return () => {\n if (group && typeof window !== 'undefined') {\n window?.['__dnbAccordion'][group]?.removeInstance(thisInstance)\n }\n }\n }, [])\n\n // componentDidUpdate\n useEffect(() => {\n if (context.flush_remembered_state) {\n store.flush()\n setExpanded(props.expanded)\n }\n\n if (context?.expanded_id && context.expanded_id === props.id) {\n setExpanded(true)\n }\n }, [context.flush_remembered_state, context.expanded_id])\n\n // Gets the initial expanded sate, to prevent the opening and closing of Accordion\n // That happens when if we put this logic in a useEffect that runs after the initial expanded state is set\n // Since useEffect runs after every render\n function getInitialExpandedState() {\n if (props.expanded_ssr || context?.expanded_ssr) {\n return typeof window === 'undefined'\n }\n\n if (props.remember_state || context.remember_state) {\n const storedExpanded = store.getState()\n\n if (props.expanded && storedExpanded === false) {\n return false\n }\n\n if (storedExpanded) {\n return true\n }\n }\n\n return props.expanded !== undefined\n ? props.expanded\n : context?.expanded !== undefined\n ? context.expanded\n : false\n }\n\n function setExpandedState(expanded: boolean) {\n setExpanded(expanded)\n }\n\n function close() {\n changeOpened(false)\n }\n\n function changeOpened(expanded: boolean) {\n setExpanded(expanded)\n\n // check if a event exists, because, then it's a user click\n if (props.remember_state || context.remember_state) {\n store.saveState(expanded)\n }\n }\n\n function handleDisabledClick(e: React.MouseEvent<HTMLElement>) {\n e.preventDefault()\n return false\n }\n\n function callOnChangeHandler(...params: any[]) {\n callOnChange(...params)\n if (context?.onChange) {\n context?.onChange(...params)\n }\n if (group && typeof window !== 'undefined') {\n window?.['__dnbAccordion'][group]?.onChange(...params)\n }\n }\n\n function callOnChange(...params: any[]) {\n const { expanded, event } = params[0]\n\n changeOpened(expanded)\n\n dispatchCustomElementEvent(thisInstance, 'on_change', {\n expanded,\n event,\n })\n }\n\n return (\n <Context.Consumer>\n {(globalContext) => (\n <AccordionContext.Consumer>\n {(nestedContext) => {\n // use only the props from context, who are available here anyway\n let expandedState = expanded\n\n const extendedProps = extendPropsWithContext(\n props,\n accordionDefaultProps,\n context, // group context\n nestedContext as Record<string, unknown>, // internal context\n { skeleton: globalContext?.skeleton },\n globalContext.Accordion, // global context\n globalContext.translation.Accordion\n )\n\n if (expandedState === undefined && globalContext.Accordion) {\n if (globalContext.Accordion.expanded) {\n expandedState = extendedProps.expanded\n }\n }\n\n const {\n variant,\n className,\n class: _className,\n prerender,\n prevent_rerender,\n prevent_rerender_conditional,\n single_container,\n remember_state,\n disabled,\n skeleton,\n no_animation,\n expanded_ssr: _expanded_ssr, // eslint-disable-line\n children,\n\n id: _id, // eslint-disable-line\n group: _group, // eslint-disable-line\n // expanded: _expanded, // eslint-disable-line\n\n title, // eslint-disable-line\n description, // eslint-disable-line\n left_component, // eslint-disable-line\n icon, // eslint-disable-line\n icon_position, // eslint-disable-line\n icon_size, // eslint-disable-line\n on_change, // eslint-disable-line\n on_state_update, // eslint-disable-line\n\n contentRef, // eslint-disable-line\n\n ...restOfExtendedProps\n } = extendedProps\n\n const mainParams = {\n id,\n className: classnames(\n 'dnb-accordion',\n expandedState && 'dnb-accordion--expanded',\n variant && `dnb-accordion__variant--${variant}`,\n prerender && 'dnb-accordion--prerender',\n createSpacingClasses(extendedProps),\n className,\n _className\n ),\n } as HTMLProps<HTMLDivElement>\n\n if (disabled) {\n mainParams.onClick = handleDisabledClick\n }\n\n // to remove spacing props\n validateDOMAttributes(props, restOfExtendedProps)\n\n const extendedPropsForContext = extendPropsWithContext(\n props,\n accordionDefaultProps,\n { expanded, group },\n context\n )\n\n const accordionContext = {\n ...extendedPropsForContext,\n id,\n expanded: expandedState,\n prerender: prerender,\n prevent_rerender: prevent_rerender,\n prevent_rerender_conditional: prevent_rerender_conditional,\n single_container: single_container,\n remember_state: remember_state,\n disabled: disabled,\n skeleton: skeleton,\n no_animation: no_animation,\n callOnChange: callOnChangeHandler,\n }\n\n return (\n <AccordionContext.Provider value={accordionContext}>\n <div {...mainParams}>\n {findElementInChildren(\n children,\n (cur) => cur.type === AccordionHeader\n ) ? null : (\n <AccordionHeader />\n )}\n {findElementInChildren(\n children,\n (cur) => cur.type === AccordionContent\n ) ? (\n children\n ) : (\n <AccordionContent>{children}</AccordionContent>\n )}\n </div>\n </AccordionContext.Provider>\n )\n }}\n </AccordionContext.Consumer>\n )}\n </Context.Consumer>\n )\n}\n// TEMPORARY SOLUTION (defaultProps will be deprecated at one point). Needs to replacement with default prop parameters for example \"({expanded: null})\"\n// Only solved this way to prevent tests from failing, for when expanded is undefined instead of null\nAccordion.defaultProps = accordionDefaultProps\n\nexport type GroupProps = AccordionProps & {\n allow_close_all?: boolean\n expanded_id?: string\n}\n\nconst Group = (props: GroupProps) => {\n if (props.remember_state && !props.id) {\n rememberWarning('accordion group')\n }\n\n const [expandedId, setExpandedId] = useState<string | null>(null)\n\n const instanceIDs = useRef<string[]>([])\n\n const group = props?.id\n ? props.id\n : !props.group\n ? '#' + makeUniqueId()\n : undefined\n\n const store = new Store({ group })\n\n // Set stored expanded_id on mount\n useEffect(() => {\n const storedData = store.getData()\n const currentIDs = instanceIDs?.current\n\n if (!storedData?.id) {\n return\n }\n\n if (currentIDs.includes(storedData?.id)) {\n return\n }\n\n // 1. get the fallback id\n const fallbackId = currentIDs[0]\n\n if (!fallbackId) {\n return\n }\n\n // 2. set the fallback ids\n setExpandedId(fallbackId)\n }, [])\n\n // Store and reset fallback id\n useEffect(() => {\n if (!expandedId) {\n return\n }\n\n // 3. save the fallback id\n store.saveState(true, expandedId)\n\n // 4. and reset the fallback id\n setExpandedId(null)\n }, [expandedId])\n\n function onInit(instance) {\n if (\n instance.props.id &&\n !instanceIDs.current.includes(instance.props.id)\n ) {\n instanceIDs.current.push(instance.props.id)\n }\n }\n\n return (\n <AccordionGroup\n onInit={onInit}\n {...props}\n group={group}\n expanded_id={expandedId || props.expanded_id}\n />\n )\n}\n\nAccordion.Provider = AccordionGroup\nAccordion.Header = AccordionHeader\nAccordion.Content = AccordionContent\n\nAccordion.Group = Group\n\nGroup.Store = (group: string, id: string = null) => {\n return new Store({ group, id })\n}\n\nAccordion.Store = (id: string) => {\n return new Store({ id })\n}\n\nAccordion._supportsSpacingProps = true\n\nexport default Accordion\n"],"mappings":"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"}
1
+ {"version":3,"file":"Accordion.js","names":["React","useContext","useState","useEffect","useRef","classnames","makeUniqueId","findElementInChildren","extendPropsWithContext","validateDOMAttributes","dispatchCustomElementEvent","createSpacingClasses","AccordionGroup","AccordionHeader","AccordionContent","AccordionContext","AccordionProviderContext","Context","AccordionStore","Store","rememberWarning","accordionDefaultProps","Accordion","_ref","variant","icon_size","restOfProps","_objectWithoutProperties","_excluded","props","_objectSpread","context","group","id","current","store","previousExpanded","setPreviousExpanded","expanded","setExpanded","getInitialExpandedState","undefined","thisInstance","_id","handleDisabledClick","callOnChange","callOnChangeHandler","close","setExpandedState","state","window","addInstance","onInit","_window","_window$__dnbAccordio","removeInstance","flush_remembered_state","flush","expanded_id","expanded_ssr","remember_state","storedExpanded","getState","changeOpened","saveState","e","preventDefault","params","onChange","_window2","_window2$__dnbAccordi","event","createElement","Consumer","globalContext","nestedContext","expandedState","extendedProps","skeleton","translation","className","class","_className","prerender","prevent_rerender","prevent_rerender_conditional","single_container","disabled","no_animation","_expanded_ssr","children","_group","title","description","left_component","icon","icon_position","on_change","on_state_update","contentRef","restOfExtendedProps","_excluded2","mainParams","onClick","extendedPropsForContext","accordionContext","Provider","value","cur","type","_AccordionHeader","defaultProps","Group","expandedId","setExpandedId","instanceIDs","storedData","getData","currentIDs","includes","fallbackId","instance","push","_extends","Header","Content","_supportsSpacingProps"],"sources":["../../../../src/components/accordion/Accordion.tsx"],"sourcesContent":["/**\n * Web Accordion Component\n *\n */\n\nimport React, {\n useContext,\n useState,\n useEffect,\n useRef,\n HTMLProps,\n} from 'react'\n\nimport classnames from 'classnames'\nimport {\n makeUniqueId,\n findElementInChildren,\n extendPropsWithContext,\n validateDOMAttributes,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\n\nimport type { ButtonIconPosition } from '../Button'\nimport type { HeadingLevel } from '../Heading'\nimport type { IconIcon, IconSize } from '../Icon'\nimport type { SkeletonShow } from '../Skeleton'\nimport type { SpacingProps } from '../space/types'\n\nimport AccordionGroup from './AccordionGroup'\nimport AccordionHeader from './AccordionHeader'\nimport AccordionContent from './AccordionContent'\nimport AccordionContext from './AccordionContext'\nimport AccordionProviderContext from './AccordionProviderContext'\nimport Context from '../../shared/Context'\n\nimport { AccordionStore, Store, rememberWarning } from './AccordionStore'\nimport { accordionDefaultProps } from './defaultProps'\n\nexport type AccordionVariant = 'plain' | 'default' | 'outlined' | 'filled'\n\nexport type AccordionHeading = boolean | React.ReactNode\n\nexport type AccordionIcon =\n | IconIcon\n | {\n closed?: React.ReactNode | ((...args: any[]) => any)\n /**\n * If set to `true` the accordion will be expanded as its initial state.\n */\n expanded?: React.ReactNode | ((...args: any[]) => any)\n }\n\nexport type AccordionAttributes = string | Record<string, unknown>\n\nexport type AccordionIconPosition = ButtonIconPosition\n\nexport type AccordionProps = Omit<React.HTMLProps<HTMLElement>, 'ref'> &\n SpacingProps & {\n /**\n * A title as a string or React element. It will be used as the button text.\n */\n title?: React.ReactNode\n description?: React.ReactNode\n /**\n * If set to `true` the accordion will be expanded as its initial state.\n */\n expanded?: boolean\n /**\n * If set to `true`, the open and close animation will be omitted.\n */\n no_animation?: boolean\n /**\n * If set to `true` the accordion will be expanded during SSR. Can be potentially useful for SEO, although it will disturb client hydration, where React expects the same state. But that&#39;s mainly a technical aspect to consider.\n */\n expanded_ssr?: boolean\n /**\n */\n prerender?: boolean\n /**\n * If set to `true` the accordion component will not re-render its content – can be useful for widgets you don&#39;t have control of storing the temporary state during an interaction.\n */\n prevent_rerender?: boolean\n /**\n * Use this prop together with `prevent_rerender` – and if it is to `true`, the accordion component will re-render if the children are a new React element and does not match the previous one anymore.\n */\n prevent_rerender_conditional?: boolean\n /**\n * If set to `true`, it will remember a changed state initiated by the user. It requires a unique `id`. It will store the sate in the local storage.\n */\n remember_state?: boolean\n /**\n * Send along a custom React Ref for `.dnb-accordion__content`.\n */\n contentRef?: React.MutableRefObject<unknown>\n /**\n * If set to `true`, the saved (remembered) will be removed and the initial component state will be used and set.\n */\n flush_remembered_state?: boolean\n /**\n * If set to `true`, a group of accordions will be wrapped to sidebar looking menu for medium and larger screens.\n */\n single_container?: boolean\n /**\n * Defines the used styling. As of now, only `outlined` is available. Use `plain` for no styles. It defaults to `outlined`.\n */\n variant?: AccordionVariant\n /**\n * Will add a React element on the left side of the `title`, inside `AccordionHeaderContainer`.\n */\n left_component?: React.ReactNode\n /**\n * If set to `true`, the accordion button will be disabled (dimmed).\n */\n disabled?: boolean\n /**\n * If set to `true`, an overlaying skeleton with animation will be shown.\n */\n skeleton?: SkeletonShow\n /**\n * A unique `id` that will be used on the button element. If you use `remember_state`, an id is required.\n */\n id?: string\n group?: string\n /**\n * Gives you the option to replace the used `button` element. Provide a React element, including a string (HTML element). Defaults to a `div` with all the needed accessibility features included.\n */\n element?: React.ReactNode\n /**\n * If set to `true`, level 2 (h2) will be used. You can provide your own HTML heading (`h3`), or provide a `heading_level` property.\n */\n heading?: AccordionHeading\n /**\n * If `heading` is set to `true`, you can provide a numeric value to define a different heading level. Defaults to `2`.\n */\n heading_level?: HeadingLevel\n /**\n * Will replace the `chevron` icon. The icon will still rotate (by CSS). You can use an object to use two different icons, one for the closed state and one for the expanded state `{ closed, expanded }`.\n */\n icon?: AccordionIcon\n /**\n * Will set the placement of the icon. Defaults to `left`.\n */\n icon_position?: AccordionIconPosition\n /**\n * Define a different icon size. Defaults to `medium` (1.5rem).\n */\n icon_size?: IconSize\n attributes?: AccordionAttributes\n class?: string\n className?: string\n children?: React.ReactNode\n /**\n * Will be called by user click interaction. Returns an object with a boolean state `expanded` inside `{ expanded, id, event, ...event }`.\n */\n on_change?: (...args: any[]) => any\n on_state_update?: (...args: any[]) => any\n }\n\nfunction Accordion({\n variant = 'outlined',\n icon_size = 'medium',\n ...restOfProps\n}: AccordionProps) {\n const props = { variant, icon_size, ...restOfProps }\n\n const context = useContext(AccordionProviderContext)\n\n const group = props.group || context?.group\n const id = useRef(props.id || makeUniqueId()).current\n\n const store = new Store({ id: props.id, group })\n\n // States ordered last here to make sure that the getInitialExpandedState have access to the store\n const [previousExpanded, setPreviousExpanded] = useState(props.expanded)\n const [expanded, setExpanded] = useState<boolean>(\n getInitialExpandedState()\n )\n\n // replacement for getDerivedStateFromProps\n if (props.expanded !== previousExpanded) {\n setExpanded(props.expanded !== undefined ? props.expanded : false)\n setPreviousExpanded(props.expanded)\n }\n\n const thisInstance = {\n _id: id,\n context,\n handleDisabledClick,\n callOnChange,\n callOnChangeHandler,\n close,\n setExpandedState,\n state: { expanded, group },\n props,\n store,\n }\n\n // Constructor\n useEffect(() => {\n if (group && typeof window !== 'undefined') {\n window['__dnbAccordion'] = window['__dnbAccordion'] || {}\n window['__dnbAccordion'][group] =\n window['__dnbAccordion'][group] || new AccordionStore(group)\n\n window['__dnbAccordion'][group].addInstance(thisInstance)\n }\n\n if (context && typeof context?.onInit === 'function') {\n context.onInit(thisInstance)\n }\n\n return () => {\n if (group && typeof window !== 'undefined') {\n window?.['__dnbAccordion'][group]?.removeInstance(thisInstance)\n }\n }\n }, [])\n\n // componentDidUpdate\n useEffect(() => {\n if (context.flush_remembered_state) {\n store.flush()\n setExpanded(props.expanded)\n }\n\n if (context?.expanded_id && context.expanded_id === props.id) {\n setExpanded(true)\n }\n }, [context.flush_remembered_state, context.expanded_id])\n\n // Gets the initial expanded sate, to prevent the opening and closing of Accordion\n // That happens when if we put this logic in a useEffect that runs after the initial expanded state is set\n // Since useEffect runs after every render\n function getInitialExpandedState() {\n if (props.expanded_ssr || context?.expanded_ssr) {\n return typeof window === 'undefined'\n }\n\n if (props.remember_state || context.remember_state) {\n const storedExpanded = store.getState()\n\n if (props.expanded && storedExpanded === false) {\n return false\n }\n\n if (storedExpanded) {\n return true\n }\n }\n\n return props.expanded !== undefined\n ? props.expanded\n : context?.expanded !== undefined\n ? context.expanded\n : false\n }\n\n function setExpandedState(expanded: boolean) {\n setExpanded(expanded)\n }\n\n function close() {\n changeOpened(false)\n }\n\n function changeOpened(expanded: boolean) {\n setExpanded(expanded)\n\n // check if a event exists, because, then it's a user click\n if (props.remember_state || context.remember_state) {\n store.saveState(expanded)\n }\n }\n\n function handleDisabledClick(e: React.MouseEvent<HTMLElement>) {\n e.preventDefault()\n return false\n }\n\n function callOnChangeHandler(...params: any[]) {\n callOnChange(...params)\n if (context?.onChange) {\n context?.onChange(...params)\n }\n if (group && typeof window !== 'undefined') {\n window?.['__dnbAccordion'][group]?.onChange(...params)\n }\n }\n\n function callOnChange(...params: any[]) {\n const { expanded, event } = params[0]\n\n changeOpened(expanded)\n\n dispatchCustomElementEvent(thisInstance, 'on_change', {\n expanded,\n event,\n })\n }\n\n return (\n <Context.Consumer>\n {(globalContext) => (\n <AccordionContext.Consumer>\n {(nestedContext) => {\n // use only the props from context, who are available here anyway\n let expandedState = expanded\n\n const extendedProps = extendPropsWithContext(\n props,\n accordionDefaultProps,\n context, // group context\n nestedContext as Record<string, unknown>, // internal context\n { skeleton: globalContext?.skeleton },\n globalContext.Accordion, // global context\n globalContext.translation['Accordion']\n )\n\n if (expandedState === undefined && globalContext.Accordion) {\n if (globalContext.Accordion.expanded) {\n expandedState = extendedProps.expanded\n }\n }\n\n const {\n variant,\n className,\n class: _className,\n prerender,\n prevent_rerender,\n prevent_rerender_conditional,\n single_container,\n remember_state,\n disabled,\n skeleton,\n no_animation,\n expanded_ssr: _expanded_ssr, // eslint-disable-line\n children,\n\n id: _id, // eslint-disable-line\n group: _group, // eslint-disable-line\n // expanded: _expanded, // eslint-disable-line\n\n title, // eslint-disable-line\n description, // eslint-disable-line\n left_component, // eslint-disable-line\n icon, // eslint-disable-line\n icon_position, // eslint-disable-line\n icon_size, // eslint-disable-line\n on_change, // eslint-disable-line\n on_state_update, // eslint-disable-line\n\n contentRef, // eslint-disable-line\n\n ...restOfExtendedProps\n } = extendedProps\n\n const mainParams = {\n id,\n className: classnames(\n 'dnb-accordion',\n expandedState && 'dnb-accordion--expanded',\n variant && `dnb-accordion__variant--${variant}`,\n prerender && 'dnb-accordion--prerender',\n createSpacingClasses(extendedProps),\n className,\n _className\n ),\n } as HTMLProps<HTMLDivElement>\n\n if (disabled) {\n mainParams.onClick = handleDisabledClick\n }\n\n // to remove spacing props\n validateDOMAttributes(props, restOfExtendedProps)\n\n const extendedPropsForContext = extendPropsWithContext(\n props,\n accordionDefaultProps,\n { expanded, group },\n context\n )\n\n const accordionContext = {\n ...extendedPropsForContext,\n id,\n expanded: expandedState,\n prerender: prerender,\n prevent_rerender: prevent_rerender,\n prevent_rerender_conditional: prevent_rerender_conditional,\n single_container: single_container,\n remember_state: remember_state,\n disabled: disabled,\n skeleton: skeleton,\n no_animation: no_animation,\n callOnChange: callOnChangeHandler,\n }\n\n return (\n <AccordionContext.Provider value={accordionContext}>\n <div {...mainParams}>\n {findElementInChildren(\n children,\n (cur) => cur.type === AccordionHeader\n ) ? null : (\n <AccordionHeader />\n )}\n {findElementInChildren(\n children,\n (cur) => cur.type === AccordionContent\n ) ? (\n children\n ) : (\n <AccordionContent>{children}</AccordionContent>\n )}\n </div>\n </AccordionContext.Provider>\n )\n }}\n </AccordionContext.Consumer>\n )}\n </Context.Consumer>\n )\n}\n// TEMPORARY SOLUTION (defaultProps will be deprecated at one point). Needs to replacement with default prop parameters for example \"({expanded: null})\"\n// Only solved this way to prevent tests from failing, for when expanded is undefined instead of null\nAccordion.defaultProps = accordionDefaultProps\n\nexport type GroupProps = AccordionProps & {\n allow_close_all?: boolean\n expanded_id?: string\n}\n\nconst Group = (props: GroupProps) => {\n if (props.remember_state && !props.id) {\n rememberWarning('accordion group')\n }\n\n const [expandedId, setExpandedId] = useState<string | null>(null)\n\n const instanceIDs = useRef<string[]>([])\n\n const group = props?.id\n ? props.id\n : !props.group\n ? '#' + makeUniqueId()\n : undefined\n\n const store = new Store({ group })\n\n // Set stored expanded_id on mount\n useEffect(() => {\n const storedData = store.getData()\n const currentIDs = instanceIDs?.current\n\n if (!storedData?.id) {\n return\n }\n\n if (currentIDs.includes(storedData?.id)) {\n return\n }\n\n // 1. get the fallback id\n const fallbackId = currentIDs[0]\n\n if (!fallbackId) {\n return\n }\n\n // 2. set the fallback ids\n setExpandedId(fallbackId)\n }, [])\n\n // Store and reset fallback id\n useEffect(() => {\n if (!expandedId) {\n return\n }\n\n // 3. save the fallback id\n store.saveState(true, expandedId)\n\n // 4. and reset the fallback id\n setExpandedId(null)\n }, [expandedId])\n\n function onInit(instance) {\n if (\n instance.props.id &&\n !instanceIDs.current.includes(instance.props.id)\n ) {\n instanceIDs.current.push(instance.props.id)\n }\n }\n\n return (\n <AccordionGroup\n onInit={onInit}\n {...props}\n group={group}\n expanded_id={expandedId || props.expanded_id}\n />\n )\n}\n\nAccordion.Provider = AccordionGroup\nAccordion.Header = AccordionHeader\nAccordion.Content = AccordionContent\n\nAccordion.Group = Group\n\nGroup.Store = (group: string, id: string = null) => {\n return new Store({ group, id })\n}\n\nAccordion.Store = (id: string) => {\n return new Store({ id })\n}\n\nAccordion._supportsSpacingProps = true\n\nexport default Accordion\n"],"mappings":"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"}
@@ -14,5 +14,5 @@ export type AccordionContextProps = AccordionProps & SkeletonContextProps & {
14
14
  event: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>;
15
15
  }) => void;
16
16
  };
17
- declare const AccordionContext: React.Context<AccordionContextProps>;
17
+ declare const AccordionContext: React.Context<any>;
18
18
  export default AccordionContext;
@@ -29,7 +29,7 @@ const AccordionGroup = props => {
29
29
  event
30
30
  });
31
31
  }
32
- const extendedProps = extendPropsWithContext(props, accordionDefaultProps, context.Accordion, context.getTranslation(props).Accordion);
32
+ const extendedProps = extendPropsWithContext(props, accordionDefaultProps, context.Accordion, context.getTranslation(props)['Accordion']);
33
33
  const {
34
34
  expanded,
35
35
  expanded_id,
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionGroup.js","names":["React","useContext","classnames","isTrue","makeUniqueId","extendPropsWithContext","validateDOMAttributes","dispatchCustomElementEvent","createSpacingClasses","Context","AccordionGroupContext","accordionDefaultProps","AccordionGroup","props","context","id","thisInstance","_id","onChangeHandler","event","expanded","extendedProps","Accordion","getTranslation","expanded_id","prerender","prevent_rerender","single_container","contentRef","allow_close_all","remember_state","flush_remembered_state","disabled","group","onInit","className","class","_className","children","restOfExtendedProps","_objectWithoutProperties","_excluded","classes","params","_objectSpread","contextForProvider","onChange","createElement","Provider","value","_extends","role","_supportsSpacingProps"],"sources":["../../../../src/components/accordion/AccordionGroup.tsx"],"sourcesContent":["/**\n * Web AccordionGroup Component\n *\n */\n\nimport React, { useContext } from 'react'\n\nimport classnames from 'classnames'\nimport {\n isTrue,\n makeUniqueId,\n extendPropsWithContext,\n validateDOMAttributes,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\n\nimport Context from '../../shared/Context'\nimport AccordionGroupContext from './AccordionProviderContext'\n\nimport type { GroupProps } from './Accordion'\nimport { accordionDefaultProps } from './defaultProps'\n\nexport type AccordionGroupProps = React.HTMLProps<HTMLElement> &\n GroupProps & {\n onInit?: (...args: any[]) => any\n }\n\nconst AccordionGroup = (props: AccordionGroupProps) => {\n const context = useContext(Context)\n const id = props.id || makeUniqueId()\n\n const thisInstance = {\n _id: id,\n props,\n context,\n onChangeHandler,\n }\n\n function onChangeHandler(event) {\n dispatchCustomElementEvent(thisInstance, 'on_change', {\n id: event.id,\n expanded: event.expanded,\n event,\n })\n }\n\n // use only the props from context, who are available here anyway\n const extendedProps = extendPropsWithContext(\n props,\n accordionDefaultProps,\n context.Accordion,\n context.getTranslation(props).Accordion\n )\n\n const {\n expanded, // eslint-disable-line\n expanded_id, // eslint-disable-line\n prerender, // eslint-disable-line\n prevent_rerender, // eslint-disable-line\n single_container, // eslint-disable-line\n contentRef, // eslint-disable-line\n allow_close_all, // eslint-disable-line\n remember_state, // eslint-disable-line\n flush_remembered_state, // eslint-disable-line\n disabled, // eslint-disable-line\n group, // eslint-disable-line\n onInit, // eslint-disable-line\n className,\n class: _className,\n\n id: _id, // eslint-disable-line\n children, // eslint-disable-line\n\n ...restOfExtendedProps\n } = extendedProps\n\n const classes = classnames(\n 'dnb-accordion-group',\n isTrue(single_container) && 'dnb-accordion-group--single-container',\n createSpacingClasses(extendedProps),\n className,\n _className\n )\n\n const params = {\n ...restOfExtendedProps,\n }\n\n // also used for code markup simulation\n validateDOMAttributes(props, params)\n\n if (!extendedProps?.group && isTrue(props.single_container)) {\n extendedProps.group = makeUniqueId()\n }\n\n const contextForProvider = {\n ...extendedProps,\n id,\n onChange: onChangeHandler,\n }\n\n return (\n <AccordionGroupContext.Provider value={contextForProvider}>\n <div className={classes}>\n <span\n id={id}\n className=\"dnb-accordion-group__shell\"\n role=\"group\"\n {...params}\n >\n <span className=\"dnb-accordion-group__children\">{children}</span>\n </span>\n </div>\n </AccordionGroupContext.Provider>\n )\n}\n\nAccordionGroup._supportsSpacingProps = true\n\nexport default AccordionGroup\n"],"mappings":";;;;;;;;AAKA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AAEzC,OAAOC,UAAU,MAAM,YAAY;AACnC,SACEC,MAAM,EACNC,YAAY,EACZC,sBAAsB,EACtBC,qBAAqB,EACrBC,0BAA0B,QACrB,+BAA+B;AACtC,SAASC,oBAAoB,QAAQ,wBAAwB;AAE7D,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,OAAOC,qBAAqB,MAAM,4BAA4B;AAG9D,SAASC,qBAAqB,QAAQ,gBAAgB;AAOtD,MAAMC,cAAc,GAAIC,KAA0B,IAAK;EACrD,MAAMC,OAAO,GAAGb,UAAU,CAACQ,OAAO,CAAC;EACnC,MAAMM,EAAE,GAAGF,KAAK,CAACE,EAAE,IAAIX,YAAY,CAAC,CAAC;EAErC,MAAMY,YAAY,GAAG;IACnBC,GAAG,EAAEF,EAAE;IACPF,KAAK;IACLC,OAAO;IACPI;EACF,CAAC;EAED,SAASA,eAAeA,CAACC,KAAK,EAAE;IAC9BZ,0BAA0B,CAACS,YAAY,EAAE,WAAW,EAAE;MACpDD,EAAE,EAAEI,KAAK,CAACJ,EAAE;MACZK,QAAQ,EAAED,KAAK,CAACC,QAAQ;MACxBD;IACF,CAAC,CAAC;EACJ;EAGA,MAAME,aAAa,GAAGhB,sBAAsB,CAC1CQ,KAAK,EACLF,qBAAqB,EACrBG,OAAO,CAACQ,SAAS,EACjBR,OAAO,CAACS,cAAc,CAACV,KAAK,CAAC,CAACS,SAChC,CAAC;EAED,MAAM;MACJF,QAAQ;MACRI,WAAW;MACXC,SAAS;MACTC,gBAAgB;MAChBC,gBAAgB;MAChBC,UAAU;MACVC,eAAe;MACfC,cAAc;MACdC,sBAAsB;MACtBC,QAAQ;MACRC,KAAK;MACLC,MAAM;MACNC,SAAS;MACTC,KAAK,EAAEC,UAAU;MAEjBtB,EAAE,EAAEE,GAAG;MACPqB;IAGF,CAAC,GAAGjB,aAAa;IADZkB,mBAAmB,GAAAC,wBAAA,CACpBnB,aAAa,EAAAoB,SAAA;EAEjB,MAAMC,OAAO,GAAGxC,UAAU,CACxB,qBAAqB,EAErBM,oBAAoB,CAACa,aAAa,CAAC,EACnCc,SAAS,EACTE,UAAU,EAHVlC,MAAM,CAACwB,gBAAgB,CAAC,IAAI,uCAI9B,CAAC;EAED,MAAMgB,MAAM,GAAAC,aAAA,KACPL,mBAAmB,CACvB;EAGDjC,qBAAqB,CAACO,KAAK,EAAE8B,MAAM,CAAC;EAEpC,IAAI,EAACtB,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAEY,KAAK,KAAI9B,MAAM,CAACU,KAAK,CAACc,gBAAgB,CAAC,EAAE;IAC3DN,aAAa,CAACY,KAAK,GAAG7B,YAAY,CAAC,CAAC;EACtC;EAEA,MAAMyC,kBAAkB,GAAAD,aAAA,CAAAA,aAAA,KACnBvB,aAAa;IAChBN,EAAE;IACF+B,QAAQ,EAAE5B;EAAe,EAC1B;EAED,OACElB,KAAA,CAAA+C,aAAA,CAACrC,qBAAqB,CAACsC,QAAQ;IAACC,KAAK,EAAEJ;EAAmB,GACxD7C,KAAA,CAAA+C,aAAA;IAAKZ,SAAS,EAAEO;EAAQ,GACtB1C,KAAA,CAAA+C,aAAA,SAAAG,QAAA;IACEnC,EAAE,EAAEA,EAAG;IACPoB,SAAS,EAAC,4BAA4B;IACtCgB,IAAI,EAAC;EAAO,GACRR,MAAM,GAEV3C,KAAA,CAAA+C,aAAA;IAAMZ,SAAS,EAAC;EAA+B,GAAEG,QAAe,CAC5D,CACH,CACyB,CAAC;AAErC,CAAC;AAED1B,cAAc,CAACwC,qBAAqB,GAAG,IAAI;AAE3C,eAAexC,cAAc"}
1
+ {"version":3,"file":"AccordionGroup.js","names":["React","useContext","classnames","isTrue","makeUniqueId","extendPropsWithContext","validateDOMAttributes","dispatchCustomElementEvent","createSpacingClasses","Context","AccordionGroupContext","accordionDefaultProps","AccordionGroup","props","context","id","thisInstance","_id","onChangeHandler","event","expanded","extendedProps","Accordion","getTranslation","expanded_id","prerender","prevent_rerender","single_container","contentRef","allow_close_all","remember_state","flush_remembered_state","disabled","group","onInit","className","class","_className","children","restOfExtendedProps","_objectWithoutProperties","_excluded","classes","params","_objectSpread","contextForProvider","onChange","createElement","Provider","value","_extends","role","_supportsSpacingProps"],"sources":["../../../../src/components/accordion/AccordionGroup.tsx"],"sourcesContent":["/**\n * Web AccordionGroup Component\n *\n */\n\nimport React, { useContext } from 'react'\n\nimport classnames from 'classnames'\nimport {\n isTrue,\n makeUniqueId,\n extendPropsWithContext,\n validateDOMAttributes,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\n\nimport Context from '../../shared/Context'\nimport AccordionGroupContext from './AccordionProviderContext'\n\nimport type { GroupProps } from './Accordion'\nimport { accordionDefaultProps } from './defaultProps'\n\nexport type AccordionGroupProps = React.HTMLProps<HTMLElement> &\n GroupProps & {\n onInit?: (...args: any[]) => any\n }\n\nconst AccordionGroup = (props: AccordionGroupProps) => {\n const context = useContext(Context)\n const id = props.id || makeUniqueId()\n\n const thisInstance = {\n _id: id,\n props,\n context,\n onChangeHandler,\n }\n\n function onChangeHandler(event) {\n dispatchCustomElementEvent(thisInstance, 'on_change', {\n id: event.id,\n expanded: event.expanded,\n event,\n })\n }\n\n // use only the props from context, who are available here anyway\n const extendedProps = extendPropsWithContext(\n props,\n accordionDefaultProps,\n context.Accordion,\n context.getTranslation(props)['Accordion']\n )\n\n const {\n expanded, // eslint-disable-line\n expanded_id, // eslint-disable-line\n prerender, // eslint-disable-line\n prevent_rerender, // eslint-disable-line\n single_container, // eslint-disable-line\n contentRef, // eslint-disable-line\n allow_close_all, // eslint-disable-line\n remember_state, // eslint-disable-line\n flush_remembered_state, // eslint-disable-line\n disabled, // eslint-disable-line\n group, // eslint-disable-line\n onInit, // eslint-disable-line\n className,\n class: _className,\n\n id: _id, // eslint-disable-line\n children, // eslint-disable-line\n\n ...restOfExtendedProps\n } = extendedProps\n\n const classes = classnames(\n 'dnb-accordion-group',\n isTrue(single_container) && 'dnb-accordion-group--single-container',\n createSpacingClasses(extendedProps),\n className,\n _className\n )\n\n const params = {\n ...restOfExtendedProps,\n }\n\n // also used for code markup simulation\n validateDOMAttributes(props, params)\n\n if (!extendedProps?.group && isTrue(props.single_container)) {\n extendedProps.group = makeUniqueId()\n }\n\n const contextForProvider = {\n ...extendedProps,\n id,\n onChange: onChangeHandler,\n }\n\n return (\n <AccordionGroupContext.Provider value={contextForProvider}>\n <div className={classes}>\n <span\n id={id}\n className=\"dnb-accordion-group__shell\"\n role=\"group\"\n {...params}\n >\n <span className=\"dnb-accordion-group__children\">{children}</span>\n </span>\n </div>\n </AccordionGroupContext.Provider>\n )\n}\n\nAccordionGroup._supportsSpacingProps = true\n\nexport default AccordionGroup\n"],"mappings":";;;;;;;;AAKA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AAEzC,OAAOC,UAAU,MAAM,YAAY;AACnC,SACEC,MAAM,EACNC,YAAY,EACZC,sBAAsB,EACtBC,qBAAqB,EACrBC,0BAA0B,QACrB,+BAA+B;AACtC,SAASC,oBAAoB,QAAQ,wBAAwB;AAE7D,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,OAAOC,qBAAqB,MAAM,4BAA4B;AAG9D,SAASC,qBAAqB,QAAQ,gBAAgB;AAOtD,MAAMC,cAAc,GAAIC,KAA0B,IAAK;EACrD,MAAMC,OAAO,GAAGb,UAAU,CAACQ,OAAO,CAAC;EACnC,MAAMM,EAAE,GAAGF,KAAK,CAACE,EAAE,IAAIX,YAAY,CAAC,CAAC;EAErC,MAAMY,YAAY,GAAG;IACnBC,GAAG,EAAEF,EAAE;IACPF,KAAK;IACLC,OAAO;IACPI;EACF,CAAC;EAED,SAASA,eAAeA,CAACC,KAAK,EAAE;IAC9BZ,0BAA0B,CAACS,YAAY,EAAE,WAAW,EAAE;MACpDD,EAAE,EAAEI,KAAK,CAACJ,EAAE;MACZK,QAAQ,EAAED,KAAK,CAACC,QAAQ;MACxBD;IACF,CAAC,CAAC;EACJ;EAGA,MAAME,aAAa,GAAGhB,sBAAsB,CAC1CQ,KAAK,EACLF,qBAAqB,EACrBG,OAAO,CAACQ,SAAS,EACjBR,OAAO,CAACS,cAAc,CAACV,KAAK,CAAC,CAAC,WAAW,CAC3C,CAAC;EAED,MAAM;MACJO,QAAQ;MACRI,WAAW;MACXC,SAAS;MACTC,gBAAgB;MAChBC,gBAAgB;MAChBC,UAAU;MACVC,eAAe;MACfC,cAAc;MACdC,sBAAsB;MACtBC,QAAQ;MACRC,KAAK;MACLC,MAAM;MACNC,SAAS;MACTC,KAAK,EAAEC,UAAU;MAEjBtB,EAAE,EAAEE,GAAG;MACPqB;IAGF,CAAC,GAAGjB,aAAa;IADZkB,mBAAmB,GAAAC,wBAAA,CACpBnB,aAAa,EAAAoB,SAAA;EAEjB,MAAMC,OAAO,GAAGxC,UAAU,CACxB,qBAAqB,EAErBM,oBAAoB,CAACa,aAAa,CAAC,EACnCc,SAAS,EACTE,UAAU,EAHVlC,MAAM,CAACwB,gBAAgB,CAAC,IAAI,uCAI9B,CAAC;EAED,MAAMgB,MAAM,GAAAC,aAAA,KACPL,mBAAmB,CACvB;EAGDjC,qBAAqB,CAACO,KAAK,EAAE8B,MAAM,CAAC;EAEpC,IAAI,EAACtB,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAEY,KAAK,KAAI9B,MAAM,CAACU,KAAK,CAACc,gBAAgB,CAAC,EAAE;IAC3DN,aAAa,CAACY,KAAK,GAAG7B,YAAY,CAAC,CAAC;EACtC;EAEA,MAAMyC,kBAAkB,GAAAD,aAAA,CAAAA,aAAA,KACnBvB,aAAa;IAChBN,EAAE;IACF+B,QAAQ,EAAE5B;EAAe,EAC1B;EAED,OACElB,KAAA,CAAA+C,aAAA,CAACrC,qBAAqB,CAACsC,QAAQ;IAACC,KAAK,EAAEJ;EAAmB,GACxD7C,KAAA,CAAA+C,aAAA;IAAKZ,SAAS,EAAEO;EAAQ,GACtB1C,KAAA,CAAA+C,aAAA,SAAAG,QAAA;IACEnC,EAAE,EAAEA,EAAG;IACPoB,SAAS,EAAC,4BAA4B;IACtCgB,IAAI,EAAC;EAAO,GACRR,MAAM,GAEV3C,KAAA,CAAA+C,aAAA;IAAMZ,SAAS,EAAC;EAA+B,GAAEG,QAAe,CAC5D,CACH,CACyB,CAAC;AAErC,CAAC;AAED1B,cAAc,CAACwC,qBAAqB,GAAG,IAAI;AAE3C,eAAexC,cAAc"}
@@ -3,12 +3,11 @@
3
3
  *
4
4
  */
5
5
  import React from 'react';
6
- import { ElementIsType } from '../../elements/Element';
7
6
  import type { IconIcon } from '../icon/Icon';
8
7
  import type { SkeletonShow } from '../skeleton/Skeleton';
9
- import type { SpacingProps } from '../../shared/types';
8
+ import type { DynamicElement, SpacingProps } from '../../shared/types';
10
9
  export type AnchorProps = {
11
- element?: ElementIsType;
10
+ element?: DynamicElement<HTMLAnchorElement | AnchorAllProps>;
12
11
  href?: string;
13
12
  to?: string;
14
13
  targetBlankTitle?: string;
@@ -7,7 +7,6 @@ const _excluded = ["id", "element", "className", "children", "tooltip", "icon",
7
7
  import React from 'react';
8
8
  import classnames from 'classnames';
9
9
  import E from '../../elements/Element';
10
- import { useTheme } from '../../shared';
11
10
  import Context from '../../shared/Context';
12
11
  import { makeUniqueId, extendPropsWithContext } from '../../shared/component-helper';
13
12
  import { getOffsetTop } from '../../shared/helpers';
@@ -40,32 +39,19 @@ export function AnchorInstance(localProps) {
40
39
  targetBlankTitle
41
40
  } = allProps,
42
41
  rest = _objectWithoutProperties(allProps, _excluded);
43
- const theme = useTheme();
44
- const iconSpacer = theme !== null && theme !== void 0 && theme.isSbanken ? ' ' : '';
45
42
  const attributes = rest;
46
43
  const internalId = id || 'id' + makeUniqueId();
47
44
  const as = element || 'a';
48
- let prefix;
49
- let suffix;
50
45
  const href = allProps.href || allProps.to;
51
- const showLaunchIcon = opensNewTab(allProps.target, href);
52
- const showTooltip = (tooltip || showLaunchIcon) && !allProps.title;
53
- if (showLaunchIcon && !omitClass) {
54
- suffix = React.createElement(React.Fragment, null, iconSpacer, _IconPrimary || (_IconPrimary = React.createElement(IconPrimary, {
55
- className: "dnb-anchor__launch-icon",
56
- icon: launchIcon
57
- })));
58
- }
59
- if (icon) {
60
- const iconNode = pickIcon(icon) || React.createElement(IconPrimary, {
61
- icon: icon
62
- });
63
- if (iconPosition === 'left') {
64
- prefix = React.createElement(React.Fragment, null, iconNode, iconSpacer);
65
- } else if (iconPosition === 'right') {
66
- suffix = React.createElement(React.Fragment, null, iconSpacer, iconNode);
67
- }
68
- }
46
+ const _opensNewTab = opensNewTab(allProps.target, href);
47
+ const showLaunchIcon = _opensNewTab && !(className !== null && className !== void 0 && className.includes('dnb-anchor--no-icon')) && !omitClass;
48
+ const showTooltip = (tooltip || _opensNewTab) && !allProps.title;
49
+ const iconNode = icon && getIcon(icon);
50
+ const suffix = iconPosition === 'right' && iconNode || showLaunchIcon && (_IconPrimary || (_IconPrimary = React.createElement(IconPrimary, {
51
+ className: "dnb-anchor__launch-icon",
52
+ icon: launchIcon
53
+ })));
54
+ const prefix = iconPosition === 'left' && iconNode;
69
55
  return React.createElement(React.Fragment, null, React.createElement(E, _extends({
70
56
  as: as,
71
57
  id: id,
@@ -113,6 +99,11 @@ export function scrollToHashHandler(event) {
113
99
  }
114
100
  }
115
101
  }
102
+ function getIcon(icon) {
103
+ return pickIcon(icon) || React.createElement(IconPrimary, {
104
+ icon: icon
105
+ });
106
+ }
116
107
  export function pickIcon(icon) {
117
108
  var _icon$props, _icon$props2, _icon$props2$classNam, _icon$props3;
118
109
  return icon !== null && icon !== void 0 && (_icon$props = icon.props) !== null && _icon$props !== void 0 && _icon$props.icon || icon !== null && icon !== void 0 && (_icon$props2 = icon.props) !== null && _icon$props2 !== void 0 && (_icon$props2$classNam = _icon$props2.className) !== null && _icon$props2$classNam !== void 0 && _icon$props2$classNam.includes('dnb-icon') ? React.cloneElement(icon, {
@@ -1 +1 @@
1
- {"version":3,"file":"Anchor.js","names":["React","classnames","E","useTheme","Context","makeUniqueId","extendPropsWithContext","getOffsetTop","IconPrimary","Tooltip","launch","launchIcon","defaultProps","AnchorInstance","localProps","context","useContext","allProps","skeleton","getTranslation","Anchor","inner_ref","innerRef","createRef","id","element","className","children","tooltip","icon","iconPosition","omitClass","targetBlankTitle","rest","_objectWithoutProperties","_excluded","theme","iconSpacer","isSbanken","attributes","internalId","as","prefix","suffix","href","to","showLaunchIcon","opensNewTab","target","showTooltip","title","createElement","Fragment","_IconPrimary","iconNode","pickIcon","_extends","showDelay","targetElement","forwardRef","props","ref","_supportsSpacingProps","scrollToHashHandler","event","_element$pathname","currentTarget","getAttribute","document","includes","isSamePath","startsWith","window","location","pathname","replace","split","reverse","anchorElem","getElementById","HTMLElement","scrollPadding","parseFloat","getComputedStyle","documentElement","scrollPaddingTop","top","scroll","error","console","_icon$props","_icon$props2","_icon$props2$classNam","_icon$props3","cloneElement","key","test"],"sources":["../../../../src/components/anchor/Anchor.tsx"],"sourcesContent":["/**\n * HTML Element\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport E, { ElementProps, ElementIsType } from '../../elements/Element'\nimport { useTheme } from '../../shared'\nimport Context from '../../shared/Context'\nimport {\n makeUniqueId,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport { getOffsetTop } from '../../shared/helpers'\nimport IconPrimary from '../icon-primary/IconPrimary'\nimport Tooltip from '../tooltip/Tooltip'\nimport { launch as launchIcon } from '../../icons'\nimport type { IconIcon } from '../icon/Icon'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport type { SpacingProps } from '../../shared/types'\n\nexport type AnchorProps = {\n element?: ElementIsType\n href?: string\n to?: string\n targetBlankTitle?: string\n target?: string\n tooltip?: React.ReactNode\n icon?: IconIcon\n iconPosition?: 'left' | 'right'\n skeleton?: SkeletonShow\n omitClass?: boolean\n innerRef?: React.RefObject<HTMLAnchorElement>\n\n /** @deprecated use innerRef instead */\n inner_ref?: React.RefObject<HTMLAnchorElement>\n}\n\nexport type AnchorAllProps = AnchorProps &\n Omit<React.HTMLProps<HTMLAnchorElement>, 'ref'> &\n SpacingProps\n\nconst defaultProps = {}\n\nexport function AnchorInstance(localProps: AnchorAllProps) {\n const context = React.useContext(Context)\n const allProps = extendPropsWithContext(\n localProps,\n defaultProps,\n { skeleton: context?.skeleton },\n context?.getTranslation(localProps as AnchorAllProps).Anchor,\n context?.Anchor\n )\n\n // deprecated: inner_ref is still needed to support Button's usage of Anchor\n if (typeof allProps.inner_ref !== 'undefined') {\n allProps.innerRef = allProps.inner_ref\n delete allProps.inner_ref\n }\n\n if (!allProps.innerRef) {\n allProps.innerRef = React.createRef()\n }\n\n const {\n id,\n element,\n className,\n children,\n tooltip,\n icon,\n iconPosition = 'left',\n omitClass,\n innerRef,\n targetBlankTitle,\n ...rest\n } = allProps\n\n const theme = useTheme()\n const iconSpacer = theme?.isSbanken ? ' ' : ''\n const attributes = rest as ElementProps\n const internalId = id || 'id' + makeUniqueId()\n const as = (element || 'a') as string\n\n let prefix: React.ReactNode\n let suffix: React.ReactNode\n\n const href = allProps.href || allProps.to\n const showLaunchIcon = opensNewTab(allProps.target, href)\n const showTooltip = (tooltip || showLaunchIcon) && !allProps.title\n\n // WCAG guide: https://www.w3.org/TR/WCAG20-TECHS/G201.html\n if (showLaunchIcon && !omitClass) {\n suffix = (\n <>\n {iconSpacer}\n <IconPrimary\n className=\"dnb-anchor__launch-icon\"\n icon={launchIcon}\n />\n </>\n )\n }\n\n if (icon) {\n const iconNode = pickIcon(icon) || <IconPrimary icon={icon} />\n if (iconPosition === 'left') {\n prefix = (\n <>\n {iconNode}\n {iconSpacer}\n </>\n )\n } else if (iconPosition === 'right') {\n suffix = (\n <>\n {iconSpacer}\n {iconNode}\n </>\n )\n }\n }\n\n return (\n <>\n <E\n as={as}\n id={id}\n className={classnames(\n omitClass !== true &&\n classnames(\n 'dnb-anchor',\n prefix && 'dnb-anchor--icon-left',\n suffix && 'dnb-anchor--icon-right',\n typeof children !== 'string' && 'dnb-anchor--was-node'\n ),\n className\n )}\n {...attributes}\n innerRef={innerRef}\n >\n {prefix}\n {children}\n {suffix}\n </E>\n\n {showTooltip && (\n <Tooltip\n showDelay={100}\n id={internalId + '-tooltip'}\n targetElement={innerRef}\n tooltip={tooltip}\n >\n {allProps.title || targetBlankTitle}\n </Tooltip>\n )}\n </>\n )\n}\n\nconst Anchor = React.forwardRef(\n (props: AnchorAllProps, ref: React.RefObject<HTMLAnchorElement>) => {\n return <AnchorInstance innerRef={ref} {...props} />\n }\n)\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nAnchor._supportsSpacingProps = true\n\nexport default Anchor\n\nexport function scrollToHashHandler(\n event: React.MouseEvent<HTMLAnchorElement, MouseEvent>\n) {\n const element = event.currentTarget as HTMLAnchorElement\n const href = element.getAttribute('href')\n\n if (typeof document === 'undefined' || !href.includes('#')) {\n return // stop here\n }\n\n /**\n * What happens here?\n * When `scroll-behavior: smooth;` in CSS is set,\n * Blink/Chromium wants the user to click two times in order to actually scroll to the anchor hash.\n * The first click, sets the hash, the second one, scrolls to it.\n * We want Chromium browsers to scroll to the element on the first click.\n */\n const isSamePath =\n href.startsWith('#') ||\n window.location.href.includes(element.pathname?.replace(/\\/$/, ''))\n\n // Only continue, when we are sure we are on the same page,\n // because, the same ID may exists occasionally on the current page.\n if (isSamePath) {\n const id = href.split(/#/g).reverse()[0]\n const anchorElem = document.getElementById(id)\n\n if (anchorElem instanceof HTMLElement) {\n try {\n const scrollPadding = parseFloat(\n window.getComputedStyle(document.documentElement)\n .scrollPaddingTop\n )\n const top = getOffsetTop(anchorElem) - scrollPadding || 0\n\n window.scroll({ top })\n\n return { element: anchorElem }\n } catch (error) {\n console.error(error)\n }\n }\n }\n}\n\nexport function pickIcon(icon) {\n return icon?.props?.icon || icon?.props?.className?.includes('dnb-icon')\n ? React.cloneElement(icon, {\n key: 'button-icon-clone',\n className: classnames(icon.props?.className, 'dnb-button__icon'),\n })\n : null\n}\n\nexport const opensNewTab = (target: string, href: string): boolean =>\n target === '_blank' && !/^(mailto|tel|sms)/.test(href)\n"],"mappings":"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"}
1
+ {"version":3,"file":"Anchor.js","names":["React","classnames","E","Context","makeUniqueId","extendPropsWithContext","getOffsetTop","IconPrimary","Tooltip","launch","launchIcon","defaultProps","AnchorInstance","localProps","context","useContext","allProps","skeleton","getTranslation","Anchor","inner_ref","innerRef","createRef","id","element","className","children","tooltip","icon","iconPosition","omitClass","targetBlankTitle","rest","_objectWithoutProperties","_excluded","attributes","internalId","as","href","to","_opensNewTab","opensNewTab","target","showLaunchIcon","includes","showTooltip","title","iconNode","getIcon","suffix","_IconPrimary","createElement","prefix","Fragment","_extends","showDelay","targetElement","forwardRef","props","ref","_supportsSpacingProps","scrollToHashHandler","event","_element$pathname","currentTarget","getAttribute","document","isSamePath","startsWith","window","location","pathname","replace","split","reverse","anchorElem","getElementById","HTMLElement","scrollPadding","parseFloat","getComputedStyle","documentElement","scrollPaddingTop","top","scroll","error","console","pickIcon","_icon$props","_icon$props2","_icon$props2$classNam","_icon$props3","cloneElement","key","test"],"sources":["../../../../src/components/anchor/Anchor.tsx"],"sourcesContent":["/**\n * HTML Element\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport E, { ElementProps } from '../../elements/Element'\nimport Context from '../../shared/Context'\nimport {\n makeUniqueId,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport { getOffsetTop } from '../../shared/helpers'\nimport IconPrimary from '../icon-primary/IconPrimary'\nimport Tooltip from '../tooltip/Tooltip'\nimport { launch as launchIcon } from '../../icons'\nimport type { IconIcon } from '../icon/Icon'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport type { DynamicElement, SpacingProps } from '../../shared/types'\n\nexport type AnchorProps = {\n element?: DynamicElement<HTMLAnchorElement | AnchorAllProps>\n href?: string\n to?: string\n targetBlankTitle?: string\n target?: string\n tooltip?: React.ReactNode\n icon?: IconIcon\n iconPosition?: 'left' | 'right'\n skeleton?: SkeletonShow\n omitClass?: boolean\n innerRef?: React.RefObject<HTMLAnchorElement>\n\n /** @deprecated use innerRef instead */\n inner_ref?: React.RefObject<HTMLAnchorElement>\n}\n\nexport type AnchorAllProps = AnchorProps &\n Omit<React.HTMLProps<HTMLAnchorElement>, 'ref'> &\n SpacingProps\n\nconst defaultProps = {}\n\nexport function AnchorInstance(localProps: AnchorAllProps) {\n const context = React.useContext(Context)\n const allProps = extendPropsWithContext(\n localProps,\n defaultProps,\n { skeleton: context?.skeleton },\n context?.getTranslation(localProps as AnchorAllProps).Anchor,\n context?.Anchor\n )\n\n // deprecated: inner_ref is still needed to support Button's usage of Anchor\n if (typeof allProps.inner_ref !== 'undefined') {\n allProps.innerRef = allProps.inner_ref\n delete allProps.inner_ref\n }\n\n if (!allProps.innerRef) {\n allProps.innerRef = React.createRef()\n }\n\n const {\n id,\n element,\n className,\n children,\n tooltip,\n icon,\n iconPosition = 'left',\n omitClass,\n innerRef,\n targetBlankTitle,\n ...rest\n } = allProps\n\n const attributes = rest as ElementProps\n const internalId = id || 'id' + makeUniqueId()\n const as = element || 'a'\n\n const href = allProps.href || allProps.to\n const _opensNewTab = opensNewTab(allProps.target, href)\n const showLaunchIcon =\n _opensNewTab &&\n !className?.includes('dnb-anchor--no-icon') &&\n !omitClass\n const showTooltip = (tooltip || _opensNewTab) && !allProps.title\n\n const iconNode = icon && getIcon(icon)\n\n const suffix =\n (iconPosition === 'right' && iconNode) ||\n (showLaunchIcon && (\n <IconPrimary className=\"dnb-anchor__launch-icon\" icon={launchIcon} />\n ))\n\n const prefix = iconPosition === 'left' && iconNode\n\n return (\n <>\n <E\n as={as}\n id={id}\n className={classnames(\n omitClass !== true &&\n classnames(\n 'dnb-anchor',\n prefix && 'dnb-anchor--icon-left',\n suffix && 'dnb-anchor--icon-right',\n typeof children !== 'string' && 'dnb-anchor--was-node'\n ),\n className\n )}\n {...attributes}\n innerRef={innerRef}\n >\n {prefix}\n {children}\n {suffix}\n </E>\n\n {showTooltip && (\n <Tooltip\n showDelay={100}\n id={internalId + '-tooltip'}\n targetElement={innerRef}\n tooltip={tooltip}\n >\n {allProps.title || targetBlankTitle}\n </Tooltip>\n )}\n </>\n )\n}\n\nconst Anchor = React.forwardRef(\n (props: AnchorAllProps, ref: React.RefObject<HTMLAnchorElement>) => {\n return <AnchorInstance innerRef={ref} {...props} />\n }\n)\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nAnchor._supportsSpacingProps = true\n\nexport default Anchor\n\nexport function scrollToHashHandler(\n event: React.MouseEvent<HTMLAnchorElement, MouseEvent>\n) {\n const element = event.currentTarget as HTMLAnchorElement\n const href = element.getAttribute('href')\n\n if (typeof document === 'undefined' || !href.includes('#')) {\n return // stop here\n }\n\n /**\n * What happens here?\n * When `scroll-behavior: smooth;` in CSS is set,\n * Blink/Chromium wants the user to click two times in order to actually scroll to the anchor hash.\n * The first click, sets the hash, the second one, scrolls to it.\n * We want Chromium browsers to scroll to the element on the first click.\n */\n const isSamePath =\n href.startsWith('#') ||\n window.location.href.includes(element.pathname?.replace(/\\/$/, ''))\n\n // Only continue, when we are sure we are on the same page,\n // because, the same ID may exists occasionally on the current page.\n if (isSamePath) {\n const id = href.split(/#/g).reverse()[0]\n const anchorElem = document.getElementById(id)\n\n if (anchorElem instanceof HTMLElement) {\n try {\n const scrollPadding = parseFloat(\n window.getComputedStyle(document.documentElement)\n .scrollPaddingTop\n )\n const top = getOffsetTop(anchorElem) - scrollPadding || 0\n\n window.scroll({ top })\n\n return { element: anchorElem }\n } catch (error) {\n console.error(error)\n }\n }\n }\n}\n\nfunction getIcon(icon) {\n return pickIcon(icon) || <IconPrimary icon={icon} />\n}\n\nexport function pickIcon(icon) {\n return icon?.props?.icon || icon?.props?.className?.includes('dnb-icon')\n ? React.cloneElement(icon, {\n key: 'button-icon-clone',\n className: classnames(icon.props?.className, 'dnb-button__icon'),\n })\n : null\n}\n\nexport const opensNewTab = (target: string, href: string): boolean =>\n target === '_blank' && !/^(mailto|tel|sms)/.test(href)\n"],"mappings":"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"}
@@ -82,16 +82,11 @@
82
82
  @content;
83
83
  }
84
84
 
85
- @mixin anchorBackground($color, $overflow: 0.125em) {
86
- @if $overflow {
87
- --anchor-background-gutter: #{$overflow};
88
- box-shadow:
89
- inset 100vw 100vw 0 0 $color,
90
- calc(var(--anchor-background-gutter) * -1) 0 0 0 $color,
91
- var(--anchor-background-gutter) 0 0 0 $color;
92
- } @else {
93
- box-shadow: inset 100vw 100vw 0 0 $color;
94
- }
85
+ @mixin anchorBackground($color) {
86
+ box-shadow:
87
+ inset 100vw 100vw 0 0 $color,
88
+ calc(var(--anchor-background-gutter-left, 0.125rem) * -1) 0 0 0 $color,
89
+ var(--anchor-background-gutter-right, 0.125rem) 0 0 0 $color;
95
90
  }
96
91
 
97
92
  // other styles
@@ -187,6 +182,17 @@
187
182
  }
188
183
  }
189
184
 
185
+ @mixin notInline() {
186
+ &:where(:not(.dnb-anchor--inline)) {
187
+ @content;
188
+ }
189
+ &:not(.dnb-anchor--inline) {
190
+ @include whereFallback() {
191
+ @content;
192
+ }
193
+ }
194
+ }
195
+
190
196
  @mixin whereFallback() {
191
197
  /* stylelint-disable-next-line scss/operator-no-unspaced */
192
198
  @supports not (selector(*:where(*))) {
@@ -92,8 +92,7 @@ sup :where(:not(.dnb-anchor--no-style)).dnb-anchor, sub :where(:not(.dnb-anchor-
92
92
  }
93
93
  :where(:not(.dnb-anchor--no-style)).dnb-anchor.dnb-anchor--contrast:hover:where(:not(.dnb-anchor--no-hover)) {
94
94
  color: var(--anchor-color--contrast);
95
- --anchor-background-gutter: 0.125em;
96
- box-shadow: inset 100vw 100vw 0 0 var(--color-white), calc(var(--anchor-background-gutter) * -1) 0 0 0 var(--color-white), var(--anchor-background-gutter) 0 0 0 var(--color-white);
95
+ box-shadow: inset 100vw 100vw 0 0 var(--color-white), calc(var(--anchor-background-gutter-left, 0.125rem) * -1) 0 0 0 var(--color-white), var(--anchor-background-gutter-right, 0.125rem) 0 0 0 var(--color-white);
97
96
  }
98
97
  :where(:not(.dnb-anchor--no-style)).dnb-anchor.dnb-anchor--contrast:hover:not(.dnb-anchor--no-hover) {
99
98
  /* stylelint-disable-next-line scss/operator-no-unspaced */
@@ -101,15 +100,13 @@ sup :where(:not(.dnb-anchor--no-style)).dnb-anchor, sub :where(:not(.dnb-anchor-
101
100
  @supports not (selector(*:where(*))) {
102
101
  :where(:not(.dnb-anchor--no-style)).dnb-anchor.dnb-anchor--contrast:hover:not(.dnb-anchor--no-hover) {
103
102
  color: var(--anchor-color--contrast);
104
- --anchor-background-gutter: 0.125em;
105
- box-shadow: inset 100vw 100vw 0 0 var(--color-white), calc(var(--anchor-background-gutter) * -1) 0 0 0 var(--color-white), var(--anchor-background-gutter) 0 0 0 var(--color-white);
103
+ box-shadow: inset 100vw 100vw 0 0 var(--color-white), calc(var(--anchor-background-gutter-left, 0.125rem) * -1) 0 0 0 var(--color-white), var(--anchor-background-gutter-right, 0.125rem) 0 0 0 var(--color-white);
106
104
  }
107
105
  }
108
106
  :where(:not(.dnb-anchor--no-style)).dnb-anchor.dnb-anchor--contrast:active {
109
107
  color: var(--color-white);
110
108
  background-color: transparent;
111
- --anchor-background-gutter: 0.125em;
112
- box-shadow: inset 100vw 100vw 0 0 transparent, calc(var(--anchor-background-gutter) * -1) 0 0 0 transparent, var(--anchor-background-gutter) 0 0 0 transparent;
109
+ box-shadow: inset 100vw 100vw 0 0 transparent, calc(var(--anchor-background-gutter-left, 0.125rem) * -1) 0 0 0 transparent, var(--anchor-background-gutter-right, 0.125rem) 0 0 0 transparent;
113
110
  }
114
111
  :where(:not(.dnb-anchor--no-style)).dnb-anchor.dnb-anchor--contrast:focus-visible {
115
112
  color: var(--color-white);
@@ -199,8 +196,7 @@ sup :where(:not(.dnb-anchor--no-style)).dnb-anchor, sub :where(:not(.dnb-anchor-
199
196
  }
200
197
  :not(.dnb-anchor--no-style).dnb-anchor.dnb-anchor--contrast:hover:where(:not(.dnb-anchor--no-hover)) {
201
198
  color: var(--anchor-color--contrast);
202
- --anchor-background-gutter: 0.125em;
203
- box-shadow: inset 100vw 100vw 0 0 var(--color-white), calc(var(--anchor-background-gutter) * -1) 0 0 0 var(--color-white), var(--anchor-background-gutter) 0 0 0 var(--color-white);
199
+ box-shadow: inset 100vw 100vw 0 0 var(--color-white), calc(var(--anchor-background-gutter-left, 0.125rem) * -1) 0 0 0 var(--color-white), var(--anchor-background-gutter-right, 0.125rem) 0 0 0 var(--color-white);
204
200
  }
205
201
  :not(.dnb-anchor--no-style).dnb-anchor.dnb-anchor--contrast:hover:not(.dnb-anchor--no-hover) {
206
202
  /* stylelint-disable-next-line scss/operator-no-unspaced */
@@ -208,15 +204,13 @@ sup :where(:not(.dnb-anchor--no-style)).dnb-anchor, sub :where(:not(.dnb-anchor-
208
204
  @supports not (selector(*:where(*))) {
209
205
  :not(.dnb-anchor--no-style).dnb-anchor.dnb-anchor--contrast:hover:not(.dnb-anchor--no-hover) {
210
206
  color: var(--anchor-color--contrast);
211
- --anchor-background-gutter: 0.125em;
212
- box-shadow: inset 100vw 100vw 0 0 var(--color-white), calc(var(--anchor-background-gutter) * -1) 0 0 0 var(--color-white), var(--anchor-background-gutter) 0 0 0 var(--color-white);
207
+ box-shadow: inset 100vw 100vw 0 0 var(--color-white), calc(var(--anchor-background-gutter-left, 0.125rem) * -1) 0 0 0 var(--color-white), var(--anchor-background-gutter-right, 0.125rem) 0 0 0 var(--color-white);
213
208
  }
214
209
  }
215
210
  :not(.dnb-anchor--no-style).dnb-anchor.dnb-anchor--contrast:active {
216
211
  color: var(--color-white);
217
212
  background-color: transparent;
218
- --anchor-background-gutter: 0.125em;
219
- box-shadow: inset 100vw 100vw 0 0 transparent, calc(var(--anchor-background-gutter) * -1) 0 0 0 transparent, var(--anchor-background-gutter) 0 0 0 transparent;
213
+ box-shadow: inset 100vw 100vw 0 0 transparent, calc(var(--anchor-background-gutter-left, 0.125rem) * -1) 0 0 0 transparent, var(--anchor-background-gutter-right, 0.125rem) 0 0 0 transparent;
220
214
  }
221
215
  :not(.dnb-anchor--no-style).dnb-anchor.dnb-anchor--contrast:focus-visible {
222
216
  color: var(--color-white);
@@ -1 +1 @@
1
- button.dnb-anchor{-webkit-appearance:none;appearance:none;background:none;border:none;cursor:pointer;line-height:calc(var(--line-height-basis) + .125rem)}:where(:not(.dnb-anchor--no-style)).dnb-anchor{--anchor-underline-thickness:0.0938rem;border-radius:0;display:inline;font-size:var(--font-size-basis);padding:.05575em 0;-webkit-text-decoration:underline;text-decoration:underline;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,background .2s ease-in-out}sub :where(:not(.dnb-anchor--no-style)).dnb-anchor,sup :where(:not(.dnb-anchor--no-style)).dnb-anchor{padding:0 .025em}.dnb-h--basis :where(:not(.dnb-anchor--no-style)).dnb-anchor,.dnb-h--large :where(:not(.dnb-anchor--no-style)).dnb-anchor,.dnb-h--medium :where(:not(.dnb-anchor--no-style)).dnb-anchor,.dnb-h--small :where(:not(.dnb-anchor--no-style)).dnb-anchor,.dnb-h--x-large :where(:not(.dnb-anchor--no-style)).dnb-anchor,.dnb-h--x-small :where(:not(.dnb-anchor--no-style)).dnb-anchor,.dnb-h--xx-large :where(:not(.dnb-anchor--no-style)).dnb-anchor,.dnb-lead :where(:not(.dnb-anchor--no-style)).dnb-anchor,.dnb-p :where(:not(.dnb-anchor--no-style)).dnb-anchor{font-size:inherit}:where(:not(.dnb-anchor--no-style)).dnb-anchor:focus-visible{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);background-color:transparent;border-color:transparent;border-radius:.25em;box-shadow:0 0 0 var(--border-width) var(--border-color);outline:none;transition:none}.dnb-section :where(:not(.dnb-anchor--no-style)).dnb-anchor:focus-visible.dnb-anchor,:where(:not(.dnb-anchor--no-style)).dnb-anchor:focus-visible{-webkit-text-decoration:none;text-decoration:none}:where(:not(.dnb-anchor--no-style)).dnb-anchor:hover:where(:not(.dnb-anchor--no-hover)){border-radius:.25em}.dnb-section :where(:not(.dnb-anchor--no-style)).dnb-anchor:hover:where(:not(.dnb-anchor--no-hover)).dnb-anchor,:where(:not(.dnb-anchor--no-style)).dnb-anchor:hover:where(:not(.dnb-anchor--no-hover)){-webkit-text-decoration:none;text-decoration:none}@supports not (selector(*:where(*))){:where(:not(.dnb-anchor--no-style)).dnb-anchor:hover:not(.dnb-anchor--no-hover){border-radius:.25em}.dnb-section :where(:not(.dnb-anchor--no-style)).dnb-anchor:hover:not(.dnb-anchor--no-hover).dnb-anchor,:where(:not(.dnb-anchor--no-style)).dnb-anchor:hover:not(.dnb-anchor--no-hover){-webkit-text-decoration:none;text-decoration:none}}:where(:not(.dnb-anchor--no-style)).dnb-anchor:active{border-radius:.25em}.dnb-section :where(:not(.dnb-anchor--no-style)).dnb-anchor:active.dnb-anchor,:where(:not(.dnb-anchor--no-style)).dnb-anchor:active{-webkit-text-decoration:none;text-decoration:none}[data-visual-test-wrapper] :where(:not(.dnb-anchor--no-style)).dnb-anchor{transition:none}:where(:not(.dnb-anchor--no-style)).dnb-anchor .dnb-icon{display:inline-block;transform:translateY(-.0625em)}:where(:not(.dnb-anchor--no-style)).dnb-anchor--no-icon .dnb-icon{display:none}:where(:not(.dnb-anchor--no-style)).dnb-anchor.dnb-anchor--contrast{color:var(--color-white)}:where(:not(.dnb-anchor--no-style)).dnb-anchor.dnb-anchor--contrast:hover:where(:not(.dnb-anchor--no-hover)){--anchor-background-gutter:0.125em;box-shadow:inset 100vw 100vw 0 0 var(--color-white),calc(var(--anchor-background-gutter)*-1) 0 0 0 var(--color-white),var(--anchor-background-gutter) 0 0 0 var(--color-white);color:var(--anchor-color--contrast)}@supports not (selector(*:where(*))){:where(:not(.dnb-anchor--no-style)).dnb-anchor.dnb-anchor--contrast:hover:not(.dnb-anchor--no-hover){--anchor-background-gutter:0.125em;box-shadow:inset 100vw 100vw 0 0 var(--color-white),calc(var(--anchor-background-gutter)*-1) 0 0 0 var(--color-white),var(--anchor-background-gutter) 0 0 0 var(--color-white);color:var(--anchor-color--contrast)}}:where(:not(.dnb-anchor--no-style)).dnb-anchor.dnb-anchor--contrast:active{--anchor-background-gutter:0.125em;background-color:transparent;box-shadow:inset 100vw 100vw 0 0 transparent,calc(var(--anchor-background-gutter)*-1) 0 0 0 transparent,var(--anchor-background-gutter) 0 0 0 transparent;color:var(--color-white)}:where(:not(.dnb-anchor--no-style)).dnb-anchor.dnb-anchor--contrast:focus-visible{--border-color:var(--color-white);--border-width:var(--focus-ring-width);background-color:transparent;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color);color:var(--color-white);outline:none}@supports not (selector(*:where(*))){:not(.dnb-anchor--no-style).dnb-anchor{--anchor-underline-thickness:0.0938rem;border-radius:0;display:inline;font-size:var(--font-size-basis);padding:.05575em 0;-webkit-text-decoration:underline;text-decoration:underline;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,background .2s ease-in-out}sub :not(.dnb-anchor--no-style).dnb-anchor,sup :not(.dnb-anchor--no-style).dnb-anchor{padding:0 .025em}.dnb-h--basis :not(.dnb-anchor--no-style).dnb-anchor,.dnb-h--large :not(.dnb-anchor--no-style).dnb-anchor,.dnb-h--medium :not(.dnb-anchor--no-style).dnb-anchor,.dnb-h--small :not(.dnb-anchor--no-style).dnb-anchor,.dnb-h--x-large :not(.dnb-anchor--no-style).dnb-anchor,.dnb-h--x-small :not(.dnb-anchor--no-style).dnb-anchor,.dnb-h--xx-large :not(.dnb-anchor--no-style).dnb-anchor,.dnb-lead :not(.dnb-anchor--no-style).dnb-anchor,.dnb-p :not(.dnb-anchor--no-style).dnb-anchor{font-size:inherit}:not(.dnb-anchor--no-style).dnb-anchor:focus-visible{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);background-color:transparent;border-color:transparent;border-radius:.25em;box-shadow:0 0 0 var(--border-width) var(--border-color);outline:none;transition:none}.dnb-section :not(.dnb-anchor--no-style).dnb-anchor:focus-visible.dnb-anchor,:not(.dnb-anchor--no-style).dnb-anchor:focus-visible{-webkit-text-decoration:none;text-decoration:none}:not(.dnb-anchor--no-style).dnb-anchor:hover:where(:not(.dnb-anchor--no-hover)){border-radius:.25em}.dnb-section :not(.dnb-anchor--no-style).dnb-anchor:hover:where(:not(.dnb-anchor--no-hover)).dnb-anchor,:not(.dnb-anchor--no-style).dnb-anchor:hover:where(:not(.dnb-anchor--no-hover)){-webkit-text-decoration:none;text-decoration:none}@supports not (selector(*:where(*))){:not(.dnb-anchor--no-style).dnb-anchor:hover:not(.dnb-anchor--no-hover){border-radius:.25em}.dnb-section :not(.dnb-anchor--no-style).dnb-anchor:hover:not(.dnb-anchor--no-hover).dnb-anchor,:not(.dnb-anchor--no-style).dnb-anchor:hover:not(.dnb-anchor--no-hover){-webkit-text-decoration:none;text-decoration:none}}:not(.dnb-anchor--no-style).dnb-anchor:active{border-radius:.25em}.dnb-section :not(.dnb-anchor--no-style).dnb-anchor:active.dnb-anchor,:not(.dnb-anchor--no-style).dnb-anchor:active{-webkit-text-decoration:none;text-decoration:none}[data-visual-test-wrapper] :not(.dnb-anchor--no-style).dnb-anchor{transition:none}:not(.dnb-anchor--no-style).dnb-anchor .dnb-icon{display:inline-block;transform:translateY(-.0625em)}:not(.dnb-anchor--no-style).dnb-anchor--no-icon .dnb-icon{display:none}:not(.dnb-anchor--no-style).dnb-anchor.dnb-anchor--contrast{color:var(--color-white)}:not(.dnb-anchor--no-style).dnb-anchor.dnb-anchor--contrast:hover:where(:not(.dnb-anchor--no-hover)){--anchor-background-gutter:0.125em;box-shadow:inset 100vw 100vw 0 0 var(--color-white),calc(var(--anchor-background-gutter)*-1) 0 0 0 var(--color-white),var(--anchor-background-gutter) 0 0 0 var(--color-white);color:var(--anchor-color--contrast)}@supports not (selector(*:where(*))){:not(.dnb-anchor--no-style).dnb-anchor.dnb-anchor--contrast:hover:not(.dnb-anchor--no-hover){--anchor-background-gutter:0.125em;box-shadow:inset 100vw 100vw 0 0 var(--color-white),calc(var(--anchor-background-gutter)*-1) 0 0 0 var(--color-white),var(--anchor-background-gutter) 0 0 0 var(--color-white);color:var(--anchor-color--contrast)}}:not(.dnb-anchor--no-style).dnb-anchor.dnb-anchor--contrast:active{--anchor-background-gutter:0.125em;background-color:transparent;box-shadow:inset 100vw 100vw 0 0 transparent,calc(var(--anchor-background-gutter)*-1) 0 0 0 transparent,var(--anchor-background-gutter) 0 0 0 transparent;color:var(--color-white)}:not(.dnb-anchor--no-style).dnb-anchor.dnb-anchor--contrast:focus-visible{--border-color:var(--color-white);--border-width:var(--focus-ring-width);background-color:transparent;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color);color:var(--color-white);outline:none}}.dnb-anchor--hover{border-radius:.25em}.dnb-anchor--hover,.dnb-section .dnb-anchor--hover.dnb-anchor{-webkit-text-decoration:none;text-decoration:none}.dnb-anchor--active{border-radius:.25em}.dnb-anchor--active,.dnb-section .dnb-anchor--active.dnb-anchor{-webkit-text-decoration:none;text-decoration:none}.dnb-anchor--focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);background-color:transparent;border-color:transparent;border-radius:.25em;box-shadow:0 0 0 var(--border-width) var(--border-color);outline:none;transition:none}.dnb-anchor--focus,.dnb-anchor--no-underline,.dnb-section .dnb-anchor--focus.dnb-anchor,.dnb-section .dnb-anchor--no-underline.dnb-anchor{-webkit-text-decoration:none;text-decoration:none}.dnb-anchor--no-radius,.dnb-anchor--no-radius:active,.dnb-anchor--no-radius:focus-visible,.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{-webkit-text-decoration:none;text-decoration:none}.dnb-anchor.dnb-skeleton .dnb-icon,.dnb-skeleton>.dnb-anchor .dnb-icon{filter:grayscale(100%) opacity(.3)}
1
+ button.dnb-anchor{-webkit-appearance:none;appearance:none;background:none;border:none;cursor:pointer;line-height:calc(var(--line-height-basis) + .125rem)}:where(:not(.dnb-anchor--no-style)).dnb-anchor{--anchor-underline-thickness:0.0938rem;border-radius:0;display:inline;font-size:var(--font-size-basis);padding:.05575em 0;-webkit-text-decoration:underline;text-decoration:underline;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,background .2s ease-in-out}sub :where(:not(.dnb-anchor--no-style)).dnb-anchor,sup :where(:not(.dnb-anchor--no-style)).dnb-anchor{padding:0 .025em}.dnb-h--basis :where(:not(.dnb-anchor--no-style)).dnb-anchor,.dnb-h--large :where(:not(.dnb-anchor--no-style)).dnb-anchor,.dnb-h--medium :where(:not(.dnb-anchor--no-style)).dnb-anchor,.dnb-h--small :where(:not(.dnb-anchor--no-style)).dnb-anchor,.dnb-h--x-large :where(:not(.dnb-anchor--no-style)).dnb-anchor,.dnb-h--x-small :where(:not(.dnb-anchor--no-style)).dnb-anchor,.dnb-h--xx-large :where(:not(.dnb-anchor--no-style)).dnb-anchor,.dnb-lead :where(:not(.dnb-anchor--no-style)).dnb-anchor,.dnb-p :where(:not(.dnb-anchor--no-style)).dnb-anchor{font-size:inherit}:where(:not(.dnb-anchor--no-style)).dnb-anchor:focus-visible{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);background-color:transparent;border-color:transparent;border-radius:.25em;box-shadow:0 0 0 var(--border-width) var(--border-color);outline:none;transition:none}.dnb-section :where(:not(.dnb-anchor--no-style)).dnb-anchor:focus-visible.dnb-anchor,:where(:not(.dnb-anchor--no-style)).dnb-anchor:focus-visible{-webkit-text-decoration:none;text-decoration:none}:where(:not(.dnb-anchor--no-style)).dnb-anchor:hover:where(:not(.dnb-anchor--no-hover)){border-radius:.25em}.dnb-section :where(:not(.dnb-anchor--no-style)).dnb-anchor:hover:where(:not(.dnb-anchor--no-hover)).dnb-anchor,:where(:not(.dnb-anchor--no-style)).dnb-anchor:hover:where(:not(.dnb-anchor--no-hover)){-webkit-text-decoration:none;text-decoration:none}@supports not (selector(*:where(*))){:where(:not(.dnb-anchor--no-style)).dnb-anchor:hover:not(.dnb-anchor--no-hover){border-radius:.25em}.dnb-section :where(:not(.dnb-anchor--no-style)).dnb-anchor:hover:not(.dnb-anchor--no-hover).dnb-anchor,:where(:not(.dnb-anchor--no-style)).dnb-anchor:hover:not(.dnb-anchor--no-hover){-webkit-text-decoration:none;text-decoration:none}}:where(:not(.dnb-anchor--no-style)).dnb-anchor:active{border-radius:.25em}.dnb-section :where(:not(.dnb-anchor--no-style)).dnb-anchor:active.dnb-anchor,:where(:not(.dnb-anchor--no-style)).dnb-anchor:active{-webkit-text-decoration:none;text-decoration:none}[data-visual-test-wrapper] :where(:not(.dnb-anchor--no-style)).dnb-anchor{transition:none}:where(:not(.dnb-anchor--no-style)).dnb-anchor .dnb-icon{display:inline-block;transform:translateY(-.0625em)}:where(:not(.dnb-anchor--no-style)).dnb-anchor--no-icon .dnb-icon{display:none}:where(:not(.dnb-anchor--no-style)).dnb-anchor.dnb-anchor--contrast{color:var(--color-white)}:where(:not(.dnb-anchor--no-style)).dnb-anchor.dnb-anchor--contrast:hover:where(:not(.dnb-anchor--no-hover)){box-shadow:inset 100vw 100vw 0 0 var(--color-white),calc(var(--anchor-background-gutter-left, .125rem)*-1) 0 0 0 var(--color-white),var(--anchor-background-gutter-right,.125rem) 0 0 0 var(--color-white);color:var(--anchor-color--contrast)}@supports not (selector(*:where(*))){:where(:not(.dnb-anchor--no-style)).dnb-anchor.dnb-anchor--contrast:hover:not(.dnb-anchor--no-hover){box-shadow:inset 100vw 100vw 0 0 var(--color-white),calc(var(--anchor-background-gutter-left, .125rem)*-1) 0 0 0 var(--color-white),var(--anchor-background-gutter-right,.125rem) 0 0 0 var(--color-white);color:var(--anchor-color--contrast)}}:where(:not(.dnb-anchor--no-style)).dnb-anchor.dnb-anchor--contrast:active{background-color:transparent;box-shadow:inset 100vw 100vw 0 0 transparent,calc(var(--anchor-background-gutter-left, .125rem)*-1) 0 0 0 transparent,var(--anchor-background-gutter-right,.125rem) 0 0 0 transparent;color:var(--color-white)}:where(:not(.dnb-anchor--no-style)).dnb-anchor.dnb-anchor--contrast:focus-visible{--border-color:var(--color-white);--border-width:var(--focus-ring-width);background-color:transparent;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color);color:var(--color-white);outline:none}@supports not (selector(*:where(*))){:not(.dnb-anchor--no-style).dnb-anchor{--anchor-underline-thickness:0.0938rem;border-radius:0;display:inline;font-size:var(--font-size-basis);padding:.05575em 0;-webkit-text-decoration:underline;text-decoration:underline;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,background .2s ease-in-out}sub :not(.dnb-anchor--no-style).dnb-anchor,sup :not(.dnb-anchor--no-style).dnb-anchor{padding:0 .025em}.dnb-h--basis :not(.dnb-anchor--no-style).dnb-anchor,.dnb-h--large :not(.dnb-anchor--no-style).dnb-anchor,.dnb-h--medium :not(.dnb-anchor--no-style).dnb-anchor,.dnb-h--small :not(.dnb-anchor--no-style).dnb-anchor,.dnb-h--x-large :not(.dnb-anchor--no-style).dnb-anchor,.dnb-h--x-small :not(.dnb-anchor--no-style).dnb-anchor,.dnb-h--xx-large :not(.dnb-anchor--no-style).dnb-anchor,.dnb-lead :not(.dnb-anchor--no-style).dnb-anchor,.dnb-p :not(.dnb-anchor--no-style).dnb-anchor{font-size:inherit}:not(.dnb-anchor--no-style).dnb-anchor:focus-visible{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);background-color:transparent;border-color:transparent;border-radius:.25em;box-shadow:0 0 0 var(--border-width) var(--border-color);outline:none;transition:none}.dnb-section :not(.dnb-anchor--no-style).dnb-anchor:focus-visible.dnb-anchor,:not(.dnb-anchor--no-style).dnb-anchor:focus-visible{-webkit-text-decoration:none;text-decoration:none}:not(.dnb-anchor--no-style).dnb-anchor:hover:where(:not(.dnb-anchor--no-hover)){border-radius:.25em}.dnb-section :not(.dnb-anchor--no-style).dnb-anchor:hover:where(:not(.dnb-anchor--no-hover)).dnb-anchor,:not(.dnb-anchor--no-style).dnb-anchor:hover:where(:not(.dnb-anchor--no-hover)){-webkit-text-decoration:none;text-decoration:none}@supports not (selector(*:where(*))){:not(.dnb-anchor--no-style).dnb-anchor:hover:not(.dnb-anchor--no-hover){border-radius:.25em}.dnb-section :not(.dnb-anchor--no-style).dnb-anchor:hover:not(.dnb-anchor--no-hover).dnb-anchor,:not(.dnb-anchor--no-style).dnb-anchor:hover:not(.dnb-anchor--no-hover){-webkit-text-decoration:none;text-decoration:none}}:not(.dnb-anchor--no-style).dnb-anchor:active{border-radius:.25em}.dnb-section :not(.dnb-anchor--no-style).dnb-anchor:active.dnb-anchor,:not(.dnb-anchor--no-style).dnb-anchor:active{-webkit-text-decoration:none;text-decoration:none}[data-visual-test-wrapper] :not(.dnb-anchor--no-style).dnb-anchor{transition:none}:not(.dnb-anchor--no-style).dnb-anchor .dnb-icon{display:inline-block;transform:translateY(-.0625em)}:not(.dnb-anchor--no-style).dnb-anchor--no-icon .dnb-icon{display:none}:not(.dnb-anchor--no-style).dnb-anchor.dnb-anchor--contrast{color:var(--color-white)}:not(.dnb-anchor--no-style).dnb-anchor.dnb-anchor--contrast:hover:where(:not(.dnb-anchor--no-hover)){box-shadow:inset 100vw 100vw 0 0 var(--color-white),calc(var(--anchor-background-gutter-left, .125rem)*-1) 0 0 0 var(--color-white),var(--anchor-background-gutter-right,.125rem) 0 0 0 var(--color-white);color:var(--anchor-color--contrast)}@supports not (selector(*:where(*))){:not(.dnb-anchor--no-style).dnb-anchor.dnb-anchor--contrast:hover:not(.dnb-anchor--no-hover){box-shadow:inset 100vw 100vw 0 0 var(--color-white),calc(var(--anchor-background-gutter-left, .125rem)*-1) 0 0 0 var(--color-white),var(--anchor-background-gutter-right,.125rem) 0 0 0 var(--color-white);color:var(--anchor-color--contrast)}}:not(.dnb-anchor--no-style).dnb-anchor.dnb-anchor--contrast:active{background-color:transparent;box-shadow:inset 100vw 100vw 0 0 transparent,calc(var(--anchor-background-gutter-left, .125rem)*-1) 0 0 0 transparent,var(--anchor-background-gutter-right,.125rem) 0 0 0 transparent;color:var(--color-white)}:not(.dnb-anchor--no-style).dnb-anchor.dnb-anchor--contrast:focus-visible{--border-color:var(--color-white);--border-width:var(--focus-ring-width);background-color:transparent;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color);color:var(--color-white);outline:none}}.dnb-anchor--hover{border-radius:.25em}.dnb-anchor--hover,.dnb-section .dnb-anchor--hover.dnb-anchor{-webkit-text-decoration:none;text-decoration:none}.dnb-anchor--active{border-radius:.25em}.dnb-anchor--active,.dnb-section .dnb-anchor--active.dnb-anchor{-webkit-text-decoration:none;text-decoration:none}.dnb-anchor--focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);background-color:transparent;border-color:transparent;border-radius:.25em;box-shadow:0 0 0 var(--border-width) var(--border-color);outline:none;transition:none}.dnb-anchor--focus,.dnb-anchor--no-underline,.dnb-section .dnb-anchor--focus.dnb-anchor,.dnb-section .dnb-anchor--no-underline.dnb-anchor{-webkit-text-decoration:none;text-decoration:none}.dnb-anchor--no-radius,.dnb-anchor--no-radius:active,.dnb-anchor--no-radius:focus-visible,.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{-webkit-text-decoration:none;text-decoration:none}.dnb-anchor.dnb-skeleton .dnb-icon,.dnb-skeleton>.dnb-anchor .dnb-icon{filter:grayscale(100%) opacity(.3)}
@@ -19,8 +19,7 @@
19
19
  }
20
20
  :where(:not(.dnb-anchor--no-style)).dnb-anchor:hover:where(:not(.dnb-anchor--no-hover)) {
21
21
  --anchor-color: var(--color-sea-green);
22
- --anchor-background-gutter: 0.125em;
23
- box-shadow: inset 100vw 100vw 0 0 var(--anchor-background--hover), calc(var(--anchor-background-gutter) * -1) 0 0 0 var(--anchor-background--hover), var(--anchor-background-gutter) 0 0 0 var(--anchor-background--hover);
22
+ box-shadow: inset 100vw 100vw 0 0 var(--anchor-background--hover), calc(var(--anchor-background-gutter-left, 0.125rem) * -1) 0 0 0 var(--anchor-background--hover), var(--anchor-background-gutter-right, 0.125rem) 0 0 0 var(--anchor-background--hover);
24
23
  }
25
24
  :where(:not(.dnb-anchor--no-style)).dnb-anchor:hover:not(.dnb-anchor--no-hover) {
26
25
  /* stylelint-disable-next-line scss/operator-no-unspaced */
@@ -28,14 +27,12 @@
28
27
  @supports not (selector(*:where(*))) {
29
28
  :where(:not(.dnb-anchor--no-style)).dnb-anchor:hover:not(.dnb-anchor--no-hover) {
30
29
  --anchor-color: var(--color-sea-green);
31
- --anchor-background-gutter: 0.125em;
32
- box-shadow: inset 100vw 100vw 0 0 var(--anchor-background--hover), calc(var(--anchor-background-gutter) * -1) 0 0 0 var(--anchor-background--hover), var(--anchor-background-gutter) 0 0 0 var(--anchor-background--hover);
30
+ box-shadow: inset 100vw 100vw 0 0 var(--anchor-background--hover), calc(var(--anchor-background-gutter-left, 0.125rem) * -1) 0 0 0 var(--anchor-background--hover), var(--anchor-background-gutter-right, 0.125rem) 0 0 0 var(--anchor-background--hover);
33
31
  }
34
32
  }
35
33
  :where(:not(.dnb-anchor--no-style)).dnb-anchor:active {
36
34
  --anchor-color: var(--anchor-color--active);
37
- --anchor-background-gutter: 0.125em;
38
- box-shadow: inset 100vw 100vw 0 0 var(--anchor-background--active), calc(var(--anchor-background-gutter) * -1) 0 0 0 var(--anchor-background--active), var(--anchor-background-gutter) 0 0 0 var(--anchor-background--active);
35
+ box-shadow: inset 100vw 100vw 0 0 var(--anchor-background--active), calc(var(--anchor-background-gutter-left, 0.125rem) * -1) 0 0 0 var(--anchor-background--active), var(--anchor-background-gutter-right, 0.125rem) 0 0 0 var(--anchor-background--active);
39
36
  }
40
37
  :where(:not(.dnb-anchor--no-style)).dnb-anchor:focus-visible {
41
38
  --anchor-color: var(--color-sea-green);
@@ -67,8 +64,7 @@
67
64
  }
68
65
  :not(.dnb-anchor--no-style).dnb-anchor:hover:where(:not(.dnb-anchor--no-hover)) {
69
66
  --anchor-color: var(--color-sea-green);
70
- --anchor-background-gutter: 0.125em;
71
- box-shadow: inset 100vw 100vw 0 0 var(--anchor-background--hover), calc(var(--anchor-background-gutter) * -1) 0 0 0 var(--anchor-background--hover), var(--anchor-background-gutter) 0 0 0 var(--anchor-background--hover);
67
+ box-shadow: inset 100vw 100vw 0 0 var(--anchor-background--hover), calc(var(--anchor-background-gutter-left, 0.125rem) * -1) 0 0 0 var(--anchor-background--hover), var(--anchor-background-gutter-right, 0.125rem) 0 0 0 var(--anchor-background--hover);
72
68
  }
73
69
  :not(.dnb-anchor--no-style).dnb-anchor:hover:not(.dnb-anchor--no-hover) {
74
70
  /* stylelint-disable-next-line scss/operator-no-unspaced */
@@ -76,14 +72,12 @@
76
72
  @supports not (selector(*:where(*))) {
77
73
  :not(.dnb-anchor--no-style).dnb-anchor:hover:not(.dnb-anchor--no-hover) {
78
74
  --anchor-color: var(--color-sea-green);
79
- --anchor-background-gutter: 0.125em;
80
- box-shadow: inset 100vw 100vw 0 0 var(--anchor-background--hover), calc(var(--anchor-background-gutter) * -1) 0 0 0 var(--anchor-background--hover), var(--anchor-background-gutter) 0 0 0 var(--anchor-background--hover);
75
+ box-shadow: inset 100vw 100vw 0 0 var(--anchor-background--hover), calc(var(--anchor-background-gutter-left, 0.125rem) * -1) 0 0 0 var(--anchor-background--hover), var(--anchor-background-gutter-right, 0.125rem) 0 0 0 var(--anchor-background--hover);
81
76
  }
82
77
  }
83
78
  :not(.dnb-anchor--no-style).dnb-anchor:active {
84
79
  --anchor-color: var(--anchor-color--active);
85
- --anchor-background-gutter: 0.125em;
86
- box-shadow: inset 100vw 100vw 0 0 var(--anchor-background--active), calc(var(--anchor-background-gutter) * -1) 0 0 0 var(--anchor-background--active), var(--anchor-background-gutter) 0 0 0 var(--anchor-background--active);
80
+ box-shadow: inset 100vw 100vw 0 0 var(--anchor-background--active), calc(var(--anchor-background-gutter-left, 0.125rem) * -1) 0 0 0 var(--anchor-background--active), var(--anchor-background-gutter-right, 0.125rem) 0 0 0 var(--anchor-background--active);
87
81
  }
88
82
  :not(.dnb-anchor--no-style).dnb-anchor:focus-visible {
89
83
  --anchor-color: var(--color-sea-green);
@@ -104,14 +98,12 @@
104
98
 
105
99
  .dnb-anchor--hover {
106
100
  --anchor-color: var(--color-sea-green);
107
- --anchor-background-gutter: 0.125em;
108
- box-shadow: inset 100vw 100vw 0 0 var(--anchor-background--hover), calc(var(--anchor-background-gutter) * -1) 0 0 0 var(--anchor-background--hover), var(--anchor-background-gutter) 0 0 0 var(--anchor-background--hover);
101
+ box-shadow: inset 100vw 100vw 0 0 var(--anchor-background--hover), calc(var(--anchor-background-gutter-left, 0.125rem) * -1) 0 0 0 var(--anchor-background--hover), var(--anchor-background-gutter-right, 0.125rem) 0 0 0 var(--anchor-background--hover);
109
102
  }
110
103
 
111
104
  .dnb-anchor--active {
112
105
  --anchor-color: var(--anchor-color--active);
113
- --anchor-background-gutter: 0.125em;
114
- box-shadow: inset 100vw 100vw 0 0 var(--anchor-background--active), calc(var(--anchor-background-gutter) * -1) 0 0 0 var(--anchor-background--active), var(--anchor-background-gutter) 0 0 0 var(--anchor-background--active);
106
+ box-shadow: inset 100vw 100vw 0 0 var(--anchor-background--active), calc(var(--anchor-background-gutter-left, 0.125rem) * -1) 0 0 0 var(--anchor-background--active), var(--anchor-background-gutter-right, 0.125rem) 0 0 0 var(--anchor-background--active);
115
107
  }
116
108
 
117
109
  .dnb-anchor--focus {
@@ -1 +1 @@
1
- :where(:not(.dnb-anchor--no-style)).dnb-anchor{--anchor-color:var(--anchor-color--default,var(--color-sea-green));--anchor-color--active:var(--color-mint-green);--anchor-color--contrast:var(--color-emerald-green);--anchor-background--hover:var(--color-mint-green-50);--anchor-background--active:var(--color-emerald-green);color:var(--anchor-color)}:where(:not(.dnb-anchor--no-style)).dnb-anchor:hover:where(:not(.dnb-anchor--no-hover)){--anchor-color:var(--color-sea-green);--anchor-background-gutter:0.125em;box-shadow:inset 100vw 100vw 0 0 var(--anchor-background--hover),calc(var(--anchor-background-gutter)*-1) 0 0 0 var(--anchor-background--hover),var(--anchor-background-gutter) 0 0 0 var(--anchor-background--hover)}@supports not (selector(*:where(*))){:where(:not(.dnb-anchor--no-style)).dnb-anchor:hover:not(.dnb-anchor--no-hover){--anchor-color:var(--color-sea-green);--anchor-background-gutter:0.125em;box-shadow:inset 100vw 100vw 0 0 var(--anchor-background--hover),calc(var(--anchor-background-gutter)*-1) 0 0 0 var(--anchor-background--hover),var(--anchor-background-gutter) 0 0 0 var(--anchor-background--hover)}}:where(:not(.dnb-anchor--no-style)).dnb-anchor:active{--anchor-color:var(--anchor-color--active);--anchor-background-gutter:0.125em;box-shadow:inset 100vw 100vw 0 0 var(--anchor-background--active),calc(var(--anchor-background-gutter)*-1) 0 0 0 var(--anchor-background--active),var(--anchor-background-gutter) 0 0 0 var(--anchor-background--active)}:where(:not(.dnb-anchor--no-style)).dnb-anchor:focus-visible{--anchor-color:var(--color-sea-green)}:where(:not(.dnb-anchor--no-style)).dnb-anchor--icon-left .dnb-icon:first-child{margin-right:.25em}:where(:not(.dnb-anchor--no-style)).dnb-anchor--icon-right .dnb-icon:last-child{margin-left:.25em}:where(:not(.dnb-anchor--no-style)).dnb-anchor__launch-icon.dnb-icon.dnb-icon--default{font-size:1.11em}:where(:not(.dnb-anchor--no-style)).dnb-anchor__launch-icon.dnb-icon.dnb-icon--default svg path{stroke-width:1.2}@supports not (selector(*:where(*))){:not(.dnb-anchor--no-style).dnb-anchor{--anchor-color:var(--anchor-color--default,var(--color-sea-green));--anchor-color--active:var(--color-mint-green);--anchor-color--contrast:var(--color-emerald-green);--anchor-background--hover:var(--color-mint-green-50);--anchor-background--active:var(--color-emerald-green);color:var(--anchor-color)}:not(.dnb-anchor--no-style).dnb-anchor:hover:where(:not(.dnb-anchor--no-hover)){--anchor-color:var(--color-sea-green);--anchor-background-gutter:0.125em;box-shadow:inset 100vw 100vw 0 0 var(--anchor-background--hover),calc(var(--anchor-background-gutter)*-1) 0 0 0 var(--anchor-background--hover),var(--anchor-background-gutter) 0 0 0 var(--anchor-background--hover)}@supports not (selector(*:where(*))){:not(.dnb-anchor--no-style).dnb-anchor:hover:not(.dnb-anchor--no-hover){--anchor-color:var(--color-sea-green);--anchor-background-gutter:0.125em;box-shadow:inset 100vw 100vw 0 0 var(--anchor-background--hover),calc(var(--anchor-background-gutter)*-1) 0 0 0 var(--anchor-background--hover),var(--anchor-background-gutter) 0 0 0 var(--anchor-background--hover)}}:not(.dnb-anchor--no-style).dnb-anchor:active{--anchor-color:var(--anchor-color--active);--anchor-background-gutter:0.125em;box-shadow:inset 100vw 100vw 0 0 var(--anchor-background--active),calc(var(--anchor-background-gutter)*-1) 0 0 0 var(--anchor-background--active),var(--anchor-background-gutter) 0 0 0 var(--anchor-background--active)}:not(.dnb-anchor--no-style).dnb-anchor:focus-visible{--anchor-color:var(--color-sea-green)}:not(.dnb-anchor--no-style).dnb-anchor--icon-left .dnb-icon:first-child{margin-right:.25em}:not(.dnb-anchor--no-style).dnb-anchor--icon-right .dnb-icon:last-child{margin-left:.25em}:not(.dnb-anchor--no-style).dnb-anchor__launch-icon.dnb-icon.dnb-icon--default{font-size:1.11em}:not(.dnb-anchor--no-style).dnb-anchor__launch-icon.dnb-icon.dnb-icon--default svg path{stroke-width:1.2}}.dnb-anchor--hover{--anchor-color:var(--color-sea-green);--anchor-background-gutter:0.125em;box-shadow:inset 100vw 100vw 0 0 var(--anchor-background--hover),calc(var(--anchor-background-gutter)*-1) 0 0 0 var(--anchor-background--hover),var(--anchor-background-gutter) 0 0 0 var(--anchor-background--hover)}.dnb-anchor--active{--anchor-color:var(--anchor-color--active);--anchor-background-gutter:0.125em;box-shadow:inset 100vw 100vw 0 0 var(--anchor-background--active),calc(var(--anchor-background-gutter)*-1) 0 0 0 var(--anchor-background--active),var(--anchor-background-gutter) 0 0 0 var(--anchor-background--active)}.dnb-anchor--focus{--anchor-color:var(--color-sea-green)}:where(:not(.dnb-anchor--no-style)).dnb-anchor{--anchor-color--default:var(--color-emerald-green);--anchor-color--contrast:var(--color-sea-green);--anchor-color--active:var(--color-sea-green);--anchor-background--hover:transparent;--anchor-background--active:var(--color-pistachio)}@supports not (selector(*:where(*))){:not(.dnb-anchor--no-style).dnb-anchor{--anchor-color--default:var(--color-emerald-green);--anchor-color--contrast:var(--color-sea-green);--anchor-color--active:var(--color-sea-green);--anchor-background--hover:transparent;--anchor-background--active:var(--color-pistachio)}}
1
+ :where(:not(.dnb-anchor--no-style)).dnb-anchor{--anchor-color:var(--anchor-color--default,var(--color-sea-green));--anchor-color--active:var(--color-mint-green);--anchor-color--contrast:var(--color-emerald-green);--anchor-background--hover:var(--color-mint-green-50);--anchor-background--active:var(--color-emerald-green);color:var(--anchor-color)}:where(:not(.dnb-anchor--no-style)).dnb-anchor:hover:where(:not(.dnb-anchor--no-hover)){--anchor-color:var(--color-sea-green);box-shadow:inset 100vw 100vw 0 0 var(--anchor-background--hover),calc(var(--anchor-background-gutter-left, .125rem)*-1) 0 0 0 var(--anchor-background--hover),var(--anchor-background-gutter-right,.125rem) 0 0 0 var(--anchor-background--hover)}@supports not (selector(*:where(*))){:where(:not(.dnb-anchor--no-style)).dnb-anchor:hover:not(.dnb-anchor--no-hover){--anchor-color:var(--color-sea-green);box-shadow:inset 100vw 100vw 0 0 var(--anchor-background--hover),calc(var(--anchor-background-gutter-left, .125rem)*-1) 0 0 0 var(--anchor-background--hover),var(--anchor-background-gutter-right,.125rem) 0 0 0 var(--anchor-background--hover)}}:where(:not(.dnb-anchor--no-style)).dnb-anchor:active{--anchor-color:var(--anchor-color--active);box-shadow:inset 100vw 100vw 0 0 var(--anchor-background--active),calc(var(--anchor-background-gutter-left, .125rem)*-1) 0 0 0 var(--anchor-background--active),var(--anchor-background-gutter-right,.125rem) 0 0 0 var(--anchor-background--active)}:where(:not(.dnb-anchor--no-style)).dnb-anchor:focus-visible{--anchor-color:var(--color-sea-green)}:where(:not(.dnb-anchor--no-style)).dnb-anchor--icon-left .dnb-icon:first-child{margin-right:.25em}:where(:not(.dnb-anchor--no-style)).dnb-anchor--icon-right .dnb-icon:last-child{margin-left:.25em}:where(:not(.dnb-anchor--no-style)).dnb-anchor__launch-icon.dnb-icon.dnb-icon--default{font-size:1.11em}:where(:not(.dnb-anchor--no-style)).dnb-anchor__launch-icon.dnb-icon.dnb-icon--default svg path{stroke-width:1.2}@supports not (selector(*:where(*))){:not(.dnb-anchor--no-style).dnb-anchor{--anchor-color:var(--anchor-color--default,var(--color-sea-green));--anchor-color--active:var(--color-mint-green);--anchor-color--contrast:var(--color-emerald-green);--anchor-background--hover:var(--color-mint-green-50);--anchor-background--active:var(--color-emerald-green);color:var(--anchor-color)}:not(.dnb-anchor--no-style).dnb-anchor:hover:where(:not(.dnb-anchor--no-hover)){--anchor-color:var(--color-sea-green);box-shadow:inset 100vw 100vw 0 0 var(--anchor-background--hover),calc(var(--anchor-background-gutter-left, .125rem)*-1) 0 0 0 var(--anchor-background--hover),var(--anchor-background-gutter-right,.125rem) 0 0 0 var(--anchor-background--hover)}@supports not (selector(*:where(*))){:not(.dnb-anchor--no-style).dnb-anchor:hover:not(.dnb-anchor--no-hover){--anchor-color:var(--color-sea-green);box-shadow:inset 100vw 100vw 0 0 var(--anchor-background--hover),calc(var(--anchor-background-gutter-left, .125rem)*-1) 0 0 0 var(--anchor-background--hover),var(--anchor-background-gutter-right,.125rem) 0 0 0 var(--anchor-background--hover)}}:not(.dnb-anchor--no-style).dnb-anchor:active{--anchor-color:var(--anchor-color--active);box-shadow:inset 100vw 100vw 0 0 var(--anchor-background--active),calc(var(--anchor-background-gutter-left, .125rem)*-1) 0 0 0 var(--anchor-background--active),var(--anchor-background-gutter-right,.125rem) 0 0 0 var(--anchor-background--active)}:not(.dnb-anchor--no-style).dnb-anchor:focus-visible{--anchor-color:var(--color-sea-green)}:not(.dnb-anchor--no-style).dnb-anchor--icon-left .dnb-icon:first-child{margin-right:.25em}:not(.dnb-anchor--no-style).dnb-anchor--icon-right .dnb-icon:last-child{margin-left:.25em}:not(.dnb-anchor--no-style).dnb-anchor__launch-icon.dnb-icon.dnb-icon--default{font-size:1.11em}:not(.dnb-anchor--no-style).dnb-anchor__launch-icon.dnb-icon.dnb-icon--default svg path{stroke-width:1.2}}.dnb-anchor--hover{--anchor-color:var(--color-sea-green);box-shadow:inset 100vw 100vw 0 0 var(--anchor-background--hover),calc(var(--anchor-background-gutter-left, .125rem)*-1) 0 0 0 var(--anchor-background--hover),var(--anchor-background-gutter-right,.125rem) 0 0 0 var(--anchor-background--hover)}.dnb-anchor--active{--anchor-color:var(--anchor-color--active);box-shadow:inset 100vw 100vw 0 0 var(--anchor-background--active),calc(var(--anchor-background-gutter-left, .125rem)*-1) 0 0 0 var(--anchor-background--active),var(--anchor-background-gutter-right,.125rem) 0 0 0 var(--anchor-background--active)}.dnb-anchor--focus{--anchor-color:var(--color-sea-green)}:where(:not(.dnb-anchor--no-style)).dnb-anchor{--anchor-color--default:var(--color-emerald-green);--anchor-color--contrast:var(--color-sea-green);--anchor-color--active:var(--color-sea-green);--anchor-background--hover:transparent;--anchor-background--active:var(--color-pistachio)}@supports not (selector(*:where(*))){:not(.dnb-anchor--no-style).dnb-anchor{--anchor-color--default:var(--color-emerald-green);--anchor-color--contrast:var(--color-sea-green);--anchor-color--active:var(--color-sea-green);--anchor-background--hover:transparent;--anchor-background--active:var(--color-pistachio)}}