@dnb/eufemia 9.27.0 → 9.30.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 (388) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/cjs/components/Badge.d.ts +3 -0
  3. package/cjs/components/{slider/web-component.js → Badge.js} +6 -9
  4. package/cjs/components/autocomplete/Autocomplete.js +14 -2
  5. package/cjs/components/autocomplete/style/_autocomplete.scss +17 -1
  6. package/cjs/components/autocomplete/style/dnb-autocomplete.css +36 -3
  7. package/cjs/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  8. package/cjs/components/avatar/style/_avatar.scss +1 -0
  9. package/cjs/components/avatar/style/dnb-avatar.css +1 -0
  10. package/cjs/components/avatar/style/dnb-avatar.min.css +1 -1
  11. package/cjs/components/badge/Badge.d.ts +58 -0
  12. package/cjs/components/badge/Badge.js +124 -0
  13. package/cjs/components/badge/index.d.ts +8 -0
  14. package/cjs/components/badge/index.js +52 -0
  15. package/cjs/components/badge/style/_badge.scss +74 -0
  16. package/cjs/components/badge/style/dnb-badge.css +151 -0
  17. package/cjs/components/badge/style/dnb-badge.min.css +1 -0
  18. package/cjs/components/badge/style/dnb-badge.scss +12 -0
  19. package/cjs/components/badge/style/index.d.ts +6 -0
  20. package/cjs/components/badge/style/index.js +3 -0
  21. package/cjs/components/badge/style/themes/dnb-badge-theme-ui.css +21 -0
  22. package/cjs/components/badge/style/themes/dnb-badge-theme-ui.min.css +1 -0
  23. package/cjs/components/badge/style/themes/dnb-badge-theme-ui.scss +17 -0
  24. package/cjs/components/badge/style/themes/ui.d.ts +1 -0
  25. package/cjs/components/badge/style/themes/ui.js +3 -0
  26. package/cjs/components/badge/style.d.ts +1 -0
  27. package/cjs/components/badge/style.js +3 -0
  28. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.css +20 -0
  29. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.min.css +2 -2
  30. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.scss +8 -0
  31. package/cjs/components/dialog/style/dnb-dialog.css +12 -19
  32. package/cjs/components/dialog/style/dnb-dialog.min.css +1 -1
  33. package/cjs/components/dialog/style/themes/dnb-dialog-theme-ui.css +0 -2
  34. package/cjs/components/dialog/style/themes/dnb-dialog-theme-ui.min.css +1 -1
  35. package/cjs/components/dialog/style/themes/dnb-dialog-theme-ui.scss +0 -7
  36. package/cjs/components/drawer/DrawerContent.js +7 -1
  37. package/cjs/components/drawer/style/_drawer.scss +6 -13
  38. package/cjs/components/drawer/style/dnb-drawer.css +21 -31
  39. package/cjs/components/drawer/style/dnb-drawer.min.css +1 -1
  40. package/cjs/components/drawer/style/themes/dnb-drawer-theme-ui.css +0 -2
  41. package/cjs/components/drawer/style/themes/dnb-drawer-theme-ui.min.css +1 -1
  42. package/cjs/components/drawer/style/themes/dnb-drawer-theme-ui.scss +0 -7
  43. package/cjs/components/form-row/FormRow.js +9 -8
  44. package/cjs/components/form-row/FormRowHelpers.d.ts +1 -0
  45. package/cjs/components/form-row/FormRowHelpers.js +16 -2
  46. package/cjs/components/index.d.ts +2 -1
  47. package/cjs/components/index.js +8 -0
  48. package/cjs/components/lib.d.ts +3 -1
  49. package/cjs/components/lib.js +9 -0
  50. package/cjs/components/modal/ModalContent.js +0 -2
  51. package/cjs/components/modal/style/_modal.scss +0 -4
  52. package/cjs/components/modal/style/dnb-modal.css +12 -19
  53. package/cjs/components/modal/style/dnb-modal.min.css +1 -1
  54. package/cjs/components/modal/style/themes/dnb-modal-theme-ui.css +6 -2
  55. package/cjs/components/modal/style/themes/dnb-modal-theme-ui.min.css +1 -1
  56. package/cjs/components/modal/style/themes/dnb-modal-theme-ui.scss +6 -5
  57. package/cjs/components/skeleton/SkeletonHelper.d.ts +2 -1
  58. package/cjs/components/slider/Slider.d.ts +8 -229
  59. package/cjs/components/slider/Slider.js +21 -798
  60. package/cjs/components/slider/SliderHelpers.d.ts +23 -0
  61. package/cjs/components/slider/SliderHelpers.js +245 -0
  62. package/cjs/components/slider/SliderInstance.d.ts +6 -0
  63. package/cjs/components/slider/SliderInstance.js +190 -0
  64. package/cjs/components/slider/SliderProvider.d.ts +4 -0
  65. package/cjs/components/slider/SliderProvider.js +301 -0
  66. package/cjs/components/slider/SliderThumb.d.ts +2 -0
  67. package/cjs/components/slider/SliderThumb.js +142 -0
  68. package/cjs/components/slider/SliderTrack.d.ts +6 -0
  69. package/cjs/components/slider/SliderTrack.js +132 -0
  70. package/cjs/components/slider/hooks/useSliderEvents.d.ts +11 -0
  71. package/cjs/components/slider/hooks/useSliderEvents.js +146 -0
  72. package/cjs/components/slider/hooks/useSliderProps.d.ts +1 -0
  73. package/cjs/components/slider/hooks/useSliderProps.js +16 -0
  74. package/cjs/components/slider/style/_slider.scss +19 -54
  75. package/cjs/components/slider/style/dnb-slider.css +30 -66
  76. package/cjs/components/slider/style/dnb-slider.min.css +1 -1
  77. package/cjs/components/slider/style/themes/dnb-slider-theme-ui.css +0 -16
  78. package/cjs/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
  79. package/cjs/components/slider/style/themes/dnb-slider-theme-ui.scss +0 -17
  80. package/cjs/components/slider/types.d.ts +100 -0
  81. package/cjs/components/slider/types.js +1 -0
  82. package/cjs/components/tabs/style/themes/dnb-tabs-theme-eiendom.css +148 -0
  83. package/cjs/components/tabs/style/themes/dnb-tabs-theme-eiendom.min.css +1 -0
  84. package/cjs/components/tabs/style/themes/dnb-tabs-theme-eiendom.scss +14 -0
  85. package/cjs/components/timeline/TimelineItem.js +2 -1
  86. package/cjs/elements/Anchor.d.ts +44 -105
  87. package/cjs/elements/Anchor.js +48 -138
  88. package/cjs/elements/Element.d.ts +23 -40
  89. package/cjs/elements/Element.js +48 -122
  90. package/cjs/elements/Link.d.ts +18 -1
  91. package/cjs/elements/lib.d.ts +36 -2
  92. package/cjs/index.d.ts +2 -1
  93. package/cjs/index.js +8 -0
  94. package/cjs/shared/AlignmentHelper.js +4 -2
  95. package/cjs/shared/Context.d.ts +7 -1
  96. package/cjs/shared/Eufemia.js +1 -1
  97. package/cjs/shared/helpers/Suffix.d.ts +6 -4
  98. package/cjs/shared/helpers/Suffix.js +5 -2
  99. package/cjs/shared/helpers/filterValidProps.d.ts +11 -0
  100. package/cjs/shared/helpers/filterValidProps.js +19 -0
  101. package/cjs/shared/helpers/withCamelCaseProps.d.ts +1 -1
  102. package/cjs/shared/helpers/withCamelCaseProps.js +10 -0
  103. package/cjs/shared/helpers/withSnakeCaseProps.d.ts +40 -0
  104. package/cjs/shared/helpers/withSnakeCaseProps.js +168 -0
  105. package/cjs/shared/locales/en-GB.d.ts +3 -3
  106. package/cjs/shared/locales/en-GB.js +3 -3
  107. package/cjs/shared/locales/en-US.d.ts +3 -3
  108. package/cjs/shared/locales/index.d.ts +6 -6
  109. package/cjs/shared/locales/nb-NO.d.ts +3 -3
  110. package/cjs/shared/locales/nb-NO.js +3 -3
  111. package/cjs/style/dnb-ui-components.css +161 -88
  112. package/cjs/style/dnb-ui-components.min.css +4 -4
  113. package/cjs/style/dnb-ui-components.scss +1 -0
  114. package/cjs/style/dnb-ui-elements.css +44 -28
  115. package/cjs/style/dnb-ui-elements.min.css +1 -1
  116. package/cjs/style/dnb-ui-tags.css +63 -40
  117. package/cjs/style/dnb-ui-tags.min.css +1 -1
  118. package/cjs/style/elements/_anchor-mixins.scss +6 -3
  119. package/cjs/style/themes/theme-eiendom/dnb-theme-eiendom.css +237 -46
  120. package/cjs/style/themes/theme-eiendom/dnb-theme-eiendom.min.css +7 -7
  121. package/cjs/style/themes/theme-eiendom/dnb-theme-eiendom.scss +1 -0
  122. package/cjs/style/themes/theme-ui/dnb-theme-ui.css +72 -50
  123. package/cjs/style/themes/theme-ui/dnb-theme-ui.min.css +4 -4
  124. package/cjs/style/themes/theme-ui/dnb-theme-ui.scss +1 -0
  125. package/components/Badge.d.ts +3 -0
  126. package/components/Badge.js +3 -0
  127. package/components/autocomplete/Autocomplete.js +15 -3
  128. package/components/autocomplete/style/_autocomplete.scss +17 -1
  129. package/components/autocomplete/style/dnb-autocomplete.css +36 -3
  130. package/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  131. package/components/avatar/style/_avatar.scss +1 -0
  132. package/components/avatar/style/dnb-avatar.css +1 -0
  133. package/components/avatar/style/dnb-avatar.min.css +1 -1
  134. package/components/badge/Badge.d.ts +58 -0
  135. package/components/badge/Badge.js +92 -0
  136. package/components/badge/index.d.ts +8 -0
  137. package/components/badge/index.js +3 -0
  138. package/components/badge/style/_badge.scss +74 -0
  139. package/components/badge/style/dnb-badge.css +151 -0
  140. package/components/badge/style/dnb-badge.min.css +1 -0
  141. package/components/badge/style/dnb-badge.scss +12 -0
  142. package/components/badge/style/index.d.ts +6 -0
  143. package/components/badge/style/index.js +1 -0
  144. package/components/badge/style/themes/dnb-badge-theme-ui.css +21 -0
  145. package/components/badge/style/themes/dnb-badge-theme-ui.min.css +1 -0
  146. package/components/badge/style/themes/dnb-badge-theme-ui.scss +17 -0
  147. package/components/badge/style/themes/ui.d.ts +1 -0
  148. package/components/badge/style/themes/ui.js +1 -0
  149. package/components/badge/style.d.ts +1 -0
  150. package/components/badge/style.js +1 -0
  151. package/components/button/style/themes/dnb-button-theme-eiendom.css +20 -0
  152. package/components/button/style/themes/dnb-button-theme-eiendom.min.css +2 -2
  153. package/components/button/style/themes/dnb-button-theme-eiendom.scss +8 -0
  154. package/components/dialog/style/dnb-dialog.css +12 -19
  155. package/components/dialog/style/dnb-dialog.min.css +1 -1
  156. package/components/dialog/style/themes/dnb-dialog-theme-ui.css +0 -2
  157. package/components/dialog/style/themes/dnb-dialog-theme-ui.min.css +1 -1
  158. package/components/dialog/style/themes/dnb-dialog-theme-ui.scss +0 -7
  159. package/components/drawer/DrawerContent.js +4 -1
  160. package/components/drawer/style/_drawer.scss +6 -13
  161. package/components/drawer/style/dnb-drawer.css +21 -31
  162. package/components/drawer/style/dnb-drawer.min.css +1 -1
  163. package/components/drawer/style/themes/dnb-drawer-theme-ui.css +0 -2
  164. package/components/drawer/style/themes/dnb-drawer-theme-ui.min.css +1 -1
  165. package/components/drawer/style/themes/dnb-drawer-theme-ui.scss +0 -7
  166. package/components/form-row/FormRow.js +9 -8
  167. package/components/form-row/FormRowHelpers.d.ts +1 -0
  168. package/components/form-row/FormRowHelpers.js +10 -0
  169. package/components/index.d.ts +2 -1
  170. package/components/index.js +2 -1
  171. package/components/lib.d.ts +3 -1
  172. package/components/lib.js +3 -1
  173. package/components/modal/ModalContent.js +0 -2
  174. package/components/modal/style/_modal.scss +0 -4
  175. package/components/modal/style/dnb-modal.css +12 -19
  176. package/components/modal/style/dnb-modal.min.css +1 -1
  177. package/components/modal/style/themes/dnb-modal-theme-ui.css +6 -2
  178. package/components/modal/style/themes/dnb-modal-theme-ui.min.css +1 -1
  179. package/components/modal/style/themes/dnb-modal-theme-ui.scss +6 -5
  180. package/components/skeleton/SkeletonHelper.d.ts +2 -1
  181. package/components/slider/Slider.d.ts +8 -229
  182. package/components/slider/Slider.js +8 -748
  183. package/components/slider/SliderHelpers.d.ts +23 -0
  184. package/components/slider/SliderHelpers.js +158 -0
  185. package/components/slider/SliderInstance.d.ts +6 -0
  186. package/components/slider/SliderInstance.js +162 -0
  187. package/components/slider/SliderProvider.d.ts +4 -0
  188. package/components/slider/SliderProvider.js +236 -0
  189. package/components/slider/SliderThumb.d.ts +2 -0
  190. package/components/slider/SliderThumb.js +114 -0
  191. package/components/slider/SliderTrack.d.ts +6 -0
  192. package/components/slider/SliderTrack.js +105 -0
  193. package/components/slider/hooks/useSliderEvents.d.ts +11 -0
  194. package/components/slider/hooks/useSliderEvents.js +132 -0
  195. package/components/slider/hooks/useSliderProps.d.ts +1 -0
  196. package/components/slider/hooks/useSliderProps.js +5 -0
  197. package/components/slider/style/_slider.scss +19 -54
  198. package/components/slider/style/dnb-slider.css +30 -66
  199. package/components/slider/style/dnb-slider.min.css +1 -1
  200. package/components/slider/style/themes/dnb-slider-theme-ui.css +0 -16
  201. package/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
  202. package/components/slider/style/themes/dnb-slider-theme-ui.scss +0 -17
  203. package/components/slider/types.d.ts +100 -0
  204. package/components/slider/types.js +1 -0
  205. package/components/tabs/style/themes/dnb-tabs-theme-eiendom.css +148 -0
  206. package/components/tabs/style/themes/dnb-tabs-theme-eiendom.min.css +1 -0
  207. package/components/tabs/style/themes/dnb-tabs-theme-eiendom.scss +14 -0
  208. package/components/timeline/TimelineItem.js +2 -1
  209. package/elements/Anchor.d.ts +44 -105
  210. package/elements/Anchor.js +51 -113
  211. package/elements/Element.d.ts +23 -40
  212. package/elements/Element.js +44 -92
  213. package/elements/Link.d.ts +18 -1
  214. package/elements/lib.d.ts +36 -2
  215. package/es/components/Badge.d.ts +3 -0
  216. package/es/components/Badge.js +3 -0
  217. package/es/components/autocomplete/Autocomplete.js +14 -3
  218. package/es/components/autocomplete/style/_autocomplete.scss +17 -1
  219. package/es/components/autocomplete/style/dnb-autocomplete.css +36 -3
  220. package/es/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  221. package/es/components/avatar/style/_avatar.scss +1 -0
  222. package/es/components/avatar/style/dnb-avatar.css +1 -0
  223. package/es/components/avatar/style/dnb-avatar.min.css +1 -1
  224. package/es/components/badge/Badge.d.ts +58 -0
  225. package/es/components/badge/Badge.js +88 -0
  226. package/es/components/badge/index.d.ts +8 -0
  227. package/es/components/badge/index.js +3 -0
  228. package/es/components/badge/style/_badge.scss +74 -0
  229. package/es/components/badge/style/dnb-badge.css +151 -0
  230. package/es/components/badge/style/dnb-badge.min.css +1 -0
  231. package/es/components/badge/style/dnb-badge.scss +12 -0
  232. package/es/components/badge/style/index.d.ts +6 -0
  233. package/es/components/badge/style/index.js +1 -0
  234. package/es/components/badge/style/themes/dnb-badge-theme-ui.css +21 -0
  235. package/es/components/badge/style/themes/dnb-badge-theme-ui.min.css +1 -0
  236. package/es/components/badge/style/themes/dnb-badge-theme-ui.scss +17 -0
  237. package/es/components/badge/style/themes/ui.d.ts +1 -0
  238. package/es/components/badge/style/themes/ui.js +1 -0
  239. package/es/components/badge/style.d.ts +1 -0
  240. package/es/components/badge/style.js +1 -0
  241. package/es/components/button/style/themes/dnb-button-theme-eiendom.css +20 -0
  242. package/es/components/button/style/themes/dnb-button-theme-eiendom.min.css +2 -2
  243. package/es/components/button/style/themes/dnb-button-theme-eiendom.scss +8 -0
  244. package/es/components/dialog/style/dnb-dialog.css +12 -19
  245. package/es/components/dialog/style/dnb-dialog.min.css +1 -1
  246. package/es/components/dialog/style/themes/dnb-dialog-theme-ui.css +0 -2
  247. package/es/components/dialog/style/themes/dnb-dialog-theme-ui.min.css +1 -1
  248. package/es/components/dialog/style/themes/dnb-dialog-theme-ui.scss +0 -7
  249. package/es/components/drawer/DrawerContent.js +4 -1
  250. package/es/components/drawer/style/_drawer.scss +6 -13
  251. package/es/components/drawer/style/dnb-drawer.css +21 -31
  252. package/es/components/drawer/style/dnb-drawer.min.css +1 -1
  253. package/es/components/drawer/style/themes/dnb-drawer-theme-ui.css +0 -2
  254. package/es/components/drawer/style/themes/dnb-drawer-theme-ui.min.css +1 -1
  255. package/es/components/drawer/style/themes/dnb-drawer-theme-ui.scss +0 -7
  256. package/es/components/form-row/FormRow.js +13 -11
  257. package/es/components/form-row/FormRowHelpers.d.ts +1 -0
  258. package/es/components/form-row/FormRowHelpers.js +10 -0
  259. package/es/components/index.d.ts +2 -1
  260. package/es/components/index.js +2 -1
  261. package/es/components/lib.d.ts +3 -1
  262. package/es/components/lib.js +3 -1
  263. package/es/components/modal/ModalContent.js +0 -1
  264. package/es/components/modal/style/_modal.scss +0 -4
  265. package/es/components/modal/style/dnb-modal.css +12 -19
  266. package/es/components/modal/style/dnb-modal.min.css +1 -1
  267. package/es/components/modal/style/themes/dnb-modal-theme-ui.css +6 -2
  268. package/es/components/modal/style/themes/dnb-modal-theme-ui.min.css +1 -1
  269. package/es/components/modal/style/themes/dnb-modal-theme-ui.scss +6 -5
  270. package/es/components/skeleton/SkeletonHelper.d.ts +2 -1
  271. package/es/components/slider/Slider.d.ts +8 -229
  272. package/es/components/slider/Slider.js +7 -688
  273. package/es/components/slider/SliderHelpers.d.ts +23 -0
  274. package/es/components/slider/SliderHelpers.js +130 -0
  275. package/es/components/slider/SliderInstance.d.ts +6 -0
  276. package/es/components/slider/SliderInstance.js +167 -0
  277. package/es/components/slider/SliderProvider.d.ts +4 -0
  278. package/es/components/slider/SliderProvider.js +214 -0
  279. package/es/components/slider/SliderThumb.d.ts +2 -0
  280. package/es/components/slider/SliderThumb.js +106 -0
  281. package/es/components/slider/SliderTrack.d.ts +6 -0
  282. package/es/components/slider/SliderTrack.js +100 -0
  283. package/es/components/slider/hooks/useSliderEvents.d.ts +11 -0
  284. package/es/components/slider/hooks/useSliderEvents.js +129 -0
  285. package/es/components/slider/hooks/useSliderProps.d.ts +1 -0
  286. package/es/components/slider/hooks/useSliderProps.js +5 -0
  287. package/es/components/slider/style/_slider.scss +19 -54
  288. package/es/components/slider/style/dnb-slider.css +30 -66
  289. package/es/components/slider/style/dnb-slider.min.css +1 -1
  290. package/es/components/slider/style/themes/dnb-slider-theme-ui.css +0 -16
  291. package/es/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
  292. package/es/components/slider/style/themes/dnb-slider-theme-ui.scss +0 -17
  293. package/es/components/slider/types.d.ts +100 -0
  294. package/es/components/slider/types.js +1 -0
  295. package/es/components/tabs/style/themes/dnb-tabs-theme-eiendom.css +148 -0
  296. package/es/components/tabs/style/themes/dnb-tabs-theme-eiendom.min.css +1 -0
  297. package/es/components/tabs/style/themes/dnb-tabs-theme-eiendom.scss +14 -0
  298. package/es/components/timeline/TimelineItem.js +2 -1
  299. package/es/elements/Anchor.d.ts +44 -105
  300. package/es/elements/Anchor.js +49 -80
  301. package/es/elements/Element.d.ts +23 -40
  302. package/es/elements/Element.js +44 -61
  303. package/es/elements/Link.d.ts +18 -1
  304. package/es/elements/lib.d.ts +36 -2
  305. package/es/index.d.ts +2 -1
  306. package/es/index.js +2 -1
  307. package/es/shared/AlignmentHelper.js +2 -2
  308. package/es/shared/Context.d.ts +7 -1
  309. package/es/shared/Eufemia.js +1 -1
  310. package/es/shared/helpers/Suffix.d.ts +6 -4
  311. package/es/shared/helpers/Suffix.js +5 -3
  312. package/es/shared/helpers/filterValidProps.d.ts +11 -0
  313. package/es/shared/helpers/filterValidProps.js +14 -0
  314. package/es/shared/helpers/withCamelCaseProps.d.ts +1 -1
  315. package/es/shared/helpers/withCamelCaseProps.js +9 -0
  316. package/es/shared/helpers/withSnakeCaseProps.d.ts +40 -0
  317. package/es/shared/helpers/withSnakeCaseProps.js +72 -0
  318. package/es/shared/locales/en-GB.d.ts +3 -3
  319. package/es/shared/locales/en-GB.js +3 -3
  320. package/es/shared/locales/en-US.d.ts +3 -3
  321. package/es/shared/locales/index.d.ts +6 -6
  322. package/es/shared/locales/nb-NO.d.ts +3 -3
  323. package/es/shared/locales/nb-NO.js +3 -3
  324. package/es/style/dnb-ui-components.css +161 -88
  325. package/es/style/dnb-ui-components.min.css +4 -4
  326. package/es/style/dnb-ui-components.scss +1 -0
  327. package/es/style/dnb-ui-elements.css +44 -28
  328. package/es/style/dnb-ui-elements.min.css +1 -1
  329. package/es/style/dnb-ui-tags.css +63 -40
  330. package/es/style/dnb-ui-tags.min.css +1 -1
  331. package/es/style/elements/_anchor-mixins.scss +6 -3
  332. package/es/style/themes/theme-eiendom/dnb-theme-eiendom.css +237 -46
  333. package/es/style/themes/theme-eiendom/dnb-theme-eiendom.min.css +7 -7
  334. package/es/style/themes/theme-eiendom/dnb-theme-eiendom.scss +1 -0
  335. package/es/style/themes/theme-ui/dnb-theme-ui.css +72 -50
  336. package/es/style/themes/theme-ui/dnb-theme-ui.min.css +4 -4
  337. package/es/style/themes/theme-ui/dnb-theme-ui.scss +1 -0
  338. package/esm/dnb-ui-basis.min.mjs +1 -1
  339. package/esm/dnb-ui-components.min.mjs +3 -3
  340. package/esm/dnb-ui-elements.min.mjs +9 -10
  341. package/esm/dnb-ui-extensions.min.mjs +4 -4
  342. package/esm/dnb-ui-lib.min.mjs +3 -3
  343. package/esm/dnb-ui-web-components.min.mjs +3 -3
  344. package/index.d.ts +2 -1
  345. package/index.js +2 -1
  346. package/package.json +1 -1
  347. package/shared/AlignmentHelper.js +4 -2
  348. package/shared/Context.d.ts +7 -1
  349. package/shared/Eufemia.js +1 -1
  350. package/shared/helpers/Suffix.d.ts +6 -4
  351. package/shared/helpers/Suffix.js +4 -2
  352. package/shared/helpers/filterValidProps.d.ts +11 -0
  353. package/shared/helpers/filterValidProps.js +14 -0
  354. package/shared/helpers/withCamelCaseProps.d.ts +1 -1
  355. package/shared/helpers/withCamelCaseProps.js +10 -0
  356. package/shared/helpers/withSnakeCaseProps.d.ts +40 -0
  357. package/shared/helpers/withSnakeCaseProps.js +115 -0
  358. package/shared/locales/en-GB.d.ts +3 -3
  359. package/shared/locales/en-GB.js +3 -3
  360. package/shared/locales/en-US.d.ts +3 -3
  361. package/shared/locales/index.d.ts +6 -6
  362. package/shared/locales/nb-NO.d.ts +3 -3
  363. package/shared/locales/nb-NO.js +3 -3
  364. package/style/dnb-ui-components.css +161 -88
  365. package/style/dnb-ui-components.min.css +4 -4
  366. package/style/dnb-ui-components.scss +1 -0
  367. package/style/dnb-ui-elements.css +44 -28
  368. package/style/dnb-ui-elements.min.css +1 -1
  369. package/style/dnb-ui-tags.css +63 -40
  370. package/style/dnb-ui-tags.min.css +1 -1
  371. package/style/elements/_anchor-mixins.scss +6 -3
  372. package/style/themes/theme-eiendom/dnb-theme-eiendom.css +237 -46
  373. package/style/themes/theme-eiendom/dnb-theme-eiendom.min.css +7 -7
  374. package/style/themes/theme-eiendom/dnb-theme-eiendom.scss +1 -0
  375. package/style/themes/theme-ui/dnb-theme-ui.css +72 -50
  376. package/style/themes/theme-ui/dnb-theme-ui.min.css +4 -4
  377. package/style/themes/theme-ui/dnb-theme-ui.scss +1 -0
  378. package/umd/dnb-ui-basis.min.js +1 -1
  379. package/umd/dnb-ui-components.min.js +5 -5
  380. package/umd/dnb-ui-elements.min.js +20 -21
  381. package/umd/dnb-ui-extensions.min.js +3 -3
  382. package/umd/dnb-ui-lib.min.js +4 -4
  383. package/umd/dnb-ui-web-components.min.js +4 -4
  384. package/cjs/components/slider/web-component.d.ts +0 -3
  385. package/components/slider/web-component.d.ts +0 -3
  386. package/components/slider/web-component.js +0 -5
  387. package/es/components/slider/web-component.d.ts +0 -3
  388. package/es/components/slider/web-component.js +0 -5
