@dnb/eufemia 10.35.0 → 10.36.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 (416) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/cjs/components/accordion/Accordion.d.ts +3 -3
  3. package/cjs/components/accordion/Accordion.js.map +1 -1
  4. package/cjs/components/accordion/AccordionHeader.d.ts +5 -5
  5. package/cjs/components/accordion/AccordionHeader.js +3 -2
  6. package/cjs/components/accordion/AccordionHeader.js.map +1 -1
  7. package/cjs/components/anchor/Anchor.d.ts +20 -0
  8. package/cjs/components/anchor/Anchor.js +13 -4
  9. package/cjs/components/anchor/Anchor.js.map +1 -1
  10. package/cjs/components/anchor/AnchorDocs.d.ts +3 -0
  11. package/cjs/components/anchor/AnchorDocs.js +82 -0
  12. package/cjs/components/anchor/AnchorDocs.js.map +1 -0
  13. package/cjs/components/autocomplete/Autocomplete.js +16 -2
  14. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  15. package/cjs/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  16. package/cjs/components/height-animation/HeightAnimationInstance.d.ts +3 -3
  17. package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
  18. package/cjs/components/height-animation/useHeightAnimation.d.ts +5 -1
  19. package/cjs/components/height-animation/useHeightAnimation.js.map +1 -1
  20. package/cjs/components/icon/Icon.d.ts +493 -61
  21. package/cjs/components/icon/Icon.js +97 -134
  22. package/cjs/components/icon/Icon.js.map +1 -1
  23. package/cjs/components/icon/IconHelpers.d.ts +2 -1
  24. package/cjs/components/icon/IconHelpers.js +1 -1
  25. package/cjs/components/icon/IconHelpers.js.map +1 -1
  26. package/cjs/components/icon/IconPrimary.d.ts +2 -2
  27. package/cjs/components/icon/IconPrimary.js.map +1 -1
  28. package/cjs/components/icon-primary/IconPrimary.d.ts +8 -11
  29. package/cjs/components/icon-primary/IconPrimary.js +37 -38
  30. package/cjs/components/icon-primary/IconPrimary.js.map +1 -1
  31. package/cjs/components/step-indicator/StepIndicatorContext.js +66 -59
  32. package/cjs/components/step-indicator/StepIndicatorContext.js.map +1 -1
  33. package/cjs/components/step-indicator/StepIndicatorItem.js +15 -23
  34. package/cjs/components/step-indicator/StepIndicatorItem.js.map +1 -1
  35. package/cjs/components/step-indicator/StepIndicatorModal.js +5 -5
  36. package/cjs/components/step-indicator/StepIndicatorModal.js.map +1 -1
  37. package/cjs/components/step-indicator/StepIndicatorSidebar.js +9 -7
  38. package/cjs/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
  39. package/cjs/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  40. package/cjs/components/table/Table.d.ts +1 -1
  41. package/cjs/components/table/Table.js.map +1 -1
  42. package/cjs/components/table/TableContext.d.ts +12 -2
  43. package/cjs/components/table/TableContext.js +1 -3
  44. package/cjs/components/table/TableContext.js.map +1 -1
  45. package/cjs/components/table/TableDocs.d.ts +7 -0
  46. package/cjs/components/table/TableDocs.js +202 -0
  47. package/cjs/components/table/TableDocs.js.map +1 -0
  48. package/cjs/components/table/TableTd.d.ts +3 -3
  49. package/cjs/components/table/TableTd.js +2 -2
  50. package/cjs/components/table/TableTd.js.map +1 -1
  51. package/cjs/components/table/TableTr.d.ts +9 -5
  52. package/cjs/components/table/TableTr.js +4 -4
  53. package/cjs/components/table/TableTr.js.map +1 -1
  54. package/cjs/components/table/table-accordion/TableAccordionContent.d.ts +15 -0
  55. package/cjs/components/table/{TableAccordionTd.js → table-accordion/TableAccordionContent.js} +52 -17
  56. package/cjs/components/table/table-accordion/TableAccordionContent.js.map +1 -0
  57. package/cjs/components/table/table-accordion/TableAccordionContext.d.ts +16 -0
  58. package/cjs/components/table/table-accordion/TableAccordionContext.js +11 -0
  59. package/cjs/components/table/table-accordion/TableAccordionContext.js.map +1 -0
  60. package/cjs/components/table/table-accordion/TableAccordionHead.d.ts +8 -0
  61. package/cjs/components/table/{TableAccordion.js → table-accordion/TableAccordionHead.js} +17 -18
  62. package/cjs/components/table/table-accordion/TableAccordionHead.js.map +1 -0
  63. package/{es/components/table → cjs/components/table/table-accordion}/useTableAnimationHandler.d.ts +7 -3
  64. package/cjs/components/table/{useTableAnimationHandler.js → table-accordion/useTableAnimationHandler.js} +4 -4
  65. package/cjs/components/table/table-accordion/useTableAnimationHandler.js.map +1 -0
  66. package/cjs/components/tabs/Tabs.d.ts +0 -3
  67. package/cjs/components/tabs/TabsDocs.d.ts +1 -0
  68. package/cjs/components/tabs/TabsDocs.js +32 -4
  69. package/cjs/components/tabs/TabsDocs.js.map +1 -1
  70. package/cjs/components/toggle-button/ToggleButtonGroup.js +2 -2
  71. package/cjs/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  72. package/cjs/components/toggle-button/style/dnb-toggle-button.css +15 -6
  73. package/cjs/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  74. package/cjs/components/toggle-button/style/dnb-toggle-button.scss +16 -9
  75. package/cjs/extensions/forms/DataContext/Provider/Provider.js +1 -1
  76. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  77. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +2 -2
  78. package/cjs/extensions/forms/Form/Visibility/Visibility.js +20 -72
  79. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  80. package/cjs/extensions/forms/Form/Visibility/useVisibility.d.ts +5 -0
  81. package/cjs/extensions/forms/Form/Visibility/useVisibility.js +101 -0
  82. package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -0
  83. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +15 -9
  84. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  85. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
  86. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  87. package/cjs/extensions/forms/Wizard/Step/Step.d.ts +5 -0
  88. package/cjs/extensions/forms/Wizard/Step/Step.js +6 -2
  89. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  90. package/cjs/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  91. package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  92. package/cjs/extensions/forms/Wizard/hooks/useNextRouter.js +1 -1
  93. package/cjs/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -1
  94. package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.js +1 -1
  95. package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -1
  96. package/cjs/extensions/forms/Wizard/hooks/useReachRouter.js +1 -1
  97. package/cjs/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -1
  98. package/cjs/extensions/forms/Wizard/hooks/useReactRouter.js +1 -1
  99. package/cjs/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -1
  100. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +7 -9
  101. package/cjs/extensions/forms/constants/locales/en-GB.js +7 -9
  102. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  103. package/cjs/extensions/forms/constants/locales/en-US.d.ts +7 -9
  104. package/cjs/extensions/forms/constants/locales/index.d.ts +14 -18
  105. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +7 -9
  106. package/cjs/extensions/forms/constants/locales/nb-NO.js +7 -9
  107. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  108. package/cjs/shared/Context.d.ts +4 -0
  109. package/cjs/shared/Context.js.map +1 -1
  110. package/cjs/shared/Eufemia.d.ts +1 -1
  111. package/cjs/shared/Eufemia.js +2 -2
  112. package/cjs/shared/Eufemia.js.map +1 -1
  113. package/cjs/style/core/scopes.scss +1 -1
  114. package/cjs/style/dnb-ui-basis.css +1 -1
  115. package/cjs/style/dnb-ui-basis.min.css +1 -1
  116. package/cjs/style/dnb-ui-body.css +1 -1
  117. package/cjs/style/dnb-ui-body.min.css +1 -1
  118. package/cjs/style/dnb-ui-components.css +15 -6
  119. package/cjs/style/dnb-ui-components.min.css +1 -1
  120. package/cjs/style/dnb-ui-core.css +1 -1
  121. package/cjs/style/dnb-ui-core.min.css +1 -1
  122. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +15 -6
  123. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  124. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +15 -6
  125. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  126. package/cjs/style/themes/theme-ui/ui-theme-components.css +15 -6
  127. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  128. package/components/accordion/Accordion.d.ts +3 -3
  129. package/components/accordion/Accordion.js.map +1 -1
  130. package/components/accordion/AccordionHeader.d.ts +5 -5
  131. package/components/accordion/AccordionHeader.js +3 -2
  132. package/components/accordion/AccordionHeader.js.map +1 -1
  133. package/components/anchor/Anchor.d.ts +20 -0
  134. package/components/anchor/Anchor.js +13 -4
  135. package/components/anchor/Anchor.js.map +1 -1
  136. package/components/anchor/AnchorDocs.d.ts +3 -0
  137. package/components/anchor/AnchorDocs.js +74 -0
  138. package/components/anchor/AnchorDocs.js.map +1 -0
  139. package/components/autocomplete/Autocomplete.js +17 -3
  140. package/components/autocomplete/Autocomplete.js.map +1 -1
  141. package/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  142. package/components/height-animation/HeightAnimationInstance.d.ts +3 -3
  143. package/components/height-animation/HeightAnimationInstance.js.map +1 -1
  144. package/components/height-animation/useHeightAnimation.d.ts +5 -1
  145. package/components/height-animation/useHeightAnimation.js.map +1 -1
  146. package/components/icon/Icon.d.ts +493 -61
  147. package/components/icon/Icon.js +89 -127
  148. package/components/icon/Icon.js.map +1 -1
  149. package/components/icon/IconHelpers.d.ts +2 -1
  150. package/components/icon/IconHelpers.js +1 -1
  151. package/components/icon/IconHelpers.js.map +1 -1
  152. package/components/icon/IconPrimary.d.ts +2 -2
  153. package/components/icon/IconPrimary.js.map +1 -1
  154. package/components/icon-primary/IconPrimary.d.ts +8 -11
  155. package/components/icon-primary/IconPrimary.js +25 -31
  156. package/components/icon-primary/IconPrimary.js.map +1 -1
  157. package/components/step-indicator/StepIndicatorContext.js +67 -60
  158. package/components/step-indicator/StepIndicatorContext.js.map +1 -1
  159. package/components/step-indicator/StepIndicatorItem.js +16 -24
  160. package/components/step-indicator/StepIndicatorItem.js.map +1 -1
  161. package/components/step-indicator/StepIndicatorModal.js +6 -6
  162. package/components/step-indicator/StepIndicatorModal.js.map +1 -1
  163. package/components/step-indicator/StepIndicatorSidebar.js +10 -8
  164. package/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
  165. package/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  166. package/components/table/Table.d.ts +1 -1
  167. package/components/table/Table.js.map +1 -1
  168. package/components/table/TableContext.d.ts +12 -2
  169. package/components/table/TableContext.js +0 -1
  170. package/components/table/TableContext.js.map +1 -1
  171. package/components/table/TableDocs.d.ts +7 -0
  172. package/components/table/TableDocs.js +190 -0
  173. package/components/table/TableDocs.js.map +1 -0
  174. package/components/table/TableTd.d.ts +3 -3
  175. package/components/table/TableTd.js +2 -2
  176. package/components/table/TableTd.js.map +1 -1
  177. package/components/table/TableTr.d.ts +9 -5
  178. package/components/table/TableTr.js +4 -4
  179. package/components/table/TableTr.js.map +1 -1
  180. package/components/table/table-accordion/TableAccordionContent.d.ts +15 -0
  181. package/components/table/table-accordion/TableAccordionContent.js +95 -0
  182. package/components/table/table-accordion/TableAccordionContent.js.map +1 -0
  183. package/components/table/table-accordion/TableAccordionContext.d.ts +16 -0
  184. package/components/table/table-accordion/TableAccordionContext.js +3 -0
  185. package/components/table/table-accordion/TableAccordionContext.js.map +1 -0
  186. package/components/table/table-accordion/TableAccordionHead.d.ts +8 -0
  187. package/components/table/{TableAccordion.js → table-accordion/TableAccordionHead.js} +14 -15
  188. package/components/table/table-accordion/TableAccordionHead.js.map +1 -0
  189. package/{cjs/components/table → components/table/table-accordion}/useTableAnimationHandler.d.ts +7 -3
  190. package/components/table/{useTableAnimationHandler.js → table-accordion/useTableAnimationHandler.js} +3 -3
  191. package/components/table/table-accordion/useTableAnimationHandler.js.map +1 -0
  192. package/components/tabs/Tabs.d.ts +0 -3
  193. package/components/tabs/TabsDocs.d.ts +1 -0
  194. package/components/tabs/TabsDocs.js +30 -3
  195. package/components/tabs/TabsDocs.js.map +1 -1
  196. package/components/toggle-button/ToggleButtonGroup.js +2 -2
  197. package/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  198. package/components/toggle-button/style/dnb-toggle-button.css +15 -6
  199. package/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  200. package/components/toggle-button/style/dnb-toggle-button.scss +16 -9
  201. package/es/components/accordion/Accordion.d.ts +3 -3
  202. package/es/components/accordion/Accordion.js.map +1 -1
  203. package/es/components/accordion/AccordionHeader.d.ts +5 -5
  204. package/es/components/accordion/AccordionHeader.js +3 -2
  205. package/es/components/accordion/AccordionHeader.js.map +1 -1
  206. package/es/components/anchor/Anchor.d.ts +20 -0
  207. package/es/components/anchor/Anchor.js +13 -4
  208. package/es/components/anchor/Anchor.js.map +1 -1
  209. package/es/components/anchor/AnchorDocs.d.ts +3 -0
  210. package/es/components/anchor/AnchorDocs.js +74 -0
  211. package/es/components/anchor/AnchorDocs.js.map +1 -0
  212. package/es/components/autocomplete/Autocomplete.js +17 -3
  213. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  214. package/es/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  215. package/es/components/height-animation/HeightAnimationInstance.d.ts +3 -3
  216. package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
  217. package/es/components/height-animation/useHeightAnimation.d.ts +5 -1
  218. package/es/components/height-animation/useHeightAnimation.js.map +1 -1
  219. package/es/components/icon/Icon.d.ts +493 -61
  220. package/es/components/icon/Icon.js +82 -116
  221. package/es/components/icon/Icon.js.map +1 -1
  222. package/es/components/icon/IconHelpers.d.ts +2 -1
  223. package/es/components/icon/IconHelpers.js +1 -1
  224. package/es/components/icon/IconHelpers.js.map +1 -1
  225. package/es/components/icon/IconPrimary.d.ts +2 -2
  226. package/es/components/icon/IconPrimary.js.map +1 -1
  227. package/es/components/icon-primary/IconPrimary.d.ts +8 -11
  228. package/es/components/icon-primary/IconPrimary.js +25 -31
  229. package/es/components/icon-primary/IconPrimary.js.map +1 -1
  230. package/es/components/step-indicator/StepIndicatorContext.js +67 -60
  231. package/es/components/step-indicator/StepIndicatorContext.js.map +1 -1
  232. package/es/components/step-indicator/StepIndicatorItem.js +17 -25
  233. package/es/components/step-indicator/StepIndicatorItem.js.map +1 -1
  234. package/es/components/step-indicator/StepIndicatorModal.js +6 -6
  235. package/es/components/step-indicator/StepIndicatorModal.js.map +1 -1
  236. package/es/components/step-indicator/StepIndicatorSidebar.js +10 -8
  237. package/es/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
  238. package/es/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  239. package/es/components/table/Table.d.ts +1 -1
  240. package/es/components/table/Table.js.map +1 -1
  241. package/es/components/table/TableContext.d.ts +12 -2
  242. package/es/components/table/TableContext.js +0 -1
  243. package/es/components/table/TableContext.js.map +1 -1
  244. package/es/components/table/TableDocs.d.ts +7 -0
  245. package/es/components/table/TableDocs.js +190 -0
  246. package/es/components/table/TableDocs.js.map +1 -0
  247. package/es/components/table/TableTd.d.ts +3 -3
  248. package/es/components/table/TableTd.js +2 -2
  249. package/es/components/table/TableTd.js.map +1 -1
  250. package/es/components/table/TableTr.d.ts +9 -5
  251. package/es/components/table/TableTr.js +4 -4
  252. package/es/components/table/TableTr.js.map +1 -1
  253. package/es/components/table/table-accordion/TableAccordionContent.d.ts +15 -0
  254. package/es/components/table/table-accordion/TableAccordionContent.js +92 -0
  255. package/es/components/table/table-accordion/TableAccordionContent.js.map +1 -0
  256. package/es/components/table/table-accordion/TableAccordionContext.d.ts +16 -0
  257. package/es/components/table/table-accordion/TableAccordionContext.js +3 -0
  258. package/es/components/table/table-accordion/TableAccordionContext.js.map +1 -0
  259. package/es/components/table/table-accordion/TableAccordionHead.d.ts +8 -0
  260. package/es/components/table/{TableAccordion.js → table-accordion/TableAccordionHead.js} +14 -15
  261. package/es/components/table/table-accordion/TableAccordionHead.js.map +1 -0
  262. package/{components/table → es/components/table/table-accordion}/useTableAnimationHandler.d.ts +7 -3
  263. package/es/components/table/{useTableAnimationHandler.js → table-accordion/useTableAnimationHandler.js} +3 -3
  264. package/es/components/table/table-accordion/useTableAnimationHandler.js.map +1 -0
  265. package/es/components/tabs/Tabs.d.ts +0 -3
  266. package/es/components/tabs/TabsDocs.d.ts +1 -0
  267. package/es/components/tabs/TabsDocs.js +30 -3
  268. package/es/components/tabs/TabsDocs.js.map +1 -1
  269. package/es/components/toggle-button/ToggleButtonGroup.js +2 -2
  270. package/es/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  271. package/es/components/toggle-button/style/dnb-toggle-button.css +15 -6
  272. package/es/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  273. package/es/components/toggle-button/style/dnb-toggle-button.scss +16 -9
  274. package/es/extensions/forms/DataContext/Provider/Provider.js +1 -1
  275. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  276. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +2 -2
  277. package/es/extensions/forms/Form/Visibility/Visibility.js +20 -71
  278. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  279. package/es/extensions/forms/Form/Visibility/useVisibility.d.ts +5 -0
  280. package/es/extensions/forms/Form/Visibility/useVisibility.js +94 -0
  281. package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -0
  282. package/es/extensions/forms/Wizard/Container/WizardContainer.js +15 -9
  283. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  284. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
  285. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  286. package/es/extensions/forms/Wizard/Step/Step.d.ts +5 -0
  287. package/es/extensions/forms/Wizard/Step/Step.js +6 -2
  288. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  289. package/es/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  290. package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  291. package/es/extensions/forms/Wizard/hooks/useNextRouter.js +1 -1
  292. package/es/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -1
  293. package/es/extensions/forms/Wizard/hooks/useQueryLocator.js +1 -1
  294. package/es/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -1
  295. package/es/extensions/forms/Wizard/hooks/useReachRouter.js +1 -1
  296. package/es/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -1
  297. package/es/extensions/forms/Wizard/hooks/useReactRouter.js +1 -1
  298. package/es/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -1
  299. package/es/extensions/forms/constants/locales/en-GB.d.ts +7 -9
  300. package/es/extensions/forms/constants/locales/en-GB.js +7 -9
  301. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  302. package/es/extensions/forms/constants/locales/en-US.d.ts +7 -9
  303. package/es/extensions/forms/constants/locales/index.d.ts +14 -18
  304. package/es/extensions/forms/constants/locales/nb-NO.d.ts +7 -9
  305. package/es/extensions/forms/constants/locales/nb-NO.js +7 -9
  306. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  307. package/es/shared/Context.d.ts +4 -0
  308. package/es/shared/Context.js.map +1 -1
  309. package/es/shared/Eufemia.d.ts +1 -1
  310. package/es/shared/Eufemia.js +2 -2
  311. package/es/shared/Eufemia.js.map +1 -1
  312. package/es/style/core/scopes.scss +1 -1
  313. package/es/style/dnb-ui-basis.css +1 -1
  314. package/es/style/dnb-ui-basis.min.css +1 -1
  315. package/es/style/dnb-ui-body.css +1 -1
  316. package/es/style/dnb-ui-body.min.css +1 -1
  317. package/es/style/dnb-ui-components.css +15 -6
  318. package/es/style/dnb-ui-components.min.css +1 -1
  319. package/es/style/dnb-ui-core.css +1 -1
  320. package/es/style/dnb-ui-core.min.css +1 -1
  321. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +15 -6
  322. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  323. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +15 -6
  324. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  325. package/es/style/themes/theme-ui/ui-theme-components.css +15 -6
  326. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  327. package/esm/dnb-ui-basis.min.mjs +1 -1
  328. package/esm/dnb-ui-components.min.mjs +1 -1
  329. package/esm/dnb-ui-elements.min.mjs +1 -1
  330. package/esm/dnb-ui-extensions.min.mjs +5 -5
  331. package/esm/dnb-ui-lib.min.mjs +1 -1
  332. package/extensions/forms/DataContext/Provider/Provider.js +1 -1
  333. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  334. package/extensions/forms/Form/Visibility/Visibility.d.ts +2 -2
  335. package/extensions/forms/Form/Visibility/Visibility.js +20 -71
  336. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  337. package/extensions/forms/Form/Visibility/useVisibility.d.ts +5 -0
  338. package/extensions/forms/Form/Visibility/useVisibility.js +95 -0
  339. package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -0
  340. package/extensions/forms/Wizard/Container/WizardContainer.js +15 -9
  341. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  342. package/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
  343. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  344. package/extensions/forms/Wizard/Step/Step.d.ts +5 -0
  345. package/extensions/forms/Wizard/Step/Step.js +6 -2
  346. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  347. package/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  348. package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  349. package/extensions/forms/Wizard/hooks/useNextRouter.js +1 -1
  350. package/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -1
  351. package/extensions/forms/Wizard/hooks/useQueryLocator.js +1 -1
  352. package/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -1
  353. package/extensions/forms/Wizard/hooks/useReachRouter.js +1 -1
  354. package/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -1
  355. package/extensions/forms/Wizard/hooks/useReactRouter.js +1 -1
  356. package/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -1
  357. package/extensions/forms/constants/locales/en-GB.d.ts +7 -9
  358. package/extensions/forms/constants/locales/en-GB.js +7 -9
  359. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  360. package/extensions/forms/constants/locales/en-US.d.ts +7 -9
  361. package/extensions/forms/constants/locales/index.d.ts +14 -18
  362. package/extensions/forms/constants/locales/nb-NO.d.ts +7 -9
  363. package/extensions/forms/constants/locales/nb-NO.js +7 -9
  364. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  365. package/package.json +1 -1
  366. package/shared/Context.d.ts +4 -0
  367. package/shared/Context.js.map +1 -1
  368. package/shared/Eufemia.d.ts +1 -1
  369. package/shared/Eufemia.js +2 -2
  370. package/shared/Eufemia.js.map +1 -1
  371. package/style/core/scopes.scss +1 -1
  372. package/style/dnb-ui-basis.css +1 -1
  373. package/style/dnb-ui-basis.min.css +1 -1
  374. package/style/dnb-ui-body.css +1 -1
  375. package/style/dnb-ui-body.min.css +1 -1
  376. package/style/dnb-ui-components.css +15 -6
  377. package/style/dnb-ui-components.min.css +1 -1
  378. package/style/dnb-ui-core.css +1 -1
  379. package/style/dnb-ui-core.min.css +1 -1
  380. package/style/themes/theme-eiendom/eiendom-theme-components.css +15 -6
  381. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  382. package/style/themes/theme-sbanken/sbanken-theme-components.css +15 -6
  383. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  384. package/style/themes/theme-ui/ui-theme-components.css +15 -6
  385. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  386. package/umd/dnb-ui-basis.min.js +1 -1
  387. package/umd/dnb-ui-components.min.js +1 -1
  388. package/umd/dnb-ui-elements.min.js +1 -1
  389. package/umd/dnb-ui-extensions.min.js +5 -5
  390. package/umd/dnb-ui-lib.min.js +1 -1
  391. package/cjs/components/table/TableAccordion.d.ts +0 -8
  392. package/cjs/components/table/TableAccordion.js.map +0 -1
  393. package/cjs/components/table/TableAccordionTd.d.ts +0 -9
  394. package/cjs/components/table/TableAccordionTd.js.map +0 -1
  395. package/cjs/components/table/TableAccordionTr.d.ts +0 -13
  396. package/cjs/components/table/TableAccordionTr.js +0 -61
  397. package/cjs/components/table/TableAccordionTr.js.map +0 -1
  398. package/cjs/components/table/useTableAnimationHandler.js.map +0 -1
  399. package/components/table/TableAccordion.d.ts +0 -8
  400. package/components/table/TableAccordion.js.map +0 -1
  401. package/components/table/TableAccordionTd.d.ts +0 -9
  402. package/components/table/TableAccordionTd.js +0 -61
  403. package/components/table/TableAccordionTd.js.map +0 -1
  404. package/components/table/TableAccordionTr.d.ts +0 -13
  405. package/components/table/TableAccordionTr.js +0 -51
  406. package/components/table/TableAccordionTr.js.map +0 -1
  407. package/components/table/useTableAnimationHandler.js.map +0 -1
  408. package/es/components/table/TableAccordion.d.ts +0 -8
  409. package/es/components/table/TableAccordion.js.map +0 -1
  410. package/es/components/table/TableAccordionTd.d.ts +0 -9
  411. package/es/components/table/TableAccordionTd.js +0 -61
  412. package/es/components/table/TableAccordionTd.js.map +0 -1
  413. package/es/components/table/TableAccordionTr.d.ts +0 -13
  414. package/es/components/table/TableAccordionTr.js +0 -51
  415. package/es/components/table/TableAccordionTr.js.map +0 -1
  416. package/es/components/table/useTableAnimationHandler.js.map +0 -1
