@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
@@ -24,22 +24,6 @@
24
24
  background-color: #e9f8f4;
25
25
  background-color: var(--color-mint-green-25); }
26
26
 
27
- .dnb-slider__track::before {
28
- background-color: #007272;
29
- background-color: var(--color-sea-green); }
30
-
31
- .dnb-slider__track::after {
32
- background-color: #d2f0e9;
33
- background-color: var(--color-mint-green-50); }
34
-
35
- .dnb-slider__state--disabled.dnb-slider__track::before {
36
- background-color: #b3dada;
37
- background-color: var(--color-sea-green-30); }
38
-
39
- .dnb-slider__state--disabled.dnb-slider__track::after {
40
- background-color: #e9f8f4;
41
- background-color: var(--color-mint-green-25); }
42
-
43
27
  .dnb-slider__thumb {
44
28
  -webkit-box-shadow: 0 8px 16px rgba(51, 51, 51, 0.08);
45
29
  box-shadow: 0 8px 16px rgba(51, 51, 51, 0.08);
@@ -1 +1 @@
1
- .dnb-slider__line{background-color:#007272;background-color:var(--color-sea-green)}.dnb-slider__line__after{background-color:#d2f0e9;background-color:var(--color-mint-green-50)}.dnb-slider__state--disabled .dnb-slider__line{background-color:#b3dada;background-color:var(--color-sea-green-30)}.dnb-slider__state--disabled .dnb-slider__line__after{background-color:#e9f8f4;background-color:var(--color-mint-green-25)}.dnb-slider__track:before{background-color:#007272;background-color:var(--color-sea-green)}.dnb-slider__track:after{background-color:#d2f0e9;background-color:var(--color-mint-green-50)}.dnb-slider__state--disabled.dnb-slider__track:before{background-color:#b3dada;background-color:var(--color-sea-green-30)}.dnb-slider__state--disabled.dnb-slider__track:after{background-color:#e9f8f4;background-color:var(--color-mint-green-25)}.dnb-slider__thumb{-webkit-box-shadow:0 8px 16px rgba(51,51,51,.08);box-shadow:0 8px 16px rgba(51,51,51,.08);-webkit-box-shadow:var(--shadow-default);box-shadow:var(--shadow-default)}
1
+ .dnb-slider__line{background-color:#007272;background-color:var(--color-sea-green)}.dnb-slider__line__after{background-color:#d2f0e9;background-color:var(--color-mint-green-50)}.dnb-slider__state--disabled .dnb-slider__line{background-color:#b3dada;background-color:var(--color-sea-green-30)}.dnb-slider__state--disabled .dnb-slider__line__after{background-color:#e9f8f4;background-color:var(--color-mint-green-25)}.dnb-slider__thumb{-webkit-box-shadow:0 8px 16px rgba(51,51,51,.08);box-shadow:0 8px 16px rgba(51,51,51,.08);-webkit-box-shadow:var(--shadow-default);box-shadow:var(--shadow-default)}
@@ -19,23 +19,6 @@
19
19
  }
20
20
  }
21
21
 
22
- &__track {
23
- &::before {
24
- background-color: var(--color-sea-green);
25
- }
26
- &::after {
27
- background-color: var(--color-mint-green-50);
28
- }
29
- }
30
- &__state--disabled#{&}__track {
31
- &::before {
32
- background-color: var(--color-sea-green-30);
33
- }
34
- &::after {
35
- background-color: var(--color-mint-green-25);
36
- }
37
- }
38
-
39
22
  &__thumb {
40
23
  @include defaultDropShadow();
41
24
  }
