@dnb/eufemia 10.22.0 → 10.24.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 (1233) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/cjs/components/accordion/Accordion.js +1 -1
  3. package/cjs/components/accordion/Accordion.js.map +1 -1
  4. package/cjs/components/accordion/AccordionContext.d.ts +1 -1
  5. package/cjs/components/accordion/AccordionGroup.js +1 -1
  6. package/cjs/components/accordion/AccordionGroup.js.map +1 -1
  7. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +18 -0
  8. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  9. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +20 -0
  10. package/cjs/components/anchor/Anchor.d.ts +3 -4
  11. package/cjs/components/anchor/Anchor.js +16 -25
  12. package/cjs/components/anchor/Anchor.js.map +1 -1
  13. package/cjs/components/anchor/style/anchor-mixins.scss +62 -13
  14. package/cjs/components/anchor/style/dnb-anchor.css +79 -16
  15. package/cjs/components/anchor/style/dnb-anchor.min.css +1 -1
  16. package/cjs/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +10 -30
  17. package/cjs/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  18. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +82 -78
  19. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  20. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +25 -53
  21. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.css +10 -30
  22. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  23. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.scss +1 -8
  24. package/cjs/components/aria-live/useAriaLive.d.ts +1 -1
  25. package/cjs/components/breadcrumb/Breadcrumb.js +26 -17
  26. package/cjs/components/breadcrumb/Breadcrumb.js.map +1 -1
  27. package/cjs/components/breadcrumb/BreadcrumbItem.d.ts +6 -4
  28. package/cjs/components/breadcrumb/BreadcrumbItem.js +17 -9
  29. package/cjs/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  30. package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +29 -4
  31. package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  32. package/cjs/components/breadcrumb/style/dnb-breadcrumb.scss +32 -4
  33. package/cjs/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.css +9 -0
  34. package/cjs/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.min.css +1 -1
  35. package/cjs/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.scss +7 -0
  36. package/cjs/components/button/Button.js +1 -1
  37. package/cjs/components/button/Button.js.map +1 -1
  38. package/cjs/components/button/style/button--tertiary.scss +30 -75
  39. package/cjs/components/button/style/dnb-button.css +43 -49
  40. package/cjs/components/button/style/dnb-button.min.css +1 -1
  41. package/cjs/components/button/style/dnb-button.scss +46 -59
  42. package/cjs/components/button/style/themes/button-mixins.scss +26 -5
  43. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.css +29 -60
  44. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.min.css +12 -2
  45. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.css +44 -72
  46. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.min.css +16 -4
  47. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.scss +14 -16
  48. package/cjs/components/button/style/themes/dnb-button-theme-ui.css +29 -60
  49. package/cjs/components/button/style/themes/dnb-button-theme-ui.min.css +12 -2
  50. package/cjs/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
  51. package/cjs/components/card/Card.d.ts +15 -2
  52. package/cjs/components/card/Card.js +19 -7
  53. package/cjs/components/card/Card.js.map +1 -1
  54. package/cjs/components/card/CardDocs.d.ts +2 -0
  55. package/cjs/components/card/CardDocs.js +65 -0
  56. package/cjs/components/card/CardDocs.js.map +1 -0
  57. package/cjs/components/card/style/dnb-card.css +24 -5
  58. package/cjs/components/card/style/dnb-card.min.css +1 -1
  59. package/cjs/components/card/style/dnb-card.scss +47 -16
  60. package/cjs/components/checkbox/style/dnb-checkbox.css +3 -0
  61. package/cjs/components/checkbox/style/dnb-checkbox.min.css +1 -1
  62. package/cjs/components/checkbox/style/dnb-checkbox.scss +7 -0
  63. package/cjs/components/date-picker/DatePicker.d.ts +2 -0
  64. package/cjs/components/date-picker/DatePicker.js +2 -1
  65. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  66. package/cjs/components/date-picker/DatePickerInput.js +19 -3
  67. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  68. package/cjs/components/date-picker/DatePickerProvider.js +8 -3
  69. package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
  70. package/cjs/components/dropdown/style/dnb-dropdown.css +3 -0
  71. package/cjs/components/dropdown/style/dnb-dropdown.min.css +1 -1
  72. package/cjs/components/dropdown/style/dnb-dropdown.scss +4 -0
  73. package/cjs/components/flex/style/dnb-flex.css +1 -1
  74. package/cjs/components/flex/style/dnb-flex.min.css +1 -1
  75. package/cjs/components/flex/style/flex-stack.scss +1 -1
  76. package/cjs/components/form-label/FormLabel.js +1 -1
  77. package/cjs/components/form-label/FormLabel.js.map +1 -1
  78. package/cjs/components/form-label/style/dnb-form-label.css +3 -0
  79. package/cjs/components/form-label/style/dnb-form-label.min.css +1 -1
  80. package/cjs/components/form-label/style/dnb-form-label.scss +4 -0
  81. package/cjs/components/form-label/style/themes/dnb-form-label-theme-sbanken.css +0 -3
  82. package/cjs/components/form-label/style/themes/dnb-form-label-theme-sbanken.min.css +1 -1
  83. package/cjs/components/form-label/style/themes/dnb-form-label-theme-sbanken.scss +0 -8
  84. package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.css +0 -6
  85. package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
  86. package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.scss +0 -8
  87. package/cjs/components/heading/HeadingContext.d.ts +1 -1
  88. package/cjs/components/height-animation/style/dnb-height-animation.css +2 -2
  89. package/cjs/components/height-animation/style/dnb-height-animation.min.css +1 -1
  90. package/cjs/components/height-animation/style/dnb-height-animation.scss +3 -2
  91. package/cjs/components/icon/style/dnb-icon.css +2 -2
  92. package/cjs/components/icon/style/dnb-icon.min.css +1 -1
  93. package/cjs/components/icon/style/dnb-icon.scss +1 -1
  94. package/cjs/components/input/Input.js +1 -1
  95. package/cjs/components/input/Input.js.map +1 -1
  96. package/cjs/components/number-format/NumberUtils.d.ts +1 -1
  97. package/cjs/components/radio/style/dnb-radio.css +4 -0
  98. package/cjs/components/radio/style/dnb-radio.min.css +1 -1
  99. package/cjs/components/radio/style/dnb-radio.scss +9 -0
  100. package/cjs/components/section/style/themes/dnb-section-theme-ui.css +3 -6
  101. package/cjs/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  102. package/cjs/components/skeleton/SkeletonHelper.d.ts +6 -6
  103. package/cjs/components/skeleton/style/dnb-skeleton.css +1 -0
  104. package/cjs/components/skeleton/style/dnb-skeleton.min.css +1 -1
  105. package/cjs/components/skeleton/style/dnb-skeleton.scss +1 -0
  106. package/cjs/components/slider/SliderInstance.js +1 -0
  107. package/cjs/components/slider/SliderInstance.js.map +1 -1
  108. package/cjs/components/slider/SliderThumb.js +4 -2
  109. package/cjs/components/slider/SliderThumb.js.map +1 -1
  110. package/cjs/components/step-indicator/StepIndicator.js +11 -5
  111. package/cjs/components/step-indicator/StepIndicator.js.map +1 -1
  112. package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.css +1 -1
  113. package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.min.css +1 -1
  114. package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.scss +1 -1
  115. package/cjs/components/table/TableScrollView.d.ts +5 -1
  116. package/cjs/components/table/TableScrollView.js +1 -0
  117. package/cjs/components/table/TableScrollView.js.map +1 -1
  118. package/cjs/components/table/TableTr.d.ts +1 -2
  119. package/cjs/components/table/TableTr.js.map +1 -1
  120. package/cjs/components/table/style/dnb-table.css +14 -1
  121. package/cjs/components/table/style/dnb-table.min.css +1 -1
  122. package/cjs/components/table/style/dnb-table.scss +7 -1
  123. package/cjs/components/table/style/table-header-buttons.scss +4 -1
  124. package/cjs/components/table/style/table-th.scss +9 -25
  125. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.css +1 -1
  126. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  127. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.scss +2 -1
  128. package/cjs/components/table/style/themes/dnb-table-theme-ui.css +1 -1
  129. package/cjs/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  130. package/cjs/components/table/style/themes/dnb-table-theme-ui.scss +2 -2
  131. package/cjs/components/table/useTableAnimationHandler.d.ts +1 -1
  132. package/cjs/components/table/useTableAnimationHandler.js +3 -3
  133. package/cjs/components/table/useTableAnimationHandler.js.map +1 -1
  134. package/cjs/components/tag/Tag.d.ts +11 -0
  135. package/cjs/components/tag/Tag.js +55 -40
  136. package/cjs/components/tag/Tag.js.map +1 -1
  137. package/cjs/components/tag/style/dnb-tag.css +50 -86
  138. package/cjs/components/tag/style/dnb-tag.min.css +1 -1
  139. package/cjs/components/tag/style/dnb-tag.scss +37 -45
  140. package/cjs/components/tag/style/themes/tag-mixins.scss +24 -6
  141. package/cjs/components/textarea/Textarea.d.ts +9 -0
  142. package/cjs/components/textarea/Textarea.js +21 -5
  143. package/cjs/components/textarea/Textarea.js.map +1 -1
  144. package/cjs/components/textarea/TextareaDocs.js +10 -0
  145. package/cjs/components/textarea/TextareaDocs.js.map +1 -1
  146. package/cjs/components/textarea/style/dnb-textarea.css +69 -26
  147. package/cjs/components/textarea/style/dnb-textarea.min.css +1 -1
  148. package/cjs/components/textarea/style/dnb-textarea.scss +83 -31
  149. package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +15 -21
  150. package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -1
  151. package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +17 -28
  152. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.css +12 -23
  153. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  154. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.scss +11 -27
  155. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +1 -2
  156. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
  157. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -2
  158. package/cjs/components/tooltip/Tooltip.js +1 -1
  159. package/cjs/components/tooltip/Tooltip.js.map +1 -1
  160. package/cjs/elements/Element.d.ts +3 -4
  161. package/cjs/elements/Element.js.map +1 -1
  162. package/cjs/elements/code/style/themes/dnb-code-theme-sbanken.scss +5 -3
  163. package/cjs/extensions/forms/DataContext/At/At.js.map +1 -1
  164. package/cjs/extensions/forms/DataContext/Context.d.ts +31 -8
  165. package/cjs/extensions/forms/DataContext/Context.js +14 -3
  166. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  167. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +29 -16
  168. package/cjs/extensions/forms/DataContext/Provider/Provider.js +324 -77
  169. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  170. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.d.ts +3 -0
  171. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +93 -0
  172. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -0
  173. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +1 -1
  174. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  175. package/cjs/extensions/forms/Field/Date/Date.js +3 -3
  176. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  177. package/cjs/extensions/forms/Field/Expiry/Expiry.js +4 -4
  178. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  179. package/cjs/extensions/forms/Field/Number/Number.js +3 -3
  180. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  181. package/cjs/extensions/forms/Field/Password/Password.d.ts +1 -1
  182. package/cjs/extensions/forms/Field/Password/Password.js.map +1 -1
  183. package/cjs/extensions/forms/Field/Password/style/dnb-password.scss +1 -1
  184. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +4 -4
  185. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  186. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -1
  187. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  188. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +3 -3
  189. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  190. package/cjs/extensions/forms/Field/Selection/Selection.js +5 -5
  191. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  192. package/cjs/extensions/forms/Field/String/String.d.ts +6 -6
  193. package/cjs/extensions/forms/Field/String/String.js +16 -14
  194. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  195. package/cjs/extensions/forms/Field/String/StringDocs.js +9 -4
  196. package/cjs/extensions/forms/Field/String/StringDocs.js.map +1 -1
  197. package/cjs/extensions/forms/Field/Toggle/Toggle.js +7 -7
  198. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  199. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -1
  200. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +41 -19
  201. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  202. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +2 -2
  203. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  204. package/cjs/extensions/forms/Form/Appearance/Appearance.js +3 -0
  205. package/cjs/extensions/forms/Form/Appearance/Appearance.js.map +1 -1
  206. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +2 -2
  207. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  208. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +2 -1
  209. package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  210. package/cjs/extensions/forms/Form/Handler/Handler.js +50 -8
  211. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  212. package/cjs/extensions/forms/Form/Handler/HandlerDocs.d.ts +3 -0
  213. package/cjs/extensions/forms/Form/Handler/HandlerDocs.js +49 -0
  214. package/cjs/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -0
  215. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.d.ts +6 -1
  216. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js +19 -10
  217. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  218. package/cjs/extensions/forms/Form/SubmitButton/SubmitButtonDocs.d.ts +2 -0
  219. package/cjs/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js +30 -0
  220. package/cjs/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js.map +1 -0
  221. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.d.ts +14 -0
  222. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +81 -0
  223. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -0
  224. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.d.ts +2 -0
  225. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js +25 -0
  226. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js.map +1 -0
  227. package/cjs/extensions/forms/Form/SubmitIndicator/index.d.ts +2 -0
  228. package/cjs/extensions/forms/Form/SubmitIndicator/index.js +27 -0
  229. package/cjs/extensions/forms/Form/SubmitIndicator/index.js.map +1 -0
  230. package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +99 -0
  231. package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -0
  232. package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +117 -0
  233. package/cjs/extensions/forms/Form/SubmitIndicator/style/index.d.ts +5 -0
  234. package/cjs/extensions/forms/Form/SubmitIndicator/style/index.js +4 -0
  235. package/cjs/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -0
  236. package/cjs/extensions/forms/Form/data-context/getData.d.ts +1 -1
  237. package/cjs/extensions/forms/Form/data-context/getData.js.map +1 -1
  238. package/cjs/extensions/forms/Form/data-context/useData.d.ts +3 -3
  239. package/cjs/extensions/forms/Form/data-context/useData.js +32 -12
  240. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  241. package/cjs/extensions/forms/Form/data-context/useError.d.ts +3 -2
  242. package/cjs/extensions/forms/Form/data-context/useError.js +8 -5
  243. package/cjs/extensions/forms/Form/data-context/useError.js.map +1 -1
  244. package/cjs/extensions/forms/Form/index.d.ts +1 -0
  245. package/cjs/extensions/forms/Form/index.js +7 -0
  246. package/cjs/extensions/forms/Form/index.js.map +1 -1
  247. package/cjs/extensions/forms/Iterate/Array/Array.js +1 -1
  248. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  249. package/cjs/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +1 -1
  250. package/cjs/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
  251. package/cjs/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +1 -1
  252. package/cjs/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
  253. package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.d.ts +1 -3
  254. package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js +4 -3
  255. package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  256. package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.d.ts +1 -3
  257. package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +6 -2
  258. package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  259. package/cjs/extensions/forms/StepsLayout/Step/Step.js +2 -3
  260. package/cjs/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
  261. package/cjs/extensions/forms/StepsLayout/StepsContext.d.ts +6 -4
  262. package/cjs/extensions/forms/StepsLayout/StepsContext.js +6 -1
  263. package/cjs/extensions/forms/StepsLayout/StepsContext.js.map +1 -1
  264. package/cjs/extensions/forms/StepsLayout/StepsLayout.d.ts +5 -3
  265. package/cjs/extensions/forms/StepsLayout/StepsLayout.js +112 -50
  266. package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  267. package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +3 -0
  268. package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.js +58 -0
  269. package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -0
  270. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.css +6 -1
  271. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  272. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +11 -1
  273. package/cjs/extensions/forms/StepsLayout/useStep.d.ts +3 -0
  274. package/cjs/extensions/forms/StepsLayout/useStep.js +19 -0
  275. package/cjs/extensions/forms/StepsLayout/useStep.js.map +1 -0
  276. package/cjs/extensions/forms/Value/Boolean/Boolean.js +1 -1
  277. package/cjs/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  278. package/cjs/extensions/forms/Value/Number/Number.js +5 -5
  279. package/cjs/extensions/forms/Value/Number/Number.js.map +1 -1
  280. package/cjs/extensions/forms/Value/String/String.js +1 -1
  281. package/cjs/extensions/forms/Value/String/String.js.map +1 -1
  282. package/cjs/extensions/forms/hooks/DataValueDocs.js +3 -3
  283. package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  284. package/cjs/extensions/forms/hooks/index.d.ts +6 -3
  285. package/cjs/extensions/forms/hooks/index.js +4 -12
  286. package/cjs/extensions/forms/hooks/index.js.map +1 -1
  287. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +23 -0
  288. package/cjs/extensions/forms/hooks/useFieldProps.js +774 -0
  289. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -0
  290. package/cjs/extensions/forms/style/dnb-forms.css +107 -3
  291. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  292. package/cjs/extensions/forms/types.d.ts +69 -6
  293. package/cjs/extensions/forms/types.js +3 -2
  294. package/cjs/extensions/forms/types.js.map +1 -1
  295. package/cjs/extensions/forms/utils/ajv.d.ts +9 -7
  296. package/cjs/extensions/forms/utils/ajv.js +34 -17
  297. package/cjs/extensions/forms/utils/ajv.js.map +1 -1
  298. package/cjs/fragments/scroll-view/ScrollView.d.ts +2 -2
  299. package/cjs/fragments/scroll-view/ScrollView.js +4 -1
  300. package/cjs/fragments/scroll-view/ScrollView.js.map +1 -1
  301. package/cjs/shared/Context.d.ts +20 -11
  302. package/cjs/shared/Context.js.map +1 -1
  303. package/cjs/shared/Eufemia.d.ts +2 -2
  304. package/cjs/shared/Eufemia.js +2 -2
  305. package/cjs/shared/Eufemia.js.map +1 -1
  306. package/cjs/shared/Provider.js.map +1 -1
  307. package/cjs/shared/defaults.d.ts +3 -3
  308. package/cjs/shared/defaults.js.map +1 -1
  309. package/cjs/shared/helpers/debounce.d.ts +21 -30
  310. package/cjs/shared/helpers/debounce.js +23 -11
  311. package/cjs/shared/helpers/debounce.js.map +1 -1
  312. package/cjs/shared/helpers/isAsync.d.ts +7 -0
  313. package/cjs/shared/helpers/isAsync.js +20 -0
  314. package/cjs/shared/helpers/isAsync.js.map +1 -0
  315. package/cjs/shared/helpers/runCssVersionMismatchWarning.d.ts +8 -0
  316. package/cjs/shared/helpers/runCssVersionMismatchWarning.js +31 -0
  317. package/cjs/shared/helpers/runCssVersionMismatchWarning.js.map +1 -0
  318. package/cjs/{extensions/forms/hooks → shared/helpers}/useId.js +1 -1
  319. package/cjs/shared/helpers/useId.js.map +1 -0
  320. package/cjs/shared/helpers/useMountEffect.js.map +1 -0
  321. package/cjs/shared/helpers/useMounted.js.map +1 -0
  322. package/cjs/shared/helpers/useSharedState.js +15 -9
  323. package/cjs/shared/helpers/useSharedState.js.map +1 -1
  324. package/cjs/shared/helpers/useUnmountEffect.js.map +1 -0
  325. package/cjs/shared/helpers/useUpdateEffect.js.map +1 -0
  326. package/cjs/shared/helpers.js +2 -0
  327. package/cjs/shared/helpers.js.map +1 -1
  328. package/cjs/shared/index.d.ts +10 -10
  329. package/cjs/shared/index.js +7 -1
  330. package/cjs/shared/index.js.map +1 -1
  331. package/cjs/shared/locales/en-GB.d.ts +1 -0
  332. package/cjs/shared/locales/en-GB.js +2 -1
  333. package/cjs/shared/locales/en-GB.js.map +1 -1
  334. package/cjs/shared/locales/en-US.d.ts +1 -0
  335. package/cjs/shared/locales/index.d.ts +4 -2
  336. package/cjs/shared/locales/index.js +2 -1
  337. package/cjs/shared/locales/index.js.map +1 -1
  338. package/cjs/shared/locales/nb-NO.d.ts +1 -0
  339. package/cjs/shared/locales/nb-NO.js +2 -1
  340. package/cjs/shared/locales/nb-NO.js.map +1 -1
  341. package/cjs/shared/types.d.ts +4 -1
  342. package/cjs/shared/types.js.map +1 -1
  343. package/cjs/shared/useLocale.d.ts +2 -0
  344. package/cjs/shared/useLocale.js +37 -0
  345. package/cjs/shared/useLocale.js.map +1 -0
  346. package/cjs/style/core/scopes.scss +3 -0
  347. package/cjs/style/dnb-ui-basis.css +1 -0
  348. package/cjs/style/dnb-ui-basis.min.css +1 -1
  349. package/cjs/style/dnb-ui-body.css +1 -0
  350. package/cjs/style/dnb-ui-body.min.css +1 -1
  351. package/cjs/style/dnb-ui-components.css +433 -195
  352. package/cjs/style/dnb-ui-components.min.css +3 -3
  353. package/cjs/style/dnb-ui-core.css +1 -0
  354. package/cjs/style/dnb-ui-core.min.css +1 -1
  355. package/cjs/style/dnb-ui-extensions.css +107 -3
  356. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  357. package/cjs/style/dnb-ui-forms.css +107 -3
  358. package/cjs/style/dnb-ui-forms.min.css +1 -1
  359. package/cjs/style/dnb-ui-forms.scss +1 -0
  360. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +3 -6
  361. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  362. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +596 -328
  363. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +17 -7
  364. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +3 -6
  365. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  366. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +107 -3
  367. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  368. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +107 -3
  369. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  370. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +5 -2
  371. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  372. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +710 -374
  373. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +21 -9
  374. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +5 -2
  375. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  376. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +107 -3
  377. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  378. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +107 -3
  379. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  380. package/cjs/style/themes/theme-ui/ui-theme-basis.css +3 -6
  381. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  382. package/cjs/style/themes/theme-ui/ui-theme-components.css +596 -326
  383. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +17 -7
  384. package/cjs/style/themes/theme-ui/ui-theme-elements.css +3 -6
  385. package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  386. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +107 -3
  387. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  388. package/cjs/style/themes/theme-ui/ui-theme-forms.css +107 -3
  389. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  390. package/cjs/style/themes/theme-ui/ui-theme-tags.css +40 -15
  391. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  392. package/components/accordion/Accordion.js +1 -1
  393. package/components/accordion/Accordion.js.map +1 -1
  394. package/components/accordion/AccordionContext.d.ts +1 -1
  395. package/components/accordion/AccordionGroup.js +1 -1
  396. package/components/accordion/AccordionGroup.js.map +1 -1
  397. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +18 -0
  398. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  399. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +20 -0
  400. package/components/anchor/Anchor.d.ts +3 -4
  401. package/components/anchor/Anchor.js +16 -25
  402. package/components/anchor/Anchor.js.map +1 -1
  403. package/components/anchor/style/anchor-mixins.scss +62 -13
  404. package/components/anchor/style/dnb-anchor.css +79 -16
  405. package/components/anchor/style/dnb-anchor.min.css +1 -1
  406. package/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +10 -30
  407. package/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  408. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +82 -78
  409. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  410. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +25 -53
  411. package/components/anchor/style/themes/dnb-anchor-theme-ui.css +10 -30
  412. package/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  413. package/components/anchor/style/themes/dnb-anchor-theme-ui.scss +1 -8
  414. package/components/aria-live/useAriaLive.d.ts +1 -1
  415. package/components/breadcrumb/Breadcrumb.js +27 -18
  416. package/components/breadcrumb/Breadcrumb.js.map +1 -1
  417. package/components/breadcrumb/BreadcrumbItem.d.ts +6 -4
  418. package/components/breadcrumb/BreadcrumbItem.js +18 -10
  419. package/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  420. package/components/breadcrumb/style/dnb-breadcrumb.css +29 -4
  421. package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  422. package/components/breadcrumb/style/dnb-breadcrumb.scss +32 -4
  423. package/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.css +9 -0
  424. package/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.min.css +1 -1
  425. package/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.scss +7 -0
  426. package/components/button/Button.js +1 -1
  427. package/components/button/Button.js.map +1 -1
  428. package/components/button/style/button--tertiary.scss +30 -75
  429. package/components/button/style/dnb-button.css +43 -49
  430. package/components/button/style/dnb-button.min.css +1 -1
  431. package/components/button/style/dnb-button.scss +46 -59
  432. package/components/button/style/themes/button-mixins.scss +26 -5
  433. package/components/button/style/themes/dnb-button-theme-eiendom.css +29 -60
  434. package/components/button/style/themes/dnb-button-theme-eiendom.min.css +12 -2
  435. package/components/button/style/themes/dnb-button-theme-sbanken.css +44 -72
  436. package/components/button/style/themes/dnb-button-theme-sbanken.min.css +16 -4
  437. package/components/button/style/themes/dnb-button-theme-sbanken.scss +14 -16
  438. package/components/button/style/themes/dnb-button-theme-ui.css +29 -60
  439. package/components/button/style/themes/dnb-button-theme-ui.min.css +12 -2
  440. package/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
  441. package/components/card/Card.d.ts +15 -2
  442. package/components/card/Card.js +19 -7
  443. package/components/card/Card.js.map +1 -1
  444. package/components/card/CardDocs.d.ts +2 -0
  445. package/components/card/CardDocs.js +58 -0
  446. package/components/card/CardDocs.js.map +1 -0
  447. package/components/card/style/dnb-card.css +24 -5
  448. package/components/card/style/dnb-card.min.css +1 -1
  449. package/components/card/style/dnb-card.scss +47 -16
  450. package/components/checkbox/style/dnb-checkbox.css +3 -0
  451. package/components/checkbox/style/dnb-checkbox.min.css +1 -1
  452. package/components/checkbox/style/dnb-checkbox.scss +7 -0
  453. package/components/date-picker/DatePicker.d.ts +2 -0
  454. package/components/date-picker/DatePicker.js +2 -1
  455. package/components/date-picker/DatePicker.js.map +1 -1
  456. package/components/date-picker/DatePickerInput.js +19 -3
  457. package/components/date-picker/DatePickerInput.js.map +1 -1
  458. package/components/date-picker/DatePickerProvider.js +8 -3
  459. package/components/date-picker/DatePickerProvider.js.map +1 -1
  460. package/components/dropdown/style/dnb-dropdown.css +3 -0
  461. package/components/dropdown/style/dnb-dropdown.min.css +1 -1
  462. package/components/dropdown/style/dnb-dropdown.scss +4 -0
  463. package/components/flex/style/dnb-flex.css +1 -1
  464. package/components/flex/style/dnb-flex.min.css +1 -1
  465. package/components/flex/style/flex-stack.scss +1 -1
  466. package/components/form-label/FormLabel.js +1 -1
  467. package/components/form-label/FormLabel.js.map +1 -1
  468. package/components/form-label/style/dnb-form-label.css +3 -0
  469. package/components/form-label/style/dnb-form-label.min.css +1 -1
  470. package/components/form-label/style/dnb-form-label.scss +4 -0
  471. package/components/form-label/style/themes/dnb-form-label-theme-sbanken.css +0 -3
  472. package/components/form-label/style/themes/dnb-form-label-theme-sbanken.min.css +1 -1
  473. package/components/form-label/style/themes/dnb-form-label-theme-sbanken.scss +0 -8
  474. package/components/form-label/style/themes/dnb-form-label-theme-ui.css +0 -6
  475. package/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
  476. package/components/form-label/style/themes/dnb-form-label-theme-ui.scss +0 -8
  477. package/components/heading/HeadingContext.d.ts +1 -1
  478. package/components/height-animation/style/dnb-height-animation.css +2 -2
  479. package/components/height-animation/style/dnb-height-animation.min.css +1 -1
  480. package/components/height-animation/style/dnb-height-animation.scss +3 -2
  481. package/components/icon/style/dnb-icon.css +2 -2
  482. package/components/icon/style/dnb-icon.min.css +1 -1
  483. package/components/icon/style/dnb-icon.scss +1 -1
  484. package/components/input/Input.js +1 -1
  485. package/components/input/Input.js.map +1 -1
  486. package/components/number-format/NumberUtils.d.ts +1 -1
  487. package/components/radio/style/dnb-radio.css +4 -0
  488. package/components/radio/style/dnb-radio.min.css +1 -1
  489. package/components/radio/style/dnb-radio.scss +9 -0
  490. package/components/section/style/themes/dnb-section-theme-ui.css +3 -6
  491. package/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  492. package/components/skeleton/SkeletonHelper.d.ts +6 -6
  493. package/components/skeleton/style/dnb-skeleton.css +1 -0
  494. package/components/skeleton/style/dnb-skeleton.min.css +1 -1
  495. package/components/skeleton/style/dnb-skeleton.scss +1 -0
  496. package/components/slider/SliderInstance.js +1 -0
  497. package/components/slider/SliderInstance.js.map +1 -1
  498. package/components/slider/SliderThumb.js +4 -2
  499. package/components/slider/SliderThumb.js.map +1 -1
  500. package/components/step-indicator/StepIndicator.js +11 -6
  501. package/components/step-indicator/StepIndicator.js.map +1 -1
  502. package/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.css +1 -1
  503. package/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.min.css +1 -1
  504. package/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.scss +1 -1
  505. package/components/table/TableScrollView.d.ts +5 -1
  506. package/components/table/TableScrollView.js +1 -0
  507. package/components/table/TableScrollView.js.map +1 -1
  508. package/components/table/TableTr.d.ts +1 -2
  509. package/components/table/TableTr.js.map +1 -1
  510. package/components/table/style/dnb-table.css +14 -1
  511. package/components/table/style/dnb-table.min.css +1 -1
  512. package/components/table/style/dnb-table.scss +7 -1
  513. package/components/table/style/table-header-buttons.scss +4 -1
  514. package/components/table/style/table-th.scss +9 -25
  515. package/components/table/style/themes/dnb-table-theme-sbanken.css +1 -1
  516. package/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  517. package/components/table/style/themes/dnb-table-theme-sbanken.scss +2 -1
  518. package/components/table/style/themes/dnb-table-theme-ui.css +1 -1
  519. package/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  520. package/components/table/style/themes/dnb-table-theme-ui.scss +2 -2
  521. package/components/table/useTableAnimationHandler.d.ts +1 -1
  522. package/components/table/useTableAnimationHandler.js +3 -3
  523. package/components/table/useTableAnimationHandler.js.map +1 -1
  524. package/components/tag/Tag.d.ts +11 -0
  525. package/components/tag/Tag.js +54 -39
  526. package/components/tag/Tag.js.map +1 -1
  527. package/components/tag/style/dnb-tag.css +50 -86
  528. package/components/tag/style/dnb-tag.min.css +1 -1
  529. package/components/tag/style/dnb-tag.scss +37 -45
  530. package/components/tag/style/themes/tag-mixins.scss +24 -6
  531. package/components/textarea/Textarea.d.ts +9 -0
  532. package/components/textarea/Textarea.js +21 -5
  533. package/components/textarea/Textarea.js.map +1 -1
  534. package/components/textarea/TextareaDocs.js +10 -0
  535. package/components/textarea/TextareaDocs.js.map +1 -1
  536. package/components/textarea/style/dnb-textarea.css +69 -26
  537. package/components/textarea/style/dnb-textarea.min.css +1 -1
  538. package/components/textarea/style/dnb-textarea.scss +83 -31
  539. package/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +15 -21
  540. package/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -1
  541. package/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +17 -28
  542. package/components/textarea/style/themes/dnb-textarea-theme-ui.css +12 -23
  543. package/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  544. package/components/textarea/style/themes/dnb-textarea-theme-ui.scss +11 -27
  545. package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +1 -2
  546. package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
  547. package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -2
  548. package/components/tooltip/Tooltip.js +1 -1
  549. package/components/tooltip/Tooltip.js.map +1 -1
  550. package/elements/Element.d.ts +3 -4
  551. package/elements/Element.js.map +1 -1
  552. package/elements/code/style/themes/dnb-code-theme-sbanken.scss +5 -3
  553. package/es/components/accordion/Accordion.js +1 -1
  554. package/es/components/accordion/Accordion.js.map +1 -1
  555. package/es/components/accordion/AccordionContext.d.ts +1 -1
  556. package/es/components/accordion/AccordionGroup.js +1 -1
  557. package/es/components/accordion/AccordionGroup.js.map +1 -1
  558. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +18 -0
  559. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  560. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +20 -0
  561. package/es/components/anchor/Anchor.d.ts +3 -4
  562. package/es/components/anchor/Anchor.js +16 -25
  563. package/es/components/anchor/Anchor.js.map +1 -1
  564. package/es/components/anchor/style/anchor-mixins.scss +62 -13
  565. package/es/components/anchor/style/dnb-anchor.css +79 -16
  566. package/es/components/anchor/style/dnb-anchor.min.css +1 -1
  567. package/es/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +10 -30
  568. package/es/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  569. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +82 -78
  570. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  571. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +25 -53
  572. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.css +10 -30
  573. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  574. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.scss +1 -8
  575. package/es/components/aria-live/useAriaLive.d.ts +1 -1
  576. package/es/components/breadcrumb/Breadcrumb.js +27 -18
  577. package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
  578. package/es/components/breadcrumb/BreadcrumbItem.d.ts +6 -4
  579. package/es/components/breadcrumb/BreadcrumbItem.js +18 -10
  580. package/es/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  581. package/es/components/breadcrumb/style/dnb-breadcrumb.css +29 -4
  582. package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  583. package/es/components/breadcrumb/style/dnb-breadcrumb.scss +32 -4
  584. package/es/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.css +9 -0
  585. package/es/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.min.css +1 -1
  586. package/es/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.scss +7 -0
  587. package/es/components/button/Button.js +1 -1
  588. package/es/components/button/Button.js.map +1 -1
  589. package/es/components/button/style/button--tertiary.scss +30 -75
  590. package/es/components/button/style/dnb-button.css +43 -49
  591. package/es/components/button/style/dnb-button.min.css +1 -1
  592. package/es/components/button/style/dnb-button.scss +46 -59
  593. package/es/components/button/style/themes/button-mixins.scss +26 -5
  594. package/es/components/button/style/themes/dnb-button-theme-eiendom.css +29 -60
  595. package/es/components/button/style/themes/dnb-button-theme-eiendom.min.css +12 -2
  596. package/es/components/button/style/themes/dnb-button-theme-sbanken.css +44 -72
  597. package/es/components/button/style/themes/dnb-button-theme-sbanken.min.css +16 -4
  598. package/es/components/button/style/themes/dnb-button-theme-sbanken.scss +14 -16
  599. package/es/components/button/style/themes/dnb-button-theme-ui.css +29 -60
  600. package/es/components/button/style/themes/dnb-button-theme-ui.min.css +12 -2
  601. package/es/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
  602. package/es/components/card/Card.d.ts +15 -2
  603. package/es/components/card/Card.js +19 -7
  604. package/es/components/card/Card.js.map +1 -1
  605. package/es/components/card/CardDocs.d.ts +2 -0
  606. package/es/components/card/CardDocs.js +58 -0
  607. package/es/components/card/CardDocs.js.map +1 -0
  608. package/es/components/card/style/dnb-card.css +24 -5
  609. package/es/components/card/style/dnb-card.min.css +1 -1
  610. package/es/components/card/style/dnb-card.scss +47 -16
  611. package/es/components/checkbox/style/dnb-checkbox.css +3 -0
  612. package/es/components/checkbox/style/dnb-checkbox.min.css +1 -1
  613. package/es/components/checkbox/style/dnb-checkbox.scss +7 -0
  614. package/es/components/date-picker/DatePicker.d.ts +2 -0
  615. package/es/components/date-picker/DatePicker.js +2 -1
  616. package/es/components/date-picker/DatePicker.js.map +1 -1
  617. package/es/components/date-picker/DatePickerInput.js +19 -3
  618. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  619. package/es/components/date-picker/DatePickerProvider.js +8 -3
  620. package/es/components/date-picker/DatePickerProvider.js.map +1 -1
  621. package/es/components/dropdown/style/dnb-dropdown.css +3 -0
  622. package/es/components/dropdown/style/dnb-dropdown.min.css +1 -1
  623. package/es/components/dropdown/style/dnb-dropdown.scss +4 -0
  624. package/es/components/flex/style/dnb-flex.css +1 -1
  625. package/es/components/flex/style/dnb-flex.min.css +1 -1
  626. package/es/components/flex/style/flex-stack.scss +1 -1
  627. package/es/components/form-label/FormLabel.js +1 -1
  628. package/es/components/form-label/FormLabel.js.map +1 -1
  629. package/es/components/form-label/style/dnb-form-label.css +3 -0
  630. package/es/components/form-label/style/dnb-form-label.min.css +1 -1
  631. package/es/components/form-label/style/dnb-form-label.scss +4 -0
  632. package/es/components/form-label/style/themes/dnb-form-label-theme-sbanken.css +0 -3
  633. package/es/components/form-label/style/themes/dnb-form-label-theme-sbanken.min.css +1 -1
  634. package/es/components/form-label/style/themes/dnb-form-label-theme-sbanken.scss +0 -8
  635. package/es/components/form-label/style/themes/dnb-form-label-theme-ui.css +0 -6
  636. package/es/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
  637. package/es/components/form-label/style/themes/dnb-form-label-theme-ui.scss +0 -8
  638. package/es/components/heading/HeadingContext.d.ts +1 -1
  639. package/es/components/height-animation/style/dnb-height-animation.css +2 -2
  640. package/es/components/height-animation/style/dnb-height-animation.min.css +1 -1
  641. package/es/components/height-animation/style/dnb-height-animation.scss +3 -2
  642. package/es/components/icon/style/dnb-icon.css +2 -2
  643. package/es/components/icon/style/dnb-icon.min.css +1 -1
  644. package/es/components/icon/style/dnb-icon.scss +1 -1
  645. package/es/components/input/Input.js +1 -1
  646. package/es/components/input/Input.js.map +1 -1
  647. package/es/components/number-format/NumberUtils.d.ts +1 -1
  648. package/es/components/radio/style/dnb-radio.css +4 -0
  649. package/es/components/radio/style/dnb-radio.min.css +1 -1
  650. package/es/components/radio/style/dnb-radio.scss +9 -0
  651. package/es/components/section/style/themes/dnb-section-theme-ui.css +3 -6
  652. package/es/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  653. package/es/components/skeleton/SkeletonHelper.d.ts +6 -6
  654. package/es/components/skeleton/style/dnb-skeleton.css +1 -0
  655. package/es/components/skeleton/style/dnb-skeleton.min.css +1 -1
  656. package/es/components/skeleton/style/dnb-skeleton.scss +1 -0
  657. package/es/components/slider/SliderInstance.js +1 -0
  658. package/es/components/slider/SliderInstance.js.map +1 -1
  659. package/es/components/slider/SliderThumb.js +4 -2
  660. package/es/components/slider/SliderThumb.js.map +1 -1
  661. package/es/components/step-indicator/StepIndicator.js +11 -6
  662. package/es/components/step-indicator/StepIndicator.js.map +1 -1
  663. package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.css +1 -1
  664. package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.min.css +1 -1
  665. package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.scss +1 -1
  666. package/es/components/table/TableScrollView.d.ts +5 -1
  667. package/es/components/table/TableScrollView.js +1 -0
  668. package/es/components/table/TableScrollView.js.map +1 -1
  669. package/es/components/table/TableTr.d.ts +1 -2
  670. package/es/components/table/TableTr.js.map +1 -1
  671. package/es/components/table/style/dnb-table.css +14 -1
  672. package/es/components/table/style/dnb-table.min.css +1 -1
  673. package/es/components/table/style/dnb-table.scss +7 -1
  674. package/es/components/table/style/table-header-buttons.scss +4 -1
  675. package/es/components/table/style/table-th.scss +9 -25
  676. package/es/components/table/style/themes/dnb-table-theme-sbanken.css +1 -1
  677. package/es/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  678. package/es/components/table/style/themes/dnb-table-theme-sbanken.scss +2 -1
  679. package/es/components/table/style/themes/dnb-table-theme-ui.css +1 -1
  680. package/es/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  681. package/es/components/table/style/themes/dnb-table-theme-ui.scss +2 -2
  682. package/es/components/table/useTableAnimationHandler.d.ts +1 -1
  683. package/es/components/table/useTableAnimationHandler.js +3 -3
  684. package/es/components/table/useTableAnimationHandler.js.map +1 -1
  685. package/es/components/tag/Tag.d.ts +11 -0
  686. package/es/components/tag/Tag.js +54 -39
  687. package/es/components/tag/Tag.js.map +1 -1
  688. package/es/components/tag/style/dnb-tag.css +50 -86
  689. package/es/components/tag/style/dnb-tag.min.css +1 -1
  690. package/es/components/tag/style/dnb-tag.scss +37 -45
  691. package/es/components/tag/style/themes/tag-mixins.scss +24 -6
  692. package/es/components/textarea/Textarea.d.ts +9 -0
  693. package/es/components/textarea/Textarea.js +21 -5
  694. package/es/components/textarea/Textarea.js.map +1 -1
  695. package/es/components/textarea/TextareaDocs.js +10 -0
  696. package/es/components/textarea/TextareaDocs.js.map +1 -1
  697. package/es/components/textarea/style/dnb-textarea.css +69 -26
  698. package/es/components/textarea/style/dnb-textarea.min.css +1 -1
  699. package/es/components/textarea/style/dnb-textarea.scss +83 -31
  700. package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +15 -21
  701. package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -1
  702. package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +17 -28
  703. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.css +12 -23
  704. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  705. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.scss +11 -27
  706. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +1 -2
  707. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
  708. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -2
  709. package/es/components/tooltip/Tooltip.js +1 -1
  710. package/es/components/tooltip/Tooltip.js.map +1 -1
  711. package/es/elements/Element.d.ts +3 -4
  712. package/es/elements/Element.js.map +1 -1
  713. package/es/elements/code/style/themes/dnb-code-theme-sbanken.scss +5 -3
  714. package/es/extensions/forms/DataContext/At/At.js.map +1 -1
  715. package/es/extensions/forms/DataContext/Context.d.ts +31 -8
  716. package/es/extensions/forms/DataContext/Context.js +14 -3
  717. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  718. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +29 -16
  719. package/es/extensions/forms/DataContext/Provider/Provider.js +321 -75
  720. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  721. package/es/extensions/forms/DataContext/Provider/ProviderDocs.d.ts +3 -0
  722. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +85 -0
  723. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -0
  724. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +2 -2
  725. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  726. package/es/extensions/forms/Field/Date/Date.js +4 -4
  727. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  728. package/es/extensions/forms/Field/Expiry/Expiry.js +5 -5
  729. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  730. package/es/extensions/forms/Field/Number/Number.js +4 -4
  731. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  732. package/es/extensions/forms/Field/Password/Password.d.ts +1 -1
  733. package/es/extensions/forms/Field/Password/Password.js.map +1 -1
  734. package/es/extensions/forms/Field/Password/style/dnb-password.scss +1 -1
  735. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +5 -5
  736. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  737. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -1
  738. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  739. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -4
  740. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  741. package/es/extensions/forms/Field/Selection/Selection.js +6 -6
  742. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  743. package/es/extensions/forms/Field/String/String.d.ts +6 -6
  744. package/es/extensions/forms/Field/String/String.js +17 -15
  745. package/es/extensions/forms/Field/String/String.js.map +1 -1
  746. package/es/extensions/forms/Field/String/StringDocs.js +9 -4
  747. package/es/extensions/forms/Field/String/StringDocs.js.map +1 -1
  748. package/es/extensions/forms/Field/Toggle/Toggle.js +8 -8
  749. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  750. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -1
  751. package/es/extensions/forms/FieldBlock/FieldBlock.js +41 -20
  752. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  753. package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +2 -2
  754. package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  755. package/es/extensions/forms/Form/Appearance/Appearance.js +3 -0
  756. package/es/extensions/forms/Form/Appearance/Appearance.js.map +1 -1
  757. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +2 -2
  758. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  759. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +2 -1
  760. package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  761. package/es/extensions/forms/Form/Handler/Handler.js +45 -9
  762. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  763. package/es/extensions/forms/Form/Handler/HandlerDocs.d.ts +3 -0
  764. package/es/extensions/forms/Form/Handler/HandlerDocs.js +39 -0
  765. package/es/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -0
  766. package/es/extensions/forms/Form/SubmitButton/SubmitButton.d.ts +6 -1
  767. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js +21 -12
  768. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  769. package/es/extensions/forms/Form/SubmitButton/SubmitButtonDocs.d.ts +2 -0
  770. package/es/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js +23 -0
  771. package/es/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js.map +1 -0
  772. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.d.ts +14 -0
  773. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +69 -0
  774. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -0
  775. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.d.ts +2 -0
  776. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js +18 -0
  777. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js.map +1 -0
  778. package/es/extensions/forms/Form/SubmitIndicator/index.d.ts +2 -0
  779. package/es/extensions/forms/Form/SubmitIndicator/index.js +3 -0
  780. package/es/extensions/forms/Form/SubmitIndicator/index.js.map +1 -0
  781. package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +99 -0
  782. package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -0
  783. package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +117 -0
  784. package/es/extensions/forms/Form/SubmitIndicator/style/index.d.ts +5 -0
  785. package/es/extensions/forms/Form/SubmitIndicator/style/index.js +1 -0
  786. package/es/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -0
  787. package/es/extensions/forms/Form/data-context/getData.d.ts +1 -1
  788. package/es/extensions/forms/Form/data-context/getData.js.map +1 -1
  789. package/es/extensions/forms/Form/data-context/useData.d.ts +3 -3
  790. package/es/extensions/forms/Form/data-context/useData.js +30 -12
  791. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  792. package/es/extensions/forms/Form/data-context/useError.d.ts +3 -2
  793. package/es/extensions/forms/Form/data-context/useError.js +7 -6
  794. package/es/extensions/forms/Form/data-context/useError.js.map +1 -1
  795. package/es/extensions/forms/Form/index.d.ts +1 -0
  796. package/es/extensions/forms/Form/index.js +1 -0
  797. package/es/extensions/forms/Form/index.js.map +1 -1
  798. package/es/extensions/forms/Iterate/Array/Array.js +2 -2
  799. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  800. package/es/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +2 -2
  801. package/es/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
  802. package/es/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +2 -2
  803. package/es/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
  804. package/es/extensions/forms/StepsLayout/NextButton/NextButton.d.ts +1 -3
  805. package/es/extensions/forms/StepsLayout/NextButton/NextButton.js +4 -3
  806. package/es/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  807. package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.d.ts +1 -3
  808. package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +6 -2
  809. package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  810. package/es/extensions/forms/StepsLayout/Step/Step.js +2 -3
  811. package/es/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
  812. package/es/extensions/forms/StepsLayout/StepsContext.d.ts +6 -4
  813. package/es/extensions/forms/StepsLayout/StepsContext.js +6 -1
  814. package/es/extensions/forms/StepsLayout/StepsContext.js.map +1 -1
  815. package/es/extensions/forms/StepsLayout/StepsLayout.d.ts +5 -3
  816. package/es/extensions/forms/StepsLayout/StepsLayout.js +108 -49
  817. package/es/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  818. package/es/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +3 -0
  819. package/es/extensions/forms/StepsLayout/StepsLayoutDocs.js +50 -0
  820. package/es/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -0
  821. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.css +6 -1
  822. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  823. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +11 -1
  824. package/es/extensions/forms/StepsLayout/useStep.d.ts +3 -0
  825. package/es/extensions/forms/StepsLayout/useStep.js +12 -0
  826. package/es/extensions/forms/StepsLayout/useStep.js.map +1 -0
  827. package/es/extensions/forms/Value/Boolean/Boolean.js +2 -2
  828. package/es/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  829. package/es/extensions/forms/Value/Number/Number.js +5 -5
  830. package/es/extensions/forms/Value/Number/Number.js.map +1 -1
  831. package/es/extensions/forms/Value/String/String.js +2 -2
  832. package/es/extensions/forms/Value/String/String.js.map +1 -1
  833. package/es/extensions/forms/hooks/DataValueDocs.js +3 -3
  834. package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  835. package/es/extensions/forms/hooks/index.d.ts +6 -3
  836. package/es/extensions/forms/hooks/index.js +2 -3
  837. package/es/extensions/forms/hooks/index.js.map +1 -1
  838. package/es/extensions/forms/hooks/useFieldProps.d.ts +23 -0
  839. package/es/extensions/forms/hooks/useFieldProps.js +749 -0
  840. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -0
  841. package/es/extensions/forms/style/dnb-forms.css +107 -3
  842. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  843. package/es/extensions/forms/types.d.ts +69 -6
  844. package/es/extensions/forms/types.js +3 -2
  845. package/es/extensions/forms/types.js.map +1 -1
  846. package/es/extensions/forms/utils/ajv.d.ts +9 -7
  847. package/es/extensions/forms/utils/ajv.js +34 -15
  848. package/es/extensions/forms/utils/ajv.js.map +1 -1
  849. package/es/fragments/scroll-view/ScrollView.d.ts +2 -2
  850. package/es/fragments/scroll-view/ScrollView.js +4 -1
  851. package/es/fragments/scroll-view/ScrollView.js.map +1 -1
  852. package/es/shared/Context.d.ts +20 -11
  853. package/es/shared/Context.js.map +1 -1
  854. package/es/shared/Eufemia.d.ts +2 -2
  855. package/es/shared/Eufemia.js +2 -2
  856. package/es/shared/Eufemia.js.map +1 -1
  857. package/es/shared/Provider.js.map +1 -1
  858. package/es/shared/defaults.d.ts +3 -3
  859. package/es/shared/defaults.js.map +1 -1
  860. package/es/shared/helpers/debounce.d.ts +21 -30
  861. package/es/shared/helpers/debounce.js +21 -9
  862. package/es/shared/helpers/debounce.js.map +1 -1
  863. package/es/shared/helpers/isAsync.d.ts +7 -0
  864. package/es/shared/helpers/isAsync.js +14 -0
  865. package/es/shared/helpers/isAsync.js.map +1 -0
  866. package/es/shared/helpers/runCssVersionMismatchWarning.d.ts +8 -0
  867. package/es/shared/helpers/runCssVersionMismatchWarning.js +25 -0
  868. package/es/shared/helpers/runCssVersionMismatchWarning.js.map +1 -0
  869. package/es/{extensions/forms/hooks → shared/helpers}/useId.js +1 -1
  870. package/es/shared/helpers/useId.js.map +1 -0
  871. package/es/shared/helpers/useMountEffect.js.map +1 -0
  872. package/es/shared/helpers/useMounted.js.map +1 -0
  873. package/es/shared/helpers/useSharedState.js +15 -9
  874. package/es/shared/helpers/useSharedState.js.map +1 -1
  875. package/es/shared/helpers/useUnmountEffect.js.map +1 -0
  876. package/es/shared/helpers/useUpdateEffect.js.map +1 -0
  877. package/es/shared/helpers.js +2 -0
  878. package/es/shared/helpers.js.map +1 -1
  879. package/es/shared/index.d.ts +10 -10
  880. package/es/shared/index.js +9 -11
  881. package/es/shared/index.js.map +1 -1
  882. package/es/shared/locales/en-GB.d.ts +1 -0
  883. package/es/shared/locales/en-GB.js +2 -1
  884. package/es/shared/locales/en-GB.js.map +1 -1
  885. package/es/shared/locales/en-US.d.ts +1 -0
  886. package/es/shared/locales/index.d.ts +4 -2
  887. package/es/shared/locales/index.js +2 -1
  888. package/es/shared/locales/index.js.map +1 -1
  889. package/es/shared/locales/nb-NO.d.ts +1 -0
  890. package/es/shared/locales/nb-NO.js +2 -1
  891. package/es/shared/locales/nb-NO.js.map +1 -1
  892. package/es/shared/types.d.ts +4 -1
  893. package/es/shared/types.js.map +1 -1
  894. package/es/shared/useLocale.d.ts +2 -0
  895. package/es/shared/useLocale.js +29 -0
  896. package/es/shared/useLocale.js.map +1 -0
  897. package/es/style/core/scopes.scss +3 -0
  898. package/es/style/dnb-ui-basis.css +1 -0
  899. package/es/style/dnb-ui-basis.min.css +1 -1
  900. package/es/style/dnb-ui-body.css +1 -0
  901. package/es/style/dnb-ui-body.min.css +1 -1
  902. package/es/style/dnb-ui-components.css +433 -195
  903. package/es/style/dnb-ui-components.min.css +3 -3
  904. package/es/style/dnb-ui-core.css +1 -0
  905. package/es/style/dnb-ui-core.min.css +1 -1
  906. package/es/style/dnb-ui-extensions.css +107 -3
  907. package/es/style/dnb-ui-extensions.min.css +1 -1
  908. package/es/style/dnb-ui-forms.css +107 -3
  909. package/es/style/dnb-ui-forms.min.css +1 -1
  910. package/es/style/dnb-ui-forms.scss +1 -0
  911. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +3 -6
  912. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  913. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +596 -328
  914. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +17 -7
  915. package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +3 -6
  916. package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  917. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +107 -3
  918. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  919. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +107 -3
  920. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  921. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +5 -2
  922. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  923. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +710 -374
  924. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +21 -9
  925. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +5 -2
  926. package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  927. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +107 -3
  928. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  929. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +107 -3
  930. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  931. package/es/style/themes/theme-ui/ui-theme-basis.css +3 -6
  932. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  933. package/es/style/themes/theme-ui/ui-theme-components.css +596 -326
  934. package/es/style/themes/theme-ui/ui-theme-components.min.css +17 -7
  935. package/es/style/themes/theme-ui/ui-theme-elements.css +3 -6
  936. package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  937. package/es/style/themes/theme-ui/ui-theme-extensions.css +107 -3
  938. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  939. package/es/style/themes/theme-ui/ui-theme-forms.css +107 -3
  940. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  941. package/es/style/themes/theme-ui/ui-theme-tags.css +40 -15
  942. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  943. package/esm/dnb-ui-basis.min.mjs +1 -1
  944. package/esm/dnb-ui-components.min.mjs +1 -1
  945. package/esm/dnb-ui-elements.min.mjs +1 -1
  946. package/esm/dnb-ui-extensions.min.mjs +3 -3
  947. package/esm/dnb-ui-lib.min.mjs +1 -1
  948. package/extensions/forms/DataContext/At/At.js.map +1 -1
  949. package/extensions/forms/DataContext/Context.d.ts +31 -8
  950. package/extensions/forms/DataContext/Context.js +14 -3
  951. package/extensions/forms/DataContext/Context.js.map +1 -1
  952. package/extensions/forms/DataContext/Provider/Provider.d.ts +29 -16
  953. package/extensions/forms/DataContext/Provider/Provider.js +325 -78
  954. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  955. package/extensions/forms/DataContext/Provider/ProviderDocs.d.ts +3 -0
  956. package/extensions/forms/DataContext/Provider/ProviderDocs.js +85 -0
  957. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -0
  958. package/extensions/forms/Field/ArraySelection/ArraySelection.js +2 -2
  959. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  960. package/extensions/forms/Field/Date/Date.js +4 -4
  961. package/extensions/forms/Field/Date/Date.js.map +1 -1
  962. package/extensions/forms/Field/Expiry/Expiry.js +5 -5
  963. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  964. package/extensions/forms/Field/Number/Number.js +4 -4
  965. package/extensions/forms/Field/Number/Number.js.map +1 -1
  966. package/extensions/forms/Field/Password/Password.d.ts +1 -1
  967. package/extensions/forms/Field/Password/Password.js.map +1 -1
  968. package/extensions/forms/Field/Password/style/dnb-password.scss +1 -1
  969. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +5 -5
  970. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  971. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -1
  972. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  973. package/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -4
  974. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  975. package/extensions/forms/Field/Selection/Selection.js +6 -6
  976. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  977. package/extensions/forms/Field/String/String.d.ts +6 -6
  978. package/extensions/forms/Field/String/String.js +17 -15
  979. package/extensions/forms/Field/String/String.js.map +1 -1
  980. package/extensions/forms/Field/String/StringDocs.js +9 -4
  981. package/extensions/forms/Field/String/StringDocs.js.map +1 -1
  982. package/extensions/forms/Field/Toggle/Toggle.js +8 -8
  983. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  984. package/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -1
  985. package/extensions/forms/FieldBlock/FieldBlock.js +42 -20
  986. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  987. package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +2 -2
  988. package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  989. package/extensions/forms/Form/Appearance/Appearance.js +3 -0
  990. package/extensions/forms/Form/Appearance/Appearance.js.map +1 -1
  991. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +2 -2
  992. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  993. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +2 -1
  994. package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  995. package/extensions/forms/Form/Handler/Handler.js +49 -9
  996. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  997. package/extensions/forms/Form/Handler/HandlerDocs.d.ts +3 -0
  998. package/extensions/forms/Form/Handler/HandlerDocs.js +39 -0
  999. package/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -0
  1000. package/extensions/forms/Form/SubmitButton/SubmitButton.d.ts +6 -1
  1001. package/extensions/forms/Form/SubmitButton/SubmitButton.js +21 -12
  1002. package/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  1003. package/extensions/forms/Form/SubmitButton/SubmitButtonDocs.d.ts +2 -0
  1004. package/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js +23 -0
  1005. package/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js.map +1 -0
  1006. package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.d.ts +14 -0
  1007. package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +69 -0
  1008. package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -0
  1009. package/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.d.ts +2 -0
  1010. package/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js +18 -0
  1011. package/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js.map +1 -0
  1012. package/extensions/forms/Form/SubmitIndicator/index.d.ts +2 -0
  1013. package/extensions/forms/Form/SubmitIndicator/index.js +3 -0
  1014. package/extensions/forms/Form/SubmitIndicator/index.js.map +1 -0
  1015. package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +99 -0
  1016. package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -0
  1017. package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +117 -0
  1018. package/extensions/forms/Form/SubmitIndicator/style/index.d.ts +5 -0
  1019. package/extensions/forms/Form/SubmitIndicator/style/index.js +1 -0
  1020. package/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -0
  1021. package/extensions/forms/Form/data-context/getData.d.ts +1 -1
  1022. package/extensions/forms/Form/data-context/getData.js.map +1 -1
  1023. package/extensions/forms/Form/data-context/useData.d.ts +3 -3
  1024. package/extensions/forms/Form/data-context/useData.js +32 -12
  1025. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  1026. package/extensions/forms/Form/data-context/useError.d.ts +3 -2
  1027. package/extensions/forms/Form/data-context/useError.js +8 -6
  1028. package/extensions/forms/Form/data-context/useError.js.map +1 -1
  1029. package/extensions/forms/Form/index.d.ts +1 -0
  1030. package/extensions/forms/Form/index.js +1 -0
  1031. package/extensions/forms/Form/index.js.map +1 -1
  1032. package/extensions/forms/Iterate/Array/Array.js +2 -2
  1033. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  1034. package/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +2 -2
  1035. package/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
  1036. package/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +2 -2
  1037. package/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
  1038. package/extensions/forms/StepsLayout/NextButton/NextButton.d.ts +1 -3
  1039. package/extensions/forms/StepsLayout/NextButton/NextButton.js +4 -3
  1040. package/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  1041. package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.d.ts +1 -3
  1042. package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +6 -2
  1043. package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  1044. package/extensions/forms/StepsLayout/Step/Step.js +2 -3
  1045. package/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
  1046. package/extensions/forms/StepsLayout/StepsContext.d.ts +6 -4
  1047. package/extensions/forms/StepsLayout/StepsContext.js +6 -1
  1048. package/extensions/forms/StepsLayout/StepsContext.js.map +1 -1
  1049. package/extensions/forms/StepsLayout/StepsLayout.d.ts +5 -3
  1050. package/extensions/forms/StepsLayout/StepsLayout.js +111 -51
  1051. package/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  1052. package/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +3 -0
  1053. package/extensions/forms/StepsLayout/StepsLayoutDocs.js +50 -0
  1054. package/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -0
  1055. package/extensions/forms/StepsLayout/style/dnb-steps-layout.css +6 -1
  1056. package/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  1057. package/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +11 -1
  1058. package/extensions/forms/StepsLayout/useStep.d.ts +3 -0
  1059. package/extensions/forms/StepsLayout/useStep.js +13 -0
  1060. package/extensions/forms/StepsLayout/useStep.js.map +1 -0
  1061. package/extensions/forms/Value/Boolean/Boolean.js +2 -2
  1062. package/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  1063. package/extensions/forms/Value/Number/Number.js +5 -5
  1064. package/extensions/forms/Value/Number/Number.js.map +1 -1
  1065. package/extensions/forms/Value/String/String.js +2 -2
  1066. package/extensions/forms/Value/String/String.js.map +1 -1
  1067. package/extensions/forms/hooks/DataValueDocs.js +3 -3
  1068. package/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  1069. package/extensions/forms/hooks/index.d.ts +6 -3
  1070. package/extensions/forms/hooks/index.js +2 -3
  1071. package/extensions/forms/hooks/index.js.map +1 -1
  1072. package/extensions/forms/hooks/useFieldProps.d.ts +23 -0
  1073. package/extensions/forms/hooks/useFieldProps.js +764 -0
  1074. package/extensions/forms/hooks/useFieldProps.js.map +1 -0
  1075. package/extensions/forms/style/dnb-forms.css +107 -3
  1076. package/extensions/forms/style/dnb-forms.min.css +1 -1
  1077. package/extensions/forms/types.d.ts +69 -6
  1078. package/extensions/forms/types.js +3 -2
  1079. package/extensions/forms/types.js.map +1 -1
  1080. package/extensions/forms/utils/ajv.d.ts +9 -7
  1081. package/extensions/forms/utils/ajv.js +34 -15
  1082. package/extensions/forms/utils/ajv.js.map +1 -1
  1083. package/fragments/scroll-view/ScrollView.d.ts +2 -2
  1084. package/fragments/scroll-view/ScrollView.js +4 -1
  1085. package/fragments/scroll-view/ScrollView.js.map +1 -1
  1086. package/package.json +1 -1
  1087. package/shared/Context.d.ts +20 -11
  1088. package/shared/Context.js.map +1 -1
  1089. package/shared/Eufemia.d.ts +2 -2
  1090. package/shared/Eufemia.js +2 -2
  1091. package/shared/Eufemia.js.map +1 -1
  1092. package/shared/Provider.js.map +1 -1
  1093. package/shared/defaults.d.ts +3 -3
  1094. package/shared/defaults.js.map +1 -1
  1095. package/shared/helpers/debounce.d.ts +21 -30
  1096. package/shared/helpers/debounce.js +23 -11
  1097. package/shared/helpers/debounce.js.map +1 -1
  1098. package/shared/helpers/isAsync.d.ts +7 -0
  1099. package/shared/helpers/isAsync.js +14 -0
  1100. package/shared/helpers/isAsync.js.map +1 -0
  1101. package/shared/helpers/runCssVersionMismatchWarning.d.ts +8 -0
  1102. package/shared/helpers/runCssVersionMismatchWarning.js +25 -0
  1103. package/shared/helpers/runCssVersionMismatchWarning.js.map +1 -0
  1104. package/{extensions/forms/hooks → shared/helpers}/useId.js +1 -1
  1105. package/shared/helpers/useId.js.map +1 -0
  1106. package/shared/helpers/useMountEffect.js.map +1 -0
  1107. package/shared/helpers/useMounted.js.map +1 -0
  1108. package/shared/helpers/useSharedState.js +15 -9
  1109. package/shared/helpers/useSharedState.js.map +1 -1
  1110. package/shared/helpers/useUnmountEffect.js.map +1 -0
  1111. package/shared/helpers/useUpdateEffect.js.map +1 -0
  1112. package/shared/helpers.js +2 -0
  1113. package/shared/helpers.js.map +1 -1
  1114. package/shared/index.d.ts +10 -10
  1115. package/shared/index.js +9 -11
  1116. package/shared/index.js.map +1 -1
  1117. package/shared/locales/en-GB.d.ts +1 -0
  1118. package/shared/locales/en-GB.js +2 -1
  1119. package/shared/locales/en-GB.js.map +1 -1
  1120. package/shared/locales/en-US.d.ts +1 -0
  1121. package/shared/locales/index.d.ts +4 -2
  1122. package/shared/locales/index.js +2 -1
  1123. package/shared/locales/index.js.map +1 -1
  1124. package/shared/locales/nb-NO.d.ts +1 -0
  1125. package/shared/locales/nb-NO.js +2 -1
  1126. package/shared/locales/nb-NO.js.map +1 -1
  1127. package/shared/types.d.ts +4 -1
  1128. package/shared/types.js.map +1 -1
  1129. package/shared/useLocale.d.ts +2 -0
  1130. package/shared/useLocale.js +29 -0
  1131. package/shared/useLocale.js.map +1 -0
  1132. package/style/core/scopes.scss +3 -0
  1133. package/style/dnb-ui-basis.css +1 -0
  1134. package/style/dnb-ui-basis.min.css +1 -1
  1135. package/style/dnb-ui-body.css +1 -0
  1136. package/style/dnb-ui-body.min.css +1 -1
  1137. package/style/dnb-ui-components.css +433 -195
  1138. package/style/dnb-ui-components.min.css +3 -3
  1139. package/style/dnb-ui-core.css +1 -0
  1140. package/style/dnb-ui-core.min.css +1 -1
  1141. package/style/dnb-ui-extensions.css +107 -3
  1142. package/style/dnb-ui-extensions.min.css +1 -1
  1143. package/style/dnb-ui-forms.css +107 -3
  1144. package/style/dnb-ui-forms.min.css +1 -1
  1145. package/style/dnb-ui-forms.scss +1 -0
  1146. package/style/themes/theme-eiendom/eiendom-theme-basis.css +3 -6
  1147. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  1148. package/style/themes/theme-eiendom/eiendom-theme-components.css +596 -328
  1149. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +17 -7
  1150. package/style/themes/theme-eiendom/eiendom-theme-elements.css +3 -6
  1151. package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  1152. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +107 -3
  1153. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  1154. package/style/themes/theme-eiendom/eiendom-theme-forms.css +107 -3
  1155. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  1156. package/style/themes/theme-sbanken/sbanken-theme-basis.css +5 -2
  1157. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  1158. package/style/themes/theme-sbanken/sbanken-theme-components.css +710 -374
  1159. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +21 -9
  1160. package/style/themes/theme-sbanken/sbanken-theme-elements.css +5 -2
  1161. package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  1162. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +107 -3
  1163. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  1164. package/style/themes/theme-sbanken/sbanken-theme-forms.css +107 -3
  1165. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  1166. package/style/themes/theme-ui/ui-theme-basis.css +3 -6
  1167. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  1168. package/style/themes/theme-ui/ui-theme-components.css +596 -326
  1169. package/style/themes/theme-ui/ui-theme-components.min.css +17 -7
  1170. package/style/themes/theme-ui/ui-theme-elements.css +3 -6
  1171. package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  1172. package/style/themes/theme-ui/ui-theme-extensions.css +107 -3
  1173. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  1174. package/style/themes/theme-ui/ui-theme-forms.css +107 -3
  1175. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  1176. package/style/themes/theme-ui/ui-theme-tags.css +40 -15
  1177. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  1178. package/umd/dnb-ui-basis.min.js +1 -1
  1179. package/umd/dnb-ui-components.min.js +1 -1
  1180. package/umd/dnb-ui-elements.min.js +1 -1
  1181. package/umd/dnb-ui-extensions.min.js +3 -3
  1182. package/umd/dnb-ui-lib.min.js +1 -1
  1183. package/cjs/extensions/forms/hooks/useDataValue.d.ts +0 -18
  1184. package/cjs/extensions/forms/hooks/useDataValue.js +0 -461
  1185. package/cjs/extensions/forms/hooks/useDataValue.js.map +0 -1
  1186. package/cjs/extensions/forms/hooks/useId.js.map +0 -1
  1187. package/cjs/extensions/forms/hooks/useMountEffect.js.map +0 -1
  1188. package/cjs/extensions/forms/hooks/useMounted.js.map +0 -1
  1189. package/cjs/extensions/forms/hooks/useUnmountEffect.js.map +0 -1
  1190. package/cjs/extensions/forms/hooks/useUpdateEffect.js.map +0 -1
  1191. package/es/extensions/forms/hooks/useDataValue.d.ts +0 -18
  1192. package/es/extensions/forms/hooks/useDataValue.js +0 -443
  1193. package/es/extensions/forms/hooks/useDataValue.js.map +0 -1
  1194. package/es/extensions/forms/hooks/useId.js.map +0 -1
  1195. package/es/extensions/forms/hooks/useMountEffect.js.map +0 -1
  1196. package/es/extensions/forms/hooks/useMounted.js.map +0 -1
  1197. package/es/extensions/forms/hooks/useUnmountEffect.js.map +0 -1
  1198. package/es/extensions/forms/hooks/useUpdateEffect.js.map +0 -1
  1199. package/extensions/forms/hooks/useDataValue.d.ts +0 -18
  1200. package/extensions/forms/hooks/useDataValue.js +0 -451
  1201. package/extensions/forms/hooks/useDataValue.js.map +0 -1
  1202. package/extensions/forms/hooks/useId.js.map +0 -1
  1203. package/extensions/forms/hooks/useMountEffect.js.map +0 -1
  1204. package/extensions/forms/hooks/useMounted.js.map +0 -1
  1205. package/extensions/forms/hooks/useUnmountEffect.js.map +0 -1
  1206. package/extensions/forms/hooks/useUpdateEffect.js.map +0 -1
  1207. /package/cjs/{extensions/forms/hooks → shared/helpers}/useId.d.ts +0 -0
  1208. /package/cjs/{extensions/forms/hooks → shared/helpers}/useMountEffect.d.ts +0 -0
  1209. /package/cjs/{extensions/forms/hooks → shared/helpers}/useMountEffect.js +0 -0
  1210. /package/cjs/{extensions/forms/hooks → shared/helpers}/useMounted.d.ts +0 -0
  1211. /package/cjs/{extensions/forms/hooks → shared/helpers}/useMounted.js +0 -0
  1212. /package/cjs/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.d.ts +0 -0
  1213. /package/cjs/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.js +0 -0
  1214. /package/cjs/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.d.ts +0 -0
  1215. /package/cjs/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.js +0 -0
  1216. /package/es/{extensions/forms/hooks → shared/helpers}/useId.d.ts +0 -0
  1217. /package/es/{extensions/forms/hooks → shared/helpers}/useMountEffect.d.ts +0 -0
  1218. /package/es/{extensions/forms/hooks → shared/helpers}/useMountEffect.js +0 -0
  1219. /package/es/{extensions/forms/hooks → shared/helpers}/useMounted.d.ts +0 -0
  1220. /package/es/{extensions/forms/hooks → shared/helpers}/useMounted.js +0 -0
  1221. /package/es/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.d.ts +0 -0
  1222. /package/es/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.js +0 -0
  1223. /package/es/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.d.ts +0 -0
  1224. /package/es/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.js +0 -0
  1225. /package/{extensions/forms/hooks → shared/helpers}/useId.d.ts +0 -0
  1226. /package/{extensions/forms/hooks → shared/helpers}/useMountEffect.d.ts +0 -0
  1227. /package/{extensions/forms/hooks → shared/helpers}/useMountEffect.js +0 -0
  1228. /package/{extensions/forms/hooks → shared/helpers}/useMounted.d.ts +0 -0
  1229. /package/{extensions/forms/hooks → shared/helpers}/useMounted.js +0 -0
  1230. /package/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.d.ts +0 -0
  1231. /package/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.js +0 -0
  1232. /package/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.d.ts +0 -0
  1233. /package/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.js +0 -0
