@dnb/eufemia 10.31.0 → 10.33.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 (846) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/cjs/components/anchor/Anchor.d.ts +8 -1
  3. package/cjs/components/anchor/Anchor.js.map +1 -1
  4. package/cjs/components/card/Card.js +3 -2
  5. package/cjs/components/card/Card.js.map +1 -1
  6. package/cjs/components/card/style/dnb-card.css +1 -2
  7. package/cjs/components/card/style/dnb-card.min.css +1 -1
  8. package/cjs/components/card/style/themes/dnb-card-theme-sbanken.css +5 -0
  9. package/cjs/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -0
  10. package/cjs/components/card/style/themes/dnb-card-theme-sbanken.scss +7 -0
  11. package/cjs/components/checkbox/style/dnb-checkbox.css +2 -2
  12. package/cjs/components/checkbox/style/dnb-checkbox.min.css +1 -1
  13. package/cjs/components/checkbox/style/dnb-checkbox.scss +2 -3
  14. package/cjs/components/flex/Container.d.ts +4 -1
  15. package/cjs/components/flex/Container.js +8 -5
  16. package/cjs/components/flex/Container.js.map +1 -1
  17. package/cjs/components/flex/Stack.js +3 -3
  18. package/cjs/components/flex/Stack.js.map +1 -1
  19. package/cjs/components/flex/utils.js +7 -7
  20. package/cjs/components/flex/utils.js.map +1 -1
  21. package/cjs/components/grid/Container.d.ts +2 -2
  22. package/cjs/components/grid/Container.js.map +1 -1
  23. package/cjs/components/grid/ContainerDocs.d.ts +2 -0
  24. package/cjs/components/grid/ContainerDocs.js +30 -0
  25. package/cjs/components/grid/ContainerDocs.js.map +1 -0
  26. package/cjs/components/grid/style/dnb-grid.css +6 -0
  27. package/cjs/components/grid/style/dnb-grid.min.css +1 -1
  28. package/cjs/components/grid/style/grid-container.scss +6 -0
  29. package/cjs/components/skeleton/style/dnb-skeleton.css +4 -8
  30. package/cjs/components/skeleton/style/dnb-skeleton.min.css +1 -1
  31. package/cjs/components/slider/SliderDocs.d.ts +3 -0
  32. package/cjs/components/slider/SliderDocs.js +158 -0
  33. package/cjs/components/slider/SliderDocs.js.map +1 -0
  34. package/cjs/components/space/SpacingUtils.d.ts +1 -1
  35. package/cjs/components/space/SpacingUtils.js +1 -1
  36. package/cjs/components/space/SpacingUtils.js.map +1 -1
  37. package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.css +70 -0
  38. package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.min.css +1 -0
  39. package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.scss +97 -0
  40. package/cjs/components/switch/style/themes/dnb-switch-theme-ui.css +1 -2
  41. package/cjs/components/switch/style/themes/dnb-switch-theme-ui.min.css +1 -1
  42. package/cjs/components/table/style/dnb-table.css +5 -10
  43. package/cjs/components/table/style/dnb-table.min.css +1 -1
  44. package/cjs/components/visually-hidden/style/dnb-visually-hidden.css +1 -2
  45. package/cjs/components/visually-hidden/style/dnb-visually-hidden.min.css +1 -1
  46. package/cjs/extensions/forms/DataContext/Context.d.ts +26 -14
  47. package/cjs/extensions/forms/DataContext/Context.js +2 -3
  48. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  49. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
  50. package/cjs/extensions/forms/DataContext/Provider/Provider.js +81 -35
  51. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  52. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +3 -3
  53. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  54. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +1 -1
  55. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +3 -3
  56. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  57. package/cjs/extensions/forms/Field/Boolean/Boolean.js +2 -1
  58. package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  59. package/cjs/extensions/forms/Field/Composition/Composition.d.ts +2 -2
  60. package/cjs/extensions/forms/Field/Composition/Composition.js.map +1 -1
  61. package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js +7 -7
  62. package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
  63. package/cjs/extensions/forms/Field/Number/Number.js +6 -4
  64. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  65. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +1 -1
  66. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  67. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +2 -2
  68. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +2 -2
  69. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  70. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -4
  71. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  72. package/cjs/extensions/forms/Field/Selection/Selection.js +3 -3
  73. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  74. package/cjs/extensions/forms/Field/Slider/Slider.d.ts +34 -0
  75. package/cjs/extensions/forms/Field/Slider/Slider.js +115 -0
  76. package/cjs/extensions/forms/Field/Slider/Slider.js.map +1 -0
  77. package/cjs/extensions/forms/Field/Slider/SliderDocs.d.ts +3 -0
  78. package/cjs/extensions/forms/Field/Slider/SliderDocs.js +34 -0
  79. package/cjs/extensions/forms/Field/Slider/SliderDocs.js.map +1 -0
  80. package/cjs/extensions/forms/Field/Slider/index.d.ts +2 -0
  81. package/cjs/extensions/forms/Field/Slider/index.js +27 -0
  82. package/cjs/extensions/forms/Field/Slider/index.js.map +1 -0
  83. package/cjs/extensions/forms/Field/String/String.js +2 -2
  84. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  85. package/cjs/extensions/forms/Field/Toggle/Toggle.js +7 -7
  86. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  87. package/cjs/extensions/forms/Field/index.d.ts +1 -0
  88. package/cjs/extensions/forms/Field/index.js +7 -0
  89. package/cjs/extensions/forms/Field/index.js.map +1 -1
  90. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
  91. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +5 -0
  92. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  93. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +0 -3
  94. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  95. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +0 -2
  96. package/cjs/extensions/forms/Form/Element/Element.js +1 -1
  97. package/cjs/extensions/forms/Form/Element/Element.js.map +1 -1
  98. package/cjs/extensions/forms/Form/FieldProps/FieldProps.d.ts +19 -5
  99. package/cjs/extensions/forms/Form/FieldProps/FieldProps.js +52 -21
  100. package/cjs/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -1
  101. package/cjs/extensions/forms/Form/FieldProps/FieldPropsContext.d.ts +1 -0
  102. package/cjs/extensions/forms/Form/FieldProps/FieldPropsContext.js.map +1 -1
  103. package/cjs/extensions/forms/Form/Section/Section.d.ts +44 -0
  104. package/cjs/extensions/forms/Form/Section/Section.js +67 -0
  105. package/cjs/extensions/forms/Form/Section/Section.js.map +1 -0
  106. package/cjs/extensions/forms/Form/Section/SectionContext.d.ts +11 -0
  107. package/cjs/extensions/forms/Form/Section/SectionContext.js +12 -0
  108. package/cjs/extensions/forms/Form/Section/SectionContext.js.map +1 -0
  109. package/cjs/extensions/forms/Form/Section/SectionDocs.d.ts +3 -0
  110. package/cjs/extensions/forms/Form/Section/SectionDocs.js +43 -0
  111. package/cjs/extensions/forms/Form/Section/SectionDocs.js.map +1 -0
  112. package/cjs/extensions/forms/Form/Section/index.d.ts +2 -0
  113. package/cjs/extensions/forms/Form/Section/index.js +27 -0
  114. package/cjs/extensions/forms/Form/Section/index.js.map +1 -0
  115. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
  116. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  117. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +19 -5
  118. package/cjs/extensions/forms/Form/Visibility/Visibility.js +47 -10
  119. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  120. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +11 -6
  121. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  122. package/cjs/extensions/forms/Form/data-context/useData.d.ts +1 -1
  123. package/cjs/extensions/forms/Form/data-context/useData.js +8 -4
  124. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  125. package/cjs/extensions/forms/Form/data-context/useError.d.ts +1 -0
  126. package/cjs/extensions/forms/Form/data-context/useError.js +5 -3
  127. package/cjs/extensions/forms/Form/data-context/useError.js.map +1 -1
  128. package/cjs/extensions/forms/Form/index.d.ts +1 -0
  129. package/cjs/extensions/forms/Form/index.js +7 -0
  130. package/cjs/extensions/forms/Form/index.js.map +1 -1
  131. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +8 -1
  132. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -3
  133. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  134. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -1
  135. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  136. package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
  137. package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  138. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +1 -1
  139. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  140. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js +1 -1
  141. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  142. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  143. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  144. package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
  145. package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  146. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +2 -1
  147. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  148. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  149. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  150. package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
  151. package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  152. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.css +3 -1
  153. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  154. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.scss +4 -1
  155. package/cjs/extensions/forms/Tools/GenerateSchema.d.ts +19 -0
  156. package/cjs/extensions/forms/Tools/GenerateSchema.js +143 -0
  157. package/cjs/extensions/forms/Tools/GenerateSchema.js.map +1 -0
  158. package/cjs/extensions/forms/Tools/ListAllProps.d.ts +15 -0
  159. package/cjs/extensions/forms/Tools/ListAllProps.js +73 -0
  160. package/cjs/extensions/forms/Tools/ListAllProps.js.map +1 -0
  161. package/cjs/extensions/forms/Tools/index.d.ts +2 -0
  162. package/cjs/extensions/forms/Tools/index.js +21 -0
  163. package/cjs/extensions/forms/Tools/index.js.map +1 -0
  164. package/cjs/extensions/forms/Value/Number/Number.js +4 -2
  165. package/cjs/extensions/forms/Value/Number/Number.js.map +1 -1
  166. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +4 -2
  167. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  168. package/cjs/extensions/forms/Wizard/Container/WizardContainer.d.ts +31 -2
  169. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +102 -32
  170. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  171. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
  172. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  173. package/cjs/extensions/forms/Wizard/Step/Step.d.ts +6 -1
  174. package/cjs/extensions/forms/Wizard/Step/Step.js +9 -5
  175. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  176. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css +0 -1
  177. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  178. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -1
  179. package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.css +1 -0
  180. package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.min.css +0 -0
  181. package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.scss +1 -0
  182. package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.css +3 -0
  183. package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.min.css +1 -0
  184. package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.scss +7 -0
  185. package/cjs/extensions/forms/blocks/Category/FirstBlock/FirstBlock.d.ts +2 -0
  186. package/cjs/extensions/forms/blocks/Category/FirstBlock/FirstBlock.js +46 -0
  187. package/cjs/extensions/forms/blocks/Category/FirstBlock/FirstBlock.js.map +1 -0
  188. package/cjs/extensions/forms/blocks/Category/FirstBlock/index.d.ts +2 -0
  189. package/cjs/extensions/forms/blocks/Category/FirstBlock/index.js +27 -0
  190. package/cjs/extensions/forms/blocks/Category/FirstBlock/index.js.map +1 -0
  191. package/cjs/extensions/forms/blocks/Category/index.d.ts +1 -0
  192. package/cjs/extensions/forms/blocks/Category/index.js +14 -0
  193. package/cjs/extensions/forms/blocks/Category/index.js.map +1 -0
  194. package/cjs/extensions/forms/blocks/index.d.ts +1 -0
  195. package/cjs/extensions/forms/blocks/index.js +11 -0
  196. package/cjs/extensions/forms/blocks/index.js.map +1 -0
  197. package/cjs/extensions/forms/hooks/index.d.ts +2 -5
  198. package/cjs/extensions/forms/hooks/index.js +12 -4
  199. package/cjs/extensions/forms/hooks/index.js.map +1 -1
  200. package/cjs/extensions/forms/hooks/useDataValue.d.ts +9 -0
  201. package/cjs/extensions/forms/hooks/useDataValue.js +39 -0
  202. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -0
  203. package/cjs/extensions/forms/hooks/useExternalValue.d.ts +12 -0
  204. package/cjs/extensions/forms/hooks/useExternalValue.js +47 -0
  205. package/cjs/extensions/forms/hooks/useExternalValue.js.map +1 -0
  206. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +1 -10
  207. package/cjs/extensions/forms/hooks/useFieldProps.js +126 -108
  208. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  209. package/cjs/extensions/forms/hooks/usePath.d.ts +14 -0
  210. package/cjs/extensions/forms/hooks/usePath.js +72 -0
  211. package/cjs/extensions/forms/hooks/usePath.js.map +1 -0
  212. package/cjs/extensions/forms/hooks/useValueProps.js +17 -4
  213. package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
  214. package/cjs/extensions/forms/index.d.ts +2 -0
  215. package/cjs/extensions/forms/index.js +4 -1
  216. package/cjs/extensions/forms/index.js.map +1 -1
  217. package/cjs/extensions/forms/style/dnb-forms.css +3 -5
  218. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  219. package/cjs/extensions/forms/types.d.ts +10 -3
  220. package/cjs/extensions/forms/types.js.map +1 -1
  221. package/cjs/fragments/drawer-list/DrawerListHelpers.js +6 -2
  222. package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  223. package/cjs/shared/Context.d.ts +3 -3
  224. package/cjs/shared/Context.js +8 -8
  225. package/cjs/shared/Context.js.map +1 -1
  226. package/cjs/shared/Eufemia.d.ts +1 -1
  227. package/cjs/shared/Eufemia.js +2 -2
  228. package/cjs/shared/Eufemia.js.map +1 -1
  229. package/cjs/shared/MediaQuery.js +19 -1
  230. package/cjs/shared/MediaQuery.js.map +1 -1
  231. package/cjs/shared/MediaQueryUtils.d.ts +12 -34
  232. package/cjs/shared/MediaQueryUtils.js +22 -12
  233. package/cjs/shared/MediaQueryUtils.js.map +1 -1
  234. package/cjs/shared/component-helper.d.ts +1 -1
  235. package/cjs/shared/component-helper.js +5 -1
  236. package/cjs/shared/component-helper.js.map +1 -1
  237. package/cjs/shared/useMedia.d.ts +7 -2
  238. package/cjs/shared/useMedia.js +16 -11
  239. package/cjs/shared/useMedia.js.map +1 -1
  240. package/cjs/shared/useMediaQuery.js +30 -9
  241. package/cjs/shared/useMediaQuery.js.map +1 -1
  242. package/cjs/style/core/scopes.scss +1 -1
  243. package/cjs/style/dnb-ui-basis.css +2 -3
  244. package/cjs/style/dnb-ui-basis.min.css +1 -1
  245. package/cjs/style/dnb-ui-body.css +1 -1
  246. package/cjs/style/dnb-ui-body.min.css +1 -1
  247. package/cjs/style/dnb-ui-components.css +22 -29
  248. package/cjs/style/dnb-ui-components.min.css +3 -3
  249. package/cjs/style/dnb-ui-core.css +2 -3
  250. package/cjs/style/dnb-ui-core.min.css +1 -1
  251. package/cjs/style/dnb-ui-extensions.css +3 -5
  252. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  253. package/cjs/style/dnb-ui-forms.css +3 -5
  254. package/cjs/style/dnb-ui-forms.min.css +1 -1
  255. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +30 -36
  256. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  257. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +7 -5
  258. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
  259. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
  260. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +7 -5
  261. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
  262. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
  263. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +103 -112
  264. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
  265. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
  266. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +4 -5
  267. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  268. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
  269. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +4 -5
  270. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  271. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
  272. package/cjs/style/themes/theme-ui/ui-theme-components.css +30 -36
  273. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +5 -5
  274. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +7 -5
  275. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
  276. package/cjs/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
  277. package/cjs/style/themes/theme-ui/ui-theme-forms.css +7 -5
  278. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
  279. package/cjs/style/themes/theme-ui/ui-theme-forms.scss +1 -0
  280. package/components/anchor/Anchor.d.ts +8 -1
  281. package/components/anchor/Anchor.js.map +1 -1
  282. package/components/card/Card.js +3 -2
  283. package/components/card/Card.js.map +1 -1
  284. package/components/card/style/dnb-card.css +1 -2
  285. package/components/card/style/dnb-card.min.css +1 -1
  286. package/components/card/style/themes/dnb-card-theme-sbanken.css +5 -0
  287. package/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -0
  288. package/components/card/style/themes/dnb-card-theme-sbanken.scss +7 -0
  289. package/components/checkbox/style/dnb-checkbox.css +2 -2
  290. package/components/checkbox/style/dnb-checkbox.min.css +1 -1
  291. package/components/checkbox/style/dnb-checkbox.scss +2 -3
  292. package/components/flex/Container.d.ts +4 -1
  293. package/components/flex/Container.js +8 -5
  294. package/components/flex/Container.js.map +1 -1
  295. package/components/flex/Stack.js +3 -3
  296. package/components/flex/Stack.js.map +1 -1
  297. package/components/flex/utils.js +8 -8
  298. package/components/flex/utils.js.map +1 -1
  299. package/components/grid/Container.d.ts +2 -2
  300. package/components/grid/Container.js.map +1 -1
  301. package/components/grid/ContainerDocs.d.ts +2 -0
  302. package/components/grid/ContainerDocs.js +23 -0
  303. package/components/grid/ContainerDocs.js.map +1 -0
  304. package/components/grid/style/dnb-grid.css +6 -0
  305. package/components/grid/style/dnb-grid.min.css +1 -1
  306. package/components/grid/style/grid-container.scss +6 -0
  307. package/components/skeleton/style/dnb-skeleton.css +4 -8
  308. package/components/skeleton/style/dnb-skeleton.min.css +1 -1
  309. package/components/slider/SliderDocs.d.ts +3 -0
  310. package/components/slider/SliderDocs.js +150 -0
  311. package/components/slider/SliderDocs.js.map +1 -0
  312. package/components/space/SpacingUtils.d.ts +1 -1
  313. package/components/space/SpacingUtils.js +1 -1
  314. package/components/space/SpacingUtils.js.map +1 -1
  315. package/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.css +70 -0
  316. package/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.min.css +1 -0
  317. package/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.scss +97 -0
  318. package/components/switch/style/themes/dnb-switch-theme-ui.css +1 -2
  319. package/components/switch/style/themes/dnb-switch-theme-ui.min.css +1 -1
  320. package/components/table/style/dnb-table.css +5 -10
  321. package/components/table/style/dnb-table.min.css +1 -1
  322. package/components/visually-hidden/style/dnb-visually-hidden.css +1 -2
  323. package/components/visually-hidden/style/dnb-visually-hidden.min.css +1 -1
  324. package/es/components/anchor/Anchor.d.ts +8 -1
  325. package/es/components/anchor/Anchor.js.map +1 -1
  326. package/es/components/card/Card.js +3 -2
  327. package/es/components/card/Card.js.map +1 -1
  328. package/es/components/card/style/dnb-card.css +1 -2
  329. package/es/components/card/style/dnb-card.min.css +1 -1
  330. package/es/components/card/style/themes/dnb-card-theme-sbanken.css +5 -0
  331. package/es/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -0
  332. package/es/components/card/style/themes/dnb-card-theme-sbanken.scss +7 -0
  333. package/es/components/checkbox/style/dnb-checkbox.css +2 -2
  334. package/es/components/checkbox/style/dnb-checkbox.min.css +1 -1
  335. package/es/components/checkbox/style/dnb-checkbox.scss +2 -3
  336. package/es/components/flex/Container.d.ts +4 -1
  337. package/es/components/flex/Container.js +8 -5
  338. package/es/components/flex/Container.js.map +1 -1
  339. package/es/components/flex/Stack.js +3 -3
  340. package/es/components/flex/Stack.js.map +1 -1
  341. package/es/components/flex/utils.js +8 -8
  342. package/es/components/flex/utils.js.map +1 -1
  343. package/es/components/grid/Container.d.ts +2 -2
  344. package/es/components/grid/Container.js.map +1 -1
  345. package/es/components/grid/ContainerDocs.d.ts +2 -0
  346. package/es/components/grid/ContainerDocs.js +23 -0
  347. package/es/components/grid/ContainerDocs.js.map +1 -0
  348. package/es/components/grid/style/dnb-grid.css +6 -0
  349. package/es/components/grid/style/dnb-grid.min.css +1 -1
  350. package/es/components/grid/style/grid-container.scss +6 -0
  351. package/es/components/skeleton/style/dnb-skeleton.css +4 -8
  352. package/es/components/skeleton/style/dnb-skeleton.min.css +1 -1
  353. package/es/components/slider/SliderDocs.d.ts +3 -0
  354. package/es/components/slider/SliderDocs.js +150 -0
  355. package/es/components/slider/SliderDocs.js.map +1 -0
  356. package/es/components/space/SpacingUtils.d.ts +1 -1
  357. package/es/components/space/SpacingUtils.js +1 -1
  358. package/es/components/space/SpacingUtils.js.map +1 -1
  359. package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.css +70 -0
  360. package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.min.css +1 -0
  361. package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.scss +97 -0
  362. package/es/components/switch/style/themes/dnb-switch-theme-ui.css +1 -2
  363. package/es/components/switch/style/themes/dnb-switch-theme-ui.min.css +1 -1
  364. package/es/components/table/style/dnb-table.css +5 -10
  365. package/es/components/table/style/dnb-table.min.css +1 -1
  366. package/es/components/visually-hidden/style/dnb-visually-hidden.css +1 -2
  367. package/es/components/visually-hidden/style/dnb-visually-hidden.min.css +1 -1
  368. package/es/extensions/forms/DataContext/Context.d.ts +26 -14
  369. package/es/extensions/forms/DataContext/Context.js +2 -3
  370. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  371. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
  372. package/es/extensions/forms/DataContext/Provider/Provider.js +79 -34
  373. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  374. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +3 -3
  375. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  376. package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +1 -1
  377. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +3 -3
  378. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  379. package/es/extensions/forms/Field/Boolean/Boolean.js +2 -1
  380. package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  381. package/es/extensions/forms/Field/Composition/Composition.d.ts +2 -2
  382. package/es/extensions/forms/Field/Composition/Composition.js.map +1 -1
  383. package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js +7 -7
  384. package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
  385. package/es/extensions/forms/Field/Number/Number.js +6 -4
  386. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  387. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +1 -1
  388. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  389. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +2 -2
  390. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +2 -2
  391. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  392. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -4
  393. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  394. package/es/extensions/forms/Field/Selection/Selection.js +3 -3
  395. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  396. package/es/extensions/forms/Field/Slider/Slider.d.ts +34 -0
  397. package/es/extensions/forms/Field/Slider/Slider.js +103 -0
  398. package/es/extensions/forms/Field/Slider/Slider.js.map +1 -0
  399. package/es/extensions/forms/Field/Slider/SliderDocs.d.ts +3 -0
  400. package/es/extensions/forms/Field/Slider/SliderDocs.js +26 -0
  401. package/es/extensions/forms/Field/Slider/SliderDocs.js.map +1 -0
  402. package/es/extensions/forms/Field/Slider/index.d.ts +2 -0
  403. package/es/extensions/forms/Field/Slider/index.js +3 -0
  404. package/es/extensions/forms/Field/Slider/index.js.map +1 -0
  405. package/es/extensions/forms/Field/String/String.js +2 -2
  406. package/es/extensions/forms/Field/String/String.js.map +1 -1
  407. package/es/extensions/forms/Field/Toggle/Toggle.js +7 -7
  408. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  409. package/es/extensions/forms/Field/index.d.ts +1 -0
  410. package/es/extensions/forms/Field/index.js +1 -0
  411. package/es/extensions/forms/Field/index.js.map +1 -1
  412. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
  413. package/es/extensions/forms/FieldBlock/FieldBlock.js +5 -0
  414. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  415. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +0 -3
  416. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  417. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +0 -2
  418. package/es/extensions/forms/Form/Element/Element.js +1 -1
  419. package/es/extensions/forms/Form/Element/Element.js.map +1 -1
  420. package/es/extensions/forms/Form/FieldProps/FieldProps.d.ts +19 -5
  421. package/es/extensions/forms/Form/FieldProps/FieldProps.js +49 -21
  422. package/es/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -1
  423. package/es/extensions/forms/Form/FieldProps/FieldPropsContext.d.ts +1 -0
  424. package/es/extensions/forms/Form/FieldProps/FieldPropsContext.js.map +1 -1
  425. package/es/extensions/forms/Form/Section/Section.d.ts +44 -0
  426. package/es/extensions/forms/Form/Section/Section.js +56 -0
  427. package/es/extensions/forms/Form/Section/Section.js.map +1 -0
  428. package/es/extensions/forms/Form/Section/SectionContext.d.ts +11 -0
  429. package/es/extensions/forms/Form/Section/SectionContext.js +4 -0
  430. package/es/extensions/forms/Form/Section/SectionContext.js.map +1 -0
  431. package/es/extensions/forms/Form/Section/SectionDocs.d.ts +3 -0
  432. package/es/extensions/forms/Form/Section/SectionDocs.js +35 -0
  433. package/es/extensions/forms/Form/Section/SectionDocs.js.map +1 -0
  434. package/es/extensions/forms/Form/Section/index.d.ts +2 -0
  435. package/es/extensions/forms/Form/Section/index.js +3 -0
  436. package/es/extensions/forms/Form/Section/index.js.map +1 -0
  437. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
  438. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  439. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +19 -5
  440. package/es/extensions/forms/Form/Visibility/Visibility.js +48 -11
  441. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  442. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +11 -6
  443. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  444. package/es/extensions/forms/Form/data-context/useData.d.ts +1 -1
  445. package/es/extensions/forms/Form/data-context/useData.js +7 -4
  446. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  447. package/es/extensions/forms/Form/data-context/useError.d.ts +1 -0
  448. package/es/extensions/forms/Form/data-context/useError.js +5 -3
  449. package/es/extensions/forms/Form/data-context/useError.js.map +1 -1
  450. package/es/extensions/forms/Form/index.d.ts +1 -0
  451. package/es/extensions/forms/Form/index.js +1 -0
  452. package/es/extensions/forms/Form/index.js.map +1 -1
  453. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +8 -1
  454. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -3
  455. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  456. package/es/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -1
  457. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  458. package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
  459. package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  460. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +1 -1
  461. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  462. package/es/extensions/forms/Iterate/PushButton/PushButton.js +1 -1
  463. package/es/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  464. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  465. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  466. package/es/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
  467. package/es/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  468. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +2 -1
  469. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  470. package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  471. package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  472. package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
  473. package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  474. package/es/extensions/forms/Iterate/style/dnb-form-iterate.css +3 -1
  475. package/es/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  476. package/es/extensions/forms/Iterate/style/dnb-form-iterate.scss +4 -1
  477. package/es/extensions/forms/Tools/GenerateSchema.d.ts +19 -0
  478. package/es/extensions/forms/Tools/GenerateSchema.js +130 -0
  479. package/es/extensions/forms/Tools/GenerateSchema.js.map +1 -0
  480. package/es/extensions/forms/Tools/ListAllProps.d.ts +15 -0
  481. package/es/extensions/forms/Tools/ListAllProps.js +65 -0
  482. package/es/extensions/forms/Tools/ListAllProps.js.map +1 -0
  483. package/es/extensions/forms/Tools/index.d.ts +2 -0
  484. package/es/extensions/forms/Tools/index.js +3 -0
  485. package/es/extensions/forms/Tools/index.js.map +1 -0
  486. package/es/extensions/forms/Value/Number/Number.js +4 -2
  487. package/es/extensions/forms/Value/Number/Number.js.map +1 -1
  488. package/es/extensions/forms/ValueBlock/ValueBlock.js +4 -2
  489. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  490. package/es/extensions/forms/Wizard/Container/WizardContainer.d.ts +31 -2
  491. package/es/extensions/forms/Wizard/Container/WizardContainer.js +98 -32
  492. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  493. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
  494. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  495. package/es/extensions/forms/Wizard/Step/Step.d.ts +6 -1
  496. package/es/extensions/forms/Wizard/Step/Step.js +9 -5
  497. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  498. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.css +0 -1
  499. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  500. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -1
  501. package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.css +1 -0
  502. package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.min.css +0 -0
  503. package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.scss +1 -0
  504. package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.css +3 -0
  505. package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.min.css +1 -0
  506. package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.scss +7 -0
  507. package/es/extensions/forms/blocks/Category/FirstBlock/FirstBlock.d.ts +2 -0
  508. package/es/extensions/forms/blocks/Category/FirstBlock/FirstBlock.js +39 -0
  509. package/es/extensions/forms/blocks/Category/FirstBlock/FirstBlock.js.map +1 -0
  510. package/es/extensions/forms/blocks/Category/FirstBlock/index.d.ts +2 -0
  511. package/es/extensions/forms/blocks/Category/FirstBlock/index.js +3 -0
  512. package/es/extensions/forms/blocks/Category/FirstBlock/index.js.map +1 -0
  513. package/es/extensions/forms/blocks/Category/index.d.ts +1 -0
  514. package/es/extensions/forms/blocks/Category/index.js +1 -0
  515. package/es/extensions/forms/blocks/Category/index.js.map +1 -0
  516. package/es/extensions/forms/blocks/index.d.ts +1 -0
  517. package/es/extensions/forms/blocks/index.js +1 -0
  518. package/es/extensions/forms/blocks/index.js.map +1 -0
  519. package/es/extensions/forms/hooks/index.d.ts +2 -5
  520. package/es/extensions/forms/hooks/index.js +2 -1
  521. package/es/extensions/forms/hooks/index.js.map +1 -1
  522. package/es/extensions/forms/hooks/useDataValue.d.ts +9 -0
  523. package/es/extensions/forms/hooks/useDataValue.js +32 -0
  524. package/es/extensions/forms/hooks/useDataValue.js.map +1 -0
  525. package/es/extensions/forms/hooks/useExternalValue.d.ts +12 -0
  526. package/es/extensions/forms/hooks/useExternalValue.js +41 -0
  527. package/es/extensions/forms/hooks/useExternalValue.js.map +1 -0
  528. package/es/extensions/forms/hooks/useFieldProps.d.ts +1 -10
  529. package/es/extensions/forms/hooks/useFieldProps.js +122 -102
  530. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  531. package/es/extensions/forms/hooks/usePath.d.ts +14 -0
  532. package/es/extensions/forms/hooks/usePath.js +64 -0
  533. package/es/extensions/forms/hooks/usePath.js.map +1 -0
  534. package/es/extensions/forms/hooks/useValueProps.js +16 -4
  535. package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
  536. package/es/extensions/forms/index.d.ts +2 -0
  537. package/es/extensions/forms/index.js +1 -0
  538. package/es/extensions/forms/index.js.map +1 -1
  539. package/es/extensions/forms/style/dnb-forms.css +3 -5
  540. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  541. package/es/extensions/forms/types.d.ts +10 -3
  542. package/es/extensions/forms/types.js.map +1 -1
  543. package/es/fragments/drawer-list/DrawerListHelpers.js +6 -2
  544. package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  545. package/es/shared/Context.d.ts +3 -3
  546. package/es/shared/Context.js +8 -8
  547. package/es/shared/Context.js.map +1 -1
  548. package/es/shared/Eufemia.d.ts +1 -1
  549. package/es/shared/Eufemia.js +2 -2
  550. package/es/shared/Eufemia.js.map +1 -1
  551. package/es/shared/MediaQuery.js +19 -1
  552. package/es/shared/MediaQuery.js.map +1 -1
  553. package/es/shared/MediaQueryUtils.d.ts +12 -34
  554. package/es/shared/MediaQueryUtils.js +22 -17
  555. package/es/shared/MediaQueryUtils.js.map +1 -1
  556. package/es/shared/component-helper.d.ts +1 -1
  557. package/es/shared/component-helper.js +5 -2
  558. package/es/shared/component-helper.js.map +1 -1
  559. package/es/shared/useMedia.d.ts +7 -2
  560. package/es/shared/useMedia.js +14 -11
  561. package/es/shared/useMedia.js.map +1 -1
  562. package/es/shared/useMediaQuery.js +28 -9
  563. package/es/shared/useMediaQuery.js.map +1 -1
  564. package/es/style/core/scopes.scss +1 -1
  565. package/es/style/dnb-ui-basis.css +2 -3
  566. package/es/style/dnb-ui-basis.min.css +1 -1
  567. package/es/style/dnb-ui-body.css +1 -1
  568. package/es/style/dnb-ui-body.min.css +1 -1
  569. package/es/style/dnb-ui-components.css +22 -29
  570. package/es/style/dnb-ui-components.min.css +3 -3
  571. package/es/style/dnb-ui-core.css +2 -3
  572. package/es/style/dnb-ui-core.min.css +1 -1
  573. package/es/style/dnb-ui-extensions.css +3 -5
  574. package/es/style/dnb-ui-extensions.min.css +1 -1
  575. package/es/style/dnb-ui-forms.css +3 -5
  576. package/es/style/dnb-ui-forms.min.css +1 -1
  577. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +30 -36
  578. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  579. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +7 -5
  580. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
  581. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
  582. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +7 -5
  583. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
  584. package/es/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
  585. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +103 -112
  586. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
  587. package/es/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
  588. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +4 -5
  589. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  590. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
  591. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +4 -5
  592. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  593. package/es/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
  594. package/es/style/themes/theme-ui/ui-theme-components.css +30 -36
  595. package/es/style/themes/theme-ui/ui-theme-components.min.css +5 -5
  596. package/es/style/themes/theme-ui/ui-theme-extensions.css +7 -5
  597. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
  598. package/es/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
  599. package/es/style/themes/theme-ui/ui-theme-forms.css +7 -5
  600. package/es/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
  601. package/es/style/themes/theme-ui/ui-theme-forms.scss +1 -0
  602. package/esm/dnb-ui-basis.min.mjs +1 -1
  603. package/esm/dnb-ui-components.min.mjs +1 -1
  604. package/esm/dnb-ui-elements.min.mjs +1 -1
  605. package/esm/dnb-ui-extensions.min.mjs +3 -3
  606. package/esm/dnb-ui-lib.min.mjs +1 -1
  607. package/extensions/forms/DataContext/Context.d.ts +26 -14
  608. package/extensions/forms/DataContext/Context.js +2 -3
  609. package/extensions/forms/DataContext/Context.js.map +1 -1
  610. package/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
  611. package/extensions/forms/DataContext/Provider/Provider.js +82 -36
  612. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  613. package/extensions/forms/DataContext/Provider/ProviderDocs.js +3 -3
  614. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  615. package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +1 -1
  616. package/extensions/forms/Field/ArraySelection/ArraySelection.js +3 -3
  617. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  618. package/extensions/forms/Field/Boolean/Boolean.js +2 -1
  619. package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  620. package/extensions/forms/Field/Composition/Composition.d.ts +2 -2
  621. package/extensions/forms/Field/Composition/Composition.js.map +1 -1
  622. package/extensions/forms/Field/Indeterminate/useDependencePaths.js +7 -7
  623. package/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
  624. package/extensions/forms/Field/Number/Number.js +6 -4
  625. package/extensions/forms/Field/Number/Number.js.map +1 -1
  626. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +1 -1
  627. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  628. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +2 -2
  629. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +2 -2
  630. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  631. package/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -4
  632. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  633. package/extensions/forms/Field/Selection/Selection.js +3 -3
  634. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  635. package/extensions/forms/Field/Slider/Slider.d.ts +34 -0
  636. package/extensions/forms/Field/Slider/Slider.js +104 -0
  637. package/extensions/forms/Field/Slider/Slider.js.map +1 -0
  638. package/extensions/forms/Field/Slider/SliderDocs.d.ts +3 -0
  639. package/extensions/forms/Field/Slider/SliderDocs.js +26 -0
  640. package/extensions/forms/Field/Slider/SliderDocs.js.map +1 -0
  641. package/extensions/forms/Field/Slider/index.d.ts +2 -0
  642. package/extensions/forms/Field/Slider/index.js +3 -0
  643. package/extensions/forms/Field/Slider/index.js.map +1 -0
  644. package/extensions/forms/Field/String/String.js +2 -2
  645. package/extensions/forms/Field/String/String.js.map +1 -1
  646. package/extensions/forms/Field/Toggle/Toggle.js +7 -7
  647. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  648. package/extensions/forms/Field/index.d.ts +1 -0
  649. package/extensions/forms/Field/index.js +1 -0
  650. package/extensions/forms/Field/index.js.map +1 -1
  651. package/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
  652. package/extensions/forms/FieldBlock/FieldBlock.js +5 -0
  653. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  654. package/extensions/forms/FieldBlock/style/dnb-field-block.css +0 -3
  655. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  656. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +0 -2
  657. package/extensions/forms/Form/Element/Element.js +1 -1
  658. package/extensions/forms/Form/Element/Element.js.map +1 -1
  659. package/extensions/forms/Form/FieldProps/FieldProps.d.ts +19 -5
  660. package/extensions/forms/Form/FieldProps/FieldProps.js +50 -21
  661. package/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -1
  662. package/extensions/forms/Form/FieldProps/FieldPropsContext.d.ts +1 -0
  663. package/extensions/forms/Form/FieldProps/FieldPropsContext.js.map +1 -1
  664. package/extensions/forms/Form/Section/Section.d.ts +44 -0
  665. package/extensions/forms/Form/Section/Section.js +56 -0
  666. package/extensions/forms/Form/Section/Section.js.map +1 -0
  667. package/extensions/forms/Form/Section/SectionContext.d.ts +11 -0
  668. package/extensions/forms/Form/Section/SectionContext.js +4 -0
  669. package/extensions/forms/Form/Section/SectionContext.js.map +1 -0
  670. package/extensions/forms/Form/Section/SectionDocs.d.ts +3 -0
  671. package/extensions/forms/Form/Section/SectionDocs.js +35 -0
  672. package/extensions/forms/Form/Section/SectionDocs.js.map +1 -0
  673. package/extensions/forms/Form/Section/index.d.ts +2 -0
  674. package/extensions/forms/Form/Section/index.js +3 -0
  675. package/extensions/forms/Form/Section/index.js.map +1 -0
  676. package/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
  677. package/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  678. package/extensions/forms/Form/Visibility/Visibility.d.ts +19 -5
  679. package/extensions/forms/Form/Visibility/Visibility.js +48 -11
  680. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  681. package/extensions/forms/Form/Visibility/VisibilityDocs.js +11 -6
  682. package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  683. package/extensions/forms/Form/data-context/useData.d.ts +1 -1
  684. package/extensions/forms/Form/data-context/useData.js +8 -4
  685. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  686. package/extensions/forms/Form/data-context/useError.d.ts +1 -0
  687. package/extensions/forms/Form/data-context/useError.js +5 -3
  688. package/extensions/forms/Form/data-context/useError.js.map +1 -1
  689. package/extensions/forms/Form/index.d.ts +1 -0
  690. package/extensions/forms/Form/index.js +1 -0
  691. package/extensions/forms/Form/index.js.map +1 -1
  692. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +8 -1
  693. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -3
  694. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  695. package/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -1
  696. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  697. package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
  698. package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  699. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +1 -1
  700. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  701. package/extensions/forms/Iterate/PushButton/PushButton.js +1 -1
  702. package/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  703. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  704. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  705. package/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
  706. package/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  707. package/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +2 -1
  708. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  709. package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  710. package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  711. package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
  712. package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  713. package/extensions/forms/Iterate/style/dnb-form-iterate.css +3 -1
  714. package/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  715. package/extensions/forms/Iterate/style/dnb-form-iterate.scss +4 -1
  716. package/extensions/forms/Tools/GenerateSchema.d.ts +19 -0
  717. package/extensions/forms/Tools/GenerateSchema.js +133 -0
  718. package/extensions/forms/Tools/GenerateSchema.js.map +1 -0
  719. package/extensions/forms/Tools/ListAllProps.d.ts +15 -0
  720. package/extensions/forms/Tools/ListAllProps.js +67 -0
  721. package/extensions/forms/Tools/ListAllProps.js.map +1 -0
  722. package/extensions/forms/Tools/index.d.ts +2 -0
  723. package/extensions/forms/Tools/index.js +3 -0
  724. package/extensions/forms/Tools/index.js.map +1 -0
  725. package/extensions/forms/Value/Number/Number.js +4 -2
  726. package/extensions/forms/Value/Number/Number.js.map +1 -1
  727. package/extensions/forms/ValueBlock/ValueBlock.js +4 -2
  728. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  729. package/extensions/forms/Wizard/Container/WizardContainer.d.ts +31 -2
  730. package/extensions/forms/Wizard/Container/WizardContainer.js +102 -32
  731. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  732. package/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
  733. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  734. package/extensions/forms/Wizard/Step/Step.d.ts +6 -1
  735. package/extensions/forms/Wizard/Step/Step.js +9 -5
  736. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  737. package/extensions/forms/Wizard/style/dnb-wizard-layout.css +0 -1
  738. package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  739. package/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -1
  740. package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.css +1 -0
  741. package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.min.css +0 -0
  742. package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.scss +1 -0
  743. package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.css +3 -0
  744. package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.min.css +1 -0
  745. package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.scss +7 -0
  746. package/extensions/forms/blocks/Category/FirstBlock/FirstBlock.d.ts +2 -0
  747. package/extensions/forms/blocks/Category/FirstBlock/FirstBlock.js +39 -0
  748. package/extensions/forms/blocks/Category/FirstBlock/FirstBlock.js.map +1 -0
  749. package/extensions/forms/blocks/Category/FirstBlock/index.d.ts +2 -0
  750. package/extensions/forms/blocks/Category/FirstBlock/index.js +3 -0
  751. package/extensions/forms/blocks/Category/FirstBlock/index.js.map +1 -0
  752. package/extensions/forms/blocks/Category/index.d.ts +1 -0
  753. package/extensions/forms/blocks/Category/index.js +1 -0
  754. package/extensions/forms/blocks/Category/index.js.map +1 -0
  755. package/extensions/forms/blocks/index.d.ts +1 -0
  756. package/extensions/forms/blocks/index.js +3 -0
  757. package/extensions/forms/blocks/index.js.map +1 -0
  758. package/extensions/forms/hooks/index.d.ts +2 -5
  759. package/extensions/forms/hooks/index.js +2 -1
  760. package/extensions/forms/hooks/index.js.map +1 -1
  761. package/extensions/forms/hooks/useDataValue.d.ts +9 -0
  762. package/extensions/forms/hooks/useDataValue.js +33 -0
  763. package/extensions/forms/hooks/useDataValue.js.map +1 -0
  764. package/extensions/forms/hooks/useExternalValue.d.ts +12 -0
  765. package/extensions/forms/hooks/useExternalValue.js +41 -0
  766. package/extensions/forms/hooks/useExternalValue.js.map +1 -0
  767. package/extensions/forms/hooks/useFieldProps.d.ts +1 -10
  768. package/extensions/forms/hooks/useFieldProps.js +125 -106
  769. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  770. package/extensions/forms/hooks/usePath.d.ts +14 -0
  771. package/extensions/forms/hooks/usePath.js +66 -0
  772. package/extensions/forms/hooks/usePath.js.map +1 -0
  773. package/extensions/forms/hooks/useValueProps.js +16 -4
  774. package/extensions/forms/hooks/useValueProps.js.map +1 -1
  775. package/extensions/forms/index.d.ts +2 -0
  776. package/extensions/forms/index.js +2 -0
  777. package/extensions/forms/index.js.map +1 -1
  778. package/extensions/forms/style/dnb-forms.css +3 -5
  779. package/extensions/forms/style/dnb-forms.min.css +1 -1
  780. package/extensions/forms/types.d.ts +10 -3
  781. package/extensions/forms/types.js.map +1 -1
  782. package/fragments/drawer-list/DrawerListHelpers.js +6 -2
  783. package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  784. package/package.json +1 -1
  785. package/shared/Context.d.ts +3 -3
  786. package/shared/Context.js +8 -8
  787. package/shared/Context.js.map +1 -1
  788. package/shared/Eufemia.d.ts +1 -1
  789. package/shared/Eufemia.js +2 -2
  790. package/shared/Eufemia.js.map +1 -1
  791. package/shared/MediaQuery.js +19 -1
  792. package/shared/MediaQuery.js.map +1 -1
  793. package/shared/MediaQueryUtils.d.ts +12 -34
  794. package/shared/MediaQueryUtils.js +22 -12
  795. package/shared/MediaQueryUtils.js.map +1 -1
  796. package/shared/component-helper.d.ts +1 -1
  797. package/shared/component-helper.js +5 -1
  798. package/shared/component-helper.js.map +1 -1
  799. package/shared/useMedia.d.ts +7 -2
  800. package/shared/useMedia.js +14 -11
  801. package/shared/useMedia.js.map +1 -1
  802. package/shared/useMediaQuery.js +28 -9
  803. package/shared/useMediaQuery.js.map +1 -1
  804. package/style/core/scopes.scss +1 -1
  805. package/style/dnb-ui-basis.css +2 -3
  806. package/style/dnb-ui-basis.min.css +1 -1
  807. package/style/dnb-ui-body.css +1 -1
  808. package/style/dnb-ui-body.min.css +1 -1
  809. package/style/dnb-ui-components.css +22 -29
  810. package/style/dnb-ui-components.min.css +3 -3
  811. package/style/dnb-ui-core.css +2 -3
  812. package/style/dnb-ui-core.min.css +1 -1
  813. package/style/dnb-ui-extensions.css +3 -5
  814. package/style/dnb-ui-extensions.min.css +1 -1
  815. package/style/dnb-ui-forms.css +3 -5
  816. package/style/dnb-ui-forms.min.css +1 -1
  817. package/style/themes/theme-eiendom/eiendom-theme-components.css +30 -36
  818. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  819. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +7 -5
  820. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
  821. package/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
  822. package/style/themes/theme-eiendom/eiendom-theme-forms.css +7 -5
  823. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
  824. package/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
  825. package/style/themes/theme-sbanken/sbanken-theme-components.css +103 -112
  826. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
  827. package/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
  828. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +4 -5
  829. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  830. package/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
  831. package/style/themes/theme-sbanken/sbanken-theme-forms.css +4 -5
  832. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  833. package/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
  834. package/style/themes/theme-ui/ui-theme-components.css +30 -36
  835. package/style/themes/theme-ui/ui-theme-components.min.css +5 -5
  836. package/style/themes/theme-ui/ui-theme-extensions.css +7 -5
  837. package/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
  838. package/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
  839. package/style/themes/theme-ui/ui-theme-forms.css +7 -5
  840. package/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
  841. package/style/themes/theme-ui/ui-theme-forms.scss +1 -0
  842. package/umd/dnb-ui-basis.min.js +1 -1
  843. package/umd/dnb-ui-components.min.js +1 -1
  844. package/umd/dnb-ui-elements.min.js +1 -1
  845. package/umd/dnb-ui-extensions.min.js +3 -3
  846. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { Ajv } from '../utils/ajv';