@@ -1,43 +1,26 @@
1
- import * as React from 'react';
2
- export type ElementIs =
3
- | ((...args: any[]) => any)
4
- | Object
5
- | React.ReactNode;
6
- export type ElementSkeleton = string | boolean;
7
- export type ElementSpace =
8
- | string
9
- | number
10
- | boolean
11
- | {
12
- top?: string | number | boolean;
13
- right?: string | number | boolean;
14
- bottom?: string | number | boolean;
15
- left?: string | number | boolean;
16
- };
17
- export type ElementTop = string | number | boolean;
18
- export type ElementRight = string | number | boolean;
19
- export type ElementBottom = string | number | boolean;
20
- export type ElementLeft = string | number | boolean;
21
- export type ElementClassName = string | Object | any[];
22
- export type ElementCss = string | Object;
23
-
24
1
  /**
25
- * NB: Do not change the docs (comments) in here. The docs are updated during build time by "generateTypes.js" and "fetchPropertiesFromDocs.js".
2
+ * This is mainly a Wrapper, to build more easily HTML Elements
3
+ *
26
4
  */
27
- export interface ElementProps extends React.HTMLProps<HTMLElement> {
28
- is?: ElementIs;
29
- skeleton?: ElementSkeleton;
30
- skeleton_method?: string;
31
- space?: ElementSpace;
32
- top?: ElementTop;
33
- right?: ElementRight;
34
- bottom?: ElementBottom;
35
- left?: ElementLeft;
36
- className?: ElementClassName;
37
- class?: string;
38
- internalClass?: string;
39
- css?: ElementCss;
40
- children?: React.ReactNode;
41
- }
42
- declare const Element: React.FC<ElementProps>;
5
+ import React from 'react';
6
+ import { SkeletonMethods } from '../components/skeleton/SkeletonHelper';
7
+ export declare type ElementProps = {
8
+ is: React.ReactNode;
9
+ skeleton?: boolean;
10
+ skeletonMethod?: SkeletonMethods;
11
+ class?: string;
12
+ className?: string;
13
+ internalClass?: string;
14
+ css?: string;
15
+ children?: React.ReactNode;
16
+ innerRef?: React.ForwardedRef<unknown>;
17
+ /** @deprecated use innerRef instead */
18
+ inner_ref?: React.ForwardedRef<unknown>;
19
+ /** @deprecated use skeletonMethod instead */
20
+ skeleton_method?: SkeletonMethods;
21
+ };
22
+ export declare const defaultProps: {
23
+ skeletonMethod: string;
24
+ };
25
+ declare const Element: React.ForwardRefExoticComponent<ElementProps & React.RefAttributes<unknown>>;
43
26
  export default Element;