@@ -0,0 +1,100 @@
1
+ /// <reference types="node" />
2
+ import React from 'react';
3
+ import type { SuffixChildren } from '../../shared/helpers/Suffix';
4
+ import type { formatReturnType, formatOptionParams } from '../number-format/NumberUtils';
5
+ import { IncludeSnakeCase } from '../../shared/helpers/withSnakeCaseProps';
6
+ export declare type ValueTypes = number | Array<number>;
7
+ export declare type onChangeEventProps = {
8
+ value: ValueTypes;
9
+ rawValue: number;
10
+ number?: formatReturnType | null;
11
+ event?: Event;
12
+ /** @deprecated use rawValue instead */
13
+ raw_value?: number;
14
+ };
15
+ export declare type SliderProps = IncludeSnakeCase<{
16
+ /** prepends the Form Label component. If no ID is provided, a random ID is created. */
17
+ label?: React.ReactNode;
18
+ /** use `labelDirection="vertical"` to change the label layout direction. Defaults to `horizontal`. */
19
+ labelDirection?: 'vertical' | 'horizontal';
20
+ /** use `true` to make the label only readable by screen readers. */
21
+ labelSrOnly?: boolean;
22
+ /** text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message. */
23
+ status?: string | boolean;
24
+ /** defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`. */
25
+ statusState?: 'error' | 'info';
26
+ /** use an object to define additional FormStatus properties. */
27
+ statusProps?: Record<string, unknown>;
28
+ statusNoAnimation?: boolean;
29
+ /** the `status_id` used for the target [GlobalStatus](/uilib/components/global-status). */
30
+ globalStatusId?: string;
31
+ /** text describing the content of the Slider more than the label. You can also send in a React component, so it gets wrapped inside the Slider component. */
32
+ suffix?: SuffixChildren;
33
+ /** give the slider thumb button a title for accessibility reasons. Defaults to `null`. */
34
+ thumbTitle?: string;
35
+ /** give the add button a title for accessibility reasons. Defaults to `+`. */
36
+ addTitle?: string;
37
+ /** give the subtract button a title for accessibility reasons. Defaults to `−`. */
38
+ subtractTitle?: string;
39
+ /** the minimum value. Defaults to `0`. */
40
+ min?: number;
41
+ /** the maximum value. Defaults to `100` */
42
+ max?: number;
43
+ /** the `value` of the slider as a number. If an array with numbers is provided, each number will represent a thumb button (the `+` and `-` button will be hidden on multible thumbs). */
44
+ value?: ValueTypes;
45
+ /** the steps the slider takes on changing the value. Defaults to `null` */
46
+ step?: number;
47
+ /** show the slider vertically. Defaults to `false`. */
48
+ vertical?: boolean;
49
+ /** show the slider reversed. Defaults to `false`. */
50
+ reverse?: boolean;
51
+ /** if set to `true`, then the slider will be 100% in `width`. */
52
+ stretch?: boolean;
53
+ /** Will extend the return object with a `number` property (from `onChange` event). You can use all the options from the [NumberFormat](/uilib/components/number-format/properties) component. It also will use that formatted number in the increase/decrease buttons. If it has to represent a currency, then use e.g. `numberFormat={{ currency: true, decimals: 0 }}` */
54
+ numberFormat?: formatOptionParams;
55
+ /** removes the helper buttons. Defaults to `false`. */
56
+ hideButtons?: boolean;
57
+ /** use either `omit`, `push` or `swap`. This property only works for two (range) or more thumb buttons, while `omit` will stop the thumb from swapping, `push` will push its nearest thumb along. Defaults to `swap`. */
58
+ multiThumbBehavior?: 'swap' | 'omit' | 'push';
59
+ /** if set to `true`, an overlaying skeleton with animation will be shown. */
60
+ skeleton?: boolean;
61
+ id?: string;
62
+ disabled?: boolean;
63
+ className?: string;
64
+ /** will be called on state changes made by the user. The callback `value` and `rawValue` is a number `{ value, rawValue, event }`. But if the prop `numberFormat` is given, then it will return an additional `number` with the given format `{ value, number, rawValue, event }`. */
65
+ onChange?: (props: onChangeEventProps) => void;
66
+ /** will be called once the user stops dragging. Returns `{ event }`. */
67
+ onDragStart?: (props: {
68
+ event: MouseEvent | TouchEvent;
69
+ }) => void;
70
+ /** will be called once the user starts dragging. Returns `{ event }`. */
71
+ onDragEnd?: (props: {
72
+ event: MouseEvent | TouchEvent;
73
+ }) => void;
74
+ /** @deprecated */
75
+ onInit?: (props: Omit<onChangeEventProps, 'rawValue'>) => void;
76
+ /** @deprecated The Slider does not support mouse wheel */
77
+ use_scrollwheel?: boolean;
78
+ children?: React.ReactChild;
79
+ }>;
80
+ export declare type ThumbStateEnums = 'initial' | 'normal' | 'activated' | 'released' | 'focused' | 'jumped';
81
+ export declare type SliderContextTypes = {
82
+ isMulti: boolean;
83
+ isReverse: boolean;
84
+ isVertical: boolean;
85
+ thumbState: ThumbStateEnums;
86
+ thumbIndex: React.RefObject<number>;
87
+ showStatus: boolean;
88
+ showButtons: boolean;
89
+ attributes: unknown;
90
+ allProps: SliderProps;
91
+ value: ValueTypes;
92
+ values: Array<number>;
93
+ setValue: (value: ValueTypes) => void;
94
+ setThumbState: (thumbState: ThumbStateEnums) => void;
95
+ setThumbIndex: (thumbIndex: number) => void;
96
+ emitChange: (emitEvent: MouseEvent | TouchEvent, value: number) => void;
97
+ trackRef: React.RefObject<HTMLElement>;
98
+ setJumpedState: () => void;
99
+ jumpedTimeout: React.RefObject<NodeJS.Timeout>;
100
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,148 @@
1
+ /*
2
+ * Tabs theme
3
+ *
4
+ */
5
+ /*
6
+ * Tabs theme
7
+ *
8
+ */
9
+ /**
10
+ * This file is only used to make themes independent
11
+ * so that they can get imported individually, without the core styles
12
+ *
13
+ */
14
+ /*
15
+ * Utilities
16
+ */
17
+ /*
18
+ * Button mixins
19
+ *
20
+ */
21
+ .dnb-tabs__tabs:not(.dnb-section)::before {
22
+ background-color: #ebebeb;
23
+ background-color: var(--color-black-8);
24
+ -webkit-box-shadow: 100vw 0 0 0 #ebebeb;
25
+ box-shadow: 100vw 0 0 0 #ebebeb;
26
+ -webkit-box-shadow: 100vw 0 0 0 var(--color-black-8);
27
+ box-shadow: 100vw 0 0 0 var(--color-black-8); }
28
+
29
+ .dnb-tabs__tabs__tablist:focus {
30
+ border-radius: 0.5rem; }
31
+
32
+ .dnb-tabs--at-edge .dnb-tabs__scroll-nav-button:first-of-type {
33
+ border-radius: 0 50% 50% 0; }
34
+
35
+ .dnb-tabs--at-edge .dnb-tabs__scroll-nav-button:last-of-type {
36
+ border-radius: 50% 0 0 50%; }
37
+
38
+ .dnb-tabs--at-edge .dnb-tabs__tabs__tablist:focus {
39
+ border-radius: 0; }
40
+
41
+ .dnb-tabs__content:focus {
42
+ position: relative; }
43
+ .dnb-tabs__content:focus::after {
44
+ content: '';
45
+ position: absolute;
46
+ z-index: -1;
47
+ top: 0.125rem;
48
+ bottom: -0.5rem;
49
+ left: -0.5rem;
50
+ right: -0.5rem;
51
+ max-width: 100vw;
52
+ border-radius: 0.5rem;
53
+ outline: none; }
54
+ html[data-whatinput='keyboard'] .dnb-tabs__content:focus::after {
55
+ --border-color: var(--color-emerald-green);
56
+ -webkit-box-shadow: 0 0 0 0.125rem var(--border-color);
57
+ box-shadow: 0 0 0 0.125rem var(--border-color);
58
+ border-color: transparent; }
59
+ @media screen and (-ms-high-contrast: none) {
60
+ html[data-whatinput='keyboard'] .dnb-tabs__content:focus::after {
61
+ -webkit-box-shadow: 0 0 0 0.125rem #14555a;
62
+ box-shadow: 0 0 0 0.125rem #14555a;
63
+ -webkit-box-shadow: 0 0 0 0.125rem var(--color-emerald-green);
64
+ box-shadow: 0 0 0 0.125rem var(--color-emerald-green); } }
65
+
66
+ .dnb-tabs__button__title {
67
+ font-weight: normal;
68
+ font-weight: var(--font-weight-regular);
69
+ font-size: 1.125rem;
70
+ font-size: var(--font-size-basis);
71
+ text-align: center;
72
+ display: block;
73
+ color: #007272;
74
+ color: var(--color-sea-green);
75
+ padding: 0.5rem 0 0.25rem 0; }
76
+
77
+ html:not([data-whatintent='touch']) .dnb-tabs__button:hover[disabled] {
78
+ cursor: not-allowed; }
79
+
80
+ html:not([data-whatintent='touch']) .dnb-tabs__button:hover:not([disabled]) {
81
+ background-color: #d2f0e9;
82
+ background-color: var(--color-mint-green-50); }
83
+ html:not([data-whatintent='touch']) .dnb-tabs__button:hover:not([disabled])::after {
84
+ height: 2px;
85
+ border-radius: 2px;
86
+ background-color: #007272;
87
+ background-color: var(--color-sea-green); }
88
+
89
+ .dnb-tabs__button:focus {
90
+ overflow: visible; }
91
+ .dnb-tabs__button:focus::before {
92
+ content: '';
93
+ position: absolute;
94
+ z-index: 1;
95
+ top: 0;
96
+ left: -0.5rem;
97
+ bottom: 0;
98
+ right: -0.5rem;
99
+ height: inherit;
100
+ border-radius: inherit;
101
+ outline: none; }
102
+ html[data-whatinput='keyboard'] .dnb-tabs__button:focus::before {
103
+ --border-color: var(--color-emerald-green);
104
+ -webkit-box-shadow: 0 0 0 0.125rem var(--border-color);
105
+ box-shadow: 0 0 0 0.125rem var(--border-color);
106
+ border-color: transparent; }
107
+ @media screen and (-ms-high-contrast: none) {
108
+ html[data-whatinput='keyboard'] .dnb-tabs__button:focus::before {
109
+ -webkit-box-shadow: 0 0 0 0.125rem #14555a;
110
+ box-shadow: 0 0 0 0.125rem #14555a;
111
+ -webkit-box-shadow: 0 0 0 0.125rem var(--color-emerald-green);
112
+ box-shadow: 0 0 0 0.125rem var(--color-emerald-green); } }
113
+ .dnb-tabs__button:focus::before {
114
+ top: 0.5rem;
115
+ left: -0.375rem;
116
+ right: -0.375rem;
117
+ bottom: 0.5rem;
118
+ border-radius: 1.5rem; }
119
+
120
+ .dnb-tabs__button[disabled] .dnb-tabs__button__title {
121
+ color: #b3dada;
122
+ color: var(--color-sea-green-30); }
123
+
124
+ .dnb-tabs__button:not([disabled]):active::after, .dnb-tabs__button:not([disabled]).selected::after {
125
+ height: 2px;
126
+ border-radius: 2px;
127
+ background-color: #007272;
128
+ background-color: var(--color-sea-green); }
129
+
130
+ .dnb-tabs__button:not([disabled]):active .dnb-tabs__button__title,
131
+ .dnb-tabs__button:not([disabled]).selected .dnb-tabs__button__title {
132
+ color: #14555a;
133
+ color: var(--color-emerald-green); }
134
+
135
+ .dnb-tabs__button:not([disabled]).selected .dnb-tabs__button__title {
136
+ font-weight: 500;
137
+ font-weight: var(--font-weight-medium); }
138
+
139
+ .dnb-tabs__button span[hidden] {
140
+ font-weight: 500;
141
+ font-weight: var(--font-weight-medium); }
142
+
143
+ html:not([data-whatintent='touch']) .dnb-tabs__button:hover[disabled] {
144
+ cursor: not-allowed; }
145
+
146
+ html:not([data-whatintent='touch']) .dnb-tabs__button:hover:not([disabled]) {
147
+ background-color: #f2f4ec;
148
+ background-color: var(--color-pistachio); }
@@ -0,0 +1 @@
1
+ .dnb-tabs__tabs:not(.dnb-section):before{background-color:#ebebeb;background-color:var(--color-black-8);-webkit-box-shadow:100vw 0 0 0 #ebebeb;box-shadow:100vw 0 0 0 #ebebeb;-webkit-box-shadow:100vw 0 0 0 var(--color-black-8);box-shadow:100vw 0 0 0 var(--color-black-8)}.dnb-tabs__tabs__tablist:focus{border-radius:.5rem}.dnb-tabs--at-edge .dnb-tabs__scroll-nav-button:first-of-type{border-radius:0 50% 50% 0}.dnb-tabs--at-edge .dnb-tabs__scroll-nav-button:last-of-type{border-radius:50% 0 0 50%}.dnb-tabs--at-edge .dnb-tabs__tabs__tablist:focus{border-radius:0}.dnb-tabs__content:focus{position:relative}.dnb-tabs__content:focus:after{border-radius:.5rem;bottom:-.5rem;content:"";left:-.5rem;max-width:100vw;outline:none;position:absolute;right:-.5rem;top:.125rem;z-index:-1}html[data-whatinput=keyboard] .dnb-tabs__content:focus:after{--border-color:var(--color-emerald-green);border-color:transparent;-webkit-box-shadow:0 0 0 .125rem var(--border-color);box-shadow:0 0 0 .125rem var(--border-color)}@media screen and (-ms-high-contrast:none){html[data-whatinput=keyboard] .dnb-tabs__content:focus:after{-webkit-box-shadow:0 0 0 .125rem #14555a;box-shadow:0 0 0 .125rem #14555a;-webkit-box-shadow:0 0 0 .125rem var(--color-emerald-green);box-shadow:0 0 0 .125rem var(--color-emerald-green)}}.dnb-tabs__button__title{color:#007272;color:var(--color-sea-green);display:block;font-size:1.125rem;font-size:var(--font-size-basis);font-weight:400;font-weight:var(--font-weight-regular);padding:.5rem 0 .25rem;text-align:center}html:not([data-whatintent=touch]) .dnb-tabs__button:hover:not([disabled]){background-color:#d2f0e9;background-color:var(--color-mint-green-50)}html:not([data-whatintent=touch]) .dnb-tabs__button:hover:not([disabled]):after{background-color:#007272;background-color:var(--color-sea-green);border-radius:2px;height:2px}.dnb-tabs__button:focus{overflow:visible}.dnb-tabs__button:focus:before{border-radius:inherit;bottom:0;content:"";height:inherit;left:-.5rem;outline:none;position:absolute;right:-.5rem;top:0;z-index:1}html[data-whatinput=keyboard] .dnb-tabs__button:focus:before{--border-color:var(--color-emerald-green);border-color:transparent;-webkit-box-shadow:0 0 0 .125rem var(--border-color);box-shadow:0 0 0 .125rem var(--border-color)}@media screen and (-ms-high-contrast:none){html[data-whatinput=keyboard] .dnb-tabs__button:focus:before{-webkit-box-shadow:0 0 0 .125rem #14555a;box-shadow:0 0 0 .125rem #14555a;-webkit-box-shadow:0 0 0 .125rem var(--color-emerald-green);box-shadow:0 0 0 .125rem var(--color-emerald-green)}}.dnb-tabs__button:focus:before{border-radius:1.5rem;bottom:.5rem;left:-.375rem;right:-.375rem;top:.5rem}.dnb-tabs__button[disabled] .dnb-tabs__button__title{color:#b3dada;color:var(--color-sea-green-30)}.dnb-tabs__button:not([disabled]).selected:after,.dnb-tabs__button:not([disabled]):active:after{background-color:#007272;background-color:var(--color-sea-green);border-radius:2px;height:2px}.dnb-tabs__button:not([disabled]).selected .dnb-tabs__button__title,.dnb-tabs__button:not([disabled]):active .dnb-tabs__button__title{color:#14555a;color:var(--color-emerald-green)}.dnb-tabs__button:not([disabled]).selected .dnb-tabs__button__title,.dnb-tabs__button span[hidden]{font-weight:500;font-weight:var(--font-weight-medium)}html:not([data-whatintent=touch]) .dnb-tabs__button:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-tabs__button:hover:not([disabled]){background-color:#f2f4ec;background-color:var(--color-pistachio)}
@@ -0,0 +1,14 @@
1
+ /*
2
+ * Tabs theme
3
+ *
4
+ */
5
+
6
+ @import './dnb-tabs-theme-ui.scss';
7
+
8
+ .dnb-tabs {
9
+ &__button {
10
+ @include hover() {
11
+ background-color: var(--color-pistachio);
12
+ }
13
+ }
14
+ }
@@ -128,7 +128,8 @@ const TimelineItem = localProps => {
128
128
  text: infoMessage,
129
129
  state: "info",
130
130
  className: "dnb-timeline__item__content__info",
131
- "data-testid": "timeline-item-content-info"
131
+ "data-testid": "timeline-item-content-info",
132
+ stretch: true
132
133
  }))));
