@dnb/eufemia 10.20.0 → 10.22.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 (1062) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/cjs/components/aria-live/useAriaLive.d.ts +1 -1
  3. package/cjs/components/breadcrumb/Breadcrumb.d.ts +2 -2
  4. package/cjs/components/breadcrumb/Breadcrumb.js +3 -3
  5. package/cjs/components/breadcrumb/Breadcrumb.js.map +1 -1
  6. package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +7 -2
  7. package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  8. package/cjs/components/breadcrumb/style/dnb-breadcrumb.scss +10 -2
  9. package/cjs/components/button/Button.js +2 -2
  10. package/cjs/components/button/Button.js.map +1 -1
  11. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.css +23 -11
  12. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -3
  13. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.scss +30 -14
  14. package/cjs/components/card/style/dnb-card.css +11 -2
  15. package/cjs/components/card/style/dnb-card.min.css +1 -1
  16. package/cjs/components/card/style/dnb-card.scss +12 -2
  17. package/cjs/components/date-picker/DatePicker.d.ts +10 -1
  18. package/cjs/components/date-picker/DatePicker.js +5 -2
  19. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  20. package/cjs/components/form-label/style/dnb-form-label.css +4 -8
  21. package/cjs/components/form-label/style/dnb-form-label.min.css +1 -1
  22. package/cjs/components/form-label/style/dnb-form-label.scss +5 -8
  23. package/cjs/components/form-status/style/dnb-form-status.css +11 -0
  24. package/cjs/components/form-status/style/dnb-form-status.min.css +1 -1
  25. package/cjs/components/form-status/style/dnb-form-status.scss +11 -0
  26. package/cjs/components/global-status/GlobalStatus.d.ts +1 -1
  27. package/cjs/components/global-status/GlobalStatusProvider.d.ts +1 -1
  28. package/cjs/components/height-animation/HeightAnimationInstance.d.ts +5 -6
  29. package/cjs/components/height-animation/HeightAnimationInstance.js +12 -12
  30. package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
  31. package/cjs/components/height-animation/useHeightAnimation.js +11 -10
  32. package/cjs/components/height-animation/useHeightAnimation.js.map +1 -1
  33. package/cjs/components/info-card/InfoCard.d.ts +6 -0
  34. package/cjs/components/info-card/InfoCard.js +4 -2
  35. package/cjs/components/info-card/InfoCard.js.map +1 -1
  36. package/cjs/components/info-card/style/dnb-info-card.css +3 -1
  37. package/cjs/components/info-card/style/dnb-info-card.min.css +1 -1
  38. package/cjs/components/info-card/style/dnb-info-card.scss +4 -2
  39. package/cjs/components/input/Input.d.ts +9 -9
  40. package/cjs/components/input/InputDocs.d.ts +2 -0
  41. package/cjs/components/input/InputDocs.js +165 -0
  42. package/cjs/components/input/InputDocs.js.map +1 -0
  43. package/cjs/components/input/InputPassword.d.ts +6 -17
  44. package/cjs/components/input/InputPassword.js +4 -85
  45. package/cjs/components/input/InputPassword.js.map +1 -1
  46. package/cjs/components/input-masked/InputMasked.d.ts +6 -93
  47. package/cjs/components/input-masked/InputMasked.js +3 -1
  48. package/cjs/components/input-masked/InputMasked.js.map +1 -1
  49. package/cjs/components/input-masked/InputMaskedDocs.d.ts +2 -0
  50. package/cjs/components/input-masked/InputMaskedDocs.js +85 -0
  51. package/cjs/components/input-masked/InputMaskedDocs.js.map +1 -0
  52. package/cjs/components/input-masked/InputMaskedHooks.js +7 -4
  53. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  54. package/cjs/components/input-masked/MultiInputMask.js +2 -6
  55. package/cjs/components/input-masked/MultiInputMask.js.map +1 -1
  56. package/cjs/components/input-masked/style/dnb-input-masked.css +3 -0
  57. package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
  58. package/cjs/components/input-masked/style/dnb-input-masked.scss +5 -0
  59. package/cjs/components/number-format/NumberFormat.d.ts +1 -1
  60. package/cjs/components/number-format/NumberUtils.js +22 -14
  61. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  62. package/cjs/components/pagination/InfinityScroller.d.ts +1 -1
  63. package/cjs/components/progress-indicator/ProgressIndicator.js +5 -7
  64. package/cjs/components/progress-indicator/ProgressIndicator.js.map +1 -1
  65. package/cjs/components/progress-indicator/ProgressIndicatorCircular.js +1 -1
  66. package/cjs/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
  67. package/cjs/components/progress-indicator/ProgressIndicatorLinear.js +4 -4
  68. package/cjs/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
  69. package/cjs/components/progress-indicator/style/dnb-progress-indicator.css +5 -2
  70. package/cjs/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  71. package/cjs/components/progress-indicator/style/dnb-progress-indicator.scss +5 -2
  72. package/cjs/components/slider/Slider.d.ts +1 -0
  73. package/cjs/components/slider/Slider.js +10 -1
  74. package/cjs/components/slider/Slider.js.map +1 -1
  75. package/cjs/components/slider/SliderInstance.js +20 -6
  76. package/cjs/components/slider/SliderInstance.js.map +1 -1
  77. package/cjs/components/slider/SliderMarker.d.ts +7 -0
  78. package/cjs/components/slider/SliderMarker.js +62 -0
  79. package/cjs/components/slider/SliderMarker.js.map +1 -0
  80. package/cjs/components/slider/SliderProvider.js +2 -1
  81. package/cjs/components/slider/SliderProvider.js.map +1 -1
  82. package/cjs/components/slider/style/dnb-slider.css +43 -2
  83. package/cjs/components/slider/style/dnb-slider.min.css +1 -1
  84. package/cjs/components/slider/style/dnb-slider.scss +44 -1
  85. package/cjs/components/slider/style/themes/dnb-slider-theme-sbanken.css +3 -0
  86. package/cjs/components/slider/style/themes/dnb-slider-theme-sbanken.min.css +1 -1
  87. package/cjs/components/slider/style/themes/dnb-slider-theme-sbanken.scss +4 -0
  88. package/cjs/components/slider/style/themes/dnb-slider-theme-ui.css +3 -0
  89. package/cjs/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
  90. package/cjs/components/slider/style/themes/dnb-slider-theme-ui.scss +5 -0
  91. package/cjs/components/slider/types.d.ts +6 -0
  92. package/cjs/components/slider/types.js.map +1 -1
  93. package/cjs/components/space/SpacingHelper.d.ts +5 -5
  94. package/cjs/components/table/Table.js +2 -2
  95. package/cjs/components/table/Table.js.map +1 -1
  96. package/cjs/components/table/TableAccordion.js +42 -58
  97. package/cjs/components/table/TableAccordion.js.map +1 -1
  98. package/cjs/components/table/TableAccordionTd.d.ts +9 -0
  99. package/cjs/components/table/{TableAccordionContent.js → TableAccordionTd.js} +18 -56
  100. package/cjs/components/table/TableAccordionTd.js.map +1 -0
  101. package/cjs/components/table/TableAccordionTr.d.ts +13 -0
  102. package/cjs/components/table/TableAccordionTr.js +61 -0
  103. package/cjs/components/table/TableAccordionTr.js.map +1 -0
  104. package/cjs/components/table/TableContext.d.ts +2 -2
  105. package/cjs/components/table/TableContext.js +4 -3
  106. package/cjs/components/table/TableContext.js.map +1 -1
  107. package/cjs/components/table/TableTd.d.ts +2 -2
  108. package/cjs/components/table/TableTd.js +2 -2
  109. package/cjs/components/table/TableTd.js.map +1 -1
  110. package/cjs/components/table/TableTr.d.ts +6 -1
  111. package/cjs/components/table/TableTr.js +10 -5
  112. package/cjs/components/table/TableTr.js.map +1 -1
  113. package/cjs/components/table/style/dnb-table.css +226 -139
  114. package/cjs/components/table/style/dnb-table.min.css +1 -1
  115. package/cjs/components/table/style/dnb-table.scss +60 -4
  116. package/cjs/components/table/style/table-accordion.scss +83 -98
  117. package/cjs/components/table/style/table-container.scss +9 -9
  118. package/cjs/components/table/style/table-mixins.scss +19 -2
  119. package/cjs/components/table/style/table-td.scss +82 -60
  120. package/cjs/components/table/style/table-th.scss +5 -30
  121. package/cjs/components/table/style/table-tr.scss +0 -20
  122. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.css +34 -7
  123. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.min.css +3 -1
  124. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.scss +29 -10
  125. package/cjs/components/table/style/themes/dnb-table-theme-ui.css +14 -9
  126. package/cjs/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  127. package/cjs/components/table/style/themes/dnb-table-theme-ui.scss +12 -22
  128. package/cjs/components/table/useTableAnimationHandler.d.ts +20 -0
  129. package/cjs/components/table/useTableAnimationHandler.js +73 -0
  130. package/cjs/components/table/useTableAnimationHandler.js.map +1 -0
  131. package/cjs/components/textarea/Textarea.d.ts +4 -10
  132. package/cjs/components/textarea/TextareaDocs.d.ts +2 -0
  133. package/cjs/components/textarea/TextareaDocs.js +105 -0
  134. package/cjs/components/textarea/TextareaDocs.js.map +1 -0
  135. package/cjs/components/textarea/style/dnb-textarea.css +1 -0
  136. package/cjs/components/textarea/style/dnb-textarea.min.css +1 -1
  137. package/cjs/components/textarea/style/dnb-textarea.scss +3 -0
  138. package/cjs/components/upload/UploadInfo.js +1 -1
  139. package/cjs/components/upload/UploadInfo.js.map +1 -1
  140. package/cjs/core/jest/jestSetupScreenshots.css +7 -0
  141. package/cjs/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +1 -0
  142. package/cjs/elements/lib.d.ts +1 -1
  143. package/cjs/elements/lists/Dl.d.ts +5 -1
  144. package/cjs/elements/lists/Dl.js +5 -4
  145. package/cjs/elements/lists/Dl.js.map +1 -1
  146. package/cjs/elements/lists/style/lists-mixins.scss +24 -1
  147. package/cjs/extensions/forms/DataContext/Context.d.ts +1 -2
  148. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  149. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +1 -2
  150. package/cjs/extensions/forms/DataContext/Provider/Provider.js +54 -40
  151. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  152. package/cjs/extensions/forms/Field/Currency/Currency.js +1 -1
  153. package/cjs/extensions/forms/Field/Currency/Currency.js.map +1 -1
  154. package/cjs/extensions/forms/Field/Expiry/Expiry.js +1 -0
  155. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  156. package/cjs/extensions/forms/Field/FieldDocs.d.ts +3 -0
  157. package/cjs/extensions/forms/Field/FieldDocs.js +18 -0
  158. package/cjs/extensions/forms/Field/FieldDocs.js.map +1 -0
  159. package/cjs/extensions/forms/Field/Number/Number.d.ts +1 -0
  160. package/cjs/extensions/forms/Field/Number/Number.js +13 -7
  161. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  162. package/cjs/extensions/forms/Field/Number/NumberDocs.d.ts +2 -0
  163. package/cjs/extensions/forms/Field/Number/NumberDocs.js +92 -0
  164. package/cjs/extensions/forms/Field/Number/NumberDocs.js.map +1 -0
  165. package/cjs/extensions/forms/Field/Number/style/dnb-number.css +3 -1
  166. package/cjs/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
  167. package/cjs/extensions/forms/Field/Number/style/dnb-number.scss +4 -1
  168. package/cjs/extensions/forms/Field/Password/Password.d.ts +45 -0
  169. package/cjs/extensions/forms/Field/Password/Password.js +111 -0
  170. package/cjs/extensions/forms/Field/Password/Password.js.map +1 -0
  171. package/cjs/extensions/forms/Field/Password/index.d.ts +2 -0
  172. package/cjs/extensions/forms/Field/Password/index.js +27 -0
  173. package/cjs/extensions/forms/Field/Password/index.js.map +1 -0
  174. package/cjs/extensions/forms/Field/Password/style/dnb-password.css +6 -0
  175. package/cjs/extensions/forms/Field/Password/style/dnb-password.min.css +1 -0
  176. package/cjs/extensions/forms/Field/Password/style/dnb-password.scss +10 -0
  177. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -5
  178. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  179. package/cjs/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +0 -12
  180. package/cjs/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
  181. package/cjs/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.scss +0 -11
  182. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +0 -1
  183. package/cjs/extensions/forms/Field/Selection/Selection.js +1 -9
  184. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  185. package/cjs/extensions/forms/Field/String/String.d.ts +20 -9
  186. package/cjs/extensions/forms/Field/String/String.js +52 -31
  187. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  188. package/cjs/extensions/forms/Field/String/StringDocs.d.ts +2 -0
  189. package/cjs/extensions/forms/Field/String/StringDocs.js +106 -0
  190. package/cjs/extensions/forms/Field/String/StringDocs.js.map +1 -0
  191. package/cjs/extensions/forms/Field/Toggle/Toggle.js +1 -1
  192. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  193. package/cjs/extensions/forms/Field/index.d.ts +1 -0
  194. package/cjs/extensions/forms/Field/index.js +7 -0
  195. package/cjs/extensions/forms/Field/index.js.map +1 -1
  196. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +8 -3
  197. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +204 -62
  198. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  199. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +39 -6
  200. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  201. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +2 -0
  202. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js +60 -0
  203. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -0
  204. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +29 -2
  205. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  206. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +28 -0
  207. package/cjs/extensions/forms/Form/Appearance/Appearance.d.ts +7 -0
  208. package/cjs/extensions/forms/Form/Appearance/Appearance.js +38 -0
  209. package/cjs/extensions/forms/Form/Appearance/Appearance.js.map +1 -0
  210. package/cjs/extensions/forms/Form/Appearance/AppearanceDocs.d.ts +2 -0
  211. package/cjs/extensions/forms/Form/Appearance/AppearanceDocs.js +15 -0
  212. package/cjs/extensions/forms/Form/Appearance/AppearanceDocs.js.map +1 -0
  213. package/cjs/extensions/forms/Form/Appearance/index.d.ts +2 -0
  214. package/cjs/extensions/forms/Form/Appearance/index.js +27 -0
  215. package/cjs/extensions/forms/Form/Appearance/index.js.map +1 -0
  216. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +6 -0
  217. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  218. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +10 -2
  219. package/cjs/extensions/forms/Form/data-context/useData.d.ts +1 -1
  220. package/cjs/extensions/forms/Form/data-context/useData.js +2 -18
  221. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  222. package/cjs/extensions/forms/Form/data-context/useError.d.ts +2 -1
  223. package/cjs/extensions/forms/Form/data-context/useError.js +4 -2
  224. package/cjs/extensions/forms/Form/data-context/useError.js.map +1 -1
  225. package/cjs/extensions/forms/Form/index.d.ts +1 -0
  226. package/cjs/extensions/forms/Form/index.js +7 -0
  227. package/cjs/extensions/forms/Form/index.js.map +1 -1
  228. package/cjs/extensions/forms/Value/Currency/Currency.js +2 -2
  229. package/cjs/extensions/forms/Value/Currency/Currency.js.map +1 -1
  230. package/cjs/extensions/forms/Value/Number/Number.d.ts +2 -2
  231. package/cjs/extensions/forms/Value/Number/Number.js +1 -1
  232. package/cjs/extensions/forms/Value/Number/Number.js.map +1 -1
  233. package/cjs/extensions/forms/Value/SummaryList/SummaryList.d.ts +7 -0
  234. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js +35 -0
  235. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -0
  236. package/cjs/extensions/forms/Value/SummaryList/SummaryListContext.d.ts +7 -0
  237. package/cjs/extensions/forms/Value/SummaryList/SummaryListContext.js +12 -0
  238. package/cjs/extensions/forms/Value/SummaryList/SummaryListContext.js.map +1 -0
  239. package/cjs/extensions/forms/Value/SummaryList/index.d.ts +2 -0
  240. package/cjs/extensions/forms/Value/SummaryList/index.js +27 -0
  241. package/cjs/extensions/forms/Value/SummaryList/index.js.map +1 -0
  242. package/cjs/extensions/forms/Value/ValueDocs.d.ts +2 -0
  243. package/cjs/extensions/forms/Value/ValueDocs.js +40 -0
  244. package/cjs/extensions/forms/Value/ValueDocs.js.map +1 -0
  245. package/cjs/extensions/forms/Value/index.d.ts +1 -0
  246. package/cjs/extensions/forms/Value/index.js +7 -0
  247. package/cjs/extensions/forms/Value/index.js.map +1 -1
  248. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +13 -3
  249. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  250. package/cjs/extensions/forms/hooks/DataValueDocs.d.ts +3 -0
  251. package/cjs/extensions/forms/hooks/DataValueDocs.js +118 -0
  252. package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -0
  253. package/cjs/extensions/forms/hooks/useDataValue.d.ts +6 -14
  254. package/cjs/extensions/forms/hooks/useDataValue.js +90 -21
  255. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  256. package/cjs/extensions/forms/hooks/useId.js +1 -1
  257. package/cjs/extensions/forms/hooks/useId.js.map +1 -1
  258. package/cjs/extensions/forms/hooks/useMountEffect.js +1 -1
  259. package/cjs/extensions/forms/hooks/useMountEffect.js.map +1 -1
  260. package/cjs/extensions/forms/hooks/useMounted.d.ts +2 -0
  261. package/cjs/extensions/forms/hooks/useMounted.js +19 -0
  262. package/cjs/extensions/forms/hooks/useMounted.js.map +1 -0
  263. package/cjs/extensions/forms/hooks/useUnmountEffect.d.ts +4 -0
  264. package/cjs/extensions/forms/hooks/useUnmountEffect.js +14 -0
  265. package/cjs/extensions/forms/hooks/useUnmountEffect.js.map +1 -0
  266. package/cjs/extensions/forms/style/dnb-forms.css +45 -15
  267. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  268. package/cjs/extensions/forms/types.d.ts +6 -4
  269. package/cjs/extensions/forms/types.js.map +1 -1
  270. package/cjs/extensions/payment-card/utils/CardDesigns.d.ts +96 -96
  271. package/cjs/fragments/drawer-list/DrawerListHelpers.d.ts +52 -52
  272. package/cjs/shared/Context.d.ts +2 -0
  273. package/cjs/shared/Context.js.map +1 -1
  274. package/cjs/shared/Eufemia.d.ts +1 -1
  275. package/cjs/shared/Eufemia.js +2 -2
  276. package/cjs/shared/Eufemia.js.map +1 -1
  277. package/cjs/shared/Theme.d.ts +7 -1
  278. package/cjs/shared/Theme.js +20 -7
  279. package/cjs/shared/Theme.js.map +1 -1
  280. package/cjs/shared/component-helper.d.ts +1 -0
  281. package/cjs/shared/component-helper.js +10 -0
  282. package/cjs/shared/component-helper.js.map +1 -1
  283. package/cjs/shared/helpers/debounce.d.ts +37 -0
  284. package/cjs/shared/helpers/debounce.js +92 -0
  285. package/cjs/shared/helpers/debounce.js.map +1 -0
  286. package/cjs/shared/helpers/filterValidProps.d.ts +2 -2
  287. package/cjs/shared/helpers/filterValidProps.js +2 -2
  288. package/cjs/shared/helpers/filterValidProps.js.map +1 -1
  289. package/cjs/shared/helpers/useSharedState.d.ts +1 -0
  290. package/cjs/shared/helpers/useSharedState.js +52 -20
  291. package/cjs/shared/helpers/useSharedState.js.map +1 -1
  292. package/cjs/shared/helpers/withCamelCaseProps.d.ts +14 -1
  293. package/cjs/shared/helpers/withCamelCaseProps.js.map +1 -1
  294. package/cjs/shared/helpers.d.ts +1 -25
  295. package/cjs/shared/helpers.js +15 -37
  296. package/cjs/shared/helpers.js.map +1 -1
  297. package/cjs/shared/locales/en-GB.d.ts +5 -3
  298. package/cjs/shared/locales/en-GB.js +7 -5
  299. package/cjs/shared/locales/en-GB.js.map +1 -1
  300. package/cjs/shared/locales/en-US.d.ts +5 -3
  301. package/cjs/shared/locales/index.d.ts +10 -6
  302. package/cjs/shared/locales/nb-NO.d.ts +5 -3
  303. package/cjs/shared/locales/nb-NO.js +7 -5
  304. package/cjs/shared/locales/nb-NO.js.map +1 -1
  305. package/cjs/shared/types.d.ts +5 -0
  306. package/cjs/shared/types.js.map +1 -1
  307. package/cjs/shared/useTheme.d.ts +1 -0
  308. package/cjs/style/dnb-ui-components.css +359 -171
  309. package/cjs/style/dnb-ui-components.min.css +3 -3
  310. package/cjs/style/dnb-ui-elements.css +25 -5
  311. package/cjs/style/dnb-ui-elements.min.css +1 -1
  312. package/cjs/style/dnb-ui-extensions.css +45 -15
  313. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  314. package/cjs/style/dnb-ui-forms.css +45 -15
  315. package/cjs/style/dnb-ui-forms.min.css +1 -1
  316. package/cjs/style/dnb-ui-forms.scss +1 -0
  317. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +25 -5
  318. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  319. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +421 -195
  320. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  321. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +25 -5
  322. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  323. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +45 -15
  324. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  325. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +45 -15
  326. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  327. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +26 -5
  328. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  329. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +464 -204
  330. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +8 -6
  331. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +26 -5
  332. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  333. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +45 -15
  334. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  335. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +45 -15
  336. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  337. package/cjs/style/themes/theme-ui/prism/dnb-prism-theme.d.ts +3 -3
  338. package/cjs/style/themes/theme-ui/ui-theme-basis.css +25 -5
  339. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  340. package/cjs/style/themes/theme-ui/ui-theme-components.css +421 -195
  341. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  342. package/cjs/style/themes/theme-ui/ui-theme-elements.css +25 -5
  343. package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  344. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +45 -15
  345. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  346. package/cjs/style/themes/theme-ui/ui-theme-forms.css +45 -15
  347. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  348. package/cjs/style/themes/theme-ui/ui-theme-tags.css +25 -5
  349. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  350. package/components/aria-live/useAriaLive.d.ts +1 -1
  351. package/components/breadcrumb/Breadcrumb.d.ts +2 -2
  352. package/components/breadcrumb/Breadcrumb.js +3 -3
  353. package/components/breadcrumb/Breadcrumb.js.map +1 -1
  354. package/components/breadcrumb/style/dnb-breadcrumb.css +7 -2
  355. package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  356. package/components/breadcrumb/style/dnb-breadcrumb.scss +10 -2
  357. package/components/button/Button.js +2 -2
  358. package/components/button/Button.js.map +1 -1
  359. package/components/button/style/themes/dnb-button-theme-sbanken.css +23 -11
  360. package/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -3
  361. package/components/button/style/themes/dnb-button-theme-sbanken.scss +30 -14
  362. package/components/card/style/dnb-card.css +11 -2
  363. package/components/card/style/dnb-card.min.css +1 -1
  364. package/components/card/style/dnb-card.scss +12 -2
  365. package/components/date-picker/DatePicker.d.ts +10 -1
  366. package/components/date-picker/DatePicker.js +5 -2
  367. package/components/date-picker/DatePicker.js.map +1 -1
  368. package/components/form-label/style/dnb-form-label.css +4 -8
  369. package/components/form-label/style/dnb-form-label.min.css +1 -1
  370. package/components/form-label/style/dnb-form-label.scss +5 -8
  371. package/components/form-status/style/dnb-form-status.css +11 -0
  372. package/components/form-status/style/dnb-form-status.min.css +1 -1
  373. package/components/form-status/style/dnb-form-status.scss +11 -0
  374. package/components/global-status/GlobalStatus.d.ts +1 -1
  375. package/components/global-status/GlobalStatusProvider.d.ts +1 -1
  376. package/components/height-animation/HeightAnimationInstance.d.ts +5 -6
  377. package/components/height-animation/HeightAnimationInstance.js +12 -12
  378. package/components/height-animation/HeightAnimationInstance.js.map +1 -1
  379. package/components/height-animation/useHeightAnimation.js +11 -10
  380. package/components/height-animation/useHeightAnimation.js.map +1 -1
  381. package/components/info-card/InfoCard.d.ts +6 -0
  382. package/components/info-card/InfoCard.js +4 -2
  383. package/components/info-card/InfoCard.js.map +1 -1
  384. package/components/info-card/style/dnb-info-card.css +3 -1
  385. package/components/info-card/style/dnb-info-card.min.css +1 -1
  386. package/components/info-card/style/dnb-info-card.scss +4 -2
  387. package/components/input/Input.d.ts +9 -9
  388. package/components/input/InputDocs.d.ts +2 -0
  389. package/components/input/InputDocs.js +158 -0
  390. package/components/input/InputDocs.js.map +1 -0
  391. package/components/input/InputPassword.d.ts +6 -17
  392. package/components/input/InputPassword.js +3 -81
  393. package/components/input/InputPassword.js.map +1 -1
  394. package/components/input-masked/InputMasked.d.ts +6 -93
  395. package/components/input-masked/InputMasked.js +3 -1
  396. package/components/input-masked/InputMasked.js.map +1 -1
  397. package/components/input-masked/InputMaskedDocs.d.ts +2 -0
  398. package/components/input-masked/InputMaskedDocs.js +78 -0
  399. package/components/input-masked/InputMaskedDocs.js.map +1 -0
  400. package/components/input-masked/InputMaskedHooks.js +7 -4
  401. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  402. package/components/input-masked/MultiInputMask.js +2 -6
  403. package/components/input-masked/MultiInputMask.js.map +1 -1
  404. package/components/input-masked/style/dnb-input-masked.css +3 -0
  405. package/components/input-masked/style/dnb-input-masked.min.css +1 -1
  406. package/components/input-masked/style/dnb-input-masked.scss +5 -0
  407. package/components/number-format/NumberFormat.d.ts +1 -1
  408. package/components/number-format/NumberUtils.js +22 -14
  409. package/components/number-format/NumberUtils.js.map +1 -1
  410. package/components/pagination/InfinityScroller.d.ts +1 -1
  411. package/components/progress-indicator/ProgressIndicator.js +5 -7
  412. package/components/progress-indicator/ProgressIndicator.js.map +1 -1
  413. package/components/progress-indicator/ProgressIndicatorCircular.js +1 -1
  414. package/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
  415. package/components/progress-indicator/ProgressIndicatorLinear.js +4 -4
  416. package/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
  417. package/components/progress-indicator/style/dnb-progress-indicator.css +5 -2
  418. package/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  419. package/components/progress-indicator/style/dnb-progress-indicator.scss +5 -2
  420. package/components/slider/Slider.d.ts +1 -0
  421. package/components/slider/Slider.js +1 -0
  422. package/components/slider/Slider.js.map +1 -1
  423. package/components/slider/SliderInstance.js +18 -5
  424. package/components/slider/SliderInstance.js.map +1 -1
  425. package/components/slider/SliderMarker.d.ts +7 -0
  426. package/components/slider/SliderMarker.js +53 -0
  427. package/components/slider/SliderMarker.js.map +1 -0
  428. package/components/slider/SliderProvider.js +2 -1
  429. package/components/slider/SliderProvider.js.map +1 -1
  430. package/components/slider/style/dnb-slider.css +43 -2
  431. package/components/slider/style/dnb-slider.min.css +1 -1
  432. package/components/slider/style/dnb-slider.scss +44 -1
  433. package/components/slider/style/themes/dnb-slider-theme-sbanken.css +3 -0
  434. package/components/slider/style/themes/dnb-slider-theme-sbanken.min.css +1 -1
  435. package/components/slider/style/themes/dnb-slider-theme-sbanken.scss +4 -0
  436. package/components/slider/style/themes/dnb-slider-theme-ui.css +3 -0
  437. package/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
  438. package/components/slider/style/themes/dnb-slider-theme-ui.scss +5 -0
  439. package/components/slider/types.d.ts +6 -0
  440. package/components/slider/types.js.map +1 -1
  441. package/components/space/SpacingHelper.d.ts +5 -5
  442. package/components/table/Table.js +1 -1
  443. package/components/table/Table.js.map +1 -1
  444. package/components/table/TableAccordion.js +40 -54
  445. package/components/table/TableAccordion.js.map +1 -1
  446. package/components/table/TableAccordionTd.d.ts +9 -0
  447. package/{es/components/table/TableAccordionContent.js → components/table/TableAccordionTd.js} +16 -50
  448. package/components/table/TableAccordionTd.js.map +1 -0
  449. package/components/table/TableAccordionTr.d.ts +13 -0
  450. package/components/table/TableAccordionTr.js +51 -0
  451. package/components/table/TableAccordionTr.js.map +1 -0
  452. package/components/table/TableContext.d.ts +2 -2
  453. package/components/table/TableContext.js +2 -2
  454. package/components/table/TableContext.js.map +1 -1
  455. package/components/table/TableTd.d.ts +2 -2
  456. package/components/table/TableTd.js +2 -2
  457. package/components/table/TableTd.js.map +1 -1
  458. package/components/table/TableTr.d.ts +6 -1
  459. package/components/table/TableTr.js +9 -4
  460. package/components/table/TableTr.js.map +1 -1
  461. package/components/table/style/dnb-table.css +226 -139
  462. package/components/table/style/dnb-table.min.css +1 -1
  463. package/components/table/style/dnb-table.scss +60 -4
  464. package/components/table/style/table-accordion.scss +83 -98
  465. package/components/table/style/table-container.scss +9 -9
  466. package/components/table/style/table-mixins.scss +19 -2
  467. package/components/table/style/table-td.scss +82 -60
  468. package/components/table/style/table-th.scss +5 -30
  469. package/components/table/style/table-tr.scss +0 -20
  470. package/components/table/style/themes/dnb-table-theme-sbanken.css +34 -7
  471. package/components/table/style/themes/dnb-table-theme-sbanken.min.css +3 -1
  472. package/components/table/style/themes/dnb-table-theme-sbanken.scss +29 -10
  473. package/components/table/style/themes/dnb-table-theme-ui.css +14 -9
  474. package/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  475. package/components/table/style/themes/dnb-table-theme-ui.scss +12 -22
  476. package/components/table/useTableAnimationHandler.d.ts +20 -0
  477. package/components/table/useTableAnimationHandler.js +63 -0
  478. package/components/table/useTableAnimationHandler.js.map +1 -0
  479. package/components/textarea/Textarea.d.ts +4 -10
  480. package/components/textarea/TextareaDocs.d.ts +2 -0
  481. package/components/textarea/TextareaDocs.js +98 -0
  482. package/components/textarea/TextareaDocs.js.map +1 -0
  483. package/components/textarea/style/dnb-textarea.css +1 -0
  484. package/components/textarea/style/dnb-textarea.min.css +1 -1
  485. package/components/textarea/style/dnb-textarea.scss +3 -0
  486. package/components/upload/UploadInfo.js +1 -1
  487. package/components/upload/UploadInfo.js.map +1 -1
  488. package/core/jest/jestSetupScreenshots.css +7 -0
  489. package/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +1 -0
  490. package/elements/lib.d.ts +1 -1
  491. package/elements/lists/Dl.d.ts +5 -1
  492. package/elements/lists/Dl.js +5 -4
  493. package/elements/lists/Dl.js.map +1 -1
  494. package/elements/lists/style/lists-mixins.scss +24 -1
  495. package/es/components/aria-live/useAriaLive.d.ts +1 -1
  496. package/es/components/breadcrumb/Breadcrumb.d.ts +2 -2
  497. package/es/components/breadcrumb/Breadcrumb.js +3 -3
  498. package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
  499. package/es/components/breadcrumb/style/dnb-breadcrumb.css +7 -2
  500. package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  501. package/es/components/breadcrumb/style/dnb-breadcrumb.scss +10 -2
  502. package/es/components/button/Button.js +2 -2
  503. package/es/components/button/Button.js.map +1 -1
  504. package/es/components/button/style/themes/dnb-button-theme-sbanken.css +23 -11
  505. package/es/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -3
  506. package/es/components/button/style/themes/dnb-button-theme-sbanken.scss +30 -14
  507. package/es/components/card/style/dnb-card.css +11 -2
  508. package/es/components/card/style/dnb-card.min.css +1 -1
  509. package/es/components/card/style/dnb-card.scss +12 -2
  510. package/es/components/date-picker/DatePicker.d.ts +10 -1
  511. package/es/components/date-picker/DatePicker.js +5 -2
  512. package/es/components/date-picker/DatePicker.js.map +1 -1
  513. package/es/components/form-label/style/dnb-form-label.css +4 -8
  514. package/es/components/form-label/style/dnb-form-label.min.css +1 -1
  515. package/es/components/form-label/style/dnb-form-label.scss +5 -8
  516. package/es/components/form-status/style/dnb-form-status.css +11 -0
  517. package/es/components/form-status/style/dnb-form-status.min.css +1 -1
  518. package/es/components/form-status/style/dnb-form-status.scss +11 -0
  519. package/es/components/global-status/GlobalStatus.d.ts +1 -1
  520. package/es/components/global-status/GlobalStatusProvider.d.ts +1 -1
  521. package/es/components/height-animation/HeightAnimationInstance.d.ts +5 -6
  522. package/es/components/height-animation/HeightAnimationInstance.js +12 -12
  523. package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
  524. package/es/components/height-animation/useHeightAnimation.js +11 -10
  525. package/es/components/height-animation/useHeightAnimation.js.map +1 -1
  526. package/es/components/info-card/InfoCard.d.ts +6 -0
  527. package/es/components/info-card/InfoCard.js +4 -2
  528. package/es/components/info-card/InfoCard.js.map +1 -1
  529. package/es/components/info-card/style/dnb-info-card.css +3 -1
  530. package/es/components/info-card/style/dnb-info-card.min.css +1 -1
  531. package/es/components/info-card/style/dnb-info-card.scss +4 -2
  532. package/es/components/input/Input.d.ts +9 -9
  533. package/es/components/input/InputDocs.d.ts +2 -0
  534. package/es/components/input/InputDocs.js +158 -0
  535. package/es/components/input/InputDocs.js.map +1 -0
  536. package/es/components/input/InputPassword.d.ts +6 -17
  537. package/es/components/input/InputPassword.js +3 -81
  538. package/es/components/input/InputPassword.js.map +1 -1
  539. package/es/components/input-masked/InputMasked.d.ts +6 -93
  540. package/es/components/input-masked/InputMasked.js +3 -1
  541. package/es/components/input-masked/InputMasked.js.map +1 -1
  542. package/es/components/input-masked/InputMaskedDocs.d.ts +2 -0
  543. package/es/components/input-masked/InputMaskedDocs.js +78 -0
  544. package/es/components/input-masked/InputMaskedDocs.js.map +1 -0
  545. package/es/components/input-masked/InputMaskedHooks.js +7 -4
  546. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  547. package/es/components/input-masked/MultiInputMask.js +2 -6
  548. package/es/components/input-masked/MultiInputMask.js.map +1 -1
  549. package/es/components/input-masked/style/dnb-input-masked.css +3 -0
  550. package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
  551. package/es/components/input-masked/style/dnb-input-masked.scss +5 -0
  552. package/es/components/number-format/NumberFormat.d.ts +1 -1
  553. package/es/components/number-format/NumberUtils.js +23 -14
  554. package/es/components/number-format/NumberUtils.js.map +1 -1
  555. package/es/components/pagination/InfinityScroller.d.ts +1 -1
  556. package/es/components/progress-indicator/ProgressIndicator.js +5 -7
  557. package/es/components/progress-indicator/ProgressIndicator.js.map +1 -1
  558. package/es/components/progress-indicator/ProgressIndicatorCircular.js +1 -1
  559. package/es/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
  560. package/es/components/progress-indicator/ProgressIndicatorLinear.js +4 -4
  561. package/es/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
  562. package/es/components/progress-indicator/style/dnb-progress-indicator.css +5 -2
  563. package/es/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  564. package/es/components/progress-indicator/style/dnb-progress-indicator.scss +5 -2
  565. package/es/components/slider/Slider.d.ts +1 -0
  566. package/es/components/slider/Slider.js +1 -0
  567. package/es/components/slider/Slider.js.map +1 -1
  568. package/es/components/slider/SliderInstance.js +17 -5
  569. package/es/components/slider/SliderInstance.js.map +1 -1
  570. package/es/components/slider/SliderMarker.d.ts +7 -0
  571. package/es/components/slider/SliderMarker.js +52 -0
  572. package/es/components/slider/SliderMarker.js.map +1 -0
  573. package/es/components/slider/SliderProvider.js +2 -1
  574. package/es/components/slider/SliderProvider.js.map +1 -1
  575. package/es/components/slider/style/dnb-slider.css +43 -2
  576. package/es/components/slider/style/dnb-slider.min.css +1 -1
  577. package/es/components/slider/style/dnb-slider.scss +44 -1
  578. package/es/components/slider/style/themes/dnb-slider-theme-sbanken.css +3 -0
  579. package/es/components/slider/style/themes/dnb-slider-theme-sbanken.min.css +1 -1
  580. package/es/components/slider/style/themes/dnb-slider-theme-sbanken.scss +4 -0
  581. package/es/components/slider/style/themes/dnb-slider-theme-ui.css +3 -0
  582. package/es/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
  583. package/es/components/slider/style/themes/dnb-slider-theme-ui.scss +5 -0
  584. package/es/components/slider/types.d.ts +6 -0
  585. package/es/components/slider/types.js.map +1 -1
  586. package/es/components/space/SpacingHelper.d.ts +5 -5
  587. package/es/components/table/Table.js +1 -1
  588. package/es/components/table/Table.js.map +1 -1
  589. package/es/components/table/TableAccordion.js +40 -55
  590. package/es/components/table/TableAccordion.js.map +1 -1
  591. package/es/components/table/TableAccordionTd.d.ts +9 -0
  592. package/{components/table/TableAccordionContent.js → es/components/table/TableAccordionTd.js} +16 -51
  593. package/es/components/table/TableAccordionTd.js.map +1 -0
  594. package/es/components/table/TableAccordionTr.d.ts +13 -0
  595. package/es/components/table/TableAccordionTr.js +51 -0
  596. package/es/components/table/TableAccordionTr.js.map +1 -0
  597. package/es/components/table/TableContext.d.ts +2 -2
  598. package/es/components/table/TableContext.js +2 -2
  599. package/es/components/table/TableContext.js.map +1 -1
  600. package/es/components/table/TableTd.d.ts +2 -2
  601. package/es/components/table/TableTd.js +2 -2
  602. package/es/components/table/TableTd.js.map +1 -1
  603. package/es/components/table/TableTr.d.ts +6 -1
  604. package/es/components/table/TableTr.js +9 -4
  605. package/es/components/table/TableTr.js.map +1 -1
  606. package/es/components/table/style/dnb-table.css +226 -139
  607. package/es/components/table/style/dnb-table.min.css +1 -1
  608. package/es/components/table/style/dnb-table.scss +60 -4
  609. package/es/components/table/style/table-accordion.scss +83 -98
  610. package/es/components/table/style/table-container.scss +9 -9
  611. package/es/components/table/style/table-mixins.scss +19 -2
  612. package/es/components/table/style/table-td.scss +82 -60
  613. package/es/components/table/style/table-th.scss +5 -30
  614. package/es/components/table/style/table-tr.scss +0 -20
  615. package/es/components/table/style/themes/dnb-table-theme-sbanken.css +34 -7
  616. package/es/components/table/style/themes/dnb-table-theme-sbanken.min.css +3 -1
  617. package/es/components/table/style/themes/dnb-table-theme-sbanken.scss +29 -10
  618. package/es/components/table/style/themes/dnb-table-theme-ui.css +14 -9
  619. package/es/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  620. package/es/components/table/style/themes/dnb-table-theme-ui.scss +12 -22
  621. package/es/components/table/useTableAnimationHandler.d.ts +20 -0
  622. package/es/components/table/useTableAnimationHandler.js +62 -0
  623. package/es/components/table/useTableAnimationHandler.js.map +1 -0
  624. package/es/components/textarea/Textarea.d.ts +4 -10
  625. package/es/components/textarea/TextareaDocs.d.ts +2 -0
  626. package/es/components/textarea/TextareaDocs.js +98 -0
  627. package/es/components/textarea/TextareaDocs.js.map +1 -0
  628. package/es/components/textarea/style/dnb-textarea.css +1 -0
  629. package/es/components/textarea/style/dnb-textarea.min.css +1 -1
  630. package/es/components/textarea/style/dnb-textarea.scss +3 -0
  631. package/es/components/upload/UploadInfo.js +1 -1
  632. package/es/components/upload/UploadInfo.js.map +1 -1
  633. package/es/core/jest/jestSetupScreenshots.css +7 -0
  634. package/es/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +1 -0
  635. package/es/elements/lib.d.ts +1 -1
  636. package/es/elements/lists/Dl.d.ts +5 -1
  637. package/es/elements/lists/Dl.js +5 -4
  638. package/es/elements/lists/Dl.js.map +1 -1
  639. package/es/elements/lists/style/lists-mixins.scss +24 -1
  640. package/es/extensions/forms/DataContext/Context.d.ts +1 -2
  641. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  642. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +1 -2
  643. package/es/extensions/forms/DataContext/Provider/Provider.js +54 -40
  644. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  645. package/es/extensions/forms/Field/Currency/Currency.js +1 -1
  646. package/es/extensions/forms/Field/Currency/Currency.js.map +1 -1
  647. package/es/extensions/forms/Field/Expiry/Expiry.js +1 -0
  648. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  649. package/es/extensions/forms/Field/FieldDocs.d.ts +3 -0
  650. package/es/extensions/forms/Field/FieldDocs.js +8 -0
  651. package/es/extensions/forms/Field/FieldDocs.js.map +1 -0
  652. package/es/extensions/forms/Field/Number/Number.d.ts +1 -0
  653. package/es/extensions/forms/Field/Number/Number.js +13 -7
  654. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  655. package/es/extensions/forms/Field/Number/NumberDocs.d.ts +2 -0
  656. package/es/extensions/forms/Field/Number/NumberDocs.js +85 -0
  657. package/es/extensions/forms/Field/Number/NumberDocs.js.map +1 -0
  658. package/es/extensions/forms/Field/Number/style/dnb-number.css +3 -1
  659. package/es/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
  660. package/es/extensions/forms/Field/Number/style/dnb-number.scss +4 -1
  661. package/es/extensions/forms/Field/Password/Password.d.ts +45 -0
  662. package/es/extensions/forms/Field/Password/Password.js +99 -0
  663. package/es/extensions/forms/Field/Password/Password.js.map +1 -0
  664. package/es/extensions/forms/Field/Password/index.d.ts +2 -0
  665. package/es/extensions/forms/Field/Password/index.js +3 -0
  666. package/es/extensions/forms/Field/Password/index.js.map +1 -0
  667. package/es/extensions/forms/Field/Password/style/dnb-password.css +6 -0
  668. package/es/extensions/forms/Field/Password/style/dnb-password.min.css +1 -0
  669. package/es/extensions/forms/Field/Password/style/dnb-password.scss +10 -0
  670. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -5
  671. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  672. package/es/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +0 -12
  673. package/es/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
  674. package/es/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.scss +0 -11
  675. package/es/extensions/forms/Field/Selection/Selection.d.ts +0 -1
  676. package/es/extensions/forms/Field/Selection/Selection.js +2 -11
  677. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  678. package/es/extensions/forms/Field/String/String.d.ts +20 -9
  679. package/es/extensions/forms/Field/String/String.js +52 -31
  680. package/es/extensions/forms/Field/String/String.js.map +1 -1
  681. package/es/extensions/forms/Field/String/StringDocs.d.ts +2 -0
  682. package/es/extensions/forms/Field/String/StringDocs.js +99 -0
  683. package/es/extensions/forms/Field/String/StringDocs.js.map +1 -0
  684. package/es/extensions/forms/Field/Toggle/Toggle.js +1 -1
  685. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  686. package/es/extensions/forms/Field/index.d.ts +1 -0
  687. package/es/extensions/forms/Field/index.js +1 -0
  688. package/es/extensions/forms/Field/index.js.map +1 -1
  689. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +8 -3
  690. package/es/extensions/forms/FieldBlock/FieldBlock.js +195 -58
  691. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  692. package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +39 -6
  693. package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  694. package/es/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +2 -0
  695. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js +53 -0
  696. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -0
  697. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +29 -2
  698. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  699. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +28 -0
  700. package/es/extensions/forms/Form/Appearance/Appearance.d.ts +7 -0
  701. package/es/extensions/forms/Form/Appearance/Appearance.js +30 -0
  702. package/es/extensions/forms/Form/Appearance/Appearance.js.map +1 -0
  703. package/es/extensions/forms/Form/Appearance/AppearanceDocs.d.ts +2 -0
  704. package/es/extensions/forms/Form/Appearance/AppearanceDocs.js +8 -0
  705. package/es/extensions/forms/Form/Appearance/AppearanceDocs.js.map +1 -0
  706. package/es/extensions/forms/Form/Appearance/index.d.ts +2 -0
  707. package/es/extensions/forms/Form/Appearance/index.js +3 -0
  708. package/es/extensions/forms/Form/Appearance/index.js.map +1 -0
  709. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +6 -0
  710. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  711. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +10 -2
  712. package/es/extensions/forms/Form/data-context/useData.d.ts +1 -1
  713. package/es/extensions/forms/Form/data-context/useData.js +3 -19
  714. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  715. package/es/extensions/forms/Form/data-context/useError.d.ts +2 -1
  716. package/es/extensions/forms/Form/data-context/useError.js +4 -2
  717. package/es/extensions/forms/Form/data-context/useError.js.map +1 -1
  718. package/es/extensions/forms/Form/index.d.ts +1 -0
  719. package/es/extensions/forms/Form/index.js +1 -0
  720. package/es/extensions/forms/Form/index.js.map +1 -1
  721. package/es/extensions/forms/Value/Currency/Currency.js +2 -2
  722. package/es/extensions/forms/Value/Currency/Currency.js.map +1 -1
  723. package/es/extensions/forms/Value/Number/Number.d.ts +2 -2
  724. package/es/extensions/forms/Value/Number/Number.js +1 -1
  725. package/es/extensions/forms/Value/Number/Number.js.map +1 -1
  726. package/es/extensions/forms/Value/SummaryList/SummaryList.d.ts +7 -0
  727. package/es/extensions/forms/Value/SummaryList/SummaryList.js +26 -0
  728. package/es/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -0
  729. package/es/extensions/forms/Value/SummaryList/SummaryListContext.d.ts +7 -0
  730. package/es/extensions/forms/Value/SummaryList/SummaryListContext.js +4 -0
  731. package/es/extensions/forms/Value/SummaryList/SummaryListContext.js.map +1 -0
  732. package/es/extensions/forms/Value/SummaryList/index.d.ts +2 -0
  733. package/es/extensions/forms/Value/SummaryList/index.js +3 -0
  734. package/es/extensions/forms/Value/SummaryList/index.js.map +1 -0
  735. package/es/extensions/forms/Value/ValueDocs.d.ts +2 -0
  736. package/es/extensions/forms/Value/ValueDocs.js +33 -0
  737. package/es/extensions/forms/Value/ValueDocs.js.map +1 -0
  738. package/es/extensions/forms/Value/index.d.ts +1 -0
  739. package/es/extensions/forms/Value/index.js +1 -0
  740. package/es/extensions/forms/Value/index.js.map +1 -1
  741. package/es/extensions/forms/ValueBlock/ValueBlock.js +12 -4
  742. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  743. package/es/extensions/forms/hooks/DataValueDocs.d.ts +3 -0
  744. package/es/extensions/forms/hooks/DataValueDocs.js +110 -0
  745. package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -0
  746. package/es/extensions/forms/hooks/useDataValue.d.ts +6 -14
  747. package/es/extensions/forms/hooks/useDataValue.js +92 -23
  748. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  749. package/es/extensions/forms/hooks/useId.js +1 -1
  750. package/es/extensions/forms/hooks/useId.js.map +1 -1
  751. package/es/extensions/forms/hooks/useMountEffect.js +1 -1
  752. package/es/extensions/forms/hooks/useMountEffect.js.map +1 -1
  753. package/es/extensions/forms/hooks/useMounted.d.ts +2 -0
  754. package/es/extensions/forms/hooks/useMounted.js +14 -0
  755. package/es/extensions/forms/hooks/useMounted.js.map +1 -0
  756. package/es/extensions/forms/hooks/useUnmountEffect.d.ts +4 -0
  757. package/es/extensions/forms/hooks/useUnmountEffect.js +9 -0
  758. package/es/extensions/forms/hooks/useUnmountEffect.js.map +1 -0
  759. package/es/extensions/forms/style/dnb-forms.css +45 -15
  760. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  761. package/es/extensions/forms/types.d.ts +6 -4
  762. package/es/extensions/forms/types.js.map +1 -1
  763. package/es/extensions/payment-card/utils/CardDesigns.d.ts +96 -96
  764. package/es/fragments/drawer-list/DrawerListHelpers.d.ts +52 -52
  765. package/es/shared/Context.d.ts +2 -0
  766. package/es/shared/Context.js.map +1 -1
  767. package/es/shared/Eufemia.d.ts +1 -1
  768. package/es/shared/Eufemia.js +2 -2
  769. package/es/shared/Eufemia.js.map +1 -1
  770. package/es/shared/Theme.d.ts +7 -1
  771. package/es/shared/Theme.js +20 -7
  772. package/es/shared/Theme.js.map +1 -1
  773. package/es/shared/component-helper.d.ts +1 -0
  774. package/es/shared/component-helper.js +6 -0
  775. package/es/shared/component-helper.js.map +1 -1
  776. package/es/shared/helpers/debounce.d.ts +37 -0
  777. package/es/shared/helpers/debounce.js +76 -0
  778. package/es/shared/helpers/debounce.js.map +1 -0
  779. package/es/shared/helpers/filterValidProps.d.ts +2 -2
  780. package/es/shared/helpers/filterValidProps.js +2 -2
  781. package/es/shared/helpers/filterValidProps.js.map +1 -1
  782. package/es/shared/helpers/useSharedState.d.ts +1 -0
  783. package/es/shared/helpers/useSharedState.js +49 -20
  784. package/es/shared/helpers/useSharedState.js.map +1 -1
  785. package/es/shared/helpers/withCamelCaseProps.d.ts +14 -1
  786. package/es/shared/helpers/withCamelCaseProps.js.map +1 -1
  787. package/es/shared/helpers.d.ts +1 -25
  788. package/es/shared/helpers.js +1 -29
  789. package/es/shared/helpers.js.map +1 -1
  790. package/es/shared/locales/en-GB.d.ts +5 -3
  791. package/es/shared/locales/en-GB.js +7 -5
  792. package/es/shared/locales/en-GB.js.map +1 -1
  793. package/es/shared/locales/en-US.d.ts +5 -3
  794. package/es/shared/locales/index.d.ts +10 -6
  795. package/es/shared/locales/nb-NO.d.ts +5 -3
  796. package/es/shared/locales/nb-NO.js +7 -5
  797. package/es/shared/locales/nb-NO.js.map +1 -1
  798. package/es/shared/types.d.ts +5 -0
  799. package/es/shared/types.js.map +1 -1
  800. package/es/shared/useTheme.d.ts +1 -0
  801. package/es/style/dnb-ui-components.css +359 -171
  802. package/es/style/dnb-ui-components.min.css +3 -3
  803. package/es/style/dnb-ui-elements.css +25 -5
  804. package/es/style/dnb-ui-elements.min.css +1 -1
  805. package/es/style/dnb-ui-extensions.css +45 -15
  806. package/es/style/dnb-ui-extensions.min.css +1 -1
  807. package/es/style/dnb-ui-forms.css +45 -15
  808. package/es/style/dnb-ui-forms.min.css +1 -1
  809. package/es/style/dnb-ui-forms.scss +1 -0
  810. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +25 -5
  811. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  812. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +421 -195
  813. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  814. package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +25 -5
  815. package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  816. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +45 -15
  817. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  818. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +45 -15
  819. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  820. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +26 -5
  821. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  822. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +464 -204
  823. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +8 -6
  824. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +26 -5
  825. package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  826. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +45 -15
  827. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  828. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +45 -15
  829. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  830. package/es/style/themes/theme-ui/prism/dnb-prism-theme.d.ts +3 -3
  831. package/es/style/themes/theme-ui/ui-theme-basis.css +25 -5
  832. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  833. package/es/style/themes/theme-ui/ui-theme-components.css +421 -195
  834. package/es/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  835. package/es/style/themes/theme-ui/ui-theme-elements.css +25 -5
  836. package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  837. package/es/style/themes/theme-ui/ui-theme-extensions.css +45 -15
  838. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  839. package/es/style/themes/theme-ui/ui-theme-forms.css +45 -15
  840. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  841. package/es/style/themes/theme-ui/ui-theme-tags.css +25 -5
  842. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  843. package/esm/dnb-ui-basis.min.mjs +1 -1
  844. package/esm/dnb-ui-components.min.mjs +1 -1
  845. package/esm/dnb-ui-elements.min.mjs +1 -1
  846. package/esm/dnb-ui-extensions.min.mjs +3 -3
  847. package/esm/dnb-ui-lib.min.mjs +1 -1
  848. package/extensions/forms/DataContext/Context.d.ts +1 -2
  849. package/extensions/forms/DataContext/Context.js.map +1 -1
  850. package/extensions/forms/DataContext/Provider/Provider.d.ts +1 -2
  851. package/extensions/forms/DataContext/Provider/Provider.js +54 -40
  852. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  853. package/extensions/forms/Field/Currency/Currency.js +1 -1
  854. package/extensions/forms/Field/Currency/Currency.js.map +1 -1
  855. package/extensions/forms/Field/Expiry/Expiry.js +1 -0
  856. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  857. package/extensions/forms/Field/FieldDocs.d.ts +3 -0
  858. package/extensions/forms/Field/FieldDocs.js +8 -0
  859. package/extensions/forms/Field/FieldDocs.js.map +1 -0
  860. package/extensions/forms/Field/Number/Number.d.ts +1 -0
  861. package/extensions/forms/Field/Number/Number.js +13 -7
  862. package/extensions/forms/Field/Number/Number.js.map +1 -1
  863. package/extensions/forms/Field/Number/NumberDocs.d.ts +2 -0
  864. package/extensions/forms/Field/Number/NumberDocs.js +85 -0
  865. package/extensions/forms/Field/Number/NumberDocs.js.map +1 -0
  866. package/extensions/forms/Field/Number/style/dnb-number.css +3 -1
  867. package/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
  868. package/extensions/forms/Field/Number/style/dnb-number.scss +4 -1
  869. package/extensions/forms/Field/Password/Password.d.ts +45 -0
  870. package/extensions/forms/Field/Password/Password.js +99 -0
  871. package/extensions/forms/Field/Password/Password.js.map +1 -0
  872. package/extensions/forms/Field/Password/index.d.ts +2 -0
  873. package/extensions/forms/Field/Password/index.js +3 -0
  874. package/extensions/forms/Field/Password/index.js.map +1 -0
  875. package/extensions/forms/Field/Password/style/dnb-password.css +6 -0
  876. package/extensions/forms/Field/Password/style/dnb-password.min.css +1 -0
  877. package/extensions/forms/Field/Password/style/dnb-password.scss +10 -0
  878. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -5
  879. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  880. package/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +0 -12
  881. package/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
  882. package/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.scss +0 -11
  883. package/extensions/forms/Field/Selection/Selection.d.ts +0 -1
  884. package/extensions/forms/Field/Selection/Selection.js +2 -11
  885. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  886. package/extensions/forms/Field/String/String.d.ts +20 -9
  887. package/extensions/forms/Field/String/String.js +52 -31
  888. package/extensions/forms/Field/String/String.js.map +1 -1
  889. package/extensions/forms/Field/String/StringDocs.d.ts +2 -0
  890. package/extensions/forms/Field/String/StringDocs.js +99 -0
  891. package/extensions/forms/Field/String/StringDocs.js.map +1 -0
  892. package/extensions/forms/Field/Toggle/Toggle.js +1 -1
  893. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  894. package/extensions/forms/Field/index.d.ts +1 -0
  895. package/extensions/forms/Field/index.js +1 -0
  896. package/extensions/forms/Field/index.js.map +1 -1
  897. package/extensions/forms/FieldBlock/FieldBlock.d.ts +8 -3
  898. package/extensions/forms/FieldBlock/FieldBlock.js +203 -64
  899. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  900. package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +39 -6
  901. package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  902. package/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +2 -0
  903. package/extensions/forms/FieldBlock/FieldBlockDocs.js +53 -0
  904. package/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -0
  905. package/extensions/forms/FieldBlock/style/dnb-field-block.css +29 -2
  906. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  907. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +28 -0
  908. package/extensions/forms/Form/Appearance/Appearance.d.ts +7 -0
  909. package/extensions/forms/Form/Appearance/Appearance.js +30 -0
  910. package/extensions/forms/Form/Appearance/Appearance.js.map +1 -0
  911. package/extensions/forms/Form/Appearance/AppearanceDocs.d.ts +2 -0
  912. package/extensions/forms/Form/Appearance/AppearanceDocs.js +8 -0
  913. package/extensions/forms/Form/Appearance/AppearanceDocs.js.map +1 -0
  914. package/extensions/forms/Form/Appearance/index.d.ts +2 -0
  915. package/extensions/forms/Form/Appearance/index.js +3 -0
  916. package/extensions/forms/Form/Appearance/index.js.map +1 -0
  917. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +6 -0
  918. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  919. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +10 -2
  920. package/extensions/forms/Form/data-context/useData.d.ts +1 -1
  921. package/extensions/forms/Form/data-context/useData.js +3 -19
  922. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  923. package/extensions/forms/Form/data-context/useError.d.ts +2 -1
  924. package/extensions/forms/Form/data-context/useError.js +4 -2
  925. package/extensions/forms/Form/data-context/useError.js.map +1 -1
  926. package/extensions/forms/Form/index.d.ts +1 -0
  927. package/extensions/forms/Form/index.js +1 -0
  928. package/extensions/forms/Form/index.js.map +1 -1
  929. package/extensions/forms/Value/Currency/Currency.js +2 -2
  930. package/extensions/forms/Value/Currency/Currency.js.map +1 -1
  931. package/extensions/forms/Value/Number/Number.d.ts +2 -2
  932. package/extensions/forms/Value/Number/Number.js +1 -1
  933. package/extensions/forms/Value/Number/Number.js.map +1 -1
  934. package/extensions/forms/Value/SummaryList/SummaryList.d.ts +7 -0
  935. package/extensions/forms/Value/SummaryList/SummaryList.js +26 -0
  936. package/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -0
  937. package/extensions/forms/Value/SummaryList/SummaryListContext.d.ts +7 -0
  938. package/extensions/forms/Value/SummaryList/SummaryListContext.js +4 -0
  939. package/extensions/forms/Value/SummaryList/SummaryListContext.js.map +1 -0
  940. package/extensions/forms/Value/SummaryList/index.d.ts +2 -0
  941. package/extensions/forms/Value/SummaryList/index.js +3 -0
  942. package/extensions/forms/Value/SummaryList/index.js.map +1 -0
  943. package/extensions/forms/Value/ValueDocs.d.ts +2 -0
  944. package/extensions/forms/Value/ValueDocs.js +33 -0
  945. package/extensions/forms/Value/ValueDocs.js.map +1 -0
  946. package/extensions/forms/Value/index.d.ts +1 -0
  947. package/extensions/forms/Value/index.js +1 -0
  948. package/extensions/forms/Value/index.js.map +1 -1
  949. package/extensions/forms/ValueBlock/ValueBlock.js +12 -4
  950. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  951. package/extensions/forms/hooks/DataValueDocs.d.ts +3 -0
  952. package/extensions/forms/hooks/DataValueDocs.js +110 -0
  953. package/extensions/forms/hooks/DataValueDocs.js.map +1 -0
  954. package/extensions/forms/hooks/useDataValue.d.ts +6 -14
  955. package/extensions/forms/hooks/useDataValue.js +92 -23
  956. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  957. package/extensions/forms/hooks/useId.js +1 -1
  958. package/extensions/forms/hooks/useId.js.map +1 -1
  959. package/extensions/forms/hooks/useMountEffect.js +1 -1
  960. package/extensions/forms/hooks/useMountEffect.js.map +1 -1
  961. package/extensions/forms/hooks/useMounted.d.ts +2 -0
  962. package/extensions/forms/hooks/useMounted.js +14 -0
  963. package/extensions/forms/hooks/useMounted.js.map +1 -0
  964. package/extensions/forms/hooks/useUnmountEffect.d.ts +4 -0
  965. package/extensions/forms/hooks/useUnmountEffect.js +9 -0
  966. package/extensions/forms/hooks/useUnmountEffect.js.map +1 -0
  967. package/extensions/forms/style/dnb-forms.css +45 -15
  968. package/extensions/forms/style/dnb-forms.min.css +1 -1
  969. package/extensions/forms/types.d.ts +6 -4
  970. package/extensions/forms/types.js.map +1 -1
  971. package/extensions/payment-card/utils/CardDesigns.d.ts +96 -96
  972. package/fragments/drawer-list/DrawerListHelpers.d.ts +52 -52
  973. package/package.json +1 -1
  974. package/shared/Context.d.ts +2 -0
  975. package/shared/Context.js.map +1 -1
  976. package/shared/Eufemia.d.ts +1 -1
  977. package/shared/Eufemia.js +2 -2
  978. package/shared/Eufemia.js.map +1 -1
  979. package/shared/Theme.d.ts +7 -1
  980. package/shared/Theme.js +20 -7
  981. package/shared/Theme.js.map +1 -1
  982. package/shared/component-helper.d.ts +1 -0
  983. package/shared/component-helper.js +9 -0
  984. package/shared/component-helper.js.map +1 -1
  985. package/shared/helpers/debounce.d.ts +37 -0
  986. package/shared/helpers/debounce.js +83 -0
  987. package/shared/helpers/debounce.js.map +1 -0
  988. package/shared/helpers/filterValidProps.d.ts +2 -2
  989. package/shared/helpers/filterValidProps.js +2 -2
  990. package/shared/helpers/filterValidProps.js.map +1 -1
  991. package/shared/helpers/useSharedState.d.ts +1 -0
  992. package/shared/helpers/useSharedState.js +49 -20
  993. package/shared/helpers/useSharedState.js.map +1 -1
  994. package/shared/helpers/withCamelCaseProps.d.ts +14 -1
  995. package/shared/helpers/withCamelCaseProps.js.map +1 -1
  996. package/shared/helpers.d.ts +1 -25
  997. package/shared/helpers.js +3 -36
  998. package/shared/helpers.js.map +1 -1
  999. package/shared/locales/en-GB.d.ts +5 -3
  1000. package/shared/locales/en-GB.js +7 -5
  1001. package/shared/locales/en-GB.js.map +1 -1
  1002. package/shared/locales/en-US.d.ts +5 -3
  1003. package/shared/locales/index.d.ts +10 -6
  1004. package/shared/locales/nb-NO.d.ts +5 -3
  1005. package/shared/locales/nb-NO.js +7 -5
  1006. package/shared/locales/nb-NO.js.map +1 -1
  1007. package/shared/types.d.ts +5 -0
  1008. package/shared/types.js.map +1 -1
  1009. package/shared/useTheme.d.ts +1 -0
  1010. package/style/dnb-ui-components.css +359 -171
  1011. package/style/dnb-ui-components.min.css +3 -3
  1012. package/style/dnb-ui-elements.css +25 -5
  1013. package/style/dnb-ui-elements.min.css +1 -1
  1014. package/style/dnb-ui-extensions.css +45 -15
  1015. package/style/dnb-ui-extensions.min.css +1 -1
  1016. package/style/dnb-ui-forms.css +45 -15
  1017. package/style/dnb-ui-forms.min.css +1 -1
  1018. package/style/dnb-ui-forms.scss +1 -0
  1019. package/style/themes/theme-eiendom/eiendom-theme-basis.css +25 -5
  1020. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  1021. package/style/themes/theme-eiendom/eiendom-theme-components.css +421 -195
  1022. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  1023. package/style/themes/theme-eiendom/eiendom-theme-elements.css +25 -5
  1024. package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  1025. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +45 -15
  1026. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  1027. package/style/themes/theme-eiendom/eiendom-theme-forms.css +45 -15
  1028. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  1029. package/style/themes/theme-sbanken/sbanken-theme-basis.css +26 -5
  1030. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  1031. package/style/themes/theme-sbanken/sbanken-theme-components.css +464 -204
  1032. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +8 -6
  1033. package/style/themes/theme-sbanken/sbanken-theme-elements.css +26 -5
  1034. package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  1035. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +45 -15
  1036. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  1037. package/style/themes/theme-sbanken/sbanken-theme-forms.css +45 -15
  1038. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  1039. package/style/themes/theme-ui/prism/dnb-prism-theme.d.ts +3 -3
  1040. package/style/themes/theme-ui/ui-theme-basis.css +25 -5
  1041. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  1042. package/style/themes/theme-ui/ui-theme-components.css +421 -195
  1043. package/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  1044. package/style/themes/theme-ui/ui-theme-elements.css +25 -5
  1045. package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  1046. package/style/themes/theme-ui/ui-theme-extensions.css +45 -15
  1047. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  1048. package/style/themes/theme-ui/ui-theme-forms.css +45 -15
  1049. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  1050. package/style/themes/theme-ui/ui-theme-tags.css +25 -5
  1051. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  1052. package/umd/dnb-ui-basis.min.js +1 -1
  1053. package/umd/dnb-ui-components.min.js +1 -1
  1054. package/umd/dnb-ui-elements.min.js +1 -1
  1055. package/umd/dnb-ui-extensions.min.js +3 -3
  1056. package/umd/dnb-ui-lib.min.js +1 -1
  1057. package/cjs/components/table/TableAccordionContent.d.ts +0 -18
  1058. package/cjs/components/table/TableAccordionContent.js.map +0 -1
  1059. package/components/table/TableAccordionContent.d.ts +0 -18
  1060. package/components/table/TableAccordionContent.js.map +0 -1
  1061. package/es/components/table/TableAccordionContent.d.ts +0 -18
  1062. package/es/components/table/TableAccordionContent.js.map +0 -1
