@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
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Debounces a function to be executed after a specified wait time.
3
+ *
4
+ * @param {Function} debouncedFunction - The function to be debounced.
5
+ * @param {number} [wait=250] - The wait time in milliseconds before executing the debounced function.
6
+ * @param {Object} [options] - Additional options for the debounced function.
7
+ * @param {boolean} [options.immediate=false] - Whether to execute the debounced function immediately.
8
+ * @param {Object} [options.instance=null] - The instance to bind the debounced function to.
9
+ * @param {boolean} [options.async=false] - Whether to return a promise that resolves with the result of the debounced function.
10
+ * @returns {Function|Promise} - The debounced function or a promise that resolves with the result of the debounced function.
11
+ * @memberof helpers
12
+ */
13
+ export declare function debounce(debouncedFunction: any, wait?: number, { immediate, instance, async }?: {
14
+ immediate?: boolean;
15
+ instance?: any;
16
+ async?: boolean;
17
+ }): {
18
+ (...args: any[]): any;
19
+ cancel: () => void;
20
+ addCancelEvent: (fn: any) => () => boolean;
21
+ };
22
+ /**
23
+ * Debounces a function in async to be executed after a specified wait time.
24
+ *
25
+ * @param {Function} debouncedFunction - The function to be debounced.
26
+ * @param {number} [wait=250] - The wait time in milliseconds before executing the debounced function.
27
+ * @param {Object} [options] - Additional options for the debounced function.
28
+ * @param {boolean} [options.immediate=false] - Whether to execute the debounced function immediately.
29
+ * @param {Object} [options.instance=null] - The instance to bind the debounced function to.
30
+ * @returns {Promise} - The debounced promise that resolves with the result of the debounced function.
31
+ * @memberof helpers
32
+ */
33
+ export declare function debounceAsync(debouncedFunction: any, wait?: number, opts?: any): {
34
+ (...args: any[]): any;
35
+ cancel: () => void;
36
+ addCancelEvent: (fn: any) => () => boolean;
37
+ };
@@ -0,0 +1,83 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
+ export function debounce(debouncedFunction) {
5
+ let wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 250;
6
+ let {
7
+ immediate = false,
8
+ instance = null,
9
+ async = false
10
+ } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
11
+ let timeout;
12
+ let recall;
13
+ let resolvePromise;
14
+ let rejectPromise;
15
+ let canceled = false;
16
+ const customCancels = [];
17
+ const cancel = () => {
18
+ var _resolvePromise;
19
+ canceled = true;
20
+ clearTimeout(timeout);
21
+ (_resolvePromise = resolvePromise) === null || _resolvePromise === void 0 ? void 0 : _resolvePromise();
22
+ customCancels.forEach(fn => {
23
+ fn();
24
+ });
25
+ };
26
+ const addCancelEvent = fn => {
27
+ if (!customCancels.includes(fn)) {
28
+ customCancels.push(fn);
29
+ }
30
+ return () => {
31
+ return canceled;
32
+ };
33
+ };
34
+ function executedFunction() {
35
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
36
+ args[_key] = arguments[_key];
37
+ }
38
+ if (typeof recall === 'function') {
39
+ recall();
40
+ }
41
+ canceled = false;
42
+ const inst = instance || this || {};
43
+ inst.cancel = cancel;
44
+ inst.addCancelEvent = addCancelEvent;
45
+ const later = callNow => {
46
+ timeout = null;
47
+ if (callNow || !immediate) {
48
+ try {
49
+ var _resolvePromise2;
50
+ recall = debouncedFunction.apply(inst, args);
51
+ (_resolvePromise2 = resolvePromise) === null || _resolvePromise2 === void 0 ? void 0 : _resolvePromise2(recall);
52
+ } catch (error) {
53
+ var _rejectPromise;
54
+ (_rejectPromise = rejectPromise) === null || _rejectPromise === void 0 ? void 0 : _rejectPromise(error);
55
+ }
56
+ }
57
+ };
58
+ const callNow = immediate && !timeout;
59
+ clearTimeout(timeout);
60
+ timeout = setTimeout(later, wait);
61
+ if (callNow) {
62
+ later(true);
63
+ }
64
+ if (async) {
65
+ return new Promise((resolve, reject) => {
66
+ resolvePromise = resolve;
67
+ rejectPromise = reject;
68
+ });
69
+ }
70
+ return recall;
71
+ }
72
+ executedFunction.cancel = cancel;
73
+ executedFunction.addCancelEvent = addCancelEvent;
74
+ return executedFunction;
75
+ }
76
+ export function debounceAsync(debouncedFunction) {
77
+ let wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 250;
78
+ let opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
79
+ return debounce(debouncedFunction, wait, _objectSpread(_objectSpread({}, opts), {}, {
80
+ async: true
81
+ }));
82
+ }
83
+ //# sourceMappingURL=debounce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debounce.js","names":["debounce","debouncedFunction","wait","arguments","length","undefined","immediate","instance","async","timeout","recall","resolvePromise","rejectPromise","canceled","customCancels","cancel","_resolvePromise","clearTimeout","forEach","fn","addCancelEvent","includes","push","executedFunction","_len","args","Array","_key","inst","later","callNow","_resolvePromise2","apply","error","_rejectPromise","setTimeout","Promise","resolve","reject","debounceAsync","opts","_objectSpread"],"sources":["../../../../src/shared/helpers/debounce.ts"],"sourcesContent":["/**\n * Debounces a function to be executed after a specified wait time.\n *\n * @param {Function} debouncedFunction - The function to be debounced.\n * @param {number} [wait=250] - The wait time in milliseconds before executing the debounced function.\n * @param {Object} [options] - Additional options for the debounced function.\n * @param {boolean} [options.immediate=false] - Whether to execute the debounced function immediately.\n * @param {Object} [options.instance=null] - The instance to bind the debounced function to.\n * @param {boolean} [options.async=false] - Whether to return a promise that resolves with the result of the debounced function.\n * @returns {Function|Promise} - The debounced function or a promise that resolves with the result of the debounced function.\n * @memberof helpers\n */\nexport function debounce(\n debouncedFunction,\n wait = 250,\n { immediate = false, instance = null, async = false } = {}\n) {\n let timeout\n let recall\n let resolvePromise\n let rejectPromise\n let canceled = false\n const customCancels = []\n\n const cancel = () => {\n canceled = true\n\n clearTimeout(timeout)\n resolvePromise?.()\n\n customCancels.forEach((fn) => {\n fn()\n })\n }\n\n const addCancelEvent = (fn) => {\n if (!customCancels.includes(fn)) {\n customCancels.push(fn)\n }\n\n return () => {\n return canceled\n }\n }\n\n function executedFunction(...args) {\n if (typeof recall === 'function') {\n recall()\n }\n\n canceled = false\n\n const inst = instance || this || {}\n inst.cancel = cancel\n inst.addCancelEvent = addCancelEvent\n\n const later = (callNow) => {\n timeout = null\n if (callNow || !immediate) {\n try {\n recall = debouncedFunction.apply(inst, args)\n resolvePromise?.(recall)\n } catch (error) {\n rejectPromise?.(error)\n }\n }\n }\n\n const callNow = immediate && !timeout\n\n clearTimeout(timeout)\n timeout = setTimeout(later, wait)\n\n if (callNow) {\n later(true)\n }\n\n if (async) {\n return new Promise((resolve, reject) => {\n resolvePromise = resolve\n rejectPromise = reject\n })\n }\n\n return recall\n }\n\n executedFunction.cancel = cancel\n executedFunction.addCancelEvent = addCancelEvent\n\n return executedFunction\n}\n\n/**\n * Debounces a function in async to be executed after a specified wait time.\n *\n * @param {Function} debouncedFunction - The function to be debounced.\n * @param {number} [wait=250] - The wait time in milliseconds before executing the debounced function.\n * @param {Object} [options] - Additional options for the debounced function.\n * @param {boolean} [options.immediate=false] - Whether to execute the debounced function immediately.\n * @param {Object} [options.instance=null] - The instance to bind the debounced function to.\n * @returns {Promise} - The debounced promise that resolves with the result of the debounced function.\n * @memberof helpers\n */\nexport function debounceAsync(debouncedFunction, wait = 250, opts = null) {\n return debounce(debouncedFunction, wait, { ...opts, async: true })\n}\n"],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  * @param excludeKeys object with keys that should be excluded
8
8
  * @returns filtered properties
