@dnb/eufemia 9.16.3 → 9.18.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 (785) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/assets/assets/icons/above_the_line.svg +1 -1
  3. package/assets/assets/icons/eufemia-icons-pdf-categorized.tgz +0 -0
  4. package/assets/assets/icons/eufemia-icons-pdf.tgz +0 -0
  5. package/assets/assets/icons/facebook.svg +3 -0
  6. package/assets/assets/icons/facebook_medium.svg +3 -0
  7. package/assets/assets/icons/fridge.svg +1 -1
  8. package/assets/assets/icons/information_circled.svg +2 -1
  9. package/assets/assets/icons/information_circled_medium.svg +2 -1
  10. package/assets/assets/icons/instagram.svg +5 -0
  11. package/assets/assets/icons/instagram_medium.svg +12 -0
  12. package/assets/assets/icons/linkedin.svg +3 -0
  13. package/assets/assets/icons/linkedin_medium.svg +3 -0
  14. package/assets/assets/icons/motorcycle_medium.svg +2 -2
  15. package/assets/assets/icons/paragraph.svg +1 -1
  16. package/assets/assets/icons/scooter_medium.svg +2 -2
  17. package/assets/assets/icons/tag.svg +4 -0
  18. package/assets/assets/icons/tag_medium.svg +4 -0
  19. package/assets/icons/above_the_line.svg +1 -1
  20. package/assets/icons/eufemia-icons-pdf-categorized.tgz +0 -0
  21. package/assets/icons/eufemia-icons-pdf.tgz +0 -0
  22. package/assets/icons/facebook.svg +3 -0
  23. package/assets/icons/facebook_medium.svg +3 -0
  24. package/assets/icons/fridge.svg +1 -1
  25. package/assets/icons/information_circled.svg +2 -1
  26. package/assets/icons/information_circled_medium.svg +2 -1
  27. package/assets/icons/instagram.svg +5 -0
  28. package/assets/icons/instagram_medium.svg +12 -0
  29. package/assets/icons/linkedin.svg +3 -0
  30. package/assets/icons/linkedin_medium.svg +3 -0
  31. package/assets/icons/motorcycle_medium.svg +2 -2
  32. package/assets/icons/paragraph.svg +1 -1
  33. package/assets/icons/scooter_medium.svg +2 -2
  34. package/assets/icons/tag.svg +4 -0
  35. package/assets/icons/tag_medium.svg +4 -0
  36. package/cjs/components/Tag.d.ts +14 -0
  37. package/cjs/components/Tag.js +52 -0
  38. package/cjs/components/accordion/Accordion.d.ts +7 -7
  39. package/cjs/components/autocomplete/Autocomplete.d.ts +13 -13
  40. package/cjs/components/autocomplete/style/dnb-autocomplete.css +0 -2
  41. package/cjs/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  42. package/cjs/components/breadcrumb/Breadcrumb.js +5 -3
  43. package/cjs/components/breadcrumb/style/_breadcrumb.scss +7 -4
  44. package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +10 -8
  45. package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  46. package/cjs/components/button/Button.d.ts +7 -7
  47. package/cjs/components/button/Button.js +7 -5
  48. package/cjs/components/button/style/_button.scss +0 -4
  49. package/cjs/components/button/style/dnb-button.css +0 -2
  50. package/cjs/components/button/style/dnb-button.min.css +1 -1
  51. package/cjs/components/button/style/themes/dnb-button-theme-open-banking.css +4 -13
  52. package/cjs/components/button/style/themes/dnb-button-theme-open-banking.min.css +1 -1
  53. package/cjs/components/button/style/themes/dnb-button-theme-ui.css +4 -13
  54. package/cjs/components/button/style/themes/dnb-button-theme-ui.min.css +1 -1
  55. package/cjs/components/button/style/themes/dnb-button-theme-ui.scss +5 -18
  56. package/cjs/components/checkbox/Checkbox.d.ts +3 -3
  57. package/cjs/components/date-picker/DatePicker.d.ts +14 -14
  58. package/cjs/components/date-picker/DatePickerAddon.d.ts +1 -1
  59. package/cjs/components/date-picker/DatePickerCalendar.d.ts +1 -1
  60. package/cjs/components/date-picker/DatePickerInput.d.ts +1 -1
  61. package/cjs/components/date-picker/style/dnb-date-picker.css +0 -6
  62. package/cjs/components/date-picker/style/dnb-date-picker.min.css +1 -1
  63. package/cjs/components/dropdown/Dropdown.d.ts +9 -9
  64. package/cjs/components/dropdown/style/dnb-dropdown.css +0 -2
  65. package/cjs/components/dropdown/style/dnb-dropdown.min.css +1 -1
  66. package/cjs/components/form-row/FormRow.d.ts +4 -4
  67. package/cjs/components/form-set/FormSet.d.ts +6 -6
  68. package/cjs/components/global-error/GlobalError.d.ts +1 -1
  69. package/cjs/components/global-error/style/dnb-global-error.css +0 -2
  70. package/cjs/components/global-error/style/dnb-global-error.min.css +1 -1
  71. package/cjs/components/global-status/GlobalStatus.d.ts +5 -5
  72. package/cjs/components/global-status/GlobalStatus.js +21 -73
  73. package/cjs/components/global-status/style/_global-status.scss +14 -12
  74. package/cjs/components/global-status/style/dnb-global-status.css +13 -17
  75. package/cjs/components/global-status/style/dnb-global-status.min.css +1 -1
  76. package/cjs/components/global-status/style/themes/dnb-global-status-theme-ui.css +2 -48
  77. package/cjs/components/global-status/style/themes/dnb-global-status-theme-ui.min.css +1 -1
  78. package/cjs/components/global-status/style/themes/dnb-global-status-theme-ui.scss +2 -36
  79. package/cjs/components/heading/Heading.d.ts +2 -2
  80. package/cjs/components/heading/HeadingProvider.d.ts +2 -2
  81. package/cjs/components/help-button/HelpButton.d.ts +200 -0
  82. package/cjs/components/icon/Icon.d.ts +1 -1
  83. package/cjs/components/icon-primary/IconPrimary.d.ts +1 -1
  84. package/cjs/components/index.d.ts +2 -0
  85. package/cjs/components/index.js +8 -0
  86. package/cjs/components/input/Input.d.ts +9 -9
  87. package/cjs/components/input/style/dnb-input.css +0 -2
  88. package/cjs/components/input/style/dnb-input.min.css +1 -1
  89. package/cjs/components/input/style/themes/dnb-input-theme-ui.css +11 -2
  90. package/cjs/components/input/style/themes/dnb-input-theme-ui.min.css +1 -1
  91. package/cjs/components/input/style/themes/dnb-input-theme-ui.scss +4 -1
  92. package/cjs/components/input-masked/InputMasked.d.ts +11 -11
  93. package/cjs/components/input-masked/InputMasked.js +6 -3
  94. package/cjs/components/input-masked/InputMaskedElement.js +1 -4
  95. package/cjs/components/input-masked/InputMaskedHooks.js +68 -54
  96. package/cjs/components/input-masked/InputMaskedUtils.js +17 -22
  97. package/cjs/components/input-masked/style/dnb-input-masked.css +0 -2
  98. package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
  99. package/cjs/components/lib.js +9 -0
  100. package/cjs/components/modal/Modal.js +158 -300
  101. package/cjs/components/modal/ModalContent.js +183 -272
  102. package/cjs/components/modal/ModalRoot.js +194 -0
  103. package/cjs/components/modal/components/CloseButton.js +125 -0
  104. package/cjs/components/modal/components/ModalHeader.js +124 -0
  105. package/cjs/components/modal/{ModalHeader.js → components/ModalHeaderBar.js} +50 -162
  106. package/cjs/components/modal/{ModalInner.js → components/ModalInner.js} +11 -19
  107. package/cjs/components/modal/helpers.js +80 -0
  108. package/cjs/components/modal/style/_modal-mixins.scss +4 -4
  109. package/cjs/components/modal/style/_modal.scss +13 -30
  110. package/cjs/components/modal/style/dnb-modal.css +27 -47
  111. package/cjs/components/modal/style/dnb-modal.min.css +1 -1
  112. package/cjs/components/modal/types.js +1 -0
  113. package/cjs/components/number-format/NumberFormat.d.ts +8 -8
  114. package/cjs/components/pagination/Pagination.d.ts +30 -30
  115. package/cjs/components/pagination/PaginationProvider.d.ts +2 -2
  116. package/cjs/components/pagination/style/dnb-pagination.css +0 -2
  117. package/cjs/components/pagination/style/dnb-pagination.min.css +1 -1
  118. package/cjs/components/radio/Radio.d.ts +4 -4
  119. package/cjs/components/radio/RadioGroup.d.ts +3 -3
  120. package/cjs/components/section/Section.d.ts +3 -2
  121. package/cjs/components/section/style/themes/dnb-section-theme-ui.css +77 -19
  122. package/cjs/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  123. package/cjs/components/section/style/themes/dnb-section-theme-ui.scss +15 -2
  124. package/cjs/components/skeleton/Skeleton.d.ts +2 -2
  125. package/cjs/components/slider/Slider.d.ts +4 -4
  126. package/cjs/components/slider/style/dnb-slider.css +0 -2
  127. package/cjs/components/slider/style/dnb-slider.min.css +1 -1
  128. package/cjs/components/step-indicator/StepIndicator.d.ts +6 -6
  129. package/cjs/components/step-indicator/StepIndicator.js +4 -98
  130. package/cjs/components/step-indicator/StepIndicatorContext.d.ts +2 -1
  131. package/cjs/components/step-indicator/StepIndicatorContext.js +221 -19
  132. package/cjs/components/step-indicator/StepIndicatorItem.d.ts +2 -2
  133. package/cjs/components/step-indicator/StepIndicatorItem.js +4 -6
  134. package/cjs/components/step-indicator/StepIndicatorModal.js +40 -49
  135. package/cjs/components/step-indicator/StepIndicatorProps.js +1 -1
  136. package/cjs/components/step-indicator/StepIndicatorSidebar.d.ts +40 -1
  137. package/cjs/components/step-indicator/StepIndicatorSidebar.js +57 -54
  138. package/cjs/components/step-indicator/StepIndicatorTriggerButton.d.ts +1 -1
  139. package/cjs/components/step-indicator/StepIndicatorTriggerButton.js +1 -1
  140. package/cjs/components/step-indicator/style/_step-indicator.scss +17 -4
  141. package/cjs/components/step-indicator/style/dnb-step-indicator.css +14 -6
  142. package/cjs/components/step-indicator/style/dnb-step-indicator.min.css +1 -1
  143. package/cjs/components/switch/Switch.d.ts +5 -5
  144. package/cjs/components/tabs/Tabs.d.ts +4 -4
  145. package/cjs/components/tabs/TabsContentWrapper.d.ts +1 -1
  146. package/cjs/components/tag/Tag.js +97 -0
  147. package/cjs/components/tag/index.d.ts +8 -0
  148. package/cjs/components/tag/index.js +52 -0
  149. package/cjs/components/tag/style/_tag.scss +26 -0
  150. package/cjs/components/tag/style/dnb-tag.css +109 -0
  151. package/cjs/components/tag/style/dnb-tag.min.css +1 -0
  152. package/cjs/components/tag/style/dnb-tag.scss +12 -0
  153. package/cjs/components/tag/style/index.d.ts +6 -0
  154. package/cjs/components/tag/style/index.js +3 -0
  155. package/cjs/components/tag/style.js +3 -0
  156. package/cjs/components/textarea/Textarea.d.ts +4 -4
  157. package/cjs/components/textarea/style/_textarea.scss +4 -0
  158. package/cjs/components/textarea/style/dnb-textarea.css +3 -0
  159. package/cjs/components/textarea/style/dnb-textarea.min.css +1 -1
  160. package/cjs/components/toggle-button/ToggleButton.d.ts +6 -6
  161. package/cjs/components/toggle-button/ToggleButton.js +6 -2
  162. package/cjs/components/toggle-button/ToggleButtonGroup.d.ts +3 -3
  163. package/cjs/components/toggle-button/style/dnb-toggle-button.css +0 -2
  164. package/cjs/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  165. package/cjs/components/tooltip/Tooltip.d.ts +5 -5
  166. package/cjs/components/tooltip/TooltipContainer.d.ts +3 -3
  167. package/cjs/components/tooltip/TooltipPortal.d.ts +1 -1
  168. package/cjs/components/tooltip/TooltipWithEvents.d.ts +1 -1
  169. package/cjs/fragments/scroll-view/ScrollView.js +7 -16
  170. package/cjs/icons/above_the_line.js +1 -1
  171. package/cjs/icons/facebook.js +35 -0
  172. package/cjs/icons/facebook_medium.js +35 -0
  173. package/cjs/icons/fridge.js +1 -1
  174. package/cjs/icons/icons-meta.json +24 -0
  175. package/cjs/icons/icons-pdf.lock +1 -1
  176. package/cjs/icons/icons-svg.lock +1 -1
  177. package/cjs/icons/index.d.ts +16 -0
  178. package/cjs/icons/index.js +64 -0
  179. package/cjs/icons/information_circled.js +11 -4
  180. package/cjs/icons/information_circled_medium.js +10 -4
  181. package/cjs/icons/instagram.js +47 -0
  182. package/cjs/icons/instagram_medium.js +54 -0
  183. package/cjs/icons/linkedin.js +32 -0
  184. package/cjs/icons/linkedin_medium.js +32 -0
  185. package/cjs/icons/motorcycle_medium.js +2 -2
  186. package/cjs/icons/paragraph.js +1 -1
  187. package/cjs/icons/scooter_medium.js +2 -2
  188. package/cjs/icons/secondary_icons.js +32 -0
  189. package/cjs/icons/secondary_icons_medium.js +32 -0
  190. package/cjs/icons/tag.js +41 -0
  191. package/cjs/icons/tag_medium.js +41 -0
  192. package/cjs/index.d.ts +2 -0
  193. package/cjs/index.js +8 -0
  194. package/cjs/shared/Context.js +2 -1
  195. package/cjs/shared/EventEmitter.js +6 -8
  196. package/cjs/shared/component-helper.js +108 -76
  197. package/cjs/shared/helpers.js +36 -11
  198. package/cjs/style/core/helper-classes/skip-link.scss +1 -1
  199. package/cjs/style/dnb-ui-components.css +107 -76
  200. package/cjs/style/dnb-ui-components.min.css +5 -5
  201. package/cjs/style/dnb-ui-components.scss +1 -0
  202. package/cjs/style/themes/theme-open-banking/dnb-theme-open-banking.css +98 -95
  203. package/cjs/style/themes/theme-open-banking/dnb-theme-open-banking.min.css +3 -3
  204. package/cjs/style/themes/theme-ui/dnb-theme-ui.css +94 -82
  205. package/cjs/style/themes/theme-ui/dnb-theme-ui.min.css +3 -3
  206. package/components/Tag.d.ts +14 -0
  207. package/components/Tag.js +3 -0
  208. package/components/accordion/Accordion.d.ts +7 -7
  209. package/components/autocomplete/Autocomplete.d.ts +13 -13
  210. package/components/autocomplete/style/dnb-autocomplete.css +0 -2
  211. package/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  212. package/components/breadcrumb/Breadcrumb.js +5 -3
  213. package/components/breadcrumb/Breadcrumb.tsx +9 -0
  214. package/components/breadcrumb/style/_breadcrumb.scss +7 -4
  215. package/components/breadcrumb/style/dnb-breadcrumb.css +10 -8
  216. package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  217. package/components/button/Button.d.ts +7 -7
  218. package/components/button/Button.js +7 -5
  219. package/components/button/style/_button.scss +0 -4
  220. package/components/button/style/dnb-button.css +0 -2
  221. package/components/button/style/dnb-button.min.css +1 -1
  222. package/components/button/style/themes/dnb-button-theme-open-banking.css +4 -13
  223. package/components/button/style/themes/dnb-button-theme-open-banking.min.css +1 -1
  224. package/components/button/style/themes/dnb-button-theme-ui.css +4 -13
  225. package/components/button/style/themes/dnb-button-theme-ui.min.css +1 -1
  226. package/components/button/style/themes/dnb-button-theme-ui.scss +5 -18
  227. package/components/checkbox/Checkbox.d.ts +3 -3
  228. package/components/date-picker/DatePicker.d.ts +14 -14
  229. package/components/date-picker/DatePickerAddon.d.ts +1 -1
  230. package/components/date-picker/DatePickerCalendar.d.ts +1 -1
  231. package/components/date-picker/DatePickerInput.d.ts +1 -1
  232. package/components/date-picker/style/dnb-date-picker.css +0 -6
  233. package/components/date-picker/style/dnb-date-picker.min.css +1 -1
  234. package/components/dropdown/Dropdown.d.ts +9 -9
  235. package/components/dropdown/style/dnb-dropdown.css +0 -2
  236. package/components/dropdown/style/dnb-dropdown.min.css +1 -1
  237. package/components/form-row/FormRow.d.ts +4 -4
  238. package/components/form-set/FormSet.d.ts +6 -6
  239. package/components/global-error/GlobalError.d.ts +1 -1
  240. package/components/global-error/style/dnb-global-error.css +0 -2
  241. package/components/global-error/style/dnb-global-error.min.css +1 -1
  242. package/components/global-status/GlobalStatus.d.ts +5 -5
  243. package/components/global-status/GlobalStatus.js +18 -71
  244. package/components/global-status/style/_global-status.scss +14 -12
  245. package/components/global-status/style/dnb-global-status.css +13 -17
  246. package/components/global-status/style/dnb-global-status.min.css +1 -1
  247. package/components/global-status/style/themes/dnb-global-status-theme-ui.css +2 -48
  248. package/components/global-status/style/themes/dnb-global-status-theme-ui.min.css +1 -1
  249. package/components/global-status/style/themes/dnb-global-status-theme-ui.scss +2 -36
  250. package/components/heading/Heading.d.ts +2 -2
  251. package/components/heading/HeadingProvider.d.ts +2 -2
  252. package/components/help-button/HelpButton.d.ts +200 -0
  253. package/components/icon/Icon.d.ts +1 -1
  254. package/components/index.d.ts +2 -0
  255. package/components/index.js +2 -1
  256. package/components/input/Input.d.ts +9 -9
  257. package/components/input/style/dnb-input.css +0 -2
  258. package/components/input/style/dnb-input.min.css +1 -1
  259. package/components/input/style/themes/dnb-input-theme-ui.css +11 -2
  260. package/components/input/style/themes/dnb-input-theme-ui.min.css +1 -1
  261. package/components/input/style/themes/dnb-input-theme-ui.scss +4 -1
  262. package/components/input-masked/InputMasked.d.ts +11 -11
  263. package/components/input-masked/InputMasked.js +6 -4
  264. package/components/input-masked/InputMaskedElement.js +1 -4
  265. package/components/input-masked/InputMaskedHooks.js +66 -48
  266. package/components/input-masked/InputMaskedUtils.js +18 -23
  267. package/components/input-masked/style/dnb-input-masked.css +0 -2
  268. package/components/input-masked/style/dnb-input-masked.min.css +1 -1
  269. package/components/lib.js +3 -1
  270. package/components/modal/Modal.js +147 -279
  271. package/components/modal/Modal.tsx +524 -0
  272. package/components/modal/ModalContent.js +175 -253
  273. package/components/modal/ModalContent.tsx +515 -0
  274. package/components/modal/ModalContext.tsx +10 -0
  275. package/components/modal/ModalRoot.js +145 -0
  276. package/components/modal/ModalRoot.tsx +131 -0
  277. package/components/modal/components/CloseButton.js +72 -0
  278. package/components/modal/components/CloseButton.tsx +56 -0
  279. package/components/modal/components/ModalHeader.js +70 -0
  280. package/components/modal/components/ModalHeader.tsx +79 -0
  281. package/components/modal/components/ModalHeaderBar.js +122 -0
  282. package/components/modal/components/ModalHeaderBar.tsx +118 -0
  283. package/components/modal/{ModalInner.js → components/ModalInner.js} +11 -17
  284. package/components/modal/components/ModalInner.tsx +45 -0
  285. package/components/modal/helpers.js +64 -0
  286. package/components/modal/helpers.ts +63 -0
  287. package/components/modal/style/_modal-mixins.scss +4 -4
  288. package/components/modal/style/_modal.scss +13 -30
  289. package/components/modal/style/dnb-modal.css +27 -47
  290. package/components/modal/style/dnb-modal.min.css +1 -1
  291. package/components/modal/types.js +1 -0
  292. package/{cjs/components/modal/Modal.d.ts → components/modal/types.ts} +125 -179
  293. package/components/number-format/NumberFormat.d.ts +8 -8
  294. package/components/pagination/Pagination.d.ts +30 -30
  295. package/components/pagination/PaginationProvider.d.ts +2 -2
  296. package/components/pagination/style/dnb-pagination.css +0 -2
  297. package/components/pagination/style/dnb-pagination.min.css +1 -1
  298. package/components/radio/Radio.d.ts +4 -4
  299. package/components/radio/RadioGroup.d.ts +3 -3
  300. package/components/section/Section.d.ts +3 -1
  301. package/components/section/style/themes/dnb-section-theme-ui.css +77 -19
  302. package/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  303. package/components/section/style/themes/dnb-section-theme-ui.scss +15 -2
  304. package/components/skeleton/Skeleton.d.ts +2 -2
  305. package/components/slider/Slider.d.ts +4 -4
  306. package/components/slider/style/dnb-slider.css +0 -2
  307. package/components/slider/style/dnb-slider.min.css +1 -1
  308. package/components/step-indicator/StepIndicator.d.ts +6 -6
  309. package/components/step-indicator/StepIndicator.js +4 -91
  310. package/components/step-indicator/StepIndicatorContext.d.ts +2 -1
  311. package/components/step-indicator/StepIndicatorContext.js +196 -18
  312. package/components/step-indicator/StepIndicatorItem.d.ts +2 -2
  313. package/components/step-indicator/StepIndicatorItem.js +3 -5
  314. package/components/step-indicator/StepIndicatorModal.js +33 -32
  315. package/components/step-indicator/StepIndicatorProps.js +1 -1
  316. package/components/step-indicator/StepIndicatorSidebar.d.ts +40 -1
  317. package/components/step-indicator/StepIndicatorSidebar.js +54 -52
  318. package/components/step-indicator/StepIndicatorTriggerButton.d.ts +1 -1
  319. package/components/step-indicator/StepIndicatorTriggerButton.js +1 -1
  320. package/components/step-indicator/style/_step-indicator.scss +17 -4
  321. package/components/step-indicator/style/dnb-step-indicator.css +14 -6
  322. package/components/step-indicator/style/dnb-step-indicator.min.css +1 -1
  323. package/components/switch/Switch.d.ts +5 -5
  324. package/components/tabs/Tabs.d.ts +4 -4
  325. package/components/tabs/TabsContentWrapper.d.ts +1 -1
  326. package/components/tag/Tag.js +63 -0
  327. package/components/tag/Tag.tsx +95 -0
  328. package/components/tag/index.d.ts +8 -0
  329. package/components/tag/index.js +3 -0
  330. package/components/tag/style/_tag.scss +26 -0
  331. package/components/tag/style/dnb-tag.css +109 -0
  332. package/components/tag/style/dnb-tag.min.css +1 -0
  333. package/components/tag/style/dnb-tag.scss +12 -0
  334. package/components/tag/style/index.d.ts +6 -0
  335. package/components/tag/style/index.js +1 -0
  336. package/components/tag/style.js +1 -0
  337. package/components/textarea/Textarea.d.ts +4 -4
  338. package/components/textarea/style/_textarea.scss +4 -0
  339. package/components/textarea/style/dnb-textarea.css +3 -0
  340. package/components/textarea/style/dnb-textarea.min.css +1 -1
  341. package/components/toggle-button/ToggleButton.d.ts +6 -6
  342. package/components/toggle-button/ToggleButton.js +6 -2
  343. package/components/toggle-button/ToggleButtonGroup.d.ts +3 -3
  344. package/components/toggle-button/style/dnb-toggle-button.css +0 -2
  345. package/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  346. package/components/tooltip/Tooltip.d.ts +5 -5
  347. package/components/tooltip/TooltipContainer.d.ts +3 -3
  348. package/components/tooltip/TooltipPortal.d.ts +1 -1
  349. package/components/tooltip/TooltipWithEvents.d.ts +1 -1
  350. package/es/components/Tag.d.ts +14 -0
  351. package/es/components/Tag.js +3 -0
  352. package/es/components/accordion/Accordion.d.ts +7 -7
  353. package/es/components/autocomplete/Autocomplete.d.ts +13 -13
  354. package/es/components/autocomplete/style/dnb-autocomplete.css +0 -2
  355. package/es/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  356. package/es/components/breadcrumb/Breadcrumb.js +5 -3
  357. package/es/components/breadcrumb/Breadcrumb.tsx +9 -0
  358. package/es/components/breadcrumb/style/_breadcrumb.scss +7 -4
  359. package/es/components/breadcrumb/style/dnb-breadcrumb.css +10 -8
  360. package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  361. package/es/components/button/Button.d.ts +7 -7
  362. package/es/components/button/Button.js +8 -5
  363. package/es/components/button/style/_button.scss +0 -4
  364. package/es/components/button/style/dnb-button.css +0 -2
  365. package/es/components/button/style/dnb-button.min.css +1 -1
  366. package/es/components/button/style/themes/dnb-button-theme-open-banking.css +4 -13
  367. package/es/components/button/style/themes/dnb-button-theme-open-banking.min.css +1 -1
  368. package/es/components/button/style/themes/dnb-button-theme-ui.css +4 -13
  369. package/es/components/button/style/themes/dnb-button-theme-ui.min.css +1 -1
  370. package/es/components/button/style/themes/dnb-button-theme-ui.scss +5 -18
  371. package/es/components/checkbox/Checkbox.d.ts +3 -3
  372. package/es/components/date-picker/DatePicker.d.ts +14 -14
  373. package/es/components/date-picker/DatePickerAddon.d.ts +1 -1
  374. package/es/components/date-picker/DatePickerCalendar.d.ts +1 -1
  375. package/es/components/date-picker/DatePickerInput.d.ts +1 -1
  376. package/es/components/date-picker/style/dnb-date-picker.css +0 -6
  377. package/es/components/date-picker/style/dnb-date-picker.min.css +1 -1
  378. package/es/components/dropdown/Dropdown.d.ts +9 -9
  379. package/es/components/dropdown/style/dnb-dropdown.css +0 -2
  380. package/es/components/dropdown/style/dnb-dropdown.min.css +1 -1
  381. package/es/components/form-row/FormRow.d.ts +4 -4
  382. package/es/components/form-set/FormSet.d.ts +6 -6
  383. package/es/components/global-error/GlobalError.d.ts +1 -1
  384. package/es/components/global-error/style/dnb-global-error.css +0 -2
  385. package/es/components/global-error/style/dnb-global-error.min.css +1 -1
  386. package/es/components/global-status/GlobalStatus.d.ts +5 -5
  387. package/es/components/global-status/GlobalStatus.js +18 -67
  388. package/es/components/global-status/style/_global-status.scss +14 -12
  389. package/es/components/global-status/style/dnb-global-status.css +13 -17
  390. package/es/components/global-status/style/dnb-global-status.min.css +1 -1
  391. package/es/components/global-status/style/themes/dnb-global-status-theme-ui.css +2 -48
  392. package/es/components/global-status/style/themes/dnb-global-status-theme-ui.min.css +1 -1
  393. package/es/components/global-status/style/themes/dnb-global-status-theme-ui.scss +2 -36
  394. package/es/components/heading/Heading.d.ts +2 -2
  395. package/es/components/heading/HeadingProvider.d.ts +2 -2
  396. package/es/components/help-button/HelpButton.d.ts +200 -0
  397. package/es/components/icon/Icon.d.ts +1 -1
  398. package/es/components/icon-primary/IconPrimary.d.ts +1 -1
  399. package/es/components/index.d.ts +2 -0
  400. package/es/components/index.js +2 -1
  401. package/es/components/input/Input.d.ts +9 -9
  402. package/es/components/input/style/dnb-input.css +0 -2
  403. package/es/components/input/style/dnb-input.min.css +1 -1
  404. package/es/components/input/style/themes/dnb-input-theme-ui.css +11 -2
  405. package/es/components/input/style/themes/dnb-input-theme-ui.min.css +1 -1
  406. package/es/components/input/style/themes/dnb-input-theme-ui.scss +4 -1
  407. package/es/components/input-masked/InputMasked.d.ts +11 -11
  408. package/es/components/input-masked/InputMasked.js +6 -4
  409. package/es/components/input-masked/InputMaskedElement.js +1 -4
  410. package/es/components/input-masked/InputMaskedHooks.js +50 -34
  411. package/es/components/input-masked/InputMaskedUtils.js +16 -21
  412. package/es/components/input-masked/style/dnb-input-masked.css +0 -2
  413. package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
  414. package/es/components/lib.js +3 -1
  415. package/es/components/modal/Modal.js +128 -252
  416. package/es/components/modal/Modal.tsx +524 -0
  417. package/es/components/modal/ModalContent.js +131 -211
  418. package/es/components/modal/ModalContent.tsx +515 -0
  419. package/es/components/modal/ModalContext.tsx +10 -0
  420. package/es/components/modal/ModalRoot.js +108 -0
  421. package/es/components/modal/ModalRoot.tsx +131 -0
  422. package/es/components/modal/components/CloseButton.js +41 -0
  423. package/es/components/modal/components/CloseButton.tsx +56 -0
  424. package/es/components/modal/components/ModalHeader.js +40 -0
  425. package/es/components/modal/components/ModalHeader.tsx +79 -0
  426. package/es/components/modal/components/ModalHeaderBar.js +88 -0
  427. package/es/components/modal/components/ModalHeaderBar.tsx +118 -0
  428. package/es/components/modal/{ModalInner.js → components/ModalInner.js} +8 -18
  429. package/es/components/modal/components/ModalInner.tsx +45 -0
  430. package/es/components/modal/helpers.js +60 -0
  431. package/es/components/modal/helpers.ts +63 -0
  432. package/es/components/modal/style/_modal-mixins.scss +4 -4
  433. package/es/components/modal/style/_modal.scss +13 -30
  434. package/es/components/modal/style/dnb-modal.css +27 -47
  435. package/es/components/modal/style/dnb-modal.min.css +1 -1
  436. package/es/components/modal/types.js +1 -0
  437. package/es/components/modal/{Modal.d.ts → types.ts} +125 -179
  438. package/es/components/number-format/NumberFormat.d.ts +8 -8
  439. package/es/components/pagination/Pagination.d.ts +30 -30
  440. package/es/components/pagination/PaginationProvider.d.ts +2 -2
  441. package/es/components/pagination/style/dnb-pagination.css +0 -2
  442. package/es/components/pagination/style/dnb-pagination.min.css +1 -1
  443. package/es/components/radio/Radio.d.ts +4 -4
  444. package/es/components/radio/RadioGroup.d.ts +3 -3
  445. package/es/components/section/Section.d.ts +3 -2
  446. package/es/components/section/style/themes/dnb-section-theme-ui.css +77 -19
  447. package/es/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  448. package/es/components/section/style/themes/dnb-section-theme-ui.scss +15 -2
  449. package/es/components/skeleton/Skeleton.d.ts +2 -2
  450. package/es/components/slider/Slider.d.ts +4 -4
  451. package/es/components/slider/style/dnb-slider.css +0 -2
  452. package/es/components/slider/style/dnb-slider.min.css +1 -1
  453. package/es/components/step-indicator/StepIndicator.d.ts +6 -6
  454. package/es/components/step-indicator/StepIndicator.js +3 -79
  455. package/es/components/step-indicator/StepIndicatorContext.d.ts +2 -1
  456. package/es/components/step-indicator/StepIndicatorContext.js +165 -17
  457. package/es/components/step-indicator/StepIndicatorItem.d.ts +2 -2
  458. package/es/components/step-indicator/StepIndicatorItem.js +2 -5
  459. package/es/components/step-indicator/StepIndicatorModal.js +31 -34
  460. package/es/components/step-indicator/StepIndicatorProps.js +1 -1
  461. package/es/components/step-indicator/StepIndicatorSidebar.d.ts +40 -1
  462. package/es/components/step-indicator/StepIndicatorSidebar.js +44 -46
  463. package/es/components/step-indicator/StepIndicatorTriggerButton.d.ts +1 -1
  464. package/es/components/step-indicator/StepIndicatorTriggerButton.js +1 -1
  465. package/es/components/step-indicator/style/_step-indicator.scss +17 -4
  466. package/es/components/step-indicator/style/dnb-step-indicator.css +14 -6
  467. package/es/components/step-indicator/style/dnb-step-indicator.min.css +1 -1
  468. package/es/components/switch/Switch.d.ts +5 -5
  469. package/es/components/tabs/Tabs.d.ts +4 -4
  470. package/es/components/tabs/TabsContentWrapper.d.ts +1 -1
  471. package/es/components/tag/Tag.js +58 -0
  472. package/es/components/tag/Tag.tsx +95 -0
  473. package/es/components/tag/index.d.ts +8 -0
  474. package/es/components/tag/index.js +3 -0
  475. package/es/components/tag/style/_tag.scss +26 -0
  476. package/es/components/tag/style/dnb-tag.css +109 -0
  477. package/es/components/tag/style/dnb-tag.min.css +1 -0
  478. package/es/components/tag/style/dnb-tag.scss +12 -0
  479. package/es/components/tag/style/index.d.ts +6 -0
  480. package/es/components/tag/style/index.js +1 -0
  481. package/es/components/tag/style.js +1 -0
  482. package/es/components/textarea/Textarea.d.ts +4 -4
  483. package/es/components/textarea/style/_textarea.scss +4 -0
  484. package/es/components/textarea/style/dnb-textarea.css +3 -0
  485. package/es/components/textarea/style/dnb-textarea.min.css +1 -1
  486. package/es/components/toggle-button/ToggleButton.d.ts +6 -6
  487. package/es/components/toggle-button/ToggleButton.js +6 -2
  488. package/es/components/toggle-button/ToggleButtonGroup.d.ts +3 -3
  489. package/es/components/toggle-button/style/dnb-toggle-button.css +0 -2
  490. package/es/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  491. package/es/components/tooltip/Tooltip.d.ts +5 -5
  492. package/es/components/tooltip/TooltipContainer.d.ts +3 -3
  493. package/es/components/tooltip/TooltipPortal.d.ts +1 -1
  494. package/es/components/tooltip/TooltipWithEvents.d.ts +1 -1
  495. package/es/fragments/scroll-view/ScrollView.js +7 -15
  496. package/es/fragments/scroll-view/ScrollView.tsx +92 -0
  497. package/es/icons/above_the_line.js +1 -1
  498. package/es/icons/facebook.js +23 -0
  499. package/es/icons/facebook_medium.js +23 -0
  500. package/es/icons/fridge.js +1 -1
  501. package/es/icons/icons-meta.json +24 -0
  502. package/es/icons/icons-pdf.lock +1 -1
  503. package/es/icons/icons-svg.lock +1 -1
  504. package/es/icons/index.d.ts +16 -0
  505. package/es/icons/index.js +9 -1
  506. package/es/icons/information_circled.js +11 -4
  507. package/es/icons/information_circled_medium.js +10 -4
  508. package/es/icons/instagram.js +35 -0
  509. package/es/icons/instagram_medium.js +42 -0
  510. package/es/icons/linkedin.js +20 -0
  511. package/es/icons/linkedin_medium.js +20 -0
  512. package/es/icons/motorcycle_medium.js +2 -2
  513. package/es/icons/paragraph.js +1 -1
  514. package/es/icons/scooter_medium.js +2 -2
  515. package/es/icons/secondary_icons.js +5 -1
  516. package/es/icons/secondary_icons_medium.js +5 -1
  517. package/es/icons/tag.js +29 -0
  518. package/es/icons/tag_medium.js +29 -0
  519. package/es/index.d.ts +2 -0
  520. package/es/index.js +2 -1
  521. package/es/shared/Context.js +2 -1
  522. package/es/shared/EventEmitter.js +5 -8
  523. package/es/shared/component-helper.js +58 -50
  524. package/es/shared/helpers.js +11 -2
  525. package/es/style/core/helper-classes/skip-link.scss +1 -1
  526. package/es/style/dnb-ui-components.css +107 -76
  527. package/es/style/dnb-ui-components.min.css +5 -5
  528. package/es/style/dnb-ui-components.scss +1 -0
  529. package/es/style/themes/theme-open-banking/dnb-theme-open-banking.css +98 -95
  530. package/es/style/themes/theme-open-banking/dnb-theme-open-banking.min.css +3 -3
  531. package/es/style/themes/theme-ui/dnb-theme-ui.css +94 -82
  532. package/es/style/themes/theme-ui/dnb-theme-ui.min.css +3 -3
  533. package/esm/components/Tag.d.ts +14 -0
  534. package/esm/components/Tag.js +3 -0
  535. package/esm/components/accordion/Accordion.d.ts +7 -7
  536. package/esm/components/autocomplete/Autocomplete.d.ts +13 -13
  537. package/esm/components/autocomplete/style/dnb-autocomplete.css +0 -2
  538. package/esm/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  539. package/esm/components/breadcrumb/Breadcrumb.js +5 -3
  540. package/esm/components/breadcrumb/Breadcrumb.tsx +9 -0
  541. package/esm/components/breadcrumb/style/_breadcrumb.scss +7 -4
  542. package/esm/components/breadcrumb/style/dnb-breadcrumb.css +10 -8
  543. package/esm/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  544. package/esm/components/button/Button.d.ts +7 -7
  545. package/esm/components/button/Button.js +7 -5
  546. package/esm/components/button/style/_button.scss +0 -4
  547. package/esm/components/button/style/dnb-button.css +0 -2
  548. package/esm/components/button/style/dnb-button.min.css +1 -1
  549. package/esm/components/button/style/themes/dnb-button-theme-open-banking.css +4 -13
  550. package/esm/components/button/style/themes/dnb-button-theme-open-banking.min.css +1 -1
  551. package/esm/components/button/style/themes/dnb-button-theme-ui.css +4 -13
  552. package/esm/components/button/style/themes/dnb-button-theme-ui.min.css +1 -1
  553. package/esm/components/button/style/themes/dnb-button-theme-ui.scss +5 -18
  554. package/esm/components/checkbox/Checkbox.d.ts +3 -3
  555. package/esm/components/date-picker/DatePicker.d.ts +14 -14
  556. package/esm/components/date-picker/DatePickerAddon.d.ts +1 -1
  557. package/esm/components/date-picker/DatePickerCalendar.d.ts +1 -1
  558. package/esm/components/date-picker/DatePickerInput.d.ts +1 -1
  559. package/esm/components/date-picker/style/dnb-date-picker.css +0 -6
  560. package/esm/components/date-picker/style/dnb-date-picker.min.css +1 -1
  561. package/esm/components/dropdown/Dropdown.d.ts +9 -9
  562. package/esm/components/dropdown/style/dnb-dropdown.css +0 -2
  563. package/esm/components/dropdown/style/dnb-dropdown.min.css +1 -1
  564. package/esm/components/form-row/FormRow.d.ts +4 -4
  565. package/esm/components/form-set/FormSet.d.ts +6 -6
  566. package/esm/components/global-error/GlobalError.d.ts +1 -1
  567. package/esm/components/global-error/style/dnb-global-error.css +0 -2
  568. package/esm/components/global-error/style/dnb-global-error.min.css +1 -1
  569. package/esm/components/global-status/GlobalStatus.d.ts +5 -5
  570. package/esm/components/global-status/GlobalStatus.js +18 -71
  571. package/esm/components/global-status/style/_global-status.scss +14 -12
  572. package/esm/components/global-status/style/dnb-global-status.css +13 -17
  573. package/esm/components/global-status/style/dnb-global-status.min.css +1 -1
  574. package/esm/components/global-status/style/themes/dnb-global-status-theme-ui.css +2 -48
  575. package/esm/components/global-status/style/themes/dnb-global-status-theme-ui.min.css +1 -1
  576. package/esm/components/global-status/style/themes/dnb-global-status-theme-ui.scss +2 -36
  577. package/esm/components/heading/Heading.d.ts +2 -2
  578. package/esm/components/heading/HeadingProvider.d.ts +2 -2
  579. package/esm/components/help-button/HelpButton.d.ts +200 -0
  580. package/esm/components/icon/Icon.d.ts +1 -1
  581. package/esm/components/index.d.ts +2 -0
  582. package/esm/components/index.js +2 -1
  583. package/esm/components/input/Input.d.ts +9 -9
  584. package/esm/components/input/style/dnb-input.css +0 -2
  585. package/esm/components/input/style/dnb-input.min.css +1 -1
  586. package/esm/components/input/style/themes/dnb-input-theme-ui.css +11 -2
  587. package/esm/components/input/style/themes/dnb-input-theme-ui.min.css +1 -1
  588. package/esm/components/input/style/themes/dnb-input-theme-ui.scss +4 -1
  589. package/esm/components/input-masked/InputMasked.d.ts +11 -11
  590. package/esm/components/input-masked/InputMasked.js +6 -4
  591. package/esm/components/input-masked/InputMaskedElement.js +1 -4
  592. package/esm/components/input-masked/InputMaskedHooks.js +66 -48
  593. package/esm/components/input-masked/InputMaskedUtils.js +18 -23
  594. package/esm/components/input-masked/style/dnb-input-masked.css +0 -2
  595. package/esm/components/input-masked/style/dnb-input-masked.min.css +1 -1
  596. package/esm/components/lib.js +3 -1
  597. package/esm/components/modal/Modal.js +147 -279
  598. package/esm/components/modal/Modal.tsx +524 -0
  599. package/esm/components/modal/ModalContent.js +175 -253
  600. package/esm/components/modal/ModalContent.tsx +515 -0
  601. package/esm/components/modal/ModalContext.tsx +10 -0
  602. package/esm/components/modal/ModalRoot.js +145 -0
  603. package/esm/components/modal/ModalRoot.tsx +131 -0
  604. package/esm/components/modal/components/CloseButton.js +72 -0
  605. package/esm/components/modal/components/CloseButton.tsx +56 -0
  606. package/esm/components/modal/components/ModalHeader.js +70 -0
  607. package/esm/components/modal/components/ModalHeader.tsx +79 -0
  608. package/esm/components/modal/components/ModalHeaderBar.js +122 -0
  609. package/esm/components/modal/components/ModalHeaderBar.tsx +118 -0
  610. package/esm/components/modal/{ModalInner.js → components/ModalInner.js} +11 -17
  611. package/esm/components/modal/components/ModalInner.tsx +45 -0
  612. package/esm/components/modal/helpers.js +64 -0
  613. package/esm/components/modal/helpers.ts +63 -0
  614. package/esm/components/modal/style/_modal-mixins.scss +4 -4
  615. package/esm/components/modal/style/_modal.scss +13 -30
  616. package/esm/components/modal/style/dnb-modal.css +27 -47
  617. package/esm/components/modal/style/dnb-modal.min.css +1 -1
  618. package/esm/components/modal/types.js +1 -0
  619. package/esm/components/modal/{Modal.d.ts → types.ts} +125 -179
  620. package/esm/components/number-format/NumberFormat.d.ts +8 -8
  621. package/esm/components/pagination/Pagination.d.ts +30 -30
  622. package/esm/components/pagination/PaginationProvider.d.ts +2 -2
  623. package/esm/components/pagination/style/dnb-pagination.css +0 -2
  624. package/esm/components/pagination/style/dnb-pagination.min.css +1 -1
  625. package/esm/components/radio/Radio.d.ts +4 -4
  626. package/esm/components/radio/RadioGroup.d.ts +3 -3
  627. package/esm/components/section/Section.d.ts +3 -1
  628. package/esm/components/section/style/themes/dnb-section-theme-ui.css +77 -19
  629. package/esm/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  630. package/esm/components/section/style/themes/dnb-section-theme-ui.scss +15 -2
  631. package/esm/components/skeleton/Skeleton.d.ts +2 -2
  632. package/esm/components/slider/Slider.d.ts +4 -4
  633. package/esm/components/slider/style/dnb-slider.css +0 -2
  634. package/esm/components/slider/style/dnb-slider.min.css +1 -1
  635. package/esm/components/step-indicator/StepIndicator.d.ts +6 -6
  636. package/esm/components/step-indicator/StepIndicator.js +4 -91
  637. package/esm/components/step-indicator/StepIndicatorContext.d.ts +2 -1
  638. package/esm/components/step-indicator/StepIndicatorContext.js +196 -18
  639. package/esm/components/step-indicator/StepIndicatorItem.d.ts +2 -2
  640. package/esm/components/step-indicator/StepIndicatorItem.js +3 -5
  641. package/esm/components/step-indicator/StepIndicatorModal.js +33 -32
  642. package/esm/components/step-indicator/StepIndicatorProps.js +1 -1
  643. package/esm/components/step-indicator/StepIndicatorSidebar.d.ts +40 -1
  644. package/esm/components/step-indicator/StepIndicatorSidebar.js +54 -52
  645. package/esm/components/step-indicator/StepIndicatorTriggerButton.d.ts +1 -1
  646. package/esm/components/step-indicator/StepIndicatorTriggerButton.js +1 -1
  647. package/esm/components/step-indicator/style/_step-indicator.scss +17 -4
  648. package/esm/components/step-indicator/style/dnb-step-indicator.css +14 -6
  649. package/esm/components/step-indicator/style/dnb-step-indicator.min.css +1 -1
  650. package/esm/components/switch/Switch.d.ts +5 -5
  651. package/esm/components/tabs/Tabs.d.ts +4 -4
  652. package/esm/components/tabs/TabsContentWrapper.d.ts +1 -1
  653. package/esm/components/tag/Tag.js +63 -0
  654. package/esm/components/tag/Tag.tsx +95 -0
  655. package/esm/components/tag/index.d.ts +8 -0
  656. package/esm/components/tag/index.js +3 -0
  657. package/esm/components/tag/style/_tag.scss +26 -0
  658. package/esm/components/tag/style/dnb-tag.css +109 -0
  659. package/esm/components/tag/style/dnb-tag.min.css +1 -0
  660. package/esm/components/tag/style/dnb-tag.scss +12 -0
  661. package/esm/components/tag/style/index.d.ts +6 -0
  662. package/esm/components/tag/style/index.js +1 -0
  663. package/esm/components/tag/style.js +1 -0
  664. package/esm/components/textarea/Textarea.d.ts +4 -4
  665. package/esm/components/textarea/style/_textarea.scss +4 -0
  666. package/esm/components/textarea/style/dnb-textarea.css +3 -0
  667. package/esm/components/textarea/style/dnb-textarea.min.css +1 -1
  668. package/esm/components/toggle-button/ToggleButton.d.ts +6 -6
  669. package/esm/components/toggle-button/ToggleButton.js +6 -2
  670. package/esm/components/toggle-button/ToggleButtonGroup.d.ts +3 -3
  671. package/esm/components/toggle-button/style/dnb-toggle-button.css +0 -2
  672. package/esm/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  673. package/esm/components/tooltip/Tooltip.d.ts +5 -5
  674. package/esm/components/tooltip/TooltipContainer.d.ts +3 -3
  675. package/esm/components/tooltip/TooltipPortal.d.ts +1 -1
  676. package/esm/components/tooltip/TooltipWithEvents.d.ts +1 -1
  677. package/esm/dnb-ui-basis.min.mjs +2 -2
  678. package/esm/dnb-ui-components.min.mjs +3 -3
  679. package/esm/dnb-ui-elements.min.mjs +4 -4
  680. package/esm/dnb-ui-extensions.min.mjs +4 -4
  681. package/esm/dnb-ui-lib.min.mjs +4 -4
  682. package/esm/dnb-ui-web-components.min.mjs +4 -4
  683. package/esm/fragments/scroll-view/ScrollView.js +10 -16
  684. package/esm/fragments/scroll-view/ScrollView.tsx +92 -0
  685. package/esm/icons/above_the_line.js +1 -1
  686. package/esm/icons/facebook.js +23 -0
  687. package/esm/icons/facebook_medium.js +23 -0
  688. package/esm/icons/fridge.js +1 -1
  689. package/esm/icons/icons-meta.json +24 -0
  690. package/esm/icons/icons-pdf.lock +1 -1
  691. package/esm/icons/icons-svg.lock +1 -1
  692. package/esm/icons/index.d.ts +16 -0
  693. package/esm/icons/index.js +9 -1
  694. package/esm/icons/information_circled.js +11 -4
  695. package/esm/icons/information_circled_medium.js +10 -4
  696. package/esm/icons/instagram.js +35 -0
  697. package/esm/icons/instagram_medium.js +42 -0
  698. package/esm/icons/linkedin.js +20 -0
  699. package/esm/icons/linkedin_medium.js +20 -0
  700. package/esm/icons/motorcycle_medium.js +2 -2
  701. package/esm/icons/paragraph.js +1 -1
  702. package/esm/icons/scooter_medium.js +2 -2
  703. package/esm/icons/secondary_icons.js +5 -1
  704. package/esm/icons/secondary_icons_medium.js +5 -1
  705. package/esm/icons/tag.js +29 -0
  706. package/esm/icons/tag_medium.js +29 -0
  707. package/esm/index.d.ts +2 -0
  708. package/esm/index.js +2 -1
  709. package/esm/shared/Context.js +2 -1
  710. package/esm/shared/EventEmitter.js +6 -8
  711. package/esm/shared/component-helper.js +94 -59
  712. package/esm/shared/helpers.js +19 -2
  713. package/esm/style/core/helper-classes/skip-link.scss +1 -1
  714. package/esm/style/dnb-ui-components.css +107 -76
  715. package/esm/style/dnb-ui-components.min.css +5 -5
  716. package/esm/style/dnb-ui-components.scss +1 -0
  717. package/esm/style/themes/theme-open-banking/dnb-theme-open-banking.css +98 -95
  718. package/esm/style/themes/theme-open-banking/dnb-theme-open-banking.min.css +3 -3
  719. package/esm/style/themes/theme-ui/dnb-theme-ui.css +94 -82
  720. package/esm/style/themes/theme-ui/dnb-theme-ui.min.css +3 -3
  721. package/fragments/scroll-view/ScrollView.js +10 -16
  722. package/fragments/scroll-view/ScrollView.tsx +92 -0
  723. package/icons/above_the_line.js +1 -1
  724. package/icons/facebook.js +23 -0
  725. package/icons/facebook_medium.js +23 -0
  726. package/icons/fridge.js +1 -1
  727. package/icons/icons-meta.json +24 -0
  728. package/icons/icons-pdf.lock +1 -1
  729. package/icons/icons-svg.lock +1 -1
  730. package/icons/index.d.ts +16 -0
  731. package/icons/index.js +9 -1
  732. package/icons/information_circled.js +11 -4
  733. package/icons/information_circled_medium.js +10 -4
  734. package/icons/instagram.js +35 -0
  735. package/icons/instagram_medium.js +42 -0
  736. package/icons/linkedin.js +20 -0
  737. package/icons/linkedin_medium.js +20 -0
  738. package/icons/motorcycle_medium.js +2 -2
  739. package/icons/paragraph.js +1 -1
  740. package/icons/scooter_medium.js +2 -2
  741. package/icons/secondary_icons.js +5 -1
  742. package/icons/secondary_icons_medium.js +5 -1
  743. package/icons/tag.js +29 -0
  744. package/icons/tag_medium.js +29 -0
  745. package/index.d.ts +2 -0
  746. package/index.js +2 -1
  747. package/package.json +1 -1
  748. package/shared/Context.js +2 -1
  749. package/shared/EventEmitter.js +6 -8
  750. package/shared/component-helper.js +94 -59
  751. package/shared/helpers.js +19 -2
  752. package/style/core/helper-classes/skip-link.scss +1 -1
  753. package/style/dnb-ui-components.css +107 -76
  754. package/style/dnb-ui-components.min.css +5 -5
  755. package/style/dnb-ui-components.scss +1 -0
  756. package/style/themes/theme-open-banking/dnb-theme-open-banking.css +98 -95
  757. package/style/themes/theme-open-banking/dnb-theme-open-banking.min.css +3 -3
  758. package/style/themes/theme-ui/dnb-theme-ui.css +94 -82
  759. package/style/themes/theme-ui/dnb-theme-ui.min.css +3 -3
  760. package/umd/dnb-ui-basis.min.js +3 -3
  761. package/umd/dnb-ui-components.min.js +4 -4
  762. package/umd/dnb-ui-elements.min.js +5 -5
  763. package/umd/dnb-ui-extensions.min.js +5 -5
  764. package/umd/dnb-ui-lib.min.js +5 -5
  765. package/umd/dnb-ui-web-components.min.js +5 -5
  766. package/cjs/components/modal/ModalContent.d.ts +0 -168
  767. package/cjs/components/modal/ModalHeader.d.ts +0 -73
  768. package/cjs/components/modal/ModalInner.d.ts +0 -20
  769. package/cjs/fragments/scroll-view/ScrollView.d.ts +0 -1
  770. package/components/modal/Modal.d.ts +0 -325
  771. package/components/modal/ModalContent.d.ts +0 -168
  772. package/components/modal/ModalHeader.d.ts +0 -73
  773. package/components/modal/ModalHeader.js +0 -224
  774. package/components/modal/ModalInner.d.ts +0 -20
  775. package/es/components/modal/ModalContent.d.ts +0 -168
  776. package/es/components/modal/ModalHeader.d.ts +0 -73
  777. package/es/components/modal/ModalHeader.js +0 -166
  778. package/es/components/modal/ModalInner.d.ts +0 -20
  779. package/es/fragments/scroll-view/ScrollView.d.ts +0 -1
  780. package/esm/components/modal/ModalContent.d.ts +0 -168
  781. package/esm/components/modal/ModalHeader.d.ts +0 -73
  782. package/esm/components/modal/ModalHeader.js +0 -224
  783. package/esm/components/modal/ModalInner.d.ts +0 -20
  784. package/esm/fragments/scroll-view/ScrollView.d.ts +0 -1
  785. package/fragments/scroll-view/ScrollView.d.ts +0 -1