@@ -55,66 +55,66 @@ export const drawerListPropTypes: {
55
55
  ignore_events: PropTypes.Requireable<NonNullable<string | boolean>>;
56
56
  };
57
57
  export namespace drawerListDefaultProps {
58
- export const id: any;
59
- export const role: string;
60
- export const cache_hash: any;
61
- export const triangle_position: string;
62
- export const scrollable: boolean;
63
- export const focusable: boolean;
64
- export const max_height: any;
65
- export const direction: string;
66
- export const size: string;
67
- export const no_animation: boolean;
68
- export const no_scroll_animation: boolean;
69
- export const prevent_selection: boolean;
70
- export const action_menu: boolean;
71
- export const is_popup: boolean;
72
- export const align_drawer: string;
73
- export const wrapper_element: any;
74
- export const default_value: any;
75
- export const value: string;
76
- export const portal_class: any;
77
- export const list_class: any;
78
- export const skip_portal: any;
79
- export const prevent_close: boolean;
80
- export const keep_open: boolean;
81
- export const prevent_focus: boolean;
82
- export const fixed_position: boolean;
83
- export const independent_width: boolean;
84
- export const skip_keysearch: boolean;
85
- export const opened: any;
86
- const _class: any;
58
+ export let id: any;
59
+ export let role: string;
60
+ export let cache_hash: any;
61
+ export let triangle_position: string;
62
+ export let scrollable: boolean;
63
+ export let focusable: boolean;
64
+ export let max_height: any;
65
+ export let direction: string;
66
+ export let size: string;
67
+ export let no_animation: boolean;
68
+ export let no_scroll_animation: boolean;
69
+ export let prevent_selection: boolean;
70
+ export let action_menu: boolean;
71
+ export let is_popup: boolean;
72
+ export let align_drawer: string;
73
+ export let wrapper_element: any;
74
+ export let default_value: any;
75
+ export let value: string;
76
+ export let portal_class: any;
77
+ export let list_class: any;
78
+ export let skip_portal: any;
79
+ export let prevent_close: boolean;
80
+ export let keep_open: boolean;
81
+ export let prevent_focus: boolean;
82
+ export let fixed_position: boolean;
83
+ export let independent_width: boolean;
84
+ export let skip_keysearch: boolean;
85
+ export let opened: any;
86
+ let _class: any;
87
87
  export { _class as class };
88
- export const data: any;
89
- export const prepared_data: any;
90
- export const raw_data: any;
91
- export const ignore_events: any;
92
- export const className: any;
93
- export const children: any;
94
- export const on_show: any;
95
- export const on_hide: any;
96
- export const handle_dismiss_focus: any;
97
- export const on_change: any;
98
- export const on_pre_change: any;
99
- export const on_resize: any;
100
- export const on_select: any;
101
- export const on_state_update: any;
102
- export const options_render: any;
88
+ export let data: any;
89
+ export let prepared_data: any;
90
+ export let raw_data: any;
91
+ export let ignore_events: any;
92
+ export let className: any;
93
+ export let children: any;
94
+ export let on_show: any;
95
+ export let on_hide: any;
96
+ export let handle_dismiss_focus: any;
97
+ export let on_change: any;
98
+ export let on_pre_change: any;
99
+ export let on_resize: any;
100
+ export let on_select: any;
101
+ export let on_state_update: any;
102
+ export let options_render: any;
103
103
  }