@@ -1,8 +1,6 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
1
  import ajvInstance from 'ajv/dist/2020';
5
2
  import ajvErrors from 'ajv-errors';
3
+ import pointer from 'json-pointer';
6
4
  import { FormError } from '../types';
7
5
  export { ajvInstance };
8
6
  export function makeAjvInstance(instance) {
@@ -60,30 +58,51 @@ export function getMessageValues(ajvError) {
60
58
  }
61
59
  }
62
60
  export function ajvErrorToFormError(ajvError) {
63
- var _ajvError$message;
64
- const error = new FormError((_ajvError$message = ajvError.message) !== null && _ajvError$message !== void 0 ? _ajvError$message : 'Unknown error', {
61
+ var _ajvError$message2;
62
+ if (ajvError.keyword === 'errorMessage') {
63
+ var _ajvError$message;
64
+ return new Error((_ajvError$message = ajvError.message) !== null && _ajvError$message !== void 0 ? _ajvError$message : 'Unknown error');
65
+ }
66
+ return new FormError((_ajvError$message2 = ajvError.message) !== null && _ajvError$message2 !== void 0 ? _ajvError$message2 : 'Unknown error', {
65
67
  validationRule: getValidationRule(ajvError),
66
68
  messageValues: getMessageValues(ajvError)
67
69
  });
68
- return error;
69
70
  }
70
- export function ajvErrorsToOneFormError(errors) {
71
+ export function ajvErrorsToOneFormError(errors, value) {
71
72
  if (!errors || errors.length === 0) {
72
73
  return;
73
74
  }
74
75
  if (errors.length === 1) {
75
- return ajvErrorToFormError(errors[0]);
76
+ const error = ajvErrorsTransformation(errors[0], value);
77
+ if (!error) {
78
+ return undefined;
79
+ }
80
+ return ajvErrorToFormError(error);
76
81
  }
77
82
  const errorMessages = errors === null || errors === void 0 ? void 0 : errors.map(error => error.message);
78
- return new FormError(errorMessages.join(' | '), {
79
- validationRule: errors.map(getValidationRule)
80
- });
83
+ return new FormError(errorMessages.join(' and '));
81
84
  }
82
- export const ajvErrorsToFormErrors = errors => {
85
+ export const ajvErrorsToFormErrors = (errors, data) => {
83
86
  return (errors !== null && errors !== void 0 ? errors : []).reduce((errors, ajvError) => {
84
- return _objectSpread(_objectSpread({}, errors), {}, {
85
- [getInstancePath(ajvError)]: ajvErrorToFormError(ajvError)
86
- });
87
+ const path = getInstancePath(ajvError);
88
+ const error = ajvErrorsTransformation(ajvError, data, path);
89
+ if (error) {
90
+ errors[path] = ajvErrorToFormError(error);
91
+ }
92
+ return errors;
87
93
  }, {});
88
94
  };
95
+ function ajvErrorsTransformation(ajvError, data, path) {
96
+ if (ajvError.keyword === 'type') {
97
+ const value = data && typeof data === 'object' ? pointer.get(data, path) : data;
98
+ if (value === '' || value === null) {
99
+ return undefined;
100
+ } else {
101
+ const field = path ? `field at path="${path}"` : 'field';
102
+ ajvError.message = `The ${field} value (${value}) type ${ajvError.message}`;
103
+ console.error(ajvError.message);
104
+ }
105
+ }
106
+ return ajvError;
107
+ }
89
108
  //# sourceMappingURL=ajv.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ajv.js","names":["ajvInstance","ajvErrors","FormError","makeAjvInstance","instance","ajv","allErrors","getInstancePath","ajvError","keyword","instancePath","params","missingProperty","errors","getValidationRule","getMessageValues","_ajvError$params","_ajvError$params2","_ajvError$params3","validationRule","limit","multipleOf","pattern","ajvErrorToFormError","_ajvError$message","error","message","messageValues","ajvErrorsToOneFormError","length","errorMessages","map","join","ajvErrorsToFormErrors","reduce","_objectSpread"],"sources":["../../../../../src/extensions/forms/utils/ajv.ts"],"sourcesContent":["import ajvInstance, { ErrorObject } from 'ajv/dist/2020'\nimport ajvErrors from 'ajv-errors'\nimport { FormError } from '../types'\nimport type Ajv from 'ajv/dist/2020'\n\nexport type AjvInstance = typeof ajvInstance\nexport { ajvInstance, Ajv }\n\n/**\n * Creates an instance of Ajv (Another JSON Schema Validator) with optional custom instance.\n * If no instance is provided, a new instance of Ajv is created with the specified options.\n * The created Ajv instance is enhanced with custom error handling.\n *\n * @param instance - Optional custom instance of Ajv.\n * @returns The created or provided instance of Ajv.\n */\nexport function makeAjvInstance(instance?: Ajv) {\n const ajv =\n instance ||\n new ajvInstance({\n // If allErrors is off, Ajv only give you the first error it finds\n allErrors: true,\n })\n\n if (!ajv['__ajvErrors__']) {\n ajvErrors(ajv)\n ajv['__ajvErrors__'] = true\n }\n\n return ajv\n}\n\n/**\n * Returns the instance path of the given Ajv error.\n * If the error is of type 'required', it is considered an object error and the missing property is shown under the relevant field.\n * If the error is of type 'errorMessage', it is a wrapped error and the instance path is found from the original error to avoid issues like required-errors pointing at the parent object.\n * @param ajvError - The Ajv error object.\n * @returns The instance path of the error.\n */\nexport function getInstancePath(ajvError: ErrorObject): string {\n switch (ajvError.keyword) {\n case 'required': {\n // Required-errors are considered object errors by ajv, so they don't have instancePaths. We want to\n // show them under the relevant field\n return `${ajvError.instancePath}/${ajvError.params.missingProperty}`\n }\n case 'errorMessage': {\n // errorMessage structures (from ajv-errors) wrap the original error. Find instance path from original\n // to avoid issues like required-errors pointing at parent object.\n if (ajvError.params.errors[0]) {\n return getInstancePath(ajvError.params.errors[0])\n }\n }\n }\n return ajvError.instancePath\n}\n\n/**\n * Retrieves the validation rule from an AJV error object.\n * If the error object has an 'errorMessage' keyword, it unwraps the original error\n * to avoid issues like required-errors pointing at the parent object.\n * @param ajvError - The AJV error object.\n * @returns The validation rule.\n */\nexport function getValidationRule(ajvError: ErrorObject): string {\n if (ajvError.keyword === 'errorMessage' && ajvError.params.errors[0]) {\n // errorMessage structures (from ajv-errors) wrap the original error. Find keyword from original\n // to avoid issues like required-errors pointing at parent object.\n return getValidationRule(ajvError.params.errors[0])\n }\n return ajvError.keyword\n}\n\n/**\n * Retrieves the message values from an AJV error object.\n * @param ajvError The AJV error object.\n * @returns The message values extracted from the error object.\n */\nexport function getMessageValues(\n ajvError: ErrorObject\n): FormError['messageValues'] {\n const validationRule = getValidationRule(ajvError)\n // console.log('validationRule', validationRule)\n\n switch (validationRule) {\n case 'minLength':\n case 'maxLength':\n case 'minimum':\n case 'maximum':\n case 'exclusiveMinimum':\n case 'exclusiveMaximum':\n return {\n [validationRule]: ajvError.params?.limit,\n }\n case 'multipleOf':\n return {\n [validationRule]: ajvError.params?.multipleOf,\n }\n case 'pattern':\n return {\n [validationRule]: ajvError.params?.pattern,\n }\n }\n}\n\n/**\n * Converts an AJV error object to a FormError object.\n *\n * @param ajvError - The AJV error object to convert.\n * @returns The converted FormError object.\n */\nexport function ajvErrorToFormError(ajvError: ErrorObject): FormError {\n const error = new FormError(ajvError.message ?? 'Unknown error', {\n validationRule: getValidationRule(ajvError),\n // Keep the message values in the error object instead of injecting them into the message\n // at once, since an error might be validated one place, and then get a new message before it is displayed.\n messageValues: getMessageValues(ajvError),\n })\n return error\n}\n\n/**\n * Converts an array of Ajv errors to a single FormError.\n * @param errors - An array of Ajv errors.\n * @returns A single FormError or undefined if there are no errors.\n */\nexport function ajvErrorsToOneFormError(\n errors?: ErrorObject[] | null\n): FormError | undefined {\n if (!errors || errors.length === 0) {\n return\n }\n if (errors.length === 1) {\n return ajvErrorToFormError(errors[0])\n }\n\n const errorMessages = errors?.map((error) => error.message)\n return new FormError(errorMessages.join(' | '), {\n validationRule: errors.map(getValidationRule),\n })\n}\n\n/**\n * Transform errors from ajv-validation into a record of errors (path as key, error as value)\n * @param errors\n * @returns\n */\nexport const ajvErrorsToFormErrors = (\n errors?: ErrorObject[] | null\n): Record<string, FormError> => {\n return (errors ?? []).reduce((errors, ajvError) => {\n return {\n ...errors,\n [getInstancePath(ajvError)]: ajvErrorToFormError(ajvError),\n }\n }, {})\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ajv.js","names":["ajvInstance","ajvErrors","pointer","FormError","makeAjvInstance","instance","ajv","allErrors","getInstancePath","ajvError","keyword","instancePath","params","missingProperty","errors","getValidationRule","getMessageValues","_ajvError$params","_ajvError$params2","_ajvError$params3","validationRule","limit","multipleOf","pattern","ajvErrorToFormError","_ajvError$message2","_ajvError$message","Error","message","messageValues","ajvErrorsToOneFormError","value","length","error","ajvErrorsTransformation","undefined","errorMessages","map","join","ajvErrorsToFormErrors","data","reduce","path","get","field","console"],"sources":["../../../../../src/extensions/forms/utils/ajv.ts"],"sourcesContent":["import ajvInstance, { ErrorObject } from 'ajv/dist/2020'\nimport ajvErrors from 'ajv-errors'\nimport pointer from 'json-pointer'\nimport { FormError, Path } from '../types'\nimport type Ajv from 'ajv/dist/2020'\n\nexport type AjvInstance = typeof ajvInstance\nexport { ajvInstance, Ajv }\n\n/**\n * Creates an instance of Ajv (Another JSON Schema Validator) with optional custom instance.\n * If no instance is provided, a new instance of Ajv is created with the specified options.\n * The created Ajv instance is enhanced with custom error handling.\n *\n * @param instance - Optional custom instance of Ajv.\n * @returns The created or provided instance of Ajv.\n */\nexport function makeAjvInstance(instance?: Ajv) {\n const ajv =\n instance ||\n new ajvInstance({\n // If allErrors is off, Ajv only give you the first error it finds\n allErrors: true,\n })\n\n if (!ajv['__ajvErrors__']) {\n ajvErrors(ajv)\n ajv['__ajvErrors__'] = true\n }\n\n return ajv\n}\n\n/**\n * Returns the instance path of the given Ajv error.\n * If the error is of type 'required', it is considered an object error and the missing property is shown under the relevant field.\n * If the error is of type 'errorMessage', it is a wrapped error and the instance path is found from the original error to avoid issues like required-errors pointing at the parent object.\n * @param ajvError - The Ajv error object.\n * @returns The instance path of the error.\n */\nexport function getInstancePath(ajvError: ErrorObject): Path {\n switch (ajvError.keyword) {\n case 'required': {\n // Required-errors are considered object errors by ajv, so they don't have instancePaths. We want to\n // show them under the relevant field\n return `${ajvError.instancePath}/${ajvError.params.missingProperty}`\n }\n case 'errorMessage': {\n // errorMessage structures (from ajv-errors) wrap the original error. Find instance path from original\n // to avoid issues like required-errors pointing at parent object.\n if (ajvError.params.errors[0]) {\n return getInstancePath(ajvError.params.errors[0])\n }\n }\n }\n return ajvError.instancePath\n}\n\n/**\n * Retrieves the validation rule from an AJV error object.\n * If the error object has an 'errorMessage' keyword, it unwraps the original error\n * to avoid issues like required-errors pointing at the parent object.\n * @param ajvError - The AJV error object.\n * @returns The validation rule.\n */\nexport function getValidationRule(ajvError: ErrorObject): string {\n if (ajvError.keyword === 'errorMessage' && ajvError.params.errors[0]) {\n // errorMessage structures (from ajv-errors) wrap the original error. Find keyword from original\n // to avoid issues like required-errors pointing at parent object.\n return getValidationRule(ajvError.params.errors[0])\n }\n return ajvError.keyword\n}\n\n/**\n * Retrieves the message values from an AJV error object.\n * @param ajvError The AJV error object.\n * @returns The message values extracted from the error object.\n */\nexport function getMessageValues(\n ajvError: ErrorObject\n): FormError['messageValues'] {\n const validationRule = getValidationRule(ajvError)\n\n switch (validationRule) {\n case 'minLength':\n case 'maxLength':\n case 'minimum':\n case 'maximum':\n case 'exclusiveMinimum':\n case 'exclusiveMaximum':\n return {\n [validationRule]: ajvError.params?.limit,\n }\n case 'multipleOf':\n return {\n [validationRule]: ajvError.params?.multipleOf,\n }\n case 'pattern':\n return {\n [validationRule]: ajvError.params?.pattern,\n }\n }\n}\n\n/**\n * Converts an AJV error object to a FormError object.\n *\n * @param ajvError - The AJV error object to convert.\n * @returns The converted FormError object.\n */\nexport function ajvErrorToFormError(ajvError: ErrorObject): FormError {\n if (ajvError.keyword === 'errorMessage') {\n return new Error(ajvError.message ?? 'Unknown error')\n }\n\n return new FormError(ajvError.message ?? 'Unknown error', {\n validationRule: getValidationRule(ajvError),\n // Keep the message values in the error object instead of injecting them into the message\n // at once, since an error might be validated one place, and then get a new message before it is displayed.\n messageValues: getMessageValues(ajvError),\n })\n}\n\n/**\n * Converts an array of Ajv errors to a single FormError.\n * @param errors - An array of Ajv errors.\n * @returns A single FormError or undefined if there are no errors.\n */\nexport function ajvErrorsToOneFormError(\n errors?: ErrorObject[] | null,\n value?: unknown\n): FormError | undefined {\n if (!errors || errors.length === 0) {\n return\n }\n if (errors.length === 1) {\n const error = ajvErrorsTransformation(errors[0], value)\n if (!error) {\n return undefined\n }\n\n return ajvErrorToFormError(error)\n }\n\n const errorMessages = errors?.map((error) => error.message)\n return new FormError(errorMessages.join(' and '))\n}\n\n/**\n * Converts AJV validation errors to form errors.\n *\n * @param errors - The array of AJV validation errors.\n * @param data - The data object being validated.\n * @returns The converted form errors as a record of path and form error pairs.\n */\nexport const ajvErrorsToFormErrors = (\n errors?: ErrorObject[] | null,\n data?: Record<Path, unknown>\n): Record<string, FormError> => {\n return (errors ?? []).reduce((errors, ajvError) => {\n const path = getInstancePath(ajvError)\n const error = ajvErrorsTransformation(ajvError, data, path)\n\n if (error) {\n errors[path] = ajvErrorToFormError(error)\n }\n\n return errors\n }, {})\n}\n\n/**\n * Transforms AJV errors based on specific conditions.\n *\n * @param ajvError - The AJV error object.\n * @param data - The data object or value being validated.\n * @param path - The path to the data object property being validated.\n * @returns The transformed AJV error object or undefined if the error should be removed.\n */\nfunction ajvErrorsTransformation(\n ajvError: ErrorObject,\n data?: Record<Path, unknown> | unknown,\n path?: Path\n) {\n if (ajvError.keyword === 'type') {\n const value =\n data && typeof data === 'object' ? pointer.get(data, path) : data\n\n // Remove the error if the value is empty\n if (value === '' || value === null) {\n return undefined\n } else {\n // This extend the very limited error message with the value and the path\n const field = path ? `field at path=\"${path}\"` : 'field'\n ajvError.message = `The ${field} value (${value}) type ${ajvError.message}`\n\n // Warn about the issue\n console.error(ajvError.message)\n }\n }\n\n return ajvError\n}\n"],"mappings":"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"}
@@ -14,10 +14,10 @@ export type ScrollViewProps = {
14
14
  export type ScrollViewAllProps = ScrollViewProps & SpacingProps & Partial<Omit<React.HTMLAttributes<HTMLDivElement>, 'title'>> & {
15
15
  innerRef?: React.ForwardedRef<unknown>;
16
16
  };
17
- declare const _default: React.ForwardRefExoticComponent<ScrollViewProps & import("../../shared/types").SpacingElementProps & {
17
+ declare const ScrollViewWithRef: React.ForwardRefExoticComponent<ScrollViewProps & import("../../shared/types").SpacingElementProps & {
18
18
  space?: import("../../shared/types").SpaceTypeAll;
19
19
  innerSpace?: import("../../shared/types").SpaceTypeAll | import("../../shared/types").SpaceTypeMedia;
20
20
  } & Partial<Omit<React.HTMLAttributes<HTMLDivElement>, "title">> & {
21
21
  innerRef?: React.ForwardedRef<unknown>;
22
22
  } & React.RefAttributes<unknown>>;
23
- export default _default;
23
+ export default ScrollViewWithRef;
@@ -69,9 +69,12 @@ function useInteractive({
69
69
  return ref.current.scrollWidth - 1 > ref.current.offsetWidth || ref.current.scrollHeight - 1 > ref.current.offsetHeight;
70
70
  }
71
71
  }
72
- export default React.forwardRef((props, ref) => {
72
+ const ScrollViewWithRef = React.forwardRef((props, ref) => {
73
73
  return React.createElement(ScrollView, _extends({}, props, {
74
74
  innerRef: props.innerRef || ref
75
75
  }));
76
76
  });
77
+ ScrollView._supportsSpacingProps = true;
78
+ ScrollViewWithRef['_supportsSpacingProps'] = true;
79
+ export default ScrollViewWithRef;
77
80
  //# sourceMappingURL=ScrollView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollView.js","names":["React","classnames","extendPropsWithContext","validateDOMAttributes","Context","createSpacingClasses","useLayoutEffect","window","useEffect","defaultProps","children","ScrollView","localProps","context","useContext","props","interactive","className","innerRef","attributes","_objectWithoutProperties","_excluded","mainParams","_objectSpread","ref","useRef","tabIndex","useInteractive","createElement","isInteractive","setAsInteractive","useState","Boolean","hasScrollbar","ResizeObserver","observer","observe","current","disconnect","undefined","scrollWidth","offsetWidth","scrollHeight","offsetHeight","forwardRef","_extends"],"sources":["../../../../src/fragments/scroll-view/ScrollView.tsx"],"sourcesContent":["/**\n * Web ScrollView Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport {\n extendPropsWithContext,\n validateDOMAttributes,\n} from '../../shared/component-helper'\nimport Context from '../../shared/Context'\nimport { createSpacingClasses } from '../../components/space/SpacingHelper'\nimport type { SpacingProps } from '../../shared/types'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type ScrollViewProps = {\n /**\n * To make the content accessible to keyboard navigation. Use `true` or `auto`. Auto will detect if a scrollbar is visible and make the ScrollView accessible for keyboard navigation.\n * Default: false\n */\n interactive?: boolean | 'auto'\n}\n\nexport type ScrollViewAllProps = ScrollViewProps &\n SpacingProps &\n Partial<Omit<React.HTMLAttributes<HTMLDivElement>, 'title'>> & {\n innerRef?: React.ForwardedRef<unknown>\n }\n\nconst defaultProps = {\n children: null,\n}\n\nfunction ScrollView(localProps: ScrollViewAllProps) {\n const context = React.useContext(Context)\n\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContext(\n localProps,\n defaultProps,\n context.ScrollView\n )\n\n const {\n interactive,\n children,\n className = null,\n innerRef,\n ...attributes\n } = props\n\n const mainParams: React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLDivElement>,\n HTMLDivElement\n > = {\n className: classnames(\n 'dnb-scroll-view',\n createSpacingClasses(props),\n className\n ),\n ...(attributes as React.HTMLAttributes<unknown>),\n }\n\n const ref = React.useRef<HTMLDivElement>()\n mainParams.ref = innerRef\n ? (innerRef as React.RefObject<HTMLDivElement>)\n : ref\n\n mainParams.tabIndex = useInteractive({\n interactive,\n children,\n ref: mainParams.ref,\n })\n\n validateDOMAttributes(props, mainParams)\n\n return <div {...mainParams}>{children}</div>\n}\n\nfunction useInteractive({ interactive, children, ref }) {\n const [isInteractive, setAsInteractive] = React.useState(\n Boolean(interactive)\n )\n\n useLayoutEffect(() => {\n if (interactive === 'auto') {\n setAsInteractive(hasScrollbar())\n }\n }, [interactive, children]) // eslint-disable-line react-hooks/exhaustive-deps\n\n useLayoutEffect(() => {\n if (interactive === 'auto' && typeof ResizeObserver !== 'undefined') {\n const observer = new ResizeObserver(() => {\n setAsInteractive(hasScrollbar())\n })\n observer.observe(ref.current)\n return () => observer?.disconnect()\n }\n }, [interactive, ref]) // eslint-disable-line react-hooks/exhaustive-deps\n\n if (isInteractive) {\n return 0 // Ensure that scrollable region has keyboard access\n }\n\n return undefined\n\n function hasScrollbar() {\n if (!ref.current) {\n return true // fallback and assume, there is a scrollbar\n }\n\n /**\n * Safari Desktop adds one pixel \"on zoom\" level 1\n * therefore we just remove it here\n */\n return (\n ref.current.scrollWidth - 1 > ref.current.offsetWidth ||\n ref.current.scrollHeight - 1 > ref.current.offsetHeight\n )\n }\n}\n\nexport default React.forwardRef((props: ScrollViewAllProps, ref) => {\n return <ScrollView {...props} innerRef={props.innerRef || ref} />\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"ScrollView.js","names":["React","classnames","extendPropsWithContext","validateDOMAttributes","Context","createSpacingClasses","useLayoutEffect","window","useEffect","defaultProps","children","ScrollView","localProps","context","useContext","props","interactive","className","innerRef","attributes","_objectWithoutProperties","_excluded","mainParams","_objectSpread","ref","useRef","tabIndex","useInteractive","createElement","isInteractive","setAsInteractive","useState","Boolean","hasScrollbar","ResizeObserver","observer","observe","current","disconnect","undefined","scrollWidth","offsetWidth","scrollHeight","offsetHeight","ScrollViewWithRef","forwardRef","_extends","_supportsSpacingProps"],"sources":["../../../../src/fragments/scroll-view/ScrollView.tsx"],"sourcesContent":["/**\n * Web ScrollView Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport {\n extendPropsWithContext,\n validateDOMAttributes,\n} from '../../shared/component-helper'\nimport Context from '../../shared/Context'\nimport { createSpacingClasses } from '../../components/space/SpacingHelper'\nimport type { SpacingProps } from '../../shared/types'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type ScrollViewProps = {\n /**\n * To make the content accessible to keyboard navigation. Use `true` or `auto`. Auto will detect if a scrollbar is visible and make the ScrollView accessible for keyboard navigation.\n * Default: false\n */\n interactive?: boolean | 'auto'\n}\n\nexport type ScrollViewAllProps = ScrollViewProps &\n SpacingProps &\n Partial<Omit<React.HTMLAttributes<HTMLDivElement>, 'title'>> & {\n innerRef?: React.ForwardedRef<unknown>\n }\n\nconst defaultProps = {\n children: null,\n}\n\nfunction ScrollView(localProps: ScrollViewAllProps) {\n const context = React.useContext(Context)\n\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContext(\n localProps,\n defaultProps,\n context.ScrollView\n )\n\n const {\n interactive,\n children,\n className = null,\n innerRef,\n ...attributes\n } = props\n\n const mainParams: React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLDivElement>,\n HTMLDivElement\n > = {\n className: classnames(\n 'dnb-scroll-view',\n createSpacingClasses(props),\n className\n ),\n ...(attributes as React.HTMLAttributes<unknown>),\n }\n\n const ref = React.useRef<HTMLDivElement>()\n mainParams.ref = innerRef\n ? (innerRef as React.RefObject<HTMLDivElement>)\n : ref\n\n mainParams.tabIndex = useInteractive({\n interactive,\n children,\n ref: mainParams.ref,\n })\n\n validateDOMAttributes(props, mainParams)\n\n return <div {...mainParams}>{children}</div>\n}\n\nfunction useInteractive({ interactive, children, ref }) {\n const [isInteractive, setAsInteractive] = React.useState(\n Boolean(interactive)\n )\n\n useLayoutEffect(() => {\n if (interactive === 'auto') {\n setAsInteractive(hasScrollbar())\n }\n }, [interactive, children]) // eslint-disable-line react-hooks/exhaustive-deps\n\n useLayoutEffect(() => {\n if (interactive === 'auto' && typeof ResizeObserver !== 'undefined') {\n const observer = new ResizeObserver(() => {\n setAsInteractive(hasScrollbar())\n })\n observer.observe(ref.current)\n return () => observer?.disconnect()\n }\n }, [interactive, ref]) // eslint-disable-line react-hooks/exhaustive-deps\n\n if (isInteractive) {\n return 0 // Ensure that scrollable region has keyboard access\n }\n\n return undefined\n\n function hasScrollbar() {\n if (!ref.current) {\n return true // fallback and assume, there is a scrollbar\n }\n\n /**\n * Safari Desktop adds one pixel \"on zoom\" level 1\n * therefore we just remove it here\n */\n return (\n ref.current.scrollWidth - 1 > ref.current.offsetWidth ||\n ref.current.scrollHeight - 1 > ref.current.offsetHeight\n )\n }\n}\n\nconst ScrollViewWithRef = React.forwardRef(\n (props: ScrollViewAllProps, ref) => {\n return <ScrollView {...props} innerRef={props.innerRef || ref} />\n }\n)\n\nScrollView._supportsSpacingProps = true\nScrollViewWithRef['_supportsSpacingProps'] = true\n\nexport default ScrollViewWithRef\n"],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  *
4
4
  */
5
5
  import React from 'react';
6
+ import defaultLocales from './locales';
6
7
  import type { ScrollViewProps } from '../fragments/scroll-view/ScrollView';
7
8
  import type { AnchorProps } from '../components/Anchor';
8
9
  import type { ButtonProps } from '../components/button/Button';
@@ -119,30 +120,38 @@ export type ContextProps = ContextComponents & {
119
120
  * Update the used locale from within the context, but only for the particular scope
120
121
  */
121
122
  setCurrentLocale?: (locale: Locale) => void;
123
+ /**
124
+ * Set a custom translation in the Provider
125
+ */
122
126
  locales?: Locales;
123
127
  __context__?: Record<string, unknown>;
124
128
  updateTranslation?: (locale: Locale, translation: Translation) => void;
125
129
  getTranslation?: (props: GetTranslationProps) => Translation;
126
130
  };
127
131
  export type GetTranslationProps = Partial<{
128
- lang?: Locale;
132
+ lang?: Locale | HTMLElement['lang'];
129
133
  locale?: Locale;
130
134
  }>;
131
- export type Locale = string | 'nb-NO' | 'en-GB' | 'en-US';
132
- export type ComponentTranslationsName = string | keyof ContextComponents;
135
+ export type AnyLocale = string;
136
+ export type Locale = AnyLocale | Partial<TranslationLocale> | 'en-US';
137
+ export type ComponentTranslationsName = keyof ContextComponents | string;
133
138
  export type ComponentTranslation = string;
134
- export type ComponentTranslations = Record<string, ComponentTranslation>;
135
- export type Locales = Record<Locale, Translation | TranslationConsumer>;
136
- export type Translation = Record<
139
+ export type Locales = Partial<Record<Locale, Translation | TranslationFlat>>;
140
+ export type TranslationDefaultLocales = typeof defaultLocales;
141
+ export type TranslationLocale = keyof TranslationDefaultLocales;
142
+ export type TranslationKeys = keyof TranslationDefaultLocales[TranslationLocale];
143
+ export type TranslationValues = TranslationDefaultLocales[TranslationLocale];
137
144
  /**
138
- * Support only "HelpButton"
145
+ * E.g. "HelpButton: { title: '...' }"
139
146
  */
140
- ComponentTranslationsName, ComponentTranslations>;
141
- export type TranslationConsumer = Record<
147
+ export type Translation = DeepPartial<TranslationDefaultLocales[TranslationLocale]>;
142
148
  /**
143
- * Support "HelpButton.title"
149
+ * E.g. "HelpButton.title"
144
150
  */
145
- ComponentTranslationsName, ComponentTranslation | ComponentTranslations>;
151
+ export type TranslationFlat = Record<ComponentTranslationsName, TranslationKeys | ComponentTranslation>;
152
+ type DeepPartial<T> = T extends object ? {
153
+ [K in keyof T]?: DeepPartial<T[K]>;
154
+ } : T;
146
155
  export declare function prepareContext<Props>(props?: ContextProps): Props & ContextProps;
147
156
  declare const Context: React.Context<ContextProps>;
148
157
  export default Context;
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","names":["React","LOCALE","CURRENCY","CURRENCY_DISPLAY","defaultLocales","extend","prepareContext","props","locales","__context__","Object","assign","key","handleLocaleFallbacks","locale","translation","destruct","context","_objectSpread","updateTranslation","getTranslation","lang","breakpoints","skeleton","split","Context","createContext","currency","currency_display","source","validKeys","k","String","includes","list","val","last","length","forEach","i"],"sources":["../../../src/shared/Context.tsx"],"sourcesContent":["/**\n * Web Context Context\n *\n */\n\nimport React from 'react'\nimport { LOCALE, CURRENCY, CURRENCY_DISPLAY } from './defaults'\nimport defaultLocales from './locales'\nimport { extend } from './component-helper'\n\n// All TypeScript based Eufemia elements\nimport type { ScrollViewProps } from '../fragments/scroll-view/ScrollView'\n\n// All TypeScript based Eufemia components\nimport type { AnchorProps } from '../components/Anchor'\nimport type { ButtonProps } from '../components/button/Button'\nimport type { AvatarProps } from '../components/avatar/Avatar'\nimport type { AvatarGroupProps } from '../components/avatar/AvatarGroup'\nimport type { BadgeProps } from '../components/badge/Badge'\nimport type { BreadcrumbProps } from '../components/breadcrumb/Breadcrumb'\nimport type { BreadcrumbItemProps } from '../components/breadcrumb/BreadcrumbItem'\nimport type { InfoCardProps } from '../components/info-card/InfoCard'\nimport type { SliderProps } from '../components/slider/Slider'\nimport type { TagProps } from '../components/tag/Tag'\nimport type { TagGroupProps } from '../components/tag/TagGroup'\nimport type { TimelineProps } from '../components/timeline/Timeline'\nimport type { TimelineItemProps } from '../components/timeline/TimelineItem'\nimport type { VisuallyHiddenProps } from '../components/visually-hidden/VisuallyHidden'\nimport type { DrawerProps } from '../components/drawer/types'\nimport type { DialogProps } from '../components/dialog/types'\nimport type { TooltipProps } from '../components/tooltip/types'\nimport type { SectionProps } from '../components/section/Section'\nimport type { FormRowProps } from '../components/form-row/FormRowHelpers'\nimport type { UploadProps } from '../components/upload/types'\nimport type { SkeletonProps, SkeletonShow } from '../components/Skeleton'\nimport type { HelpButtonProps } from '../components/HelpButton'\nimport type { TableProps } from '../components/Table'\nimport type { GlobalErrorProps } from '../components/GlobalError'\nimport type { ModalProps } from '../components/modal/types'\nimport type { AccordionProps } from '../components/Accordion'\nimport type { StepIndicatorProps } from '../components/StepIndicator'\nimport type { FormLabelProps } from '../components/FormLabel'\nimport type { InputProps } from '../components/Input'\n\nimport type { NumberFormatCurrency } from '../components/NumberFormat'\n\nimport type { FormElementProps } from './helpers/filterValidProps'\nimport type { ThemeProps } from './Theme'\n\nexport type ContextComponents = {\n Button?: Partial<ButtonProps>\n Anchor?: Partial<AnchorProps>\n Avatar?: Partial<AvatarProps>\n AvatarGroup?: Partial<AvatarGroupProps>\n Badge?: Partial<BadgeProps>\n Breadcrumb?: Partial<BreadcrumbProps>\n BreadcrumbItem?: Partial<BreadcrumbItemProps>\n InfoCard?: Partial<InfoCardProps>\n Slider?: Partial<SliderProps>\n Tag?: Partial<TagProps>\n TagGroup?: Partial<TagGroupProps>\n Timeline?: Partial<TimelineProps>\n TimelineItem?: Partial<TimelineItemProps>\n VisuallyHidden?: Partial<VisuallyHiddenProps>\n Drawer?: Partial<DrawerProps>\n Dialog?: Partial<DialogProps>\n Tooltip?: Partial<TooltipProps>\n Section?: Partial<SectionProps>\n ScrollView?: Partial<ScrollViewProps>\n Upload?: Partial<UploadProps>\n Skeleton?: Partial<SkeletonProps>\n HelpButton?: Partial<HelpButtonProps>\n Table?: Partial<TableProps>\n GlobalError?: Partial<GlobalErrorProps>\n Modal?: Partial<ModalProps>\n Accordion?: Partial<AccordionProps>\n StepIndicator?: Partial<StepIndicatorProps>\n FormLabel?: Partial<FormLabelProps>\n Input?: Partial<InputProps>\n\n // -- TODO: Not converted yet --\n NumberFormat?: Record<string, unknown>\n Pagination?: Record<string, unknown>\n\n /**\n * @deprecated – can be removed in v11\n */\n FormRow?: FormRowProps\n\n // Common props\n formElement?: FormElementProps\n}\n\nexport type ContextProps = ContextComponents & {\n // -- All TypeScript based Eufemia components --\n\n // -- Global properties --\n\n /**\n * Contains theme related properties, such as a theme name\n */\n theme?: ThemeProps\n\n /**\n * Will enable all skeletons inside this provider/context scope\n */\n skeleton?: SkeletonShow\n\n /**\n * Define what breakpoints should be used by the MediaQuery component and hook\n */\n breakpoints?: Record<string, string>\n\n /**\n * Defines the locale (internal translation) used by some components\n */\n locale?: Locale\n\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translation?: Translation\n\n /**\n * Defines the currency used by the NumberFormat component\n */\n currency?: NumberFormatCurrency\n\n /**\n * Defines the currencyDisplay used by the NumberFormat component\n */\n currency_display?: string\n\n /**\n * Update any given provider/context properties\n */\n update?: (props: ContextProps) => void\n\n /**\n * Update any given provider/context properties, but only for the particular scope\n */\n updateCurrent?: (props: ContextProps) => void\n\n /**\n * Update the used locale from within the context\n */\n setLocale?: (locale: Locale) => void\n\n /**\n * Update the used locale from within the context, but only for the particular scope\n */\n setCurrentLocale?: (locale: Locale) => void\n\n // -- For internal use --\n locales?: Locales\n __context__?: Record<string, unknown>\n updateTranslation?: (locale: Locale, translation: Translation) => void\n getTranslation?: (props: GetTranslationProps) => Translation\n}\n\nexport type GetTranslationProps = Partial<{\n lang?: Locale\n locale?: Locale\n}>\n\nexport type Locale = string | 'nb-NO' | 'en-GB' | 'en-US'\nexport type ComponentTranslationsName = string | keyof ContextComponents\nexport type ComponentTranslation = string\nexport type ComponentTranslations = Record<string, ComponentTranslation>\nexport type Locales = Record<Locale, Translation | TranslationConsumer>\nexport type Translation = Record<\n /**\n * Support only \"HelpButton\"\n */\n ComponentTranslationsName,\n ComponentTranslations\n>\nexport type TranslationConsumer = Record<\n /**\n * Support \"HelpButton.title\"\n */\n ComponentTranslationsName,\n ComponentTranslation | ComponentTranslations\n>\n\nexport function prepareContext<Props>(\n props: ContextProps = {}\n): Props & ContextProps {\n const locales: Locales = props.locales\n ? extend(defaultLocales, props.locales)\n : defaultLocales\n\n if (props.__context__) {\n Object.assign(props, props.__context__)\n delete props.__context__\n }\n\n const key = handleLocaleFallbacks(props.locale || LOCALE, locales)\n const translation = locales[key] || defaultLocales[LOCALE] || {} // here we could use Object.freeze\n\n /**\n * The code above adds support for strings, defined like:\n * {\n * \"Modal.close_title\": \"Lukk\",\n * }\n */\n if (locales[key]) {\n locales[key] = destruct(locales[key], translation)\n }\n\n const context = {\n // We may use that in future\n updateTranslation: (locale: string, translation: Translation) => {\n context.translation = context.locales[locale] = translation\n },\n getTranslation: (props: GetTranslationProps) => {\n if (props) {\n const lang = props.lang || props.locale\n if (lang && context.locales[lang] && lang !== key) {\n return context.locales[lang]\n }\n }\n return context.translation\n },\n\n locales,\n locale: null,\n breakpoints: null,\n skeleton: null,\n\n ...props,\n\n /**\n * Make sure we set this after props, since we update this one!\n */\n translation,\n } as Props & ContextProps\n\n return context\n}\n\nfunction handleLocaleFallbacks(locale: Locale, locales: Locales) {\n if (!locales[locale]) {\n if (locale === 'en' || locale.split('-')[0] === 'en') {\n return 'en-GB'\n }\n }\n return locale\n}\n\n// If no provider is given, we use the default context from here\nconst Context = React.createContext<ContextProps>(\n prepareContext({\n locale: LOCALE,\n currency: CURRENCY,\n currency_display: CURRENCY_DISPLAY,\n })\n)\n\nexport default Context\n\nfunction destruct(\n source: TranslationConsumer,\n validKeys: Record<string, unknown>\n): TranslationConsumer {\n for (const k in source) {\n if (String(k).includes('.')) {\n const list = k.split('.')\n\n if (validKeys[list[0]]) {\n const val = source[k]\n const last = list.length - 1\n\n list.forEach((k, i) => {\n source[k] = i === last ? val : source[k]\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n source = source[k] || {}\n })\n\n // If the root object is frozen, then use this\n // let lastObj = { ...source }\n // list.forEach((k, i) => {\n // lastObj[k] = i === last ? val : lastObj[k] // we may have to create a new object here instead?\n // lastObj = lastObj[k]\n // })\n }\n }\n }\n\n return source\n}\n"],"mappings":";;;AAKA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,MAAM,EAAEC,QAAQ,EAAEC,gBAAgB,QAAQ,YAAY;AAC/D,OAAOC,cAAc,MAAM,WAAW;AACtC,SAASC,MAAM,QAAQ,oBAAoB;AAiL3C,OAAO,SAASC,cAAcA,CAC5BC,KAAmB,GAAG,CAAC,CAAC,EACF;EACtB,MAAMC,OAAgB,GAAGD,KAAK,CAACC,OAAO,GAClCH,MAAM,CAACD,cAAc,EAAEG,KAAK,CAACC,OAAO,CAAC,GACrCJ,cAAc;EAElB,IAAIG,KAAK,CAACE,WAAW,EAAE;IACrBC,MAAM,CAACC,MAAM,CAACJ,KAAK,EAAEA,KAAK,CAACE,WAAW,CAAC;IACvC,OAAOF,KAAK,CAACE,WAAW;EAC1B;EAEA,MAAMG,GAAG,GAAGC,qBAAqB,CAACN,KAAK,CAACO,MAAM,IAAIb,MAAM,EAAEO,OAAO,CAAC;EAClE,MAAMO,WAAW,GAAGP,OAAO,CAACI,GAAG,CAAC,IAAIR,cAAc,CAACH,MAAM,CAAC,IAAI,CAAC,CAAC;EAQhE,IAAIO,OAAO,CAACI,GAAG,CAAC,EAAE;IAChBJ,OAAO,CAACI,GAAG,CAAC,GAAGI,QAAQ,CAACR,OAAO,CAACI,GAAG,CAAC,EAAEG,WAAW,CAAC;EACpD;EAEA,MAAME,OAAO,GAAAC,aAAA,CAAAA,aAAA;IAEXC,iBAAiB,EAAEA,CAACL,MAAc,EAAEC,WAAwB,KAAK;MAC/DE,OAAO,CAACF,WAAW,GAAGE,OAAO,CAACT,OAAO,CAACM,MAAM,CAAC,GAAGC,WAAW;IAC7D,CAAC;IACDK,cAAc,EAAGb,KAA0B,IAAK;MAC9C,IAAIA,KAAK,EAAE;QACT,MAAMc,IAAI,GAAGd,KAAK,CAACc,IAAI,IAAId,KAAK,CAACO,MAAM;QACvC,IAAIO,IAAI,IAAIJ,OAAO,CAACT,OAAO,CAACa,IAAI,CAAC,IAAIA,IAAI,KAAKT,GAAG,EAAE;UACjD,OAAOK,OAAO,CAACT,OAAO,CAACa,IAAI,CAAC;QAC9B;MACF;MACA,OAAOJ,OAAO,CAACF,WAAW;IAC5B,CAAC;IAEDP,OAAO;IACPM,MAAM,EAAE,IAAI;IACZQ,WAAW,EAAE,IAAI;IACjBC,QAAQ,EAAE;EAAI,GAEXhB,KAAK;IAKRQ;EAAW,EACY;EAEzB,OAAOE,OAAO;AAChB;AAEA,SAASJ,qBAAqBA,CAACC,MAAc,EAAEN,OAAgB,EAAE;EAC/D,IAAI,CAACA,OAAO,CAACM,MAAM,CAAC,EAAE;IACpB,IAAIA,MAAM,KAAK,IAAI,IAAIA,MAAM,CAACU,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;MACpD,OAAO,OAAO;IAChB;EACF;EACA,OAAOV,MAAM;AACf;AAGA,MAAMW,OAAO,GAAGzB,KAAK,CAAC0B,aAAa,CACjCpB,cAAc,CAAC;EACbQ,MAAM,EAAEb,MAAM;EACd0B,QAAQ,EAAEzB,QAAQ;EAClB0B,gBAAgB,EAAEzB;AACpB,CAAC,CACH,CAAC;AAED,eAAesB,OAAO;AAEtB,SAAST,QAAQA,CACfa,MAA2B,EAC3BC,SAAkC,EACb;EACrB,KAAK,MAAMC,CAAC,IAAIF,MAAM,EAAE;IACtB,IAAIG,MAAM,CAACD,CAAC,CAAC,CAACE,QAAQ,CAAC,GAAG,CAAC,EAAE;MAC3B,MAAMC,IAAI,GAAGH,CAAC,CAACP,KAAK,CAAC,GAAG,CAAC;MAEzB,IAAIM,SAAS,CAACI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;QACtB,MAAMC,GAAG,GAAGN,MAAM,CAACE,CAAC,CAAC;QACrB,MAAMK,IAAI,GAAGF,IAAI,CAACG,MAAM,GAAG,CAAC;QAE5BH,IAAI,CAACI,OAAO,CAAC,CAACP,CAAC,EAAEQ,CAAC,KAAK;UACrBV,MAAM,CAACE,CAAC,CAAC,GAAGQ,CAAC,KAAKH,IAAI,GAAGD,GAAG,GAAGN,MAAM,CAACE,CAAC,CAAC;UAIxCF,MAAM,GAAGA,MAAM,CAACE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC;MAQJ;IACF;EACF;EAEA,OAAOF,MAAM;AACf"}
1
+ {"version":3,"file":"Context.js","names":["React","LOCALE","CURRENCY","CURRENCY_DISPLAY","defaultLocales","extend","prepareContext","props","locales","__context__","Object","assign","key","handleLocaleFallbacks","locale","translation","destruct","context","_objectSpread","updateTranslation","getTranslation","lang","breakpoints","skeleton","split","Context","createContext","currency","currency_display","source","validKeys","k","String","includes","list","val","last","length","forEach","i"],"sources":["../../../src/shared/Context.tsx"],"sourcesContent":["/**\n * Web Context Context\n *\n */\n\nimport React from 'react'\nimport { LOCALE, CURRENCY, CURRENCY_DISPLAY } from './defaults'\nimport defaultLocales from './locales'\nimport { extend } from './component-helper'\n\n// All TypeScript based Eufemia elements\nimport type { ScrollViewProps } from '../fragments/scroll-view/ScrollView'\n\n// All TypeScript based Eufemia components\nimport type { AnchorProps } from '../components/Anchor'\nimport type { ButtonProps } from '../components/button/Button'\nimport type { AvatarProps } from '../components/avatar/Avatar'\nimport type { AvatarGroupProps } from '../components/avatar/AvatarGroup'\nimport type { BadgeProps } from '../components/badge/Badge'\nimport type { BreadcrumbProps } from '../components/breadcrumb/Breadcrumb'\nimport type { BreadcrumbItemProps } from '../components/breadcrumb/BreadcrumbItem'\nimport type { InfoCardProps } from '../components/info-card/InfoCard'\nimport type { SliderProps } from '../components/slider/Slider'\nimport type { TagProps } from '../components/tag/Tag'\nimport type { TagGroupProps } from '../components/tag/TagGroup'\nimport type { TimelineProps } from '../components/timeline/Timeline'\nimport type { TimelineItemProps } from '../components/timeline/TimelineItem'\nimport type { VisuallyHiddenProps } from '../components/visually-hidden/VisuallyHidden'\nimport type { DrawerProps } from '../components/drawer/types'\nimport type { DialogProps } from '../components/dialog/types'\nimport type { TooltipProps } from '../components/tooltip/types'\nimport type { SectionProps } from '../components/section/Section'\nimport type { FormRowProps } from '../components/form-row/FormRowHelpers'\nimport type { UploadProps } from '../components/upload/types'\nimport type { SkeletonProps, SkeletonShow } from '../components/Skeleton'\nimport type { HelpButtonProps } from '../components/HelpButton'\nimport type { TableProps } from '../components/Table'\nimport type { GlobalErrorProps } from '../components/GlobalError'\nimport type { ModalProps } from '../components/modal/types'\nimport type { AccordionProps } from '../components/Accordion'\nimport type { StepIndicatorProps } from '../components/StepIndicator'\nimport type { FormLabelProps } from '../components/FormLabel'\nimport type { InputProps } from '../components/Input'\n\nimport type { NumberFormatCurrency } from '../components/NumberFormat'\n\nimport type { FormElementProps } from './helpers/filterValidProps'\nimport type { ThemeProps } from './Theme'\n\nexport type ContextComponents = {\n Button?: Partial<ButtonProps>\n Anchor?: Partial<AnchorProps>\n Avatar?: Partial<AvatarProps>\n AvatarGroup?: Partial<AvatarGroupProps>\n Badge?: Partial<BadgeProps>\n Breadcrumb?: Partial<BreadcrumbProps>\n BreadcrumbItem?: Partial<BreadcrumbItemProps>\n InfoCard?: Partial<InfoCardProps>\n Slider?: Partial<SliderProps>\n Tag?: Partial<TagProps>\n TagGroup?: Partial<TagGroupProps>\n Timeline?: Partial<TimelineProps>\n TimelineItem?: Partial<TimelineItemProps>\n VisuallyHidden?: Partial<VisuallyHiddenProps>\n Drawer?: Partial<DrawerProps>\n Dialog?: Partial<DialogProps>\n Tooltip?: Partial<TooltipProps>\n Section?: Partial<SectionProps>\n ScrollView?: Partial<ScrollViewProps>\n Upload?: Partial<UploadProps>\n Skeleton?: Partial<SkeletonProps>\n HelpButton?: Partial<HelpButtonProps>\n Table?: Partial<TableProps>\n GlobalError?: Partial<GlobalErrorProps>\n Modal?: Partial<ModalProps>\n Accordion?: Partial<AccordionProps>\n StepIndicator?: Partial<StepIndicatorProps>\n FormLabel?: Partial<FormLabelProps>\n Input?: Partial<InputProps>\n\n // -- TODO: Not converted yet --\n NumberFormat?: Record<string, unknown>\n Pagination?: Record<string, unknown>\n\n /**\n * @deprecated – can be removed in v11\n */\n FormRow?: FormRowProps\n\n // Common props\n formElement?: FormElementProps\n}\n\nexport type ContextProps = ContextComponents & {\n // -- All TypeScript based Eufemia components --\n\n // -- Global properties --\n\n /**\n * Contains theme related properties, such as a theme name\n */\n theme?: ThemeProps\n\n /**\n * Will enable all skeletons inside this provider/context scope\n */\n skeleton?: SkeletonShow\n\n /**\n * Define what breakpoints should be used by the MediaQuery component and hook\n */\n breakpoints?: Record<string, string>\n\n /**\n * Defines the locale (internal translation) used by some components\n */\n locale?: Locale\n\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translation?: Translation\n\n /**\n * Defines the currency used by the NumberFormat component\n */\n currency?: NumberFormatCurrency\n\n /**\n * Defines the currencyDisplay used by the NumberFormat component\n */\n currency_display?: string\n\n /**\n * Update any given provider/context properties\n */\n update?: (props: ContextProps) => void\n\n /**\n * Update any given provider/context properties, but only for the particular scope\n */\n updateCurrent?: (props: ContextProps) => void\n\n /**\n * Update the used locale from within the context\n */\n setLocale?: (locale: Locale) => void\n\n /**\n * Update the used locale from within the context, but only for the particular scope\n */\n setCurrentLocale?: (locale: Locale) => void\n\n /**\n * Set a custom translation in the Provider\n */\n locales?: Locales\n\n // -- For internal use --\n __context__?: Record<string, unknown>\n updateTranslation?: (locale: Locale, translation: Translation) => void\n getTranslation?: (props: GetTranslationProps) => Translation\n}\n\nexport type GetTranslationProps = Partial<{\n lang?: Locale | HTMLElement['lang']\n locale?: Locale\n}>\n\nexport type AnyLocale = string\nexport type Locale = AnyLocale | Partial<TranslationLocale> | 'en-US'\nexport type ComponentTranslationsName = keyof ContextComponents | string\nexport type ComponentTranslation = string\nexport type Locales = Partial<\n Record<Locale, Translation | TranslationFlat>\n>\nexport type TranslationDefaultLocales = typeof defaultLocales\nexport type TranslationLocale = keyof TranslationDefaultLocales\nexport type TranslationKeys =\n keyof TranslationDefaultLocales[TranslationLocale]\nexport type TranslationValues =\n TranslationDefaultLocales[TranslationLocale]\n\n/**\n * E.g. \"HelpButton: { title: '...' }\"\n */\nexport type Translation = DeepPartial<\n TranslationDefaultLocales[TranslationLocale]\n>\n\n/**\n * E.g. \"HelpButton.title\"\n */\nexport type TranslationFlat = Record<\n ComponentTranslationsName,\n TranslationKeys | ComponentTranslation\n>\n\ntype DeepPartial<T> = T extends object\n ? {\n [K in keyof T]?: DeepPartial<T[K]>\n }\n : T\n\nexport function prepareContext<Props>(\n props: ContextProps = {}\n): Props & ContextProps {\n const locales: Locales = props.locales\n ? extend(defaultLocales, props.locales)\n : defaultLocales\n\n if (props.__context__) {\n Object.assign(props, props.__context__)\n delete props.__context__\n }\n\n const key = handleLocaleFallbacks(props.locale || LOCALE, locales)\n const translation = locales[key] || defaultLocales[LOCALE] || {} // here we could use Object.freeze\n\n /**\n * The code above adds support for strings, defined like:\n * {\n * \"Modal.close_title\": \"Lukk\",\n * }\n */\n if (locales[key]) {\n locales[key] = destruct(locales[key] as TranslationFlat, translation)\n }\n\n const context = {\n // We may use that in future\n updateTranslation: (locale, translation) => {\n context.translation = context.locales[locale] = translation\n },\n getTranslation: (props) => {\n if (props) {\n const lang = props.lang || props.locale\n if (lang && context.locales[lang] && lang !== key) {\n return context.locales[lang]\n }\n }\n return context.translation\n },\n\n locales,\n locale: null,\n breakpoints: null,\n skeleton: null,\n\n ...props,\n\n /**\n * Make sure we set this after props, since we update this one!\n */\n translation,\n } as Props & ContextProps\n\n return context\n}\n\nfunction handleLocaleFallbacks(locale: Locale | string, locales: Locales) {\n if (!locales[locale]) {\n if (locale === 'en' || locale.split('-')[0] === 'en') {\n return 'en-GB'\n }\n }\n return locale\n}\n\n// If no provider is given, we use the default context from here\nconst Context = React.createContext<ContextProps>(\n prepareContext({\n locale: LOCALE,\n currency: CURRENCY,\n currency_display: CURRENCY_DISPLAY,\n })\n)\n\nexport default Context\n\nfunction destruct(\n source: TranslationFlat,\n validKeys: Record<string, unknown>\n): TranslationFlat {\n for (const k in source) {\n if (String(k).includes('.')) {\n const list = k.split('.')\n\n if (validKeys[list[0]]) {\n const val = source[k]\n const last = list.length - 1\n\n list.forEach((k, i) => {\n source[k] = i === last ? val : source[k]\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n source = source[k] || {}\n })\n\n // If the root object is frozen, then use this\n // let lastObj = { ...source }\n // list.forEach((k, i) => {\n // lastObj[k] = i === last ? val : lastObj[k] // we may have to create a new object here instead?\n // lastObj = lastObj[k]\n // })\n }\n }\n }\n\n return source\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export function init(): void;
2
- export const version: "10.22.0";
1
+ export declare const version = "10.24.0";
2
+ export declare function init(): void;
@@ -1,9 +1,9 @@
1
- export const version = '10.22.0';
1
+ export const version = '10.24.0';
2
2
  export function init() {
3
3
  if (typeof window !== 'undefined') {
4
4
  class Eufemia {
5
5
  get version() {
6
- return '10.22.0';
6
+ return '10.24.0';
7
7
  }
8
8
  }
9
9
  window.Eufemia = new Eufemia();
@@ -1 +1 @@
1
- {"version":3,"file":"Eufemia.js","names":["version","init","window","Eufemia"],"sources":["../../../src/shared/Eufemia.js"],"sourcesContent":["export const version = '10.22.0'\n\nexport function init() {\n if (typeof window !== 'undefined') {\n class Eufemia {\n get version() {\n return '10.22.0'\n }\n }\n\n window.Eufemia = new Eufemia()\n }\n}\n"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,SAAS;AAEhC,OAAO,SAASC,IAAIA,CAAA,EAAG;EACrB,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjC,MAAMC,OAAO,CAAC;MACZ,IAAIH,OAAOA,CAAA,EAAG;QACZ,OAAO,SAAS;MAClB;IACF;IAEAE,MAAM,CAACC,OAAO,GAAG,IAAIA,OAAO,CAAC,CAAC;EAChC;AACF"}
1
+ {"version":3,"file":"Eufemia.js","names":["version","init","window","Eufemia"],"sources":["../../../src/shared/Eufemia.ts"],"sourcesContent":["export const version = '10.24.0'\n\nexport function init() {\n if (typeof window !== 'undefined') {\n class Eufemia {\n get version() {\n return '10.24.0'\n }\n }\n\n window.Eufemia = new Eufemia()\n }\n}\n"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,SAAS;AAEhC,OAAO,SAASC,IAAIA,CAAA,EAAG;EACrB,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjC,MAAMC,OAAO,CAAC;MACZ,IAAIH,OAAOA,CAAA,EAAG;QACZ,OAAO,SAAS;MAClB;IACF;IAEAE,MAAM,CAACC,OAAO,GAAG,IAAIA,OAAO,CAAC,CAAC;EAChC;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","names":["React","Context","prepareContext","prepareFormElementContext","Provider","localProps","children","props","_objectWithoutProperties","_excluded","context","useContext","localContext","setLocalContext","useState","value","mergeContext","_objectSpread","updateTranslation","locale","translation","update","updateAll","setLocale","setAllLocale","updateCurrent","setCurrentLocale","createElement","__context__","rest","_excluded2","merge","mergedContext","formElement","FormRow"],"sources":["../../../src/shared/Provider.tsx"],"sourcesContent":["/**\n * Lib Provider\n *\n */\n\nimport React from 'react'\nimport Context, { prepareContext } from './Context'\nimport type { ContextProps } from './Context'\nimport { prepareFormElementContext } from './helpers/filterValidProps'\n\nexport type ProviderProps = {\n /**\n * Send in an object that gets spread as properties to the Provider\n */\n value?: ContextProps\n\n /**\n * The content\n */\n children: React.ReactNode\n} & ContextProps\n\nexport default function Provider<Props>(\n localProps: ProviderProps & Props\n) {\n const { children, ...props } = localProps\n\n const context = React.useContext(Context)\n const [localContext, setLocalContext] = React.useState(null)\n\n let value = mergeContext(context, { ...localContext, ...props })\n\n if (context) {\n value = prepareContext(value)\n context.updateTranslation(value.locale, value.translation)\n }\n\n value.update = updateAll\n value.setLocale = setAllLocale\n value.updateCurrent = updateCurrent\n value.setCurrentLocale = setCurrentLocale\n\n return <Context.Provider value={value}>{children}</Context.Provider>\n\n function updateCurrent(props: ContextProps) {\n setLocalContext({ __context__: props })\n }\n\n function setCurrentLocale(locale: string) {\n setLocalContext({ __context__: { locale } })\n }\n\n function setAllLocale(locale: string) {\n updateAll({ locale })\n }\n\n function updateAll(props: ContextProps) {\n if (typeof context.update === 'function') {\n context.update(props)\n }\n\n setLocalContext({ __context__: props })\n }\n}\n\ntype MergeContext = {\n FormRow?: Pick<ContextProps, 'FormRow'>\n}\ntype MergeContextProps = {\n value: ProviderProps\n} & MergeContext\n\nfunction mergeContext<ContextT, PropsT>(\n context: ContextT & ContextProps,\n props: PropsT & MergeContextProps\n) {\n // When value is given as so: <Provider value={{}} />\n const { value, ...rest } = props\n\n // Make sure we create a copy, because we add some custom methods to it\n const merge = { ...value, ...rest }\n\n // Merge our new values with an existing context\n const mergedContext = { ...context, ...merge }\n\n // Because we don't want to deep merge, we merge formElement additionally\n if (context?.formElement && merge.formElement) {\n mergedContext.formElement = {\n ...context.formElement,\n ...merge.formElement,\n }\n mergedContext.formElement = prepareFormElementContext(\n mergedContext.formElement\n )\n }\n\n // Deprecated – can be removed in v11\n if (context?.FormRow && merge.FormRow) {\n mergedContext.FormRow = {\n ...context.FormRow,\n ...merge.FormRow,\n }\n mergedContext.FormRow = prepareFormElementContext(\n mergedContext.FormRow\n )\n }\n\n return mergedContext\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Provider.js","names":["React","Context","prepareContext","prepareFormElementContext","Provider","localProps","children","props","_objectWithoutProperties","_excluded","context","useContext","localContext","setLocalContext","useState","value","mergeContext","_objectSpread","updateTranslation","locale","translation","update","updateAll","setLocale","setAllLocale","updateCurrent","setCurrentLocale","createElement","__context__","rest","_excluded2","merge","mergedContext","formElement","FormRow"],"sources":["../../../src/shared/Provider.tsx"],"sourcesContent":["/**\n * Lib Provider\n *\n */\n\nimport React from 'react'\nimport Context, { prepareContext } from './Context'\nimport type { ContextProps, Locale } from './Context'\nimport { prepareFormElementContext } from './helpers/filterValidProps'\n\nexport type ProviderProps = {\n /**\n * Send in an object that gets spread as properties to the Provider\n */\n value?: ContextProps\n\n /**\n * The content\n */\n children: React.ReactNode\n} & ContextProps\n\nexport default function Provider<Props>(\n localProps: ProviderProps & Props\n) {\n const { children, ...props } = localProps\n\n const context = React.useContext(Context)\n const [localContext, setLocalContext] = React.useState(null)\n\n let value = mergeContext(context, { ...localContext, ...props })\n\n if (context) {\n value = prepareContext(value)\n context.updateTranslation(value.locale, value.translation)\n }\n\n value.update = updateAll\n value.setLocale = setAllLocale\n value.updateCurrent = updateCurrent\n value.setCurrentLocale = setCurrentLocale\n\n return <Context.Provider value={value}>{children}</Context.Provider>\n\n function updateCurrent(props: ContextProps) {\n setLocalContext({ __context__: props })\n }\n\n function setCurrentLocale(locale: Locale) {\n setLocalContext({ __context__: { locale } })\n }\n\n function setAllLocale(locale: Locale) {\n updateAll({ locale })\n }\n\n function updateAll(props: ContextProps) {\n if (typeof context.update === 'function') {\n context.update(props)\n }\n\n setLocalContext({ __context__: props })\n }\n}\n\ntype MergeContext = {\n FormRow?: Pick<ContextProps, 'FormRow'>\n}\ntype MergeContextProps = {\n value: ProviderProps\n} & MergeContext\n\nfunction mergeContext<ContextT, PropsT>(\n context: ContextT & ContextProps,\n props: PropsT & MergeContextProps\n) {\n // When value is given as so: <Provider value={{}} />\n const { value, ...rest } = props\n\n // Make sure we create a copy, because we add some custom methods to it\n const merge = { ...value, ...rest }\n\n // Merge our new values with an existing context\n const mergedContext = { ...context, ...merge }\n\n // Because we don't want to deep merge, we merge formElement additionally\n if (context?.formElement && merge.formElement) {\n mergedContext.formElement = {\n ...context.formElement,\n ...merge.formElement,\n }\n mergedContext.formElement = prepareFormElementContext(\n mergedContext.formElement\n )\n }\n\n // Deprecated – can be removed in v11\n if (context?.FormRow && merge.FormRow) {\n mergedContext.FormRow = {\n ...context.FormRow,\n ...merge.FormRow,\n }\n mergedContext.FormRow = prepareFormElementContext(\n mergedContext.FormRow\n )\n }\n\n return mergedContext\n}\n"],"mappings":"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"}
@@ -2,6 +2,6 @@
2
2
  * DNB Eufemia Defaults
3
3
  *
4
4
  */
5
- export const LOCALE: "nb-NO";
6
- export const CURRENCY: "NOK";
7
- export const CURRENCY_DISPLAY: "code";
5
+ export declare const LOCALE = "nb-NO";
6
+ export declare const CURRENCY = "NOK";
7
+ export declare const CURRENCY_DISPLAY = "code";
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","names":["LOCALE","CURRENCY","CURRENCY_DISPLAY"],"sources":["../../../src/shared/defaults.js"],"sourcesContent":["/**\n * DNB Eufemia Defaults\n *\n */\n\nexport const LOCALE = 'nb-NO'\nexport const CURRENCY = 'NOK'\nexport const CURRENCY_DISPLAY = 'code' // code, name, symbol, narrowSymbol\n"],"mappings":"AAKA,OAAO,MAAMA,MAAM,GAAG,OAAO;AAC7B,OAAO,MAAMC,QAAQ,GAAG,KAAK;AAC7B,OAAO,MAAMC,gBAAgB,GAAG,MAAM"}
1
+ {"version":3,"file":"defaults.js","names":["LOCALE","CURRENCY","CURRENCY_DISPLAY"],"sources":["../../../src/shared/defaults.ts"],"sourcesContent":["/**\n * DNB Eufemia Defaults\n *\n */\n\nexport const LOCALE = 'nb-NO'\nexport const CURRENCY = 'NOK'\nexport const CURRENCY_DISPLAY = 'code' // code, name, symbol, narrowSymbol\n"],"mappings":"AAKA,OAAO,MAAMA,MAAM,GAAG,OAAO;AAC7B,OAAO,MAAMC,QAAQ,GAAG,KAAK;AAC7B,OAAO,MAAMC,gBAAgB,GAAG,MAAM"}
@@ -1,37 +1,28 @@
1
- /**
2
- * Debounces a function to be executed after a specified wait time.
3
- *
4
- * @param {Function} debouncedFunction - The function to be debounced.
5
- * @param {number} [wait=250] - The wait time in milliseconds before executing the debounced function.
6
- * @param {Object} [options] - Additional options for the debounced function.
7
- * @param {boolean} [options.immediate=false] - Whether to execute the debounced function immediately.
8
- * @param {Object} [options.instance=null] - The instance to bind the debounced function to.
9
- * @param {boolean} [options.async=false] - Whether to return a promise that resolves with the result of the debounced function.
10
- * @returns {Function|Promise} - The debounced function or a promise that resolves with the result of the debounced function.
11
- * @memberof helpers
12
- */
13
- export declare function debounce(debouncedFunction: any, wait?: number, { immediate, instance, async }?: {
1
+ type ReturnHelpers = {
2
+ cancel: () => void;
3
+ addCancelEvent: (fn: () => void) => () => boolean;
4
+ };
5
+ type DebouncedFunction<T extends any[], R> = (...args: T) => R;
6
+ type DebouncedOptions = {
7
+ /**
8
+ * Whether to execute the debounced function immediately.
9
+ */
14
10
  immediate?: boolean;
11
+ /**
12
+ * The instance to bind the debounced function to.
13
+ */
15
14
  instance?: any;
15
+ /**
16
+ * Whether to return a promise that resolves with the result of the debounced function.
17
+ */
16
18
  async?: boolean;
17
- }): {
18
- (...args: any[]): any;
19
- cancel: () => void;
20
- addCancelEvent: (fn: any) => () => boolean;
21
19
  };
22
20
  /**
23
21
  * Debounces a function in async to be executed after a specified wait time.
24
- *
25
- * @param {Function} debouncedFunction - The function to be debounced.
26
- * @param {number} [wait=250] - The wait time in milliseconds before executing the debounced function.
27
- * @param {Object} [options] - Additional options for the debounced function.
28
- * @param {boolean} [options.immediate=false] - Whether to execute the debounced function immediately.
29
- * @param {Object} [options.instance=null] - The instance to bind the debounced function to.
30
- * @returns {Promise} - The debounced promise that resolves with the result of the debounced function.
31
- * @memberof helpers
32
22
  */
33
- export declare function debounceAsync(debouncedFunction: any, wait?: number, opts?: any): {
34
- (...args: any[]): any;
35
- cancel: () => void;
36
- addCancelEvent: (fn: any) => () => boolean;
37
- };
23
+ export declare function debounceAsync<T extends any[], R>(debouncedFunction: DebouncedFunction<T, R>, wait?: number, opts?: Omit<DebouncedOptions, 'async'>): DebouncedFunction<T, R> & ReturnHelpers;
24
+ /**
25
+ * Debounces a function to be executed after a specified wait time.
26
+ */
27
+ export declare function debounce<T extends any[], R>(debouncedFunction: DebouncedFunction<T, R>, wait?: number, { immediate, instance, async, }?: DebouncedOptions): DebouncedFunction<T, R> & ReturnHelpers;
28
+ export {};
@@ -1,7 +1,13 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
2
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
3
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
- export function debounce(debouncedFunction, wait = 250, {
4
+ import { isAsync } from './isAsync';
5
+ export function debounceAsync(debouncedFunction, wait = 500, opts = null) {
6
+ return debounce(debouncedFunction, wait, _objectSpread(_objectSpread({}, opts), {}, {
7
+ async: true
8
+ }));
9
+ }
10
+ export function debounce(debouncedFunction, wait = 500, {
5
11
  immediate = false,
6
12
  instance = null,
7
13
  async = false
@@ -64,13 +70,19 @@ export function debounce(debouncedFunction, wait = 250, {
64
70
  }
65
71
  return recall;
66
72
  }
67
- executedFunction.cancel = cancel;
68
- executedFunction.addCancelEvent = addCancelEvent;
69
- return executedFunction;
70
- }
71
- export function debounceAsync(debouncedFunction, wait = 250, opts = null) {
72
- return debounce(debouncedFunction, wait, _objectSpread(_objectSpread({}, opts), {}, {
73
- async: true
74
- }));
73
+ function syncFunction(...args) {
74
+ return executedFunction(...args);
75
+ }
76
+ syncFunction.cancel = cancel;
77
+ syncFunction.addCancelEvent = addCancelEvent;
78
+ async function asyncFunction(...args) {
79
+ return executedFunction(...args);
80
+ }
81
+ asyncFunction.cancel = cancel;
82
+ asyncFunction.addCancelEvent = addCancelEvent;
83
+ if (isAsync(debouncedFunction)) {
84
+ return asyncFunction;
85
+ }
86
+ return syncFunction;
75
87
  }
76
88
  //# sourceMappingURL=debounce.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"debounce.js","names":["debounce","debouncedFunction","wait","immediate","instance","async","timeout","recall","resolvePromise","rejectPromise","canceled","customCancels","cancel","_resolvePromise","clearTimeout","forEach","fn","addCancelEvent","includes","push","executedFunction","args","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":";;;AAYA,OAAO,SAASA,QAAQA,CACtBC,iBAAiB,EACjBC,IAAI,GAAG,GAAG,EACV;EAAEC,SAAS,GAAG,KAAK;EAAEC,QAAQ,GAAG,IAAI;EAAEC,KAAK,GAAG;AAAM,CAAC,GAAG,CAAC,CAAC,EAC1D;EACA,IAAIC,OAAO;EACX,IAAIC,MAAM;EACV,IAAIC,cAAc;EAClB,IAAIC,aAAa;EACjB,IAAIC,QAAQ,GAAG,KAAK;EACpB,MAAMC,aAAa,GAAG,EAAE;EAExB,MAAMC,MAAM,GAAGA,CAAA,KAAM;IAAA,IAAAC,eAAA;IACnBH,QAAQ,GAAG,IAAI;IAEfI,YAAY,CAACR,OAAO,CAAC;IACrB,CAAAO,eAAA,GAAAL,cAAc,cAAAK,eAAA,uBAAdA,eAAA,CAAiB,CAAC;IAElBF,aAAa,CAACI,OAAO,CAAEC,EAAE,IAAK;MAC5BA,EAAE,CAAC,CAAC;IACN,CAAC,CAAC;EACJ,CAAC;EAED,MAAMC,cAAc,GAAID,EAAE,IAAK;IAC7B,IAAI,CAACL,aAAa,CAACO,QAAQ,CAACF,EAAE,CAAC,EAAE;MAC/BL,aAAa,CAACQ,IAAI,CAACH,EAAE,CAAC;IACxB;IAEA,OAAO,MAAM;MACX,OAAON,QAAQ;IACjB,CAAC;EACH,CAAC;EAED,SAASU,gBAAgBA,CAAC,GAAGC,IAAI,EAAE;IACjC,IAAI,OAAOd,MAAM,KAAK,UAAU,EAAE;MAChCA,MAAM,CAAC,CAAC;IACV;IAEAG,QAAQ,GAAG,KAAK;IAEhB,MAAMY,IAAI,GAAGlB,QAAQ,IAAI,IAAI,IAAI,CAAC,CAAC;IACnCkB,IAAI,CAACV,MAAM,GAAGA,MAAM;IACpBU,IAAI,CAACL,cAAc,GAAGA,cAAc;IAEpC,MAAMM,KAAK,GAAIC,OAAO,IAAK;MACzBlB,OAAO,GAAG,IAAI;MACd,IAAIkB,OAAO,IAAI,CAACrB,SAAS,EAAE;QACzB,IAAI;UAAA,IAAAsB,gBAAA;UACFlB,MAAM,GAAGN,iBAAiB,CAACyB,KAAK,CAACJ,IAAI,EAAED,IAAI,CAAC;UAC5C,CAAAI,gBAAA,GAAAjB,cAAc,cAAAiB,gBAAA,uBAAdA,gBAAA,CAAiBlB,MAAM,CAAC;QAC1B,CAAC,CAAC,OAAOoB,KAAK,EAAE;UAAA,IAAAC,cAAA;UACd,CAAAA,cAAA,GAAAnB,aAAa,cAAAmB,cAAA,uBAAbA,cAAA,CAAgBD,KAAK,CAAC;QACxB;MACF;IACF,CAAC;IAED,MAAMH,OAAO,GAAGrB,SAAS,IAAI,CAACG,OAAO;IAErCQ,YAAY,CAACR,OAAO,CAAC;IACrBA,OAAO,GAAGuB,UAAU,CAACN,KAAK,EAAErB,IAAI,CAAC;IAEjC,IAAIsB,OAAO,EAAE;MACXD,KAAK,CAAC,IAAI,CAAC;IACb;IAEA,IAAIlB,KAAK,EAAE;MACT,OAAO,IAAIyB,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;QACtCxB,cAAc,GAAGuB,OAAO;QACxBtB,aAAa,GAAGuB,MAAM;MACxB,CAAC,CAAC;IACJ;IAEA,OAAOzB,MAAM;EACf;EAEAa,gBAAgB,CAACR,MAAM,GAAGA,MAAM;EAChCQ,gBAAgB,CAACH,cAAc,GAAGA,cAAc;EAEhD,OAAOG,gBAAgB;AACzB;AAaA,OAAO,SAASa,aAAaA,CAAChC,iBAAiB,EAAEC,IAAI,GAAG,GAAG,EAAEgC,IAAI,GAAG,IAAI,EAAE;EACxE,OAAOlC,QAAQ,CAACC,iBAAiB,EAAEC,IAAI,EAAAiC,aAAA,CAAAA,aAAA,KAAOD,IAAI;IAAE7B,KAAK,EAAE;EAAI,EAAE,CAAC;AACpE"}
1
+ {"version":3,"file":"debounce.js","names":["isAsync","debounceAsync","debouncedFunction","wait","opts","debounce","_objectSpread","async","immediate","instance","timeout","recall","resolvePromise","rejectPromise","canceled","customCancels","cancel","_resolvePromise","clearTimeout","forEach","fn","addCancelEvent","includes","push","executedFunction","args","inst","later","callNow","_resolvePromise2","apply","error","_rejectPromise","setTimeout","Promise","resolve","reject","syncFunction","asyncFunction"],"sources":["../../../../src/shared/helpers/debounce.ts"],"sourcesContent":["import { isAsync } from './isAsync'\n\ntype ReturnHelpers = {\n cancel: () => void\n addCancelEvent: (fn: () => void) => () => boolean\n}\ntype DebouncedFunction<T extends any[], R> = (...args: T) => R\ntype DebouncedOptions = {\n /**\n * Whether to execute the debounced function immediately.\n */\n immediate?: boolean\n\n /**\n * The instance to bind the debounced function to.\n */\n instance?: any\n\n /**\n * Whether to return a promise that resolves with the result of the debounced function.\n */\n async?: boolean\n}\n\n/**\n * Debounces a function in async to be executed after a specified wait time.\n */\nexport function debounceAsync<T extends any[], R>(\n debouncedFunction: DebouncedFunction<T, R>,\n wait = 500,\n opts: Omit<DebouncedOptions, 'async'> = null\n): DebouncedFunction<T, R> & ReturnHelpers {\n return debounce<T, R>(debouncedFunction, wait, { ...opts, async: true })\n}\n\n/**\n * Debounces a function to be executed after a specified wait time.\n */\nexport function debounce<T extends any[], R>(\n debouncedFunction: DebouncedFunction<T, R>,\n wait = 500,\n {\n immediate = false,\n instance = null,\n async = false,\n }: DebouncedOptions = {}\n): DebouncedFunction<T, R> & ReturnHelpers {\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: T) {\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 // Sync\n function syncFunction(...args: T) {\n return executedFunction(...args)\n }\n syncFunction.cancel = cancel\n syncFunction.addCancelEvent = addCancelEvent\n\n // Async return\n async function asyncFunction(...args: T) {\n return executedFunction(...args)\n }\n asyncFunction.cancel = cancel\n asyncFunction.addCancelEvent = addCancelEvent\n\n if (isAsync(debouncedFunction)) {\n return asyncFunction as DebouncedFunction<T, R> & ReturnHelpers\n }\n\n return syncFunction\n}\n"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Checks if a function is asynchronous.
3
+ *
4
+ * @param fn - The function to check.
5
+ * @returns `true` if the function is asynchronous, `false` otherwise.
6
+ */
7
+ export declare function isAsync(fn: unknown): boolean;
@@ -0,0 +1,14 @@
1
+ export function isAsync(fn) {
2
+ var _fn, _fn$n, _fn2, _fn2$constructor;
3
+ const n = 'getMockImplementation';
4
+ if ((_fn = fn) !== null && _fn !== void 0 && (_fn$n = _fn[n]) !== null && _fn$n !== void 0 && _fn$n.call(_fn)) {
5
+ fn = fn[n]();
6
+ }
7
+ const firstCheck = fn instanceof (async () => null).constructor;
8
+ const secondCheck = ((_fn2 = fn) === null || _fn2 === void 0 ? void 0 : (_fn2$constructor = _fn2.constructor) === null || _fn2$constructor === void 0 ? void 0 : _fn2$constructor.name) === 'AsyncFunction';
9
+ if (firstCheck !== secondCheck) {
10
+ return true;
11
+ }
12
+ return firstCheck;
13
+ }
14
+ //# sourceMappingURL=isAsync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isAsync.js","names":["isAsync","fn","_fn","_fn$n","_fn2","_fn2$constructor","n","call","firstCheck","constructor","secondCheck","name"],"sources":["../../../../src/shared/helpers/isAsync.ts"],"sourcesContent":["/**\n * Checks if a function is asynchronous.\n *\n * @param fn - The function to check.\n * @returns `true` if the function is asynchronous, `false` otherwise.\n */\nexport function isAsync(fn: unknown): boolean {\n // Support for jest.fn\n const n = 'getMockImplementation'\n if (fn?.[n]?.()) {\n fn = fn[n]()\n }\n\n const firstCheck = fn instanceof (async () => null).constructor\n const secondCheck = fn?.constructor?.name === 'AsyncFunction'\n\n if (firstCheck !== secondCheck) {\n // Storybook has a problem with async functions.\n // E.g. \"fn?.constructor?.name === 'AsyncFunction'\" logic returns always \"Function\" instead of \"AsyncFunction\"\n // Even this \"Object.prototype.toString.call(fn) === '[object AsyncFunction]'\" logic returns always \"false\" in Storybook.\n // The issue persists with \"instanceof\" logic, where it returns \"true\" for non-async functions.\n // As of now, we rather want to return true in that situation.\n return true\n }\n\n return firstCheck\n}\n"],"mappings":"AAMA,OAAO,SAASA,OAAOA,CAACC,EAAW,EAAW;EAAA,IAAAC,GAAA,EAAAC,KAAA,EAAAC,IAAA,EAAAC,gBAAA;EAE5C,MAAMC,CAAC,GAAG,uBAAuB;EACjC,KAAAJ,GAAA,GAAID,EAAE,cAAAC,GAAA,gBAAAC,KAAA,GAAFD,GAAA,CAAKI,CAAC,CAAC,cAAAH,KAAA,eAAPA,KAAA,CAAAI,IAAA,CAAAL,GAAU,CAAC,EAAE;IACfD,EAAE,GAAGA,EAAE,CAACK,CAAC,CAAC,CAAC,CAAC;EACd;EAEA,MAAME,UAAU,GAAGP,EAAE,YAAY,CAAC,YAAY,IAAI,EAAEQ,WAAW;EAC/D,MAAMC,WAAW,GAAG,EAAAN,IAAA,GAAAH,EAAE,cAAAG,IAAA,wBAAAC,gBAAA,GAAFD,IAAA,CAAIK,WAAW,cAAAJ,gBAAA,uBAAfA,gBAAA,CAAiBM,IAAI,MAAK,eAAe;EAE7D,IAAIH,UAAU,KAAKE,WAAW,EAAE;IAM9B,OAAO,IAAI;EACb;EAEA,OAAOF,UAAU;AACnB"}
@@ -0,0 +1,8 @@
1
+ declare global {
2
+ interface Window {
3
+ Eufemia?: {
4
+ version: string;
5
+ };
6
+ }
7
+ }
8
+ export declare function runCssVersionMismatchWarning(): void;