@@ -1,55 +1,55 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
2
 
4
- var _StepIndicatorList;
3
+ var _StepIndicatorList, _StepIndicatorList2;
5
4
 
6
5
  import React from 'react';
6
+ import ReactDOM from 'react-dom';
7
7
  import Modal from '../modal/Modal';
8
8
  import StepIndicatorTriggerButton from './StepIndicatorTriggerButton';
9
9
  import StepIndicatorList from './StepIndicatorList';
10
- import StepIndicatorContext, { StepIndicatorProvider } from './StepIndicatorContext';
10
+ import StepIndicatorContext from './StepIndicatorContext';
11
11
  export default class StepIndicatorModal extends React.PureComponent {
12
12
  constructor(props) {
13
13
  super(props);
14
14
 
15
- _defineProperty(this, "state", {
16
- open_state: false
17
- });
18
-
19
- _defineProperty(this, "onChangeState", () => {
20
- this.setState({
21
- open_state: false
22
- });
23
- });
24
-
25
- _defineProperty(this, "openHandler", () => {
26
- this.setState({
27
- open_state: true
28
- });
29
- });
30
-
31
- _defineProperty(this, "closeHandler", () => {
32
- this.setState({
33
- open_state: false
34
- });
35
-
15
+ _defineProperty(this, "closeHandler", (...args) => {
36
16
  if (this.context.hasSidebar) {
37
17
  var _this$_triggerRef$cur;
38
18
 
39
19
  (_this$_triggerRef$cur = this._triggerRef.current) === null || _this$_triggerRef$cur === void 0 ? void 0 : _this$_triggerRef$cur.focus();
40
20
  }
21
+
22
+ this.context.closeHandler(...args);
41
23
  });
42
24
 
43
25
  this._triggerRef = React.createRef();
26
+ this.state = {
27
+ container: null
28
+ };
44
29
  }
45
30
 
46
- render() {
47
- if (this.context.hasSidebar && !this.context.hideSidebar) {
31
+ componentDidMount() {
32
+ const container = document.getElementById('sidebar__' + this.context.sidebar_id);
33
+ this.setState({
34
+ container
35
+ });
36
+ }
37
+
38
+ renderPortal() {
39
+ if (!this.state.container) {
48
40
  return null;
49
41
  }
50
42
 
43
+ return ReactDOM.createPortal(_StepIndicatorList || (_StepIndicatorList = React.createElement(StepIndicatorList, null)), this.state.container);
44
+ }
45
+
46
+ render() {
47
+ if (this.context.sidebarIsVisible) {
48
+ return this.renderPortal();
49
+ }
50
+
51
51
  return React.createElement(React.Fragment, null, React.createElement(StepIndicatorTriggerButton, {
52
- on_click: this.openHandler,
52
+ on_click: this.context.openHandler,
53
53
  inner_ref: this._triggerRef
54
54
  }), React.createElement(Modal, {
55
55
  id: this.context.sidebar_id,
@@ -57,19 +57,16 @@ export default class StepIndicatorModal extends React.PureComponent {
57
57
  trigger_hidden: true,
58
58
  mode: "drawer",
59
59
  animation_direction: "bottom",
60
- open_state: this.state.open_state,
61
- on_open: this.openHandler,
60
+ open_state: this.context.openState,
61
+ on_open: this.context.openHandler,
62
62
  on_close: this.closeHandler
63
- }, React.createElement(StepIndicatorProvider, _extends({}, this.context, {
64
- sidebar_id: this.context.sidebar_id,
65
- onChangeState: this.onChangeState
66
- }), React.createElement(Modal.Content, {
63
+ }, React.createElement(Modal.Content, {
67
64
  style_type: "white"
68
65
  }, React.createElement("div", {
69
66
  className: "dnb-step-indicator-v2"
70
67
  }, React.createElement("p", {
71
68
  className: "dnb-p dnb-step-indicator__label"
72
- }, this.context.stepsLabelExtended), _StepIndicatorList || (_StepIndicatorList = React.createElement(StepIndicatorList, null)))))));
69
+ }, this.context.stepsLabelExtended), _StepIndicatorList2 || (_StepIndicatorList2 = React.createElement(StepIndicatorList, null))))));
73
70
  }
74
71
 
75
72
  }