104
104
  export namespace drawerListProviderPropTypes {
105
- const enable_body_lock: PropTypes.Requireable<boolean>;
106
- const page_offset: PropTypes.Requireable<NonNullable<string | number>>;
107
- const observer_element: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
108
- const min_height: PropTypes.Requireable<NonNullable<string | number>>;
105
+ let enable_body_lock: PropTypes.Requireable<boolean>;
106
+ let page_offset: PropTypes.Requireable<NonNullable<string | number>>;
107
+ let observer_element: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
108
+ let min_height: PropTypes.Requireable<NonNullable<string | number>>;
109
109
  }
110
110
  export namespace drawerListProviderDefaultProps {
111
- const enable_body_lock_1: boolean;
111
+ let enable_body_lock_1: boolean;
112
112
  export { enable_body_lock_1 as enable_body_lock };
113
- const page_offset_1: any;
113
+ let page_offset_1: any;
114
114
  export { page_offset_1 as page_offset };
115
- const observer_element_1: any;
115
+ let observer_element_1: any;
116
116
  export { observer_element_1 as observer_element };
117
- const min_height_1: number;
117
+ let min_height_1: number;
118
118
  export { min_height_1 as min_height };
119
119
  }
120
120
  export function parseContentTitle(dataItem: any, { separator, removeNumericOnlyValues, preferSelectedValue, }?: {
@@ -32,6 +32,7 @@ import type { ModalProps } from '../components/modal/types';
32
32
  import type { AccordionProps } from '../components/Accordion';
33
33
  import type { StepIndicatorProps } from '../components/StepIndicator';
34
34
  import type { FormLabelProps } from '../components/FormLabel';
35
+ import type { InputProps } from '../components/Input';
35
36
  import type { NumberFormatCurrency } from '../components/NumberFormat';
36
37
  import type { FormElementProps } from './helpers/filterValidProps';
37
38
  import type { ThemeProps } from './Theme';
@@ -64,6 +65,7 @@ export type ContextComponents = {
64
65
  Accordion?: Partial<AccordionProps>;
65
66
  StepIndicator?: Partial<StepIndicatorProps>;
66
67
  FormLabel?: Partial<FormLabelProps>;
68
+ Input?: Partial<InputProps>;
67
69
  NumberFormat?: Record<string, unknown>;
68
70
  Pagination?: Record<string, unknown>;
69
71
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","names":["React","LOCALE","CURRENCY","CURRENCY_DISPLAY","defaultLocales","extend","prepareContext","props","locales","__context__","Object","assign","key","handleLocaleFallbacks","locale","translation","destruct","context","_objectSpread","updateTranslation","getTranslation","lang","breakpoints","skeleton","split","Context","createContext","currency","currency_display","source","validKeys","k","String","includes","list","val","last","length","forEach","i"],"sources":["../../../src/shared/Context.tsx"],"sourcesContent":["/**\n * Web Context Context\n *\n */\n\nimport React from 'react'\nimport { LOCALE, CURRENCY, CURRENCY_DISPLAY } from './defaults'\nimport defaultLocales from './locales'\nimport { extend } from './component-helper'\n\n// All TypeScript based Eufemia elements\nimport type { ScrollViewProps } from '../fragments/scroll-view/ScrollView'\n\n// All TypeScript based Eufemia components\nimport type { AnchorProps } from '../components/Anchor'\nimport type { ButtonProps } from '../components/button/Button'\nimport type { AvatarProps } from '../components/avatar/Avatar'\nimport type { AvatarGroupProps } from '../components/avatar/AvatarGroup'\nimport type { BadgeProps } from '../components/badge/Badge'\nimport type { BreadcrumbProps } from '../components/breadcrumb/Breadcrumb'\nimport type { BreadcrumbItemProps } from '../components/breadcrumb/BreadcrumbItem'\nimport type { InfoCardProps } from '../components/info-card/InfoCard'\nimport type { SliderProps } from '../components/slider/Slider'\nimport type { TagProps } from '../components/tag/Tag'\nimport type { TagGroupProps } from '../components/tag/TagGroup'\nimport type { TimelineProps } from '../components/timeline/Timeline'\nimport type { TimelineItemProps } from '../components/timeline/TimelineItem'\nimport type { VisuallyHiddenProps } from '../components/visually-hidden/VisuallyHidden'\nimport type { DrawerProps } from '../components/drawer/types'\nimport type { DialogProps } from '../components/dialog/types'\nimport type { TooltipProps } from '../components/tooltip/types'\nimport type { SectionProps } from '../components/section/Section'\nimport type { FormRowProps } from '../components/form-row/FormRowHelpers'\nimport type { UploadProps } from '../components/upload/types'\nimport type { SkeletonProps, SkeletonShow } from '../components/Skeleton'\nimport type { HelpButtonProps } from '../components/HelpButton'\nimport type { TableProps } from '../components/Table'\nimport type { GlobalErrorProps } from '../components/GlobalError'\nimport type { ModalProps } from '../components/modal/types'\nimport type { AccordionProps } from '../components/Accordion'\nimport type { StepIndicatorProps } from '../components/StepIndicator'\nimport type { FormLabelProps } from '../components/FormLabel'\n\nimport type { NumberFormatCurrency } from '../components/NumberFormat'\n\nimport type { FormElementProps } from './helpers/filterValidProps'\nimport type { ThemeProps } from './Theme'\n\nexport type ContextComponents = {\n Button?: Partial<ButtonProps>\n Anchor?: Partial<AnchorProps>\n Avatar?: Partial<AvatarProps>\n AvatarGroup?: Partial<AvatarGroupProps>\n Badge?: Partial<BadgeProps>\n Breadcrumb?: Partial<BreadcrumbProps>\n BreadcrumbItem?: Partial<BreadcrumbItemProps>\n InfoCard?: Partial<InfoCardProps>\n Slider?: Partial<SliderProps>\n Tag?: Partial<TagProps>\n TagGroup?: Partial<TagGroupProps>\n Timeline?: Partial<TimelineProps>\n TimelineItem?: Partial<TimelineItemProps>\n VisuallyHidden?: Partial<VisuallyHiddenProps>\n Drawer?: Partial<DrawerProps>\n Dialog?: Partial<DialogProps>\n Tooltip?: Partial<TooltipProps>\n Section?: Partial<SectionProps>\n ScrollView?: Partial<ScrollViewProps>\n Upload?: Partial<UploadProps>\n Skeleton?: Partial<SkeletonProps>\n HelpButton?: Partial<HelpButtonProps>\n Table?: Partial<TableProps>\n GlobalError?: Partial<GlobalErrorProps>\n Modal?: Partial<ModalProps>\n Accordion?: Partial<AccordionProps>\n StepIndicator?: Partial<StepIndicatorProps>\n FormLabel?: Partial<FormLabelProps>\n\n // -- TODO: Not converted yet --\n NumberFormat?: Record<string, unknown>\n Pagination?: Record<string, unknown>\n\n /**\n * @deprecated – can be removed in v11\n */\n FormRow?: FormRowProps\n\n // Common props\n formElement?: FormElementProps\n}\n\nexport type ContextProps = ContextComponents & {\n // -- All TypeScript based Eufemia components --\n\n // -- Global properties --\n\n /**\n * Contains theme related properties, such as a theme name\n */\n theme?: ThemeProps\n\n /**\n * Will enable all skeletons inside this provider/context scope\n */\n skeleton?: SkeletonShow\n\n /**\n * Define what breakpoints should be used by the MediaQuery component and hook\n */\n breakpoints?: Record<string, string>\n\n /**\n * Defines the locale (internal translation) used by some components\n */\n locale?: Locale\n\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translation?: Translation\n\n /**\n * Defines the currency used by the NumberFormat component\n */\n currency?: NumberFormatCurrency\n\n /**\n * Defines the currencyDisplay used by the NumberFormat component\n */\n currency_display?: string\n\n /**\n * Update any given provider/context properties\n */\n update?: (props: ContextProps) => void\n\n /**\n * Update any given provider/context properties, but only for the particular scope\n */\n updateCurrent?: (props: ContextProps) => void\n\n /**\n * Update the used locale from within the context\n */\n setLocale?: (locale: Locale) => void\n\n /**\n * Update the used locale from within the context, but only for the particular scope\n */\n setCurrentLocale?: (locale: Locale) => void\n\n // -- For internal use --\n locales?: Locales\n __context__?: Record<string, unknown>\n updateTranslation?: (locale: Locale, translation: Translation) => void\n getTranslation?: (props: GetTranslationProps) => Translation\n}\n\nexport type GetTranslationProps = Partial<{\n lang?: Locale\n locale?: Locale\n}>\n\nexport type Locale = string | 'nb-NO' | 'en-GB' | 'en-US'\nexport type ComponentTranslationsName = string | keyof ContextComponents\nexport type ComponentTranslation = string\nexport type ComponentTranslations = Record<string, ComponentTranslation>\nexport type Locales = Record<Locale, Translation | TranslationConsumer>\nexport type Translation = Record<\n /**\n * Support only \"HelpButton\"\n */\n ComponentTranslationsName,\n ComponentTranslations\n>\nexport type TranslationConsumer = Record<\n /**\n * Support \"HelpButton.title\"\n */\n ComponentTranslationsName,\n ComponentTranslation | ComponentTranslations\n>\n\nexport function prepareContext<Props>(\n props: ContextProps = {}\n): Props & ContextProps {\n const locales: Locales = props.locales\n ? extend(defaultLocales, props.locales)\n : defaultLocales\n\n if (props.__context__) {\n Object.assign(props, props.__context__)\n delete props.__context__\n }\n\n const key = handleLocaleFallbacks(props.locale || LOCALE, locales)\n const translation = locales[key] || defaultLocales[LOCALE] || {} // here we could use Object.freeze\n\n /**\n * The code above adds support for strings, defined like:\n * {\n * \"Modal.close_title\": \"Lukk\",\n * }\n */\n if (locales[key]) {\n locales[key] = destruct(locales[key], translation)\n }\n\n const context = {\n // We may use that in future\n updateTranslation: (locale: string, translation: Translation) => {\n context.translation = context.locales[locale] = translation\n },\n getTranslation: (props: GetTranslationProps) => {\n if (props) {\n const lang = props.lang || props.locale\n if (lang && context.locales[lang] && lang !== key) {\n return context.locales[lang]\n }\n }\n return context.translation\n },\n\n locales,\n locale: null,\n breakpoints: null,\n skeleton: null,\n\n ...props,\n\n /**\n * Make sure we set this after props, since we update this one!\n */\n translation,\n } as Props & ContextProps\n\n return context\n}\n\nfunction handleLocaleFallbacks(locale: Locale, locales: Locales) {\n if (!locales[locale]) {\n if (locale === 'en' || locale.split('-')[0] === 'en') {\n return 'en-GB'\n }\n }\n return locale\n}\n\n// If no provider is given, we use the default context from here\nconst Context = React.createContext<ContextProps>(\n prepareContext({\n locale: LOCALE,\n currency: CURRENCY,\n currency_display: CURRENCY_DISPLAY,\n })\n)\n\nexport default Context\n\nfunction destruct(\n source: TranslationConsumer,\n validKeys: Record<string, unknown>\n): TranslationConsumer {\n for (const k in source) {\n if (String(k).includes('.')) {\n const list = k.split('.')\n\n if (validKeys[list[0]]) {\n const val = source[k]\n const last = list.length - 1\n\n list.forEach((k, i) => {\n source[k] = i === last ? val : source[k]\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n source = source[k] || {}\n })\n\n // If the root object is frozen, then use this\n // let lastObj = { ...source }\n // list.forEach((k, i) => {\n // lastObj[k] = i === last ? val : lastObj[k] // we may have to create a new object here instead?\n // lastObj = lastObj[k]\n // })\n }\n }\n }\n\n return source\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Context.js","names":["React","LOCALE","CURRENCY","CURRENCY_DISPLAY","defaultLocales","extend","prepareContext","props","locales","__context__","Object","assign","key","handleLocaleFallbacks","locale","translation","destruct","context","_objectSpread","updateTranslation","getTranslation","lang","breakpoints","skeleton","split","Context","createContext","currency","currency_display","source","validKeys","k","String","includes","list","val","last","length","forEach","i"],"sources":["../../../src/shared/Context.tsx"],"sourcesContent":["/**\n * Web Context Context\n *\n */\n\nimport React from 'react'\nimport { LOCALE, CURRENCY, CURRENCY_DISPLAY } from './defaults'\nimport defaultLocales from './locales'\nimport { extend } from './component-helper'\n\n// All TypeScript based Eufemia elements\nimport type { ScrollViewProps } from '../fragments/scroll-view/ScrollView'\n\n// All TypeScript based Eufemia components\nimport type { AnchorProps } from '../components/Anchor'\nimport type { ButtonProps } from '../components/button/Button'\nimport type { AvatarProps } from '../components/avatar/Avatar'\nimport type { AvatarGroupProps } from '../components/avatar/AvatarGroup'\nimport type { BadgeProps } from '../components/badge/Badge'\nimport type { BreadcrumbProps } from '../components/breadcrumb/Breadcrumb'\nimport type { BreadcrumbItemProps } from '../components/breadcrumb/BreadcrumbItem'\nimport type { InfoCardProps } from '../components/info-card/InfoCard'\nimport type { SliderProps } from '../components/slider/Slider'\nimport type { TagProps } from '../components/tag/Tag'\nimport type { TagGroupProps } from '../components/tag/TagGroup'\nimport type { TimelineProps } from '../components/timeline/Timeline'\nimport type { TimelineItemProps } from '../components/timeline/TimelineItem'\nimport type { VisuallyHiddenProps } from '../components/visually-hidden/VisuallyHidden'\nimport type { DrawerProps } from '../components/drawer/types'\nimport type { DialogProps } from '../components/dialog/types'\nimport type { TooltipProps } from '../components/tooltip/types'\nimport type { SectionProps } from '../components/section/Section'\nimport type { FormRowProps } from '../components/form-row/FormRowHelpers'\nimport type { UploadProps } from '../components/upload/types'\nimport type { SkeletonProps, SkeletonShow } from '../components/Skeleton'\nimport type { HelpButtonProps } from '../components/HelpButton'\nimport type { TableProps } from '../components/Table'\nimport type { GlobalErrorProps } from '../components/GlobalError'\nimport type { ModalProps } from '../components/modal/types'\nimport type { AccordionProps } from '../components/Accordion'\nimport type { StepIndicatorProps } from '../components/StepIndicator'\nimport type { FormLabelProps } from '../components/FormLabel'\nimport type { InputProps } from '../components/Input'\n\nimport type { NumberFormatCurrency } from '../components/NumberFormat'\n\nimport type { FormElementProps } from './helpers/filterValidProps'\nimport type { ThemeProps } from './Theme'\n\nexport type ContextComponents = {\n Button?: Partial<ButtonProps>\n Anchor?: Partial<AnchorProps>\n Avatar?: Partial<AvatarProps>\n AvatarGroup?: Partial<AvatarGroupProps>\n Badge?: Partial<BadgeProps>\n Breadcrumb?: Partial<BreadcrumbProps>\n BreadcrumbItem?: Partial<BreadcrumbItemProps>\n InfoCard?: Partial<InfoCardProps>\n Slider?: Partial<SliderProps>\n Tag?: Partial<TagProps>\n TagGroup?: Partial<TagGroupProps>\n Timeline?: Partial<TimelineProps>\n TimelineItem?: Partial<TimelineItemProps>\n VisuallyHidden?: Partial<VisuallyHiddenProps>\n Drawer?: Partial<DrawerProps>\n Dialog?: Partial<DialogProps>\n Tooltip?: Partial<TooltipProps>\n Section?: Partial<SectionProps>\n ScrollView?: Partial<ScrollViewProps>\n Upload?: Partial<UploadProps>\n Skeleton?: Partial<SkeletonProps>\n HelpButton?: Partial<HelpButtonProps>\n Table?: Partial<TableProps>\n GlobalError?: Partial<GlobalErrorProps>\n Modal?: Partial<ModalProps>\n Accordion?: Partial<AccordionProps>\n StepIndicator?: Partial<StepIndicatorProps>\n FormLabel?: Partial<FormLabelProps>\n Input?: Partial<InputProps>\n\n // -- TODO: Not converted yet --\n NumberFormat?: Record<string, unknown>\n Pagination?: Record<string, unknown>\n\n /**\n * @deprecated – can be removed in v11\n */\n FormRow?: FormRowProps\n\n // Common props\n formElement?: FormElementProps\n}\n\nexport type ContextProps = ContextComponents & {\n // -- All TypeScript based Eufemia components --\n\n // -- Global properties --\n\n /**\n * Contains theme related properties, such as a theme name\n */\n theme?: ThemeProps\n\n /**\n * Will enable all skeletons inside this provider/context scope\n */\n skeleton?: SkeletonShow\n\n /**\n * Define what breakpoints should be used by the MediaQuery component and hook\n */\n breakpoints?: Record<string, string>\n\n /**\n * Defines the locale (internal translation) used by some components\n */\n locale?: Locale\n\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translation?: Translation\n\n /**\n * Defines the currency used by the NumberFormat component\n */\n currency?: NumberFormatCurrency\n\n /**\n * Defines the currencyDisplay used by the NumberFormat component\n */\n currency_display?: string\n\n /**\n * Update any given provider/context properties\n */\n update?: (props: ContextProps) => void\n\n /**\n * Update any given provider/context properties, but only for the particular scope\n */\n updateCurrent?: (props: ContextProps) => void\n\n /**\n * Update the used locale from within the context\n */\n setLocale?: (locale: Locale) => void\n\n /**\n * Update the used locale from within the context, but only for the particular scope\n */\n setCurrentLocale?: (locale: Locale) => void\n\n // -- For internal use --\n locales?: Locales\n __context__?: Record<string, unknown>\n updateTranslation?: (locale: Locale, translation: Translation) => void\n getTranslation?: (props: GetTranslationProps) => Translation\n}\n\nexport type GetTranslationProps = Partial<{\n lang?: Locale\n locale?: Locale\n}>\n\nexport type Locale = string | 'nb-NO' | 'en-GB' | 'en-US'\nexport type ComponentTranslationsName = string | keyof ContextComponents\nexport type ComponentTranslation = string\nexport type ComponentTranslations = Record<string, ComponentTranslation>\nexport type Locales = Record<Locale, Translation | TranslationConsumer>\nexport type Translation = Record<\n /**\n * Support only \"HelpButton\"\n */\n ComponentTranslationsName,\n ComponentTranslations\n>\nexport type TranslationConsumer = Record<\n /**\n * Support \"HelpButton.title\"\n */\n ComponentTranslationsName,\n ComponentTranslation | ComponentTranslations\n>\n\nexport function prepareContext<Props>(\n props: ContextProps = {}\n): Props & ContextProps {\n const locales: Locales = props.locales\n ? extend(defaultLocales, props.locales)\n : defaultLocales\n\n if (props.__context__) {\n Object.assign(props, props.__context__)\n delete props.__context__\n }\n\n const key = handleLocaleFallbacks(props.locale || LOCALE, locales)\n const translation = locales[key] || defaultLocales[LOCALE] || {} // here we could use Object.freeze\n\n /**\n * The code above adds support for strings, defined like:\n * {\n * \"Modal.close_title\": \"Lukk\",\n * }\n */\n if (locales[key]) {\n locales[key] = destruct(locales[key], translation)\n }\n\n const context = {\n // We may use that in future\n updateTranslation: (locale: string, translation: Translation) => {\n context.translation = context.locales[locale] = translation\n },\n getTranslation: (props: GetTranslationProps) => {\n if (props) {\n const lang = props.lang || props.locale\n if (lang && context.locales[lang] && lang !== key) {\n return context.locales[lang]\n }\n }\n return context.translation\n },\n\n locales,\n locale: null,\n breakpoints: null,\n skeleton: null,\n\n ...props,\n\n /**\n * Make sure we set this after props, since we update this one!\n */\n translation,\n } as Props & ContextProps\n\n return context\n}\n\nfunction handleLocaleFallbacks(locale: Locale, locales: Locales) {\n if (!locales[locale]) {\n if (locale === 'en' || locale.split('-')[0] === 'en') {\n return 'en-GB'\n }\n }\n return locale\n}\n\n// If no provider is given, we use the default context from here\nconst Context = React.createContext<ContextProps>(\n prepareContext({\n locale: LOCALE,\n currency: CURRENCY,\n currency_display: CURRENCY_DISPLAY,\n })\n)\n\nexport default Context\n\nfunction destruct(\n source: TranslationConsumer,\n validKeys: Record<string, unknown>\n): TranslationConsumer {\n for (const k in source) {\n if (String(k).includes('.')) {\n const list = k.split('.')\n\n if (validKeys[list[0]]) {\n const val = source[k]\n const last = list.length - 1\n\n list.forEach((k, i) => {\n source[k] = i === last ? val : source[k]\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n source = source[k] || {}\n })\n\n // If the root object is frozen, then use this\n // let lastObj = { ...source }\n // list.forEach((k, i) => {\n // lastObj[k] = i === last ? val : lastObj[k] // we may have to create a new object here instead?\n // lastObj = lastObj[k]\n // })\n }\n }\n }\n\n return source\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  export function init(): void;
2
- export const version: "10.20.0";
2
+ export const version: "10.22.0";
@@ -1,9 +1,9 @@
1
- export const version = '10.20.0';
1
+ export const version = '10.22.0';
2
2
  export function init() {
3
3
  if (typeof window !== 'undefined') {
4
4
  class Eufemia {
5
5
  get version() {
6
- return '10.20.0';
6
+ return '10.22.0';
7
7
  }
8
8
  }
9
9
  window.Eufemia = new Eufemia();
@@ -1 +1 @@
1
- {"version":3,"file":"Eufemia.js","names":["version","init","window","Eufemia"],"sources":["../../../src/shared/Eufemia.js"],"sourcesContent":["export const version = '10.20.0'\n\nexport function init() {\n if (typeof window !== 'undefined') {\n class Eufemia {\n get version() {\n return '10.20.0'\n }\n }\n\n window.Eufemia = new Eufemia()\n }\n}\n"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,SAAS;AAEhC,OAAO,SAASC,IAAIA,CAAA,EAAG;EACrB,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjC,MAAMC,OAAO,CAAC;MACZ,IAAIH,OAAOA,CAAA,EAAG;QACZ,OAAO,SAAS;MAClB;IACF;IAEAE,MAAM,CAACC,OAAO,GAAG,IAAIA,OAAO,CAAC,CAAC;EAChC;AACF"}
1
+ {"version":3,"file":"Eufemia.js","names":["version","init","window","Eufemia"],"sources":["../../../src/shared/Eufemia.js"],"sourcesContent":["export const version = '10.22.0'\n\nexport function init() {\n if (typeof window !== 'undefined') {\n class Eufemia {\n get version() {\n return '10.22.0'\n }\n }\n\n window.Eufemia = new Eufemia()\n }\n}\n"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,SAAS;AAEhC,OAAO,SAASC,IAAIA,CAAA,EAAG;EACrB,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjC,MAAMC,OAAO,CAAC;MACZ,IAAIH,OAAOA,CAAA,EAAG;QACZ,OAAO,SAAS;MAClB;IACF;IAEAE,MAAM,CAACC,OAAO,GAAG,IAAIA,OAAO,CAAC,CAAC;EAChC;AACF"}
@@ -10,6 +10,7 @@ export type ThemeSizes = 'basis';
10
10
  export type PropMapping = string;
11
11
  export type ContrastMode = boolean;
12
12
  export type DarkMode = boolean;
13
+ export type DarkBackground = boolean;
13
14
  export type ThemeProps = {
14
15
  name?: ThemeNames;
15
16
  variant?: ThemeVariants;
@@ -17,10 +18,15 @@ export type ThemeProps = {
17
18
  propMapping?: PropMapping;
18
19
  contrastMode?: ContrastMode;
19
20
  darkMode?: DarkMode;
21
+ darkBackground?: DarkBackground;
20
22
  element?: DynamicElement | false;
21
23
  };
22
24
  export type ThemeAllProps = ThemeProps & React.HTMLAttributes<HTMLElement>;
23
- export default function Theme(themeProps: ThemeAllProps): import("react/jsx-runtime").JSX.Element;
25
+ declare function Theme(themeProps: ThemeAllProps): import("react/jsx-runtime").JSX.Element;
26
+ declare namespace Theme {
27
+ var Provider: ({ element, ...themeProps }: ThemeAllProps) => import("react/jsx-runtime").JSX.Element;
28
+ }
29
+ export default Theme;
24
30
  export declare function ThemeWrapper({ children, theme, element, className, ...rest }: {
25
31
  [x: string]: any;
26
32
  children: any;
@@ -2,8 +2,9 @@
2
2
 
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
- const _excluded = ["children", "element", "name", "variant", "size", "propMapping", "contrastMode", "darkMode"],
6
- _excluded2 = ["children", "theme", "element", "className"];
5
+ const _excluded = ["children", "element", "name", "variant", "size", "propMapping", "contrastMode", "darkMode", "darkBackground"],
6
+ _excluded2 = ["element"],
7
+ _excluded3 = ["children", "theme", "element", "className"];
7
8
  import React from 'react';
8
9
  import classnames from 'classnames';
9
10
  import Context from './Context';
@@ -19,7 +20,8 @@ export default function Theme(themeProps) {
19
20
  size,
20
21
  propMapping,
21
22
  contrastMode,
22
- darkMode
23
+ darkMode,
24
+ darkBackground
23
25
  } = themeProps,
24
26
  restProps = _objectWithoutProperties(themeProps, _excluded);
25
27
  const theme = extendPropsWithContext({
@@ -28,7 +30,8 @@ export default function Theme(themeProps) {
28
30
  size,
29
31
  propMapping,
30
32
  contrastMode,
31
- darkMode
33
+ darkMode,
34
+ darkBackground
32
35
  }, null, context === null || context === void 0 ? void 0 : context.theme);
33
36
  return React.createElement(Provider, {
34
37
  theme: theme
@@ -37,14 +40,24 @@ export default function Theme(themeProps) {
37
40
  theme: theme
38
41
  }, restProps), children));
39
42
  }
40
- export function ThemeWrapper(_ref) {
43
+ Theme.Provider = _ref => {
44
+ let {
45
+ element
46
+ } = _ref,
47
+ themeProps = _objectWithoutProperties(_ref, _excluded2);
48
+ return React.createElement(Theme, _extends({}, themeProps, {
49
+ element: false
50
+ }));
51
+ };
52
+ Theme.Provider['_supportsSpacingProps'] = 'children';
53
+ export function ThemeWrapper(_ref2) {
41
54
  let {
42
55
  children,
43
56
  theme,
44
57
  element = null,
45
58
  className = null
46
- } = _ref,
47
- rest = _objectWithoutProperties(_ref, _excluded2);
59
+ } = _ref2,
60
+ rest = _objectWithoutProperties(_ref2, _excluded3);
48
61
  const Wrapper = element === false ? React.Fragment : element || 'div';
49
62
  const ref = React.useRef(null);
50
63
  if (Wrapper === React.Fragment) {
@@ -1 +1 @@
1
- {"version":3,"file":"Theme.js","names":["React","classnames","Context","Provider","extendPropsWithContext","Theme","themeProps","context","useContext","children","element","name","variant","size","propMapping","contrastMode","darkMode","restProps","_objectWithoutProperties","_excluded","theme","createElement","ThemeWrapper","_extends","_ref","className","rest","_excluded2","Wrapper","Fragment","ref","useRef","classNames","getThemeClasses"],"sources":["../../../src/shared/Theme.tsx"],"sourcesContent":["/**\n * Theme Provider\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport Context from './Context'\nimport Provider from './Provider'\nimport { DynamicElement } from './types'\nimport { extendPropsWithContext } from './component-helper'\n\nexport type ThemeNames = 'ui' | 'eiendom' | 'sbanken'\nexport type ThemeVariants = string\nexport type ThemeSizes = 'basis'\nexport type PropMapping = string\nexport type ContrastMode = boolean\nexport type DarkMode = boolean\n\nexport type ThemeProps = {\n name?: ThemeNames\n variant?: ThemeVariants\n size?: ThemeSizes\n propMapping?: PropMapping\n contrastMode?: ContrastMode\n darkMode?: DarkMode\n element?: DynamicElement | false\n}\n\nexport type ThemeAllProps = ThemeProps & React.HTMLAttributes<HTMLElement>\n\nexport default function Theme(themeProps: ThemeAllProps) {\n const context = React.useContext(Context)\n\n const {\n children,\n element,\n name,\n variant,\n size,\n propMapping,\n contrastMode,\n darkMode,\n ...restProps\n } = themeProps\n\n const theme = extendPropsWithContext(\n {\n name,\n variant,\n size,\n propMapping,\n contrastMode,\n darkMode,\n },\n null,\n context?.theme\n )\n\n return (\n <Provider theme={theme}>\n <ThemeWrapper element={element} theme={theme} {...restProps}>\n {children}\n </ThemeWrapper>\n </Provider>\n )\n}\n\nexport function ThemeWrapper({\n children,\n theme,\n element = null,\n className = null,\n ...rest\n}) {\n const Wrapper = element === false ? React.Fragment : element || 'div'\n const ref = React.useRef<HTMLElement>(null)\n\n if (Wrapper === React.Fragment) {\n return children\n }\n\n rest['ref'] = ref\n\n const classNames = getThemeClasses(theme, className)\n const { name, variant, size } = theme\n\n return (\n <Wrapper\n data-name={name}\n data-variant={variant}\n data-size={size}\n className={classNames}\n {...rest}\n >\n {children}\n </Wrapper>\n )\n}\n\nexport function getThemeClasses(theme: ThemeProps, className = null) {\n if (!theme) {\n return className\n }\n\n const { name, variant, size, propMapping, contrastMode, darkMode } =\n theme\n\n return classnames(\n className,\n 'eufemia-theme',\n name && `eufemia-theme__${name}`,\n name && variant && `eufemia-theme__${name}--${variant}`,\n propMapping && `eufemia-theme__prop-mapping--${propMapping}`,\n contrastMode && 'eufemia-theme__contrast-mode',\n darkMode && 'eufemia-theme__dark-mode',\n size && `eufemia-theme__size--${size}`\n )\n}\n"],"mappings":";;;;;;AAKA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,OAAO,MAAM,WAAW;AAC/B,OAAOC,QAAQ,MAAM,YAAY;AAEjC,SAASC,sBAAsB,QAAQ,oBAAoB;AAqB3D,eAAe,SAASC,KAAKA,CAACC,UAAyB,EAAE;EACvD,MAAMC,OAAO,GAAGP,KAAK,CAACQ,UAAU,CAACN,OAAO,CAAC;EAEzC,MAAM;MACJO,QAAQ;MACRC,OAAO;MACPC,IAAI;MACJC,OAAO;MACPC,IAAI;MACJC,WAAW;MACXC,YAAY;MACZC;IAEF,CAAC,GAAGV,UAAU;IADTW,SAAS,GAAAC,wBAAA,CACVZ,UAAU,EAAAa,SAAA;EAEd,MAAMC,KAAK,GAAGhB,sBAAsB,CAClC;IACEO,IAAI;IACJC,OAAO;IACPC,IAAI;IACJC,WAAW;IACXC,YAAY;IACZC;EACF,CAAC,EACD,IAAI,EACJT,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEa,KACX,CAAC;EAED,OACEpB,KAAA,CAAAqB,aAAA,CAAClB,QAAQ;IAACiB,KAAK,EAAEA;EAAM,GACrBpB,KAAA,CAAAqB,aAAA,CAACC,YAAY,EAAAC,QAAA;IAACb,OAAO,EAAEA,OAAQ;IAACU,KAAK,EAAEA;EAAM,GAAKH,SAAS,GACxDR,QACW,CACN,CAAC;AAEf;AAEA,OAAO,SAASa,YAAYA,CAAAE,IAAA,EAMzB;EAAA,IAN0B;MAC3Bf,QAAQ;MACRW,KAAK;MACLV,OAAO,GAAG,IAAI;MACde,SAAS,GAAG;IAEd,CAAC,GAAAD,IAAA;IADIE,IAAI,GAAAR,wBAAA,CAAAM,IAAA,EAAAG,UAAA;EAEP,MAAMC,OAAO,GAAGlB,OAAO,KAAK,KAAK,GAAGV,KAAK,CAAC6B,QAAQ,GAAGnB,OAAO,IAAI,KAAK;EACrE,MAAMoB,GAAG,GAAG9B,KAAK,CAAC+B,MAAM,CAAc,IAAI,CAAC;EAE3C,IAAIH,OAAO,KAAK5B,KAAK,CAAC6B,QAAQ,EAAE;IAC9B,OAAOpB,QAAQ;EACjB;EAEAiB,IAAI,CAAC,KAAK,CAAC,GAAGI,GAAG;EAEjB,MAAME,UAAU,GAAGC,eAAe,CAACb,KAAK,EAAEK,SAAS,CAAC;EACpD,MAAM;IAAEd,IAAI;IAAEC,OAAO;IAAEC;EAAK,CAAC,GAAGO,KAAK;EAErC,OACEpB,KAAA,CAAAqB,aAAA,CAACO,OAAO,EAAAL,QAAA;IACN,aAAWZ,IAAK;IAChB,gBAAcC,OAAQ;IACtB,aAAWC,IAAK;IAChBY,SAAS,EAAEO;EAAW,GAClBN,IAAI,GAEPjB,QACM,CAAC;AAEd;AAEA,OAAO,SAASwB,eAAeA,CAACb,KAAiB,EAAEK,SAAS,GAAG,IAAI,EAAE;EACnE,IAAI,CAACL,KAAK,EAAE;IACV,OAAOK,SAAS;EAClB;EAEA,MAAM;IAAEd,IAAI;IAAEC,OAAO;IAAEC,IAAI;IAAEC,WAAW;IAAEC,YAAY;IAAEC;EAAS,CAAC,GAChEI,KAAK;EAEP,OAAOnB,UAAU,CACfwB,SAAS,EACT,eAAe,EACfd,IAAI,IAAK,kBAAiBA,IAAK,EAAC,IACxBC,OAAO,sBAAsBD,IAAK,KAAIC,OAAQ,UACtDE,WAAW,IAAK,gCAA+BA,WAAY,EAAC,EAC5DC,YAAY,IAAI,8BAA8B,EAC9CC,QAAQ,IAAI,0BAA0B,EACtCH,IAAI,IAAK,wBAAuBA,IAAK,EACvC,CAAC;AACH"}
1
+ {"version":3,"file":"Theme.js","names":["React","classnames","Context","Provider","extendPropsWithContext","Theme","themeProps","context","useContext","children","element","name","variant","size","propMapping","contrastMode","darkMode","darkBackground","restProps","_objectWithoutProperties","_excluded","theme","createElement","ThemeWrapper","_extends","_ref","_excluded2","_ref2","className","rest","_excluded3","Wrapper","Fragment","ref","useRef","classNames","getThemeClasses"],"sources":["../../../src/shared/Theme.tsx"],"sourcesContent":["/**\n * Theme Provider\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport Context from './Context'\nimport Provider from './Provider'\nimport { DynamicElement } from './types'\nimport { extendPropsWithContext } from './component-helper'\n\nexport type ThemeNames = 'ui' | 'eiendom' | 'sbanken'\nexport type ThemeVariants = string\nexport type ThemeSizes = 'basis'\nexport type PropMapping = string\nexport type ContrastMode = boolean\nexport type DarkMode = boolean\nexport type DarkBackground = boolean\n\nexport type ThemeProps = {\n name?: ThemeNames\n variant?: ThemeVariants\n size?: ThemeSizes\n propMapping?: PropMapping\n contrastMode?: ContrastMode\n darkMode?: DarkMode\n darkBackground?: DarkBackground\n element?: DynamicElement | false\n}\n\nexport type ThemeAllProps = ThemeProps & React.HTMLAttributes<HTMLElement>\n\nexport default function Theme(themeProps: ThemeAllProps) {\n const context = React.useContext(Context)\n\n const {\n children,\n element,\n name,\n variant,\n size,\n propMapping,\n contrastMode,\n darkMode,\n darkBackground,\n ...restProps\n } = themeProps\n\n const theme = extendPropsWithContext(\n {\n name,\n variant,\n size,\n propMapping,\n contrastMode,\n darkMode,\n darkBackground,\n },\n null,\n context?.theme\n )\n\n return (\n <Provider theme={theme}>\n <ThemeWrapper element={element} theme={theme} {...restProps}>\n {children}\n </ThemeWrapper>\n </Provider>\n )\n}\n\nTheme.Provider = ({ element, ...themeProps }: ThemeAllProps) => {\n return <Theme {...themeProps} element={false} />\n}\nTheme.Provider['_supportsSpacingProps'] = 'children'\n\nexport function ThemeWrapper({\n children,\n theme,\n element = null,\n className = null,\n ...rest\n}) {\n const Wrapper = element === false ? React.Fragment : element || 'div'\n const ref = React.useRef<HTMLElement>(null)\n\n if (Wrapper === React.Fragment) {\n return children\n }\n\n rest['ref'] = ref\n\n const classNames = getThemeClasses(theme, className)\n const { name, variant, size } = theme\n\n return (\n <Wrapper\n data-name={name}\n data-variant={variant}\n data-size={size}\n className={classNames}\n {...rest}\n >\n {children}\n </Wrapper>\n )\n}\n\nexport function getThemeClasses(theme: ThemeProps, className = null) {\n if (!theme) {\n return className\n }\n\n const { name, variant, size, propMapping, contrastMode, darkMode } =\n theme\n\n return classnames(\n className,\n 'eufemia-theme',\n name && `eufemia-theme__${name}`,\n name && variant && `eufemia-theme__${name}--${variant}`,\n propMapping && `eufemia-theme__prop-mapping--${propMapping}`,\n contrastMode && 'eufemia-theme__contrast-mode',\n darkMode && 'eufemia-theme__dark-mode',\n size && `eufemia-theme__size--${size}`\n )\n}\n"],"mappings":"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"}
@@ -8,6 +8,7 @@ export function convertStatusToStateOnly(status: any, state: any): any;
8
8
  export function getStatusState(status: any): boolean;
9
9
  export function combineLabelledBy(...params: any[]): any;
10
10
  export function combineDescribedBy(...params: any[]): any;
11
+ export function combineDetails(...params: any[]): any;
11
12
  export function findElementInChildren(children: any, find: any): any;
12
13
  export function escapeRegexChars(str: any): any;
13
14
  export function removeUndefinedProps(object: any): any;
@@ -428,8 +428,14 @@ export function combineLabelledBy(...params) {
428
428
  export function combineDescribedBy(...params) {
429
429
  return combineAriaBy('aria-describedby', params);
430
430
  }
431
+ export function combineDetails(...params) {
432
+ return combineAriaBy('aria-details', params);
433
+ }
431
434
  function combineAriaBy(type, params) {
432
435
  params = params.map(cur => {
436
+ if (Array.isArray(cur)) {
437
+ return cur.join(' ');
438
+ }
433
439
  if (cur && params.includes(cur[type])) {
434
440
  return null;
435
441
  }
@@ -1 +1 @@
1
- {"version":3,"file":"component-helper.js","names":["React","keycode","whatInput","warn","PLATFORM_MAC","PLATFORM_WIN","PLATFORM_LINUX","getPreviousSibling","init","InteractionInvalidation","extendPropsWithContext","extendPropsWithContextInClassComponent","useEventEmitter","filterProps","specificKeys","defineNavigator","isTouchDevice","document","intent","documentElement","getAttribute","e","handleNavigator","window","navigator","IS_TEST","platform","match","RegExp","setAttribute","removeEventListener","readyState","addEventListener","validateDOMAttributes","props","params","attributes","attr","JSON","parse","Object","entries","forEach","key","value","assign","disabled","space","top","right","bottom","left","no_collapse","innerSpace","tabindex","tabIndex","i","test","processChildren","global","Array","isArray","registeredElements","length","cache","reverse","map","cb","includes","isFrozen","_objectSpread","children","createElement","Fragment","filter","Boolean","res","onlyTexts","reduce","pV","cV","push","join","extend","objects","first","keepRef","shift","acc1","object","acc2","keys","isTrue","String","dispatchCustomElementEvent","src","eventName","eventObjectOrig","ret","undefined","eventObject","event","currentTarget","dataset","replace","target","r","apply","toCamelCase","toSnakeCase","s","split","acc","cur","g0","g1","g2","toUpperCase","toLowerCase","toPascalCase","str","letter","toKebabCase","toCapitalized","l","detectOutsideClick","ignoreElements","onSuccess","options","DetectOutsideClickClass","constructor","_defineProperty","currentElement","tagName","pageX","clientWidth","pageY","clientHeight","checkIfHasScrollbar","elem","parentNode","handleClickOutside","checkOutsideClick","keydownCallback","keyCode","includedKeys","keyupCallback","remove","scrollHeight","offsetHeight","scrollWidth","offsetWidth","overflowIsScrollable","style","getComputedStyle","overflow","overflowX","overflowY","makeUniqueId","prefix","Math","random","toString","substr","idIncrement","slice","slugify","matchAll","string","regex","from","matches","exec","isChildOfElement","element","callback","contains","parentElement","roundToNearest","num","diff","getClosestScrollViewElement","convertJsxToString","elements","separator","process","word","isValidElement","trim","convertStatusToStateOnly","status","state","getStatusState","combineLabelledBy","combineAriaBy","combineDescribedBy","type","findElementInChildren","find","result","some","escapeRegexChars","removeUndefinedProps"],"sources":["../../../src/shared/component-helper.js"],"sourcesContent":["/**\n * Component helpers\n *\n */\n\nimport React from 'react'\nimport keycode from 'keycode'\nimport whatInput from 'what-input'\nimport {\n warn,\n PLATFORM_MAC,\n PLATFORM_WIN,\n PLATFORM_LINUX,\n} from './helpers'\nimport { getPreviousSibling } from './helpers/getPreviousSibling'\nimport { init } from './Eufemia'\n\nexport { InteractionInvalidation } from './helpers/InteractionInvalidation'\nexport {\n extendPropsWithContext,\n extendPropsWithContextInClassComponent,\n} from './helpers/extendPropsWithContext'\nexport { useEventEmitter } from './helpers/useEventEmitter'\nexport { filterProps } from './helpers/filterProps'\n\nexport { getPreviousSibling, warn }\n\ninit()\n\n// run component helper functions\nwhatInput.specificKeys([9])\ndefineNavigator()\n\n/**\n * Check if device is touch device or not\n */\nexport function isTouchDevice() {\n if (typeof document !== 'undefined') {\n let intent = false\n try {\n intent = document.documentElement.getAttribute('data-whatintent')\n } catch (e) {\n //\n }\n return intent === 'touch'\n }\n return false\n}\n\nexport function defineNavigator() {\n const handleNavigator = () => {\n if (\n typeof document === 'undefined' ||\n typeof window === 'undefined' ||\n typeof navigator === 'undefined'\n ) {\n return\n }\n\n try {\n if (!(typeof window !== 'undefined' && window.IS_TEST)) {\n if (navigator.platform.match(new RegExp(PLATFORM_MAC)) !== null) {\n document.documentElement.setAttribute('data-os', 'mac')\n } else if (\n navigator.platform.match(new RegExp(PLATFORM_WIN)) !== null\n ) {\n document.documentElement.setAttribute('data-os', 'win')\n } else if (\n navigator.platform.match(new RegExp(PLATFORM_LINUX)) !== null\n ) {\n document.documentElement.setAttribute('data-os', 'linux')\n }\n } else {\n document.documentElement.setAttribute('data-os', 'other')\n }\n } catch (e) {\n warn(e)\n }\n\n document.removeEventListener('DOMContentLoaded', handleNavigator)\n }\n\n if (\n typeof document !== 'undefined' &&\n document.readyState === 'loading'\n ) {\n document.addEventListener('DOMContentLoaded', handleNavigator)\n } else {\n handleNavigator()\n }\n}\n\nexport const validateDOMAttributes = (props, params) => {\n // if there is an \"attributes\" prop, prepare these\n // mostly used for prop example usage\n if (props && props.attributes) {\n let attr = props.attributes\n if (attr) {\n if (attr[0] === '{') {\n attr = JSON.parse(attr)\n }\n if (attr && typeof attr === 'object') {\n Object.entries(attr).forEach(([key, value]) => {\n Object.assign(params, { [key]: value })\n })\n }\n delete params.attributes\n }\n }\n\n // remove disabled, in case it is false (this is for web components support)\n if (params.disabled === null || params.disabled === 'false') {\n delete params.disabled\n }\n if (typeof params.space !== 'undefined') {\n delete params.space\n }\n if (typeof params.top !== 'undefined') {\n delete params.top\n }\n if (typeof params.right !== 'undefined') {\n delete params.right\n }\n if (typeof params.bottom !== 'undefined') {\n delete params.bottom\n }\n if (typeof params.left !== 'undefined') {\n delete params.left\n }\n if (typeof params.no_collapse !== 'undefined') {\n delete params.no_collapse\n }\n if (typeof params.innerSpace !== 'undefined') {\n delete params.innerSpace\n }\n\n // in case disabled is a string, it its enabled, send it in as a true (this is for web components support)\n else if (params.disabled === 'true') {\n params.disabled = true\n }\n if (params.disabled === true) {\n params['aria-disabled'] = true\n }\n\n if (props && props.tabindex) {\n let tabIndex = props.tabindex\n if (tabIndex === 'off') {\n tabIndex = '-1'\n }\n params['tabIndex'] = tabIndex\n }\n\n // make sure we don't return a render prop as a DOM attribute\n if (params && typeof params === 'object') {\n for (const i in params) {\n if (\n // is React\n typeof params[i] === 'function' &&\n // only React Style props, like onClick are allowed\n !/(^[a-z]{1,}[A-Z]{1})/.test(i)\n ) {\n delete params[i]\n\n // filter out invalid attributes\n } else if (\n // we don't want NULL values\n params[i] === null ||\n // we don't want\n /[^a-z-]/i.test(i)\n // (typeof params[i] !== 'string' && /[^a-z-]/i.test(i))\n ) {\n delete params[i]\n }\n }\n }\n\n return params\n}\n\nexport const processChildren = (props) => {\n if (!props) {\n return null\n }\n\n // If used in WB, call functions who starts with \"render_\"\n if (\n typeof global !== 'undefined' &&\n Array.isArray(global.registeredElements) &&\n global.registeredElements.length > 0\n ) {\n let cache = null\n Object.entries(props)\n .reverse()\n .map(([key, cb]) => {\n if (key.includes('render_') && /^render_/.test(key)) {\n if (typeof cb === 'function') {\n if (cache) {\n if (Object.isFrozen(props)) {\n props = { ...props }\n }\n props.children = cache\n }\n return (cache = (\n <React.Fragment key={key}>{cb(props)}</React.Fragment>\n ))\n }\n }\n\n return null\n })\n .filter(Boolean)\n if (cache) {\n return cache\n }\n }\n\n const res =\n typeof props.children === 'function'\n ? props.children(props)\n : props.children\n\n // if we get several react children which represents only a text\n if (Array.isArray(res)) {\n const onlyTexts = res.reduce((pV, cV) => {\n if (typeof cV === 'string' || typeof cV === 'number') {\n pV.push(cV)\n }\n return pV\n }, [])\n\n // if there was one or more text elements\n if (onlyTexts.length === res.length && onlyTexts.length > 0) {\n return onlyTexts.join('')\n }\n }\n\n return res\n}\n\n// extends given objects recursively and removes entries with null values\n// makes sure that we by default return a totally new object every time\nexport const extend = (...objects) => {\n let first = {}\n const keepRef = objects[0]\n\n if (keepRef === true || keepRef === false) {\n // remove settings value\n objects.shift()\n\n if (keepRef) {\n // by extracting the first, we keep the same main object reference\n first = objects.shift()\n }\n }\n\n return objects.reduce((acc1, object) => {\n if (object) {\n acc1 = Object.assign(\n acc1,\n Object.entries(object).reduce((acc2, [key, value]) => {\n if (value !== null) {\n // go recursively\n if (typeof value === 'object') {\n value = extend(acc1[key] || {}, value)\n if (Object.keys(value).length > 0) {\n acc2[key] = value\n }\n } else {\n acc2[key] = value\n }\n }\n return acc2\n }, {})\n )\n }\n return acc1\n }, first)\n}\n\n// check if value is \"truthy\"\nexport const isTrue = (value) => {\n if (\n value !== null &&\n typeof value !== 'undefined' &&\n (String(value) === 'true' || String(value) === '1')\n ) {\n return true\n }\n return false\n}\n\nexport const dispatchCustomElementEvent = (\n src,\n eventName,\n eventObjectOrig\n) => {\n let ret = undefined\n\n const eventObject = {\n ...((eventObjectOrig && eventObjectOrig.event) || {}),\n ...eventObjectOrig,\n }\n\n // distribute dataset like \"data-*\" to both currentTarget and target\n if (eventObject && eventObject.attributes && eventObject.event) {\n const currentTarget = eventObject.event.currentTarget\n if (currentTarget) {\n try {\n // 1. create new dataset, and copy if exists\n const dataset = { ...(currentTarget.dataset || {}) }\n\n // 2. copy in our attributes if they are of \"data-\" type\n const attributes = { ...eventObject.attributes }\n for (const i in attributes) {\n if (/^data-/.test(i)) {\n dataset[String(i).replace(/^data-/, '')] = attributes[i]\n }\n }\n\n // 3. and distribute them to the targets. Use the for method because of immutability\n for (const i in dataset) {\n if (eventObject.event.currentTarget.dataset) {\n eventObject.event.currentTarget.dataset[i] = dataset[i]\n }\n if (\n eventObject.event.target &&\n eventObject.event.target.dataset\n ) {\n eventObject.event.target.dataset[i] = dataset[i]\n }\n }\n } catch (e) {\n warn('Error on handling dataset:', e)\n }\n }\n }\n\n const props = (src && src.props) || src\n\n // call the default snake case event\n if (eventName.includes('_')) {\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n\n // call Synthetic React event camelCase naming events\n eventName = toCamelCase(eventName)\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n } else {\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n\n // call (in future deprecated) event snake case naming events\n eventName = toSnakeCase(eventName)\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n }\n\n return ret\n}\n\n// transform on_click to onClick\nexport const toCamelCase = (s) =>\n s\n .split(/_/g)\n .reduce(\n (acc, cur, i) =>\n acc +\n (i === 0\n ? cur\n : cur.replace(\n /(\\w)(\\w*)/g,\n (g0, g1, g2) => g1.toUpperCase() + g2.toLowerCase()\n )),\n ''\n )\n\n// TODO: Test if this solution is faster\n// const toCamelCase = (str) =>\n// str.replace(/([-_][a-z])/g, (group) =>\n// group.toUpperCase().replace('-', '').replace('_', '')\n// )\n\n// transform my_component to MyComponent\nexport const toPascalCase = (s) =>\n s\n .split(/_/g)\n .reduce(\n (acc, cur) =>\n acc +\n cur.replace(\n /(\\w)(\\w*)/g,\n (g0, g1, g2) => g1.toUpperCase() + g2.toLowerCase()\n ),\n ''\n )\n\n// transform MyComponent to my_component\nexport const toSnakeCase = (str) =>\n str.replace(/\\B[A-Z]/g, (letter) => `_${letter}`).toLowerCase()\n\n// transform MyComponent to my-component\nexport const toKebabCase = (str) =>\n str.replace(/\\B[A-Z]/g, (letter) => `-${letter}`).toLowerCase()\n\nexport function toCapitalized(str) {\n return str\n .toLowerCase()\n .replace(/(?<=(^|\\s))(.)/g, (l) => l.toUpperCase())\n}\n\n/**\n * [detectOutsideClick Detects a click outside a given DOM element]\n * @param {[type]} ignoreElement [The element we want to protect from a click]\n * @param {[type]} onSuccess [Will be called on outside click]\n * @return {[type]} [void]\n */\nexport const detectOutsideClick = (ignoreElements, onSuccess, options) =>\n new DetectOutsideClickClass(ignoreElements, onSuccess, options)\n\n// Used by detectOutsideClick\nexport class DetectOutsideClickClass {\n constructor(ignoreElements, onSuccess, options = {}) {\n if (\n !this.handleClickOutside &&\n typeof document !== 'undefined' &&\n typeof window !== 'undefined'\n ) {\n if (!Array.isArray(ignoreElements)) {\n ignoreElements = [ignoreElements]\n }\n this.handleClickOutside = (event) => {\n this.checkOutsideClick(\n {\n event,\n ignoreElements,\n },\n () => typeof onSuccess === 'function' && onSuccess({ event })\n )\n }\n document.addEventListener('mousedown', this.handleClickOutside)\n\n this.keydownCallback = (event) => {\n const keyCode = keycode(event)\n if (keyCode === 'esc') {\n window.removeEventListener('keydown', this.keydownCallback)\n if (typeof onSuccess === 'function') {\n onSuccess({ event })\n }\n }\n }\n window.addEventListener('keydown', this.keydownCallback)\n\n // e.g. includedKeys = ['tab']\n if (options.includedKeys) {\n // use keyup so we get the correct new target\n this.keyupCallback = (event) => {\n const keyCode = keycode(event)\n if (\n options.includedKeys.includes(keyCode) &&\n typeof this.handleClickOutside === 'function'\n ) {\n this.handleClickOutside(event, () => {\n if (this.keyupCallback)\n window.removeEventListener('keyup', this.keyupCallback)\n })\n }\n }\n window.addEventListener('keyup', this.keyupCallback)\n }\n }\n }\n\n remove() {\n if (this.handleClickOutside && typeof document !== 'undefined') {\n document.removeEventListener('mousedown', this.handleClickOutside)\n this.handleClickOutside = null\n }\n if (this.keydownCallback && typeof window !== 'undefined') {\n window.removeEventListener('keydown', this.keydownCallback)\n this.keydownCallback = null\n }\n if (this.keyupCallback && typeof window !== 'undefined') {\n window.removeEventListener('keyup', this.keyupCallback)\n this.keyupCallback = null\n }\n }\n\n checkOutsideClick = ({ event, ignoreElements }, onSuccess = null) => {\n try {\n const currentElement = event.target\n\n // we also check if currentElement is documentElement\n // and if it has scrollbars, we then ignore the click\n if (\n currentElement?.tagName === 'HTML' &&\n (event.pageX > document.documentElement.clientWidth - 40 ||\n event.pageY > document.documentElement.clientHeight - 40)\n ) {\n return // stop here\n }\n\n // check if element has e.g. \"overflow: scroll\"\n if (checkIfHasScrollbar(currentElement)) {\n return // stop here\n }\n\n // check the rest\n for (let i = 0, elem, l = ignoreElements.length; i < l; ++i) {\n elem = currentElement\n if (!ignoreElements[i]) {\n continue\n }\n do {\n if (elem === ignoreElements[i]) {\n return // stop here\n }\n elem = elem && elem.parentNode\n } while (elem)\n }\n\n if (typeof onSuccess === 'function') {\n onSuccess()\n }\n } catch (e) {\n warn(e)\n }\n }\n}\n\nexport const checkIfHasScrollbar = (elem) => {\n return (\n elem &&\n (elem.scrollHeight > elem.offsetHeight ||\n elem.scrollWidth > elem.offsetWidth) &&\n overflowIsScrollable(elem)\n )\n}\nconst overflowIsScrollable = (elem) => {\n const style =\n typeof window !== 'undefined' ? window.getComputedStyle(elem) : {}\n return /scroll|auto/i.test(\n (style.overflow || '') +\n (style.overflowX || '') +\n (style.overflowY || '')\n )\n}\n\nexport const makeUniqueId = (prefix = 'id-', length = 8) =>\n prefix +\n String(\n Math.random().toString(36).substr(2, length) + idIncrement++\n ).slice(-length)\nlet idIncrement = 0\n\nexport const slugify = (s) =>\n String(s)\n .toLowerCase()\n .replace(/[^\\w\\s-]/g, '')\n .replace(/[\\s_-]+/g, '-')\n .replace(/^-+|-+$/g, '')\n\n// NB: in future we can use String.matchAll() instead\nexport const matchAll = (string, regex) => {\n if (typeof string.matchAll === 'function') {\n return Array.from(string.matchAll(regex))\n }\n const matches = []\n let match\n while ((match = regex.exec(string))) {\n matches.push(match)\n }\n return matches\n}\n\n/**\n * Check if an element exists in its children\n * If it finds it, the child \"element\" of target will be returned.\n *\n * @param {HTMLElement} element The DOM Element to find\n * @param {HTMLElement} target The DOM Element that should contain \"element\"\n * @param {function} callback (optional)\n * @returns {HTMLElement | null} Returns the found child of all existing dom elements inside of \"target\"\n */\nexport const isChildOfElement = (element, target, callback = null) => {\n try {\n const contains = (element) => {\n if (callback) {\n const res = callback(element)\n if (res) {\n return element\n }\n }\n return element && element === target\n }\n\n if (contains(element)) {\n return element\n }\n\n while (\n (element = element && element.parentElement) &&\n !contains(element)\n );\n } catch (e) {\n //\n }\n\n return element\n}\n\n// Round number to nearest target number\nexport const roundToNearest = (num, target) => {\n const diff = num % target\n return diff > target / 2 ? num - diff + target : num - diff\n}\n\nexport const getClosestScrollViewElement = (currentElement) => {\n return getPreviousSibling('.dnb-scroll-view', currentElement)\n}\n\nexport const convertJsxToString = (elements, separator = undefined) => {\n if (!Array.isArray(elements)) {\n elements = [elements]\n }\n\n const process = (word) => {\n if (React.isValidElement(word)) {\n if (typeof word.props.children === 'string') {\n word = word.props.children.trim()\n } else if (Array.isArray(word.props.children)) {\n word = word.props.children.reduce((acc, word) => {\n if (typeof word !== 'string') {\n word = process(word)\n }\n if (typeof word === 'string') {\n acc = (acc + (separator || '') + word).trim()\n }\n return acc\n }, '')\n } else {\n return null\n }\n }\n\n return word\n }\n\n return elements\n .map((word) => process(word))\n .filter(Boolean)\n .join(separator)\n .trim()\n}\n\nexport function convertStatusToStateOnly(status, state) {\n return status ? state : null\n}\n\nexport function getStatusState(status) {\n return (\n status && status !== 'error' && status !== 'warn' && status !== 'info'\n )\n}\n\nexport function combineLabelledBy(...params) {\n return combineAriaBy('aria-labelledby', params)\n}\nexport function combineDescribedBy(...params) {\n return combineAriaBy('aria-describedby', params)\n}\nfunction combineAriaBy(type, params) {\n params = params.map((cur) => {\n if (cur && params.includes(cur[type])) {\n return null\n }\n if (cur && typeof cur[type] !== 'undefined') {\n cur = cur[type]\n }\n if (typeof cur !== 'string') {\n cur = null\n }\n return cur\n })\n params = params.filter(Boolean).join(' ')\n if (params === '') {\n params = undefined\n }\n return params\n}\n\nexport function findElementInChildren(children, find) {\n if (!Array.isArray(children)) {\n children = [children]\n }\n\n let result = null\n children.some((cur) => {\n if (cur && cur.props && cur.props.children) {\n const res = findElementInChildren(cur.props.children, find)\n if (res) {\n return (result = res)\n }\n }\n if (React.isValidElement(cur) && find(cur)) {\n return (result = cur)\n }\n return null\n })\n\n return result\n}\n\nexport function escapeRegexChars(str) {\n return str.replace(/[-[\\]{}()*+?.,\\\\^$|#]/g, '\\\\$&')\n}\n\nexport function removeUndefinedProps(object) {\n Object.keys(object).forEach((key) => {\n if (object[key] === undefined) {\n delete object[key]\n }\n })\n return object\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"component-helper.js","names":["React","keycode","whatInput","warn","PLATFORM_MAC","PLATFORM_WIN","PLATFORM_LINUX","getPreviousSibling","init","InteractionInvalidation","extendPropsWithContext","extendPropsWithContextInClassComponent","useEventEmitter","filterProps","specificKeys","defineNavigator","isTouchDevice","document","intent","documentElement","getAttribute","e","handleNavigator","window","navigator","IS_TEST","platform","match","RegExp","setAttribute","removeEventListener","readyState","addEventListener","validateDOMAttributes","props","params","attributes","attr","JSON","parse","Object","entries","forEach","key","value","assign","disabled","space","top","right","bottom","left","no_collapse","innerSpace","tabindex","tabIndex","i","test","processChildren","global","Array","isArray","registeredElements","length","cache","reverse","map","cb","includes","isFrozen","_objectSpread","children","createElement","Fragment","filter","Boolean","res","onlyTexts","reduce","pV","cV","push","join","extend","objects","first","keepRef","shift","acc1","object","acc2","keys","isTrue","String","dispatchCustomElementEvent","src","eventName","eventObjectOrig","ret","undefined","eventObject","event","currentTarget","dataset","replace","target","r","apply","toCamelCase","toSnakeCase","s","split","acc","cur","g0","g1","g2","toUpperCase","toLowerCase","toPascalCase","str","letter","toKebabCase","toCapitalized","l","detectOutsideClick","ignoreElements","onSuccess","options","DetectOutsideClickClass","constructor","_defineProperty","currentElement","tagName","pageX","clientWidth","pageY","clientHeight","checkIfHasScrollbar","elem","parentNode","handleClickOutside","checkOutsideClick","keydownCallback","keyCode","includedKeys","keyupCallback","remove","scrollHeight","offsetHeight","scrollWidth","offsetWidth","overflowIsScrollable","style","getComputedStyle","overflow","overflowX","overflowY","makeUniqueId","prefix","Math","random","toString","substr","idIncrement","slice","slugify","matchAll","string","regex","from","matches","exec","isChildOfElement","element","callback","contains","parentElement","roundToNearest","num","diff","getClosestScrollViewElement","convertJsxToString","elements","separator","process","word","isValidElement","trim","convertStatusToStateOnly","status","state","getStatusState","combineLabelledBy","combineAriaBy","combineDescribedBy","combineDetails","type","findElementInChildren","find","result","some","escapeRegexChars","removeUndefinedProps"],"sources":["../../../src/shared/component-helper.js"],"sourcesContent":["/**\n * Component helpers\n *\n */\n\nimport React from 'react'\nimport keycode from 'keycode'\nimport whatInput from 'what-input'\nimport {\n warn,\n PLATFORM_MAC,\n PLATFORM_WIN,\n PLATFORM_LINUX,\n} from './helpers'\nimport { getPreviousSibling } from './helpers/getPreviousSibling'\nimport { init } from './Eufemia'\n\nexport { InteractionInvalidation } from './helpers/InteractionInvalidation'\nexport {\n extendPropsWithContext,\n extendPropsWithContextInClassComponent,\n} from './helpers/extendPropsWithContext'\nexport { useEventEmitter } from './helpers/useEventEmitter'\nexport { filterProps } from './helpers/filterProps'\n\nexport { getPreviousSibling, warn }\n\ninit()\n\n// run component helper functions\nwhatInput.specificKeys([9])\ndefineNavigator()\n\n/**\n * Check if device is touch device or not\n */\nexport function isTouchDevice() {\n if (typeof document !== 'undefined') {\n let intent = false\n try {\n intent = document.documentElement.getAttribute('data-whatintent')\n } catch (e) {\n //\n }\n return intent === 'touch'\n }\n return false\n}\n\nexport function defineNavigator() {\n const handleNavigator = () => {\n if (\n typeof document === 'undefined' ||\n typeof window === 'undefined' ||\n typeof navigator === 'undefined'\n ) {\n return\n }\n\n try {\n if (!(typeof window !== 'undefined' && window.IS_TEST)) {\n if (navigator.platform.match(new RegExp(PLATFORM_MAC)) !== null) {\n document.documentElement.setAttribute('data-os', 'mac')\n } else if (\n navigator.platform.match(new RegExp(PLATFORM_WIN)) !== null\n ) {\n document.documentElement.setAttribute('data-os', 'win')\n } else if (\n navigator.platform.match(new RegExp(PLATFORM_LINUX)) !== null\n ) {\n document.documentElement.setAttribute('data-os', 'linux')\n }\n } else {\n document.documentElement.setAttribute('data-os', 'other')\n }\n } catch (e) {\n warn(e)\n }\n\n document.removeEventListener('DOMContentLoaded', handleNavigator)\n }\n\n if (\n typeof document !== 'undefined' &&\n document.readyState === 'loading'\n ) {\n document.addEventListener('DOMContentLoaded', handleNavigator)\n } else {\n handleNavigator()\n }\n}\n\nexport const validateDOMAttributes = (props, params) => {\n // if there is an \"attributes\" prop, prepare these\n // mostly used for prop example usage\n if (props && props.attributes) {\n let attr = props.attributes\n if (attr) {\n if (attr[0] === '{') {\n attr = JSON.parse(attr)\n }\n if (attr && typeof attr === 'object') {\n Object.entries(attr).forEach(([key, value]) => {\n Object.assign(params, { [key]: value })\n })\n }\n delete params.attributes\n }\n }\n\n // remove disabled, in case it is false (this is for web components support)\n if (params.disabled === null || params.disabled === 'false') {\n delete params.disabled\n }\n if (typeof params.space !== 'undefined') {\n delete params.space\n }\n if (typeof params.top !== 'undefined') {\n delete params.top\n }\n if (typeof params.right !== 'undefined') {\n delete params.right\n }\n if (typeof params.bottom !== 'undefined') {\n delete params.bottom\n }\n if (typeof params.left !== 'undefined') {\n delete params.left\n }\n if (typeof params.no_collapse !== 'undefined') {\n delete params.no_collapse\n }\n if (typeof params.innerSpace !== 'undefined') {\n delete params.innerSpace\n }\n\n // in case disabled is a string, it its enabled, send it in as a true (this is for web components support)\n else if (params.disabled === 'true') {\n params.disabled = true\n }\n if (params.disabled === true) {\n params['aria-disabled'] = true\n }\n\n if (props && props.tabindex) {\n let tabIndex = props.tabindex\n if (tabIndex === 'off') {\n tabIndex = '-1'\n }\n params['tabIndex'] = tabIndex\n }\n\n // make sure we don't return a render prop as a DOM attribute\n if (params && typeof params === 'object') {\n for (const i in params) {\n if (\n // is React\n typeof params[i] === 'function' &&\n // only React Style props, like onClick are allowed\n !/(^[a-z]{1,}[A-Z]{1})/.test(i)\n ) {\n delete params[i]\n\n // filter out invalid attributes\n } else if (\n // we don't want NULL values\n params[i] === null ||\n // we don't want\n /[^a-z-]/i.test(i)\n // (typeof params[i] !== 'string' && /[^a-z-]/i.test(i))\n ) {\n delete params[i]\n }\n }\n }\n\n return params\n}\n\nexport const processChildren = (props) => {\n if (!props) {\n return null\n }\n\n // If used in WB, call functions who starts with \"render_\"\n if (\n typeof global !== 'undefined' &&\n Array.isArray(global.registeredElements) &&\n global.registeredElements.length > 0\n ) {\n let cache = null\n Object.entries(props)\n .reverse()\n .map(([key, cb]) => {\n if (key.includes('render_') && /^render_/.test(key)) {\n if (typeof cb === 'function') {\n if (cache) {\n if (Object.isFrozen(props)) {\n props = { ...props }\n }\n props.children = cache\n }\n return (cache = (\n <React.Fragment key={key}>{cb(props)}</React.Fragment>\n ))\n }\n }\n\n return null\n })\n .filter(Boolean)\n if (cache) {\n return cache\n }\n }\n\n const res =\n typeof props.children === 'function'\n ? props.children(props)\n : props.children\n\n // if we get several react children which represents only a text\n if (Array.isArray(res)) {\n const onlyTexts = res.reduce((pV, cV) => {\n if (typeof cV === 'string' || typeof cV === 'number') {\n pV.push(cV)\n }\n return pV\n }, [])\n\n // if there was one or more text elements\n if (onlyTexts.length === res.length && onlyTexts.length > 0) {\n return onlyTexts.join('')\n }\n }\n\n return res\n}\n\n// extends given objects recursively and removes entries with null values\n// makes sure that we by default return a totally new object every time\nexport const extend = (...objects) => {\n let first = {}\n const keepRef = objects[0]\n\n if (keepRef === true || keepRef === false) {\n // remove settings value\n objects.shift()\n\n if (keepRef) {\n // by extracting the first, we keep the same main object reference\n first = objects.shift()\n }\n }\n\n return objects.reduce((acc1, object) => {\n if (object) {\n acc1 = Object.assign(\n acc1,\n Object.entries(object).reduce((acc2, [key, value]) => {\n if (value !== null) {\n // go recursively\n if (typeof value === 'object') {\n value = extend(acc1[key] || {}, value)\n if (Object.keys(value).length > 0) {\n acc2[key] = value\n }\n } else {\n acc2[key] = value\n }\n }\n return acc2\n }, {})\n )\n }\n return acc1\n }, first)\n}\n\n// check if value is \"truthy\"\nexport const isTrue = (value) => {\n if (\n value !== null &&\n typeof value !== 'undefined' &&\n (String(value) === 'true' || String(value) === '1')\n ) {\n return true\n }\n return false\n}\n\nexport const dispatchCustomElementEvent = (\n src,\n eventName,\n eventObjectOrig\n) => {\n let ret = undefined\n\n const eventObject = {\n ...((eventObjectOrig && eventObjectOrig.event) || {}),\n ...eventObjectOrig,\n }\n\n // distribute dataset like \"data-*\" to both currentTarget and target\n if (eventObject && eventObject.attributes && eventObject.event) {\n const currentTarget = eventObject.event.currentTarget\n if (currentTarget) {\n try {\n // 1. create new dataset, and copy if exists\n const dataset = { ...(currentTarget.dataset || {}) }\n\n // 2. copy in our attributes if they are of \"data-\" type\n const attributes = { ...eventObject.attributes }\n for (const i in attributes) {\n if (/^data-/.test(i)) {\n dataset[String(i).replace(/^data-/, '')] = attributes[i]\n }\n }\n\n // 3. and distribute them to the targets. Use the for method because of immutability\n for (const i in dataset) {\n if (eventObject.event.currentTarget.dataset) {\n eventObject.event.currentTarget.dataset[i] = dataset[i]\n }\n if (\n eventObject.event.target &&\n eventObject.event.target.dataset\n ) {\n eventObject.event.target.dataset[i] = dataset[i]\n }\n }\n } catch (e) {\n warn('Error on handling dataset:', e)\n }\n }\n }\n\n const props = (src && src.props) || src\n\n // call the default snake case event\n if (eventName.includes('_')) {\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n\n // call Synthetic React event camelCase naming events\n eventName = toCamelCase(eventName)\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n } else {\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n\n // call (in future deprecated) event snake case naming events\n eventName = toSnakeCase(eventName)\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n }\n\n return ret\n}\n\n// transform on_click to onClick\nexport const toCamelCase = (s) =>\n s\n .split(/_/g)\n .reduce(\n (acc, cur, i) =>\n acc +\n (i === 0\n ? cur\n : cur.replace(\n /(\\w)(\\w*)/g,\n (g0, g1, g2) => g1.toUpperCase() + g2.toLowerCase()\n )),\n ''\n )\n\n// TODO: Test if this solution is faster\n// const toCamelCase = (str) =>\n// str.replace(/([-_][a-z])/g, (group) =>\n// group.toUpperCase().replace('-', '').replace('_', '')\n// )\n\n// transform my_component to MyComponent\nexport const toPascalCase = (s) =>\n s\n .split(/_/g)\n .reduce(\n (acc, cur) =>\n acc +\n cur.replace(\n /(\\w)(\\w*)/g,\n (g0, g1, g2) => g1.toUpperCase() + g2.toLowerCase()\n ),\n ''\n )\n\n// transform MyComponent to my_component\nexport const toSnakeCase = (str) =>\n str.replace(/\\B[A-Z]/g, (letter) => `_${letter}`).toLowerCase()\n\n// transform MyComponent to my-component\nexport const toKebabCase = (str) =>\n str.replace(/\\B[A-Z]/g, (letter) => `-${letter}`).toLowerCase()\n\nexport function toCapitalized(str) {\n return str\n .toLowerCase()\n .replace(/(?<=(^|\\s))(.)/g, (l) => l.toUpperCase())\n}\n\n/**\n * [detectOutsideClick Detects a click outside a given DOM element]\n * @param {[type]} ignoreElement [The element we want to protect from a click]\n * @param {[type]} onSuccess [Will be called on outside click]\n * @return {[type]} [void]\n */\nexport const detectOutsideClick = (ignoreElements, onSuccess, options) =>\n new DetectOutsideClickClass(ignoreElements, onSuccess, options)\n\n// Used by detectOutsideClick\nexport class DetectOutsideClickClass {\n constructor(ignoreElements, onSuccess, options = {}) {\n if (\n !this.handleClickOutside &&\n typeof document !== 'undefined' &&\n typeof window !== 'undefined'\n ) {\n if (!Array.isArray(ignoreElements)) {\n ignoreElements = [ignoreElements]\n }\n this.handleClickOutside = (event) => {\n this.checkOutsideClick(\n {\n event,\n ignoreElements,\n },\n () => typeof onSuccess === 'function' && onSuccess({ event })\n )\n }\n document.addEventListener('mousedown', this.handleClickOutside)\n\n this.keydownCallback = (event) => {\n const keyCode = keycode(event)\n if (keyCode === 'esc') {\n window.removeEventListener('keydown', this.keydownCallback)\n if (typeof onSuccess === 'function') {\n onSuccess({ event })\n }\n }\n }\n window.addEventListener('keydown', this.keydownCallback)\n\n // e.g. includedKeys = ['tab']\n if (options.includedKeys) {\n // use keyup so we get the correct new target\n this.keyupCallback = (event) => {\n const keyCode = keycode(event)\n if (\n options.includedKeys.includes(keyCode) &&\n typeof this.handleClickOutside === 'function'\n ) {\n this.handleClickOutside(event, () => {\n if (this.keyupCallback)\n window.removeEventListener('keyup', this.keyupCallback)\n })\n }\n }\n window.addEventListener('keyup', this.keyupCallback)\n }\n }\n }\n\n remove() {\n if (this.handleClickOutside && typeof document !== 'undefined') {\n document.removeEventListener('mousedown', this.handleClickOutside)\n this.handleClickOutside = null\n }\n if (this.keydownCallback && typeof window !== 'undefined') {\n window.removeEventListener('keydown', this.keydownCallback)\n this.keydownCallback = null\n }\n if (this.keyupCallback && typeof window !== 'undefined') {\n window.removeEventListener('keyup', this.keyupCallback)\n this.keyupCallback = null\n }\n }\n\n checkOutsideClick = ({ event, ignoreElements }, onSuccess = null) => {\n try {\n const currentElement = event.target\n\n // we also check if currentElement is documentElement\n // and if it has scrollbars, we then ignore the click\n if (\n currentElement?.tagName === 'HTML' &&\n (event.pageX > document.documentElement.clientWidth - 40 ||\n event.pageY > document.documentElement.clientHeight - 40)\n ) {\n return // stop here\n }\n\n // check if element has e.g. \"overflow: scroll\"\n if (checkIfHasScrollbar(currentElement)) {\n return // stop here\n }\n\n // check the rest\n for (let i = 0, elem, l = ignoreElements.length; i < l; ++i) {\n elem = currentElement\n if (!ignoreElements[i]) {\n continue\n }\n do {\n if (elem === ignoreElements[i]) {\n return // stop here\n }\n elem = elem && elem.parentNode\n } while (elem)\n }\n\n if (typeof onSuccess === 'function') {\n onSuccess()\n }\n } catch (e) {\n warn(e)\n }\n }\n}\n\nexport const checkIfHasScrollbar = (elem) => {\n return (\n elem &&\n (elem.scrollHeight > elem.offsetHeight ||\n elem.scrollWidth > elem.offsetWidth) &&\n overflowIsScrollable(elem)\n )\n}\nconst overflowIsScrollable = (elem) => {\n const style =\n typeof window !== 'undefined' ? window.getComputedStyle(elem) : {}\n return /scroll|auto/i.test(\n (style.overflow || '') +\n (style.overflowX || '') +\n (style.overflowY || '')\n )\n}\n\nexport const makeUniqueId = (prefix = 'id-', length = 8) =>\n prefix +\n String(\n Math.random().toString(36).substr(2, length) + idIncrement++\n ).slice(-length)\nlet idIncrement = 0\n\nexport const slugify = (s) =>\n String(s)\n .toLowerCase()\n .replace(/[^\\w\\s-]/g, '')\n .replace(/[\\s_-]+/g, '-')\n .replace(/^-+|-+$/g, '')\n\n// NB: in future we can use String.matchAll() instead\nexport const matchAll = (string, regex) => {\n if (typeof string.matchAll === 'function') {\n return Array.from(string.matchAll(regex))\n }\n const matches = []\n let match\n while ((match = regex.exec(string))) {\n matches.push(match)\n }\n return matches\n}\n\n/**\n * Check if an element exists in its children\n * If it finds it, the child \"element\" of target will be returned.\n *\n * @param {HTMLElement} element The DOM Element to find\n * @param {HTMLElement} target The DOM Element that should contain \"element\"\n * @param {function} callback (optional)\n * @returns {HTMLElement | null} Returns the found child of all existing dom elements inside of \"target\"\n */\nexport const isChildOfElement = (element, target, callback = null) => {\n try {\n const contains = (element) => {\n if (callback) {\n const res = callback(element)\n if (res) {\n return element\n }\n }\n return element && element === target\n }\n\n if (contains(element)) {\n return element\n }\n\n while (\n (element = element && element.parentElement) &&\n !contains(element)\n );\n } catch (e) {\n //\n }\n\n return element\n}\n\n// Round number to nearest target number\nexport const roundToNearest = (num, target) => {\n const diff = num % target\n return diff > target / 2 ? num - diff + target : num - diff\n}\n\nexport const getClosestScrollViewElement = (currentElement) => {\n return getPreviousSibling('.dnb-scroll-view', currentElement)\n}\n\nexport const convertJsxToString = (elements, separator = undefined) => {\n if (!Array.isArray(elements)) {\n elements = [elements]\n }\n\n const process = (word) => {\n if (React.isValidElement(word)) {\n if (typeof word.props.children === 'string') {\n word = word.props.children.trim()\n } else if (Array.isArray(word.props.children)) {\n word = word.props.children.reduce((acc, word) => {\n if (typeof word !== 'string') {\n word = process(word)\n }\n if (typeof word === 'string') {\n acc = (acc + (separator || '') + word).trim()\n }\n return acc\n }, '')\n } else {\n return null\n }\n }\n\n return word\n }\n\n return elements\n .map((word) => process(word))\n .filter(Boolean)\n .join(separator)\n .trim()\n}\n\nexport function convertStatusToStateOnly(status, state) {\n return status ? state : null\n}\n\nexport function getStatusState(status) {\n return (\n status && status !== 'error' && status !== 'warn' && status !== 'info'\n )\n}\n\nexport function combineLabelledBy(...params) {\n return combineAriaBy('aria-labelledby', params)\n}\nexport function combineDescribedBy(...params) {\n return combineAriaBy('aria-describedby', params)\n}\nexport function combineDetails(...params) {\n return combineAriaBy('aria-details', params)\n}\nfunction combineAriaBy(type, params) {\n params = params.map((cur) => {\n if (Array.isArray(cur)) {\n return cur.join(' ')\n }\n if (cur && params.includes(cur[type])) {\n return null\n }\n if (cur && typeof cur[type] !== 'undefined') {\n cur = cur[type]\n }\n if (typeof cur !== 'string') {\n cur = null\n }\n return cur\n })\n params = params.filter(Boolean).join(' ')\n if (params === '') {\n params = undefined\n }\n return params\n}\n\nexport function findElementInChildren(children, find) {\n if (!Array.isArray(children)) {\n children = [children]\n }\n\n let result = null\n children.some((cur) => {\n if (cur && cur.props && cur.props.children) {\n const res = findElementInChildren(cur.props.children, find)\n if (res) {\n return (result = res)\n }\n }\n if (React.isValidElement(cur) && find(cur)) {\n return (result = cur)\n }\n return null\n })\n\n return result\n}\n\nexport function escapeRegexChars(str) {\n return str.replace(/[-[\\]{}()*+?.,\\\\^$|#]/g, '\\\\$&')\n}\n\nexport function removeUndefinedProps(object) {\n Object.keys(object).forEach((key) => {\n if (object[key] === undefined) {\n delete object[key]\n }\n })\n return object\n}\n"],"mappings":"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"}