@@ -1,19 +1,18 @@
1
1
  "use client";
2
2
 
3
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
3
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
5
  const _excluded = ["sizeAsString"],
6
- _excluded2 = ["icon", "size", "width", "height", "border", "color", "inherit_color", "modifier", "alt", "title", "skeleton", "className"];
6
+ _excluded2 = ["icon", "size", "width", "height", "border", "color", "inheritColor", "inherit_color", "modifier", "alt", "title", "skeleton", "className"];
7
7
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
8
8
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9
- import React from 'react';
10
- import PropTypes from 'prop-types';
9
+ import React, { useContext } from 'react';
11
10
  import classnames from 'classnames';
12
11
  import { ErrorHandler } from '../../shared/error-helper';
13
- import { isTrue, validateDOMAttributes, processChildren, extendPropsWithContextInClassComponent } from '../../shared/component-helper';
14
- import { spacingPropTypes, createSpacingClasses } from '../space/SpacingHelper';
15
- import { createSkeletonClass } from '../skeleton/SkeletonHelper';
12
+ import { validateDOMAttributes, processChildren, extendPropsWithContext } from '../../shared/component-helper';
16
13
  import Context from '../../shared/Context';
14
+ import { createSpacingClasses } from '../space/SpacingHelper';
15
+ import { createSkeletonClass } from '../skeleton/SkeletonHelper';
17
16
  import { iconCase } from './IconHelpers';