@@ -21,7 +21,7 @@ export const stepIndicatorPropTypes = _objectSpread(_objectSpread({
21
21
  is_active: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
22
22
  url_future: PropTypes.string,
23
23
  url_passed: PropTypes.string
24
- }))]).isRequired,
24
+ }))]),
25
25
  overview_title: PropTypes.string,
26
26
  step_title_extended: PropTypes.string,
27
27
  step_title: PropTypes.string,
@@ -1,4 +1,27 @@
1
1
  import * as React from 'react';
2
+ export type StepIndicatorSidebarMode = 'static' | 'strict' | 'loose';
3
+ export type StepIndicatorSidebarCurrentStep = string | number;
4
+ export type StepIndicatorSidebarData =
5
+ | string
6
+ | string[]
7
+ | {
8
+ title: string | React.ReactNode;
9
+ is_current?: boolean;
10
+ inactive?: boolean;
11
+ disabled?: boolean;
12
+ status?: string | React.ReactNode;
13
+ status_state?: 'warn' | 'info' | 'error';
14
+
15
+ /**
16
+ * Will be called once the user clicks on the current or another step. Will be emitted on every click. Returns an object `{ event, item, current_step }`.
17
+ */
18
+ on_click?: (...args: any[]) => any;
19
+ on_render?: (...args: any[]) => any;
20
+ url?: string;
21
+ is_active?: string | boolean;
22
+ url_future?: string;
23
+ url_passed?: string;
24
+ }[];
2
25
 