9
9
  */
10
- export declare function filterValidProps<Props>(props: Props, validKeys?: Record<string, unknown>, excludeKeys?: Record<string, unknown>): Props;
10
+ export declare function filterValidProps<T extends Record<string, unknown>>(props: T | any, validKeys?: Record<string, unknown>, excludeKeys?: Record<string, unknown>): T;
11
11
  /**
12
12
  * Filters out props from a given object/context
13
13
  * It returns a new object, with keys defined in validKeys
@@ -16,7 +16,7 @@ export declare function filterValidProps<Props>(props: Props, validKeys?: Record
16
16
  * @param excludeProps object with keys that should be excluded
17
17
  * @returns filtered properties
18
18
  */
19
- export declare function pickFormElementProps(props: FormElementProps, excludeProps?: Record<string, unknown>): FormElementProps;
19
+ export declare function pickFormElementProps(props: FormElementProps, excludeProps?: Record<string, unknown>): Record<string, unknown>;
20
20
  export declare function prepareFormElementContext<Props>(props: Props & FormElementProps): Props & FormElementProps;
21
21
  export type FormElementProps = {
22
22
  vertical?: boolean;
@@ -1,7 +1,7 @@
1
1
  import { isTrue } from '../component-helper';
2
2
  export function filterValidProps(props, validKeys, excludeKeys) {
3
- const res = {},
4
- o = Object.prototype.hasOwnProperty;
3
+ const res = {};
4
+ const o = Object.prototype.hasOwnProperty;
5
5
  for (const key in props) {
6
6
  if ((!validKeys || validKeys && o.call(validKeys, key)) && (!excludeKeys || excludeKeys && !o.call(excludeKeys, key))) {
7
7
  res[key] = props[key];
@@ -1 +1 @@
1
- {"version":3,"file":"filterValidProps.js","names":["isTrue","filterValidProps","props","validKeys","excludeKeys","res","o","Object","prototype","hasOwnProperty","key","call","pickFormElementProps","excludeProps","validFormElementProps","prepareFormElementContext","vertical","labelDirection","label_direction","skeleton","disabled"],"sources":["../../../../src/shared/helpers/filterValidProps.tsx"],"sourcesContent":["import { isTrue } from '../component-helper'\n\n/**\n * Filters out props from a given object/context\n * It returns a new object, with keys defined in validKeys\n *\n * @param props object of component properties\n * @param validKeys object with keys that should get returned\n * @param excludeKeys object with keys that should be excluded\n * @returns filtered properties\n */\nexport function filterValidProps<Props>(\n props: Props,\n validKeys?: Record<string, unknown>,\n excludeKeys?: Record<string, unknown>\n) {\n const res = {} as Props,\n o = Object.prototype.hasOwnProperty\n\n for (const key in props) {\n if (\n (!validKeys || (validKeys && o.call(validKeys, key))) &&\n (!excludeKeys || (excludeKeys && !o.call(excludeKeys, key)))\n ) {\n res[key] = props[key]\n }\n }\n\n return res\n}\n\n/**\n * Filters out props from a given object/context\n * It returns a new object, with keys defined in validKeys\n *\n * @param props object of form component properties\n * @param excludeProps object with keys that should be excluded\n * @returns filtered properties\n */\nexport function pickFormElementProps(\n props: FormElementProps,\n excludeProps?: Record<string, unknown>\n) {\n return filterValidProps(props, validFormElementProps, excludeProps)\n}\nexport function prepareFormElementContext<Props>(\n props: Props & FormElementProps\n) {\n if (isTrue(props.vertical)) {\n if (typeof props.labelDirection === 'undefined') {\n props.labelDirection = 'vertical'\n }\n if (typeof props.label_direction === 'undefined') {\n props.label_direction = 'vertical'\n }\n }\n return props\n}\nexport type FormElementProps = {\n vertical?: boolean\n labelDirection?: 'vertical' | 'horizontal'\n\n /** @deprecated use labelDirection instead */\n label_direction?: 'vertical' | 'horizontal'\n}\nconst validFormElementProps = {\n skeleton: null,\n disabled: null,\n vertical: null,\n labelDirection: null,\n\n /** @deprecated use labelDirection instead */\n label_direction: null,\n}\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAW5C,OAAO,SAASC,gBAAgBA,CAC9BC,KAAY,EACZC,SAAmC,EACnCC,WAAqC,EACrC;EACA,MAAMC,GAAG,GAAG,CAAC,CAAU;IACrBC,CAAC,GAAGC,MAAM,CAACC,SAAS,CAACC,cAAc;EAErC,KAAK,MAAMC,GAAG,IAAIR,KAAK,EAAE;IACvB,IACE,CAAC,CAACC,SAAS,IAAKA,SAAS,IAAIG,CAAC,CAACK,IAAI,CAACR,SAAS,EAAEO,GAAG,CAAE,MACnD,CAACN,WAAW,IAAKA,WAAW,IAAI,CAACE,CAAC,CAACK,IAAI,CAACP,WAAW,EAAEM,GAAG,CAAE,CAAC,EAC5D;MACAL,GAAG,CAACK,GAAG,CAAC,GAAGR,KAAK,CAACQ,GAAG,CAAC;IACvB;EACF;EAEA,OAAOL,GAAG;AACZ;AAUA,OAAO,SAASO,oBAAoBA,CAClCV,KAAuB,EACvBW,YAAsC,EACtC;EACA,OAAOZ,gBAAgB,CAACC,KAAK,EAAEY,qBAAqB,EAAED,YAAY,CAAC;AACrE;AACA,OAAO,SAASE,yBAAyBA,CACvCb,KAA+B,EAC/B;EACA,IAAIF,MAAM,CAACE,KAAK,CAACc,QAAQ,CAAC,EAAE;IAC1B,IAAI,OAAOd,KAAK,CAACe,cAAc,KAAK,WAAW,EAAE;MAC/Cf,KAAK,CAACe,cAAc,GAAG,UAAU;IACnC;IACA,IAAI,OAAOf,KAAK,CAACgB,eAAe,KAAK,WAAW,EAAE;MAChDhB,KAAK,CAACgB,eAAe,GAAG,UAAU;IACpC;EACF;EACA,OAAOhB,KAAK;AACd;AAQA,MAAMY,qBAAqB,GAAG;EAC5BK,QAAQ,EAAE,IAAI;EACdC,QAAQ,EAAE,IAAI;EACdJ,QAAQ,EAAE,IAAI;EACdC,cAAc,EAAE,IAAI;EAGpBC,eAAe,EAAE;AACnB,CAAC"}
1
+ {"version":3,"file":"filterValidProps.js","names":["isTrue","filterValidProps","props","validKeys","excludeKeys","res","o","Object","prototype","hasOwnProperty","key","call","pickFormElementProps","excludeProps","validFormElementProps","prepareFormElementContext","vertical","labelDirection","label_direction","skeleton","disabled"],"sources":["../../../../src/shared/helpers/filterValidProps.tsx"],"sourcesContent":["import { isTrue } from '../component-helper'\n\n/**\n * Filters out props from a given object/context\n * It returns a new object, with keys defined in validKeys\n *\n * @param props object of component properties\n * @param validKeys object with keys that should get returned\n * @param excludeKeys object with keys that should be excluded\n * @returns filtered properties\n */\nexport function filterValidProps<T extends Record<string, unknown>>(\n props: T | any,\n validKeys?: Record<string, unknown>,\n excludeKeys?: Record<string, unknown>\n): T {\n const res = {}\n const o = Object.prototype.hasOwnProperty\n\n for (const key in props) {\n if (\n (!validKeys || (validKeys && o.call(validKeys, key))) &&\n (!excludeKeys || (excludeKeys && !o.call(excludeKeys, key)))\n ) {\n res[key] = props[key]\n }\n }\n\n return res as T\n}\n\n/**\n * Filters out props from a given object/context\n * It returns a new object, with keys defined in validKeys\n *\n * @param props object of form component properties\n * @param excludeProps object with keys that should be excluded\n * @returns filtered properties\n */\nexport function pickFormElementProps(\n props: FormElementProps,\n excludeProps?: Record<string, unknown>\n) {\n return filterValidProps(props, validFormElementProps, excludeProps)\n}\nexport function prepareFormElementContext<Props>(\n props: Props & FormElementProps\n) {\n if (isTrue(props.vertical)) {\n if (typeof props.labelDirection === 'undefined') {\n props.labelDirection = 'vertical'\n }\n if (typeof props.label_direction === 'undefined') {\n props.label_direction = 'vertical'\n }\n }\n return props\n}\nexport type FormElementProps = {\n vertical?: boolean\n labelDirection?: 'vertical' | 'horizontal'\n\n /** @deprecated use labelDirection instead */\n label_direction?: 'vertical' | 'horizontal'\n}\nconst validFormElementProps = {\n skeleton: null,\n disabled: null,\n vertical: null,\n labelDirection: null,\n\n /** @deprecated use labelDirection instead */\n label_direction: null,\n}\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAW5C,OAAO,SAASC,gBAAgBA,CAC9BC,KAAc,EACdC,SAAmC,EACnCC,WAAqC,EAClC;EACH,MAAMC,GAAG,GAAG,CAAC,CAAC;EACd,MAAMC,CAAC,GAAGC,MAAM,CAACC,SAAS,CAACC,cAAc;EAEzC,KAAK,MAAMC,GAAG,IAAIR,KAAK,EAAE;IACvB,IACE,CAAC,CAACC,SAAS,IAAKA,SAAS,IAAIG,CAAC,CAACK,IAAI,CAACR,SAAS,EAAEO,GAAG,CAAE,MACnD,CAACN,WAAW,IAAKA,WAAW,IAAI,CAACE,CAAC,CAACK,IAAI,CAACP,WAAW,EAAEM,GAAG,CAAE,CAAC,EAC5D;MACAL,GAAG,CAACK,GAAG,CAAC,GAAGR,KAAK,CAACQ,GAAG,CAAC;IACvB;EACF;EAEA,OAAOL,GAAG;AACZ;AAUA,OAAO,SAASO,oBAAoBA,CAClCV,KAAuB,EACvBW,YAAsC,EACtC;EACA,OAAOZ,gBAAgB,CAACC,KAAK,EAAEY,qBAAqB,EAAED,YAAY,CAAC;AACrE;AACA,OAAO,SAASE,yBAAyBA,CACvCb,KAA+B,EAC/B;EACA,IAAIF,MAAM,CAACE,KAAK,CAACc,QAAQ,CAAC,EAAE;IAC1B,IAAI,OAAOd,KAAK,CAACe,cAAc,KAAK,WAAW,EAAE;MAC/Cf,KAAK,CAACe,cAAc,GAAG,UAAU;IACnC;IACA,IAAI,OAAOf,KAAK,CAACgB,eAAe,KAAK,WAAW,EAAE;MAChDhB,KAAK,CAACgB,eAAe,GAAG,UAAU;IACpC;EACF;EACA,OAAOhB,KAAK;AACd;AAQA,MAAMY,qBAAqB,GAAG;EAC5BK,QAAQ,EAAE,IAAI;EACdC,QAAQ,EAAE,IAAI;EACdJ,QAAQ,EAAE,IAAI;EACdC,cAAc,EAAE,IAAI;EAGpBC,eAAe,EAAE;AACnB,CAAC"}
@@ -15,6 +15,7 @@ export declare function useSharedState<Data>(id: SharedStateId, initialData?: Da
15
15
  update: (newData: Data) => void;
16
16
  set: (newData: Data) => void;
17
17
  extend: (newData: Data) => void;
18
+ sync: (newData: Data) => void;
18
19
  };
19
20
  type Subscriber = () => void;
20
21
  interface SharedStateInstance<Data> {
@@ -3,16 +3,46 @@
3
3
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
4
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
5
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
- import { useCallback, useEffect, useMemo, useReducer } from 'react';
6
+ import React, { useCallback, useEffect, useMemo, useReducer, useRef } from 'react';
7
+ import useMounted from '../../extensions/forms/hooks/useMounted';
8
+ const useLayoutEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;
7
9
  export function useSharedState(id) {
8
10
  var _sharedState$get;
9
11
  let initialData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
10
12
  let onChange = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
11
13
  const [, forceUpdate] = useReducer(() => ({}), {});
12
- const sharedState = useMemo(() => id && createSharedState(id, initialData), [id, initialData]);
13
- const sharedFunc = useMemo(() => id && createSharedState(id + '-onChange', {
14
- onChange
15
- }), [id, onChange]);
14
+ const hasMounted = useMounted();
15
+ const waitForMountedRef = useRef(false);
16
+ const forceRerender = useCallback(() => {
17
+ if (hasMounted.current) {
18
+ forceUpdate();
19
+ } else {
20
+ waitForMountedRef.current = true;
21
+ }
22
+ }, [hasMounted]);
23
+ useLayoutEffect(() => {
24
+ if (waitForMountedRef.current) {
25
+ forceUpdate();
26
+ }
27
+ }, []);
28
+ const sharedState = useMemo(() => {
29
+ if (id) {
30
+ return createSharedState(id, initialData);
31
+ }
32
+ }, [id, initialData]);
33
+ const sharedAttachment = useMemo(() => {
34
+ if (id) {
35
+ return createSharedState(id + '-oc', {
36
+ onChange
37
+ });
38
+ }
39
+ }, [id, onChange]);
40
+ const sync = useCallback(newData => {
41
+ if (id) {
42
+ var _sharedAttachment$dat, _sharedAttachment$dat2;
43
+ (_sharedAttachment$dat = sharedAttachment.data) === null || _sharedAttachment$dat === void 0 ? void 0 : (_sharedAttachment$dat2 = _sharedAttachment$dat.onChange) === null || _sharedAttachment$dat2 === void 0 ? void 0 : _sharedAttachment$dat2.call(_sharedAttachment$dat, newData);
44
+ }
45
+ }, [id, sharedAttachment]);
16
46
  const update = useCallback(newData => {
17
47
  if (id) {
18
48
  sharedState.update(newData);
@@ -20,42 +50,41 @@ export function useSharedState(id) {
20
50
  }, [id, sharedState]);
21
51
  const set = useCallback(newData => {
22
52
  if (id) {
23
- var _sharedFunc$get, _sharedFunc$get$onCha;
24
53
  sharedState.set(newData);
25
- (_sharedFunc$get = sharedFunc.get()) === null || _sharedFunc$get === void 0 ? void 0 : (_sharedFunc$get$onCha = _sharedFunc$get.onChange) === null || _sharedFunc$get$onCha === void 0 ? void 0 : _sharedFunc$get$onCha.call(_sharedFunc$get, newData);
54
+ sync(newData);
26
55
  }
27
- }, [id, sharedState, sharedFunc]);
56
+ }, [id, sharedState, sync]);
28
57
  const extend = useCallback(newData => {
29
58
  if (id) {
30
- var _sharedFunc$get2, _sharedFunc$get2$onCh;
31
59
  sharedState.extend(newData);
32
- (_sharedFunc$get2 = sharedFunc.get()) === null || _sharedFunc$get2 === void 0 ? void 0 : (_sharedFunc$get2$onCh = _sharedFunc$get2.onChange) === null || _sharedFunc$get2$onCh === void 0 ? void 0 : _sharedFunc$get2$onCh.call(_sharedFunc$get2, newData);
60
+ sync(newData);
33
61
  }
34
- }, [id, sharedState, sharedFunc]);
35
- useEffect(() => {
62
+ }, [id, sharedState, sync]);
63
+ useLayoutEffect(() => {
36
64
  if (!id) {
37
65
  return;
38
66
  }
39
- sharedState.subscribe(forceUpdate);
67
+ sharedState.subscribe(forceRerender);
40
68
  return () => {
41
- sharedState.unsubscribe(forceUpdate);
69
+ sharedState.unsubscribe(forceRerender);
42
70
  };
43
- }, [id, sharedState]);
71
+ }, [forceRerender, id, onChange, sharedState]);
44
72
  useEffect(() => {
45
- var _sharedFunc$get3;
46
- if (id && onChange && !((_sharedFunc$get3 = sharedFunc.get()) !== null && _sharedFunc$get3 !== void 0 && _sharedFunc$get3.onChange)) {
47
- sharedFunc.set({
73
+ var _sharedAttachment$dat3;
74
+ if (id && onChange && !((_sharedAttachment$dat3 = sharedAttachment.data) !== null && _sharedAttachment$dat3 !== void 0 && _sharedAttachment$dat3.onChange)) {
75
+ sharedAttachment.set({
48
76
  onChange
49
77
  });
50
78
  }
51
- }, [id, onChange, sharedFunc]);
79
+ }, [id, onChange, sharedAttachment]);
52
80
  return {
53
81
  get: sharedState === null || sharedState === void 0 ? void 0 : sharedState.get,
54
82
  data: sharedState === null || sharedState === void 0 ? void 0 : (_sharedState$get = sharedState.get) === null || _sharedState$get === void 0 ? void 0 : _sharedState$get.call(sharedState),
55
83
  hadInitialData: sharedState === null || sharedState === void 0 ? void 0 : sharedState.hadInitialData,
56
84
  update,
57
85
  set,
58
- extend
86
+ extend,
87
+ sync
59
88
  };
60
89
  }
61
90
  const sharedStates = {};
@@ -1 +1 @@
1
- {"version":3,"file":"useSharedState.js","names":["useCallback","useEffect","useMemo","useReducer","useSharedState","id","_sharedState$get","initialData","arguments","length","undefined","onChange","forceUpdate","sharedState","createSharedState","sharedFunc","update","newData","set","_sharedFunc$get","_sharedFunc$get$onCha","get","call","extend","_sharedFunc$get2","_sharedFunc$get2$onCh","subscribe","unsubscribe","_sharedFunc$get3","data","hadInitialData","sharedStates","subscribers","_objectSpread","forEach","subscriber","push","filter","sub","Boolean"],"sources":["../../../../src/shared/helpers/useSharedState.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useReducer } from 'react'\n\nexport type SharedStateId = string\n\n/**\n * Custom hook that provides shared state functionality.\n *\n * @template Data - The type of data stored in the shared state.\n * @param {SharedStateId} id - The identifier for the shared state.\n * @param {Data} initialData - The initial data for the shared state.\n * @param {Function} onChange - Optional callback function to be called when the shared state is set from another instance/component.\n * @returns {Object} - An object containing the shared state data, update function, extend function, and set function.\n */\nexport function useSharedState<Data>(\n id: SharedStateId,\n initialData: Data = undefined,\n onChange = null\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const sharedState = useMemo(\n () => id && createSharedState<Data>(id, initialData),\n [id, initialData]\n )\n const sharedFunc = useMemo(\n () => id && createSharedState(id + '-onChange', { onChange }),\n [id, onChange]\n )\n\n const update = useCallback(\n (newData: Data) => {\n if (id) {\n sharedState.update(newData)\n }\n },\n [id, sharedState]\n )\n\n const set = useCallback(\n (newData: Data) => {\n if (id) {\n sharedState.set(newData)\n sharedFunc.get()?.onChange?.(newData)\n }\n },\n [id, sharedState, sharedFunc]\n )\n\n const extend = useCallback(\n (newData: Data) => {\n if (id) {\n sharedState.extend(newData)\n sharedFunc.get()?.onChange?.(newData)\n }\n },\n [id, sharedState, sharedFunc]\n )\n\n useEffect(() => {\n if (!id) {\n return\n }\n\n sharedState.subscribe(forceUpdate)\n\n return () => {\n sharedState.unsubscribe(forceUpdate)\n }\n }, [id, sharedState])\n\n useEffect(() => {\n // Set the onChange function in case it is not set yet\n if (id && onChange && !sharedFunc.get()?.onChange) {\n sharedFunc.set({ onChange })\n }\n }, [id, onChange, sharedFunc])\n\n return {\n get: sharedState?.get,\n data: sharedState?.get?.() as Data,\n hadInitialData: sharedState?.hadInitialData,\n update,\n set,\n extend,\n }\n}\n\ntype Subscriber = () => void\n\ninterface SharedStateInstance<Data> {\n data: Data\n get: () => Data\n set: (newData: Partial<Data>) => void\n extend: (newData: Partial<Data>) => void\n update: (newData: Partial<Data>) => void\n subscribe: (subscriber: Subscriber) => void\n unsubscribe: (subscriber: Subscriber) => void\n hadInitialData: boolean\n}\n\nconst sharedStates: Record<SharedStateId, SharedStateInstance<any>> = {}\n\n/**\n * Creates a shared state instance with the specified ID and initial data.\n * @template Data The type of data stored in the shared state.\n * @param id The ID of the shared state.\n * @param initialData The initial data for the shared state.\n * @returns The created shared state instance.\n */\nexport function createSharedState<Data>(\n id: SharedStateId,\n initialData?: Data\n): SharedStateInstance<Data> {\n if (!sharedStates[id]) {\n let subscribers: Subscriber[] = []\n\n const get = () => sharedStates[id].data\n\n const extend = (newData: Data) => {\n sharedStates[id].data = { ...sharedStates[id].data, ...newData }\n subscribers.forEach((subscriber) => subscriber())\n }\n\n const set = (newData: Partial<Data>) => {\n sharedStates[id].data = { ...newData }\n }\n\n const update = (newData: Partial<Data>) => {\n set(newData)\n subscribers.forEach((subscriber) => subscriber())\n }\n\n const subscribe = (subscriber: Subscriber) => {\n subscribers.push(subscriber)\n }\n\n const unsubscribe = (subscriber: Subscriber) => {\n subscribers = subscribers.filter((sub) => sub !== subscriber)\n }\n\n sharedStates[id] = {\n data: undefined,\n get,\n set,\n extend,\n update,\n subscribe,\n unsubscribe,\n hadInitialData: Boolean(initialData),\n } as SharedStateInstance<Data>\n\n if (initialData) {\n extend(initialData)\n }\n } else if (\n sharedStates[id].data === undefined &&\n initialData !== undefined\n ) {\n sharedStates[id].data = { ...initialData }\n }\n\n return sharedStates[id]\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useSharedState.js","names":["React","useCallback","useEffect","useMemo","useReducer","useRef","useMounted","useLayoutEffect","window","useSharedState","id","_sharedState$get","initialData","arguments","length","undefined","onChange","forceUpdate","hasMounted","waitForMountedRef","forceRerender","current","sharedState","createSharedState","sharedAttachment","sync","newData","_sharedAttachment$dat","_sharedAttachment$dat2","data","call","update","set","extend","subscribe","unsubscribe","_sharedAttachment$dat3","get","hadInitialData","sharedStates","subscribers","_objectSpread","forEach","subscriber","push","filter","sub","Boolean"],"sources":["../../../../src/shared/helpers/useSharedState.tsx"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport useMounted from '../../extensions/forms/hooks/useMounted'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type SharedStateId = string\n\n/**\n * Custom hook that provides shared state functionality.\n *\n * @template Data - The type of data stored in the shared state.\n * @param {SharedStateId} id - The identifier for the shared state.\n * @param {Data} initialData - The initial data for the shared state.\n * @param {Function} onChange - Optional callback function to be called when the shared state is set from another instance/component.\n * @returns {Object} - An object containing the shared state data, update function, extend function, and set function.\n */\nexport function useSharedState<Data>(\n id: SharedStateId,\n initialData: Data = undefined,\n onChange = null\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n const hasMounted = useMounted()\n const waitForMountedRef = useRef(false)\n\n const forceRerender = useCallback(() => {\n if (hasMounted.current) {\n forceUpdate()\n } else {\n waitForMountedRef.current = true\n }\n }, [hasMounted])\n\n useLayoutEffect(() => {\n if (waitForMountedRef.current) {\n forceUpdate()\n }\n }, [])\n\n const sharedState = useMemo(() => {\n if (id) {\n return createSharedState<Data>(id, initialData)\n }\n }, [id, initialData])\n const sharedAttachment = useMemo(() => {\n if (id) {\n return createSharedState(id + '-oc', { onChange })\n }\n }, [id, onChange])\n\n const sync = useCallback(\n (newData: Data) => {\n if (id) {\n sharedAttachment.data?.onChange?.(newData)\n }\n },\n [id, sharedAttachment]\n )\n\n const update = useCallback(\n (newData: Data) => {\n if (id) {\n sharedState.update(newData)\n }\n },\n [id, sharedState]\n )\n\n const set = useCallback(\n (newData: Data) => {\n if (id) {\n sharedState.set(newData)\n sync(newData)\n }\n },\n [id, sharedState, sync]\n )\n\n const extend = useCallback(\n (newData: Data) => {\n if (id) {\n sharedState.extend(newData)\n sync(newData)\n }\n },\n [id, sharedState, sync]\n )\n\n useLayoutEffect(() => {\n if (!id) {\n return\n }\n\n sharedState.subscribe(forceRerender)\n\n return () => {\n sharedState.unsubscribe(forceRerender)\n }\n }, [forceRerender, id, onChange, sharedState])\n\n useEffect(() => {\n // Set the onChange function in case it is not set yet\n if (id && onChange && !sharedAttachment.data?.onChange) {\n sharedAttachment.set({ onChange })\n }\n }, [id, onChange, sharedAttachment])\n\n return {\n get: sharedState?.get,\n data: sharedState?.get?.() as Data,\n hadInitialData: sharedState?.hadInitialData,\n update,\n set,\n extend,\n sync,\n }\n}\n\ntype Subscriber = () => void\n\ninterface SharedStateInstance<Data> {\n data: Data\n get: () => Data\n set: (newData: Partial<Data>) => void\n extend: (newData: Partial<Data>) => void\n update: (newData: Partial<Data>) => void\n subscribe: (subscriber: Subscriber) => void\n unsubscribe: (subscriber: Subscriber) => void\n hadInitialData: boolean\n}\n\nconst sharedStates: Record<SharedStateId, SharedStateInstance<any>> = {}\n\n/**\n * Creates a shared state instance with the specified ID and initial data.\n * @template Data The type of data stored in the shared state.\n * @param id The ID of the shared state.\n * @param initialData The initial data for the shared state.\n * @returns The created shared state instance.\n */\nexport function createSharedState<Data>(\n id: SharedStateId,\n initialData?: Data\n): SharedStateInstance<Data> {\n if (!sharedStates[id]) {\n let subscribers: Subscriber[] = []\n\n const get = () => sharedStates[id].data\n\n const extend = (newData: Data) => {\n sharedStates[id].data = { ...sharedStates[id].data, ...newData }\n subscribers.forEach((subscriber) => subscriber())\n }\n\n const set = (newData: Partial<Data>) => {\n sharedStates[id].data = { ...newData }\n }\n\n const update = (newData: Partial<Data>) => {\n set(newData)\n subscribers.forEach((subscriber) => subscriber())\n }\n\n const subscribe = (subscriber: Subscriber) => {\n subscribers.push(subscriber)\n }\n\n const unsubscribe = (subscriber: Subscriber) => {\n subscribers = subscribers.filter((sub) => sub !== subscriber)\n }\n\n sharedStates[id] = {\n data: undefined,\n get,\n set,\n extend,\n update,\n subscribe,\n unsubscribe,\n hadInitialData: Boolean(initialData),\n } as SharedStateInstance<Data>\n\n if (initialData) {\n extend(initialData)\n }\n } else if (\n sharedStates[id].data === undefined &&\n initialData !== undefined\n ) {\n sharedStates[id].data = { ...initialData }\n }\n\n return sharedStates[id]\n}\n"],"mappings":"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"}
@@ -19,6 +19,13 @@ export declare function withCamelCaseProps<TBase, P>(Base: React.FunctionCompone
19
19
  * @returns extended function or class
20
20
  */
21
21
  export declare function classWithCamelCaseProps<TBase extends React.ComponentClass>(Base: TBase): typeof Base;
22
+ /**
23
+ * Converts camel case props to snake case props.
24
+ *
25
+ * @template P - The type of the props object.
26
+ * @param {P} props - The props object to convert.
27
+ * @returns {P} - The converted props object.
28
+ */
22
29
  export declare function convertCamelCaseProps<P>(props: P): P;
23
30
  /**
24
31
  * Convert recursively Types from snake_case to camelCase
@@ -29,7 +36,8 @@ export declare function convertCamelCaseProps<P>(props: P): P;
29
36
  * Disclaimer: Be careful using these with required props
30
37
  * - ToCamelCase makes the required snake_case props also required in camelCase
31
38
  * - ToCamelCasePartial removes required for the camelCase props
32
- *
39
+ * - ToCamelCaseFlat is like ToCamelCase, but it will not convert nested objects for performance boost
40
+ * - ToCamelCasePartialFlat is like ToCamelCasePartial, but it will not convert nested objects for performance boost
33
41
  */
34
42
  export type ToCamelCasePartial<T> = Partial<ToCamelCase<T>>;
35
43
  export type ToCamelCase<T> = T extends object ? {
@@ -37,4 +45,9 @@ export type ToCamelCase<T> = T extends object ? {
37
45
  } : T;
38
46
  export type IncludeCamelCase<T> = Partial<T> & ToCamelCasePartial<T>;
39
47
  type ConvertSnakeToCamelCase<S extends string> = S extends `${infer T}_${infer U}` ? `${T}${Capitalize<ConvertSnakeToCamelCase<U>>}` : S;
48
+ type ConvertObjectKeysToCamelCase<T> = {
49
+ [K in keyof T as ConvertSnakeToCamelCase<K & string>]: T[K];
50
+ };
51
+ export type ToCamelCaseFlat<T> = T extends object ? ConvertObjectKeysToCamelCase<T> : T;
52
+ export type ToCamelCasePartialFlat<T> = Partial<ToCamelCaseFlat<T>>;
40
53
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"withCamelCaseProps.js","names":["React","toSnakeCase","withCamelCaseProps","Base","Component","Derived","props","createElement","convertCamelCaseProps","Object","defineProperty","value","name","classWithCamelCaseProps","constructor","arguments","_defineProperty","componentDidMount","render","_prevProps","_elem","displayName","isFrozen","newProps","_objectSpread","key","test","freeze"],"sources":["../../../../src/shared/helpers/withCamelCaseProps.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport React from 'react'\nimport { toSnakeCase } from '../component-helper'\n\n/**\n * withCamelCaseProps is a HOC for function components\n * it will return a React Component where all snake_case props gets converted to camelCase\n *\n * Use the same for TypeScript types by using: ToCamelCase\n *\n * @param Base the original function or class\n * @returns extended function or class\n */\nexport function withCamelCaseProps<TBase, P>(\n Base: React.FunctionComponent<P> & TBase\n): typeof Base {\n const Component: React.ComponentType = Base\n\n const Derived = (props: P) => {\n return <Component {...convertCamelCaseProps(props)} />\n }\n\n Object.defineProperty(Derived, 'name', {\n value: Base.name,\n })\n\n for (const name in Base) {\n Object.defineProperty(Derived, name, {\n value: Base[name],\n })\n }\n\n // @ts-ignore\n return Derived\n}\n\n/**\n * withCamelCaseProps is a HOC for classes\n * it will return a React Component where all snake_case props gets converted to camelCase\n *\n * Use the same for TypeScript types by using: ToCamelCase\n *\n * @param Base the original function or class\n * @returns extended function or class\n */\nexport function classWithCamelCaseProps<\n TBase extends React.ComponentClass,\n>(Base: TBase): typeof Base {\n const Component: React.ComponentClass = Base\n\n // Bug? https://github.com/microsoft/TypeScript/issues/37142\n // @ts-ignore\n class Derived extends Base {\n _prevProps: Record<string, unknown>\n _elem: React.ReactElement\n\n componentDidMount() {\n // ensures we do not run componentDidMount twice\n }\n\n render() {\n if (this.props !== this._prevProps) {\n this._prevProps = this.props\n this._elem = (\n // @ts-ignore\n <Component {...convertCamelCaseProps(this.props)} />\n )\n }\n\n return this._elem\n }\n }\n\n Object.defineProperty(Derived, 'name', {\n value: Base.name,\n })\n\n Object.defineProperty(Derived, 'displayName', {\n value: Base.displayName || Base.name,\n })\n\n return Derived\n}\n\nexport function convertCamelCaseProps<P>(props: P) {\n const isFrozen = Object.isFrozen(props)\n const newProps = isFrozen ? { ...props } : props\n\n for (const key in props) {\n switch (key) {\n case 'className': {\n continue\n }\n }\n\n if (/^[a-z]+[A-Z]/.test(key)) {\n newProps[toSnakeCase(key)] = props[key]\n delete newProps[key]\n }\n }\n\n return isFrozen ? Object.freeze(newProps) : newProps\n}\n\n/**\n * Convert recursively Types from snake_case to camelCase\n *\n * Use it like so:\n * OriginalProps & ToCamelCase<OriginalProps>\n *\n * Disclaimer: Be careful using these with required props\n * - ToCamelCase makes the required snake_case props also required in camelCase\n * - ToCamelCasePartial removes required for the camelCase props\n *\n */\nexport type ToCamelCasePartial<T> = Partial<ToCamelCase<T>>\nexport type ToCamelCase<T> = T extends object\n ? {\n [K in keyof T as ConvertSnakeToCamelCase<K & string>]:\n | T[K]\n | ToCamelCase<T[K]>\n }\n : T\nexport type IncludeCamelCase<T> = Partial<T> & ToCamelCasePartial<T>\ntype ConvertSnakeToCamelCase<S extends string> =\n S extends `${infer T}_${infer U}`\n ? `${T}${Capitalize<ConvertSnakeToCamelCase<U>>}`\n : S\n"],"mappings":";;;AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,QAAQ,qBAAqB;AAWjD,OAAO,SAASC,kBAAkBA,CAChCC,IAAwC,EAC3B;EACb,MAAMC,SAA8B,GAAGD,IAAI;EAE3C,MAAME,OAAO,GAAIC,KAAQ,IAAK;IAC5B,OAAON,KAAA,CAAAO,aAAA,CAACH,SAAS,EAAKI,qBAAqB,CAACF,KAAK,CAAI,CAAC;EACxD,CAAC;EAEDG,MAAM,CAACC,cAAc,CAACL,OAAO,EAAE,MAAM,EAAE;IACrCM,KAAK,EAAER,IAAI,CAACS;EACd,CAAC,CAAC;EAEF,KAAK,MAAMA,IAAI,IAAIT,IAAI,EAAE;IACvBM,MAAM,CAACC,cAAc,CAACL,OAAO,EAAEO,IAAI,EAAE;MACnCD,KAAK,EAAER,IAAI,CAACS,IAAI;IAClB,CAAC,CAAC;EACJ;EAGA,OAAOP,OAAO;AAChB;AAWA,OAAO,SAASQ,uBAAuBA,CAErCV,IAAW,EAAe;EAC1B,MAAMC,SAA+B,GAAGD,IAAI;EAI5C,MAAME,OAAO,SAASF,IAAI,CAAC;IAAAW,YAAA;MAAA,SAAAC,SAAA;MAAAC,eAAA;MAAAA,eAAA;IAAA;IAIzBC,iBAAiBA,CAAA,EAAG,CAEpB;IAEAC,MAAMA,CAAA,EAAG;MACP,IAAI,IAAI,CAACZ,KAAK,KAAK,IAAI,CAACa,UAAU,EAAE;QAClC,IAAI,CAACA,UAAU,GAAG,IAAI,CAACb,KAAK;QAC5B,IAAI,CAACc,KAAK,GAERpB,KAAA,CAAAO,aAAA,CAACH,SAAS,EAAKI,qBAAqB,CAAC,IAAI,CAACF,KAAK,CAAI,CACpD;MACH;MAEA,OAAO,IAAI,CAACc,KAAK;IACnB;EACF;EAEAX,MAAM,CAACC,cAAc,CAACL,OAAO,EAAE,MAAM,EAAE;IACrCM,KAAK,EAAER,IAAI,CAACS;EACd,CAAC,CAAC;EAEFH,MAAM,CAACC,cAAc,CAACL,OAAO,EAAE,aAAa,EAAE;IAC5CM,KAAK,EAAER,IAAI,CAACkB,WAAW,IAAIlB,IAAI,CAACS;EAClC,CAAC,CAAC;EAEF,OAAOP,OAAO;AAChB;AAEA,OAAO,SAASG,qBAAqBA,CAAIF,KAAQ,EAAE;EACjD,MAAMgB,QAAQ,GAAGb,MAAM,CAACa,QAAQ,CAAChB,KAAK,CAAC;EACvC,MAAMiB,QAAQ,GAAGD,QAAQ,GAAAE,aAAA,KAAQlB,KAAK,IAAKA,KAAK;EAEhD,KAAK,MAAMmB,GAAG,IAAInB,KAAK,EAAE;IACvB,QAAQmB,GAAG;MACT,KAAK,WAAW;QAAE;UAChB;QACF;IACF;IAEA,IAAI,cAAc,CAACC,IAAI,CAACD,GAAG,CAAC,EAAE;MAC5BF,QAAQ,CAACtB,WAAW,CAACwB,GAAG,CAAC,CAAC,GAAGnB,KAAK,CAACmB,GAAG,CAAC;MACvC,OAAOF,QAAQ,CAACE,GAAG,CAAC;IACtB;EACF;EAEA,OAAOH,QAAQ,GAAGb,MAAM,CAACkB,MAAM,CAACJ,QAAQ,CAAC,GAAGA,QAAQ;AACtD"}
1
+ {"version":3,"file":"withCamelCaseProps.js","names":["React","toSnakeCase","withCamelCaseProps","Base","Component","Derived","props","createElement","convertCamelCaseProps","Object","defineProperty","value","name","classWithCamelCaseProps","constructor","arguments","_defineProperty","componentDidMount","render","_prevProps","_elem","displayName","isFrozen","newProps","_objectSpread","key","test","freeze"],"sources":["../../../../src/shared/helpers/withCamelCaseProps.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport React from 'react'\nimport { toSnakeCase } from '../component-helper'\n\n/**\n * withCamelCaseProps is a HOC for function components\n * it will return a React Component where all snake_case props gets converted to camelCase\n *\n * Use the same for TypeScript types by using: ToCamelCase\n *\n * @param Base the original function or class\n * @returns extended function or class\n */\nexport function withCamelCaseProps<TBase, P>(\n Base: React.FunctionComponent<P> & TBase\n): typeof Base {\n const Component: React.ComponentType = Base\n\n const Derived = (props: P) => {\n return <Component {...convertCamelCaseProps(props)} />\n }\n\n Object.defineProperty(Derived, 'name', {\n value: Base.name,\n })\n\n for (const name in Base) {\n Object.defineProperty(Derived, name, {\n value: Base[name],\n })\n }\n\n // @ts-ignore\n return Derived\n}\n\n/**\n * withCamelCaseProps is a HOC for classes\n * it will return a React Component where all snake_case props gets converted to camelCase\n *\n * Use the same for TypeScript types by using: ToCamelCase\n *\n * @param Base the original function or class\n * @returns extended function or class\n */\nexport function classWithCamelCaseProps<\n TBase extends React.ComponentClass,\n>(Base: TBase): typeof Base {\n const Component: React.ComponentClass = Base\n\n // Bug? https://github.com/microsoft/TypeScript/issues/37142\n // @ts-ignore\n class Derived extends Base {\n _prevProps: Record<string, unknown>\n _elem: React.ReactElement\n\n componentDidMount() {\n // ensures we do not run componentDidMount twice\n }\n\n render() {\n if (this.props !== this._prevProps) {\n this._prevProps = this.props\n this._elem = (\n // @ts-ignore\n <Component {...convertCamelCaseProps(this.props)} />\n )\n }\n\n return this._elem\n }\n }\n\n Object.defineProperty(Derived, 'name', {\n value: Base.name,\n })\n\n Object.defineProperty(Derived, 'displayName', {\n value: Base.displayName || Base.name,\n })\n\n return Derived\n}\n\n/**\n * Converts camel case props to snake case props.\n *\n * @template P - The type of the props object.\n * @param {P} props - The props object to convert.\n * @returns {P} - The converted props object.\n */\nexport function convertCamelCaseProps<P>(props: P) {\n const isFrozen = Object.isFrozen(props)\n const newProps = isFrozen ? { ...props } : props\n\n for (const key in props) {\n switch (key) {\n case 'className': {\n continue\n }\n }\n\n if (/^[a-z]+[A-Z]/.test(key)) {\n newProps[toSnakeCase(key)] = props[key]\n delete newProps[key]\n }\n }\n\n return isFrozen ? Object.freeze(newProps) : newProps\n}\n\n/**\n * Convert recursively Types from snake_case to camelCase\n *\n * Use it like so:\n * OriginalProps & ToCamelCase<OriginalProps>\n *\n * Disclaimer: Be careful using these with required props\n * - ToCamelCase makes the required snake_case props also required in camelCase\n * - ToCamelCasePartial removes required for the camelCase props\n * - ToCamelCaseFlat is like ToCamelCase, but it will not convert nested objects for performance boost\n * - ToCamelCasePartialFlat is like ToCamelCasePartial, but it will not convert nested objects for performance boost\n */\nexport type ToCamelCasePartial<T> = Partial<ToCamelCase<T>>\nexport type ToCamelCase<T> = T extends object\n ? {\n [K in keyof T as ConvertSnakeToCamelCase<K & string>]:\n | T[K]\n | ToCamelCase<T[K]>\n }\n : T\nexport type IncludeCamelCase<T> = Partial<T> & ToCamelCasePartial<T>\ntype ConvertSnakeToCamelCase<S extends string> =\n S extends `${infer T}_${infer U}`\n ? `${T}${Capitalize<ConvertSnakeToCamelCase<U>>}`\n : S\n\ntype ConvertObjectKeysToCamelCase<T> = {\n [K in keyof T as ConvertSnakeToCamelCase<K & string>]: T[K]\n}\nexport type ToCamelCaseFlat<T> = T extends object\n ? ConvertObjectKeysToCamelCase<T>\n : T\nexport type ToCamelCasePartialFlat<T> = Partial<ToCamelCaseFlat<T>>\n"],"mappings":";;;AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,QAAQ,qBAAqB;AAWjD,OAAO,SAASC,kBAAkBA,CAChCC,IAAwC,EAC3B;EACb,MAAMC,SAA8B,GAAGD,IAAI;EAE3C,MAAME,OAAO,GAAIC,KAAQ,IAAK;IAC5B,OAAON,KAAA,CAAAO,aAAA,CAACH,SAAS,EAAKI,qBAAqB,CAACF,KAAK,CAAI,CAAC;EACxD,CAAC;EAEDG,MAAM,CAACC,cAAc,CAACL,OAAO,EAAE,MAAM,EAAE;IACrCM,KAAK,EAAER,IAAI,CAACS;EACd,CAAC,CAAC;EAEF,KAAK,MAAMA,IAAI,IAAIT,IAAI,EAAE;IACvBM,MAAM,CAACC,cAAc,CAACL,OAAO,EAAEO,IAAI,EAAE;MACnCD,KAAK,EAAER,IAAI,CAACS,IAAI;IAClB,CAAC,CAAC;EACJ;EAGA,OAAOP,OAAO;AAChB;AAWA,OAAO,SAASQ,uBAAuBA,CAErCV,IAAW,EAAe;EAC1B,MAAMC,SAA+B,GAAGD,IAAI;EAI5C,MAAME,OAAO,SAASF,IAAI,CAAC;IAAAW,YAAA;MAAA,SAAAC,SAAA;MAAAC,eAAA;MAAAA,eAAA;IAAA;IAIzBC,iBAAiBA,CAAA,EAAG,CAEpB;IAEAC,MAAMA,CAAA,EAAG;MACP,IAAI,IAAI,CAACZ,KAAK,KAAK,IAAI,CAACa,UAAU,EAAE;QAClC,IAAI,CAACA,UAAU,GAAG,IAAI,CAACb,KAAK;QAC5B,IAAI,CAACc,KAAK,GAERpB,KAAA,CAAAO,aAAA,CAACH,SAAS,EAAKI,qBAAqB,CAAC,IAAI,CAACF,KAAK,CAAI,CACpD;MACH;MAEA,OAAO,IAAI,CAACc,KAAK;IACnB;EACF;EAEAX,MAAM,CAACC,cAAc,CAACL,OAAO,EAAE,MAAM,EAAE;IACrCM,KAAK,EAAER,IAAI,CAACS;EACd,CAAC,CAAC;EAEFH,MAAM,CAACC,cAAc,CAACL,OAAO,EAAE,aAAa,EAAE;IAC5CM,KAAK,EAAER,IAAI,CAACkB,WAAW,IAAIlB,IAAI,CAACS;EAClC,CAAC,CAAC;EAEF,OAAOP,OAAO;AAChB;AASA,OAAO,SAASG,qBAAqBA,CAAIF,KAAQ,EAAE;EACjD,MAAMgB,QAAQ,GAAGb,MAAM,CAACa,QAAQ,CAAChB,KAAK,CAAC;EACvC,MAAMiB,QAAQ,GAAGD,QAAQ,GAAAE,aAAA,KAAQlB,KAAK,IAAKA,KAAK;EAEhD,KAAK,MAAMmB,GAAG,IAAInB,KAAK,EAAE;IACvB,QAAQmB,GAAG;MACT,KAAK,WAAW;QAAE;UAChB;QACF;IACF;IAEA,IAAI,cAAc,CAACC,IAAI,CAACD,GAAG,CAAC,EAAE;MAC5BF,QAAQ,CAACtB,WAAW,CAACwB,GAAG,CAAC,CAAC,GAAGnB,KAAK,CAACmB,GAAG,CAAC;MACvC,OAAOF,QAAQ,CAACE,GAAG,CAAC;IACtB;EACF;EAEA,OAAOH,QAAQ,GAAGb,MAAM,CAACkB,MAAM,CAACJ,QAAQ,CAAC,GAAGA,QAAQ;AACtD"}
@@ -7,36 +7,11 @@ export function scrollToLocationHashId({ offset, delay, onCompletion, }?: {
7
7
  delay?: any;
8
8
  onCompletion?: any;
9
9
  }): HTMLElement;
10
- /**
11
- * More or less classical debounce function
12
- *
13
- * Calling this function will return a new function, that, as long as it continues to be invoked, will not
14
- * be triggered. The function will be called after it stops being called for
15
- * N milliseconds. If `immediate` is passed, trigger the function on the
16
- * leading edge, instead of the trailing.
17
- *
18
- * @param {function} func The function to execute
19
- * @param {number} wait The time (milliseconds) before the first given function executes, if the returned one, not got called
20
- * @param {object} options The options object
21
- * @property {boolean} immediate If true, the function will execute immediately. Defaults to false
22
- * @property {instance} instance Defines the instance "this" to use on the executed function
23
- * @returns The function to invalidate the execution
24
- */
25
- export function debounce(func: Function, wait?: number, { immediate, instance }?: object): {
26
- (...args: any[]): any;
27
- cancel: () => void;
28
- };
29
10
  export function insertElementBeforeSelection(elem: any): void;
30
11
  export function getSelectedText(): string;
31
12
  export function hasSelectedText(): boolean;
32
13
  export function getSelectedElement(): Node;
33
14
  export function copyToClipboard(string: any): Promise<any>;
34
- /**
35
- * Global helpers
36
- *
37
- * NB: Do not import other deps in this file.
38
- * Just to have things clean and one directional.
39
- */
40
15
  export const PLATFORM_MAC: "Mac|iPad|iPhone|iPod";
41
16
  export const PLATFORM_WIN: "Win";
42
17
  export const PLATFORM_ANDROID: "Android";
@@ -57,3 +32,4 @@ export function isiOS(): boolean;
57
32
  export function isSafari(): boolean;
58
33
  export function isEdge(): boolean;
59
34
  export function warn(...params: any[]): void;
35
+ export { debounce, debounceAsync } from "./helpers/debounce";
package/shared/helpers.js CHANGED
@@ -1,3 +1,4 @@
1
+ export { debounce, debounceAsync } from './helpers/debounce';
1
2
  export const PLATFORM_MAC = 'Mac|iPad|iPhone|iPod';
2
3
  export const PLATFORM_WIN = 'Win';
3
4
  export const PLATFORM_ANDROID = 'Android';
@@ -185,40 +186,6 @@ export function scrollToLocationHashId() {
185
186
  }
186
187
  }
187
188
  }
188
- export function debounce(func) {
189
- let wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 250;
190
- let {
191
- immediate = false,
192
- instance = null
193
- } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
194
- let timeout;
195
- let recall;
196
- const cancel = () => clearTimeout(timeout);
197
- function executedFunction() {
198
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
199
- args[_key] = arguments[_key];
200
- }
201
- let inst = this;
202
- if (typeof recall === 'function') {
203
- recall();
204
- }
205
- const later = () => {
206
- timeout = null;
207
- if (!immediate) {
208
- recall = func.apply(instance || inst, args);
209
- }
210
- };
211
- const callNow = immediate && !timeout;
212
- clearTimeout(timeout);
213
- timeout = setTimeout(later, wait);
214
- if (callNow) {
215
- recall = func.apply(instance || inst, args);
216
- }
217
- return recall;
218
- }
219
- executedFunction.cancel = cancel;
220
- return executedFunction;
221
- }
222
189
  export function insertElementBeforeSelection(elem) {
223
190
  try {
224
191
  const selection = window.getSelection();
@@ -303,8 +270,8 @@ export async function copyToClipboard(string) {
303
270
  export const warn = function () {
304
271
  if (typeof process !== 'undefined' && process.env.NODE_ENV !== 'production' && typeof console !== 'undefined' && typeof console.log === 'function') {
305
272
  const isBrowser = typeof window !== 'undefined' && process.env.NODE_ENV !== 'test';
306
- for (var _len2 = arguments.length, params = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
307
- params[_key2] = arguments[_key2];
273
+ for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {
274
+ params[_key] = arguments[_key];
308
275
  }
309
276
  if (isBrowser) {
310
277
  const styles = [`padding: 0.125rem 0.5rem ${IS_SAFARI ? '' : '0'}`, 'font-weight: bold', 'color: #00343E', 'background: #A5E1D2'].join(';');