@@ -1,81 +1,64 @@
1
1
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
2
  import _extends from "@babel/runtime/helpers/esm/extends";
4
- const _excluded = ["className", "class", "internalClass", "css", "is", "inner_ref", "skeleton", "skeleton_method"];
5
-
6
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
7
-
8
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
9
-
3
+ const _excluded = ["className", "class", "internalClass", "css", "is", "innerRef", "skeleton", "skeletonMethod"];
10
4
  import React from 'react';
11
- import PropTypes from 'prop-types';
12
5
  import classnames from 'classnames';
13
6
  import Context from '../shared/Context';
14
- import { validateDOMAttributes, extendPropsWithContext } from '../shared/component-helper';
15
- import { spacingPropTypes, createSpacingClasses } from '../components/space/SpacingHelper';
7
+ import { validateDOMAttributes } from '../shared/component-helper';
8
+ import { createSpacingClasses } from '../components/space/SpacingHelper';
16
9
  import { createSkeletonClass, skeletonDOMAttributes } from '../components/skeleton/SkeletonHelper';
10
+ import usePropsWithContext from '../shared/hooks/usePropsWithContext';
11
+ import { includeValidProps } from '../components/form-row/FormRowHelpers';
12
+ export const defaultProps = {
13
+ skeletonMethod: 'font'
14
+ };
17
15
  const Element = React.forwardRef((props, ref) => {
18
16
  return React.createElement(ElementInstance, _extends({
19
- inner_ref: ref
17
+ innerRef: ref
20
18
  }, props));
21
19
  });