3
26
  /**
4
27
  * NB: Do not change the docs (comments) in here. The docs are updated during build time by "generateTypes.js" and "fetchPropertiesFromDocs.js".
@@ -6,10 +29,26 @@ import * as React from 'react';
6
29
  export interface StepIndicatorSidebarProps
7
30
  extends React.HTMLProps<HTMLElement> {
8
31
  /**
9
- * An unique string based ID in order to bind together the main component and the sidebar (`<StepIndicator.Sidebar />`). Both have to get the same ID.
32
+ * A unique string-based ID in order to bind together the main component and the sidebar (`<StepIndicator.Sidebar />`). Both have to get the same ID.
10
33
  */
11
34
  sidebar_id: string;
35
+
36
+ /**
37
+ * Defines how the StepIndicator should work. Use `static` for non-interactive steps. Use `strict` for a chronological step order, also, the user can navigate between visited steps. Use `loose` if the user should be able to navigate freely.
38
+ */
39
+ mode?: StepIndicatorSidebarMode;
40
+
41
+ /**
42
+ * Defines the active number marked step starting by 0. Defaults to `0`.
43
+ */
44
+ current_step?: StepIndicatorSidebarCurrentStep;
45
+
46
+ /**
47
+ * Defines the data/steps showing up in a JavaScript Array or JSON format like `[{title,is_current}]`. See parameters and the example above.
48
+ */
49
+ data?: StepIndicatorSidebarData;
12
50
  internalId?: string;