3
- import { AllJSONSchemaVersions, CustomErrorMessagesWithPaths, SubmitState, Path, EventStateObject, EventReturnWithStateObject, Identifier, FieldProps, FormError } from '../types';
3
+ import { AllJSONSchemaVersions, CustomErrorMessagesWithPaths, SubmitState, Path, EventStateObject, EventReturnWithStateObject, Identifier, FieldProps, FormError, ValueProps } from '../types';
4
4
  import { Props as ProviderProps } from './Provider';
5
5
  type HandleSubmitProps = {
6
6
  formElement?: HTMLFormElement;
@@ -11,12 +11,22 @@ export type EventListenerCall = {
11
11
  callback: () => any;
12
12
  };
13
13
  export type FilterDataHandler<Data> = (data: Data, filter: FilterData) => Partial<Data>;
14
- export type FilterData = (path: Path, value: any, props: FieldProps, internal: {
15
- error: Error | undefined;
16
- }) => boolean | undefined;
17
- export type TransformData = (path: Path, value: any, props: FieldProps, internal: {
18
- error: Error | undefined;
19
- }) => any;
14
+ export type FilterDataHandlerCallback<R> = (parameters: FilterDataHandlerParameters) => R;
15
+ export type FilterDataHandlerParameters = FilterDataPathConditionParameters & {
16
+ path: Path;
17
+ };
18
+ export type FilterDataPathCondition<Data = unknown> = (parameters: FilterDataPathConditionParameters<Data>) => boolean | undefined;
19
+ export type FilterDataPathConditionParameters<Data = unknown> = {
20
+ value: unknown;
21
+ props: FieldProps;
22
+ data: Data;
23
+ internal: {
24
+ error: Error | undefined;
25
+ };
26
+ };
27
+ export type FilterDataPathObject<Data> = Record<Path, FilterDataPathCondition<Data> | boolean | undefined>;
28
+ export type FilterData<Data = unknown> = FilterDataPathObject<Data> | FilterDataHandlerCallback<boolean | undefined>;
29
+ export type TransformData = FilterDataHandlerCallback<unknown>;
20
30
  export interface ContextState {
21
31
  id?: Identifier;
22
32
  hasContext: boolean;
@@ -35,17 +45,14 @@ export interface ContextState {
35
45
  validateData: () => void;
36
46
  handleSubmit: (props?: HandleSubmitProps) => any;
37
47
  scrollToTop: () => void;
38
- showAllErrors: boolean;
39
48
  setShowAllErrors: (showAllErrors: boolean) => void;
40
49
  hasErrors: () => boolean;
41
50
  hasFieldState: (state: SubmitState) => boolean;
42
- checkFieldStateFor: (path: Path, state: SubmitState) => boolean;
51
+ hasFieldError: (path: Path) => boolean;
43
52
  setFieldState: (path: Path, fieldState: SubmitState) => void;
44
53
  setFieldError: (path: Path, error: Error | FormError) => void;
45
- fieldPropsRef?: React.MutableRefObject<Record<string, FieldProps>>;
46
54
  handleMountField: (path: Path) => void;
47
55
  handleUnMountField: (path: Path) => void;
48
- formState: SubmitState;
49
56
  setFormState?: (state: SubmitState) => void;
50
57
  setSubmitState?: (state: EventStateObject) => void;
51
58
  handleSubmitCall: ({ onSubmit, enableAsyncBehaviour, skipFieldValidation, skipErrorCheck, }: {
@@ -55,16 +62,21 @@ export interface ContextState {
55
62
  skipErrorCheck?: boolean;
56
63
  }) => void;
57
64
  setFieldEventListener: (path: EventListenerCall['path'], type: EventListenerCall['type'], callback: EventListenerCall['callback']) => void;
58
- setProps: (path: Path, props: any) => void;
65
+ setFieldProps?: (path: Path, props: any) => void;
66
+ setValueProps?: (path: Path, props: any) => void;
67
+ fieldPropsRef?: React.MutableRefObject<Record<string, FieldProps>>;
68
+ valuePropsRef?: React.MutableRefObject<Record<string, ValueProps>>;
69
+ showAllErrors: boolean;
70
+ formState: SubmitState;
59
71
  ajvInstance: Ajv;
60
72
  contextErrorMessages: CustomErrorMessagesWithPaths;
61
73
  schema: AllJSONSchemaVersions;
62
74
  disabled?: boolean;
63
75
  required?: boolean;
64
76
  submitState: Partial<EventStateObject>;
65
- _isInsideFormElement?: boolean;
77
+ isInsideFormElement?: boolean;
78
+ prerenderFieldProps?: boolean;
66
79
  props: ProviderProps<unknown>;
67
- fieldProps?: Record<Path, unknown>;
68
80
  }
69
81
  export declare const defaultContextState: ContextState;
70
82
  declare const Context: React.Context<ContextState>;
@@ -23,13 +23,12 @@ export const defaultContextState = {
23
23
  handleUnMountField: () => null,
24
24
  hasErrors: () => false,
25
25
  hasFieldState: () => false,
26
- checkFieldStateFor: () => false,
26
+ hasFieldError: () => false,
27
27
  setFieldState: () => null,
28
28
  setFieldError: () => null,
29
- setProps: () => null,
30
29
  ajvInstance: makeAjvInstance(),
31
30
  contextErrorMessages: undefined,
32
- _isInsideFormElement: false,
31
+ isInsideFormElement: false,
33
32
  props: null
34
33
  };
35
34
  const Context = React.createContext(defaultContextState);
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","names":["React","makeAjvInstance","defaultContextState","hasContext","data","undefined","schema","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","validateData","handleSubmit","scrollToTop","showAllErrors","formState","setFormState","setSubmitState","setFieldEventListener","handleSubmitCall","setShowAllErrors","handleMountField","handleUnMountField","hasErrors","hasFieldState","checkFieldStateFor","setFieldState","setFieldError","setProps","ajvInstance","contextErrorMessages","_isInsideFormElement","props","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, makeAjvInstance } from '../utils/ajv'\nimport {\n AllJSONSchemaVersions,\n CustomErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n Identifier,\n FieldProps,\n FormError,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\n\ntype HandleSubmitProps = {\n formElement?: HTMLFormElement\n}\n\nexport type EventListenerCall = {\n path: Path\n type: 'onSubmit'\n callback: () => any\n}\n\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterData = (\n path: Path,\n value: any,\n props: FieldProps,\n internal: {\n error: Error | undefined\n }\n) => boolean | undefined\nexport type TransformData = (\n path: Path,\n value: any,\n props: FieldProps,\n internal: {\n error: Error | undefined\n }\n) => any\n\nexport interface ContextState {\n id?: Identifier\n hasContext: boolean\n /** The dataset for the form / form wizard */\n data: any\n /** Should the form validate data before submitting? */\n errors?: Record<string, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (\n path: Path,\n value?: any\n ) =>\n | EventReturnWithStateObject\n | unknown\n | Promise<EventReturnWithStateObject | unknown>\n handlePathChangeUnvalidated: (path: Path, value: any) => void\n updateDataValue: (path: Path, value: any) => void\n setData: (data: any) => void\n mutateDataHandler?: (data: any, mutate: TransformData) => any\n filterDataHandler?: (data: any, filter: FilterData) => any\n validateData: () => void\n handleSubmit: (props?: HandleSubmitProps) => any\n scrollToTop: () => void\n // Error status\n showAllErrors: boolean\n setShowAllErrors: (showAllErrors: boolean) => void\n hasErrors: () => boolean\n hasFieldState: (state: SubmitState) => boolean\n checkFieldStateFor: (path: Path, state: SubmitState) => boolean\n setFieldState: (path: Path, fieldState: SubmitState) => void\n setFieldError: (path: Path, error: Error | FormError) => void\n fieldPropsRef?: React.MutableRefObject<Record<string, FieldProps>>\n handleMountField: (path: Path) => void\n handleUnMountField: (path: Path) => void\n formState: SubmitState\n setFormState?: (state: SubmitState) => void\n setSubmitState?: (state: EventStateObject) => void\n handleSubmitCall: ({\n onSubmit,\n enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n }: {\n onSubmit: () =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n enableAsyncBehaviour: boolean\n skipFieldValidation?: boolean\n skipErrorCheck?: boolean\n }) => void\n setFieldEventListener: (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => void\n setProps: (path: Path, props: any) => void\n ajvInstance: Ajv\n contextErrorMessages: CustomErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n disabled?: boolean\n required?: boolean\n submitState: Partial<EventStateObject>\n _isInsideFormElement?: boolean\n props: ProviderProps<unknown>\n fieldProps?: Record<Path, unknown>\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n submitState: undefined,\n handlePathChange: () => null,\n handlePathChangeUnvalidated: () => null,\n updateDataValue: () => null,\n setData: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n formState: undefined,\n setFormState: () => null,\n setSubmitState: () => null,\n setFieldEventListener: () => null,\n handleSubmitCall: () => null,\n setShowAllErrors: () => null,\n handleMountField: () => null,\n handleUnMountField: () => null,\n hasErrors: () => false,\n hasFieldState: () => false,\n checkFieldStateFor: () => false,\n setFieldState: () => null,\n setFieldError: () => null,\n setProps: () => null,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n _isInsideFormElement: false,\n props: null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAcC,eAAe,QAAQ,cAAc;AAkHnD,OAAO,MAAMC,mBAAiC,GAAG;EAC/CC,UAAU,EAAE,KAAK;EACjBC,IAAI,EAAEC,SAAS;EACfC,MAAM,EAAED,SAAS;EACjBE,WAAW,EAAEF,SAAS;EACtBG,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,2BAA2B,EAAEA,CAAA,KAAM,IAAI;EACvCC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,OAAO,EAAEA,CAAA,KAAM,IAAI;EACnBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,WAAW,EAAEA,CAAA,KAAM,IAAI;EACvBC,aAAa,EAAE,KAAK;EACpBC,SAAS,EAAEX,SAAS;EACpBY,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,cAAc,EAAEA,CAAA,KAAM,IAAI;EAC1BC,qBAAqB,EAAEA,CAAA,KAAM,IAAI;EACjCC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,kBAAkB,EAAEA,CAAA,KAAM,IAAI;EAC9BC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,kBAAkB,EAAEA,CAAA,KAAM,KAAK;EAC/BC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,QAAQ,EAAEA,CAAA,KAAM,IAAI;EACpBC,WAAW,EAAE7B,eAAe,CAAC,CAAC;EAC9B8B,oBAAoB,EAAE1B,SAAS;EAC/B2B,oBAAoB,EAAE,KAAK;EAC3BC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,OAAO,GAAGlC,KAAK,CAACmC,aAAa,CAAejC,mBAAmB,CAAC;AAEtE,eAAegC,OAAO"}
1
+ {"version":3,"file":"Context.js","names":["React","makeAjvInstance","defaultContextState","hasContext","data","undefined","schema","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","validateData","handleSubmit","scrollToTop","showAllErrors","formState","setFormState","setSubmitState","setFieldEventListener","handleSubmitCall","setShowAllErrors","handleMountField","handleUnMountField","hasErrors","hasFieldState","hasFieldError","setFieldState","setFieldError","ajvInstance","contextErrorMessages","isInsideFormElement","props","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, makeAjvInstance } from '../utils/ajv'\nimport {\n AllJSONSchemaVersions,\n CustomErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n Identifier,\n FieldProps,\n FormError,\n ValueProps,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\n\ntype HandleSubmitProps = {\n formElement?: HTMLFormElement\n}\n\nexport type EventListenerCall = {\n path: Path\n type: 'onSubmit'\n callback: () => any\n}\n\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterDataHandlerCallback<R> = (\n parameters: FilterDataHandlerParameters\n) => R\nexport type FilterDataHandlerParameters =\n FilterDataPathConditionParameters & {\n path: Path\n }\nexport type FilterDataPathCondition<Data = unknown> = (\n parameters: FilterDataPathConditionParameters<Data>\n) => boolean | undefined\nexport type FilterDataPathConditionParameters<Data = unknown> = {\n value: unknown\n props: FieldProps\n data: Data\n internal: {\n error: Error | undefined\n }\n}\nexport type FilterDataPathObject<Data> = Record<\n Path,\n FilterDataPathCondition<Data> | boolean | undefined\n>\nexport type FilterData<Data = unknown> =\n | FilterDataPathObject<Data>\n | FilterDataHandlerCallback<boolean | undefined>\nexport type TransformData = FilterDataHandlerCallback<unknown>\n\nexport interface ContextState {\n id?: Identifier\n hasContext: boolean\n /** The dataset for the form / form wizard */\n data: any\n /** Should the form validate data before submitting? */\n errors?: Record<string, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (\n path: Path,\n value?: any\n ) =>\n | EventReturnWithStateObject\n | unknown\n | Promise<EventReturnWithStateObject | unknown>\n handlePathChangeUnvalidated: (path: Path, value: any) => void\n updateDataValue: (path: Path, value: any) => void\n setData: (data: any) => void\n mutateDataHandler?: (data: any, mutate: TransformData) => any\n filterDataHandler?: (data: any, filter: FilterData) => any\n validateData: () => void\n handleSubmit: (props?: HandleSubmitProps) => any\n scrollToTop: () => void\n setShowAllErrors: (showAllErrors: boolean) => void\n hasErrors: () => boolean\n hasFieldState: (state: SubmitState) => boolean\n hasFieldError: (path: Path) => boolean\n setFieldState: (path: Path, fieldState: SubmitState) => void\n setFieldError: (path: Path, error: Error | FormError) => void\n handleMountField: (path: Path) => void\n handleUnMountField: (path: Path) => void\n setFormState?: (state: SubmitState) => void\n setSubmitState?: (state: EventStateObject) => void\n handleSubmitCall: ({\n onSubmit,\n enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n }: {\n onSubmit: () =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n enableAsyncBehaviour: boolean\n skipFieldValidation?: boolean\n skipErrorCheck?: boolean\n }) => void\n setFieldEventListener: (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => void\n setFieldProps?: (path: Path, props: any) => void\n setValueProps?: (path: Path, props: any) => void\n fieldPropsRef?: React.MutableRefObject<Record<string, FieldProps>>\n valuePropsRef?: React.MutableRefObject<Record<string, ValueProps>>\n showAllErrors: boolean\n formState: SubmitState\n ajvInstance: Ajv\n contextErrorMessages: CustomErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n disabled?: boolean\n required?: boolean\n submitState: Partial<EventStateObject>\n isInsideFormElement?: boolean\n prerenderFieldProps?: boolean\n props: ProviderProps<unknown>\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n submitState: undefined,\n handlePathChange: () => null,\n handlePathChangeUnvalidated: () => null,\n updateDataValue: () => null,\n setData: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n formState: undefined,\n setFormState: () => null,\n setSubmitState: () => null,\n setFieldEventListener: () => null,\n handleSubmitCall: () => null,\n setShowAllErrors: () => null,\n handleMountField: () => null,\n handleUnMountField: () => null,\n hasErrors: () => false,\n hasFieldState: () => false,\n hasFieldError: () => false,\n setFieldState: () => null,\n setFieldError: () => null,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n isInsideFormElement: false,\n props: null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAcC,eAAe,QAAQ,cAAc;AA8HnD,OAAO,MAAMC,mBAAiC,GAAG;EAC/CC,UAAU,EAAE,KAAK;EACjBC,IAAI,EAAEC,SAAS;EACfC,MAAM,EAAED,SAAS;EACjBE,WAAW,EAAEF,SAAS;EACtBG,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,2BAA2B,EAAEA,CAAA,KAAM,IAAI;EACvCC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,OAAO,EAAEA,CAAA,KAAM,IAAI;EACnBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,WAAW,EAAEA,CAAA,KAAM,IAAI;EACvBC,aAAa,EAAE,KAAK;EACpBC,SAAS,EAAEX,SAAS;EACpBY,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,cAAc,EAAEA,CAAA,KAAM,IAAI;EAC1BC,qBAAqB,EAAEA,CAAA,KAAM,IAAI;EACjCC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,kBAAkB,EAAEA,CAAA,KAAM,IAAI;EAC9BC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,WAAW,EAAE5B,eAAe,CAAC,CAAC;EAC9B6B,oBAAoB,EAAEzB,SAAS;EAC/B0B,mBAAmB,EAAE,KAAK;EAC1BC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,OAAO,GAAGjC,KAAK,CAACkC,aAAa,CAAehC,mBAAmB,CAAC;AAEtE,eAAe+B,OAAO"}
@@ -34,7 +34,7 @@ export interface Props<Data extends JsonObject> {
34
34
  */
35
35
  errorMessages?: CustomErrorMessagesWithPaths;
36
36
  /**
37
- * Filter the `onSubmit` output data, based on your criteria: `(path, value, props, internal) => !props?.disabled`. It will iterate on each data entry (/path). Return false to exclude the entry.
37
+ * Filter the `onSubmit` output data, based on your criteria: `({ path, value, data, props, internal }) => !props?.disabled`. It will iterate on each data entry (/path). Return false to exclude the entry.
38
38
  */
39
39
  filterSubmitData?: FilterData;
40
40
  /**
@@ -42,11 +42,11 @@ export interface Props<Data extends JsonObject> {
42
42
  */
43
43
  filterData?: FilterData;
44
44
  /**
45
- * Transform the data context (internally as well) based on your criteria: `(path, value, props, internal) => 'new value'`. It will iterate on each data entry (/path).
45
+ * Transform the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).
46
46
  */
47
47
  transformIn?: TransformData;
48
48
  /**
49
- * Mutate the data before it enters onSubmit or onChange based on your criteria: `(path, value, props, internal) => 'new value'`. It will iterate on each data entry (/path).
49
+ * Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).
50
50
  */
51
51
  transformOut?: TransformData;
52
52
  /**
@@ -5,7 +5,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutPr
5
5
  const _excluded = ["id", "globalStatusId", "defaultData", "data", "schema", "onChange", "onPathChange", "onSubmit", "onSubmitRequest", "onSubmitComplete", "scrollTopOnSubmit", "minimumAsyncBehaviorTime", "asyncSubmitTimeout", "sessionStorageId", "ajvInstance", "transformIn", "transformOut", "filterSubmitData", "filterData", "locale", "translations", "required", "errorMessages", "children"];
6
6
  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; }
7
7
  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; }
8
- import React, { useRef, useMemo, useCallback, useReducer, useEffect } from 'react';
8
+ import React, { useRef, useMemo, useCallback, useReducer, useEffect, useContext } from 'react';
9
9
  import pointer from 'json-pointer';
10
10
  import { makeAjvInstance, ajvErrorsToFormErrors } from '../../utils/ajv';
11
11
  import { debounce } from '../../../../shared/helpers';
@@ -50,7 +50,11 @@ export default function Provider(props) {
50
50
  } = props,
51
51
  rest = _objectWithoutProperties(props, _excluded);
52
52
  if (data !== undefined && sessionStorageId !== undefined) {
53
- console.error('Providing both data and sessionStorageId could lead to competing data sources. To provide default data to use only before anything is changed in the interface, use defaultData.');
53
+ throw new Error('Use "defaultData" instead of "data" when using sessionStorageId');
54
+ }
55
+ const nestedContext = useContext(Context);
56
+ if (nestedContext !== null && nestedContext !== void 0 && nestedContext.hasContext) {
57
+ throw new Error('DataContext (Form.Handler) can not be nested');
54
58
  }
55
59
  const translation = useTranslation().Form;
56
60
  const ajvRef = useRef(makeAjvInstance(ajvInstance));
@@ -112,6 +116,11 @@ export default function Provider(props) {
112
116
  return checkFieldStateFor(path, state);
113
117
  });
114
118
  }, [checkFieldStateFor]);
119
+ const hasFieldError = useCallback(path => {
120
+ return mountedFieldPathsRef.current.some(p => {
121
+ return p === path && checkFieldStateFor(p, 'error');
122
+ });
123
+ }, [checkFieldStateFor]);
115
124
  const hasErrors = useCallback(() => {
116
125
  return hasFieldState('error');
117
126
  }, [hasFieldState]);
@@ -124,28 +133,60 @@ export default function Provider(props) {
124
133
  forceUpdate();
125
134
  }
126
135
  }, []);
127
- const mutateDataHandler = useCallback(function (data, fn) {
136
+ const mutateDataHandler = useCallback(function (data, filter) {
128
137
  let remove = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
129
- if (fn) {
138
+ const mutate = (path, result) => {
139
+ if (remove) {
140
+ if (result === false) {
141
+ data = structuredClone(data);
142
+ pointer.remove(data, path);
143
+ }
144
+ } else {
145
+ if (typeof result !== 'undefined') {
146
+ data = structuredClone(data);
147
+ pointer.set(data, path, result);
148
+ }
149
+ }
150
+ };
151
+ if (typeof filter === 'function') {
130
152
  Object.entries(fieldPropsRef.current).forEach(_ref => {
131
153
  let [path, props] = _ref;
132
154
  const exists = pointer.has(data, path);
133
155
  if (exists) {
134
156
  var _fieldErrorRef$curren;
135
- const result = fn(path, pointer.get(data, path), props, {
157
+ const value = pointer.get(data, path);
158
+ const internal = {
136
159
  error: (_fieldErrorRef$curren = fieldErrorRef.current) === null || _fieldErrorRef$curren === void 0 ? void 0 : _fieldErrorRef$curren[path]
160
+ };
161
+ const result = filter({
162
+ path,
163
+ value,
164
+ data: internalDataRef.current,
165
+ props,
166
+ internal
137
167
  });
138
- if (remove) {
139
- if (result === false) {
140
- data = structuredClone(data);
141
- pointer.remove(data, path);
142
- }
143
- } else {
144
- if (typeof result !== 'undefined') {
145
- data = structuredClone(data);
146
- pointer.set(data, path, result);
147
- }
148
- }
168
+ mutate(path, result);
169
+ }
170
+ });
171
+ return data;
172
+ } else if (filter) {
173
+ Object.entries(filter).forEach(_ref2 => {
174
+ let [path, condition] = _ref2;
175
+ const exists = pointer.has(data, path);
176
+ if (exists) {
177
+ var _fieldPropsRef$curren, _fieldErrorRef$curren2;
178
+ const value = pointer.get(data, path);
179
+ const props = (_fieldPropsRef$curren = fieldPropsRef.current) === null || _fieldPropsRef$curren === void 0 ? void 0 : _fieldPropsRef$curren[path];
180
+ const internal = {
181
+ error: (_fieldErrorRef$curren2 = fieldErrorRef.current) === null || _fieldErrorRef$curren2 === void 0 ? void 0 : _fieldErrorRef$curren2[path]
182
+ };
183
+ const result = typeof condition === 'function' ? condition({
184
+ value,
185
+ data: internalDataRef.current,
186
+ props,
187
+ internal
188
+ }) : condition;
189
+ mutate(path, result);
149
190
  }
150
191
  });
151
192
  return data;
@@ -160,19 +201,20 @@ export default function Provider(props) {
160
201
  return data;
161
202
  }, [filterData, filterSubmitData, mutateDataHandler]);
162
203
  const fieldPropsRef = useRef({});
163
- const setProps = useCallback((path, props) => {
164
- fieldPropsRef.current[path] = _objectSpread(_objectSpread({}, fieldPropsRef.current[path]), props);
165
- for (const key in fieldPropsRef.current[path]) {
166
- if (!Object.prototype.hasOwnProperty.call(props, key)) {
167
- delete fieldPropsRef.current[path][key];
168
- }
169
- }
204
+ const valuePropsRef = useRef({});
205
+ const setFieldProps = useCallback((path, props) => {
206
+ fieldPropsRef.current[path] = props;
207
+ }, []);
208
+ const setValueProps = useCallback((path, props) => {
209
+ valuePropsRef.current[path] = props;
170
210
  }, []);
171
211
  const hasFieldWithAsyncValidator = useCallback(() => {
172
212
  for (const path in fieldPropsRef.current) {
173
- const props = fieldPropsRef.current[path];
174
- if (isAsync(props.validator) || isAsync(props.onBlurValidator)) {
175
- return true;
213
+ if (mountedFieldPathsRef.current.includes(path)) {
214
+ const props = fieldPropsRef.current[path];
215
+ if (isAsync(props.validator) || isAsync(props.onBlurValidator)) {
216
+ return true;
217
+ }
176
218
  }
177
219
  }
178
220
  return false;
@@ -222,6 +264,7 @@ export default function Provider(props) {
222
264
  extendAttachment === null || extendAttachment === void 0 ? void 0 : extendAttachment({
223
265
  filterDataHandler,
224
266
  hasErrors,
267
+ hasFieldError,
225
268
  setShowAllErrors,
226
269
  setSubmitState
227
270
  });
@@ -229,7 +272,7 @@ export default function Provider(props) {
229
272
  rerenderUseDataHook === null || rerenderUseDataHook === void 0 ? void 0 : rerenderUseDataHook();
230
273
  }
231
274
  }
232
- }, [extendAttachment, filterData, filterDataHandler, filterSubmitData, hasErrors, id, rerenderUseDataHook, setShowAllErrors, setSubmitState]);
275
+ }, [extendAttachment, filterData, filterDataHandler, filterSubmitData, hasErrors, hasFieldError, id, rerenderUseDataHook, setShowAllErrors, setSubmitState]);
233
276
  const storeInSession = useMemo(() => {
234
277
  return debounce(() => {
235
278
  var _window$sessionStorag2;
@@ -302,11 +345,7 @@ export default function Provider(props) {
302
345
  mountedFieldPathsRef.current = addListPath(mountedFieldPathsRef.current, path);
303
346
  }, []);
304
347
  const handleUnMountField = useCallback(path => {
305
- var _fieldPropsRef$curren;
306
348
  mountedFieldPathsRef.current = removeListPath(mountedFieldPathsRef.current, path);
307
- if ((_fieldPropsRef$curren = fieldPropsRef.current) !== null && _fieldPropsRef$curren !== void 0 && _fieldPropsRef$curren[path]) {
308
- delete fieldPropsRef.current[path];
309
- }
310
349
  }, []);
311
350
  const scrollToTop = useCallback(() => {
312
351
  if (typeof window !== 'undefined') {
@@ -436,11 +475,11 @@ export default function Provider(props) {
436
475
  }, [filterDataHandler, handleSubmitCall, id, mutateDataHandler, onSubmit, onSubmitComplete, scrollToTop, scrollTopOnSubmit, sessionStorageId, setSharedData, transformOut]);
437
476
  const fieldEventListenersRef = useRef([]);
438
477
  const setFieldEventListener = useCallback((path, type, callback) => {
439
- fieldEventListenersRef.current = fieldEventListenersRef.current.filter(_ref2 => {
478
+ fieldEventListenersRef.current = fieldEventListenersRef.current.filter(_ref3 => {
440
479
  let {
441
480
  path: p,
442
481
  type: t
443
- } = _ref2;
482
+ } = _ref3;
444
483
  return !(p === path && t === type);
445
484
  });
446
485
  fieldEventListenersRef.current.push({
@@ -504,10 +543,11 @@ export default function Provider(props) {
504
543
  setFieldEventListener,
505
544
  setFieldState,
506
545
  setFieldError,
507
- setProps,
546
+ setFieldProps,
547
+ setValueProps,
508
548
  hasErrors,
549
+ hasFieldError,
509
550
  hasFieldState,
510
- checkFieldStateFor,
511
551
  validateData,
512
552
  updateDataValue,
513
553
  setData,
@@ -523,8 +563,8 @@ export default function Provider(props) {
523
563
  errors: errorsRef.current,
524
564
  showAllErrors: showAllErrorsRef.current,
525
565
  fieldPropsRef,
566
+ valuePropsRef,
526
567
  ajvInstance: ajvRef.current,
527
- fieldProps: fieldPropsRef.current,
528
568
  id,
529
569
  data: internalDataRef.current,
530
570
  props
@@ -572,6 +612,7 @@ function useFormStatusBuffer(props) {
572
612
  }
573
613
  }, []);
574
614
  const hadCompleteRef = useRef(false);
615
+ const activeElementRef = useRef(null);
575
616
  useEffect(() => {
576
617
  const isTest = process.env.NODE_ENV === 'test';
577
618
  const minimum = minimumAsyncBehaviorTime !== null && minimumAsyncBehaviorTime !== void 0 ? minimumAsyncBehaviorTime : isTest ? 1 : 1000;
@@ -593,6 +634,7 @@ function useFormStatusBuffer(props) {
593
634
  hadCompleteRef.current = true;
594
635
  }
595
636
  if (formState === 'pending' && stateRef.current !== 'pending') {
637
+ activeElementRef.current = document.activeElement;
596
638
  clear();
597
639
  nowRef.current = Date.now();
598
640
  hadCompleteRef.current = false;
@@ -605,6 +647,10 @@ function useFormStatusBuffer(props) {
605
647
  if (hadCompleteRef.current) {
606
648
  setState('complete');
607
649
  }
650
+ window.requestAnimationFrame(() => {
651
+ var _activeElementRef$cur, _activeElementRef$cur2;
652
+ (_activeElementRef$cur = activeElementRef.current) === null || _activeElementRef$cur === void 0 ? void 0 : (_activeElementRef$cur2 = _activeElementRef$cur.focus) === null || _activeElementRef$cur2 === void 0 ? void 0 : _activeElementRef$cur2.call(_activeElementRef$cur);
653
+ });
608
654
  }, delay);
609
655
  timeoutRef.current.reset = setTimeout(() => {
610
656
  nowRef.current = 0;