@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,92 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.debounce = debounce;
7
+ exports.debounceAsync = debounceAsync;
8
+ 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; }
9
+ 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; }
10
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
12
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
13
+ function debounce(debouncedFunction) {
14
+ let wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 250;
15
+ let {
16
+ immediate = false,
17
+ instance = null,
18
+ async = false
19
+ } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
20
+ let timeout;
21
+ let recall;
22
+ let resolvePromise;
23
+ let rejectPromise;
24
+ let canceled = false;
25
+ const customCancels = [];
26
+ const cancel = () => {
27
+ var _resolvePromise;
28
+ canceled = true;
29
+ clearTimeout(timeout);
30
+ (_resolvePromise = resolvePromise) === null || _resolvePromise === void 0 ? void 0 : _resolvePromise();
31
+ customCancels.forEach(fn => {
32
+ fn();
33
+ });
34
+ };
35
+ const addCancelEvent = fn => {
36
+ if (!customCancels.includes(fn)) {
37
+ customCancels.push(fn);
38
+ }
39
+ return () => {
40
+ return canceled;
41
+ };
42
+ };
43
+ function executedFunction() {
44
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
45
+ args[_key] = arguments[_key];
46
+ }
47
+ if (typeof recall === 'function') {
48
+ recall();
49
+ }
50
+ canceled = false;
51
+ const inst = instance || this || {};
52
+ inst.cancel = cancel;
53
+ inst.addCancelEvent = addCancelEvent;
54
+ const later = callNow => {
55
+ timeout = null;
56
+ if (callNow || !immediate) {
57
+ try {
58
+ var _resolvePromise2;
59
+ recall = debouncedFunction.apply(inst, args);
60
+ (_resolvePromise2 = resolvePromise) === null || _resolvePromise2 === void 0 ? void 0 : _resolvePromise2(recall);
61
+ } catch (error) {
62
+ var _rejectPromise;
63
+ (_rejectPromise = rejectPromise) === null || _rejectPromise === void 0 ? void 0 : _rejectPromise(error);
64
+ }
65
+ }
66
+ };
67
+ const callNow = immediate && !timeout;
68
+ clearTimeout(timeout);
69
+ timeout = setTimeout(later, wait);
70
+ if (callNow) {
71
+ later(true);
72
+ }
73
+ if (async) {
74
+ return new Promise((resolve, reject) => {
75
+ resolvePromise = resolve;
76
+ rejectPromise = reject;
77
+ });
78
+ }
79
+ return recall;
80
+ }
81
+ executedFunction.cancel = cancel;
82
+ executedFunction.addCancelEvent = addCancelEvent;
83
+ return executedFunction;
84
+ }
85
+ function debounceAsync(debouncedFunction) {
86
+ let wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 250;
87
+ let opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
88
+ return debounce(debouncedFunction, wait, _objectSpread(_objectSpread({}, opts), {}, {
89
+ async: true
90
+ }));
91
+ }
92
+ //# 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;
@@ -8,8 +8,8 @@ exports.pickFormElementProps = pickFormElementProps;
8
8
  exports.prepareFormElementContext = prepareFormElementContext;
9
9
  var _componentHelper = require("../component-helper");