133
134
  };
134
135
 
@@ -1,108 +1,47 @@
1
- import * as React from 'react';
2
- export type AnchorSpace =
3
- | string
4
- | number
5
- | boolean
6
- | {
7
- /**
8
- * Use spacing values like: `small`, `1rem`, `1` or , `16px`. Will use `margin-top`.
9
- */
10
- top?: string | number | boolean;
11
-
12
- /**
13
- * Use spacing values like: `small`, `1rem`, `1` or , `16px`. will use `margin-right`.
14
- */
15
- right?: string | number | boolean;
16
-
17
- /**
18
- * Use spacing values like: `small`, `1rem`, `1` or , `16px`. will use `margin-bottom`.
19
- */
20
- bottom?: string | number | boolean;
21
-
22
- /**
23
- * Use spacing values like: `small`, `1rem`, `1` or , `16px`. will use `margin-left`.
24
- */
25
- left?: string | number | boolean;
26
- };
27
- export type AnchorTop = string | number | boolean;
28
- export type AnchorRight = string | number | boolean;
29
- export type AnchorBottom = string | number | boolean;
30
- export type AnchorLeft = string | number | boolean;
31
- export type AnchorElement =
32
- | ((...args: any[]) => any)
33
- | Object
34
- | React.ReactNode;
35
- export type AnchorTo = string | Object | ((...args: any[]) => any);
36
- export type AnchorClassName = string | Object | any[];
37
- export type AnchorTooltip = ((...args: any[]) => any) | React.ReactNode;
38
- export type AnchorSkeleton = string | boolean;
39
-
40
1
  /**
41
- * NB: Do not change the docs (comments) in here. The docs are updated during build time by "generateTypes.js" and "fetchPropertiesFromDocs.js".
2
+ * HTML Element
3
+ *
42
4
  */
