@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,152 +20,106 @@ 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(_ref => {
73
+ const potentialSize = (_ListDefaultIconSizes = ListDefaultIconSizes.filter(_ref => {
113
74
  let [key] = _ref;
114
75
  return key === lastPartOfIconName;
115
- }).reduce((acc, _ref2) => {
116
- let [key, value] = _ref2;
117
- return key && value;
118
- }, null);
76
+ })) === null || _ListDefaultIconSizes === void 0 ? void 0 : (_ListDefaultIconSizes2 = _ListDefaultIconSizes[0]) === null || _ListDefaultIconSizes2 === void 0 ? void 0 : _ListDefaultIconSizes2[1];
119
77
  if (potentialSize) {
120
78
  sizeAsInt = potentialSize;
121
79
  }
122
- if (ValidIconSizes.includes(lastPartOfIconName)) {
80
+ if (ValidIconType.includes(lastPartOfIconName)) {
123
81
  sizeAsString = lastPartOfIconName;
124
82
  }
125
83
  } else {
126
84
  if (typeof icon === 'function') {
127
85
  const elem = icon();
128
86
  if (elem.props) {
129
- let potentialSize = -1;
87
+ let potentialSize = null;
130
88
  if (elem.props.width) {
131
89
  potentialSize = elem.props.width;
132
90
  }
133
91
  if (!potentialSize && elem.props.viewBox) {
134
- potentialSize = /[0-9]+ [0-9]+ ([0-9]+)/.exec(elem.props.viewBox)[1];
92
+ potentialSize = parseFloat(/[0-9]+ [0-9]+ ([0-9]+)/.exec(elem.props.viewBox)[1]);
135
93
  }
136
- if (potentialSize) {
94
+ if (!isNaN(potentialSize)) {
137
95
  sizeAsInt = potentialSize;
138
96
  }
139
97
  }
140
98
  }
141
99
  }
142
100
  } else if (typeof size === 'string' && !(parseFloat(size) > 0)) {
143
- sizeAsInt = ListDefaultIconSizes.filter(_ref3 => {
144
- let [key] = _ref3;
101
+ var _ListDefaultIconSizes3, _ListDefaultIconSizes4, _ListDefaultIconSizes5;
102
+ sizeAsInt = (_ListDefaultIconSizes3 = (_ListDefaultIconSizes4 = ListDefaultIconSizes.filter(_ref2 => {
103
+ let [key] = _ref2;
145
104
  return key === size;
146
- }).reduce((acc, _ref4) => {
147
- let [key, value] = _ref4;
148
- return key && value;
149
- }, -1);
150
- if (ValidIconSizes.includes(size)) {
105
+ })) === null || _ListDefaultIconSizes4 === void 0 ? void 0 : (_ListDefaultIconSizes5 = _ListDefaultIconSizes4[0]) === null || _ListDefaultIconSizes5 === void 0 ? void 0 : _ListDefaultIconSizes5[1]) !== null && _ListDefaultIconSizes3 !== void 0 ? _ListDefaultIconSizes3 : -1;
106
+ if (ValidIconType.includes(size)) {
151
107
  sizeAsString = size;
152
108
  }
153
- } else if (parseFloat(size) > 0) {
154
- sizeAsInt = ListDefaultIconSizes.filter(_ref5 => {
155
- let [key, value] = _ref5;
156
- return key && value === parseFloat(size);
157
- }).reduce((acc, _ref6) => {
158
- let [key, value] = _ref6;
159
- if (key && value) return value;
160
- return acc;
161
- }, -1);
109
+ } else if (parseFloat(String(size)) > 0) {
110
+ var _ListDefaultIconSizes6, _ListDefaultIconSizes7, _ListDefaultIconSizes8;
111
+ sizeAsInt = (_ListDefaultIconSizes6 = (_ListDefaultIconSizes7 = ListDefaultIconSizes.filter(_ref3 => {
112
+ let [key, value] = _ref3;
113
+ return key && value === parseFloat(String(size));
114
+ })) === null || _ListDefaultIconSizes7 === void 0 ? void 0 : (_ListDefaultIconSizes8 = _ListDefaultIconSizes7[0]) === null || _ListDefaultIconSizes8 === void 0 ? void 0 : _ListDefaultIconSizes8[1]) !== null && _ListDefaultIconSizes6 !== void 0 ? _ListDefaultIconSizes6 : -1;
162
115
  if (sizeAsInt === -1) {
163
- sizeAsInt = parseFloat(size);
116
+ sizeAsInt = parseFloat(String(size));
164
117
  sizeAsString = 'custom-size';
165
118
  }
166
119
  }
167
120
  if (!sizeAsString && sizeAsInt > 0) {
168
- const potentialSizeAsString = ListDefaultIconSizes.reduce((acc, _ref7) => {
169
- let [key, value] = _ref7;
121
+ const potentialSizeAsString = ListDefaultIconSizes.reduce((acc, _ref4) => {
122
+ let [key, value] = _ref4;
170
123
  if (key && value === sizeAsInt) {
171
124
  return key;
172
125
  }
@@ -202,12 +155,12 @@ export const calcSize = props => {
202
155
  sizeAsInt,
203
156
  sizeAsString
204
157
  };
205
- };
206
- const prepareIconParams = _ref8 => {
158
+ }
159
+ function prepareIconParams(_ref5) {
207
160
  let {
208
161
  sizeAsString
209
- } = _ref8,
210
- rest = _objectWithoutProperties(_ref8, _excluded);
162
+ } = _ref5,
163
+ rest = _objectWithoutProperties(_ref5, _excluded);
211
164
  const {
212
165
  size,
213
166
  width,
@@ -215,26 +168,26 @@ const prepareIconParams = _ref8 => {
215
168
  sizeAsInt
216
169
  } = rest;
217
170
  const params = {};
218
- if (!sizeAsString && !(sizeAsInt > 0) && parseFloat(size) > -1) {
219
- params.width = params.height = parseFloat(size);
171
+ if (!sizeAsString && !(sizeAsInt > 0) && parseFloat(String(size)) > -1) {
172
+ params.width = params.height = parseFloat(String(size));
220
173
  } else if (sizeAsString === 'custom-size') {
221
- params.width = params.height = parseFloat(sizeAsInt);
174
+ params.width = params.height = parseFloat(String(sizeAsInt));
222
175
  }
223
- if (parseFloat(width) > -1) {
176
+ if (parseFloat(String(width)) > -1) {
224
177
  sizeAsString = 'custom-size';
225
- params.width = parseFloat(width);
178
+ params.width = parseFloat(String(width));
226
179
  }
227
- if (parseFloat(height) > -1) {
180
+ if (parseFloat(String(height)) > -1) {
228
181
  sizeAsString = 'custom-size';
229
- params.height = parseFloat(height);
182
+ params.height = parseFloat(String(height));
230
183
  }
231
184
  validateDOMAttributes({}, params);
232
185
  return {
233
186
  params,
234
187
  sizeAsString
235
188
  };
236
- };
237
- export const prepareIcon = (props, context) => {
189
+ }
190
+ export function prepareIcon(props, context) {
238
191
  const {
239
192
  icon,
240
193
  size,
@@ -242,6 +195,7 @@ export const prepareIcon = (props, context) => {
242
195
  height,
243
196
  border,
244
197
  color,
198
+ inheritColor,
245
199
  inherit_color,
246
200
  modifier,
247
201
  alt,
@@ -278,8 +232,8 @@ export const prepareIcon = (props, context) => {
278
232
  }
279
233
  delete wrapperParams['aria-label'];
280
234
  }
281
- 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');
282
- let iconToRender = Icon.getIcon(props);
235
+ 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');
236
+ let iconToRender = getIcon(props);
283
237
  if (iconToRender && typeof iconToRender.defaultProps !== 'undefined') {
284
238
  iconToRender = React.createElement(iconToRender, validateDOMAttributes({}, {
285
239
  color,
@@ -295,17 +249,19 @@ export const prepareIcon = (props, context) => {
295
249
  iconParams,
296
250
  wrapperParams
297
251
  });
298
- };
299
- export const prerenderIcon = function () {
300
- let {
301
- icon,
252
+ }
253
+ export function prerenderIcon(props) {
254
+ const {
302
255
  size = null,
303
256
  listOfIcons = null,
304
257
  alt = null
305
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
258
+ } = props;
259
+ let {
260
+ icon
261
+ } = props;
306
262
  if (typeof icon === 'string' && /^data:image\//.test(icon)) {
307
263
  return () => React.createElement("img", {
308
- src: icon,
264
+ src: String(icon),
309
265
  alt: alt || 'no-alt'
310
266
  });
311
267
  }
@@ -321,7 +277,7 @@ export const prerenderIcon = function () {
321
277
  }
322
278
  try {
323
279
  icon = iconCase(icon);
324
- if (size && DefaultIconSizes[size] && size !== 'default' && !(parseFloat(size) > 0) && !icon.includes(size)) {
280
+ if (size && DefaultIconSizes[size] && size !== 'basis' && size !== 'default' && !(parseFloat(String(size)) > 0) && !icon.includes(size)) {
325
281
  icon = `${icon}_${size}`;
326
282
  }
327
283
  const mod = (listOfIcons.dnbIcons ? listOfIcons.dnbIcons : listOfIcons)[icon];
@@ -330,6 +286,12 @@ export const prerenderIcon = function () {
330
286
  ErrorHandler(`Icon '${icon}' did not exist!`);
331
287
  return null;
332
288
  }
333
- };
289
+ }
290
+ function getIcon(props) {
291
+ if (props.icon) {
292
+ return props.icon;
293
+ }
294
+ return processChildren(props);
295
+ }
334
296
  Icon._supportsSpacingProps = true;
335
297
  //# 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","_ref","key","reduce","acc","_ref2","value","includes","elem","viewBox","exec","parseFloat","_ref3","_ref4","_ref5","_ref6","potentialSizeAsString","_ref7","isCustomSize","params","prepareIconParams","_ref8","rest","_objectWithoutProperties","_excluded","_excluded2","label","role","replace","iconToRender","listOfIcons","arguments","undefined","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":"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"}
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","_ref","key","includes","elem","viewBox","parseFloat","exec","isNaN","_ListDefaultIconSizes3","_ListDefaultIconSizes4","_ListDefaultIconSizes5","_ref2","_ListDefaultIconSizes6","_ListDefaultIconSizes7","_ListDefaultIconSizes8","_ref3","value","potentialSizeAsString","reduce","acc","_ref4","isCustomSize","params","prepareIconParams","_ref5","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"}