10
10
  function filterValidProps(props, validKeys, excludeKeys) {
11
- const res = {},
12
- o = Object.prototype.hasOwnProperty;
11
+ const res = {};
12
+ const o = Object.prototype.hasOwnProperty;
13
13
  for (const key in props) {
14
14
  if ((!validKeys || validKeys && o.call(validKeys, key)) && (!excludeKeys || excludeKeys && !o.call(excludeKeys, key))) {
15
15
  res[key] = props[key];
@@ -1 +1 @@
1
- {"version":3,"file":"filterValidProps.js","names":["_componentHelper","require","filterValidProps","props","validKeys","excludeKeys","res","o","Object","prototype","hasOwnProperty","key","call","pickFormElementProps","excludeProps","validFormElementProps","prepareFormElementContext","isTrue","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,IAAAA,gBAAA,GAAAC,OAAA;AAWO,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;AAUO,SAASO,oBAAoBA,CAClCV,KAAuB,EACvBW,YAAsC,EACtC;EACA,OAAOZ,gBAAgB,CAACC,KAAK,EAAEY,qBAAqB,EAAED,YAAY,CAAC;AACrE;AACO,SAASE,yBAAyBA,CACvCb,KAA+B,EAC/B;EACA,IAAI,IAAAc,uBAAM,EAACd,KAAK,CAACe,QAAQ,CAAC,EAAE;IAC1B,IAAI,OAAOf,KAAK,CAACgB,cAAc,KAAK,WAAW,EAAE;MAC/ChB,KAAK,CAACgB,cAAc,GAAG,UAAU;IACnC;IACA,IAAI,OAAOhB,KAAK,CAACiB,eAAe,KAAK,WAAW,EAAE;MAChDjB,KAAK,CAACiB,eAAe,GAAG,UAAU;IACpC;EACF;EACA,OAAOjB,KAAK;AACd;AAQA,MAAMY,qBAAqB,GAAG;EAC5BM,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":["_componentHelper","require","filterValidProps","props","validKeys","excludeKeys","res","o","Object","prototype","hasOwnProperty","key","call","pickFormElementProps","excludeProps","validFormElementProps","prepareFormElementContext","isTrue","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,IAAAA,gBAAA,GAAAC,OAAA;AAWO,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;AAUO,SAASO,oBAAoBA,CAClCV,KAAuB,EACvBW,YAAsC,EACtC;EACA,OAAOZ,gBAAgB,CAACC,KAAK,EAAEY,qBAAqB,EAAED,YAAY,CAAC;AACrE;AACO,SAASE,yBAAyBA,CACvCb,KAA+B,EAC/B;EACA,IAAI,IAAAc,uBAAM,EAACd,KAAK,CAACe,QAAQ,CAAC,EAAE;IAC1B,IAAI,OAAOf,KAAK,CAACgB,cAAc,KAAK,WAAW,EAAE;MAC/ChB,KAAK,CAACgB,cAAc,GAAG,UAAU;IACnC;IACA,IAAI,OAAOhB,KAAK,CAACiB,eAAe,KAAK,WAAW,EAAE;MAChDjB,KAAK,CAACiB,eAAe,GAAG,UAAU;IACpC;EACF;EACA,OAAOjB,KAAK;AACd;AAQA,MAAMY,qBAAqB,GAAG;EAC5BM,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> {
@@ -6,21 +6,54 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.createSharedState = createSharedState;
8
8
  exports.useSharedState = useSharedState;
9
- var _react = require("react");
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _useMounted = _interopRequireDefault(require("../../extensions/forms/hooks/useMounted"));
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
10
14
  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; }
11
15
  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; }
12
16
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
17
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
14
18
  function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
19
+ const useLayoutEffect = typeof window === 'undefined' ? _react.default.useEffect : _react.default.useLayoutEffect;
15
20
  function useSharedState(id) {
16
21
  var _sharedState$get;
17
22
  let initialData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
18
23
  let onChange = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
19
24
  const [, forceUpdate] = (0, _react.useReducer)(() => ({}), {});
20
- const sharedState = (0, _react.useMemo)(() => id && createSharedState(id, initialData), [id, initialData]);
21
- const sharedFunc = (0, _react.useMemo)(() => id && createSharedState(id + '-onChange', {
22
- onChange
23
- }), [id, onChange]);
25
+ const hasMounted = (0, _useMounted.default)();
26
+ const waitForMountedRef = (0, _react.useRef)(false);
27
+ const forceRerender = (0, _react.useCallback)(() => {
28
+ if (hasMounted.current) {
29
+ forceUpdate();
30
+ } else {
31
+ waitForMountedRef.current = true;
32
+ }
33
+ }, [hasMounted]);
34
+ useLayoutEffect(() => {
35
+ if (waitForMountedRef.current) {
36
+ forceUpdate();
37
+ }
38
+ }, []);
39
+ const sharedState = (0, _react.useMemo)(() => {
40
+ if (id) {
41
+ return createSharedState(id, initialData);
42
+ }
43
+ }, [id, initialData]);
44
+ const sharedAttachment = (0, _react.useMemo)(() => {
45
+ if (id) {
46
+ return createSharedState(id + '-oc', {
47
+ onChange
48
+ });
49
+ }
50
+ }, [id, onChange]);
51
+ const sync = (0, _react.useCallback)(newData => {
52
+ if (id) {
53
+ var _sharedAttachment$dat, _sharedAttachment$dat2;
54
+ (_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);
55
+ }
56
+ }, [id, sharedAttachment]);
24
57
  const update = (0, _react.useCallback)(newData => {
25
58
  if (id) {
26
59
  sharedState.update(newData);
@@ -28,42 +61,41 @@ function useSharedState(id) {
28
61
  }, [id, sharedState]);
29
62
  const set = (0, _react.useCallback)(newData => {
30
63
  if (id) {
31
- var _sharedFunc$get, _sharedFunc$get$onCha;
32
64
  sharedState.set(newData);
33
- (_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);
65
+ sync(newData);
34
66
  }
35
- }, [id, sharedState, sharedFunc]);
67
+ }, [id, sharedState, sync]);
36
68
  const extend = (0, _react.useCallback)(newData => {
37
69
  if (id) {
38
- var _sharedFunc$get2, _sharedFunc$get2$onCh;
39
70
  sharedState.extend(newData);
40
- (_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);
71
+ sync(newData);
41
72
  }
42
- }, [id, sharedState, sharedFunc]);
43
- (0, _react.useEffect)(() => {
73
+ }, [id, sharedState, sync]);
74
+ useLayoutEffect(() => {
44
75
  if (!id) {
45
76
  return;
46
77
  }
47
- sharedState.subscribe(forceUpdate);
78
+ sharedState.subscribe(forceRerender);
48
79
  return () => {
49
- sharedState.unsubscribe(forceUpdate);
80
+ sharedState.unsubscribe(forceRerender);
50
81
  };
51
- }, [id, sharedState]);
82
+ }, [forceRerender, id, onChange, sharedState]);
52
83
  (0, _react.useEffect)(() => {
53
- var _sharedFunc$get3;
54
- if (id && onChange && !((_sharedFunc$get3 = sharedFunc.get()) !== null && _sharedFunc$get3 !== void 0 && _sharedFunc$get3.onChange)) {
55
- sharedFunc.set({
84
+ var _sharedAttachment$dat3;
85
+ if (id && onChange && !((_sharedAttachment$dat3 = sharedAttachment.data) !== null && _sharedAttachment$dat3 !== void 0 && _sharedAttachment$dat3.onChange)) {
86
+ sharedAttachment.set({
56
87
  onChange
57
88
  });
58
89
  }
59
- }, [id, onChange, sharedFunc]);
90
+ }, [id, onChange, sharedAttachment]);
60
91
  return {
61
92
  get: sharedState === null || sharedState === void 0 ? void 0 : sharedState.get,
62
93
  data: sharedState === null || sharedState === void 0 ? void 0 : (_sharedState$get = sharedState.get) === null || _sharedState$get === void 0 ? void 0 : _sharedState$get.call(sharedState),
63
94
  hadInitialData: sharedState === null || sharedState === void 0 ? void 0 : sharedState.hadInitialData,
64
95
  update,
65
96
  set,
66
- extend
97
+ extend,
98
+ sync
67
99
  };
68
100
  }
69
101
  const sharedStates = {};
@@ -1 +1 @@
1
- {"version":3,"file":"useSharedState.js","names":["_react","require","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","useSharedState","id","_sharedState$get","initialData","onChange","forceUpdate","useReducer","sharedState","useMemo","createSharedState","sharedFunc","update","useCallback","newData","set","_sharedFunc$get","_sharedFunc$get$onCha","get","extend","_sharedFunc$get2","_sharedFunc$get2$onCh","useEffect","subscribe","unsubscribe","_sharedFunc$get3","data","hadInitialData","sharedStates","subscribers","subscriber","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":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAAmE,SAAAC,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,IAAAC,eAAA,CAAAP,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAkB,yBAAA,GAAAlB,MAAA,CAAAmB,gBAAA,CAAAT,MAAA,EAAAV,MAAA,CAAAkB,yBAAA,CAAAJ,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAoB,cAAA,CAAAV,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAAA,SAAAO,gBAAAI,GAAA,EAAAL,GAAA,EAAAM,KAAA,IAAAN,GAAA,GAAAO,cAAA,CAAAP,GAAA,OAAAA,GAAA,IAAAK,GAAA,IAAArB,MAAA,CAAAoB,cAAA,CAAAC,GAAA,EAAAL,GAAA,IAAAM,KAAA,EAAAA,KAAA,EAAAhB,UAAA,QAAAkB,YAAA,QAAAC,QAAA,oBAAAJ,GAAA,CAAAL,GAAA,IAAAM,KAAA,WAAAD,GAAA;AAAA,SAAAE,eAAAG,GAAA,QAAAV,GAAA,GAAAW,YAAA,CAAAD,GAAA,2BAAAV,GAAA,gBAAAA,GAAA,GAAAY,MAAA,CAAAZ,GAAA;AAAA,SAAAW,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAAK,IAAA,CAAAP,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAE,SAAA,4DAAAP,IAAA,gBAAAF,MAAA,GAAAU,MAAA,EAAAT,KAAA;AAa5D,SAASU,cAAcA,CAC5BC,EAAiB,EAGjB;EAAA,IAAAC,gBAAA;EAAA,IAFAC,WAAiB,GAAA9B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAsB,SAAA,GAAAtB,SAAA,MAAGsB,SAAS;EAAA,IAC7BS,QAAQ,GAAA/B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAsB,SAAA,GAAAtB,SAAA,MAAG,IAAI;EAEf,MAAM,GAAGgC,WAAW,CAAC,GAAG,IAAAC,iBAAU,EAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAElD,MAAMC,WAAW,GAAG,IAAAC,cAAO,EACzB,MAAMP,EAAE,IAAIQ,iBAAiB,CAAOR,EAAE,EAAEE,WAAW,CAAC,EACpD,CAACF,EAAE,EAAEE,WAAW,CAClB,CAAC;EACD,MAAMO,UAAU,GAAG,IAAAF,cAAO,EACxB,MAAMP,EAAE,IAAIQ,iBAAiB,CAACR,EAAE,GAAG,WAAW,EAAE;IAAEG;EAAS,CAAC,CAAC,EAC7D,CAACH,EAAE,EAAEG,QAAQ,CACf,CAAC;EAED,MAAMO,MAAM,GAAG,IAAAC,kBAAW,EACvBC,OAAa,IAAK;IACjB,IAAIZ,EAAE,EAAE;MACNM,WAAW,CAACI,MAAM,CAACE,OAAO,CAAC;IAC7B;EACF,CAAC,EACD,CAACZ,EAAE,EAAEM,WAAW,CAClB,CAAC;EAED,MAAMO,GAAG,GAAG,IAAAF,kBAAW,EACpBC,OAAa,IAAK;IACjB,IAAIZ,EAAE,EAAE;MAAA,IAAAc,eAAA,EAAAC,qBAAA;MACNT,WAAW,CAACO,GAAG,CAACD,OAAO,CAAC;MACxB,CAAAE,eAAA,GAAAL,UAAU,CAACO,GAAG,CAAC,CAAC,cAAAF,eAAA,wBAAAC,qBAAA,GAAhBD,eAAA,CAAkBX,QAAQ,cAAAY,qBAAA,uBAA1BA,qBAAA,CAAAnB,IAAA,CAAAkB,eAAA,EAA6BF,OAAO,CAAC;IACvC;EACF,CAAC,EACD,CAACZ,EAAE,EAAEM,WAAW,EAAEG,UAAU,CAC9B,CAAC;EAED,MAAMQ,MAAM,GAAG,IAAAN,kBAAW,EACvBC,OAAa,IAAK;IACjB,IAAIZ,EAAE,EAAE;MAAA,IAAAkB,gBAAA,EAAAC,qBAAA;MACNb,WAAW,CAACW,MAAM,CAACL,OAAO,CAAC;MAC3B,CAAAM,gBAAA,GAAAT,UAAU,CAACO,GAAG,CAAC,CAAC,cAAAE,gBAAA,wBAAAC,qBAAA,GAAhBD,gBAAA,CAAkBf,QAAQ,cAAAgB,qBAAA,uBAA1BA,qBAAA,CAAAvB,IAAA,CAAAsB,gBAAA,EAA6BN,OAAO,CAAC;IACvC;EACF,CAAC,EACD,CAACZ,EAAE,EAAEM,WAAW,EAAEG,UAAU,CAC9B,CAAC;EAED,IAAAW,gBAAS,EAAC,MAAM;IACd,IAAI,CAACpB,EAAE,EAAE;MACP;IACF;IAEAM,WAAW,CAACe,SAAS,CAACjB,WAAW,CAAC;IAElC,OAAO,MAAM;MACXE,WAAW,CAACgB,WAAW,CAAClB,WAAW,CAAC;IACtC,CAAC;EACH,CAAC,EAAE,CAACJ,EAAE,EAAEM,WAAW,CAAC,CAAC;EAErB,IAAAc,gBAAS,EAAC,MAAM;IAAA,IAAAG,gBAAA;IAEd,IAAIvB,EAAE,IAAIG,QAAQ,IAAI,GAAAoB,gBAAA,GAACd,UAAU,CAACO,GAAG,CAAC,CAAC,cAAAO,gBAAA,eAAhBA,gBAAA,CAAkBpB,QAAQ,GAAE;MACjDM,UAAU,CAACI,GAAG,CAAC;QAAEV;MAAS,CAAC,CAAC;IAC9B;EACF,CAAC,EAAE,CAACH,EAAE,EAAEG,QAAQ,EAAEM,UAAU,CAAC,CAAC;EAE9B,OAAO;IACLO,GAAG,EAAEV,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEU,GAAG;IACrBQ,IAAI,EAAElB,WAAW,aAAXA,WAAW,wBAAAL,gBAAA,GAAXK,WAAW,CAAEU,GAAG,cAAAf,gBAAA,uBAAhBA,gBAAA,CAAAL,IAAA,CAAAU,WAAmB,CAAS;IAClCmB,cAAc,EAAEnB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEmB,cAAc;IAC3Cf,MAAM;IACNG,GAAG;IACHI;EACF,CAAC;AACH;AAeA,MAAMS,YAA6D,GAAG,CAAC,CAAC;AASjE,SAASlB,iBAAiBA,CAC/BR,EAAiB,EACjBE,WAAkB,EACS;EAC3B,IAAI,CAACwB,YAAY,CAAC1B,EAAE,CAAC,EAAE;IACrB,IAAI2B,WAAyB,GAAG,EAAE;IAElC,MAAMX,GAAG,GAAGA,CAAA,KAAMU,YAAY,CAAC1B,EAAE,CAAC,CAACwB,IAAI;IAEvC,MAAMP,MAAM,GAAIL,OAAa,IAAK;MAChCc,YAAY,CAAC1B,EAAE,CAAC,CAACwB,IAAI,GAAAvD,aAAA,CAAAA,aAAA,KAAQyD,YAAY,CAAC1B,EAAE,CAAC,CAACwB,IAAI,GAAKZ,OAAO,CAAE;MAChEe,WAAW,CAACpD,OAAO,CAAEqD,UAAU,IAAKA,UAAU,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,MAAMf,GAAG,GAAID,OAAsB,IAAK;MACtCc,YAAY,CAAC1B,EAAE,CAAC,CAACwB,IAAI,GAAAvD,aAAA,KAAQ2C,OAAO,CAAE;IACxC,CAAC;IAED,MAAMF,MAAM,GAAIE,OAAsB,IAAK;MACzCC,GAAG,CAACD,OAAO,CAAC;MACZe,WAAW,CAACpD,OAAO,CAAEqD,UAAU,IAAKA,UAAU,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,MAAMP,SAAS,GAAIO,UAAsB,IAAK;MAC5CD,WAAW,CAAC5D,IAAI,CAAC6D,UAAU,CAAC;IAC9B,CAAC;IAED,MAAMN,WAAW,GAAIM,UAAsB,IAAK;MAC9CD,WAAW,GAAGA,WAAW,CAAChE,MAAM,CAAEkE,GAAG,IAAKA,GAAG,KAAKD,UAAU,CAAC;IAC/D,CAAC;IAEDF,YAAY,CAAC1B,EAAE,CAAC,GAAG;MACjBwB,IAAI,EAAE9B,SAAS;MACfsB,GAAG;MACHH,GAAG;MACHI,MAAM;MACNP,MAAM;MACNW,SAAS;MACTC,WAAW;MACXG,cAAc,EAAEK,OAAO,CAAC5B,WAAW;IACrC,CAA8B;IAE9B,IAAIA,WAAW,EAAE;MACfe,MAAM,CAACf,WAAW,CAAC;IACrB;EACF,CAAC,MAAM,IACLwB,YAAY,CAAC1B,EAAE,CAAC,CAACwB,IAAI,KAAK9B,SAAS,IACnCQ,WAAW,KAAKR,SAAS,EACzB;IACAgC,YAAY,CAAC1B,EAAE,CAAC,CAACwB,IAAI,GAAAvD,aAAA,KAAQiC,WAAW,CAAE;EAC5C;EAEA,OAAOwB,YAAY,CAAC1B,EAAE,CAAC;AACzB"}
1
+ {"version":3,"file":"useSharedState.js","names":["_react","_interopRequireWildcard","require","_useMounted","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","useLayoutEffect","window","React","useEffect","useSharedState","id","_sharedState$get","initialData","onChange","forceUpdate","useReducer","hasMounted","useMounted","waitForMountedRef","useRef","forceRerender","useCallback","current","sharedState","useMemo","createSharedState","sharedAttachment","sync","newData","_sharedAttachment$dat","_sharedAttachment$dat2","data","update","extend","subscribe","unsubscribe","_sharedAttachment$dat3","hadInitialData","sharedStates","subscribers","subscriber","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","_interopRequireDefault","require","_componentHelper","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","withCamelCaseProps","Base","Component","Derived","props","createElement","convertCamelCaseProps","name","classWithCamelCaseProps","constructor","componentDidMount","render","_prevProps","_elem","displayName","isFrozen","newProps","test","toSnakeCase","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":"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"}
1
+ {"version":3,"file":"withCamelCaseProps.js","names":["_react","_interopRequireDefault","require","_componentHelper","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","withCamelCaseProps","Base","Component","Derived","props","createElement","convertCamelCaseProps","name","classWithCamelCaseProps","constructor","componentDidMount","render","_prevProps","_elem","displayName","isFrozen","newProps","test","toSnakeCase","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":"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"}
@@ -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";
@@ -6,7 +6,18 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.PLATFORM_WIN = exports.PLATFORM_MAC = exports.PLATFORM_LINUX = exports.PLATFORM_IOS = exports.PLATFORM_ANDROID = exports.IS_WIN = exports.IS_SAFARI = exports.IS_MAC = exports.IS_LINUX = exports.IS_IOS = exports.IS_EDGE = exports.IS_ANDROID = void 0;
7
7
  exports.applyPageFocus = applyPageFocus;
8
8
  exports.copyToClipboard = copyToClipboard;
9
- exports.debounce = debounce;
9
+ Object.defineProperty(exports, "debounce", {
10
+ enumerable: true,
11
+ get: function () {
12
+ return _debounce.debounce;
13
+ }
14
+ });
15
+ Object.defineProperty(exports, "debounceAsync", {
16
+ enumerable: true,
17
+ get: function () {
18
+ return _debounce.debounceAsync;
19
+ }
20
+ });
10
21
  exports.getOffsetLeft = getOffsetLeft;
11
22
  exports.getOffsetTop = getOffsetTop;
12
23
  exports.getSelectedElement = getSelectedElement;
@@ -17,6 +28,7 @@ exports.isiOS = exports.isWin = exports.isSafari = exports.isMac = exports.isLin
17
28
  exports.scrollToLocationHashId = scrollToLocationHashId;
18
29
  exports.setPageFocusElement = setPageFocusElement;
19
30
  exports.warn = void 0;
31
+ var _debounce = require("./helpers/debounce");
20
32
  const PLATFORM_MAC = 'Mac|iPad|iPhone|iPod';
21
33
  exports.PLATFORM_MAC = PLATFORM_MAC;
22
34
  const PLATFORM_WIN = 'Win';
@@ -223,40 +235,6 @@ function scrollToLocationHashId() {
223
235
  }
224
236
  }
225
237
  }
226
- function debounce(func) {
227
- let wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 250;
228
- let {
229
- immediate = false,
230
- instance = null
231
- } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
232
- let timeout;
233
- let recall;
234
- const cancel = () => clearTimeout(timeout);
235
- function executedFunction() {
236
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
237
- args[_key] = arguments[_key];
238
- }
239
- let inst = this;
240
- if (typeof recall === 'function') {
241
- recall();
242
- }
243
- const later = () => {
244
- timeout = null;
245
- if (!immediate) {
246
- recall = func.apply(instance || inst, args);
247
- }
248
- };
249
- const callNow = immediate && !timeout;
250
- clearTimeout(timeout);
251
- timeout = setTimeout(later, wait);
252
- if (callNow) {
253
- recall = func.apply(instance || inst, args);
254
- }
255
- return recall;
256
- }
257
- executedFunction.cancel = cancel;
258
- return executedFunction;
259
- }
260
238
  function insertElementBeforeSelection(elem) {
261
239
  try {
262
240
  const selection = window.getSelection();
@@ -341,8 +319,8 @@ async function copyToClipboard(string) {
341
319
  const warn = function () {
342
320
  if (typeof process !== 'undefined' && process.env.NODE_ENV !== 'production' && typeof console !== 'undefined' && typeof console.log === 'function') {
343
321
  const isBrowser = typeof window !== 'undefined' && process.env.NODE_ENV !== 'test';
344
- for (var _len2 = arguments.length, params = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
345
- params[_key2] = arguments[_key2];
322
+ for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {
323
+ params[_key] = arguments[_key];
346
324
  }
347
325
  if (isBrowser) {
348
326
  const styles = [`padding: 0.125rem 0.5rem ${IS_SAFARI ? '' : '0'}`, 'font-weight: bold', 'color: #00343E', 'background: #A5E1D2'].join(';');