43
- export interface AnchorProps extends React.HTMLProps<HTMLElement> {
44
- /**
45
- * Has to be an object with either: `top`, `right`, `bottom` or `left`. Use spacing values like: `small`, `1rem`, `1` or , `16px`.
46
- */
47
- space?: AnchorSpace;
48
-
49
- /**
50
- * Use spacing values like: `small`, `1rem`, `1` or , `16px`. Will use `margin-top`.
51
- */
52
- top?: AnchorTop;
53
-
54
- /**
55
- * Use spacing values like: `small`, `1rem`, `1` or , `16px`. will use `margin-right`.
56
- */
57
- right?: AnchorRight;
58
-
59
- /**
60
- * Use spacing values like: `small`, `1rem`, `1` or , `16px`. will use `margin-bottom`.
61
- */
62
- bottom?: AnchorBottom;
63
-
64
- /**
65
- * Use spacing values like: `small`, `1rem`, `1` or , `16px`. will use `margin-left`.
66
- */
67
- left?: AnchorLeft;
68
-
69
- /**
70
- * Define what HTML or React element should be used (e.g. `element={Link}`). Defaults to semantic `a` element.
71
- */
72
- element?: AnchorElement;
73
-
74
- /**
75
- * Relative or absolute url.
76
- */
77
- href?: string;
78
-
79
- /**
80
- * Use this prop only if you are using a router Link component as the `element` that uses the `to` property to declare the navigation url.
81
- */
82
- to?: AnchorTo;
83
- omitClass?: boolean;
84
-
85
- /**
86
- * The title shown as a tooltip when target is set to `_blank`.
87
- */
88
- target_blank_title?: string;
89
-
90
- /**
91
- * Defines the opening method. Use `_blank` to open a new browser window/tab.
92
- */
93
- target?: string;
94
- className?: AnchorClassName;
95
-
96
- /**
97
- * Provide a string or a React Element to be shown as the tooltip content.
98
- */
99
- tooltip?: AnchorTooltip;
100
- children?: React.ReactNode;
101
-
102
- /**
103
- * If set to `true`, an overlaying skeleton with animation will be shown.
104
- */
105
- skeleton?: AnchorSkeleton;
106
- }
107
- declare const Anchor: React.FC<AnchorProps>;
5
+ import React from 'react';
6
+ import { ISpacingProps } from '../shared/interfaces';
7
+ export declare type AnchorProps = {
8
+ element?: React.ReactNode;
9
+ href?: string;
10
+ to?: string;
11
+ targetBlankTitle?: string;
12
+ target?: string;
13
+ tooltip?: React.ReactNode;
14
+ skeleton?: boolean;
15
+ className?: string;
16
+ children?: React.ReactNode;
17
+ omitClass?: boolean;
18
+ innerRef?: React.ForwardedRef<unknown>;
19
+ id?: string;
20
+ title?: string;
21
+ lang?: string;
22
+ /** @deprecated use innerRef instead */
23
+ inner_ref?: React.ForwardedRef<unknown>;
24
+ /** @deprecated use targetBlankTitle instead */
25
+ target_blank_title?: string;
26
+ } & Partial<Omit<HTMLAnchorElement, 'children'>> & ISpacingProps;
27
+ declare const Anchor: React.ForwardRefExoticComponent<{
28
+ element?: React.ReactNode;
29
+ href?: string;
30
+ to?: string;
31
+ targetBlankTitle?: string;
32
+ target?: string;
33
+ tooltip?: React.ReactNode;
34
+ skeleton?: boolean;
35
+ className?: string;
36
+ children?: React.ReactNode;
37
+ omitClass?: boolean;
38
+ innerRef?: React.ForwardedRef<unknown>;
39
+ id?: string;
40
+ title?: string;
41
+ lang?: string;
42
+ /** @deprecated use innerRef instead */
43
+ inner_ref?: React.ForwardedRef<unknown>;
44
+ /** @deprecated use targetBlankTitle instead */
45
+ target_blank_title?: string;
46
+ } & Partial<Omit<HTMLAnchorElement, "children">> & ISpacingProps & React.RefAttributes<unknown>>;
108
47
  export default Anchor;