51
+ showInitialData?: boolean;
13
52
  }
14
53
  export default class StepIndicatorSidebar extends React.Component<
15
54
  StepIndicatorSidebarProps,
@@ -1,83 +1,81 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
3
 
4
- var _div;
4
+ var _StepIndicatorList;
5
5
 
6
6
  import React from 'react';
7
7
  import PropTypes from 'prop-types';
8
+ import { extendPropsWithContext } from '../../shared/component-helper';
9
+ import Context from '../../shared/Context';
8
10
  import StepIndicatorList from './StepIndicatorList';
11
+ import { stepIndicatorPropTypes, stepIndicatorDefaultProps } from './StepIndicatorProps';
9
12
  import { StepIndicatorProvider } from './StepIndicatorContext';
10
- import EventEmitter from '../../shared/EventEmitter';
11
- import { onMediaQueryChange } from '../../shared/MediaQueryUtils';
12
13
  export default class StepIndicatorSidebar extends React.PureComponent {
13
- constructor(props) {
14
- super(props);
14
+ constructor(...args) {
15
+ super(...args);
15
16
 
16
17
  _defineProperty(this, "state", {
17
- hasSidebar: true,
18
- hideSidebar: false
19
- });
20
-
21
- this._eventEmitter = EventEmitter.createInstance(props.sidebar_id);
22
-
23
- this._eventEmitter.update({
24
- hideSidebar: true
18
+ showInitialData: true
25
19
  });
26
20
  }
27
21
 
28
22
  componentDidMount() {
29
- this._mediaQueryListener = onMediaQueryChange({
30
- min: '0',
31
- max: 'medium'
32
- }, hideSidebar => {
23
+ if (!this.props.showInitialData) {
33
24
  this.setState({
34
- hideSidebar
25
+ showInitialData: false
35
26
  });
36
-
37
- if (this._eventEmitter) {
38
- this._eventEmitter.update({
39
- hideSidebar
40
- });
41
- }
42
- }, {
43
- runOnInit: true
44
- });
45
- }
46
-
47
- componentWillUnmount() {
48
- if (this._mediaQueryListener) {
49
- this._mediaQueryListener();
50
27
  }
51
28
 
52
- if (this._eventEmitter) {
53
- this._eventEmitter.update({
54
- hasSidebar: false
29
+ if (this._hasSkeletonData) {
30
+ this.setState({
31
+ skeleton: false
55
32
  });
56
33
  }
34
+ }
57
35
 
58
- if (this._eventEmitter) {
59
- this._eventEmitter.remove();
36
+ getContextAndProps() {
37
+ var _this$context, _this$context2, _providerProps$data;
60
38
 
61
- this._eventEmitter = null;
39
+ const providerProps = extendPropsWithContext(this.props, stepIndicatorDefaultProps, {
40
+ skeleton: (_this$context = this.context) === null || _this$context === void 0 ? void 0 : _this$context.skeleton
41
+ }, this.context.getTranslation(this.context).StepIndicator, (_this$context2 = this.context) === null || _this$context2 === void 0 ? void 0 : _this$context2.StepIndicator);
42
+
43
+ if (!(((_providerProps$data = providerProps.data) === null || _providerProps$data === void 0 ? void 0 : _providerProps$data.length) > 0)) {
44
+ const text = 'Skeleton text';
45
+ providerProps.data = [text.slice(10), text, text, text.slice(4)];
46
+ providerProps.skeleton = true;
47
+ this._hasSkeletonData = true;
62
48
  }
49
+
50
+ return providerProps;
63
51
  }
64
52
 
65
53
  render() {
66
- return React.createElement(StepIndicatorProvider, _extends({
67
- sidebar_id: this.props.internalId || this.props.sidebar_id,
68
- listAttributes: this.props
69
- }, this.state), !(this.state.hasSidebar & this.state.hideSidebar) && (_div || (_div = React.createElement("div", {
70
- className: "dnb-step-indicator-v2 dnb-step-indicator__sidebar"
71
- }, React.createElement(StepIndicatorList, null)))));
54
+ const providerProps = this.state.showInitialData ? this.getContextAndProps() : null;
55
+ return React.createElement("div", {
56
+ id: 'sidebar__' + this.props.sidebar_id,
57
+ className: "dnb-step-indicator-v2 dnb-step-indicator__sidebar" + (this._hasSkeletonData && providerProps !== null && providerProps !== void 0 && providerProps.skeleton ? " dnb-step-indicator__sidebar--ssr-skeleton" : "")
58
+ }, providerProps && React.createElement(StepIndicatorProvider, _extends({
59
+ isSidebar: true,
60
+ sidebar_id: this.props.internalId || this.props.sidebar_id
61
+ }, providerProps), _StepIndicatorList || (_StepIndicatorList = React.createElement(StepIndicatorList, null))));
72
62
  }
73
63
 
74
64
  }
75
65
 
66
+ _defineProperty(StepIndicatorSidebar, "contextType", Context);
67
+
76
68
  _defineProperty(StepIndicatorSidebar, "defaultProps", {
77
- internalId: null
69
+ mode: stepIndicatorDefaultProps.mode,
70
+ current_step: stepIndicatorDefaultProps.current_step,
71
+ data: stepIndicatorDefaultProps.data
78
72
  });
79
73
 
80
74
  process.env.NODE_ENV !== "production" ? StepIndicatorSidebar.propTypes = {
81
75
  sidebar_id: PropTypes.string.isRequired,
82
- internalId: PropTypes.string
76
+ mode: stepIndicatorPropTypes.mode,
77
+ current_step: stepIndicatorPropTypes.current_step,
78
+ data: stepIndicatorPropTypes.data,
79
+ internalId: PropTypes.string,
80
+ showInitialData: PropTypes.bool
83
81
  } : void 0;
@@ -6,7 +6,7 @@ import * as React from 'react';
6
6
  export interface StepIndicatorTriggerButtonProps
7
7
  extends React.HTMLProps<HTMLElement> {
8
8
  /**
9
- * An unique string based ID in order to bind together the main component and the sidebar (`<StepIndicator.Sidebar />`). Both have to get the same ID.
9
+ * A unique string-based ID in order to bind together the main component and the sidebar (`<StepIndicator.Sidebar />`). Both have to get the same ID.
10
10
  */
11
11
  sidebar_id?: string;
12
12
  className?: string;
@@ -89,7 +89,7 @@ export default class StepIndicatorTriggerButton extends React.PureComponent {
89
89
  icon_position: "right",
90
90
  inner_ref: this._buttonRef
91
91
  }), React.createElement(StepItemWrapper, {
92
- number: this.context.activeStep + 1,
92
+ number: (this.context.activeStep || 0) + 1,
93
93
  hide_numbers: this.context.hide_numbers
94
94
  }, (typeof item === 'string' ? item : item && item.title) || '')));
95
95
  }
@@ -6,11 +6,24 @@
6
6
  @import './_step-indicator-v1.scss';
7
7
 
8
8
  .dnb-step-indicator__sidebar {
9
- max-width: 20rem;
10
- margin-right: var(--spacing-x-large);
9
+ @media screen and (min-width: 50.1em) {
10
+ max-width: 20rem;
11
+ margin-right: var(--spacing-x-large);
11
12
 
12
- .dnb-step-indicator__item {
13
- min-width: 320px;
13
+ .dnb-step-indicator__item {
14
+ min-width: 320px;
15
+ }
16
+ }
17
+
18
+ // To avoid layout shift during SSR hydration
19
+ // we hide the sidebar with skeleton on small screens
20
+ &--ssr-skeleton {
21
+ @media screen and (max-width: 50.1em) {
22
+ visibility: hidden;
23
+ overflow: hidden;
24
+ width: 0;
25
+ height: 5.5rem; // the height of the modal button + label + margin
26
+ }
14
27
  }
15
28
  }
16
29
 
@@ -174,12 +174,20 @@
174
174
  -webkit-box-shadow: 100vw 0 0 0 currentColor;
175
175
  box-shadow: 100vw 0 0 0 currentColor; }
176
176
 
177
- .dnb-step-indicator__sidebar {
178
- max-width: 20rem;
179
- margin-right: 3rem;
180
- margin-right: var(--spacing-x-large); }
181
- .dnb-step-indicator__sidebar .dnb-step-indicator__item {
182
- min-width: 320px; }
177
+ @media screen and (min-width: 50.1em) {
178
+ .dnb-step-indicator__sidebar {
179
+ max-width: 20rem;
180
+ margin-right: 3rem;
181
+ margin-right: var(--spacing-x-large); }
182
+ .dnb-step-indicator__sidebar .dnb-step-indicator__item {
183
+ min-width: 320px; } }
184
+
185
+ @media screen and (max-width: 50.1em) {
186
+ .dnb-step-indicator__sidebar--ssr-skeleton {
187
+ visibility: hidden;
188
+ overflow: hidden;
189
+ width: 0;
190
+ height: 5.5rem; } }
183
191
 
184
192
  .dnb-step-indicator-v2 .dnb-step-indicator__list {
185
193
  display: -webkit-box;
@@ -1,2 +1,2 @@
1
- .dnb-step-indicator{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;color:#333;color:var(--color-black-80,#333);font-family:DNB,sans-serif;font-family:var(--font-family-default);font-size:1rem;font-size:var(--font-size-small);font-style:normal;font-weight:400;font-weight:var(--font-weight-basis);line-height:1.5rem;line-height:var(--line-height-basis);margin:0;padding:0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-break:break-word}.dnb-step-indicator *,.dnb-step-indicator :after,.dnb-step-indicator :before{background-repeat:no-repeat;-webkit-box-sizing:border-box;box-sizing:border-box}.dnb-step-indicator :after,.dnb-step-indicator :before{text-decoration:inherit;vertical-align:inherit}.dnb-step-indicator-v1 .dnb-step-indicator{display:block;padding:0;position:relative;z-index:1}.dnb-step-indicator-v1 .dnb-step-indicator__list{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;list-style:none;margin:0;padding:0}.dnb-spacing .dnb-step-indicator-v1 .dnb-step-indicator__list,.dnb-spacing .dnb-step-indicator-v1 .dnb-step-indicator__list li{margin-bottom:0;margin-top:0}.dnb-step-indicator-v1 .dnb-step-indicator__item{-ms-flex-item-align:end;align-self:flex-end}.dnb-step-indicator-v1 .dnb-step-indicator__item-content{font-size:1.125rem;font-size:var(--font-size-basis)}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--link,.dnb-step-indicator-v1 .dnb-step-indicator__item-content--static,.dnb-step-indicator-v1 .dnb-step-indicator__item-content.dnb-anchor,.dnb-step-indicator-v1 .dnb-step-indicator__item-contenta{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;border-bottom:none;-webkit-box-shadow:none;box-shadow:none;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;height:100%;margin:0;padding:.25rem;position:relative;text-decoration:none;z-index:2}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--link.dnb-anchor{line-height:1.5rem;line-height:var(--line-height-basis)}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus[disabled],html:not([data-whatintent=touch]) .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus[disabled]{cursor:not-allowed}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]),html:not([data-whatintent=touch]) .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]){outline:none}html[data-whatinput=keyboard] .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]),html[data-whatinput=keyboard] html:not([data-whatintent=touch]) .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]){--border-color:var(--color-emerald-green);border-color:transparent;-webkit-box-shadow:0 0 0 .125rem var(--border-color);box-shadow:0 0 0 .125rem var(--border-color)}@media screen and (-ms-high-contrast:none){html[data-whatinput=keyboard] .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]),html[data-whatinput=keyboard] html:not([data-whatintent=touch]) .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]){-webkit-box-shadow:0 0 0 .125rem #14555a;box-shadow:0 0 0 .125rem #14555a;-webkit-box-shadow:0 0 0 .125rem var(--color-emerald-green);box-shadow:0 0 0 .125rem var(--color-emerald-green)}}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]):after,html:not([data-whatintent=touch]) .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]):after{content:none}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--number{padding-right:.25rem;white-space:nowrap}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--text{text-align:left}.dnb-step-indicator-v1 .dnb-step-indicator__item-content:after{border-radius:1.5px;bottom:0;content:"";height:3px;left:0;position:absolute;width:100%;z-index:1}.dnb-step-indicator-v1 .dnb-step-indicator:after{background-color:currentColor;bottom:0;-webkit-box-shadow:100vw 0 0 0 currentColor;box-shadow:100vw 0 0 0 currentColor;color:#000;color:var(--color-black);content:"";height:1px;left:-100vw;position:absolute;width:100vw;z-index:-1}.dnb-step-indicator__sidebar{margin-right:3rem;margin-right:var(--spacing-x-large);max-width:20rem}.dnb-step-indicator__sidebar .dnb-step-indicator__item{min-width:320px}.dnb-step-indicator-v2 .dnb-step-indicator__list{list-style:none;margin:0;padding:0}.dnb-step-indicator-v2 .dnb-step-indicator__list,.dnb-step-indicator-v2 .dnb-step-indicator__trigger{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button,.dnb-step-indicator-v2 .dnb-step-indicator__trigger__button{-webkit-box-pack:justify;-ms-flex-pack:justify;border-radius:.25rem;justify-content:space-between;overflow:hidden;-webkit-transition:height .4s cubic-bezier(.42,0,0,1);transition:height .4s cubic-bezier(.42,0,0,1);will-change:height}.dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button .dnb-button__text,.dnb-step-indicator-v2 .dnb-step-indicator__trigger__button .dnb-button__text{text-align:left}.dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button.dnb-button--has-icon .dnb-button__text,.dnb-step-indicator-v2 .dnb-step-indicator__trigger__button.dnb-button--has-icon .dnb-button__text{margin-right:1rem}.dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button .dnb-button__alignment,.dnb-step-indicator-v2 .dnb-step-indicator__trigger__button .dnb-button__alignment{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}html[data-visual-test] .dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button,html[data-visual-test] .dnb-step-indicator-v2 .dnb-step-indicator__trigger__button{-webkit-transition-duration:1ms!important;transition-duration:1ms!important}.dnb-step-indicator-v2 .dnb-step-indicator__trigger button.dnb-step-indicator-v2 .dnb-step-indicator__trigger__button{margin-top:.5rem}.dnb-step-indicator-v2 .dnb-step-indicator__item{margin-bottom:1rem}.dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button__icon{opacity:1;-webkit-transition:opacity 1.4s ease-in-out;transition:opacity 1.4s ease-in-out}html[data-visual-test] .dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button__icon{-webkit-transition-duration:1ms!important;transition-duration:1ms!important}.dnb-step-indicator-v2 .dnb-step-indicator__item:not(.dnb-step-indicator__item--visited) .dnb-button:not(.dnb-step-indicator__button__status)
1
+ .dnb-step-indicator{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;color:#333;color:var(--color-black-80,#333);font-family:DNB,sans-serif;font-family:var(--font-family-default);font-size:1rem;font-size:var(--font-size-small);font-style:normal;font-weight:400;font-weight:var(--font-weight-basis);line-height:1.5rem;line-height:var(--line-height-basis);margin:0;padding:0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-break:break-word}.dnb-step-indicator *,.dnb-step-indicator :after,.dnb-step-indicator :before{background-repeat:no-repeat;-webkit-box-sizing:border-box;box-sizing:border-box}.dnb-step-indicator :after,.dnb-step-indicator :before{text-decoration:inherit;vertical-align:inherit}.dnb-step-indicator-v1 .dnb-step-indicator{display:block;padding:0;position:relative;z-index:1}.dnb-step-indicator-v1 .dnb-step-indicator__list{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;list-style:none;margin:0;padding:0}.dnb-spacing .dnb-step-indicator-v1 .dnb-step-indicator__list,.dnb-spacing .dnb-step-indicator-v1 .dnb-step-indicator__list li{margin-bottom:0;margin-top:0}.dnb-step-indicator-v1 .dnb-step-indicator__item{-ms-flex-item-align:end;align-self:flex-end}.dnb-step-indicator-v1 .dnb-step-indicator__item-content{font-size:1.125rem;font-size:var(--font-size-basis)}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--link,.dnb-step-indicator-v1 .dnb-step-indicator__item-content--static,.dnb-step-indicator-v1 .dnb-step-indicator__item-content.dnb-anchor,.dnb-step-indicator-v1 .dnb-step-indicator__item-contenta{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;border-bottom:none;-webkit-box-shadow:none;box-shadow:none;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;height:100%;margin:0;padding:.25rem;position:relative;text-decoration:none;z-index:2}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--link.dnb-anchor{line-height:1.5rem;line-height:var(--line-height-basis)}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus[disabled],html:not([data-whatintent=touch]) .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus[disabled]{cursor:not-allowed}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]),html:not([data-whatintent=touch]) .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]){outline:none}html[data-whatinput=keyboard] .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]),html[data-whatinput=keyboard] html:not([data-whatintent=touch]) .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]){--border-color:var(--color-emerald-green);border-color:transparent;-webkit-box-shadow:0 0 0 .125rem var(--border-color);box-shadow:0 0 0 .125rem var(--border-color)}@media screen and (-ms-high-contrast:none){html[data-whatinput=keyboard] .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]),html[data-whatinput=keyboard] html:not([data-whatintent=touch]) .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]){-webkit-box-shadow:0 0 0 .125rem #14555a;box-shadow:0 0 0 .125rem #14555a;-webkit-box-shadow:0 0 0 .125rem var(--color-emerald-green);box-shadow:0 0 0 .125rem var(--color-emerald-green)}}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]):after,html:not([data-whatintent=touch]) .dnb-step-indicator-v1 .dnb-step-indicator__item-content--link:focus:not([disabled]):after{content:none}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--number{padding-right:.25rem;white-space:nowrap}.dnb-step-indicator-v1 .dnb-step-indicator__item-content--text{text-align:left}.dnb-step-indicator-v1 .dnb-step-indicator__item-content:after{border-radius:1.5px;bottom:0;content:"";height:3px;left:0;position:absolute;width:100%;z-index:1}.dnb-step-indicator-v1 .dnb-step-indicator:after{background-color:currentColor;bottom:0;-webkit-box-shadow:100vw 0 0 0 currentColor;box-shadow:100vw 0 0 0 currentColor;color:#000;color:var(--color-black);content:"";height:1px;left:-100vw;position:absolute;width:100vw;z-index:-1}@media screen and (min-width:50.1em){.dnb-step-indicator__sidebar{margin-right:3rem;margin-right:var(--spacing-x-large);max-width:20rem}.dnb-step-indicator__sidebar .dnb-step-indicator__item{min-width:320px}}@media screen and (max-width:50.1em){.dnb-step-indicator__sidebar--ssr-skeleton{height:5.5rem;overflow:hidden;visibility:hidden;width:0}}.dnb-step-indicator-v2 .dnb-step-indicator__list{list-style:none;margin:0;padding:0}.dnb-step-indicator-v2 .dnb-step-indicator__list,.dnb-step-indicator-v2 .dnb-step-indicator__trigger{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button,.dnb-step-indicator-v2 .dnb-step-indicator__trigger__button{-webkit-box-pack:justify;-ms-flex-pack:justify;border-radius:.25rem;justify-content:space-between;overflow:hidden;-webkit-transition:height .4s cubic-bezier(.42,0,0,1);transition:height .4s cubic-bezier(.42,0,0,1);will-change:height}.dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button .dnb-button__text,.dnb-step-indicator-v2 .dnb-step-indicator__trigger__button .dnb-button__text{text-align:left}.dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button.dnb-button--has-icon .dnb-button__text,.dnb-step-indicator-v2 .dnb-step-indicator__trigger__button.dnb-button--has-icon .dnb-button__text{margin-right:1rem}.dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button .dnb-button__alignment,.dnb-step-indicator-v2 .dnb-step-indicator__trigger__button .dnb-button__alignment{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}html[data-visual-test] .dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button,html[data-visual-test] .dnb-step-indicator-v2 .dnb-step-indicator__trigger__button{-webkit-transition-duration:1ms!important;transition-duration:1ms!important}.dnb-step-indicator-v2 .dnb-step-indicator__trigger button.dnb-step-indicator-v2 .dnb-step-indicator__trigger__button{margin-top:.5rem}.dnb-step-indicator-v2 .dnb-step-indicator__item{margin-bottom:1rem}.dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button__icon{opacity:1;-webkit-transition:opacity 1.4s ease-in-out;transition:opacity 1.4s ease-in-out}html[data-visual-test] .dnb-step-indicator-v2 .dnb-step-indicator__item .dnb-button__icon{-webkit-transition-duration:1ms!important;transition-duration:1ms!important}.dnb-step-indicator-v2 .dnb-step-indicator__item:not(.dnb-step-indicator__item--visited) .dnb-button:not(.dnb-step-indicator__button__status)
2
2
  .dnb-button__icon{opacity:0}.dnb-step-indicator-v2 .dnb-step-indicator__item-content{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;padding:.5rem 0}.dnb-step-indicator-v2 .dnb-step-indicator__item-content__number{padding-right:.5rem;white-space:nowrap}.dnb-step-indicator-v2 .dnb-step-indicator__item-content__wrapper{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.dnb-step-indicator-v2 .dnb-step-indicator__button__status .dnb-step-indicator__item-content__status{color:#333;color:var(--color-black-80);font-size:.875rem;font-size:var(--font-size-x-small)}
@@ -57,7 +57,7 @@ export type SwitchChildren = string | ((...args: any[]) => any);
57
57
  */
58
58
  export interface SwitchProps extends React.HTMLProps<HTMLElement> {
59
59
  /**
60
- * Use either the `label` property or provide custom one.
60
+ * Use either the `label` property or provide a custom one.
61
61
  */
62
62
  label?: SwitchLabel;
63
63
 
@@ -73,7 +73,7 @@ export interface SwitchProps extends React.HTMLProps<HTMLElement> {
73
73
  default_state?: SwitchDefaultState;
74
74
 
75
75
  /**
76
- * Determine whether the switch is checked or not. Default will be `false`.
76
+ * Determine whether the switch is checked or not. The default will be `false`.
77
77
  */
78
78
  checked?: SwitchChecked;
79
79
  disabled?: SwitchDisabled;
@@ -90,7 +90,7 @@ export interface SwitchProps extends React.HTMLProps<HTMLElement> {
90
90
  status?: SwitchStatus;
91
91
 
92
92
  /**
93
- * Defines the state of the status. Currently there are two statuses `[error, info]`. Defaults to `error`.
93
+ * Defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`.
94
94
  */
95
95
  status_state?: string;
96
96
 
@@ -149,12 +149,12 @@ export interface SwitchProps extends React.HTMLProps<HTMLElement> {
149
149
  custom_method?: (...args: any[]) => any;
150
150
 
151
151
  /**
152
- * Will be called on state changes made by the user. Returns an boolean `{ checked, event }`.
152
+ * Will be called on state changes made by the user. Returns a boolean `{ checked, event }`.
153
153
  */
154
154
  on_change?: (...args: any[]) => any;
155
155
 
156
156
  /**
157
- * Will be called on state changes made by the user, but with a delay. This way the users sees the animation, before e.g. an error will be removed. Returns an boolean `{ checked, event }`.
157
+ * Will be called on state changes made by the user, but with a delay. This way the user sees the animation before e.g. an error will be removed. Returns a boolean `{ checked, event }`.
158
158
  */
159
159
  on_change_end?: (...args: any[]) => any;
160
160
  on_state_update?: (...args: any[]) => any;
@@ -81,7 +81,7 @@ export interface TabsProps extends React.HTMLProps<HTMLElement> {
81
81
  content_style?: string;
82
82
 
83
83
  /**
84
- * To modify the `spacing` on to the content wrapper. Use a supported modifier from the <a href="/uilib/components/section/properties">Section component</a>. Defaults to `true`.
84
+ * To modify the `spacing` onto the content wrapper. Use a supported modifier from the <a href="/uilib/components/section/properties">Section component</a>. Defaults to `true`.
85
85
  */
86
86
  content_spacing?: TabsContentSpacing;
87
87
  label?: string;
@@ -107,7 +107,7 @@ export interface TabsProps extends React.HTMLProps<HTMLElement> {
107
107
  tabs_style?: string;
108
108
 
109
109
  /**
110
- * To modify the `spacing` inside the tabs list. Use a supported modifier from the <a href="/uilib/components/section/properties">Section component</a>. Defaults to `false`.
110
+ * To modify the `spacing` inside the tab list. Use a supported modifier from the <a href="/uilib/components/section/properties">Section component</a>. Defaults to `false`.
111
111
  */
112
112
  tabs_spacing?: TabsTabsSpacing;
113
113
  use_hash?: TabsUseHash;
@@ -118,7 +118,7 @@ export interface TabsProps extends React.HTMLProps<HTMLElement> {
118
118
  prerender?: TabsPrerender;
119
119
 
120
120
  /**
121
- * If set to `true`, the Tabs content will stay in the DOM. The visibility will be handled by using the `hidden` and `aria-hidden` HTML attributes. Similar to `prerender`, but in contrast, the content will render once the users is activating a tab. Defaults to `false`.
121
+ * If set to `true`, the Tabs content will stay in the DOM. The visibility will be handled by using the `hidden` and `aria-hidden` HTML attributes. Similar to `prerender`, but in contrast, the content will render once the user is activating a tab. Defaults to `false`.
122
122
  */
123
123
  prevent_rerender?: TabsPreventRerender;
124
124
 
@@ -172,7 +172,7 @@ export interface TabsProps extends React.HTMLProps<HTMLElement> {
172
172
  on_change?: (...args: any[]) => any;
173
173
 
174
174
  /**
175
- * This event gets triggered once the a users mouse enters a tab (hover). Returns `{ key, selected_key, focus_key, event }`.
175
+ * This event gets triggered once the user&#39;s mouse enters a tab (hover). Returns `{ key, selected_key, focus_key, event }`.
176
176
  */
177
177
  on_mouse_enter?: (...args: any[]) => any;
178
178
 
@@ -22,7 +22,7 @@ export interface ContentWrapperProps extends React.HTMLProps<HTMLElement> {
22
22
  content_style?: string;
23
23
 
24
24
  /**
25
- * To modify the `spacing` on to the content wrapper. Use a supported modifier from the <a href="/uilib/components/section/properties">Section component</a>. Defaults to `true`.
25
+ * To modify the `spacing` onto the content wrapper. Use a supported modifier from the <a href="/uilib/components/section/properties">Section component</a>. Defaults to `true`.
26
26
  */
27
27
  content_spacing?: ContentWrapperContentSpacing;
28
28
 
@@ -0,0 +1,58 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
+ const _excluded = ["className", "skeleton", "children", "icon", "text"];
5
+
6
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
7
+
8
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
9
+
10
+ import React from 'react';
11
+ import classnames from 'classnames';
12
+ import { createSkeletonClass } from '../skeleton/SkeletonHelper';
13
+ import { createSpacingClasses } from '../space/SpacingHelper';
14
+ import Icon from '../icon-primary/IconPrimary';
15
+ import Context from '../../shared/Context';
16
+ import { extendPropsWithContext } from '../../shared/component-helper';
17
+ export const defaultProps = {
18
+ className: null,
19
+ skeleton: false,
20
+ text: null,
21
+ children: null,
22
+ icon: null
23
+ };
24
+
25
+ function Tag(localProps) {
26
+ var _context$translation;
27
+
28
+ const context = React.useContext(Context);
29
+
30
+ const _extendPropsWithConte = extendPropsWithContext(_objectSpread(_objectSpread({}, defaultProps), localProps), defaultProps, context === null || context === void 0 ? void 0 : (_context$translation = context.translation) === null || _context$translation === void 0 ? void 0 : _context$translation.Tag, context === null || context === void 0 ? void 0 : context.Tag),
31
+ {
32
+ className,
33
+ skeleton,
34
+ children,
35
+ icon,
36
+ text
37
+ } = _extendPropsWithConte,
38
+ props = _objectWithoutProperties(_extendPropsWithConte, _excluded);
39
+
40
+ const skeletonClasses = createSkeletonClass('shape', skeleton, context);
41
+ const spacingClasses = createSpacingClasses(props);
42
+ const content = text || children;
43
+ return React.createElement("div", _extends({
44
+ className: classnames('dnb-tag', skeletonClasses, spacingClasses, className),
45
+ "data-testid": "tag"
46
+ }, props), icon && React.createElement("span", {
47
+ "data-testid": "tag-icon",
48
+ className: "dnb-tag__icon"
49
+ }, React.createElement(Icon, {
50
+ icon: icon,
51
+ right: "x-small"
52
+ })), content && React.createElement("span", {
53
+ "data-testid": "tag-text",
54
+ className: "dnb-tag__text"
55
+ }, content));
56
+ }
57
+
58
+ export default Tag;
@@ -0,0 +1,95 @@
1
+ import React from 'react'
2
+ import classnames from 'classnames'
3
+
4
+ // Components
5
+ import { createSkeletonClass } from '../skeleton/SkeletonHelper'
6
+ import { createSpacingClasses } from '../space/SpacingHelper'
7
+ import Icon, { IconPrimaryIcon } from '../icon-primary/IconPrimary'
8
+
9
+ // Shared
10
+ import Context from '../../shared/Context'
11
+ import { ISpacingProps, SkeletonTypes } from '../../shared/interfaces'
12
+ import { extendPropsWithContext } from '../../shared/component-helper'
13
+
14
+ export interface TagProps {
15
+ /**
16
+ * The content of the tag element, can be a string or a React Element.
17
+ * Default: null
18
+ */
19
+ text?: React.ReactNode
20
+
21
+ /**
22
+ * Icon displaying on the left side
23
+ * Default: null
24
+ */
25
+ icon?: IconPrimaryIcon
26
+
27
+ /**
28
+ * Custom className on the component root
29
+ * Default: null
30
+ */
31
+ className?: string
32
+
33
+ /**
34
+ * Skeleton should be applied when loading content
35
+ * Default: null
36
+ */
37
+ skeleton?: SkeletonTypes
38
+
39
+ /**
40
+ * The content of the tag element, can be a string or a React Element. Will be overwritten by text prop
41
+ * Default: null
42
+ */
43
+ children?: string | React.ReactNode // ReactNode allows multiple elements, strings, numbers, fragments, portals...
44
+ }
45
+
46
+ export const defaultProps = {
47
+ className: null,
48
+ skeleton: false,
49
+ text: null,
50
+ children: null,
51
+ icon: null,
52
+ }
53
+
54
+ function Tag(localProps: TagProps & ISpacingProps) {
55
+ // Every component should have a context
56
+ const context = React.useContext(Context)
57
+ // Extract additional props from global context
58
+ const { className, skeleton, children, icon, text, ...props } =
59
+ extendPropsWithContext(
60
+ { ...defaultProps, ...localProps },
61
+ defaultProps,
62
+ context?.translation?.Tag,
63
+ context?.Tag
64
+ )
65
+ const skeletonClasses = createSkeletonClass('shape', skeleton, context)
66
+ const spacingClasses = createSpacingClasses(props)
67
+
68
+ const content = text || children
69
+
70
+ return (
71
+ <div
72
+ className={classnames(
73
+ 'dnb-tag',
74
+ skeletonClasses,
75
+ spacingClasses,
76
+ className
77
+ )}
78
+ data-testid="tag"
79
+ {...props}
80
+ >
81
+ {icon && (
82
+ <span data-testid="tag-icon" className="dnb-tag__icon">
83
+ <Icon icon={icon} right="x-small" />
84
+ </span>
85
+ )}
86
+ {content && (
87
+ <span data-testid="tag-text" className="dnb-tag__text">
88
+ {content}
89
+ </span>
90
+ )}
91
+ </div>
92
+ )
93
+ }
94
+
95
+ export default Tag