18
17
  export const DefaultIconSize = 16;
19
18
  export const DefaultIconSizes = {
@@ -21,134 +20,91 @@ export const DefaultIconSizes = {
21
20
  medium: 24
22
21
  };
23
22
  export const ListDefaultIconSizes = [['default', 16], ['medium', 24]];
24
- export const ValidIconSizes = ['small', 'default', 'medium', 'large', 'x-large', 'xx-large'];
25
- export const iconPropTypes = _objectSpread(_objectSpread({
26
- icon: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.func]),
27
- modifier: PropTypes.string,
28
- size: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.oneOf(['default', 'medium', 'large'])])
29
- }, spacingPropTypes), {}, {
30
- width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
31
- height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
32
- border: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
33
- color: PropTypes.string,
34
- inherit_color: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
35
- alt: PropTypes.string,
36
- title: PropTypes.string,
37
- skeleton: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
38
- attributes: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),
39
- className: PropTypes.string,
40
- children: PropTypes.oneOfType([PropTypes.node, PropTypes.func])
41
- });
42
- export default class Icon extends React.PureComponent {
43
- static getIcon(props) {
44
- if (props.icon) {
45
- return props.icon;
46
- }
47
- return processChildren(props);
23
+ export const ValidIconType = ['small', 'default', 'medium', 'large', 'x-large', 'xx-large'];
24
+ export default function Icon(localProps) {
25
+ const context = useContext(Context);
26
+ const props = extendPropsWithContext(localProps, {}, {
27
+ skeleton: context === null || context === void 0 ? void 0 : context.skeleton
28
+ }, context.Icon);
29
+ const {
30
+ icon: iconProp,
31
+ size,
32
+ wrapperParams,
33
+ iconParams,
34
+ alt,
35
+ children
36
+ } = prepareIcon(props, context);
37
+ const icon = iconProp !== null && iconProp !== void 0 ? iconProp : children;
38
+ if (!icon) {
39
+ return null;
48
40
  }
49
- render() {
50
- var _this$context;
51
- const props = extendPropsWithContextInClassComponent(this.props, Icon.defaultProps, {
52
- skeleton: (_this$context = this.context) === null || _this$context === void 0 ? void 0 : _this$context.skeleton
53
- }, this.context.Icon);
54
- const {
55
- icon,
56
- size,
57
- wrapperParams,
58
- iconParams,
59
- alt
60
- } = prepareIcon(props, this.context);
61
- if (!icon) {
62
- return null;
63
- }
64
- const IconContainer = prerenderIcon({
65
- icon,
66
- size,
67
- alt
68
- });
69
- if (!IconContainer) return React.createElement(React.Fragment, null);
70
- return React.createElement("span", wrapperParams, React.createElement(IconContainer, iconParams));
41
+ const IconContainer = prerenderIcon({
42
+ icon,
43
+ size,
44
+ alt
45
+ });
46
+ if (!IconContainer) {
47
+ return React.createElement(React.Fragment, null);
71
48
  }
49
+ return React.createElement("span", wrapperParams, React.createElement(IconContainer, iconParams));
72
50
  }
73
- _defineProperty(Icon, "contextType", Context);
74
- _defineProperty(Icon, "defaultProps", {
75
- icon: null,
76
- modifier: null,
77
- size: null,
78
- width: null,
79
- height: null,
80
- border: null,
81
- color: null,
82
- inherit_color: true,
83
- alt: null,
84
- title: null,
85
- skeleton: null,
86
- attributes: null,
87
- className: null,
88
- children: null
89
- });
90
- process.env.NODE_ENV !== "production" ? Icon.propTypes = _objectSpread({}, iconPropTypes) : void 0;
91
- export const getIconNameFromComponent = icon => {
92
- const name = typeof icon === 'string' ? icon : icon && (icon.displayName || icon.name);
51
+ export function getIconNameFromComponent(icon) {
52
+ const name = typeof icon === 'function' ? icon.name : String(icon);
93
53
  if (/^data:image\//.test(name)) {
94
54
  return null;
95
55
  }
96
56
  return name;
97
- };
98
- export const calcSize = props => {
57
+ }
58
+ export function calcSize(props) {
99
59
  const {
100
60
  icon,
101
61
  size,
102
62
  width,
103
63
  height
104
64
  } = props;
105
- let sizeAsInt = -1;
65
+ let sizeAsInt = null;
106
66
  let sizeAsString = null;
107
67
  if (!size || size === DefaultIconSize) {
108
68
  const name = getIconNameFromComponent(icon);
109
69
  const nameParts = String(name || '').split('_');
110
70
  if (nameParts.length > 1) {
71
+ var _ListDefaultIconSizes, _ListDefaultIconSizes2;
111
72
  const lastPartOfIconName = nameParts.reverse()[0];
112
- const potentialSize = ListDefaultIconSizes.filter(([key]) => key === lastPartOfIconName).reduce((acc, [key, value]) => {
113
- return key && value;
114
- }, null);
73
+ const potentialSize = (_ListDefaultIconSizes = ListDefaultIconSizes.filter(([key]) => key === lastPartOfIconName)) === null || _ListDefaultIconSizes === void 0 ? void 0 : (_ListDefaultIconSizes2 = _ListDefaultIconSizes[0]) === null || _ListDefaultIconSizes2 === void 0 ? void 0 : _ListDefaultIconSizes2[1];
115
74
  if (potentialSize) {
116
75
  sizeAsInt = potentialSize;
117
76
  }
118
- if (ValidIconSizes.includes(lastPartOfIconName)) {
77
+ if (ValidIconType.includes(lastPartOfIconName)) {
119
78
  sizeAsString = lastPartOfIconName;
120
79
  }
121
80
  } else {
122
81
  if (typeof icon === 'function') {
123
82
  const elem = icon();
124
83
  if (elem.props) {
125
- let potentialSize = -1;
84
+ let potentialSize = null;
126
85
  if (elem.props.width) {
127
86
  potentialSize = elem.props.width;
128
87
  }
129
88
  if (!potentialSize && elem.props.viewBox) {
130
- potentialSize = /[0-9]+ [0-9]+ ([0-9]+)/.exec(elem.props.viewBox)[1];
89
+ potentialSize = parseFloat(/[0-9]+ [0-9]+ ([0-9]+)/.exec(elem.props.viewBox)[1]);
131
90
  }
132
- if (potentialSize) {
91
+ if (!isNaN(potentialSize)) {
133
92
  sizeAsInt = potentialSize;
134
93
  }
135
94
  }
136
95
  }
137
96
  }
138
97
  } else if (typeof size === 'string' && !(parseFloat(size) > 0)) {
139
- sizeAsInt = ListDefaultIconSizes.filter(([key]) => key === size).reduce((acc, [key, value]) => {
140
- return key && value;
141
- }, -1);
142
- if (ValidIconSizes.includes(size)) {
98
+ var _ListDefaultIconSizes3, _ListDefaultIconSizes4, _ListDefaultIconSizes5;
99
+ sizeAsInt = (_ListDefaultIconSizes3 = (_ListDefaultIconSizes4 = ListDefaultIconSizes.filter(([key]) => key === size)) === null || _ListDefaultIconSizes4 === void 0 ? void 0 : (_ListDefaultIconSizes5 = _ListDefaultIconSizes4[0]) === null || _ListDefaultIconSizes5 === void 0 ? void 0 : _ListDefaultIconSizes5[1]) !== null && _ListDefaultIconSizes3 !== void 0 ? _ListDefaultIconSizes3 : -1;
100
+ if (ValidIconType.includes(size)) {
143
101
  sizeAsString = size;
144
102
  }
145
- } else if (parseFloat(size) > 0) {
146
- sizeAsInt = ListDefaultIconSizes.filter(([key, value]) => key && value === parseFloat(size)).reduce((acc, [key, value]) => {
147
- if (key && value) return value;
148
- return acc;
149
- }, -1);
103
+ } else if (parseFloat(String(size)) > 0) {
104
+ var _ListDefaultIconSizes6, _ListDefaultIconSizes7, _ListDefaultIconSizes8;
105
+ sizeAsInt = (_ListDefaultIconSizes6 = (_ListDefaultIconSizes7 = ListDefaultIconSizes.filter(([key, value]) => key && value === parseFloat(String(size)))) === null || _ListDefaultIconSizes7 === void 0 ? void 0 : (_ListDefaultIconSizes8 = _ListDefaultIconSizes7[0]) === null || _ListDefaultIconSizes8 === void 0 ? void 0 : _ListDefaultIconSizes8[1]) !== null && _ListDefaultIconSizes6 !== void 0 ? _ListDefaultIconSizes6 : -1;
150
106
  if (sizeAsInt === -1) {
151
- sizeAsInt = parseFloat(size);
107
+ sizeAsInt = parseFloat(String(size));
152
108
  sizeAsString = 'custom-size';
153
109
  }
154
110
  }
@@ -189,8 +145,8 @@ export const calcSize = props => {
189
145
  sizeAsInt,
190
146
  sizeAsString
191
147
  };
192
- };
193
- const prepareIconParams = _ref => {
148
+ }
149
+ function prepareIconParams(_ref) {
194
150
  let {
195
151
  sizeAsString
196
152
  } = _ref,
@@ -202,26 +158,26 @@ const prepareIconParams = _ref => {
202
158
  sizeAsInt
203
159
  } = rest;
204
160
  const params = {};
205
- if (!sizeAsString && !(sizeAsInt > 0) && parseFloat(size) > -1) {
206
- params.width = params.height = parseFloat(size);
161
+ if (!sizeAsString && !(sizeAsInt > 0) && parseFloat(String(size)) > -1) {
162
+ params.width = params.height = parseFloat(String(size));
207
163
  } else if (sizeAsString === 'custom-size') {
208
- params.width = params.height = parseFloat(sizeAsInt);
164
+ params.width = params.height = parseFloat(String(sizeAsInt));
209
165
  }
210
- if (parseFloat(width) > -1) {
166
+ if (parseFloat(String(width)) > -1) {
211
167
  sizeAsString = 'custom-size';
212
- params.width = parseFloat(width);
168
+ params.width = parseFloat(String(width));
213
169
  }
214
- if (parseFloat(height) > -1) {
170
+ if (parseFloat(String(height)) > -1) {
215
171
  sizeAsString = 'custom-size';
216
- params.height = parseFloat(height);
172
+ params.height = parseFloat(String(height));
217
173
  }
218
174
  validateDOMAttributes({}, params);
219
175
  return {
220
176
  params,
221
177
  sizeAsString
222
178
  };
223
- };
224
- export const prepareIcon = (props, context) => {
179
+ }
180
+ export function prepareIcon(props, context) {
225
181
  const {
226
182
  icon,
227
183
  size,
@@ -229,6 +185,7 @@ export const prepareIcon = (props, context) => {
229
185
  height,
230
186
  border,
231
187
  color,
188
+ inheritColor,
232
189
  inherit_color,
233
190
  modifier,
234
191
  alt,
@@ -265,8 +222,8 @@ export const prepareIcon = (props, context) => {
265
222
  }
266
223
  delete wrapperParams['aria-label'];
267
224
  }
268
- wrapperParams.className = classnames('dnb-icon', sizeAsString ? `dnb-icon--${sizeAsString}` : 'dnb-icon--default', createSkeletonClass(null, skeleton, context), createSpacingClasses(props), className, modifier && `dnb-icon--${modifier}`, isTrue(border) && 'dnb-icon--border', isTrue(inherit_color) && 'dnb-icon--inherit-color');
269
- let iconToRender = Icon.getIcon(props);
225
+ wrapperParams.className = classnames('dnb-icon', sizeAsString ? `dnb-icon--${sizeAsString}` : 'dnb-icon--default', createSkeletonClass(null, skeleton, context), createSpacingClasses(props), className, modifier && `dnb-icon--${modifier}`, border && 'dnb-icon--border', (inheritColor !== null && inheritColor !== void 0 ? inheritColor : inherit_color) !== false && 'dnb-icon--inherit-color');
226
+ let iconToRender = getIcon(props);
270
227
  if (iconToRender && typeof iconToRender.defaultProps !== 'undefined') {
271
228
  iconToRender = React.createElement(iconToRender, validateDOMAttributes({}, {
272
229
  color,
@@ -282,16 +239,19 @@ export const prepareIcon = (props, context) => {
282
239
  iconParams,
283
240
  wrapperParams
284
241
  });
285
- };
286
- export const prerenderIcon = ({
287
- icon,
288
- size = null,
289
- listOfIcons = null,
290
- alt = null
291
- } = {}) => {
242
+ }
243
+ export function prerenderIcon(props) {
244
+ const {
245
+ size = null,
246
+ listOfIcons = null,
247
+ alt = null
248
+ } = props;
249
+ let {
250
+ icon
251
+ } = props;
292
252
  if (typeof icon === 'string' && /^data:image\//.test(icon)) {
293
253
  return () => React.createElement("img", {
294
- src: icon,
254
+ src: String(icon),
295
255
  alt: alt || 'no-alt'
296
256
  });
297
257
  }
@@ -307,7 +267,7 @@ export const prerenderIcon = ({
307
267
  }
308
268
  try {
309
269
  icon = iconCase(icon);
310
- if (size && DefaultIconSizes[size] && size !== 'default' && !(parseFloat(size) > 0) && !icon.includes(size)) {
270
+ if (size && DefaultIconSizes[size] && size !== 'basis' && size !== 'default' && !(parseFloat(String(size)) > 0) && !icon.includes(size)) {
311
271
  icon = `${icon}_${size}`;
312
272
  }
313
273
  const mod = (listOfIcons.dnbIcons ? listOfIcons.dnbIcons : listOfIcons)[icon];
@@ -316,6 +276,12 @@ export const prerenderIcon = ({
316
276
  ErrorHandler(`Icon '${icon}' did not exist!`);
317
277
  return null;
318
278
  }
319
- };
279
+ }
280
+ function getIcon(props) {
281
+ if (props.icon) {
282
+ return props.icon;
283
+ }
284
+ return processChildren(props);
285
+ }
320
286
  Icon._supportsSpacingProps = true;
321
287
  //# sourceMappingURL=Icon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.js","names":["React","PropTypes","classnames","ErrorHandler","isTrue","validateDOMAttributes","processChildren","extendPropsWithContextInClassComponent","spacingPropTypes","createSpacingClasses","createSkeletonClass","Context","iconCase","DefaultIconSize","DefaultIconSizes","default","medium","ListDefaultIconSizes","ValidIconSizes","iconPropTypes","_objectSpread","icon","oneOfType","string","node","func","modifier","size","number","oneOf","width","height","border","bool","color","inherit_color","alt","title","skeleton","attributes","object","className","children","Icon","PureComponent","getIcon","props","render","_this$context","defaultProps","context","wrapperParams","iconParams","prepareIcon","IconContainer","prerenderIcon","createElement","Fragment","_defineProperty","process","env","NODE_ENV","propTypes","getIconNameFromComponent","name","displayName","test","calcSize","sizeAsInt","sizeAsString","nameParts","String","split","length","lastPartOfIconName","reverse","potentialSize","filter","key","reduce","acc","value","includes","elem","viewBox","exec","parseFloat","potentialSizeAsString","isCustomSize","params","prepareIconParams","_ref","rest","_objectWithoutProperties","_excluded","_excluded2","label","role","replace","iconToRender","listOfIcons","src","isValidElement","Array","isArray","mod","dnbIcons","e","_supportsSpacingProps"],"sources":["../../../../src/components/icon/Icon.js"],"sourcesContent":["/**\n * Web Icon Component\n *\n * This is a legacy component.\n * For referencing while developing new features, please use a Functional component.\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport { ErrorHandler } from '../../shared/error-helper'\nimport {\n isTrue,\n validateDOMAttributes,\n processChildren,\n extendPropsWithContextInClassComponent,\n} from '../../shared/component-helper'\nimport {\n spacingPropTypes,\n createSpacingClasses,\n} from '../space/SpacingHelper'\nimport { createSkeletonClass } from '../skeleton/SkeletonHelper'\nimport Context from '../../shared/Context'\nimport { iconCase } from './IconHelpers'\n\nexport const DefaultIconSize = 16\nexport const DefaultIconSizes = {\n // small: 8, // currently not in use\n default: 16,\n medium: 24,\n // large: 32 // currently not in use\n}\n// instead of using Object.entries(DefaultIconSizes)\nexport const ListDefaultIconSizes = [\n ['default', 16],\n ['medium', 24],\n]\nexport const ValidIconSizes = [\n 'small', // 12px 0.75rem\n 'default', // 16px 1rem\n 'medium', // 24px 1.5rem\n 'large', // 32px 2rem\n 'x-large', // 40px 2.5rem\n 'xx-large', // 48px 3rem\n]\n\nexport const iconPropTypes = {\n icon: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.node,\n PropTypes.func,\n ]),\n modifier: PropTypes.string,\n size: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n PropTypes.oneOf(['default', 'medium', 'large']),\n ]),\n\n ...spacingPropTypes,\n\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n border: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n color: PropTypes.string,\n inherit_color: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n alt: PropTypes.string,\n title: PropTypes.string,\n skeleton: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n attributes: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n}\n\n/**\n * The icon component is a span wrapping an inline svg. When using this component in your preferred framework. To load an svg file dynamically, you may need a \"svg-loader\". Feel free to use whatever tool you want (regarding the setup/tooling), as long as the output is the same markup as shown below.\n */\nexport default class Icon extends React.PureComponent {\n static contextType = Context\n\n static propTypes = {\n /**\n * Use spread, so generateTypes.js makes a valid copy to create the types\n */\n ...iconPropTypes,\n }\n\n static defaultProps = {\n icon: null,\n modifier: null,\n size: null,\n width: null,\n height: null,\n border: null,\n color: null,\n inherit_color: true,\n alt: null,\n title: null,\n skeleton: null,\n attributes: null,\n\n className: null,\n children: null,\n }\n\n static getIcon(props) {\n if (props.icon) {\n return props.icon\n }\n return processChildren(props)\n }\n\n render() {\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContextInClassComponent(\n this.props,\n Icon.defaultProps,\n { skeleton: this.context?.skeleton },\n this.context.Icon\n )\n\n const { icon, size, wrapperParams, iconParams, alt } = prepareIcon(\n props,\n this.context\n )\n\n if (!icon) {\n return null\n }\n\n const IconContainer = prerenderIcon({ icon, size, alt })\n\n // make sure we return an empty span if we don't could get the icon\n if (!IconContainer) return <></>\n\n return (\n <span {...wrapperParams}>\n <IconContainer {...iconParams} />\n </span>\n )\n }\n}\n\nexport const getIconNameFromComponent = (icon) => {\n const name =\n typeof icon === 'string'\n ? icon\n : icon && (icon.displayName || icon.name)\n if (/^data:image\\//.test(name)) {\n return null\n }\n return name\n}\n\nexport const calcSize = (props) => {\n const { icon, size, width, height } = props\n\n let sizeAsInt = -1\n let sizeAsString = null\n\n // if there is no size, check if we can find the actual size in the name\n if (!size || size === DefaultIconSize) {\n // get the icon name - we use is for several things\n const name = getIconNameFromComponent(icon)\n\n const nameParts = String(name || '').split('_')\n\n if (nameParts.length > 1) {\n const lastPartOfIconName = nameParts.reverse()[0]\n const potentialSize = ListDefaultIconSizes.filter(\n ([key]) => key === lastPartOfIconName\n ).reduce((acc, [key, value]) => {\n return key && value\n }, null)\n if (potentialSize) {\n sizeAsInt = potentialSize\n }\n if (ValidIconSizes.includes(lastPartOfIconName)) {\n sizeAsString = lastPartOfIconName\n }\n } else {\n if (typeof icon === 'function') {\n const elem = icon()\n if (elem.props) {\n let potentialSize = -1\n if (elem.props.width) {\n potentialSize = elem.props.width\n }\n if (!potentialSize && elem.props.viewBox) {\n potentialSize = /[0-9]+ [0-9]+ ([0-9]+)/.exec(\n elem.props.viewBox\n )[1] // get the width\n }\n if (potentialSize) {\n sizeAsInt = potentialSize\n }\n }\n }\n }\n }\n\n // if size is defined as a string, find the size number\n else if (typeof size === 'string' && !(parseFloat(size) > 0)) {\n sizeAsInt = ListDefaultIconSizes.filter(\n ([key]) => key === size\n ).reduce((acc, [key, value]) => {\n return key && value\n }, -1)\n\n // of if the size is a default size defined as a string\n if (ValidIconSizes.includes(size)) {\n sizeAsString = size\n }\n }\n\n // check if the size is given as a number, and if is a default size\n else if (parseFloat(size) > 0) {\n sizeAsInt = ListDefaultIconSizes.filter(\n ([key, value]) => key && value === parseFloat(size)\n ).reduce((acc, [key, value]) => {\n if (key && value) return value\n return acc\n }, -1)\n\n // has custom size\n if (sizeAsInt === -1) {\n sizeAsInt = parseFloat(size)\n sizeAsString = 'custom-size'\n }\n }\n\n // check if the sizeAsInt is a default size - and no sizeAsString exists yet\n if (!sizeAsString && sizeAsInt > 0) {\n const potentialSizeAsString = ListDefaultIconSizes.reduce(\n (acc, [key, value]) => {\n if (key && value === sizeAsInt) {\n return key\n }\n return acc\n },\n null\n )\n\n if (potentialSizeAsString) {\n sizeAsString = potentialSizeAsString\n }\n }\n\n // define all the svg parameters\n const { sizeAsString: isCustomSize, params: iconParams } =\n prepareIconParams({\n sizeAsString,\n sizeAsInt,\n size,\n width,\n height,\n })\n if (isCustomSize) {\n sizeAsString = isCustomSize\n }\n\n if (!(sizeAsInt > 0)) {\n sizeAsInt = DefaultIconSize\n }\n\n if (size === 'auto') {\n iconParams.width = '100%'\n iconParams.height = '100%'\n sizeAsString = 'auto'\n }\n\n return {\n iconParams,\n sizeAsInt,\n sizeAsString,\n }\n}\n\nconst prepareIconParams = ({ sizeAsString, ...rest }) => {\n const { size, width, height, sizeAsInt } = rest\n const params = {}\n\n if (!sizeAsString && !(sizeAsInt > 0) && parseFloat(size) > -1) {\n params.width = params.height = parseFloat(size)\n } else if (sizeAsString === 'custom-size') {\n params.width = params.height = parseFloat(sizeAsInt)\n }\n if (parseFloat(width) > -1) {\n sizeAsString = 'custom-size'\n params.width = parseFloat(width)\n }\n if (parseFloat(height) > -1) {\n sizeAsString = 'custom-size'\n params.height = parseFloat(height)\n }\n\n validateDOMAttributes({}, params)\n\n return { params, sizeAsString }\n}\n\nexport const prepareIcon = (props, context) => {\n const {\n icon,\n size, // eslint-disable-line\n width,\n height,\n border,\n color,\n inherit_color,\n modifier,\n alt,\n title,\n skeleton,\n className,\n ...attributes\n } = props\n\n const { sizeAsString, iconParams } = calcSize({\n icon,\n size,\n width,\n height,\n })\n\n if (color) {\n iconParams.color = color\n }\n\n const label = icon ? getIconNameFromComponent(icon) : null\n\n // some wrapper params\n // also used for code markup simulation\n const wrapperParams = validateDOMAttributes(props, {\n role: alt ? 'img' : 'presentation',\n alt, // in case the image don't shows up (because we define the role to be img)\n 'aria-label':\n label && !label.includes('default')\n ? label.replace(/_/g, ' ') + ' icon'\n : null, // for screen readers only\n title, // to show on hover, if defined\n ...attributes,\n })\n if (!alt && typeof wrapperParams['aria-hidden'] === 'undefined') {\n wrapperParams['aria-hidden'] = true\n }\n if (wrapperParams['aria-hidden']) {\n if (\n !wrapperParams['data-testid'] &&\n typeof process !== 'undefined' &&\n process.env.NODE_ENV === 'test'\n ) {\n wrapperParams['data-testid'] = wrapperParams['aria-label']\n }\n delete wrapperParams['aria-label']\n }\n\n wrapperParams.className = classnames(\n 'dnb-icon',\n modifier && `dnb-icon--${modifier}`,\n isTrue(border) && 'dnb-icon--border',\n isTrue(inherit_color) && 'dnb-icon--inherit-color',\n sizeAsString ? `dnb-icon--${sizeAsString}` : 'dnb-icon--default',\n createSkeletonClass(null, skeleton, context),\n createSpacingClasses(props),\n className\n )\n\n let iconToRender = Icon.getIcon(props)\n\n if (iconToRender && typeof iconToRender.defaultProps !== 'undefined') {\n iconToRender = React.createElement(\n iconToRender,\n validateDOMAttributes(\n {},\n {\n color,\n icon,\n size,\n width,\n height,\n }\n )\n )\n }\n\n return {\n ...props,\n icon: iconToRender,\n alt,\n iconParams,\n wrapperParams,\n }\n}\n\nexport const prerenderIcon = ({\n icon,\n size = null,\n listOfIcons = null,\n alt = null,\n} = {}) => {\n if (typeof icon === 'string' && /^data:image\\//.test(icon)) {\n return () => <img src={icon} alt={alt || 'no-alt'} />\n }\n\n if (typeof icon === 'function') {\n const elem = icon()\n if (React.isValidElement(elem)) {\n return icon\n }\n return elem\n }\n\n if (React.isValidElement(icon) || Array.isArray(icon)) {\n return () => icon\n }\n\n // for importing react component\n try {\n icon = iconCase(icon)\n if (\n size &&\n DefaultIconSizes[size] &&\n size !== 'default' &&\n !(parseFloat(size) > 0) &&\n !icon.includes(size)\n ) {\n icon = `${icon}_${size}`\n }\n const mod = (\n listOfIcons.dnbIcons ? listOfIcons.dnbIcons : listOfIcons\n )[icon]\n return mod && mod.default ? mod.default : mod\n } catch (e) {\n ErrorHandler(`Icon '${icon}' did not exist!`)\n return null\n }\n}\n\nIcon._supportsSpacingProps = true\n"],"mappings":";;;;;;;;AAOA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SACEC,MAAM,EACNC,qBAAqB,EACrBC,eAAe,EACfC,sCAAsC,QACjC,+BAA+B;AACtC,SACEC,gBAAgB,EAChBC,oBAAoB,QACf,wBAAwB;AAC/B,SAASC,mBAAmB,QAAQ,4BAA4B;AAChE,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,SAASC,QAAQ,QAAQ,eAAe;AAExC,OAAO,MAAMC,eAAe,GAAG,EAAE;AACjC,OAAO,MAAMC,gBAAgB,GAAG;EAE9BC,OAAO,EAAE,EAAE;EACXC,MAAM,EAAE;AAEV,CAAC;AAED,OAAO,MAAMC,oBAAoB,GAAG,CAClC,CAAC,SAAS,EAAE,EAAE,CAAC,EACf,CAAC,QAAQ,EAAE,EAAE,CAAC,CACf;AACD,OAAO,MAAMC,cAAc,GAAG,CAC5B,OAAO,EACP,SAAS,EACT,QAAQ,EACR,OAAO,EACP,SAAS,EACT,UAAU,CACX;AAED,OAAO,MAAMC,aAAa,GAAAC,aAAA,CAAAA,aAAA;EACxBC,IAAI,EAAEpB,SAAS,CAACqB,SAAS,CAAC,CACxBrB,SAAS,CAACsB,MAAM,EAChBtB,SAAS,CAACuB,IAAI,EACdvB,SAAS,CAACwB,IAAI,CACf,CAAC;EACFC,QAAQ,EAAEzB,SAAS,CAACsB,MAAM;EAC1BI,IAAI,EAAE1B,SAAS,CAACqB,SAAS,CAAC,CACxBrB,SAAS,CAAC2B,MAAM,EAChB3B,SAAS,CAACsB,MAAM,EAChBtB,SAAS,CAAC4B,KAAK,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAChD;AAAC,GAECrB,gBAAgB;EAEnBsB,KAAK,EAAE7B,SAAS,CAACqB,SAAS,CAAC,CAACrB,SAAS,CAACsB,MAAM,EAAEtB,SAAS,CAAC2B,MAAM,CAAC,CAAC;EAChEG,MAAM,EAAE9B,SAAS,CAACqB,SAAS,CAAC,CAACrB,SAAS,CAACsB,MAAM,EAAEtB,SAAS,CAAC2B,MAAM,CAAC,CAAC;EACjEI,MAAM,EAAE/B,SAAS,CAACqB,SAAS,CAAC,CAACrB,SAAS,CAACsB,MAAM,EAAEtB,SAAS,CAACgC,IAAI,CAAC,CAAC;EAC/DC,KAAK,EAAEjC,SAAS,CAACsB,MAAM;EACvBY,aAAa,EAAElC,SAAS,CAACqB,SAAS,CAAC,CAACrB,SAAS,CAACsB,MAAM,EAAEtB,SAAS,CAACgC,IAAI,CAAC,CAAC;EACtEG,GAAG,EAAEnC,SAAS,CAACsB,MAAM;EACrBc,KAAK,EAAEpC,SAAS,CAACsB,MAAM;EACvBe,QAAQ,EAAErC,SAAS,CAACqB,SAAS,CAAC,CAACrB,SAAS,CAACsB,MAAM,EAAEtB,SAAS,CAACgC,IAAI,CAAC,CAAC;EACjEM,UAAU,EAAEtC,SAAS,CAACqB,SAAS,CAAC,CAACrB,SAAS,CAACsB,MAAM,EAAEtB,SAAS,CAACuC,MAAM,CAAC,CAAC;EAErEC,SAAS,EAAExC,SAAS,CAACsB,MAAM;EAC3BmB,QAAQ,EAAEzC,SAAS,CAACqB,SAAS,CAAC,CAACrB,SAAS,CAACuB,IAAI,EAAEvB,SAAS,CAACwB,IAAI,CAAC;AAAC,EAChE;AAKD,eAAe,MAAMkB,IAAI,SAAS3C,KAAK,CAAC4C,aAAa,CAAC;EA4BpD,OAAOC,OAAOA,CAACC,KAAK,EAAE;IACpB,IAAIA,KAAK,CAACzB,IAAI,EAAE;MACd,OAAOyB,KAAK,CAACzB,IAAI;IACnB;IACA,OAAOf,eAAe,CAACwC,KAAK,CAAC;EAC/B;EAEAC,MAAMA,CAAA,EAAG;IAAA,IAAAC,aAAA;IAEP,MAAMF,KAAK,GAAGvC,sCAAsC,CAClD,IAAI,CAACuC,KAAK,EACVH,IAAI,CAACM,YAAY,EACjB;MAAEX,QAAQ,GAAAU,aAAA,GAAE,IAAI,CAACE,OAAO,cAAAF,aAAA,uBAAZA,aAAA,CAAcV;IAAS,CAAC,EACpC,IAAI,CAACY,OAAO,CAACP,IACf,CAAC;IAED,MAAM;MAAEtB,IAAI;MAAEM,IAAI;MAAEwB,aAAa;MAAEC,UAAU;MAAEhB;IAAI,CAAC,GAAGiB,WAAW,CAChEP,KAAK,EACL,IAAI,CAACI,OACP,CAAC;IAED,IAAI,CAAC7B,IAAI,EAAE;MACT,OAAO,IAAI;IACb;IAEA,MAAMiC,aAAa,GAAGC,aAAa,CAAC;MAAElC,IAAI;MAAEM,IAAI;MAAES;IAAI,CAAC,CAAC;IAGxD,IAAI,CAACkB,aAAa,EAAE,OAAOtD,KAAA,CAAAwD,aAAA,CAAAxD,KAAA,CAAAyD,QAAA,MAAI,CAAC;IAEhC,OACEzD,KAAA,CAAAwD,aAAA,SAAUL,aAAa,EACrBnD,KAAA,CAAAwD,aAAA,CAACF,aAAa,EAAKF,UAAa,CAC5B,CAAC;EAEX;AACF;AAACM,eAAA,CAhEoBf,IAAI,iBACFhC,OAAO;AAAA+C,eAAA,CADTf,IAAI,kBAUD;EACpBtB,IAAI,EAAE,IAAI;EACVK,QAAQ,EAAE,IAAI;EACdC,IAAI,EAAE,IAAI;EACVG,KAAK,EAAE,IAAI;EACXC,MAAM,EAAE,IAAI;EACZC,MAAM,EAAE,IAAI;EACZE,KAAK,EAAE,IAAI;EACXC,aAAa,EAAE,IAAI;EACnBC,GAAG,EAAE,IAAI;EACTC,KAAK,EAAE,IAAI;EACXC,QAAQ,EAAE,IAAI;EACdC,UAAU,EAAE,IAAI;EAEhBE,SAAS,EAAE,IAAI;EACfC,QAAQ,EAAE;AACZ,CAAC;AAAAiB,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBA1BkBlB,IAAI,CAGhBmB,SAAS,GAAA1C,aAAA,KAIXD,aAAa;AA2DpB,OAAO,MAAM4C,wBAAwB,GAAI1C,IAAI,IAAK;EAChD,MAAM2C,IAAI,GACR,OAAO3C,IAAI,KAAK,QAAQ,GACpBA,IAAI,GACJA,IAAI,KAAKA,IAAI,CAAC4C,WAAW,IAAI5C,IAAI,CAAC2C,IAAI,CAAC;EAC7C,IAAI,eAAe,CAACE,IAAI,CAACF,IAAI,CAAC,EAAE;IAC9B,OAAO,IAAI;EACb;EACA,OAAOA,IAAI;AACb,CAAC;AAED,OAAO,MAAMG,QAAQ,GAAIrB,KAAK,IAAK;EACjC,MAAM;IAAEzB,IAAI;IAAEM,IAAI;IAAEG,KAAK;IAAEC;EAAO,CAAC,GAAGe,KAAK;EAE3C,IAAIsB,SAAS,GAAG,CAAC,CAAC;EAClB,IAAIC,YAAY,GAAG,IAAI;EAGvB,IAAI,CAAC1C,IAAI,IAAIA,IAAI,KAAKd,eAAe,EAAE;IAErC,MAAMmD,IAAI,GAAGD,wBAAwB,CAAC1C,IAAI,CAAC;IAE3C,MAAMiD,SAAS,GAAGC,MAAM,CAACP,IAAI,IAAI,EAAE,CAAC,CAACQ,KAAK,CAAC,GAAG,CAAC;IAE/C,IAAIF,SAAS,CAACG,MAAM,GAAG,CAAC,EAAE;MACxB,MAAMC,kBAAkB,GAAGJ,SAAS,CAACK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;MACjD,MAAMC,aAAa,GAAG3D,oBAAoB,CAAC4D,MAAM,CAC/C,CAAC,CAACC,GAAG,CAAC,KAAKA,GAAG,KAAKJ,kBACrB,CAAC,CAACK,MAAM,CAAC,CAACC,GAAG,EAAE,CAACF,GAAG,EAAEG,KAAK,CAAC,KAAK;QAC9B,OAAOH,GAAG,IAAIG,KAAK;MACrB,CAAC,EAAE,IAAI,CAAC;MACR,IAAIL,aAAa,EAAE;QACjBR,SAAS,GAAGQ,aAAa;MAC3B;MACA,IAAI1D,cAAc,CAACgE,QAAQ,CAACR,kBAAkB,CAAC,EAAE;QAC/CL,YAAY,GAAGK,kBAAkB;MACnC;IACF,CAAC,MAAM;MACL,IAAI,OAAOrD,IAAI,KAAK,UAAU,EAAE;QAC9B,MAAM8D,IAAI,GAAG9D,IAAI,CAAC,CAAC;QACnB,IAAI8D,IAAI,CAACrC,KAAK,EAAE;UACd,IAAI8B,aAAa,GAAG,CAAC,CAAC;UACtB,IAAIO,IAAI,CAACrC,KAAK,CAAChB,KAAK,EAAE;YACpB8C,aAAa,GAAGO,IAAI,CAACrC,KAAK,CAAChB,KAAK;UAClC;UACA,IAAI,CAAC8C,aAAa,IAAIO,IAAI,CAACrC,KAAK,CAACsC,OAAO,EAAE;YACxCR,aAAa,GAAG,wBAAwB,CAACS,IAAI,CAC3CF,IAAI,CAACrC,KAAK,CAACsC,OACb,CAAC,CAAC,CAAC,CAAC;UACN;UACA,IAAIR,aAAa,EAAE;YACjBR,SAAS,GAAGQ,aAAa;UAC3B;QACF;MACF;IACF;EACF,CAAC,MAGI,IAAI,OAAOjD,IAAI,KAAK,QAAQ,IAAI,EAAE2D,UAAU,CAAC3D,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;IAC5DyC,SAAS,GAAGnD,oBAAoB,CAAC4D,MAAM,CACrC,CAAC,CAACC,GAAG,CAAC,KAAKA,GAAG,KAAKnD,IACrB,CAAC,CAACoD,MAAM,CAAC,CAACC,GAAG,EAAE,CAACF,GAAG,EAAEG,KAAK,CAAC,KAAK;MAC9B,OAAOH,GAAG,IAAIG,KAAK;IACrB,CAAC,EAAE,CAAC,CAAC,CAAC;IAGN,IAAI/D,cAAc,CAACgE,QAAQ,CAACvD,IAAI,CAAC,EAAE;MACjC0C,YAAY,GAAG1C,IAAI;IACrB;EACF,CAAC,MAGI,IAAI2D,UAAU,CAAC3D,IAAI,CAAC,GAAG,CAAC,EAAE;IAC7ByC,SAAS,GAAGnD,oBAAoB,CAAC4D,MAAM,CACrC,CAAC,CAACC,GAAG,EAAEG,KAAK,CAAC,KAAKH,GAAG,IAAIG,KAAK,KAAKK,UAAU,CAAC3D,IAAI,CACpD,CAAC,CAACoD,MAAM,CAAC,CAACC,GAAG,EAAE,CAACF,GAAG,EAAEG,KAAK,CAAC,KAAK;MAC9B,IAAIH,GAAG,IAAIG,KAAK,EAAE,OAAOA,KAAK;MAC9B,OAAOD,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC,CAAC;IAGN,IAAIZ,SAAS,KAAK,CAAC,CAAC,EAAE;MACpBA,SAAS,GAAGkB,UAAU,CAAC3D,IAAI,CAAC;MAC5B0C,YAAY,GAAG,aAAa;IAC9B;EACF;EAGA,IAAI,CAACA,YAAY,IAAID,SAAS,GAAG,CAAC,EAAE;IAClC,MAAMmB,qBAAqB,GAAGtE,oBAAoB,CAAC8D,MAAM,CACvD,CAACC,GAAG,EAAE,CAACF,GAAG,EAAEG,KAAK,CAAC,KAAK;MACrB,IAAIH,GAAG,IAAIG,KAAK,KAAKb,SAAS,EAAE;QAC9B,OAAOU,GAAG;MACZ;MACA,OAAOE,GAAG;IACZ,CAAC,EACD,IACF,CAAC;IAED,IAAIO,qBAAqB,EAAE;MACzBlB,YAAY,GAAGkB,qBAAqB;IACtC;EACF;EAGA,MAAM;IAAElB,YAAY,EAAEmB,YAAY;IAAEC,MAAM,EAAErC;EAAW,CAAC,GACtDsC,iBAAiB,CAAC;IAChBrB,YAAY;IACZD,SAAS;IACTzC,IAAI;IACJG,KAAK;IACLC;EACF,CAAC,CAAC;EACJ,IAAIyD,YAAY,EAAE;IAChBnB,YAAY,GAAGmB,YAAY;EAC7B;EAEA,IAAI,EAAEpB,SAAS,GAAG,CAAC,CAAC,EAAE;IACpBA,SAAS,GAAGvD,eAAe;EAC7B;EAEA,IAAIc,IAAI,KAAK,MAAM,EAAE;IACnByB,UAAU,CAACtB,KAAK,GAAG,MAAM;IACzBsB,UAAU,CAACrB,MAAM,GAAG,MAAM;IAC1BsC,YAAY,GAAG,MAAM;EACvB;EAEA,OAAO;IACLjB,UAAU;IACVgB,SAAS;IACTC;EACF,CAAC;AACH,CAAC;AAED,MAAMqB,iBAAiB,GAAGC,IAAA,IAA+B;EAAA,IAA9B;MAAEtB;IAAsB,CAAC,GAAAsB,IAAA;IAANC,IAAI,GAAAC,wBAAA,CAAAF,IAAA,EAAAG,SAAA;EAChD,MAAM;IAAEnE,IAAI;IAAEG,KAAK;IAAEC,MAAM;IAAEqC;EAAU,CAAC,GAAGwB,IAAI;EAC/C,MAAMH,MAAM,GAAG,CAAC,CAAC;EAEjB,IAAI,CAACpB,YAAY,IAAI,EAAED,SAAS,GAAG,CAAC,CAAC,IAAIkB,UAAU,CAAC3D,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;IAC9D8D,MAAM,CAAC3D,KAAK,GAAG2D,MAAM,CAAC1D,MAAM,GAAGuD,UAAU,CAAC3D,IAAI,CAAC;EACjD,CAAC,MAAM,IAAI0C,YAAY,KAAK,aAAa,EAAE;IACzCoB,MAAM,CAAC3D,KAAK,GAAG2D,MAAM,CAAC1D,MAAM,GAAGuD,UAAU,CAAClB,SAAS,CAAC;EACtD;EACA,IAAIkB,UAAU,CAACxD,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;IAC1BuC,YAAY,GAAG,aAAa;IAC5BoB,MAAM,CAAC3D,KAAK,GAAGwD,UAAU,CAACxD,KAAK,CAAC;EAClC;EACA,IAAIwD,UAAU,CAACvD,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;IAC3BsC,YAAY,GAAG,aAAa;IAC5BoB,MAAM,CAAC1D,MAAM,GAAGuD,UAAU,CAACvD,MAAM,CAAC;EACpC;EAEA1B,qBAAqB,CAAC,CAAC,CAAC,EAAEoF,MAAM,CAAC;EAEjC,OAAO;IAAEA,MAAM;IAAEpB;EAAa,CAAC;AACjC,CAAC;AAED,OAAO,MAAMhB,WAAW,GAAGA,CAACP,KAAK,EAAEI,OAAO,KAAK;EAC7C,MAAM;MACJ7B,IAAI;MACJM,IAAI;MACJG,KAAK;MACLC,MAAM;MACNC,MAAM;MACNE,KAAK;MACLC,aAAa;MACbT,QAAQ;MACRU,GAAG;MACHC,KAAK;MACLC,QAAQ;MACRG;IAEF,CAAC,GAAGK,KAAK;IADJP,UAAU,GAAAsD,wBAAA,CACX/C,KAAK,EAAAiD,UAAA;EAET,MAAM;IAAE1B,YAAY;IAAEjB;EAAW,CAAC,GAAGe,QAAQ,CAAC;IAC5C9C,IAAI;IACJM,IAAI;IACJG,KAAK;IACLC;EACF,CAAC,CAAC;EAEF,IAAIG,KAAK,EAAE;IACTkB,UAAU,CAAClB,KAAK,GAAGA,KAAK;EAC1B;EAEA,MAAM8D,KAAK,GAAG3E,IAAI,GAAG0C,wBAAwB,CAAC1C,IAAI,CAAC,GAAG,IAAI;EAI1D,MAAM8B,aAAa,GAAG9C,qBAAqB,CAACyC,KAAK,EAAA1B,aAAA;IAC/C6E,IAAI,EAAE7D,GAAG,GAAG,KAAK,GAAG,cAAc;IAClCA,GAAG;IACH,YAAY,EACV4D,KAAK,IAAI,CAACA,KAAK,CAACd,QAAQ,CAAC,SAAS,CAAC,GAC/Bc,KAAK,CAACE,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,OAAO,GAClC,IAAI;IACV7D;EAAK,GACFE,UAAU,CACd,CAAC;EACF,IAAI,CAACH,GAAG,IAAI,OAAOe,aAAa,CAAC,aAAa,CAAC,KAAK,WAAW,EAAE;IAC/DA,aAAa,CAAC,aAAa,CAAC,GAAG,IAAI;EACrC;EACA,IAAIA,aAAa,CAAC,aAAa,CAAC,EAAE;IAChC,IACE,CAACA,aAAa,CAAC,aAAa,CAAC,IAC7B,OAAOQ,OAAO,KAAK,WAAW,IAC9BA,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM,EAC/B;MACAV,aAAa,CAAC,aAAa,CAAC,GAAGA,aAAa,CAAC,YAAY,CAAC;IAC5D;IACA,OAAOA,aAAa,CAAC,YAAY,CAAC;EACpC;EAEAA,aAAa,CAACV,SAAS,GAAGvC,UAAU,CAClC,UAAU,EAIVmE,YAAY,GAAI,aAAYA,YAAa,EAAC,GAAG,mBAAmB,EAChE3D,mBAAmB,CAAC,IAAI,EAAE4B,QAAQ,EAAEY,OAAO,CAAC,EAC5CzC,oBAAoB,CAACqC,KAAK,CAAC,EAC3BL,SAAS,EANTf,QAAQ,IAAK,aAAYA,QAAS,EAAC,EACnCtB,MAAM,CAAC4B,MAAM,CAAC,IAAI,kBAAkB,EACpC5B,MAAM,CAAC+B,aAAa,CAAC,IAAI,yBAK3B,CAAC;EAED,IAAIgE,YAAY,GAAGxD,IAAI,CAACE,OAAO,CAACC,KAAK,CAAC;EAEtC,IAAIqD,YAAY,IAAI,OAAOA,YAAY,CAAClD,YAAY,KAAK,WAAW,EAAE;IACpEkD,YAAY,GAAGnG,KAAK,CAACwD,aAAa,CAChC2C,YAAY,EACZ9F,qBAAqB,CACnB,CAAC,CAAC,EACF;MACE6B,KAAK;MACLb,IAAI;MACJM,IAAI;MACJG,KAAK;MACLC;IACF,CACF,CACF,CAAC;EACH;EAEA,OAAAX,aAAA,CAAAA,aAAA,KACK0B,KAAK;IACRzB,IAAI,EAAE8E,YAAY;IAClB/D,GAAG;IACHgB,UAAU;IACVD;EAAa;AAEjB,CAAC;AAED,OAAO,MAAMI,aAAa,GAAGA,CAAC;EAC5BlC,IAAI;EACJM,IAAI,GAAG,IAAI;EACXyE,WAAW,GAAG,IAAI;EAClBhE,GAAG,GAAG;AACR,CAAC,GAAG,CAAC,CAAC,KAAK;EACT,IAAI,OAAOf,IAAI,KAAK,QAAQ,IAAI,eAAe,CAAC6C,IAAI,CAAC7C,IAAI,CAAC,EAAE;IAC1D,OAAO,MAAMrB,KAAA,CAAAwD,aAAA;MAAK6C,GAAG,EAAEhF,IAAK;MAACe,GAAG,EAAEA,GAAG,IAAI;IAAS,CAAE,CAAC;EACvD;EAEA,IAAI,OAAOf,IAAI,KAAK,UAAU,EAAE;IAC9B,MAAM8D,IAAI,GAAG9D,IAAI,CAAC,CAAC;IACnB,IAAIrB,KAAK,CAACsG,cAAc,CAACnB,IAAI,CAAC,EAAE;MAC9B,OAAO9D,IAAI;IACb;IACA,OAAO8D,IAAI;EACb;EAEA,IAAInF,KAAK,CAACsG,cAAc,CAACjF,IAAI,CAAC,IAAIkF,KAAK,CAACC,OAAO,CAACnF,IAAI,CAAC,EAAE;IACrD,OAAO,MAAMA,IAAI;EACnB;EAGA,IAAI;IACFA,IAAI,GAAGT,QAAQ,CAACS,IAAI,CAAC;IACrB,IACEM,IAAI,IACJb,gBAAgB,CAACa,IAAI,CAAC,IACtBA,IAAI,KAAK,SAAS,IAClB,EAAE2D,UAAU,CAAC3D,IAAI,CAAC,GAAG,CAAC,CAAC,IACvB,CAACN,IAAI,CAAC6D,QAAQ,CAACvD,IAAI,CAAC,EACpB;MACAN,IAAI,GAAI,GAAEA,IAAK,IAAGM,IAAK,EAAC;IAC1B;IACA,MAAM8E,GAAG,GAAG,CACVL,WAAW,CAACM,QAAQ,GAAGN,WAAW,CAACM,QAAQ,GAAGN,WAAW,EACzD/E,IAAI,CAAC;IACP,OAAOoF,GAAG,IAAIA,GAAG,CAAC1F,OAAO,GAAG0F,GAAG,CAAC1F,OAAO,GAAG0F,GAAG;EAC/C,CAAC,CAAC,OAAOE,CAAC,EAAE;IACVxG,YAAY,CAAE,SAAQkB,IAAK,kBAAiB,CAAC;IAC7C,OAAO,IAAI;EACb;AACF,CAAC;AAEDsB,IAAI,CAACiE,qBAAqB,GAAG,IAAI"}
1
+ {"version":3,"file":"Icon.js","names":["React","useContext","classnames","ErrorHandler","validateDOMAttributes","processChildren","extendPropsWithContext","Context","createSpacingClasses","createSkeletonClass","iconCase","DefaultIconSize","DefaultIconSizes","default","medium","ListDefaultIconSizes","ValidIconType","Icon","localProps","context","props","skeleton","icon","iconProp","size","wrapperParams","iconParams","alt","children","prepareIcon","IconContainer","prerenderIcon","createElement","Fragment","getIconNameFromComponent","name","String","test","calcSize","width","height","sizeAsInt","sizeAsString","nameParts","split","length","_ListDefaultIconSizes","_ListDefaultIconSizes2","lastPartOfIconName","reverse","potentialSize","filter","key","includes","elem","viewBox","parseFloat","exec","isNaN","_ListDefaultIconSizes3","_ListDefaultIconSizes4","_ListDefaultIconSizes5","_ListDefaultIconSizes6","_ListDefaultIconSizes7","_ListDefaultIconSizes8","value","potentialSizeAsString","reduce","acc","isCustomSize","params","prepareIconParams","_ref","rest","_objectWithoutProperties","_excluded","border","color","inheritColor","inherit_color","modifier","title","className","attributes","_excluded2","label","_objectSpread","role","replace","process","env","NODE_ENV","iconToRender","getIcon","defaultProps","listOfIcons","src","isValidElement","Array","isArray","mod","dnbIcons","e","_supportsSpacingProps"],"sources":["../../../../src/components/icon/Icon.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport classnames from 'classnames'\nimport { ErrorHandler } from '../../shared/error-helper'\nimport {\n validateDOMAttributes,\n processChildren,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport Context, { ContextProps } from '../../shared/Context'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport { createSkeletonClass } from '../skeleton/SkeletonHelper'\nimport { iconCase } from './IconHelpers'\nimport { SpacingProps } from '../../shared/types'\nimport { SkeletonShow } from '../Skeleton'\n\nexport const DefaultIconSize = 16\nexport const DefaultIconSizes = {\n // small: 8, // currently not in use\n default: 16,\n medium: 24,\n // large: 32 // currently not in use\n} as const\nexport const ListDefaultIconSizes: Array<\n [ValidIconType, ValidIconNumericSize]\n> = [\n ['default', 16],\n ['medium', 24],\n]\nexport const ValidIconType = [\n 'small', // 12px 0.75rem\n 'default', // 16px 1rem\n 'medium', // 24px 1.5rem\n 'large', // 32px 2rem\n 'x-large', // 40px 2.5rem\n 'xx-large', // 48px 3rem\n] as const\n\nexport type DefaultIconSizes = typeof DefaultIconSizes\nexport type ValidIconType = (typeof ValidIconType)[number]\nexport type ValidIconNumericSize = DefaultIconSizes[keyof DefaultIconSizes]\n\n/** For internal usage */\ntype IconType =\n | string\n | React.ReactElement<SVGElement>\n | ((props?: unknown) => JSX.Element)\n | false\n\n/** For external usage */\nexport type IconIcon = IconType | React.FC<unknown>\n\nexport type IconSize =\n | ValidIconNumericSize\n | `${ValidIconNumericSize | number}`\n | ValidIconType\n | 'auto'\n | 'basis'\n\nexport type IconColor =\n | string\n | number\n | { [key: string]: string | number }\n\nexport type IconProps = {\n /**\n * A React SVG Component or the icon name (in case we use `IconPrimary` or `dnb-icon-primary`).\n */\n icon?: IconIcon\n\n /**\n * The dimension of the icon. This will be the `viewBox` and represent `width` and `height`. Defaults to `16`. You can use `small`,`medium`, `large` or `auto`. Auto will enable that the icon size gets inherited by the parent HTML element if it provides a `font-size`.\n */\n size?: IconSize\n\n /**\n * The color can be any valid color property, such as Hex, RGB or preferable – any CSS variable from the <a href=\"/uilib/usage/customisation/colors\">colors table</a>, e.g. `var(--color-ocean-green)`. Default is no color, which means `--color-black-80`.\n */\n color?: IconColor\n\n /**\n * Defaults to `true`. Set to `false` if you do not want to inherit the color by `currentColor`.\n */\n inheritColor?: boolean\n\n /** @deprecated Use `inheritColor` instead */\n inherit_color?: boolean\n\n /**\n * The alternative label (text version) of the icon. Defaults to the imported icon name.\n */\n alt?: string\n\n /**\n * Use a title to provide extra information about the icon used.\n */\n title?: string\n\n /**\n * If set to `true`, an overlaying skeleton with animation will be shown.\n */\n skeleton?: SkeletonShow\n\n /**\n * Modifier class to define. Will result in: `dnb-icon--${modifier}`.\n */\n modifier?: string\n\n border?: boolean\n width?: `${IconSize}` | `${number}%` | number\n height?: `${IconSize}` | `${number}%` | number\n children?: IconIcon\n}\n\nexport type IconAllProps = IconProps &\n SpacingProps &\n Omit<React.HTMLProps<HTMLElement>, 'size' | 'children'>\n\nexport default function Icon(localProps: IconAllProps) {\n const context = useContext(Context)\n\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContext(\n localProps,\n {},\n { skeleton: context?.skeleton },\n context.Icon\n )\n\n // Todo: rewrite prepareIcon to hook\n const {\n icon: iconProp,\n size,\n wrapperParams,\n iconParams,\n alt,\n children,\n } = prepareIcon(props, context)\n const icon = iconProp ?? children\n\n if (!icon) {\n return null\n }\n\n const IconContainer = prerenderIcon({ icon, size, alt })\n\n // make sure we return an empty span if we couldn't get the icon\n if (!IconContainer) {\n return <></>\n }\n\n return (\n <span {...wrapperParams}>\n <IconContainer {...iconParams} />\n </span>\n )\n}\n\nexport function getIconNameFromComponent(icon: IconProps['icon']): string {\n const name = typeof icon === 'function' ? icon.name : String(icon)\n if (/^data:image\\//.test(name)) {\n return null\n }\n return name\n}\n\nexport function calcSize(props: IconProps) {\n const { icon, size, width, height } = props as Omit<\n IconProps,\n 'icon'\n > & { icon: IconType }\n\n let sizeAsInt: ValidIconNumericSize | -1 = null\n let sizeAsString = null\n\n // if there is no size, check if we can find the actual size in the name\n if (!size || size === DefaultIconSize) {\n // get the icon name - we use it for several things\n const name = getIconNameFromComponent(icon)\n\n const nameParts = String(name || '').split('_')\n\n if (nameParts.length > 1) {\n const lastPartOfIconName = nameParts.reverse()[0] as ValidIconType\n const potentialSize = ListDefaultIconSizes.filter(\n ([key]) => key === lastPartOfIconName\n )?.[0]?.[1]\n if (potentialSize) {\n sizeAsInt = potentialSize\n }\n if (ValidIconType.includes(lastPartOfIconName)) {\n sizeAsString = lastPartOfIconName\n }\n } else {\n if (typeof icon === 'function') {\n const elem = icon()\n if (elem.props) {\n let potentialSize: ValidIconNumericSize | -1 = null\n if (elem.props.width) {\n potentialSize = elem.props.width\n }\n if (!potentialSize && elem.props.viewBox) {\n potentialSize = parseFloat(\n /[0-9]+ [0-9]+ ([0-9]+)/.exec(elem.props.viewBox)[1]\n ) as ValidIconNumericSize // get the width\n }\n if (!isNaN(potentialSize)) {\n sizeAsInt = potentialSize\n }\n }\n }\n }\n }\n\n // if size is defined as a string, find the size number\n else if (typeof size === 'string' && !(parseFloat(size) > 0)) {\n sizeAsInt =\n ListDefaultIconSizes.filter(([key]) => key === size)?.[0]?.[1] ?? -1\n\n // or if the size is a default size defined as a string\n if (ValidIconType.includes(size as ValidIconType)) {\n sizeAsString = size\n }\n }\n\n // check if the size is given as a number, and if it's a default size\n else if (parseFloat(String(size)) > 0) {\n sizeAsInt =\n ListDefaultIconSizes.filter(\n ([key, value]) => key && value === parseFloat(String(size))\n )?.[0]?.[1] ?? -1\n\n // has custom size\n if (sizeAsInt === -1) {\n sizeAsInt = parseFloat(String(size)) as ValidIconNumericSize\n sizeAsString = 'custom-size'\n }\n }\n\n // check if the sizeAsInt is a default size - and no sizeAsString exists yet\n if (!sizeAsString && sizeAsInt > 0) {\n const potentialSizeAsString = ListDefaultIconSizes.reduce(\n (acc, [key, value]) => {\n if (key && value === sizeAsInt) {\n return key\n }\n return acc\n },\n null\n )\n\n if (potentialSizeAsString) {\n sizeAsString = potentialSizeAsString\n }\n }\n\n // define all the svg parameters\n const { sizeAsString: isCustomSize, params: iconParams } =\n prepareIconParams({\n sizeAsString,\n sizeAsInt,\n size,\n width,\n height,\n })\n\n if (isCustomSize) {\n sizeAsString = isCustomSize\n }\n\n if (!(sizeAsInt > 0)) {\n sizeAsInt = DefaultIconSize\n }\n\n if (size === 'auto') {\n iconParams.width = '100%'\n iconParams.height = '100%'\n sizeAsString = 'auto'\n }\n\n return {\n iconParams,\n sizeAsInt,\n sizeAsString,\n }\n}\n\nfunction prepareIconParams({\n sizeAsString,\n ...rest\n}: Omit<IconProps, 'icon'> & {\n sizeAsString?: ValidIconType | 'custom-size'\n sizeAsInt?: ValidIconNumericSize | -1\n}) {\n const { size, width, height, sizeAsInt } = rest\n const params: {\n height?: IconProps['height']\n width?: IconProps['width']\n color?: IconProps['color']\n } = {}\n\n if (!sizeAsString && !(sizeAsInt > 0) && parseFloat(String(size)) > -1) {\n params.width = params.height = parseFloat(String(size))\n } else if (sizeAsString === 'custom-size') {\n params.width = params.height = parseFloat(String(sizeAsInt))\n }\n if (parseFloat(String(width)) > -1) {\n sizeAsString = 'custom-size'\n params.width = parseFloat(String(width))\n }\n if (parseFloat(String(height)) > -1) {\n sizeAsString = 'custom-size'\n params.height = parseFloat(String(height))\n }\n\n validateDOMAttributes({}, params)\n\n return { params, sizeAsString }\n}\n\nexport function prepareIcon(props: IconAllProps, context: ContextProps) {\n const {\n icon,\n size,\n width,\n height,\n border,\n color,\n inheritColor,\n inherit_color,\n modifier,\n alt,\n title,\n skeleton,\n className,\n ...attributes\n } = props\n\n const { sizeAsString, iconParams } = calcSize({\n icon,\n size,\n width,\n height,\n })\n\n if (color) {\n iconParams.color = color\n }\n\n const label = icon ? getIconNameFromComponent(icon) : null\n\n // some wrapper params\n // also used for code markup simulation\n const wrapperParams = validateDOMAttributes(props, {\n role: alt ? 'img' : 'presentation',\n alt, // in case the image don't shows up (because we define the role to be img)\n 'aria-label':\n label && !label.includes('default')\n ? label.replace(/_/g, ' ') + ' icon'\n : null, // for screen readers only\n title, // to show on hover, if defined\n ...attributes,\n })\n if (!alt && typeof wrapperParams['aria-hidden'] === 'undefined') {\n wrapperParams['aria-hidden'] = true\n }\n if (wrapperParams['aria-hidden']) {\n if (\n !wrapperParams['data-testid'] &&\n typeof process !== 'undefined' &&\n process.env.NODE_ENV === 'test'\n ) {\n wrapperParams['data-testid'] = wrapperParams['aria-label']\n }\n delete wrapperParams['aria-label']\n }\n\n wrapperParams.className = classnames(\n 'dnb-icon',\n modifier && `dnb-icon--${modifier}`,\n border && 'dnb-icon--border',\n (inheritColor ?? inherit_color) !== false && 'dnb-icon--inherit-color',\n sizeAsString ? `dnb-icon--${sizeAsString}` : 'dnb-icon--default',\n createSkeletonClass(null, skeleton, context),\n createSpacingClasses(props),\n className\n )\n\n let iconToRender = getIcon(props)\n\n if (iconToRender && typeof iconToRender.defaultProps !== 'undefined') {\n iconToRender = React.createElement(\n iconToRender,\n validateDOMAttributes(\n {},\n {\n color,\n icon,\n size,\n width,\n height,\n }\n )\n )\n }\n\n return {\n ...props,\n icon: iconToRender,\n alt,\n iconParams,\n wrapperParams,\n }\n}\n\nexport function prerenderIcon(\n props: IconProps & {\n listOfIcons?: Record<string, IconIcon>\n }\n) {\n const { size = null, listOfIcons = null, alt = null } = props\n let { icon } = props as Omit<IconProps, 'icon'> & { icon: IconType }\n\n if (typeof icon === 'string' && /^data:image\\//.test(icon)) {\n return () => <img src={String(icon)} alt={alt || 'no-alt'} />\n }\n\n if (typeof icon === 'function') {\n const elem = icon()\n if (React.isValidElement(elem)) {\n return icon\n }\n return elem\n }\n\n if (React.isValidElement(icon) || Array.isArray(icon)) {\n return () => icon\n }\n\n // For UMD/ dynamic import of icons\n try {\n icon = iconCase(icon)\n if (\n size &&\n DefaultIconSizes[size] &&\n size !== 'basis' &&\n size !== 'default' &&\n !(parseFloat(String(size)) > 0) &&\n !icon.includes(size as ValidIconType)\n ) {\n icon = `${icon}_${size}`\n }\n const mod = (\n listOfIcons.dnbIcons ? listOfIcons.dnbIcons : listOfIcons\n )[icon]\n return mod && mod.default ? mod.default : mod\n } catch (e) {\n ErrorHandler(`Icon '${icon}' did not exist!`)\n return null\n }\n}\n\nfunction getIcon(props) {\n if (props.icon) {\n return props.icon\n }\n return processChildren(props)\n}\n\nIcon._supportsSpacingProps = true\n"],"mappings":"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"}
@@ -1 +1,2 @@
1
- export function iconCase(name: any): any;
1
+ import { IconIcon } from './Icon';
2
+ export declare const iconCase: (name: IconIcon) => string;
@@ -1 +1 @@
1
- export const iconCase = name => name.replace(/((?!^)[A-Z])/g, '_$1').toLowerCase().replace(/^[0-9]/g, '$1').replace(/[^a-z0-9_]/gi, '_');
1
+ export const iconCase = name => String(name).replace(/((?!^)[A-Z])/g, '_$1').toLowerCase().replace(/^[0-9]/g, '$1').replace(/[^a-z0-9_]/gi, '_');
@@ -1 +1 @@
1
- {"version":3,"file":"IconHelpers.js","names":["iconCase","name","replace","toLowerCase"],"sources":["../../../../src/components/icon/IconHelpers.js"],"sourcesContent":["// to replace icon names\nexport const iconCase = (name) =>\n name\n .replace(/((?!^)[A-Z])/g, '_$1')\n .toLowerCase()\n .replace(/^[0-9]/g, '$1')\n .replace(/[^a-z0-9_]/gi, '_')\n"],"mappings":"AACA,OAAO,MAAMA,QAAQ,GAAIC,IAAI,IAC3BA,IAAI,CACDC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAC/BC,WAAW,CAAC,CAAC,CACbD,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CACxBA,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC"}
1
+ {"version":3,"file":"IconHelpers.js","names":["iconCase","name","String","replace","toLowerCase"],"sources":["../../../../src/components/icon/IconHelpers.ts"],"sourcesContent":["import { IconIcon } from './Icon'\n\n// to replace icon names\nexport const iconCase = (name: IconIcon) =>\n String(name)\n .replace(/((?!^)[A-Z])/g, '_$1')\n .toLowerCase()\n .replace(/^[0-9]/g, '$1')\n .replace(/[^a-z0-9_]/gi, '_')\n"],"mappings":"AAGA,OAAO,MAAMA,QAAQ,GAAIC,IAAc,IACrCC,MAAM,CAACD,IAAI,CAAC,CACTE,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAC/BC,WAAW,CAAC,CAAC,CACbD,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CACxBA,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC"}
@@ -1,3 +1,3 @@
1
- export default IconPrimary;
2
- export * from "../icon-primary/IconPrimary";
3
1
  import IconPrimary from '../icon-primary/IconPrimary';
2
+ export default IconPrimary;
3
+ export * from '../icon-primary/IconPrimary';
@@ -1 +1 @@
1
- {"version":3,"file":"IconPrimary.js","names":["IconPrimary"],"sources":["../../../../src/components/icon/IconPrimary.js"],"sourcesContent":["import IconPrimary from '../icon-primary/IconPrimary'\nexport default IconPrimary\nexport * from '../icon-primary/IconPrimary'\n"],"mappings":"AAAA,OAAOA,WAAW,MAAM,6BAA6B;AACrD,eAAeA,WAAW;AAC1B,cAAc,6BAA6B"}
1
+ {"version":3,"file":"IconPrimary.js","names":["IconPrimary"],"sources":["../../../../src/components/icon/IconPrimary.ts"],"sourcesContent":["import IconPrimary from '../icon-primary/IconPrimary'\nexport default IconPrimary\nexport * from '../icon-primary/IconPrimary'\n"],"mappings":"AAAA,OAAOA,WAAW,MAAM,6BAA6B;AACrD,eAAeA,WAAW;AAC1B,cAAc,6BAA6B"}
@@ -1,12 +1,9 @@
1
- import * as React from 'react';
2
- import type { IconProps } from '../Icon';
3
- export interface IconPrimaryProps
4
- extends IconProps,
5
- Omit<React.HTMLProps<HTMLElement>, 'size' | 'ref'> {}
6
- export default class IconPrimary extends React.Component<
7
- IconPrimaryProps,
8
- any
9
- > {
10
- static defaultProps: object;
11
- render(): JSX.Element;
1
+ import { IconAllProps, IconProps } from '../icon/Icon';
2
+ export * from '../icon/Icon';
3
+ export type IconPrimaryProps = IconProps;
4
+ export type IconPrimaryAllProps = IconAllProps;
5
+ declare function IconPrimary(localProps: IconAllProps): import("react/jsx-runtime").JSX.Element;
6
+ declare namespace IconPrimary {
7
+ var _supportsSpacingProps: boolean;
12
8
  }
9
+ export default IconPrimary;
@@ -3,42 +3,36 @@
3
3
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
4
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
5
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
- import React from 'react';
6
+ import React, { useContext } from 'react';
7
7
  import Context from '../../shared/Context';
8
- import { extendPropsWithContextInClassComponent } from '../../shared/component-helper';
9
- import DefaultIcon, { iconPropTypes, DefaultIconSize, prerenderIcon, prepareIcon } from '../icon/Icon';
8
+ import { extendPropsWithContext } from '../../shared/component-helper';
9
+ import { prerenderIcon, prepareIcon } from '../icon/Icon';
10
10
  import * as primary_icons from '../../icons/dnb/primary_icons';
11
11
  import * as primary_icons_medium from '../../icons/dnb/primary_icons_medium';
12
+ export * from '../icon/Icon';
12
13
  const icons = _objectSpread(_objectSpread({}, primary_icons), primary_icons_medium);
13
- export { DefaultIconSize };
14
- export default class IconPrimary extends React.PureComponent {
15
- static getIcon(props) {
16
- return DefaultIcon.getIcon(props);
17
- }
18
- render() {
19
- var _this$context;
20
- const props = extendPropsWithContextInClassComponent(this.props, IconPrimary.defaultProps, {
21
- skeleton: (_this$context = this.context) === null || _this$context === void 0 ? void 0 : _this$context.skeleton
22
- }, this.context.Icon, this.context.IconPrimary);
23
- const {
24
- icon,
25
- size,
26
- wrapperParams,
27
- iconParams,
28
- alt
29
- } = prepareIcon(props, this.context);
30
- const IconContainer = prerenderIcon({
31
- icon,
32
- size,
33
- alt,
34
- listOfIcons: icons
35
- });
36
- if (!IconContainer) return React.createElement(React.Fragment, null);
37
- return React.createElement("span", wrapperParams, React.createElement(IconContainer, iconParams));
14
+ export default function IconPrimary(localProps) {
15
+ const context = useContext(Context);
16
+ const props = extendPropsWithContext(localProps, {}, {
17
+ skeleton: context === null || context === void 0 ? void 0 : context.skeleton
18
+ }, context.Icon, context.IconPrimary);
19
+ const {
20
+ icon,
21
+ size,
22
+ wrapperParams,
23
+ iconParams,
24
+ alt
25
+ } = prepareIcon(props, context);
26
+ const IconContainer = prerenderIcon({
27
+ icon,
28
+ size,
29
+ alt,
30
+ listOfIcons: icons
31
+ });
32
+ if (!IconContainer) {
33
+ return React.createElement(React.Fragment, null);
38
34
  }
35
+ return React.createElement("span", wrapperParams, React.createElement(IconContainer, iconParams));
39
36
  }
40
- _defineProperty(IconPrimary, "contextType", Context);
41
- _defineProperty(IconPrimary, "defaultProps", _objectSpread({}, DefaultIcon.defaultProps));
42
- process.env.NODE_ENV !== "production" ? IconPrimary.propTypes = _objectSpread({}, iconPropTypes) : void 0;
43
37
  IconPrimary._supportsSpacingProps = true;
44
38
  //# sourceMappingURL=IconPrimary.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IconPrimary.js","names":["React","Context","extendPropsWithContextInClassComponent","DefaultIcon","iconPropTypes","DefaultIconSize","prerenderIcon","prepareIcon","primary_icons","primary_icons_medium","icons","_objectSpread","IconPrimary","PureComponent","getIcon","props","render","_this$context","defaultProps","skeleton","context","Icon","icon","size","wrapperParams","iconParams","alt","IconContainer","listOfIcons","createElement","Fragment","_defineProperty","process","env","NODE_ENV","propTypes","_supportsSpacingProps"],"sources":["../../../../src/components/icon-primary/IconPrimary.js"],"sourcesContent":["/**\n * Web Icon Component\n *\n * This is a legacy component.\n * For referencing while developing new features, please use a Functional component.\n */\n\nimport React from 'react'\n// eslint-disable-next-line no-unused-vars\nimport PropTypes from 'prop-types' // Is needed because of ts types\nimport Context from '../../shared/Context'\nimport { extendPropsWithContextInClassComponent } from '../../shared/component-helper'\nimport DefaultIcon, {\n iconPropTypes,\n DefaultIconSize,\n prerenderIcon,\n prepareIcon,\n} from '../icon/Icon'\n\n// NB: The path reflects the rollup.config.js -> external: '../../icons/dnb/primary_icons'\nimport * as primary_icons from '../../icons/dnb/primary_icons'\nimport * as primary_icons_medium from '../../icons/dnb/primary_icons_medium'\n\nconst icons = { ...primary_icons, ...primary_icons_medium }\n\nexport { DefaultIconSize }\n\nexport default class IconPrimary extends React.PureComponent {\n static contextType = Context\n\n static propTypes = {\n /**\n * Use spread, so generateTypes.js makes a valid copy to create the types\n */\n ...iconPropTypes,\n }\n static defaultProps = { ...DefaultIcon.defaultProps }\n\n static getIcon(props) {\n return DefaultIcon.getIcon(props)\n }\n\n render() {\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContextInClassComponent(\n this.props,\n IconPrimary.defaultProps,\n { skeleton: this.context?.skeleton },\n this.context.Icon,\n this.context.IconPrimary\n )\n\n const { icon, size, wrapperParams, iconParams, alt } = prepareIcon(\n props,\n this.context\n )\n\n const IconContainer = prerenderIcon({\n icon,\n size,\n alt,\n listOfIcons: icons,\n })\n\n if (!IconContainer) return <></>\n\n return (\n <span {...wrapperParams}>\n <IconContainer {...iconParams} />\n </span>\n )\n }\n}\n\nIconPrimary._supportsSpacingProps = true\n"],"mappings":";;;;;AAOA,OAAOA,KAAK,MAAM,OAAO;AAGzB,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,SAASC,sCAAsC,QAAQ,+BAA+B;AACtF,OAAOC,WAAW,IAChBC,aAAa,EACbC,eAAe,EACfC,aAAa,EACbC,WAAW,QACN,cAAc;AAGrB,OAAO,KAAKC,aAAa,MAAM,+BAA+B;AAC9D,OAAO,KAAKC,oBAAoB,MAAM,sCAAsC;AAE5E,MAAMC,KAAK,GAAAC,aAAA,CAAAA,aAAA,KAAQH,aAAa,GAAKC,oBAAoB,CAAE;AAE3D,SAASJ,eAAe;AAExB,eAAe,MAAMO,WAAW,SAASZ,KAAK,CAACa,aAAa,CAAC;EAW3D,OAAOC,OAAOA,CAACC,KAAK,EAAE;IACpB,OAAOZ,WAAW,CAACW,OAAO,CAACC,KAAK,CAAC;EACnC;EAEAC,MAAMA,CAAA,EAAG;IAAA,IAAAC,aAAA;IAEP,MAAMF,KAAK,GAAGb,sCAAsC,CAClD,IAAI,CAACa,KAAK,EACVH,WAAW,CAACM,YAAY,EACxB;MAAEC,QAAQ,GAAAF,aAAA,GAAE,IAAI,CAACG,OAAO,cAAAH,aAAA,uBAAZA,aAAA,CAAcE;IAAS,CAAC,EACpC,IAAI,CAACC,OAAO,CAACC,IAAI,EACjB,IAAI,CAACD,OAAO,CAACR,WACf,CAAC;IAED,MAAM;MAAEU,IAAI;MAAEC,IAAI;MAAEC,aAAa;MAAEC,UAAU;MAAEC;IAAI,CAAC,GAAGnB,WAAW,CAChEQ,KAAK,EACL,IAAI,CAACK,OACP,CAAC;IAED,MAAMO,aAAa,GAAGrB,aAAa,CAAC;MAClCgB,IAAI;MACJC,IAAI;MACJG,GAAG;MACHE,WAAW,EAAElB;IACf,CAAC,CAAC;IAEF,IAAI,CAACiB,aAAa,EAAE,OAAO3B,KAAA,CAAA6B,aAAA,CAAA7B,KAAA,CAAA8B,QAAA,MAAI,CAAC;IAEhC,OACE9B,KAAA,CAAA6B,aAAA,SAAUL,aAAa,EACrBxB,KAAA,CAAA6B,aAAA,CAACF,aAAa,EAAKF,UAAa,CAC5B,CAAC;EAEX;AACF;AAACM,eAAA,CA7CoBnB,WAAW,iBACTX,OAAO;AAAA8B,eAAA,CADTnB,WAAW,kBAAAD,aAAA,KASHR,WAAW,CAACe,YAAY;AAAAc,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAThCtB,WAAW,CAGvBuB,SAAS,GAAAxB,aAAA,KAIXP,aAAa;AAwCpBQ,WAAW,CAACwB,qBAAqB,GAAG,IAAI"}
1
+ {"version":3,"file":"IconPrimary.js","names":["React","useContext","Context","extendPropsWithContext","prerenderIcon","prepareIcon","primary_icons","primary_icons_medium","icons","_objectSpread","IconPrimary","localProps","context","props","skeleton","Icon","icon","size","wrapperParams","iconParams","alt","IconContainer","listOfIcons","createElement","Fragment","_supportsSpacingProps"],"sources":["../../../../src/components/icon-primary/IconPrimary.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport Context from '../../shared/Context'\nimport { extendPropsWithContext } from '../../shared/component-helper'\nimport {\n prerenderIcon,\n prepareIcon,\n IconAllProps,\n IconProps,\n} from '../icon/Icon'\n\n// NB: The path reflects the rollup.config.js -> external: '../../icons/dnb/primary_icons'\nimport * as primary_icons from '../../icons/dnb/primary_icons'\nimport * as primary_icons_medium from '../../icons/dnb/primary_icons_medium'\n\nexport * from '../icon/Icon'\n\nexport type IconPrimaryProps = IconProps\nexport type IconPrimaryAllProps = IconAllProps\n\nconst icons = { ...primary_icons, ...primary_icons_medium }\n\nexport default function IconPrimary(localProps: IconAllProps) {\n const context = useContext(Context)\n\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContext(\n localProps,\n {},\n { skeleton: context?.skeleton },\n context.Icon,\n context.IconPrimary\n )\n\n const { icon, size, wrapperParams, iconParams, alt } = prepareIcon(\n props,\n context\n )\n\n const IconContainer = prerenderIcon({\n icon,\n size,\n alt,\n listOfIcons: icons,\n })\n\n if (!IconContainer) {\n return <></>\n }\n\n return (\n <span {...wrapperParams}>\n <IconContainer {...iconParams} />\n </span>\n )\n}\n\nIconPrimary._supportsSpacingProps = true\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,SAASC,sBAAsB,QAAQ,+BAA+B;AACtE,SACEC,aAAa,EACbC,WAAW,QAGN,cAAc;AAGrB,OAAO,KAAKC,aAAa,MAAM,+BAA+B;AAC9D,OAAO,KAAKC,oBAAoB,MAAM,sCAAsC;AAE5E,cAAc,cAAc;AAK5B,MAAMC,KAAK,GAAAC,aAAA,CAAAA,aAAA,KAAQH,aAAa,GAAKC,oBAAoB,CAAE;AAE3D,eAAe,SAASG,WAAWA,CAACC,UAAwB,EAAE;EAC5D,MAAMC,OAAO,GAAGX,UAAU,CAACC,OAAO,CAAC;EAGnC,MAAMW,KAAK,GAAGV,sBAAsB,CAClCQ,UAAU,EACV,CAAC,CAAC,EACF;IAAEG,QAAQ,EAAEF,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEE;EAAS,CAAC,EAC/BF,OAAO,CAACG,IAAI,EACZH,OAAO,CAACF,WACV,CAAC;EAED,MAAM;IAAEM,IAAI;IAAEC,IAAI;IAAEC,aAAa;IAAEC,UAAU;IAAEC;EAAI,CAAC,GAAGf,WAAW,CAChEQ,KAAK,EACLD,OACF,CAAC;EAED,MAAMS,aAAa,GAAGjB,aAAa,CAAC;IAClCY,IAAI;IACJC,IAAI;IACJG,GAAG;IACHE,WAAW,EAAEd;EACf,CAAC,CAAC;EAEF,IAAI,CAACa,aAAa,EAAE;IAClB,OAAOrB,KAAA,CAAAuB,aAAA,CAAAvB,KAAA,CAAAwB,QAAA,MAAI,CAAC;EACd;EAEA,OACExB,KAAA,CAAAuB,aAAA,SAAUL,aAAa,EACrBlB,KAAA,CAAAuB,aAAA,CAACF,aAAa,EAAKF,UAAa,CAC5B,CAAC;AAEX;AAEAT,WAAW,CAACe,qBAAqB,GAAG,IAAI"}