@@ -1,96 +1,65 @@
1
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
1
  import _extends from "@babel/runtime/helpers/esm/extends";
4
- const _excluded = ["element", "className", "children", "tooltip", "omitClass", "inner_ref"];
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
-
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
+ const _excluded = ["id", "element", "className", "children", "tooltip", "omitClass", "innerRef", "targetBlankTitle"];
10
4
  import React from 'react';
11
- import PropTypes from 'prop-types';
12
5
  import classnames from 'classnames';
13
- import { spacingPropTypes } from '../components/space/SpacingHelper';
14
6
  import E from './Element';
15
7
  import Context from '../shared/Context';
16
- import { makeUniqueId, extendPropsWithContext } from '../shared/component-helper';
8
+ import { makeUniqueId } from '../shared/component-helper';
17
9
  import Tooltip from '../components/tooltip/Tooltip';
18
- const Anchor = React.forwardRef((props, ref) => {
19
- return React.createElement(AnchorInstance, _extends({
20
- inner_ref: ref
21
- }, props));
22
- });
23
- process.env.NODE_ENV !== "production" ? Anchor.propTypes = _objectSpread(_objectSpread({}, spacingPropTypes), {}, {
24
- element: PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.node]),
25
- href: PropTypes.string,
26
- to: PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.func]),
27
- omitClass: PropTypes.bool,
28
- target_blank_title: PropTypes.string,
29
- target: PropTypes.string,
30
- className: PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.array]),
31
- tooltip: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),
32
- children: PropTypes.node,
33
- skeleton: PropTypes.oneOfType([PropTypes.string, PropTypes.bool])
34
- }) : void 0;
35
- Anchor.defaultProps = {
36
- element: null,
37
- href: null,
38
- to: null,
39
- omitClass: null,
40
- target_blank_title: null,
41
- target: null,
42
- className: null,
43
- tooltip: null,
44
- children: null,
45
- skeleton: null
46
- };
47
-
48
- class AnchorInstance extends React.PureComponent {
49
- constructor(props) {
50
- super(props);
10
+ import usePropsWithContext from '../shared/hooks/usePropsWithContext';
11
+ const defaultProps = {};
51
12
 
52
- _defineProperty(this, "state", {});
13
+ function AnchorInstance(localProps) {
14
+ const context = React.useContext(Context);
15
+ const allProps = usePropsWithContext(localProps, defaultProps, {
16
+ skeleton: context === null || context === void 0 ? void 0 : context.skeleton
17
+ }, context === null || context === void 0 ? void 0 : context.getTranslation(localProps).Anchor, context === null || context === void 0 ? void 0 : context.Anchor);
53
18
 
54
- this._id = props.id || 'id' + makeUniqueId();
55
- this._ref = props.inner_ref || React.createRef();
19
+ if (typeof allProps.inner_ref !== 'undefined') {
20
+ allProps.innerRef = allProps.inner_ref;
21
+ delete allProps.inner_ref;
56
22
  }
57
23
 
58
- render() {
59
- const props = extendPropsWithContext(this.props, Anchor.defaultProps, {
60
- skeleton: this.context && this.context.skeleton
61
- }, this.context.getTranslation(this.props).Anchor, this.context.Anchor);
62
-
63
- const {
64
- element,
65
- className,
66
- children,
67
- tooltip,
68
- omitClass,
69
- inner_ref
70
- } = props,
71
- attributes = _objectWithoutProperties(props, _excluded);
72
-
73
- const showTooltip = props.target === '_blank' && !props.title;
74
- attributes.className = classnames(className, omitClass !== true && 'dnb-anchor', props.target === '_blank' && typeof children !== 'string' && 'dnb-anchor--no-icon');
75
- return React.createElement(React.Fragment, null, React.createElement(E, _extends({
76
- is: element || 'a'
77
- }, attributes, {
78
- inner_ref: this._ref
79
- }), children), showTooltip && React.createElement(Tooltip, {
80
- show_delay: 100,
81
- id: this._id + '-tooltip',
82
- target_element: this._ref,
83
- tooltip: tooltip
84
- }, props.title || props.target_blank_title));
24
+ if (typeof allProps.target_blank_title !== 'undefined') {
25
+ allProps.targetBlankTitle = allProps.target_blank_title;
26
+ delete allProps.target_blank_title;
85
27
  }
86
28
 
87
- }
88
-
89
- _defineProperty(AnchorInstance, "contextType", Context);
29
+ if (!allProps.innerRef) {
30
+ allProps.innerRef = React.createRef();
31
+ }
90
32
 
91
- _defineProperty(AnchorInstance, "tagName", 'dnb-anchor');
33
+ const {
34
+ id,
35
+ element,
36
+ className,
37
+ children,
38
+ tooltip,
39
+ omitClass,
40
+ innerRef,
41
+ targetBlankTitle
42
+ } = allProps,
43
+ attributes = _objectWithoutProperties(allProps, _excluded);
92
44
 
93
- _defineProperty(AnchorInstance, "defaultProps", Anchor.defaultProps);
45
+ const internalId = id || 'id' + makeUniqueId();
46
+ const showTooltip = allProps.target === '_blank' && !allProps.title;
47
+ return React.createElement(React.Fragment, null, React.createElement(E, _extends({
48
+ is: element || 'a',
49
+ className: classnames(className, omitClass !== true && 'dnb-anchor', allProps.target === '_blank' && typeof children !== 'string' && 'dnb-anchor--no-icon')
50
+ }, attributes, {
51
+ innerRef: innerRef
52
+ }), children), showTooltip && React.createElement(Tooltip, {
53
+ show_delay: 100,
54
+ id: internalId + '-tooltip',
55
+ target_element: innerRef,
56
+ tooltip: tooltip
57
+ }, allProps.title || targetBlankTitle));
58
+ }
94
59
 
95
- process.env.NODE_ENV !== "production" ? AnchorInstance.propTypes = Anchor.propTypes : void 0;
60
+ const Anchor = React.forwardRef((props, ref) => {
61
+ return React.createElement(AnchorInstance, _extends({
62
+ inner_ref: ref
63
+ }, props));
64
+ });
96
65
  export default Anchor;