22
- process.env.NODE_ENV !== "production" ? Element.propTypes = _objectSpread(_objectSpread({
23
- is: PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.node]),
24
- skeleton: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
25
- skeleton_method: PropTypes.string
26
- }, spacingPropTypes), {}, {
27
- className: PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.array]),
28
- class: PropTypes.string,
29
- internalClass: PropTypes.string,
30
- css: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),
31
- children: PropTypes.node
32
- }) : void 0;
33
- Element.defaultProps = {
34
- is: null,
35
- skeleton: null,
36
- skeleton_method: 'font',
37
- className: null,
38
- class: null,
39
- internalClass: null,
40
- css: null,
41
- children: null
42
- };
43
20
 
44
- class ElementInstance extends React.PureComponent {
45
- render() {
46
- const props = this.context ? extendPropsWithContext(this.props, Element.defaultProps, {
47
- skeleton: this.context.skeleton
48
- }, this.context.FormRow) : this.props;
21
+ function ElementInstance(localProps) {
22
+ const context = React.useContext(Context);
23
+ const props = usePropsWithContext(localProps, defaultProps, {
24
+ skeleton: context === null || context === void 0 ? void 0 : context.skeleton
25
+ }, includeValidProps(context === null || context === void 0 ? void 0 : context.FormRow));
49
26
 
50
- const {
51
- className,
52
- class: _className,
53
- internalClass,
54
- css,
55
- is: Tag,
56
- inner_ref,
57
- skeleton,
58
- skeleton_method
59
- } = props,
60
- rest = _objectWithoutProperties(props, _excluded);
27
+ if (typeof props.inner_ref !== 'undefined') {
28
+ props.innerRef = props.inner_ref;
29
+ delete props.inner_ref;
30
+ }
31
+
32
+ if (typeof props.skeleton_method !== 'undefined') {
33
+ props.skeletonMethod = props.skeleton_method;
34
+ delete props.skeleton_method;
35
+ }
61
36
 
62
- const tagClass = internalClass || (typeof Tag === 'string' ? `dnb-${Tag}` : '');
63
- rest.className = classnames(className, _className, css, createSkeletonClass(skeleton_method, skeleton, this.context), createSpacingClasses(rest, typeof Tag === 'string' ? `dnb-${Tag}` : null), !new RegExp(`${tagClass}(\\s|$)`).test(String(className)) && tagClass);
64
- validateDOMAttributes(null, rest);
65
- skeletonDOMAttributes(rest, skeleton, this.context);
37
+ const {
38
+ className,
39
+ class: _className,
40
+ internalClass,
41
+ css,
42
+ is,
43
+ innerRef,
44
+ skeleton,
45
+ skeletonMethod
46
+ } = props,
47
+ attributes = _objectWithoutProperties(props, _excluded);
66
48
 
67
- if (typeof Tag !== 'function' && inner_ref) {
68
- rest.ref = inner_ref;
69
- }
49
+ const Tag = is;
50
+ const tagClass = internalClass || (typeof Tag === 'string' ? `dnb-${Tag}` : '');
51
+ const internalClassName = classnames(className, _className, css, createSkeletonClass(skeletonMethod, skeleton, context), createSpacingClasses(attributes, typeof Tag === 'string' ? `dnb-${Tag}` : null), !new RegExp(`${tagClass}(\\s|$)`).test(String(className)) && tagClass);
52
+ validateDOMAttributes(null, attributes);
53
+ skeletonDOMAttributes(attributes, skeleton, context);
70
54
 
71
- return React.createElement(Tag, rest);
55
+ if (typeof Tag !== 'function' && innerRef) {
56
+ attributes.ref = innerRef;
72
57
  }
73
58
 
59
+ return React.createElement(Tag, _extends({
60
+ className: internalClassName
61
+ }, attributes));
74
62
  }
75
63
 
76
- _defineProperty(ElementInstance, "contextType", Context);
77
-
78
- _defineProperty(ElementInstance, "defaultProps", Element.defaultProps);
79
-
80
- process.env.NODE_ENV !== "production" ? ElementInstance.propTypes = Element.propTypes : void 0;
81
64
  export default Element;
@@ -1,2 +1,19 @@
1
1
  export default Link;
2
- declare const Link: import("react").FC<import("./Anchor").AnchorProps>;
2
+ declare const Link: import("react").ForwardRefExoticComponent<{
3
+ element?: import("react").ReactNode;
4
+ href?: string;
5
+ to?: string;
6
+ targetBlankTitle?: string;
7
+ target?: string;
8
+ tooltip?: import("react").ReactNode;
9
+ skeleton?: boolean;
10
+ className?: string;
11
+ children?: import("react").ReactNode;
12
+ omitClass?: boolean;
13
+ innerRef?: import("react").ForwardedRef<unknown>;
14
+ id?: string;
15
+ title?: string;
16
+ lang?: string;
17
+ inner_ref?: import("react").ForwardedRef<unknown>;
18
+ target_blank_title?: string;
19
+ } & Partial<Omit<HTMLAnchorElement, "children">> & import("../shared/interfaces").ISpacingProps & import("react").RefAttributes<unknown>>;
@@ -1,5 +1,22 @@
1
1
  export function getElements(): {
2
- Anchor: import("react").FC<import("./Anchor").AnchorProps>;
2
+ Anchor: import("react").ForwardRefExoticComponent<{
3
+ element?: import("react").ReactNode;
4
+ href?: string;
5
+ to?: string;
6
+ targetBlankTitle?: string;
7
+ target?: string;
8
+ tooltip?: import("react").ReactNode;
9
+ skeleton?: boolean;
10
+ className?: string;
11
+ children?: import("react").ReactNode;
12
+ omitClass?: boolean;
13
+ innerRef?: import("react").ForwardedRef<unknown>;
14
+ id?: string;
15
+ title?: string;
16
+ lang?: string;
17
+ inner_ref?: import("react").ForwardedRef<unknown>;
18
+ target_blank_title?: string;
19
+ } & Partial<Omit<HTMLAnchorElement, "children">> & import("../shared/interfaces").ISpacingProps & import("react").RefAttributes<unknown>>;
3
20
  Blockquote: import("react").FC<import("./Blockquote").BlockquoteProps>;
4
21
  Code: import("react").FC<import("./Code").CodeProps>;
5
22
  Dd: import("react").FC<import("./Dd").DdProps>;
@@ -24,7 +41,24 @@ export function getElements(): {
24
41
  tagName: string;
25
42
  };
26
43
  Li: import("react").FC<import("./Li").LiProps>;
27
- Link: import("react").FC<import("./Anchor").AnchorProps>;
44
+ Link: import("react").ForwardRefExoticComponent<{
45
+ element?: import("react").ReactNode;
46
+ href?: string;
47
+ to?: string;
48
+ targetBlankTitle?: string;
49
+ target?: string;
50
+ tooltip?: import("react").ReactNode;
51
+ skeleton?: boolean;
52
+ className?: string;
53
+ children?: import("react").ReactNode;
54
+ omitClass?: boolean;
55
+ innerRef?: import("react").ForwardedRef<unknown>;
56
+ id?: string;
57
+ title?: string;
58
+ lang?: string;
59
+ inner_ref?: import("react").ForwardedRef<unknown>;
60
+ target_blank_title?: string;
61
+ } & Partial<Omit<HTMLAnchorElement, "children">> & import("../shared/interfaces").ISpacingProps & import("react").RefAttributes<unknown>>;
28
62
  Ol: import("react").FC<import("./Ol").OlProps>;
29
63
  P: import("react").FC<import("./P").PProps>;
30
64
  Paragraph: {
package/es/index.d.ts CHANGED
@@ -31,6 +31,7 @@ import Ul from "./elements/Ul";
31
31
  import Accordion from "./components/accordion/Accordion";
32
32
  import Autocomplete from "./components/autocomplete/Autocomplete";
33
33
  import Avatar from "./components/avatar/Avatar";
34
+ import Badge from "./components/badge/Badge";
34
35
  import Breadcrumb from "./components/breadcrumb/Breadcrumb";
35
36
  import Button from "./components/button/Button";
36
37
  import Checkbox from "./components/checkbox/Checkbox";
@@ -71,4 +72,4 @@ import Timeline from "./components/timeline/Timeline";
71
72
  import ToggleButton from "./components/toggle-button/ToggleButton";
72
73
  import Tooltip from "./components/tooltip/Tooltip";
73
74
  import VisuallyHidden from "./components/visually-hidden/VisuallyHidden";
74
- export { Anchor, Blockquote, Code, Dd, Div, Dl, Dt, H, H1, H2, H3, H4, H5, H6, Hr, Img, Ingress, Lead, Li, Link, Ol, P, Paragraph, Span, Td, Th, Tr, Ul, Accordion, Autocomplete, Avatar, Breadcrumb, Button, Checkbox, DatePicker, Dialog, Drawer, Dropdown, FormLabel, FormRow, FormSet, FormStatus, GlobalError, GlobalStatus, Heading, HelpButton, Icon, IconPrimary, InfoCard, Input, InputMasked, Logo, Modal, NumberFormat, Pagination, ProgressIndicator, Radio, Section, Skeleton, Slider, Space, StepIndicator, Switch, Table, Tabs, Tag, Textarea, Timeline, ToggleButton, Tooltip, VisuallyHidden };
75
+ export { Anchor, Blockquote, Code, Dd, Div, Dl, Dt, H, H1, H2, H3, H4, H5, H6, Hr, Img, Ingress, Lead, Li, Link, Ol, P, Paragraph, Span, Td, Th, Tr, Ul, Accordion, Autocomplete, Avatar, Badge, Breadcrumb, Button, Checkbox, DatePicker, Dialog, Drawer, Dropdown, FormLabel, FormRow, FormSet, FormStatus, GlobalError, GlobalStatus, Heading, HelpButton, Icon, IconPrimary, InfoCard, Input, InputMasked, Logo, Modal, NumberFormat, Pagination, ProgressIndicator, Radio, Section, Skeleton, Slider, Space, StepIndicator, Switch, Table, Tabs, Tag, Textarea, Timeline, ToggleButton, Tooltip, VisuallyHidden };
package/es/index.js CHANGED
@@ -29,6 +29,7 @@ import Ul from './elements/Ul';
29
29
  import Accordion from './components/accordion/Accordion';
30
30
  import Autocomplete from './components/autocomplete/Autocomplete';
31
31
  import Avatar from './components/avatar/Avatar';
32
+ import Badge from './components/badge/Badge';
32
33
  import Breadcrumb from './components/breadcrumb/Breadcrumb';
33
34
  import Button from './components/button/Button';
34
35
  import Checkbox from './components/checkbox/Checkbox';
@@ -69,5 +70,5 @@ import Timeline from './components/timeline/Timeline';
69
70
  import ToggleButton from './components/toggle-button/ToggleButton';
70
71
  import Tooltip from './components/tooltip/Tooltip';
71
72
  import VisuallyHidden from './components/visually-hidden/VisuallyHidden';
72
- export { Anchor, Blockquote, Code, Dd, Div, Dl, Dt, H, H1, H2, H3, H4, H5, H6, Hr, Img, Ingress, Lead, Li, Link, Ol, P, Paragraph, Span, Td, Th, Tr, Ul, Accordion, Autocomplete, Avatar, Breadcrumb, Button, Checkbox, DatePicker, Dialog, Drawer, Dropdown, FormLabel, FormRow, FormSet, FormStatus, GlobalError, GlobalStatus, Heading, HelpButton, Icon, IconPrimary, InfoCard, Input, InputMasked, Logo, Modal, NumberFormat, Pagination, ProgressIndicator, Radio, Section, Skeleton, Slider, Space, StepIndicator, Switch, Table, Tabs, Tag, Textarea, Timeline, ToggleButton, Tooltip, VisuallyHidden };
73
+ export { Anchor, Blockquote, Code, Dd, Div, Dl, Dt, H, H1, H2, H3, H4, H5, H6, Hr, Img, Ingress, Lead, Li, Link, Ol, P, Paragraph, Span, Td, Th, Tr, Ul, Accordion, Autocomplete, Avatar, Badge, Breadcrumb, Button, Checkbox, DatePicker, Dialog, Drawer, Dropdown, FormLabel, FormRow, FormSet, FormStatus, GlobalError, GlobalStatus, Heading, HelpButton, Icon, IconPrimary, InfoCard, Input, InputMasked, Logo, Modal, NumberFormat, Pagination, ProgressIndicator, Radio, Section, Skeleton, Slider, Space, StepIndicator, Switch, Table, Tabs, Tag, Textarea, Timeline, ToggleButton, Tooltip, VisuallyHidden };
73
74
  export default {};
@@ -6,8 +6,8 @@ import PropTypes from 'prop-types';
6
6
  import classnames from 'classnames';
7
7
  export default function AlignmentHelper(_ref) {
8
8
  let {
9
- className,
10
- children
9
+ className = null,
10
+ children = null
11
11
  } = _ref,
12
12
  props = _objectWithoutProperties(_ref, _excluded);
13
13
 
@@ -6,9 +6,11 @@ import React from 'react';
6
6
  import type { ButtonProps } from '../components/button/Button';
7
7
  import type { AvatarProps } from '../components/avatar/Avatar';
8
8
  import type { AvatarGroupProps } from '../components/avatar/AvatarGroup';
9
+ import type { BadgeProps } from '../components/badge/Badge';
9
10
  import type { BreadcrumbProps } from '../components/breadcrumb/Breadcrumb';
10
11
  import type { BreadcrumbItemProps } from '../components/breadcrumb/BreadcrumbItem';
11
12
  import type { InfoCardProps } from '../components/info-card/InfoCard';
13
+ import type { SliderProps } from '../components/slider/Slider';
12
14
  import type { TagProps } from '../components/tag/Tag';
13
15
  import type { TagGroupProps } from '../components/tag/TagGroup';
14
16
  import type { TimelineProps } from '../components/timeline/Timeline';
@@ -16,13 +18,17 @@ import type { TimelineItemProps } from '../components/timeline/TimelineItem';
16
18
  import type { VisuallyHiddenProps } from '../components/visually-hidden/VisuallyHidden';
17
19
  import type { DrawerProps } from '../components/drawer/types';
18
20
  import type { DialogProps } from '../components/dialog/types';
21
+ import type { AnchorProps } from '../elements/Anchor';
19
22
  export declare type ContextProps = {
20
23
  Button?: Partial<ButtonProps>;
24
+ Anchor?: Partial<AnchorProps>;
21
25
  Avatar?: Partial<AvatarProps>;
22
26
  AvatarGroup?: Partial<AvatarGroupProps>;
27
+ Badge?: Partial<BadgeProps>;
23
28
  Breadcrumb?: Partial<BreadcrumbProps>;
24
29
  BreadcrumbItem?: Partial<BreadcrumbItemProps>;
25
30
  InfoCard?: Partial<InfoCardProps>;
31
+ Slider?: Partial<SliderProps>;
26
32
  Tag?: Partial<TagProps>;
27
33
  TagGroup?: Partial<TagGroupProps>;
28
34
  Timeline?: Partial<TimelineProps>;
@@ -83,7 +89,7 @@ export declare type ContextProps = {
83
89
  export declare type GetTranslationProps = {
84
90
  lang?: Locale;
85
91
  locale?: Locale;
86
- };
92
+ } & Record<string, unknown>;
87
93
  export declare type Locale = string | 'nb-NO' | 'en-GB' | 'en-US';
88
94
  export declare type ComponentTranslationsName = string;
89
95
  export declare type ComponentTranslations = Record<string, string>;
@@ -2,7 +2,7 @@ export function init() {
2
2
  if (typeof window !== 'undefined') {
3
3
  class Eufemia {
4
4
  get version() {
5
- return '9.27.0';
5
+ return '9.30.0';
6
6
  }
7
7
 
8
8
  }
@@ -4,11 +4,13 @@
4
4
  */
5
5
  import React from 'react';
6
6
  declare const SuffixContext: React.Context<any>;
7
- interface SuffixProps {
7
+ export declare type SuffixChildren = React.ReactNode;
8
+ export declare type SuffixProps = {
8
9
  className: string;
9
- children: React.ReactNode;
10
+ children: SuffixChildren;
10
11
  context: Record<string, unknown>;
11
- }
12
- declare const Suffix: ({ className, children, context, ...props }: SuffixProps) => JSX.Element;
12
+ skeleton?: boolean;
13
+ };
14
+ declare const Suffix: ({ className, children, context, skeleton, ...props }: SuffixProps & React.HTMLAttributes<HTMLSpanElement>) => JSX.Element;
13
15
  export { SuffixContext };
14
16
  export default Suffix;
@@ -1,20 +1,22 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- const _excluded = ["className", "children", "context"];
3
+ const _excluded = ["className", "children", "context", "skeleton"];
4
4
  import React from 'react';
5
5
  import classnames from 'classnames';
6
+ import { createSkeletonClass } from '../../components/skeleton/SkeletonHelper';
6
7
  const SuffixContext = React.createContext(null);
7
8
 
8
9
  const Suffix = _ref => {
9
10
  let {
10
11
  className,
11
12
  children,
12
- context
13
+ context,
14
+ skeleton
13
15
  } = _ref,
14
16
  props = _objectWithoutProperties(_ref, _excluded);
15
17
 
16
18
  const content = React.createElement("span", _extends({
17
- className: classnames('dnb-suffix', className)
19
+ className: classnames('dnb-suffix', className, !React.isValidElement(children) && createSkeletonClass('font', skeleton, context))
18
20
  }, props), children);
19
21
 
20
22
  if (typeof children !== 'string' && context) {
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Filters out props from a given object/context
3
+ * It returns a new object, with keys defined in validKeys
4
+ *
5
+ * @param props object of component properties
6
+ * @param validKeys object with keys that should get returned
7
+ * @param excludeKeys object with keys that should be excluded
8
+ * @returns filtered properties
9
+ */
10
+ declare function filterValidProps<Props>(props: Props, validKeys: Record<string, unknown>, excludeKeys?: Record<string, unknown>): Props;
11
+ export { filterValidProps };
@@ -0,0 +1,14 @@
1
+ function filterValidProps(props, validKeys, excludeKeys) {
2
+ const res = {},
3
+ o = Object.prototype.hasOwnProperty;
4
+
5
+ for (const key in props) {
6
+ if (o.call(validKeys, key) && (!excludeKeys || excludeKeys && !o.call(excludeKeys, key))) {
7
+ res[key] = props[key];
8
+ }
9
+ }
10
+
11
+ return res;
12
+ }
13
+
14
+ export { filterValidProps };
@@ -32,7 +32,7 @@ export declare function classWithCamelCaseProps<TBase extends React.ComponentCla
32
32
  */
33
33
  export declare type ToCamelCasePartial<T> = Partial<ToCamelCase<T>>;
34
34
  export declare type ToCamelCase<T> = T extends object ? {
35
- [K in keyof T as ConvertSnakeToCamelCase<K & string>]: ToCamelCase<T[K]>;
35
+ [K in keyof T as ConvertSnakeToCamelCase<K & string>]: T[K] | ToCamelCase<T[K]>;
36
36
  } : T;
37
37
  export declare type IncludeCamelCase<T> = Partial<T> & ToCamelCasePartial<T>;
38
38
  declare type ConvertSnakeToCamelCase<S extends string> = S extends `${infer T}_${infer U}` ? `${T}${Capitalize<ConvertSnakeToCamelCase<U>>}` : S;
@@ -37,6 +37,8 @@ export function classWithCamelCaseProps(Base) {
37
37
  _defineProperty(this, "_elem", void 0);
38
38
  }
39
39
 
40
+ componentDidMount() {}
41
+
40
42
  render() {
41
43
  if (this.props !== this._prevProps) {
42
44
  this._prevProps = this.props;
@@ -61,6 +63,13 @@ function convertCamelCaseProps(props) {
61
63
  const newProps = _objectSpread({}, props);
62
64
 
63
65
  for (const key in props) {
66
+ switch (key) {
67
+ case 'className':
68
+ {
69
+ continue;
70
+ }
71
+ }
72
+
64
73
  if (/^[a-z]+[A-Z]/.test(key)) {
65
74
  newProps[toSnakeCase(key)] = props[key];
66
75
  delete newProps[key];
@@ -0,0 +1,40 @@
1
+ import React from 'react';
2
+ /**
3
+ * withSnakeCaseProps is a HOC for function components
4
+ * it will return a React Component where all snake_case props gets converted to camelCase
5
+ *
6
+ * Use the same for TypeScript types by using: ToSnakeCase
7
+ *
8
+ * @param Base the original function or class
9
+ * @returns extended function or class
10
+ */
11
+ export declare function withSnakeCaseProps<TBase, P>(Base: React.FunctionComponent<P> & TBase): typeof Base;
12
+ /**
13
+ * withSnakeCaseProps is a HOC for classes
14
+ * it will return a React Component where all snake_case props gets converted to camelCase
15
+ *
16
+ * Use the same for TypeScript types by using: ToSnakeCase
17
+ *
18
+ * @param Base the original function or class
19
+ * @returns extended function or class
20
+ */
21
+ export declare function classWithSnakeCaseProps<TBase extends React.ComponentClass>(Base: TBase): typeof Base;
22
+ export declare function convertSnakeCaseProps<P>(props: P): P;
23
+ /**
24
+ * Convert recursively Types from camelCase to snake_case
25
+ *
26
+ * Use it like so:
27
+ * OriginalProps & ToSnakeCase<OriginalProps>
28
+ *
29
+ * Disclaimer: Be careful using these with required props
30
+ * - ToSnakeCase makes the required camelCase props also required in snake_case
31
+ * - ToSnakeCasePartial removes required for the snake_case props
32
+ *
33
+ */
34
+ export declare type ToSnakeCasePartial<T> = Partial<ToSnakeCase<T>>;
35
+ export declare type ToSnakeCase<T> = T extends object ? {
36
+ [K in keyof T as ConvertCamelToSnakeCase<K & string>]: T[K] | ToSnakeCase<T[K]>;
37
+ } : T;
38
+ export declare type IncludeSnakeCase<T> = Partial<T> & ToSnakeCasePartial<T>;
39
+ declare type ConvertCamelToSnakeCase<S extends string> = S extends `${infer T}${infer U}` ? `${T extends Capitalize<T> ? '_' : ''}${Lowercase<T>}${ConvertCamelToSnakeCase<U>}` : S;
40
+ export {};
@@ -0,0 +1,72 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
4
+
5
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
6
+
7
+ import React from 'react';
8
+ import { toCamelCase } from '../component-helper';
9
+ export function withSnakeCaseProps(Base) {
10
+ const Component = Base;
11
+
12
+ const Derived = props => {
13
+ return React.createElement(Component, Object.freeze(convertSnakeCaseProps(props)));
14
+ };
15
+
16
+ Object.defineProperty(Derived, 'name', {
17
+ value: Base.name
18
+ });
19
+
20
+ for (const name in Base) {
21
+ Object.defineProperty(Derived, name, {
22
+ value: Base[name]
23
+ });
24
+ }
25
+
26
+ return Derived;
27
+ }
28
+ export function classWithSnakeCaseProps(Base) {
29
+ const Component = Base;
30
+
31
+ class Derived extends Base {
32
+ constructor(...args) {
33
+ super(...args);
34
+
35
+ _defineProperty(this, "_prevProps", void 0);
36
+
37
+ _defineProperty(this, "_elem", void 0);
38
+ }
39
+
40
+ componentDidMount() {}
41
+
42
+ render() {
43
+ if (this.props !== this._prevProps) {
44
+ this._prevProps = this.props;
45
+ this._elem = React.createElement(Component, Object.freeze(convertSnakeCaseProps(this.props)));
46
+ }
47
+
48
+ return this._elem;
49
+ }
50
+
51
+ }
52
+
53
+ Object.defineProperty(Derived, 'name', {
54
+ value: Base.name
55
+ });
56
+ Object.defineProperty(Derived, 'displayName', {
57
+ value: Base.displayName || Base.name
58
+ });
59
+ return Derived;
60
+ }
61
+ export function convertSnakeCaseProps(props) {
62
+ const newProps = _objectSpread({}, props);
63
+
64
+ for (const key in props) {
65
+ if (key.includes('_') && /^[a-z]+/.test(key) && !/[A-Z]/.test(key)) {
66
+ newProps[toCamelCase(key)] = props[key];
67
+ delete newProps[key];
68
+ }
69
+ }
70
+
71
+ return newProps;
72
+ }
@@ -34,7 +34,7 @@ declare var _default: {
34
34
  reset_button_text: string;
35
35
  };
36
36
  Anchor: {
37
- target_blank_title: string;
37
+ targetBlankTitle: string;
38
38
  };
39
39
  GlobalStatus: {
40
40
  default_title: string;
@@ -108,8 +108,8 @@ declare var _default: {
108
108
  step_title: string;
109
109
  };
110
110
  Slider: {
111
- add_title: string;
112
- subtract_title: string;
111
+ addTitle: string;
112
+ subtractTitle: string;
113
113
  };
114
114
  PaymentCard: {
115
115
  text_card_number: string;
@@ -34,7 +34,7 @@ export default {
34
34
  reset_button_text: 'Reset'
35
35
  },
36
36
  Anchor: {
37
- target_blank_title: 'Opens a new Window'
37
+ targetBlankTitle: 'Opens a new Window'
38
38
  },
39
39
  GlobalStatus: {
40
40
  default_title: 'An error has occurred',
@@ -108,8 +108,8 @@ export default {
108
108
  step_title: 'Step %step of %count'
109
109
  },
110
110
  Slider: {
111
- add_title: 'Increase (%s)',
112
- subtract_title: 'Decrease (%s)'
111
+ addTitle: 'Increase (%s)',
112
+ subtractTitle: 'Decrease (%s)'
113
113
  },
114
114
  PaymentCard: {
115
115
  text_card_number: 'Card number',
@@ -35,7 +35,7 @@ declare var _default: {
35
35
  backToText: string;
36
36
  };
37
37
  Anchor: {
38
- target_blank_title: string;
38
+ targetBlankTitle: string;
39
39
  };
40
40
  GlobalStatus: {
41
41
  default_title: string;
@@ -109,8 +109,8 @@ declare var _default: {
109
109
  step_title: string;
110
110
  };
111
111
  Slider: {
112
- add_title: string;
113
- subtract_title: string;
112
+ addTitle: string;
113
+ subtractTitle: string;
114
114
  };
115
115
  PaymentCard: {
116
116
  text_card_number: string;