@dnb/eufemia 10.22.0 → 10.23.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 (1077) hide show
  1. package/CHANGELOG.md +42 -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/anchor/Anchor.d.ts +2 -3
  8. package/cjs/components/anchor/Anchor.js +14 -23
  9. package/cjs/components/anchor/Anchor.js.map +1 -1
  10. package/cjs/components/anchor/style/anchor-mixins.scss +16 -10
  11. package/cjs/components/anchor/style/dnb-anchor.css +6 -12
  12. package/cjs/components/anchor/style/dnb-anchor.min.css +1 -1
  13. package/cjs/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +8 -16
  14. package/cjs/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  15. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +126 -78
  16. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  17. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +55 -52
  18. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.css +8 -16
  19. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  20. package/cjs/components/aria-live/useAriaLive.d.ts +1 -1
  21. package/cjs/components/breadcrumb/Breadcrumb.js +26 -17
  22. package/cjs/components/breadcrumb/Breadcrumb.js.map +1 -1
  23. package/cjs/components/breadcrumb/BreadcrumbItem.d.ts +6 -4
  24. package/cjs/components/breadcrumb/BreadcrumbItem.js +17 -9
  25. package/cjs/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  26. package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +29 -4
  27. package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  28. package/cjs/components/breadcrumb/style/dnb-breadcrumb.scss +32 -4
  29. package/cjs/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.css +9 -0
  30. package/cjs/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.min.css +1 -1
  31. package/cjs/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.scss +7 -0
  32. package/cjs/components/button/style/button--tertiary.scss +30 -75
  33. package/cjs/components/button/style/dnb-button.css +43 -49
  34. package/cjs/components/button/style/dnb-button.min.css +1 -1
  35. package/cjs/components/button/style/dnb-button.scss +46 -59
  36. package/cjs/components/button/style/themes/button-mixins.scss +26 -5
  37. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.css +29 -60
  38. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.min.css +12 -2
  39. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.css +44 -72
  40. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.min.css +16 -4
  41. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.scss +14 -16
  42. package/cjs/components/button/style/themes/dnb-button-theme-ui.css +29 -60
  43. package/cjs/components/button/style/themes/dnb-button-theme-ui.min.css +12 -2
  44. package/cjs/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
  45. package/cjs/components/card/Card.d.ts +15 -2
  46. package/cjs/components/card/Card.js +19 -7
  47. package/cjs/components/card/Card.js.map +1 -1
  48. package/cjs/components/card/CardDocs.d.ts +2 -0
  49. package/cjs/components/card/CardDocs.js +65 -0
  50. package/cjs/components/card/CardDocs.js.map +1 -0
  51. package/cjs/components/card/style/dnb-card.css +24 -5
  52. package/cjs/components/card/style/dnb-card.min.css +1 -1
  53. package/cjs/components/card/style/dnb-card.scss +47 -16
  54. package/cjs/components/checkbox/style/dnb-checkbox.css +3 -0
  55. package/cjs/components/checkbox/style/dnb-checkbox.min.css +1 -1
  56. package/cjs/components/checkbox/style/dnb-checkbox.scss +7 -0
  57. package/cjs/components/date-picker/DatePicker.d.ts +2 -0
  58. package/cjs/components/date-picker/DatePicker.js +2 -1
  59. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  60. package/cjs/components/date-picker/DatePickerInput.js +19 -3
  61. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  62. package/cjs/components/date-picker/DatePickerProvider.js +8 -3
  63. package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
  64. package/cjs/components/dropdown/style/dnb-dropdown.css +3 -0
  65. package/cjs/components/dropdown/style/dnb-dropdown.min.css +1 -1
  66. package/cjs/components/dropdown/style/dnb-dropdown.scss +4 -0
  67. package/cjs/components/form-label/FormLabel.js +1 -1
  68. package/cjs/components/form-label/FormLabel.js.map +1 -1
  69. package/cjs/components/form-label/style/dnb-form-label.css +3 -0
  70. package/cjs/components/form-label/style/dnb-form-label.min.css +1 -1
  71. package/cjs/components/form-label/style/dnb-form-label.scss +4 -0
  72. package/cjs/components/form-label/style/themes/dnb-form-label-theme-sbanken.css +0 -3
  73. package/cjs/components/form-label/style/themes/dnb-form-label-theme-sbanken.min.css +1 -1
  74. package/cjs/components/form-label/style/themes/dnb-form-label-theme-sbanken.scss +0 -8
  75. package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.css +0 -6
  76. package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
  77. package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.scss +0 -8
  78. package/cjs/components/heading/HeadingContext.d.ts +1 -1
  79. package/cjs/components/height-animation/style/dnb-height-animation.css +2 -2
  80. package/cjs/components/height-animation/style/dnb-height-animation.min.css +1 -1
  81. package/cjs/components/height-animation/style/dnb-height-animation.scss +3 -2
  82. package/cjs/components/number-format/NumberUtils.d.ts +1 -1
  83. package/cjs/components/radio/style/dnb-radio.css +4 -0
  84. package/cjs/components/radio/style/dnb-radio.min.css +1 -1
  85. package/cjs/components/radio/style/dnb-radio.scss +9 -0
  86. package/cjs/components/section/style/themes/dnb-section-theme-ui.css +3 -6
  87. package/cjs/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  88. package/cjs/components/skeleton/SkeletonHelper.d.ts +6 -6
  89. package/cjs/components/skeleton/style/dnb-skeleton.css +1 -0
  90. package/cjs/components/skeleton/style/dnb-skeleton.min.css +1 -1
  91. package/cjs/components/skeleton/style/dnb-skeleton.scss +1 -0
  92. package/cjs/components/slider/SliderInstance.js +1 -0
  93. package/cjs/components/slider/SliderInstance.js.map +1 -1
  94. package/cjs/components/slider/SliderThumb.js +4 -2
  95. package/cjs/components/slider/SliderThumb.js.map +1 -1
  96. package/cjs/components/step-indicator/StepIndicator.js +11 -5
  97. package/cjs/components/step-indicator/StepIndicator.js.map +1 -1
  98. package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.css +1 -1
  99. package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.min.css +1 -1
  100. package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.scss +1 -1
  101. package/cjs/components/table/TableScrollView.d.ts +5 -1
  102. package/cjs/components/table/TableScrollView.js +1 -0
  103. package/cjs/components/table/TableScrollView.js.map +1 -1
  104. package/cjs/components/table/TableTr.d.ts +1 -2
  105. package/cjs/components/table/TableTr.js.map +1 -1
  106. package/cjs/components/table/style/dnb-table.css +8 -1
  107. package/cjs/components/table/style/dnb-table.min.css +1 -1
  108. package/cjs/components/table/style/dnb-table.scss +7 -1
  109. package/cjs/components/table/style/table-header-buttons.scss +4 -1
  110. package/cjs/components/table/useTableAnimationHandler.d.ts +1 -1
  111. package/cjs/components/table/useTableAnimationHandler.js +3 -3
  112. package/cjs/components/table/useTableAnimationHandler.js.map +1 -1
  113. package/cjs/components/tag/Tag.d.ts +11 -0
  114. package/cjs/components/tag/Tag.js +55 -40
  115. package/cjs/components/tag/Tag.js.map +1 -1
  116. package/cjs/components/tag/style/dnb-tag.css +50 -86
  117. package/cjs/components/tag/style/dnb-tag.min.css +1 -1
  118. package/cjs/components/tag/style/dnb-tag.scss +37 -45
  119. package/cjs/components/tag/style/themes/tag-mixins.scss +24 -6
  120. package/cjs/components/tooltip/Tooltip.js +1 -1
  121. package/cjs/components/tooltip/Tooltip.js.map +1 -1
  122. package/cjs/elements/Element.d.ts +3 -4
  123. package/cjs/elements/Element.js.map +1 -1
  124. package/cjs/elements/code/style/themes/dnb-code-theme-sbanken.scss +5 -3
  125. package/cjs/extensions/forms/DataContext/At/At.js.map +1 -1
  126. package/cjs/extensions/forms/DataContext/Context.d.ts +31 -8
  127. package/cjs/extensions/forms/DataContext/Context.js +14 -3
  128. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  129. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +29 -16
  130. package/cjs/extensions/forms/DataContext/Provider/Provider.js +324 -77
  131. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  132. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.d.ts +3 -0
  133. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +93 -0
  134. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -0
  135. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +1 -1
  136. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  137. package/cjs/extensions/forms/Field/Date/Date.js +3 -3
  138. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  139. package/cjs/extensions/forms/Field/Expiry/Expiry.js +4 -4
  140. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  141. package/cjs/extensions/forms/Field/Number/Number.js +3 -3
  142. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  143. package/cjs/extensions/forms/Field/Password/Password.d.ts +1 -1
  144. package/cjs/extensions/forms/Field/Password/Password.js.map +1 -1
  145. package/cjs/extensions/forms/Field/Password/style/dnb-password.scss +1 -1
  146. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +4 -4
  147. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  148. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -1
  149. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  150. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +3 -3
  151. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  152. package/cjs/extensions/forms/Field/Selection/Selection.js +5 -5
  153. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  154. package/cjs/extensions/forms/Field/String/String.js +3 -3
  155. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  156. package/cjs/extensions/forms/Field/String/StringDocs.js +9 -4
  157. package/cjs/extensions/forms/Field/String/StringDocs.js.map +1 -1
  158. package/cjs/extensions/forms/Field/Toggle/Toggle.js +7 -7
  159. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  160. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -1
  161. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +41 -19
  162. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  163. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +2 -2
  164. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  165. package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  166. package/cjs/extensions/forms/Form/Handler/Handler.js +50 -8
  167. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  168. package/cjs/extensions/forms/Form/Handler/HandlerDocs.d.ts +3 -0
  169. package/cjs/extensions/forms/Form/Handler/HandlerDocs.js +49 -0
  170. package/cjs/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -0
  171. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.d.ts +6 -1
  172. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js +19 -10
  173. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  174. package/cjs/extensions/forms/Form/SubmitButton/SubmitButtonDocs.d.ts +2 -0
  175. package/cjs/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js +30 -0
  176. package/cjs/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js.map +1 -0
  177. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.d.ts +14 -0
  178. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +81 -0
  179. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -0
  180. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.d.ts +2 -0
  181. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js +25 -0
  182. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js.map +1 -0
  183. package/cjs/extensions/forms/Form/SubmitIndicator/index.d.ts +2 -0
  184. package/cjs/extensions/forms/Form/SubmitIndicator/index.js +27 -0
  185. package/cjs/extensions/forms/Form/SubmitIndicator/index.js.map +1 -0
  186. package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +99 -0
  187. package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -0
  188. package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +117 -0
  189. package/cjs/extensions/forms/Form/SubmitIndicator/style/index.d.ts +5 -0
  190. package/cjs/extensions/forms/Form/SubmitIndicator/style/index.js +4 -0
  191. package/cjs/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -0
  192. package/cjs/extensions/forms/Form/data-context/getData.d.ts +1 -1
  193. package/cjs/extensions/forms/Form/data-context/getData.js.map +1 -1
  194. package/cjs/extensions/forms/Form/data-context/useData.d.ts +3 -3
  195. package/cjs/extensions/forms/Form/data-context/useData.js +32 -12
  196. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  197. package/cjs/extensions/forms/Form/data-context/useError.d.ts +3 -2
  198. package/cjs/extensions/forms/Form/data-context/useError.js +8 -5
  199. package/cjs/extensions/forms/Form/data-context/useError.js.map +1 -1
  200. package/cjs/extensions/forms/Form/index.d.ts +1 -0
  201. package/cjs/extensions/forms/Form/index.js +7 -0
  202. package/cjs/extensions/forms/Form/index.js.map +1 -1
  203. package/cjs/extensions/forms/Iterate/Array/Array.js +1 -1
  204. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  205. package/cjs/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +1 -1
  206. package/cjs/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
  207. package/cjs/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +1 -1
  208. package/cjs/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
  209. package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.d.ts +1 -3
  210. package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js +4 -3
  211. package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  212. package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.d.ts +1 -3
  213. package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +6 -2
  214. package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  215. package/cjs/extensions/forms/StepsLayout/StepsLayout.d.ts +2 -2
  216. package/cjs/extensions/forms/StepsLayout/StepsLayout.js +54 -25
  217. package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  218. package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +3 -0
  219. package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.js +58 -0
  220. package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -0
  221. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.css +6 -1
  222. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  223. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +11 -1
  224. package/cjs/extensions/forms/Value/Boolean/Boolean.js +1 -1
  225. package/cjs/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  226. package/cjs/extensions/forms/Value/Number/Number.js +5 -5
  227. package/cjs/extensions/forms/Value/Number/Number.js.map +1 -1
  228. package/cjs/extensions/forms/Value/String/String.js +1 -1
  229. package/cjs/extensions/forms/Value/String/String.js.map +1 -1
  230. package/cjs/extensions/forms/hooks/DataValueDocs.js +3 -3
  231. package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  232. package/cjs/extensions/forms/hooks/index.d.ts +6 -3
  233. package/cjs/extensions/forms/hooks/index.js +4 -12
  234. package/cjs/extensions/forms/hooks/index.js.map +1 -1
  235. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +23 -0
  236. package/cjs/extensions/forms/hooks/useFieldProps.js +774 -0
  237. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -0
  238. package/cjs/extensions/forms/style/dnb-forms.css +105 -1
  239. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  240. package/cjs/extensions/forms/types.d.ts +67 -4
  241. package/cjs/extensions/forms/types.js +3 -2
  242. package/cjs/extensions/forms/types.js.map +1 -1
  243. package/cjs/extensions/forms/utils/ajv.d.ts +9 -7
  244. package/cjs/extensions/forms/utils/ajv.js +29 -16
  245. package/cjs/extensions/forms/utils/ajv.js.map +1 -1
  246. package/cjs/fragments/scroll-view/ScrollView.d.ts +2 -2
  247. package/cjs/fragments/scroll-view/ScrollView.js +4 -1
  248. package/cjs/fragments/scroll-view/ScrollView.js.map +1 -1
  249. package/cjs/shared/Context.d.ts +20 -11
  250. package/cjs/shared/Context.js.map +1 -1
  251. package/cjs/shared/Eufemia.d.ts +2 -2
  252. package/cjs/shared/Eufemia.js +2 -2
  253. package/cjs/shared/Eufemia.js.map +1 -1
  254. package/cjs/shared/Provider.js.map +1 -1
  255. package/cjs/shared/defaults.d.ts +3 -3
  256. package/cjs/shared/defaults.js.map +1 -1
  257. package/cjs/shared/helpers/debounce.d.ts +21 -30
  258. package/cjs/shared/helpers/debounce.js +23 -11
  259. package/cjs/shared/helpers/debounce.js.map +1 -1
  260. package/cjs/shared/helpers/isAsync.d.ts +7 -0
  261. package/cjs/shared/helpers/isAsync.js +20 -0
  262. package/cjs/shared/helpers/isAsync.js.map +1 -0
  263. package/cjs/shared/helpers/runCssVersionMismatchWarning.d.ts +8 -0
  264. package/cjs/shared/helpers/runCssVersionMismatchWarning.js +31 -0
  265. package/cjs/shared/helpers/runCssVersionMismatchWarning.js.map +1 -0
  266. package/cjs/{extensions/forms/hooks → shared/helpers}/useId.js +1 -1
  267. package/cjs/shared/helpers/useId.js.map +1 -0
  268. package/cjs/shared/helpers/useMountEffect.js.map +1 -0
  269. package/cjs/shared/helpers/useMounted.js.map +1 -0
  270. package/cjs/shared/helpers/useSharedState.js +15 -9
  271. package/cjs/shared/helpers/useSharedState.js.map +1 -1
  272. package/cjs/shared/helpers/useUnmountEffect.js.map +1 -0
  273. package/cjs/shared/helpers/useUpdateEffect.js.map +1 -0
  274. package/cjs/shared/helpers.js +2 -0
  275. package/cjs/shared/helpers.js.map +1 -1
  276. package/cjs/shared/index.d.ts +10 -10
  277. package/cjs/shared/index.js +7 -1
  278. package/cjs/shared/index.js.map +1 -1
  279. package/cjs/shared/locales/en-GB.d.ts +1 -0
  280. package/cjs/shared/locales/en-GB.js +2 -1
  281. package/cjs/shared/locales/en-GB.js.map +1 -1
  282. package/cjs/shared/locales/en-US.d.ts +1 -0
  283. package/cjs/shared/locales/index.d.ts +4 -2
  284. package/cjs/shared/locales/index.js +2 -1
  285. package/cjs/shared/locales/index.js.map +1 -1
  286. package/cjs/shared/locales/nb-NO.d.ts +1 -0
  287. package/cjs/shared/locales/nb-NO.js +2 -1
  288. package/cjs/shared/locales/nb-NO.js.map +1 -1
  289. package/cjs/shared/types.d.ts +4 -1
  290. package/cjs/shared/types.js.map +1 -1
  291. package/cjs/shared/useLocale.d.ts +2 -0
  292. package/cjs/shared/useLocale.js +37 -0
  293. package/cjs/shared/useLocale.js.map +1 -0
  294. package/cjs/style/core/scopes.scss +3 -0
  295. package/cjs/style/dnb-ui-basis.css +1 -0
  296. package/cjs/style/dnb-ui-basis.min.css +1 -1
  297. package/cjs/style/dnb-ui-body.css +1 -0
  298. package/cjs/style/dnb-ui-body.min.css +1 -1
  299. package/cjs/style/dnb-ui-components.css +281 -160
  300. package/cjs/style/dnb-ui-components.min.css +3 -3
  301. package/cjs/style/dnb-ui-core.css +1 -0
  302. package/cjs/style/dnb-ui-core.min.css +1 -1
  303. package/cjs/style/dnb-ui-extensions.css +105 -1
  304. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  305. package/cjs/style/dnb-ui-forms.css +105 -1
  306. package/cjs/style/dnb-ui-forms.min.css +1 -1
  307. package/cjs/style/dnb-ui-forms.scss +1 -0
  308. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +3 -6
  309. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  310. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +427 -250
  311. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +16 -6
  312. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +3 -6
  313. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  314. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +105 -1
  315. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  316. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +105 -1
  317. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  318. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +5 -2
  319. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  320. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +566 -315
  321. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +20 -8
  322. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +5 -2
  323. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  324. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +105 -1
  325. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  326. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +105 -1
  327. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  328. package/cjs/style/themes/theme-ui/ui-theme-basis.css +3 -6
  329. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  330. package/cjs/style/themes/theme-ui/ui-theme-components.css +427 -250
  331. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +16 -6
  332. package/cjs/style/themes/theme-ui/ui-theme-elements.css +3 -6
  333. package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  334. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +105 -1
  335. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  336. package/cjs/style/themes/theme-ui/ui-theme-forms.css +105 -1
  337. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  338. package/cjs/style/themes/theme-ui/ui-theme-tags.css +3 -6
  339. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  340. package/components/accordion/Accordion.js +1 -1
  341. package/components/accordion/Accordion.js.map +1 -1
  342. package/components/accordion/AccordionContext.d.ts +1 -1
  343. package/components/accordion/AccordionGroup.js +1 -1
  344. package/components/accordion/AccordionGroup.js.map +1 -1
  345. package/components/anchor/Anchor.d.ts +2 -3
  346. package/components/anchor/Anchor.js +14 -23
  347. package/components/anchor/Anchor.js.map +1 -1
  348. package/components/anchor/style/anchor-mixins.scss +16 -10
  349. package/components/anchor/style/dnb-anchor.css +6 -12
  350. package/components/anchor/style/dnb-anchor.min.css +1 -1
  351. package/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +8 -16
  352. package/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  353. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +126 -78
  354. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  355. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +55 -52
  356. package/components/anchor/style/themes/dnb-anchor-theme-ui.css +8 -16
  357. package/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  358. package/components/aria-live/useAriaLive.d.ts +1 -1
  359. package/components/breadcrumb/Breadcrumb.js +27 -18
  360. package/components/breadcrumb/Breadcrumb.js.map +1 -1
  361. package/components/breadcrumb/BreadcrumbItem.d.ts +6 -4
  362. package/components/breadcrumb/BreadcrumbItem.js +18 -10
  363. package/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  364. package/components/breadcrumb/style/dnb-breadcrumb.css +29 -4
  365. package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  366. package/components/breadcrumb/style/dnb-breadcrumb.scss +32 -4
  367. package/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.css +9 -0
  368. package/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.min.css +1 -1
  369. package/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.scss +7 -0
  370. package/components/button/style/button--tertiary.scss +30 -75
  371. package/components/button/style/dnb-button.css +43 -49
  372. package/components/button/style/dnb-button.min.css +1 -1
  373. package/components/button/style/dnb-button.scss +46 -59
  374. package/components/button/style/themes/button-mixins.scss +26 -5
  375. package/components/button/style/themes/dnb-button-theme-eiendom.css +29 -60
  376. package/components/button/style/themes/dnb-button-theme-eiendom.min.css +12 -2
  377. package/components/button/style/themes/dnb-button-theme-sbanken.css +44 -72
  378. package/components/button/style/themes/dnb-button-theme-sbanken.min.css +16 -4
  379. package/components/button/style/themes/dnb-button-theme-sbanken.scss +14 -16
  380. package/components/button/style/themes/dnb-button-theme-ui.css +29 -60
  381. package/components/button/style/themes/dnb-button-theme-ui.min.css +12 -2
  382. package/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
  383. package/components/card/Card.d.ts +15 -2
  384. package/components/card/Card.js +19 -7
  385. package/components/card/Card.js.map +1 -1
  386. package/components/card/CardDocs.d.ts +2 -0
  387. package/components/card/CardDocs.js +58 -0
  388. package/components/card/CardDocs.js.map +1 -0
  389. package/components/card/style/dnb-card.css +24 -5
  390. package/components/card/style/dnb-card.min.css +1 -1
  391. package/components/card/style/dnb-card.scss +47 -16
  392. package/components/checkbox/style/dnb-checkbox.css +3 -0
  393. package/components/checkbox/style/dnb-checkbox.min.css +1 -1
  394. package/components/checkbox/style/dnb-checkbox.scss +7 -0
  395. package/components/date-picker/DatePicker.d.ts +2 -0
  396. package/components/date-picker/DatePicker.js +2 -1
  397. package/components/date-picker/DatePicker.js.map +1 -1
  398. package/components/date-picker/DatePickerInput.js +19 -3
  399. package/components/date-picker/DatePickerInput.js.map +1 -1
  400. package/components/date-picker/DatePickerProvider.js +8 -3
  401. package/components/date-picker/DatePickerProvider.js.map +1 -1
  402. package/components/dropdown/style/dnb-dropdown.css +3 -0
  403. package/components/dropdown/style/dnb-dropdown.min.css +1 -1
  404. package/components/dropdown/style/dnb-dropdown.scss +4 -0
  405. package/components/form-label/FormLabel.js +1 -1
  406. package/components/form-label/FormLabel.js.map +1 -1
  407. package/components/form-label/style/dnb-form-label.css +3 -0
  408. package/components/form-label/style/dnb-form-label.min.css +1 -1
  409. package/components/form-label/style/dnb-form-label.scss +4 -0
  410. package/components/form-label/style/themes/dnb-form-label-theme-sbanken.css +0 -3
  411. package/components/form-label/style/themes/dnb-form-label-theme-sbanken.min.css +1 -1
  412. package/components/form-label/style/themes/dnb-form-label-theme-sbanken.scss +0 -8
  413. package/components/form-label/style/themes/dnb-form-label-theme-ui.css +0 -6
  414. package/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
  415. package/components/form-label/style/themes/dnb-form-label-theme-ui.scss +0 -8
  416. package/components/heading/HeadingContext.d.ts +1 -1
  417. package/components/height-animation/style/dnb-height-animation.css +2 -2
  418. package/components/height-animation/style/dnb-height-animation.min.css +1 -1
  419. package/components/height-animation/style/dnb-height-animation.scss +3 -2
  420. package/components/number-format/NumberUtils.d.ts +1 -1
  421. package/components/radio/style/dnb-radio.css +4 -0
  422. package/components/radio/style/dnb-radio.min.css +1 -1
  423. package/components/radio/style/dnb-radio.scss +9 -0
  424. package/components/section/style/themes/dnb-section-theme-ui.css +3 -6
  425. package/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  426. package/components/skeleton/SkeletonHelper.d.ts +6 -6
  427. package/components/skeleton/style/dnb-skeleton.css +1 -0
  428. package/components/skeleton/style/dnb-skeleton.min.css +1 -1
  429. package/components/skeleton/style/dnb-skeleton.scss +1 -0
  430. package/components/slider/SliderInstance.js +1 -0
  431. package/components/slider/SliderInstance.js.map +1 -1
  432. package/components/slider/SliderThumb.js +4 -2
  433. package/components/slider/SliderThumb.js.map +1 -1
  434. package/components/step-indicator/StepIndicator.js +11 -6
  435. package/components/step-indicator/StepIndicator.js.map +1 -1
  436. package/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.css +1 -1
  437. package/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.min.css +1 -1
  438. package/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.scss +1 -1
  439. package/components/table/TableScrollView.d.ts +5 -1
  440. package/components/table/TableScrollView.js +1 -0
  441. package/components/table/TableScrollView.js.map +1 -1
  442. package/components/table/TableTr.d.ts +1 -2
  443. package/components/table/TableTr.js.map +1 -1
  444. package/components/table/style/dnb-table.css +8 -1
  445. package/components/table/style/dnb-table.min.css +1 -1
  446. package/components/table/style/dnb-table.scss +7 -1
  447. package/components/table/style/table-header-buttons.scss +4 -1
  448. package/components/table/useTableAnimationHandler.d.ts +1 -1
  449. package/components/table/useTableAnimationHandler.js +3 -3
  450. package/components/table/useTableAnimationHandler.js.map +1 -1
  451. package/components/tag/Tag.d.ts +11 -0
  452. package/components/tag/Tag.js +54 -39
  453. package/components/tag/Tag.js.map +1 -1
  454. package/components/tag/style/dnb-tag.css +50 -86
  455. package/components/tag/style/dnb-tag.min.css +1 -1
  456. package/components/tag/style/dnb-tag.scss +37 -45
  457. package/components/tag/style/themes/tag-mixins.scss +24 -6
  458. package/components/tooltip/Tooltip.js +1 -1
  459. package/components/tooltip/Tooltip.js.map +1 -1
  460. package/elements/Element.d.ts +3 -4
  461. package/elements/Element.js.map +1 -1
  462. package/elements/code/style/themes/dnb-code-theme-sbanken.scss +5 -3
  463. package/es/components/accordion/Accordion.js +1 -1
  464. package/es/components/accordion/Accordion.js.map +1 -1
  465. package/es/components/accordion/AccordionContext.d.ts +1 -1
  466. package/es/components/accordion/AccordionGroup.js +1 -1
  467. package/es/components/accordion/AccordionGroup.js.map +1 -1
  468. package/es/components/anchor/Anchor.d.ts +2 -3
  469. package/es/components/anchor/Anchor.js +14 -23
  470. package/es/components/anchor/Anchor.js.map +1 -1
  471. package/es/components/anchor/style/anchor-mixins.scss +16 -10
  472. package/es/components/anchor/style/dnb-anchor.css +6 -12
  473. package/es/components/anchor/style/dnb-anchor.min.css +1 -1
  474. package/es/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +8 -16
  475. package/es/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  476. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +126 -78
  477. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  478. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +55 -52
  479. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.css +8 -16
  480. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  481. package/es/components/aria-live/useAriaLive.d.ts +1 -1
  482. package/es/components/breadcrumb/Breadcrumb.js +27 -18
  483. package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
  484. package/es/components/breadcrumb/BreadcrumbItem.d.ts +6 -4
  485. package/es/components/breadcrumb/BreadcrumbItem.js +18 -10
  486. package/es/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  487. package/es/components/breadcrumb/style/dnb-breadcrumb.css +29 -4
  488. package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  489. package/es/components/breadcrumb/style/dnb-breadcrumb.scss +32 -4
  490. package/es/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.css +9 -0
  491. package/es/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.min.css +1 -1
  492. package/es/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.scss +7 -0
  493. package/es/components/button/style/button--tertiary.scss +30 -75
  494. package/es/components/button/style/dnb-button.css +43 -49
  495. package/es/components/button/style/dnb-button.min.css +1 -1
  496. package/es/components/button/style/dnb-button.scss +46 -59
  497. package/es/components/button/style/themes/button-mixins.scss +26 -5
  498. package/es/components/button/style/themes/dnb-button-theme-eiendom.css +29 -60
  499. package/es/components/button/style/themes/dnb-button-theme-eiendom.min.css +12 -2
  500. package/es/components/button/style/themes/dnb-button-theme-sbanken.css +44 -72
  501. package/es/components/button/style/themes/dnb-button-theme-sbanken.min.css +16 -4
  502. package/es/components/button/style/themes/dnb-button-theme-sbanken.scss +14 -16
  503. package/es/components/button/style/themes/dnb-button-theme-ui.css +29 -60
  504. package/es/components/button/style/themes/dnb-button-theme-ui.min.css +12 -2
  505. package/es/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
  506. package/es/components/card/Card.d.ts +15 -2
  507. package/es/components/card/Card.js +19 -7
  508. package/es/components/card/Card.js.map +1 -1
  509. package/es/components/card/CardDocs.d.ts +2 -0
  510. package/es/components/card/CardDocs.js +58 -0
  511. package/es/components/card/CardDocs.js.map +1 -0
  512. package/es/components/card/style/dnb-card.css +24 -5
  513. package/es/components/card/style/dnb-card.min.css +1 -1
  514. package/es/components/card/style/dnb-card.scss +47 -16
  515. package/es/components/checkbox/style/dnb-checkbox.css +3 -0
  516. package/es/components/checkbox/style/dnb-checkbox.min.css +1 -1
  517. package/es/components/checkbox/style/dnb-checkbox.scss +7 -0
  518. package/es/components/date-picker/DatePicker.d.ts +2 -0
  519. package/es/components/date-picker/DatePicker.js +2 -1
  520. package/es/components/date-picker/DatePicker.js.map +1 -1
  521. package/es/components/date-picker/DatePickerInput.js +19 -3
  522. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  523. package/es/components/date-picker/DatePickerProvider.js +8 -3
  524. package/es/components/date-picker/DatePickerProvider.js.map +1 -1
  525. package/es/components/dropdown/style/dnb-dropdown.css +3 -0
  526. package/es/components/dropdown/style/dnb-dropdown.min.css +1 -1
  527. package/es/components/dropdown/style/dnb-dropdown.scss +4 -0
  528. package/es/components/form-label/FormLabel.js +1 -1
  529. package/es/components/form-label/FormLabel.js.map +1 -1
  530. package/es/components/form-label/style/dnb-form-label.css +3 -0
  531. package/es/components/form-label/style/dnb-form-label.min.css +1 -1
  532. package/es/components/form-label/style/dnb-form-label.scss +4 -0
  533. package/es/components/form-label/style/themes/dnb-form-label-theme-sbanken.css +0 -3
  534. package/es/components/form-label/style/themes/dnb-form-label-theme-sbanken.min.css +1 -1
  535. package/es/components/form-label/style/themes/dnb-form-label-theme-sbanken.scss +0 -8
  536. package/es/components/form-label/style/themes/dnb-form-label-theme-ui.css +0 -6
  537. package/es/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
  538. package/es/components/form-label/style/themes/dnb-form-label-theme-ui.scss +0 -8
  539. package/es/components/heading/HeadingContext.d.ts +1 -1
  540. package/es/components/height-animation/style/dnb-height-animation.css +2 -2
  541. package/es/components/height-animation/style/dnb-height-animation.min.css +1 -1
  542. package/es/components/height-animation/style/dnb-height-animation.scss +3 -2
  543. package/es/components/number-format/NumberUtils.d.ts +1 -1
  544. package/es/components/radio/style/dnb-radio.css +4 -0
  545. package/es/components/radio/style/dnb-radio.min.css +1 -1
  546. package/es/components/radio/style/dnb-radio.scss +9 -0
  547. package/es/components/section/style/themes/dnb-section-theme-ui.css +3 -6
  548. package/es/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  549. package/es/components/skeleton/SkeletonHelper.d.ts +6 -6
  550. package/es/components/skeleton/style/dnb-skeleton.css +1 -0
  551. package/es/components/skeleton/style/dnb-skeleton.min.css +1 -1
  552. package/es/components/skeleton/style/dnb-skeleton.scss +1 -0
  553. package/es/components/slider/SliderInstance.js +1 -0
  554. package/es/components/slider/SliderInstance.js.map +1 -1
  555. package/es/components/slider/SliderThumb.js +4 -2
  556. package/es/components/slider/SliderThumb.js.map +1 -1
  557. package/es/components/step-indicator/StepIndicator.js +11 -6
  558. package/es/components/step-indicator/StepIndicator.js.map +1 -1
  559. package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.css +1 -1
  560. package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.min.css +1 -1
  561. package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.scss +1 -1
  562. package/es/components/table/TableScrollView.d.ts +5 -1
  563. package/es/components/table/TableScrollView.js +1 -0
  564. package/es/components/table/TableScrollView.js.map +1 -1
  565. package/es/components/table/TableTr.d.ts +1 -2
  566. package/es/components/table/TableTr.js.map +1 -1
  567. package/es/components/table/style/dnb-table.css +8 -1
  568. package/es/components/table/style/dnb-table.min.css +1 -1
  569. package/es/components/table/style/dnb-table.scss +7 -1
  570. package/es/components/table/style/table-header-buttons.scss +4 -1
  571. package/es/components/table/useTableAnimationHandler.d.ts +1 -1
  572. package/es/components/table/useTableAnimationHandler.js +3 -3
  573. package/es/components/table/useTableAnimationHandler.js.map +1 -1
  574. package/es/components/tag/Tag.d.ts +11 -0
  575. package/es/components/tag/Tag.js +54 -39
  576. package/es/components/tag/Tag.js.map +1 -1
  577. package/es/components/tag/style/dnb-tag.css +50 -86
  578. package/es/components/tag/style/dnb-tag.min.css +1 -1
  579. package/es/components/tag/style/dnb-tag.scss +37 -45
  580. package/es/components/tag/style/themes/tag-mixins.scss +24 -6
  581. package/es/components/tooltip/Tooltip.js +1 -1
  582. package/es/components/tooltip/Tooltip.js.map +1 -1
  583. package/es/elements/Element.d.ts +3 -4
  584. package/es/elements/Element.js.map +1 -1
  585. package/es/elements/code/style/themes/dnb-code-theme-sbanken.scss +5 -3
  586. package/es/extensions/forms/DataContext/At/At.js.map +1 -1
  587. package/es/extensions/forms/DataContext/Context.d.ts +31 -8
  588. package/es/extensions/forms/DataContext/Context.js +14 -3
  589. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  590. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +29 -16
  591. package/es/extensions/forms/DataContext/Provider/Provider.js +321 -75
  592. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  593. package/es/extensions/forms/DataContext/Provider/ProviderDocs.d.ts +3 -0
  594. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +85 -0
  595. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -0
  596. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +2 -2
  597. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  598. package/es/extensions/forms/Field/Date/Date.js +4 -4
  599. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  600. package/es/extensions/forms/Field/Expiry/Expiry.js +5 -5
  601. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  602. package/es/extensions/forms/Field/Number/Number.js +4 -4
  603. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  604. package/es/extensions/forms/Field/Password/Password.d.ts +1 -1
  605. package/es/extensions/forms/Field/Password/Password.js.map +1 -1
  606. package/es/extensions/forms/Field/Password/style/dnb-password.scss +1 -1
  607. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +5 -5
  608. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  609. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -1
  610. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  611. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -4
  612. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  613. package/es/extensions/forms/Field/Selection/Selection.js +6 -6
  614. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  615. package/es/extensions/forms/Field/String/String.js +4 -4
  616. package/es/extensions/forms/Field/String/String.js.map +1 -1
  617. package/es/extensions/forms/Field/String/StringDocs.js +9 -4
  618. package/es/extensions/forms/Field/String/StringDocs.js.map +1 -1
  619. package/es/extensions/forms/Field/Toggle/Toggle.js +8 -8
  620. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  621. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -1
  622. package/es/extensions/forms/FieldBlock/FieldBlock.js +41 -20
  623. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  624. package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +2 -2
  625. package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  626. package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  627. package/es/extensions/forms/Form/Handler/Handler.js +45 -9
  628. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  629. package/es/extensions/forms/Form/Handler/HandlerDocs.d.ts +3 -0
  630. package/es/extensions/forms/Form/Handler/HandlerDocs.js +39 -0
  631. package/es/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -0
  632. package/es/extensions/forms/Form/SubmitButton/SubmitButton.d.ts +6 -1
  633. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js +21 -12
  634. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  635. package/es/extensions/forms/Form/SubmitButton/SubmitButtonDocs.d.ts +2 -0
  636. package/es/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js +23 -0
  637. package/es/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js.map +1 -0
  638. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.d.ts +14 -0
  639. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +69 -0
  640. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -0
  641. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.d.ts +2 -0
  642. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js +18 -0
  643. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js.map +1 -0
  644. package/es/extensions/forms/Form/SubmitIndicator/index.d.ts +2 -0
  645. package/es/extensions/forms/Form/SubmitIndicator/index.js +3 -0
  646. package/es/extensions/forms/Form/SubmitIndicator/index.js.map +1 -0
  647. package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +99 -0
  648. package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -0
  649. package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +117 -0
  650. package/es/extensions/forms/Form/SubmitIndicator/style/index.d.ts +5 -0
  651. package/es/extensions/forms/Form/SubmitIndicator/style/index.js +1 -0
  652. package/es/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -0
  653. package/es/extensions/forms/Form/data-context/getData.d.ts +1 -1
  654. package/es/extensions/forms/Form/data-context/getData.js.map +1 -1
  655. package/es/extensions/forms/Form/data-context/useData.d.ts +3 -3
  656. package/es/extensions/forms/Form/data-context/useData.js +30 -12
  657. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  658. package/es/extensions/forms/Form/data-context/useError.d.ts +3 -2
  659. package/es/extensions/forms/Form/data-context/useError.js +7 -6
  660. package/es/extensions/forms/Form/data-context/useError.js.map +1 -1
  661. package/es/extensions/forms/Form/index.d.ts +1 -0
  662. package/es/extensions/forms/Form/index.js +1 -0
  663. package/es/extensions/forms/Form/index.js.map +1 -1
  664. package/es/extensions/forms/Iterate/Array/Array.js +2 -2
  665. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  666. package/es/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +2 -2
  667. package/es/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
  668. package/es/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +2 -2
  669. package/es/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
  670. package/es/extensions/forms/StepsLayout/NextButton/NextButton.d.ts +1 -3
  671. package/es/extensions/forms/StepsLayout/NextButton/NextButton.js +4 -3
  672. package/es/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  673. package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.d.ts +1 -3
  674. package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +6 -2
  675. package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  676. package/es/extensions/forms/StepsLayout/StepsLayout.d.ts +2 -2
  677. package/es/extensions/forms/StepsLayout/StepsLayout.js +55 -26
  678. package/es/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  679. package/es/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +3 -0
  680. package/es/extensions/forms/StepsLayout/StepsLayoutDocs.js +50 -0
  681. package/es/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -0
  682. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.css +6 -1
  683. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  684. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +11 -1
  685. package/es/extensions/forms/Value/Boolean/Boolean.js +2 -2
  686. package/es/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  687. package/es/extensions/forms/Value/Number/Number.js +5 -5
  688. package/es/extensions/forms/Value/Number/Number.js.map +1 -1
  689. package/es/extensions/forms/Value/String/String.js +2 -2
  690. package/es/extensions/forms/Value/String/String.js.map +1 -1
  691. package/es/extensions/forms/hooks/DataValueDocs.js +3 -3
  692. package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  693. package/es/extensions/forms/hooks/index.d.ts +6 -3
  694. package/es/extensions/forms/hooks/index.js +2 -3
  695. package/es/extensions/forms/hooks/index.js.map +1 -1
  696. package/es/extensions/forms/hooks/useFieldProps.d.ts +23 -0
  697. package/es/extensions/forms/hooks/useFieldProps.js +749 -0
  698. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -0
  699. package/es/extensions/forms/style/dnb-forms.css +105 -1
  700. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  701. package/es/extensions/forms/types.d.ts +67 -4
  702. package/es/extensions/forms/types.js +3 -2
  703. package/es/extensions/forms/types.js.map +1 -1
  704. package/es/extensions/forms/utils/ajv.d.ts +9 -7
  705. package/es/extensions/forms/utils/ajv.js +29 -14
  706. package/es/extensions/forms/utils/ajv.js.map +1 -1
  707. package/es/fragments/scroll-view/ScrollView.d.ts +2 -2
  708. package/es/fragments/scroll-view/ScrollView.js +4 -1
  709. package/es/fragments/scroll-view/ScrollView.js.map +1 -1
  710. package/es/shared/Context.d.ts +20 -11
  711. package/es/shared/Context.js.map +1 -1
  712. package/es/shared/Eufemia.d.ts +2 -2
  713. package/es/shared/Eufemia.js +2 -2
  714. package/es/shared/Eufemia.js.map +1 -1
  715. package/es/shared/Provider.js.map +1 -1
  716. package/es/shared/defaults.d.ts +3 -3
  717. package/es/shared/defaults.js.map +1 -1
  718. package/es/shared/helpers/debounce.d.ts +21 -30
  719. package/es/shared/helpers/debounce.js +21 -9
  720. package/es/shared/helpers/debounce.js.map +1 -1
  721. package/es/shared/helpers/isAsync.d.ts +7 -0
  722. package/es/shared/helpers/isAsync.js +14 -0
  723. package/es/shared/helpers/isAsync.js.map +1 -0
  724. package/es/shared/helpers/runCssVersionMismatchWarning.d.ts +8 -0
  725. package/es/shared/helpers/runCssVersionMismatchWarning.js +25 -0
  726. package/es/shared/helpers/runCssVersionMismatchWarning.js.map +1 -0
  727. package/es/{extensions/forms/hooks → shared/helpers}/useId.js +1 -1
  728. package/es/shared/helpers/useId.js.map +1 -0
  729. package/es/shared/helpers/useMountEffect.js.map +1 -0
  730. package/es/shared/helpers/useMounted.js.map +1 -0
  731. package/es/shared/helpers/useSharedState.js +15 -9
  732. package/es/shared/helpers/useSharedState.js.map +1 -1
  733. package/es/shared/helpers/useUnmountEffect.js.map +1 -0
  734. package/es/shared/helpers/useUpdateEffect.js.map +1 -0
  735. package/es/shared/helpers.js +2 -0
  736. package/es/shared/helpers.js.map +1 -1
  737. package/es/shared/index.d.ts +10 -10
  738. package/es/shared/index.js +9 -11
  739. package/es/shared/index.js.map +1 -1
  740. package/es/shared/locales/en-GB.d.ts +1 -0
  741. package/es/shared/locales/en-GB.js +2 -1
  742. package/es/shared/locales/en-GB.js.map +1 -1
  743. package/es/shared/locales/en-US.d.ts +1 -0
  744. package/es/shared/locales/index.d.ts +4 -2
  745. package/es/shared/locales/index.js +2 -1
  746. package/es/shared/locales/index.js.map +1 -1
  747. package/es/shared/locales/nb-NO.d.ts +1 -0
  748. package/es/shared/locales/nb-NO.js +2 -1
  749. package/es/shared/locales/nb-NO.js.map +1 -1
  750. package/es/shared/types.d.ts +4 -1
  751. package/es/shared/types.js.map +1 -1
  752. package/es/shared/useLocale.d.ts +2 -0
  753. package/es/shared/useLocale.js +29 -0
  754. package/es/shared/useLocale.js.map +1 -0
  755. package/es/style/core/scopes.scss +3 -0
  756. package/es/style/dnb-ui-basis.css +1 -0
  757. package/es/style/dnb-ui-basis.min.css +1 -1
  758. package/es/style/dnb-ui-body.css +1 -0
  759. package/es/style/dnb-ui-body.min.css +1 -1
  760. package/es/style/dnb-ui-components.css +281 -160
  761. package/es/style/dnb-ui-components.min.css +3 -3
  762. package/es/style/dnb-ui-core.css +1 -0
  763. package/es/style/dnb-ui-core.min.css +1 -1
  764. package/es/style/dnb-ui-extensions.css +105 -1
  765. package/es/style/dnb-ui-extensions.min.css +1 -1
  766. package/es/style/dnb-ui-forms.css +105 -1
  767. package/es/style/dnb-ui-forms.min.css +1 -1
  768. package/es/style/dnb-ui-forms.scss +1 -0
  769. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +3 -6
  770. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  771. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +427 -250
  772. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +16 -6
  773. package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +3 -6
  774. package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  775. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +105 -1
  776. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  777. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +105 -1
  778. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  779. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +5 -2
  780. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  781. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +566 -315
  782. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +20 -8
  783. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +5 -2
  784. package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  785. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +105 -1
  786. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  787. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +105 -1
  788. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  789. package/es/style/themes/theme-ui/ui-theme-basis.css +3 -6
  790. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  791. package/es/style/themes/theme-ui/ui-theme-components.css +427 -250
  792. package/es/style/themes/theme-ui/ui-theme-components.min.css +16 -6
  793. package/es/style/themes/theme-ui/ui-theme-elements.css +3 -6
  794. package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  795. package/es/style/themes/theme-ui/ui-theme-extensions.css +105 -1
  796. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  797. package/es/style/themes/theme-ui/ui-theme-forms.css +105 -1
  798. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  799. package/es/style/themes/theme-ui/ui-theme-tags.css +3 -6
  800. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  801. package/esm/dnb-ui-basis.min.mjs +1 -1
  802. package/esm/dnb-ui-components.min.mjs +1 -1
  803. package/esm/dnb-ui-elements.min.mjs +1 -1
  804. package/esm/dnb-ui-extensions.min.mjs +3 -3
  805. package/esm/dnb-ui-lib.min.mjs +1 -1
  806. package/extensions/forms/DataContext/At/At.js.map +1 -1
  807. package/extensions/forms/DataContext/Context.d.ts +31 -8
  808. package/extensions/forms/DataContext/Context.js +14 -3
  809. package/extensions/forms/DataContext/Context.js.map +1 -1
  810. package/extensions/forms/DataContext/Provider/Provider.d.ts +29 -16
  811. package/extensions/forms/DataContext/Provider/Provider.js +325 -78
  812. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  813. package/extensions/forms/DataContext/Provider/ProviderDocs.d.ts +3 -0
  814. package/extensions/forms/DataContext/Provider/ProviderDocs.js +85 -0
  815. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -0
  816. package/extensions/forms/Field/ArraySelection/ArraySelection.js +2 -2
  817. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  818. package/extensions/forms/Field/Date/Date.js +4 -4
  819. package/extensions/forms/Field/Date/Date.js.map +1 -1
  820. package/extensions/forms/Field/Expiry/Expiry.js +5 -5
  821. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  822. package/extensions/forms/Field/Number/Number.js +4 -4
  823. package/extensions/forms/Field/Number/Number.js.map +1 -1
  824. package/extensions/forms/Field/Password/Password.d.ts +1 -1
  825. package/extensions/forms/Field/Password/Password.js.map +1 -1
  826. package/extensions/forms/Field/Password/style/dnb-password.scss +1 -1
  827. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +5 -5
  828. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  829. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -1
  830. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  831. package/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -4
  832. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  833. package/extensions/forms/Field/Selection/Selection.js +6 -6
  834. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  835. package/extensions/forms/Field/String/String.js +4 -4
  836. package/extensions/forms/Field/String/String.js.map +1 -1
  837. package/extensions/forms/Field/String/StringDocs.js +9 -4
  838. package/extensions/forms/Field/String/StringDocs.js.map +1 -1
  839. package/extensions/forms/Field/Toggle/Toggle.js +8 -8
  840. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  841. package/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -1
  842. package/extensions/forms/FieldBlock/FieldBlock.js +42 -20
  843. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  844. package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +2 -2
  845. package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  846. package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  847. package/extensions/forms/Form/Handler/Handler.js +49 -9
  848. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  849. package/extensions/forms/Form/Handler/HandlerDocs.d.ts +3 -0
  850. package/extensions/forms/Form/Handler/HandlerDocs.js +39 -0
  851. package/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -0
  852. package/extensions/forms/Form/SubmitButton/SubmitButton.d.ts +6 -1
  853. package/extensions/forms/Form/SubmitButton/SubmitButton.js +21 -12
  854. package/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  855. package/extensions/forms/Form/SubmitButton/SubmitButtonDocs.d.ts +2 -0
  856. package/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js +23 -0
  857. package/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js.map +1 -0
  858. package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.d.ts +14 -0
  859. package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +69 -0
  860. package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -0
  861. package/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.d.ts +2 -0
  862. package/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js +18 -0
  863. package/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js.map +1 -0
  864. package/extensions/forms/Form/SubmitIndicator/index.d.ts +2 -0
  865. package/extensions/forms/Form/SubmitIndicator/index.js +3 -0
  866. package/extensions/forms/Form/SubmitIndicator/index.js.map +1 -0
  867. package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +99 -0
  868. package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -0
  869. package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +117 -0
  870. package/extensions/forms/Form/SubmitIndicator/style/index.d.ts +5 -0
  871. package/extensions/forms/Form/SubmitIndicator/style/index.js +1 -0
  872. package/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -0
  873. package/extensions/forms/Form/data-context/getData.d.ts +1 -1
  874. package/extensions/forms/Form/data-context/getData.js.map +1 -1
  875. package/extensions/forms/Form/data-context/useData.d.ts +3 -3
  876. package/extensions/forms/Form/data-context/useData.js +32 -12
  877. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  878. package/extensions/forms/Form/data-context/useError.d.ts +3 -2
  879. package/extensions/forms/Form/data-context/useError.js +8 -6
  880. package/extensions/forms/Form/data-context/useError.js.map +1 -1
  881. package/extensions/forms/Form/index.d.ts +1 -0
  882. package/extensions/forms/Form/index.js +1 -0
  883. package/extensions/forms/Form/index.js.map +1 -1
  884. package/extensions/forms/Iterate/Array/Array.js +2 -2
  885. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  886. package/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +2 -2
  887. package/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
  888. package/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +2 -2
  889. package/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
  890. package/extensions/forms/StepsLayout/NextButton/NextButton.d.ts +1 -3
  891. package/extensions/forms/StepsLayout/NextButton/NextButton.js +4 -3
  892. package/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  893. package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.d.ts +1 -3
  894. package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +6 -2
  895. package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  896. package/extensions/forms/StepsLayout/StepsLayout.d.ts +2 -2
  897. package/extensions/forms/StepsLayout/StepsLayout.js +55 -26
  898. package/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  899. package/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +3 -0
  900. package/extensions/forms/StepsLayout/StepsLayoutDocs.js +50 -0
  901. package/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -0
  902. package/extensions/forms/StepsLayout/style/dnb-steps-layout.css +6 -1
  903. package/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  904. package/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +11 -1
  905. package/extensions/forms/Value/Boolean/Boolean.js +2 -2
  906. package/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  907. package/extensions/forms/Value/Number/Number.js +5 -5
  908. package/extensions/forms/Value/Number/Number.js.map +1 -1
  909. package/extensions/forms/Value/String/String.js +2 -2
  910. package/extensions/forms/Value/String/String.js.map +1 -1
  911. package/extensions/forms/hooks/DataValueDocs.js +3 -3
  912. package/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  913. package/extensions/forms/hooks/index.d.ts +6 -3
  914. package/extensions/forms/hooks/index.js +2 -3
  915. package/extensions/forms/hooks/index.js.map +1 -1
  916. package/extensions/forms/hooks/useFieldProps.d.ts +23 -0
  917. package/extensions/forms/hooks/useFieldProps.js +764 -0
  918. package/extensions/forms/hooks/useFieldProps.js.map +1 -0
  919. package/extensions/forms/style/dnb-forms.css +105 -1
  920. package/extensions/forms/style/dnb-forms.min.css +1 -1
  921. package/extensions/forms/types.d.ts +67 -4
  922. package/extensions/forms/types.js +3 -2
  923. package/extensions/forms/types.js.map +1 -1
  924. package/extensions/forms/utils/ajv.d.ts +9 -7
  925. package/extensions/forms/utils/ajv.js +29 -14
  926. package/extensions/forms/utils/ajv.js.map +1 -1
  927. package/fragments/scroll-view/ScrollView.d.ts +2 -2
  928. package/fragments/scroll-view/ScrollView.js +4 -1
  929. package/fragments/scroll-view/ScrollView.js.map +1 -1
  930. package/package.json +1 -1
  931. package/shared/Context.d.ts +20 -11
  932. package/shared/Context.js.map +1 -1
  933. package/shared/Eufemia.d.ts +2 -2
  934. package/shared/Eufemia.js +2 -2
  935. package/shared/Eufemia.js.map +1 -1
  936. package/shared/Provider.js.map +1 -1
  937. package/shared/defaults.d.ts +3 -3
  938. package/shared/defaults.js.map +1 -1
  939. package/shared/helpers/debounce.d.ts +21 -30
  940. package/shared/helpers/debounce.js +23 -11
  941. package/shared/helpers/debounce.js.map +1 -1
  942. package/shared/helpers/isAsync.d.ts +7 -0
  943. package/shared/helpers/isAsync.js +14 -0
  944. package/shared/helpers/isAsync.js.map +1 -0
  945. package/shared/helpers/runCssVersionMismatchWarning.d.ts +8 -0
  946. package/shared/helpers/runCssVersionMismatchWarning.js +25 -0
  947. package/shared/helpers/runCssVersionMismatchWarning.js.map +1 -0
  948. package/{extensions/forms/hooks → shared/helpers}/useId.js +1 -1
  949. package/shared/helpers/useId.js.map +1 -0
  950. package/shared/helpers/useMountEffect.js.map +1 -0
  951. package/shared/helpers/useMounted.js.map +1 -0
  952. package/shared/helpers/useSharedState.js +15 -9
  953. package/shared/helpers/useSharedState.js.map +1 -1
  954. package/shared/helpers/useUnmountEffect.js.map +1 -0
  955. package/shared/helpers/useUpdateEffect.js.map +1 -0
  956. package/shared/helpers.js +2 -0
  957. package/shared/helpers.js.map +1 -1
  958. package/shared/index.d.ts +10 -10
  959. package/shared/index.js +9 -11
  960. package/shared/index.js.map +1 -1
  961. package/shared/locales/en-GB.d.ts +1 -0
  962. package/shared/locales/en-GB.js +2 -1
  963. package/shared/locales/en-GB.js.map +1 -1
  964. package/shared/locales/en-US.d.ts +1 -0
  965. package/shared/locales/index.d.ts +4 -2
  966. package/shared/locales/index.js +2 -1
  967. package/shared/locales/index.js.map +1 -1
  968. package/shared/locales/nb-NO.d.ts +1 -0
  969. package/shared/locales/nb-NO.js +2 -1
  970. package/shared/locales/nb-NO.js.map +1 -1
  971. package/shared/types.d.ts +4 -1
  972. package/shared/types.js.map +1 -1
  973. package/shared/useLocale.d.ts +2 -0
  974. package/shared/useLocale.js +29 -0
  975. package/shared/useLocale.js.map +1 -0
  976. package/style/core/scopes.scss +3 -0
  977. package/style/dnb-ui-basis.css +1 -0
  978. package/style/dnb-ui-basis.min.css +1 -1
  979. package/style/dnb-ui-body.css +1 -0
  980. package/style/dnb-ui-body.min.css +1 -1
  981. package/style/dnb-ui-components.css +281 -160
  982. package/style/dnb-ui-components.min.css +3 -3
  983. package/style/dnb-ui-core.css +1 -0
  984. package/style/dnb-ui-core.min.css +1 -1
  985. package/style/dnb-ui-extensions.css +105 -1
  986. package/style/dnb-ui-extensions.min.css +1 -1
  987. package/style/dnb-ui-forms.css +105 -1
  988. package/style/dnb-ui-forms.min.css +1 -1
  989. package/style/dnb-ui-forms.scss +1 -0
  990. package/style/themes/theme-eiendom/eiendom-theme-basis.css +3 -6
  991. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  992. package/style/themes/theme-eiendom/eiendom-theme-components.css +427 -250
  993. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +16 -6
  994. package/style/themes/theme-eiendom/eiendom-theme-elements.css +3 -6
  995. package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  996. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +105 -1
  997. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  998. package/style/themes/theme-eiendom/eiendom-theme-forms.css +105 -1
  999. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  1000. package/style/themes/theme-sbanken/sbanken-theme-basis.css +5 -2
  1001. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  1002. package/style/themes/theme-sbanken/sbanken-theme-components.css +566 -315
  1003. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +20 -8
  1004. package/style/themes/theme-sbanken/sbanken-theme-elements.css +5 -2
  1005. package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  1006. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +105 -1
  1007. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  1008. package/style/themes/theme-sbanken/sbanken-theme-forms.css +105 -1
  1009. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  1010. package/style/themes/theme-ui/ui-theme-basis.css +3 -6
  1011. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  1012. package/style/themes/theme-ui/ui-theme-components.css +427 -250
  1013. package/style/themes/theme-ui/ui-theme-components.min.css +16 -6
  1014. package/style/themes/theme-ui/ui-theme-elements.css +3 -6
  1015. package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  1016. package/style/themes/theme-ui/ui-theme-extensions.css +105 -1
  1017. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  1018. package/style/themes/theme-ui/ui-theme-forms.css +105 -1
  1019. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  1020. package/style/themes/theme-ui/ui-theme-tags.css +3 -6
  1021. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  1022. package/umd/dnb-ui-basis.min.js +1 -1
  1023. package/umd/dnb-ui-components.min.js +1 -1
  1024. package/umd/dnb-ui-elements.min.js +1 -1
  1025. package/umd/dnb-ui-extensions.min.js +3 -3
  1026. package/umd/dnb-ui-lib.min.js +1 -1
  1027. package/cjs/extensions/forms/hooks/useDataValue.d.ts +0 -18
  1028. package/cjs/extensions/forms/hooks/useDataValue.js +0 -461
  1029. package/cjs/extensions/forms/hooks/useDataValue.js.map +0 -1
  1030. package/cjs/extensions/forms/hooks/useId.js.map +0 -1
  1031. package/cjs/extensions/forms/hooks/useMountEffect.js.map +0 -1
  1032. package/cjs/extensions/forms/hooks/useMounted.js.map +0 -1
  1033. package/cjs/extensions/forms/hooks/useUnmountEffect.js.map +0 -1
  1034. package/cjs/extensions/forms/hooks/useUpdateEffect.js.map +0 -1
  1035. package/es/extensions/forms/hooks/useDataValue.d.ts +0 -18
  1036. package/es/extensions/forms/hooks/useDataValue.js +0 -443
  1037. package/es/extensions/forms/hooks/useDataValue.js.map +0 -1
  1038. package/es/extensions/forms/hooks/useId.js.map +0 -1
  1039. package/es/extensions/forms/hooks/useMountEffect.js.map +0 -1
  1040. package/es/extensions/forms/hooks/useMounted.js.map +0 -1
  1041. package/es/extensions/forms/hooks/useUnmountEffect.js.map +0 -1
  1042. package/es/extensions/forms/hooks/useUpdateEffect.js.map +0 -1
  1043. package/extensions/forms/hooks/useDataValue.d.ts +0 -18
  1044. package/extensions/forms/hooks/useDataValue.js +0 -451
  1045. package/extensions/forms/hooks/useDataValue.js.map +0 -1
  1046. package/extensions/forms/hooks/useId.js.map +0 -1
  1047. package/extensions/forms/hooks/useMountEffect.js.map +0 -1
  1048. package/extensions/forms/hooks/useMounted.js.map +0 -1
  1049. package/extensions/forms/hooks/useUnmountEffect.js.map +0 -1
  1050. package/extensions/forms/hooks/useUpdateEffect.js.map +0 -1
  1051. /package/cjs/{extensions/forms/hooks → shared/helpers}/useId.d.ts +0 -0
  1052. /package/cjs/{extensions/forms/hooks → shared/helpers}/useMountEffect.d.ts +0 -0
  1053. /package/cjs/{extensions/forms/hooks → shared/helpers}/useMountEffect.js +0 -0
  1054. /package/cjs/{extensions/forms/hooks → shared/helpers}/useMounted.d.ts +0 -0
  1055. /package/cjs/{extensions/forms/hooks → shared/helpers}/useMounted.js +0 -0
  1056. /package/cjs/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.d.ts +0 -0
  1057. /package/cjs/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.js +0 -0
  1058. /package/cjs/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.d.ts +0 -0
  1059. /package/cjs/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.js +0 -0
  1060. /package/es/{extensions/forms/hooks → shared/helpers}/useId.d.ts +0 -0
  1061. /package/es/{extensions/forms/hooks → shared/helpers}/useMountEffect.d.ts +0 -0
  1062. /package/es/{extensions/forms/hooks → shared/helpers}/useMountEffect.js +0 -0
  1063. /package/es/{extensions/forms/hooks → shared/helpers}/useMounted.d.ts +0 -0
  1064. /package/es/{extensions/forms/hooks → shared/helpers}/useMounted.js +0 -0
  1065. /package/es/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.d.ts +0 -0
  1066. /package/es/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.js +0 -0
  1067. /package/es/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.d.ts +0 -0
  1068. /package/es/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.js +0 -0
  1069. /package/{extensions/forms/hooks → shared/helpers}/useId.d.ts +0 -0
  1070. /package/{extensions/forms/hooks → shared/helpers}/useMountEffect.d.ts +0 -0
  1071. /package/{extensions/forms/hooks → shared/helpers}/useMountEffect.js +0 -0
  1072. /package/{extensions/forms/hooks → shared/helpers}/useMounted.d.ts +0 -0
  1073. /package/{extensions/forms/hooks → shared/helpers}/useMounted.js +0 -0
  1074. /package/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.d.ts +0 -0
  1075. /package/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.js +0 -0
  1076. /package/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.d.ts +0 -0
  1077. /package/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.js +0 -0
@@ -3,10 +3,10 @@
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import React, { useContext } from 'react';
5
5
  import classnames from 'classnames';
6
- import { Button } from '../../../../components';
7
6
  import SharedContext from '../../../../shared/Context';
8
7
  import StepsContext from '../StepsContext';
9
8
  import ButtonRow from '../../Form/ButtonRow';
9
+ import SubmitButton from '../../Form/SubmitButton';
10
10
  function NextButton(props) {
11
11
  const sharedContext = useContext(SharedContext);
12
12
  const {
@@ -17,13 +17,14 @@ function NextButton(props) {
17
17
  children = sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.stepNext
18
18
  } = props;
19
19
  const stepsContext = useContext(StepsContext);
20
- return React.createElement(ButtonRow, null, React.createElement(Button, _extends({}, props, {
20
+ return React.createElement(ButtonRow, null, React.createElement(SubmitButton, _extends({
21
+ type: "button",
21
22
  className: classnames('dnb-forms-next-button', className),
22
23
  onClick: stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.handleNext,
23
24
  variant: variant,
24
25
  icon_position: icon_position,
25
26
  icon: icon
26
- }), children));
27
+ }, props), children));
27
28
  }
28
29
  NextButton._supportsSpacingProps = true;
29
30
  export default NextButton;
@@ -1 +1 @@
1
- {"version":3,"file":"NextButton.js","names":["React","useContext","classnames","Button","SharedContext","StepsContext","ButtonRow","NextButton","props","sharedContext","className","variant","icon_position","icon","children","translation","Forms","stepNext","stepsContext","createElement","_extends","onClick","handleNext","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/StepsLayout/NextButton/NextButton.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport classnames from 'classnames'\nimport type { ComponentProps } from '../../types'\nimport { Button } from '../../../../components'\nimport { ButtonProps } from '../../../../components/button/Button'\nimport SharedContext from '../../../../shared/Context'\nimport StepsContext from '../StepsContext'\nimport ButtonRow from '../../Form/ButtonRow'\n\nexport type Props = ComponentProps &\n ButtonProps & {\n children?: string\n }\n\nfunction NextButton(props: Props) {\n const sharedContext = useContext(SharedContext)\n const {\n className,\n variant = 'primary',\n icon_position = 'right',\n icon = 'chevron_right',\n children = sharedContext?.translation.Forms.stepNext,\n } = props\n const stepsContext = useContext(StepsContext)\n\n return (\n <ButtonRow>\n <Button\n {...props}\n className={classnames('dnb-forms-next-button', className)}\n onClick={stepsContext?.handleNext}\n variant={variant}\n icon_position={icon_position}\n icon={icon}\n >\n {children}\n </Button>\n </ButtonRow>\n )\n}\n\nNextButton._supportsSpacingProps = true\nexport default NextButton\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,YAAY;AAEnC,SAASC,MAAM,QAAQ,wBAAwB;AAE/C,OAAOC,aAAa,MAAM,4BAA4B;AACtD,OAAOC,YAAY,MAAM,iBAAiB;AAC1C,OAAOC,SAAS,MAAM,sBAAsB;AAO5C,SAASC,UAAUA,CAACC,KAAY,EAAE;EAChC,MAAMC,aAAa,GAAGR,UAAU,CAACG,aAAa,CAAC;EAC/C,MAAM;IACJM,SAAS;IACTC,OAAO,GAAG,SAAS;IACnBC,aAAa,GAAG,OAAO;IACvBC,IAAI,GAAG,eAAe;IACtBC,QAAQ,GAAGL,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEM,WAAW,CAACC,KAAK,CAACC;EAC9C,CAAC,GAAGT,KAAK;EACT,MAAMU,YAAY,GAAGjB,UAAU,CAACI,YAAY,CAAC;EAE7C,OACEL,KAAA,CAAAmB,aAAA,CAACb,SAAS,QACRN,KAAA,CAAAmB,aAAA,CAAChB,MAAM,EAAAiB,QAAA,KACDZ,KAAK;IACTE,SAAS,EAAER,UAAU,CAAC,uBAAuB,EAAEQ,SAAS,CAAE;IAC1DW,OAAO,EAAEH,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEI,UAAW;IAClCX,OAAO,EAAEA,OAAQ;IACjBC,aAAa,EAAEA,aAAc;IAC7BC,IAAI,EAAEA;EAAK,IAEVC,QACK,CACC,CAAC;AAEhB;AAEAP,UAAU,CAACgB,qBAAqB,GAAG,IAAI;AACvC,eAAehB,UAAU"}
1
+ {"version":3,"file":"NextButton.js","names":["React","useContext","classnames","SharedContext","StepsContext","ButtonRow","SubmitButton","NextButton","props","sharedContext","className","variant","icon_position","icon","children","translation","Forms","stepNext","stepsContext","createElement","_extends","type","onClick","handleNext","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/StepsLayout/NextButton/NextButton.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport classnames from 'classnames'\nimport type { ComponentProps } from '../../types'\nimport { ButtonProps } from '../../../../components/button/Button'\nimport SharedContext from '../../../../shared/Context'\nimport StepsContext from '../StepsContext'\nimport ButtonRow from '../../Form/ButtonRow'\nimport SubmitButton from '../../Form/SubmitButton'\n\nexport type Props = ComponentProps & ButtonProps\n\nfunction NextButton(props: Props) {\n const sharedContext = useContext(SharedContext)\n const {\n className,\n variant = 'primary',\n icon_position = 'right',\n icon = 'chevron_right',\n children = sharedContext?.translation.Forms.stepNext,\n } = props\n const stepsContext = useContext(StepsContext)\n\n return (\n <ButtonRow>\n {/* Use SubmitButton to inherit the indicator functionality */}\n <SubmitButton\n type=\"button\"\n className={classnames('dnb-forms-next-button', className)}\n onClick={stepsContext?.handleNext}\n variant={variant}\n icon_position={icon_position}\n icon={icon}\n {...props}\n >\n {children}\n </SubmitButton>\n </ButtonRow>\n )\n}\n\nNextButton._supportsSpacingProps = true\nexport default NextButton\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,YAAY;AAGnC,OAAOC,aAAa,MAAM,4BAA4B;AACtD,OAAOC,YAAY,MAAM,iBAAiB;AAC1C,OAAOC,SAAS,MAAM,sBAAsB;AAC5C,OAAOC,YAAY,MAAM,yBAAyB;AAIlD,SAASC,UAAUA,CAACC,KAAY,EAAE;EAChC,MAAMC,aAAa,GAAGR,UAAU,CAACE,aAAa,CAAC;EAC/C,MAAM;IACJO,SAAS;IACTC,OAAO,GAAG,SAAS;IACnBC,aAAa,GAAG,OAAO;IACvBC,IAAI,GAAG,eAAe;IACtBC,QAAQ,GAAGL,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEM,WAAW,CAACC,KAAK,CAACC;EAC9C,CAAC,GAAGT,KAAK;EACT,MAAMU,YAAY,GAAGjB,UAAU,CAACG,YAAY,CAAC;EAE7C,OACEJ,KAAA,CAAAmB,aAAA,CAACd,SAAS,QAERL,KAAA,CAAAmB,aAAA,CAACb,YAAY,EAAAc,QAAA;IACXC,IAAI,EAAC,QAAQ;IACbX,SAAS,EAAER,UAAU,CAAC,uBAAuB,EAAEQ,SAAS,CAAE;IAC1DY,OAAO,EAAEJ,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEK,UAAW;IAClCZ,OAAO,EAAEA,OAAQ;IACjBC,aAAa,EAAEA,aAAc;IAC7BC,IAAI,EAAEA;EAAK,GACPL,KAAK,GAERM,QACW,CACL,CAAC;AAEhB;AAEAP,UAAU,CAACiB,qBAAqB,GAAG,IAAI;AACvC,eAAejB,UAAU"}
@@ -1,8 +1,6 @@
1
1
  import type { ComponentProps } from '../../types';
2
2
  import { ButtonProps } from '../../../../components/button/Button';
3
- export type Props = ComponentProps & ButtonProps & {
4
- children?: string;
5
- };
3
+ export type Props = ComponentProps & ButtonProps;
6
4
  declare function PreviousButton(props: Props): import("react/jsx-runtime").JSX.Element;
7
5
  declare namespace PreviousButton {
8
6
  var _supportsSpacingProps: boolean;
@@ -17,13 +17,17 @@ function PreviousButton(props) {
17
17
  children = sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.stepPrevious
18
18
  } = props;
19
19
  const stepsContext = useContext(StepsContext);
20
- return React.createElement(ButtonRow, null, React.createElement(Button, _extends({}, props, {
20
+ const params = {};
21
+ if ((stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.activeIndex) === 0) {
22
+ params.disabled = true;
23
+ }
24
+ return React.createElement(ButtonRow, null, React.createElement(Button, _extends({
21
25
  className: classnames('dnb-forms-previous-button', className),
22
26
  onClick: stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.handlePrevious,
23
27
  variant: variant,
24
28
  icon_position: icon_position,
25
29
  icon: icon
26
- }), children));
30
+ }, params, props), children));
27
31
  }
28
32
  PreviousButton._supportsSpacingProps = true;
29
33
  export default PreviousButton;
@@ -1 +1 @@
1
- {"version":3,"file":"PreviousButton.js","names":["React","useContext","classnames","Button","SharedContext","StepsContext","ButtonRow","PreviousButton","props","sharedContext","className","variant","icon_position","icon","children","translation","Forms","stepPrevious","stepsContext","createElement","_extends","onClick","handlePrevious","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/StepsLayout/PreviousButton/PreviousButton.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport classnames from 'classnames'\nimport type { ComponentProps } from '../../types'\nimport { Button } from '../../../../components'\nimport { ButtonProps } from '../../../../components/button/Button'\nimport SharedContext from '../../../../shared/Context'\nimport StepsContext from '../StepsContext'\nimport ButtonRow from '../../Form/ButtonRow'\n\nexport type Props = ComponentProps &\n ButtonProps & {\n children?: string\n }\n\nfunction PreviousButton(props: Props) {\n const sharedContext = useContext(SharedContext)\n const {\n className,\n variant = 'tertiary',\n icon_position = 'left',\n icon = 'chevron_left',\n children = sharedContext?.translation.Forms.stepPrevious,\n } = props\n const stepsContext = useContext(StepsContext)\n\n return (\n <ButtonRow>\n <Button\n {...props}\n className={classnames('dnb-forms-previous-button', className)}\n onClick={stepsContext?.handlePrevious}\n variant={variant}\n icon_position={icon_position}\n icon={icon}\n >\n {children}\n </Button>\n </ButtonRow>\n )\n}\n\nPreviousButton._supportsSpacingProps = true\nexport default PreviousButton\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,YAAY;AAEnC,SAASC,MAAM,QAAQ,wBAAwB;AAE/C,OAAOC,aAAa,MAAM,4BAA4B;AACtD,OAAOC,YAAY,MAAM,iBAAiB;AAC1C,OAAOC,SAAS,MAAM,sBAAsB;AAO5C,SAASC,cAAcA,CAACC,KAAY,EAAE;EACpC,MAAMC,aAAa,GAAGR,UAAU,CAACG,aAAa,CAAC;EAC/C,MAAM;IACJM,SAAS;IACTC,OAAO,GAAG,UAAU;IACpBC,aAAa,GAAG,MAAM;IACtBC,IAAI,GAAG,cAAc;IACrBC,QAAQ,GAAGL,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEM,WAAW,CAACC,KAAK,CAACC;EAC9C,CAAC,GAAGT,KAAK;EACT,MAAMU,YAAY,GAAGjB,UAAU,CAACI,YAAY,CAAC;EAE7C,OACEL,KAAA,CAAAmB,aAAA,CAACb,SAAS,QACRN,KAAA,CAAAmB,aAAA,CAAChB,MAAM,EAAAiB,QAAA,KACDZ,KAAK;IACTE,SAAS,EAAER,UAAU,CAAC,2BAA2B,EAAEQ,SAAS,CAAE;IAC9DW,OAAO,EAAEH,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEI,cAAe;IACtCX,OAAO,EAAEA,OAAQ;IACjBC,aAAa,EAAEA,aAAc;IAC7BC,IAAI,EAAEA;EAAK,IAEVC,QACK,CACC,CAAC;AAEhB;AAEAP,cAAc,CAACgB,qBAAqB,GAAG,IAAI;AAC3C,eAAehB,cAAc"}
1
+ {"version":3,"file":"PreviousButton.js","names":["React","useContext","classnames","Button","SharedContext","StepsContext","ButtonRow","PreviousButton","props","sharedContext","className","variant","icon_position","icon","children","translation","Forms","stepPrevious","stepsContext","params","activeIndex","disabled","createElement","_extends","onClick","handlePrevious","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/StepsLayout/PreviousButton/PreviousButton.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport classnames from 'classnames'\nimport type { ComponentProps } from '../../types'\nimport { Button } from '../../../../components'\nimport { ButtonProps } from '../../../../components/button/Button'\nimport SharedContext from '../../../../shared/Context'\nimport StepsContext from '../StepsContext'\nimport ButtonRow from '../../Form/ButtonRow'\n\nexport type Props = ComponentProps & ButtonProps\n\nfunction PreviousButton(props: Props) {\n const sharedContext = useContext(SharedContext)\n const {\n className,\n variant = 'tertiary',\n icon_position = 'left',\n icon = 'chevron_left',\n children = sharedContext?.translation.Forms.stepPrevious,\n } = props\n const stepsContext = useContext(StepsContext)\n\n const params: Props = {}\n if (stepsContext?.activeIndex === 0) {\n params.disabled = true\n }\n\n return (\n <ButtonRow>\n <Button\n className={classnames('dnb-forms-previous-button', className)}\n onClick={stepsContext?.handlePrevious}\n variant={variant}\n icon_position={icon_position}\n icon={icon}\n {...params}\n {...props}\n >\n {children}\n </Button>\n </ButtonRow>\n )\n}\n\nPreviousButton._supportsSpacingProps = true\nexport default PreviousButton\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,YAAY;AAEnC,SAASC,MAAM,QAAQ,wBAAwB;AAE/C,OAAOC,aAAa,MAAM,4BAA4B;AACtD,OAAOC,YAAY,MAAM,iBAAiB;AAC1C,OAAOC,SAAS,MAAM,sBAAsB;AAI5C,SAASC,cAAcA,CAACC,KAAY,EAAE;EACpC,MAAMC,aAAa,GAAGR,UAAU,CAACG,aAAa,CAAC;EAC/C,MAAM;IACJM,SAAS;IACTC,OAAO,GAAG,UAAU;IACpBC,aAAa,GAAG,MAAM;IACtBC,IAAI,GAAG,cAAc;IACrBC,QAAQ,GAAGL,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEM,WAAW,CAACC,KAAK,CAACC;EAC9C,CAAC,GAAGT,KAAK;EACT,MAAMU,YAAY,GAAGjB,UAAU,CAACI,YAAY,CAAC;EAE7C,MAAMc,MAAa,GAAG,CAAC,CAAC;EACxB,IAAI,CAAAD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEE,WAAW,MAAK,CAAC,EAAE;IACnCD,MAAM,CAACE,QAAQ,GAAG,IAAI;EACxB;EAEA,OACErB,KAAA,CAAAsB,aAAA,CAAChB,SAAS,QACRN,KAAA,CAAAsB,aAAA,CAACnB,MAAM,EAAAoB,QAAA;IACLb,SAAS,EAAER,UAAU,CAAC,2BAA2B,EAAEQ,SAAS,CAAE;IAC9Dc,OAAO,EAAEN,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEO,cAAe;IACtCd,OAAO,EAAEA,OAAQ;IACjBC,aAAa,EAAEA,aAAc;IAC7BC,IAAI,EAAEA;EAAK,GACPM,MAAM,EACNX,KAAK,GAERM,QACK,CACC,CAAC;AAEhB;AAEAP,cAAc,CAACmB,qBAAqB,GAAG,IAAI;AAC3C,eAAenB,cAAc"}
@@ -1,11 +1,11 @@
1
1
  import React from 'react';
2
- import { ComponentProps } from '../types';
2
+ import { ComponentProps, EventReturnWithStateObject } from '../types';
3
3
  export type Props = ComponentProps & {
4
4
  id?: string;
5
5
  mode?: 'static' | 'strict' | 'loose';
6
6
  scrollTopOnStepChange?: boolean;
7
7
  initialActiveIndex?: number;
8
- onStepChange?: (index: number) => void;
8
+ onStepChange?: (index: number, mode: 'previous' | 'next') => EventReturnWithStateObject | void | Promise<EventReturnWithStateObject | void>;
9
9
  children: React.ReactNode;
10
10
  variant?: 'sidebar' | 'drawer';
11
11
  noAnimation?: boolean;
@@ -3,10 +3,12 @@
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
5
  const _excluded = ["className", "id", "mode", "scrollTopOnStepChange", "initialActiveIndex", "onStepChange", "children", "noAnimation", "variant", "sidebarId"];
6
- import React, { useContext, useState, useCallback } from 'react';
6
+ import React, { useContext, useCallback, useRef, useReducer } from 'react';
7
7
  import classnames from 'classnames';
8
8
  import { Space, StepIndicator } from '../../../components';
9
9
  import { warn } from '../../../shared/component-helper';
10
+ import { isAsync } from '../../../shared/helpers/isAsync';
11
+ import useId from '../../../shared/helpers/useId';
10
12
  import DataContext from '../DataContext/Context';
11
13
  import Step from './Step';
12
14
  import StepsContext from './StepsContext';
@@ -14,7 +16,6 @@ import NextButton from './NextButton';
14
16
  import PreviousButton from './PreviousButton';
15
17
  import Buttons from './Buttons';
16
18
  import Provider from '../DataContext/Provider';
17
- import useId from '../hooks/useId';
18
19
  function StepsLayout(props) {
19
20
  const {
20
21
  className,
@@ -32,34 +33,60 @@ function StepsLayout(props) {
32
33
  const dataContext = useContext(DataContext);
33
34
  const {
34
35
  hasContext,
35
- hasErrors,
36
+ setFormState,
37
+ handleSubmitCall,
36
38
  setShowAllErrors,
39
+ showAllErrors,
37
40
  scrollToTop
38
41
  } = dataContext;
39
- const [activeIndex, setActiveIndex] = useState(initialActiveIndex);
40
42
  const id = useId(_id);
43
+ const [, forceUpdate] = useReducer(() => ({}), {});
44
+ const activeIndexRef = useRef(initialActiveIndex);
45
+ const errorOnStepRef = useRef({});
46
+ errorOnStepRef.current[activeIndexRef.current] = showAllErrors;
47
+ const callOnStepChange = useCallback(async (index, mode) => {
48
+ if (isAsync(onStepChange)) {
49
+ return await onStepChange(index, mode);
50
+ }
51
+ return onStepChange === null || onStepChange === void 0 ? void 0 : onStepChange(index, mode);
52
+ }, [onStepChange]);
41
53
  const handlePrevious = useCallback(() => {
42
- setActiveIndex(activeIndex => {
43
- onStepChange === null || onStepChange === void 0 ? void 0 : onStepChange(activeIndex - 1);
44
- return activeIndex - 1;
54
+ handleSubmitCall({
55
+ skipFieldValidation: true,
56
+ skipErrorCheck: true,
57
+ enableAsyncBehaviour: isAsync(onStepChange),
58
+ onSubmit: async () => {
59
+ const result = await callOnStepChange(activeIndexRef.current - 1, 'previous');
60
+ setFormState('abort');
61
+ if (!(result instanceof Error)) {
62
+ activeIndexRef.current = activeIndexRef.current - 1;
63
+ forceUpdate();
64
+ }
65
+ if (scrollTopOnStepChange) {
66
+ scrollToTop();
67
+ }
68
+ return result;
69
+ }
45
70
  });
46
- if (scrollTopOnStepChange) {
47
- scrollToTop();
48
- }
49
- }, [scrollTopOnStepChange, onStepChange, scrollToTop]);
71
+ }, [callOnStepChange, handleSubmitCall, onStepChange, scrollToTop, scrollTopOnStepChange, setFormState]);
50
72
  const handleNext = useCallback(() => {
51
- if (!hasErrors()) {
52
- setActiveIndex(activeIndex => {
53
- onStepChange === null || onStepChange === void 0 ? void 0 : onStepChange(activeIndex + 1);
54
- return activeIndex + 1;
55
- });
56
- if (scrollTopOnStepChange) {
57
- scrollToTop();
73
+ handleSubmitCall({
74
+ enableAsyncBehaviour: isAsync(onStepChange),
75
+ onSubmit: async () => {
76
+ const result = await callOnStepChange(activeIndexRef.current + 1, 'next');
77
+ setFormState('abort');
78
+ setShowAllErrors(errorOnStepRef.current[activeIndexRef.current + 1]);
79
+ if (!(result instanceof Error)) {
80
+ activeIndexRef.current = activeIndexRef.current + 1;
81
+ forceUpdate();
82
+ }
83
+ if (scrollTopOnStepChange) {
84
+ scrollToTop();
85
+ }
86
+ return result;
58
87
  }
59
- } else {
60
- setShowAllErrors(true);
61
- }
62
- }, [hasErrors, scrollTopOnStepChange, onStepChange, scrollToTop, setShowAllErrors]);
88
+ });
89
+ }, [callOnStepChange, handleSubmitCall, onStepChange, scrollToTop, scrollTopOnStepChange, setFormState, setShowAllErrors]);
63
90
  const stepIndicatorData = React.Children.map(children, child => {
64
91
  var _child$props$title;
65
92
  if (!React.isValidElement(child) || child.type !== Step) {
@@ -71,8 +98,10 @@ function StepsLayout(props) {
71
98
  let {
72
99
  current_step
73
100
  } = _ref;
74
- setActiveIndex(current_step);
75
- }, []);
101
+ activeIndexRef.current = current_step;
102
+ setShowAllErrors(errorOnStepRef.current[current_step]);
103
+ forceUpdate();
104
+ }, [setShowAllErrors]);
76
105
  if (!hasContext) {
77
106
  warn('You may wrap StepsLayout in Form.Handler');
78
107
  return React.createElement(Provider, null, React.createElement(StepsLayout, _extends({}, props, {
@@ -81,7 +110,7 @@ function StepsLayout(props) {
81
110
  }
82
111
  return React.createElement(StepsContext.Provider, {
83
112
  value: {
84
- activeIndex,
113
+ activeIndex: activeIndexRef.current,
85
114
  handlePrevious,
86
115
  handleNext
87
116
  }
@@ -93,7 +122,7 @@ function StepsLayout(props) {
93
122
  sidebar_id: id
94
123
  }), React.createElement(StepIndicator, {
95
124
  bottom: true,
96
- current_step: activeIndex,
125
+ current_step: activeIndexRef.current,
97
126
  data: stepIndicatorData,
98
127
  mode: mode,
99
128
  no_animation: noAnimation,
@@ -1 +1 @@
1
- {"version":3,"file":"StepsLayout.js","names":["React","useContext","useState","useCallback","classnames","Space","StepIndicator","warn","DataContext","Step","StepsContext","NextButton","PreviousButton","Buttons","Provider","useId","StepsLayout","props","className","id","_id","mode","scrollTopOnStepChange","initialActiveIndex","onStepChange","children","noAnimation","variant","sidebarId","rest","_objectWithoutProperties","_excluded","dataContext","hasContext","hasErrors","setShowAllErrors","scrollToTop","activeIndex","setActiveIndex","handlePrevious","handleNext","stepIndicatorData","Children","map","child","_child$props$title","isValidElement","type","Error","title","handleChange","_ref","current_step","createElement","_extends","value","Sidebar","sidebar_id","bottom","data","no_animation","on_change","i","cloneElement","index","_supportsSpacingProps"],"sources":["../../../../../src/extensions/forms/StepsLayout/StepsLayout.tsx"],"sourcesContent":["import React, { useContext, useState, useCallback } from 'react'\nimport classnames from 'classnames'\nimport { Space, StepIndicator } from '../../../components'\nimport { warn } from '../../../shared/component-helper'\nimport { ComponentProps } from '../types'\nimport DataContext from '../DataContext/Context'\nimport Step, { Props as StepProps } from './Step'\nimport StepsContext from './StepsContext'\nimport NextButton from './NextButton'\nimport PreviousButton from './PreviousButton'\nimport Buttons from './Buttons'\nimport Provider from '../DataContext/Provider'\nimport useId from '../hooks/useId'\n\nexport type Props = ComponentProps & {\n id?: string\n mode?: 'static' | 'strict' | 'loose'\n scrollTopOnStepChange?: boolean\n initialActiveIndex?: number\n onStepChange?: (index: number) => void\n children: React.ReactNode\n variant?: 'sidebar' | 'drawer'\n noAnimation?: boolean\n sidebarId?: string\n}\n\nfunction StepsLayout(props: Props) {\n const {\n className,\n id: _id,\n mode = 'strict',\n scrollTopOnStepChange,\n initialActiveIndex = 0,\n onStepChange,\n children,\n noAnimation = true,\n variant = 'sidebar',\n sidebarId,\n ...rest\n } = props\n const dataContext = useContext(DataContext)\n const { hasContext, hasErrors, setShowAllErrors, scrollToTop } =\n dataContext\n\n const [activeIndex, setActiveIndex] =\n useState<number>(initialActiveIndex)\n\n const id = useId(_id)\n\n const handlePrevious = useCallback(() => {\n setActiveIndex((activeIndex) => {\n onStepChange?.(activeIndex - 1)\n return activeIndex - 1\n })\n if (scrollTopOnStepChange) {\n scrollToTop()\n }\n }, [scrollTopOnStepChange, onStepChange, scrollToTop])\n\n const handleNext = useCallback(() => {\n if (!hasErrors()) {\n setActiveIndex((activeIndex) => {\n onStepChange?.(activeIndex + 1)\n return activeIndex + 1\n })\n if (scrollTopOnStepChange) {\n scrollToTop()\n }\n } else {\n setShowAllErrors(true)\n }\n }, [\n hasErrors,\n scrollTopOnStepChange,\n onStepChange,\n scrollToTop,\n setShowAllErrors,\n ])\n\n const stepIndicatorData = React.Children.map(children, (child) => {\n if (!React.isValidElement(child) || child.type !== Step) {\n throw new Error('Only Step can be children of StepsLayout')\n }\n return child.props.title ?? 'Title missing'\n }) as string[]\n\n const handleChange = useCallback(({ current_step }) => {\n setActiveIndex(current_step)\n }, [])\n\n if (!hasContext) {\n warn('You may wrap StepsLayout in Form.Handler')\n return (\n <Provider>\n <StepsLayout {...props} id={id} />\n </Provider>\n )\n }\n\n return (\n <StepsContext.Provider\n value={{\n activeIndex,\n handlePrevious,\n handleNext,\n }}\n >\n <Space\n className={classnames(\n 'dnb-forms-steps-layout',\n variant === 'drawer' && 'dnb-forms-steps-layout--drawer',\n className\n )}\n {...rest}\n >\n <aside className=\"dnb-forms-steps-layout__sidebar\">\n <StepIndicator.Sidebar sidebar_id={id} />\n <StepIndicator\n bottom\n current_step={activeIndex}\n data={stepIndicatorData}\n mode={mode}\n no_animation={noAnimation}\n on_change={handleChange}\n sidebar_id={\n variant === 'drawer' && !sidebarId\n ? ''\n : sidebarId\n ? sidebarId\n : id\n }\n />\n </aside>\n <div className=\"dnb-forms-steps-layout__contents\">\n {React.Children.map(children, (child, i) => {\n if (React.isValidElement(child) && child.type === Step) {\n return React.cloneElement(\n child as React.ReactElement<StepProps>,\n {\n index: i,\n }\n )\n }\n return child\n })}\n </div>\n </Space>\n </StepsContext.Provider>\n )\n}\n\nStepsLayout._supportsSpacingProps = true\n\nStepsLayout.Step = Step\nStepsLayout.NextButton = NextButton\nStepsLayout.PreviousButton = PreviousButton\nStepsLayout.Buttons = Buttons\n\nexport default StepsLayout\n"],"mappings":"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"}
1
+ {"version":3,"file":"StepsLayout.js","names":["React","useContext","useCallback","useRef","useReducer","classnames","Space","StepIndicator","warn","isAsync","useId","DataContext","Step","StepsContext","NextButton","PreviousButton","Buttons","Provider","StepsLayout","props","className","id","_id","mode","scrollTopOnStepChange","initialActiveIndex","onStepChange","children","noAnimation","variant","sidebarId","rest","_objectWithoutProperties","_excluded","dataContext","hasContext","setFormState","handleSubmitCall","setShowAllErrors","showAllErrors","scrollToTop","forceUpdate","activeIndexRef","errorOnStepRef","current","callOnStepChange","index","handlePrevious","skipFieldValidation","skipErrorCheck","enableAsyncBehaviour","onSubmit","result","Error","handleNext","stepIndicatorData","Children","map","child","_child$props$title","isValidElement","type","title","handleChange","_ref","current_step","createElement","_extends","value","activeIndex","Sidebar","sidebar_id","bottom","data","no_animation","on_change","i","cloneElement","_supportsSpacingProps"],"sources":["../../../../../src/extensions/forms/StepsLayout/StepsLayout.tsx"],"sourcesContent":["import React, { useContext, useCallback, useRef, useReducer } from 'react'\nimport classnames from 'classnames'\nimport { Space, StepIndicator } from '../../../components'\nimport { warn } from '../../../shared/component-helper'\nimport { isAsync } from '../../../shared/helpers/isAsync'\nimport useId from '../../../shared/helpers/useId'\nimport DataContext from '../DataContext/Context'\nimport Step, { Props as StepProps } from './Step'\nimport StepsContext from './StepsContext'\nimport NextButton from './NextButton'\nimport PreviousButton from './PreviousButton'\nimport Buttons from './Buttons'\nimport Provider from '../DataContext/Provider'\nimport { ComponentProps, EventReturnWithStateObject } from '../types'\n\nexport type Props = ComponentProps & {\n id?: string\n mode?: 'static' | 'strict' | 'loose'\n scrollTopOnStepChange?: boolean\n initialActiveIndex?: number\n onStepChange?: (\n index: number,\n mode: 'previous' | 'next'\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n children: React.ReactNode\n variant?: 'sidebar' | 'drawer'\n noAnimation?: boolean\n sidebarId?: string\n}\n\nfunction StepsLayout(props: Props) {\n const {\n className,\n id: _id,\n mode = 'strict',\n scrollTopOnStepChange,\n initialActiveIndex = 0,\n onStepChange,\n children,\n noAnimation = true,\n variant = 'sidebar',\n sidebarId,\n ...rest\n } = props\n const dataContext = useContext(DataContext)\n const {\n hasContext,\n setFormState,\n handleSubmitCall,\n setShowAllErrors,\n showAllErrors,\n scrollToTop,\n } = dataContext\n\n const id = useId(_id)\n const [, forceUpdate] = useReducer(() => ({}), {})\n const activeIndexRef = useRef<number>(initialActiveIndex)\n const errorOnStepRef = useRef<Record<number, boolean>>({})\n\n // Store the current state of showAllErrors\n errorOnStepRef.current[activeIndexRef.current] = showAllErrors\n\n const callOnStepChange = useCallback(\n async (index: number, mode: 'previous' | 'next') => {\n if (isAsync(onStepChange)) {\n return await onStepChange(index, mode)\n }\n\n return onStepChange?.(index, mode)\n },\n [onStepChange]\n )\n\n const handlePrevious = useCallback(() => {\n handleSubmitCall({\n skipFieldValidation: true,\n skipErrorCheck: true,\n enableAsyncBehaviour: isAsync(onStepChange),\n onSubmit: async () => {\n const result = await callOnStepChange(\n activeIndexRef.current - 1,\n 'previous'\n )\n\n // Hide async indicator\n setFormState('abort')\n\n if (!(result instanceof Error)) {\n activeIndexRef.current = activeIndexRef.current - 1\n forceUpdate()\n }\n\n if (scrollTopOnStepChange) {\n scrollToTop()\n }\n\n return result\n },\n })\n }, [\n callOnStepChange,\n handleSubmitCall,\n onStepChange,\n scrollToTop,\n scrollTopOnStepChange,\n setFormState,\n ])\n\n const handleNext = useCallback(() => {\n handleSubmitCall({\n enableAsyncBehaviour: isAsync(onStepChange),\n onSubmit: async () => {\n const result = await callOnStepChange(\n activeIndexRef.current + 1,\n 'next'\n )\n\n // Hide async indicator\n setFormState('abort')\n\n // Set the showAllErrors to the step we got to\n setShowAllErrors(\n errorOnStepRef.current[activeIndexRef.current + 1]\n )\n\n if (!(result instanceof Error)) {\n activeIndexRef.current = activeIndexRef.current + 1\n forceUpdate()\n }\n\n if (scrollTopOnStepChange) {\n scrollToTop()\n }\n\n return result\n },\n })\n }, [\n callOnStepChange,\n handleSubmitCall,\n onStepChange,\n scrollToTop,\n scrollTopOnStepChange,\n setFormState,\n setShowAllErrors,\n ])\n\n const stepIndicatorData = React.Children.map(children, (child) => {\n if (!React.isValidElement(child) || child.type !== Step) {\n throw new Error('Only Step can be children of StepsLayout')\n }\n return child.props.title ?? 'Title missing'\n }) as string[]\n\n const handleChange = useCallback(\n ({ current_step }) => {\n activeIndexRef.current = current_step\n\n // Set the showAllErrors to the step we got to\n setShowAllErrors(errorOnStepRef.current[current_step])\n\n forceUpdate()\n },\n [setShowAllErrors]\n )\n\n if (!hasContext) {\n warn('You may wrap StepsLayout in Form.Handler')\n return (\n <Provider>\n <StepsLayout {...props} id={id} />\n </Provider>\n )\n }\n\n return (\n <StepsContext.Provider\n value={{\n activeIndex: activeIndexRef.current,\n handlePrevious,\n handleNext,\n }}\n >\n <Space\n className={classnames(\n 'dnb-forms-steps-layout',\n variant === 'drawer' && 'dnb-forms-steps-layout--drawer',\n className\n )}\n {...rest}\n >\n <aside className=\"dnb-forms-steps-layout__sidebar\">\n <StepIndicator.Sidebar sidebar_id={id} />\n <StepIndicator\n bottom\n current_step={activeIndexRef.current}\n data={stepIndicatorData}\n mode={mode}\n no_animation={noAnimation}\n on_change={handleChange}\n sidebar_id={\n variant === 'drawer' && !sidebarId\n ? ''\n : sidebarId\n ? sidebarId\n : id\n }\n />\n </aside>\n <div className=\"dnb-forms-steps-layout__contents\">\n {React.Children.map(children, (child, i) => {\n if (React.isValidElement(child) && child.type === Step) {\n return React.cloneElement(\n child as React.ReactElement<StepProps>,\n {\n index: i,\n }\n )\n }\n return child\n })}\n </div>\n </Space>\n </StepsContext.Provider>\n )\n}\n\nStepsLayout._supportsSpacingProps = true\n\nStepsLayout.Step = Step\nStepsLayout.NextButton = NextButton\nStepsLayout.PreviousButton = PreviousButton\nStepsLayout.Buttons = Buttons\n\nexport default StepsLayout\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,WAAW,EAAEC,MAAM,EAAEC,UAAU,QAAQ,OAAO;AAC1E,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,KAAK,EAAEC,aAAa,QAAQ,qBAAqB;AAC1D,SAASC,IAAI,QAAQ,kCAAkC;AACvD,SAASC,OAAO,QAAQ,iCAAiC;AACzD,OAAOC,KAAK,MAAM,+BAA+B;AACjD,OAAOC,WAAW,MAAM,wBAAwB;AAChD,OAAOC,IAAI,MAA8B,QAAQ;AACjD,OAAOC,YAAY,MAAM,gBAAgB;AACzC,OAAOC,UAAU,MAAM,cAAc;AACrC,OAAOC,cAAc,MAAM,kBAAkB;AAC7C,OAAOC,OAAO,MAAM,WAAW;AAC/B,OAAOC,QAAQ,MAAM,yBAAyB;AAqB9C,SAASC,WAAWA,CAACC,KAAY,EAAE;EACjC,MAAM;MACJC,SAAS;MACTC,EAAE,EAAEC,GAAG;MACPC,IAAI,GAAG,QAAQ;MACfC,qBAAqB;MACrBC,kBAAkB,GAAG,CAAC;MACtBC,YAAY;MACZC,QAAQ;MACRC,WAAW,GAAG,IAAI;MAClBC,OAAO,GAAG,SAAS;MACnBC;IAEF,CAAC,GAAGX,KAAK;IADJY,IAAI,GAAAC,wBAAA,CACLb,KAAK,EAAAc,SAAA;EACT,MAAMC,WAAW,GAAGjC,UAAU,CAACU,WAAW,CAAC;EAC3C,MAAM;IACJwB,UAAU;IACVC,YAAY;IACZC,gBAAgB;IAChBC,gBAAgB;IAChBC,aAAa;IACbC;EACF,CAAC,GAAGN,WAAW;EAEf,MAAMb,EAAE,GAAGX,KAAK,CAACY,GAAG,CAAC;EACrB,MAAM,GAAGmB,WAAW,CAAC,GAAGrC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAClD,MAAMsC,cAAc,GAAGvC,MAAM,CAASsB,kBAAkB,CAAC;EACzD,MAAMkB,cAAc,GAAGxC,MAAM,CAA0B,CAAC,CAAC,CAAC;EAG1DwC,cAAc,CAACC,OAAO,CAACF,cAAc,CAACE,OAAO,CAAC,GAAGL,aAAa;EAE9D,MAAMM,gBAAgB,GAAG3C,WAAW,CAClC,OAAO4C,KAAa,EAAEvB,IAAyB,KAAK;IAClD,IAAId,OAAO,CAACiB,YAAY,CAAC,EAAE;MACzB,OAAO,MAAMA,YAAY,CAACoB,KAAK,EAAEvB,IAAI,CAAC;IACxC;IAEA,OAAOG,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGoB,KAAK,EAAEvB,IAAI,CAAC;EACpC,CAAC,EACD,CAACG,YAAY,CACf,CAAC;EAED,MAAMqB,cAAc,GAAG7C,WAAW,CAAC,MAAM;IACvCmC,gBAAgB,CAAC;MACfW,mBAAmB,EAAE,IAAI;MACzBC,cAAc,EAAE,IAAI;MACpBC,oBAAoB,EAAEzC,OAAO,CAACiB,YAAY,CAAC;MAC3CyB,QAAQ,EAAE,MAAAA,CAAA,KAAY;QACpB,MAAMC,MAAM,GAAG,MAAMP,gBAAgB,CACnCH,cAAc,CAACE,OAAO,GAAG,CAAC,EAC1B,UACF,CAAC;QAGDR,YAAY,CAAC,OAAO,CAAC;QAErB,IAAI,EAAEgB,MAAM,YAAYC,KAAK,CAAC,EAAE;UAC9BX,cAAc,CAACE,OAAO,GAAGF,cAAc,CAACE,OAAO,GAAG,CAAC;UACnDH,WAAW,CAAC,CAAC;QACf;QAEA,IAAIjB,qBAAqB,EAAE;UACzBgB,WAAW,CAAC,CAAC;QACf;QAEA,OAAOY,MAAM;MACf;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CACDP,gBAAgB,EAChBR,gBAAgB,EAChBX,YAAY,EACZc,WAAW,EACXhB,qBAAqB,EACrBY,YAAY,CACb,CAAC;EAEF,MAAMkB,UAAU,GAAGpD,WAAW,CAAC,MAAM;IACnCmC,gBAAgB,CAAC;MACfa,oBAAoB,EAAEzC,OAAO,CAACiB,YAAY,CAAC;MAC3CyB,QAAQ,EAAE,MAAAA,CAAA,KAAY;QACpB,MAAMC,MAAM,GAAG,MAAMP,gBAAgB,CACnCH,cAAc,CAACE,OAAO,GAAG,CAAC,EAC1B,MACF,CAAC;QAGDR,YAAY,CAAC,OAAO,CAAC;QAGrBE,gBAAgB,CACdK,cAAc,CAACC,OAAO,CAACF,cAAc,CAACE,OAAO,GAAG,CAAC,CACnD,CAAC;QAED,IAAI,EAAEQ,MAAM,YAAYC,KAAK,CAAC,EAAE;UAC9BX,cAAc,CAACE,OAAO,GAAGF,cAAc,CAACE,OAAO,GAAG,CAAC;UACnDH,WAAW,CAAC,CAAC;QACf;QAEA,IAAIjB,qBAAqB,EAAE;UACzBgB,WAAW,CAAC,CAAC;QACf;QAEA,OAAOY,MAAM;MACf;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CACDP,gBAAgB,EAChBR,gBAAgB,EAChBX,YAAY,EACZc,WAAW,EACXhB,qBAAqB,EACrBY,YAAY,EACZE,gBAAgB,CACjB,CAAC;EAEF,MAAMiB,iBAAiB,GAAGvD,KAAK,CAACwD,QAAQ,CAACC,GAAG,CAAC9B,QAAQ,EAAG+B,KAAK,IAAK;IAAA,IAAAC,kBAAA;IAChE,IAAI,CAAC3D,KAAK,CAAC4D,cAAc,CAACF,KAAK,CAAC,IAAIA,KAAK,CAACG,IAAI,KAAKjD,IAAI,EAAE;MACvD,MAAM,IAAIyC,KAAK,CAAC,0CAA0C,CAAC;IAC7D;IACA,QAAAM,kBAAA,GAAOD,KAAK,CAACvC,KAAK,CAAC2C,KAAK,cAAAH,kBAAA,cAAAA,kBAAA,GAAI,eAAe;EAC7C,CAAC,CAAa;EAEd,MAAMI,YAAY,GAAG7D,WAAW,CAC9B8D,IAAA,IAAsB;IAAA,IAArB;MAAEC;IAAa,CAAC,GAAAD,IAAA;IACftB,cAAc,CAACE,OAAO,GAAGqB,YAAY;IAGrC3B,gBAAgB,CAACK,cAAc,CAACC,OAAO,CAACqB,YAAY,CAAC,CAAC;IAEtDxB,WAAW,CAAC,CAAC;EACf,CAAC,EACD,CAACH,gBAAgB,CACnB,CAAC;EAED,IAAI,CAACH,UAAU,EAAE;IACf3B,IAAI,CAAC,0CAA0C,CAAC;IAChD,OACER,KAAA,CAAAkE,aAAA,CAACjD,QAAQ,QACPjB,KAAA,CAAAkE,aAAA,CAAChD,WAAW,EAAAiD,QAAA,KAAKhD,KAAK;MAAEE,EAAE,EAAEA;IAAG,EAAE,CACzB,CAAC;EAEf;EAEA,OACErB,KAAA,CAAAkE,aAAA,CAACrD,YAAY,CAACI,QAAQ;IACpBmD,KAAK,EAAE;MACLC,WAAW,EAAE3B,cAAc,CAACE,OAAO;MACnCG,cAAc;MACdO;IACF;EAAE,GAEFtD,KAAA,CAAAkE,aAAA,CAAC5D,KAAK,EAAA6D,QAAA;IACJ/C,SAAS,EAAEf,UAAU,CACnB,wBAAwB,EAExBe,SAAS,EADTS,OAAO,KAAK,QAAQ,IAAI,gCAE1B;EAAE,GACEE,IAAI,GAER/B,KAAA,CAAAkE,aAAA;IAAO9C,SAAS,EAAC;EAAiC,GAChDpB,KAAA,CAAAkE,aAAA,CAAC3D,aAAa,CAAC+D,OAAO;IAACC,UAAU,EAAElD;EAAG,CAAE,CAAC,EACzCrB,KAAA,CAAAkE,aAAA,CAAC3D,aAAa;IACZiE,MAAM;IACNP,YAAY,EAAEvB,cAAc,CAACE,OAAQ;IACrC6B,IAAI,EAAElB,iBAAkB;IACxBhC,IAAI,EAAEA,IAAK;IACXmD,YAAY,EAAE9C,WAAY;IAC1B+C,SAAS,EAAEZ,YAAa;IACxBQ,UAAU,EACR1C,OAAO,KAAK,QAAQ,IAAI,CAACC,SAAS,GAC9B,EAAE,GACFA,SAAS,GACTA,SAAS,GACTT;EACL,CACF,CACI,CAAC,EACRrB,KAAA,CAAAkE,aAAA;IAAK9C,SAAS,EAAC;EAAkC,GAC9CpB,KAAK,CAACwD,QAAQ,CAACC,GAAG,CAAC9B,QAAQ,EAAE,CAAC+B,KAAK,EAAEkB,CAAC,KAAK;IAC1C,IAAI5E,KAAK,CAAC4D,cAAc,CAACF,KAAK,CAAC,IAAIA,KAAK,CAACG,IAAI,KAAKjD,IAAI,EAAE;MACtD,OAAOZ,KAAK,CAAC6E,YAAY,CACvBnB,KAAK,EACL;QACEZ,KAAK,EAAE8B;MACT,CACF,CAAC;IACH;IACA,OAAOlB,KAAK;EACd,CAAC,CACE,CACA,CACc,CAAC;AAE5B;AAEAxC,WAAW,CAAC4D,qBAAqB,GAAG,IAAI;AAExC5D,WAAW,CAACN,IAAI,GAAGA,IAAI;AACvBM,WAAW,CAACJ,UAAU,GAAGA,UAAU;AACnCI,WAAW,CAACH,cAAc,GAAGA,cAAc;AAC3CG,WAAW,CAACF,OAAO,GAAGA,OAAO;AAE7B,eAAeE,WAAW"}
@@ -0,0 +1,3 @@
1
+ import { PropertiesTableProps } from '../../../shared/types';
2
+ export declare const StepsLayoutProperties: PropertiesTableProps;
3
+ export declare const StepsLayoutEvents: PropertiesTableProps;
@@ -0,0 +1,50 @@
1
+ export const StepsLayoutProperties = {
2
+ initialActiveIndex: {
3
+ doc: 'What step should show initially (defaults to 0 for the first one).',
4
+ type: 'number',
5
+ status: 'optional'
6
+ },
7
+ mode: {
8
+ doc: 'How to show the steps. Inherited from StepIndicator. Defaults to `strict`.',
9
+ type: 'string',
10
+ status: 'optional'
11
+ },
12
+ variant: {
13
+ doc: 'Sets the StepIndicator to be either `sidebar` or `drawer`. Defaults to `sidebar`.',
14
+ type: 'string',
15
+ status: 'optional'
16
+ },
17
+ noAnimation: {
18
+ doc: 'Determines if the height animation for step items and the drawer button will run. Inherited from StepIndicator. Defaults to `true`.',
19
+ type: 'boolean',
20
+ status: 'optional'
21
+ },
22
+ sidebarId: {
23
+ doc: 'Sets the id for `<StepIndicator.Sidebar />` Inherited from StepIndicator.',
24
+ type: 'string',
25
+ status: 'required'
26
+ },
27
+ scrollTopOnStepChange: {
28
+ doc: 'True for the UI to scroll to the top of the page when navigating between steps.',
29
+ type: 'boolean',
30
+ status: 'optional'
31
+ },
32
+ children: {
33
+ doc: 'Contents (Step components).',
34
+ type: 'React.Node',
35
+ status: 'required'
36
+ },
37
+ '[Space](/uilib/layout/space/properties)': {
38
+ doc: 'Spacing properties like `top` or `bottom` are supported.',
39
+ type: ['string', 'object'],
40
+ status: 'optional'
41
+ }
42
+ };
43
+ export const StepsLayoutEvents = {
44
+ onStepChange: {
45
+ doc: 'Will be called when the user navigate to a different step, with step `index` as the first argument and `previous` or `next` (string) as the second argument. When an async function is provided, it will show an indicator on the submit button during the form submission. All form elements will be disabled during the submit. The indicator will be shown for minimum 1 second. Related Form.Handler props: `minimumAsyncBehaviorTime` and `asyncBehaviorTimeout`.',
46
+ type: 'function',
47
+ status: 'optional'
48
+ }
49
+ };
50
+ //# sourceMappingURL=StepsLayoutDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepsLayoutDocs.js","names":["StepsLayoutProperties","initialActiveIndex","doc","type","status","mode","variant","noAnimation","sidebarId","scrollTopOnStepChange","children","StepsLayoutEvents","onStepChange"],"sources":["../../../../../src/extensions/forms/StepsLayout/StepsLayoutDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../shared/types'\n\nexport const StepsLayoutProperties: PropertiesTableProps = {\n initialActiveIndex: {\n doc: 'What step should show initially (defaults to 0 for the first one).',\n type: 'number',\n status: 'optional',\n },\n mode: {\n doc: 'How to show the steps. Inherited from StepIndicator. Defaults to `strict`.',\n type: 'string',\n status: 'optional',\n },\n variant: {\n doc: 'Sets the StepIndicator to be either `sidebar` or `drawer`. Defaults to `sidebar`.',\n type: 'string',\n status: 'optional',\n },\n noAnimation: {\n doc: 'Determines if the height animation for step items and the drawer button will run. Inherited from StepIndicator. Defaults to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n sidebarId: {\n doc: 'Sets the id for `<StepIndicator.Sidebar />` Inherited from StepIndicator.',\n type: 'string',\n status: 'required',\n },\n scrollTopOnStepChange: {\n doc: 'True for the UI to scroll to the top of the page when navigating between steps.',\n type: 'boolean',\n status: 'optional',\n },\n children: {\n doc: 'Contents (Step components).',\n type: 'React.Node',\n status: 'required',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const StepsLayoutEvents: PropertiesTableProps = {\n onStepChange: {\n doc: 'Will be called when the user navigate to a different step, with step `index` as the first argument and `previous` or `next` (string) as the second argument. When an async function is provided, it will show an indicator on the submit button during the form submission. All form elements will be disabled during the submit. The indicator will be shown for minimum 1 second. Related Form.Handler props: `minimumAsyncBehaviorTime` and `asyncBehaviorTimeout`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,qBAA2C,GAAG;EACzDC,kBAAkB,EAAE;IAClBC,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,4EAA4E;IACjFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,OAAO,EAAE;IACPJ,GAAG,EAAE,mFAAmF;IACxFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,WAAW,EAAE;IACXL,GAAG,EAAE,qIAAqI;IAC1IC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDI,SAAS,EAAE;IACTN,GAAG,EAAE,2EAA2E;IAChFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,qBAAqB,EAAE;IACrBP,GAAG,EAAE,iFAAiF;IACtFC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDM,QAAQ,EAAE;IACRR,GAAG,EAAE,6BAA6B;IAClCC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMO,iBAAuC,GAAG;EACrDC,YAAY,EAAE;IACZV,GAAG,EAAE,wcAAwc;IAC7cC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC"}
@@ -17,11 +17,16 @@
17
17
  margin-bottom: 2rem;
18
18
  }
19
19
  .dnb-forms-steps-layout__contents {
20
- flex: 1 0 25rem;
20
+ flex: 1 0 auto;
21
21
  }
22
22
  .dnb-forms-steps-layout__contents .dnb-card {
23
23
  --border-color: var(--color-pistachio);
24
24
  }
25
+ @media screen and (min-width: 40em) {
26
+ .dnb-forms-steps-layout + .dnb-form-status:not([class*=space__left]), .dnb-forms-steps-layout + .dnb-form-status + .dnb-form-status:not([class*=space__left]) {
27
+ margin-left: var(--spacing-medium);
28
+ }
29
+ }
25
30
  @media screen and (max-width: 60em) {
26
31
  .dnb-forms-steps-layout {
27
32
  flex-direction: column;
@@ -1 +1 @@
1
- .dnb-forms-steps-layout{-moz-column-gap:var(--spacing-medium);column-gap:var(--spacing-medium);display:flex;flex-flow:row wrap}.dnb-forms-steps-layout--drawer{align-items:stretch;flex-direction:column;justify-content:stretch}.dnb-forms-steps-layout__sidebar{flex:0;margin-bottom:2rem}.dnb-forms-steps-layout__contents{flex:1 0 25rem}.dnb-forms-steps-layout__contents .dnb-card{--border-color:var(--color-pistachio)}@media screen and (max-width:60em){.dnb-forms-steps-layout{align-items:stretch;flex-direction:column;justify-content:stretch}.dnb-forms-steps-layout__contents{flex-basis:auto}}.dnb-forms-steps-layout .dnb-step-indicator__sidebar{margin-right:0}
1
+ .dnb-forms-steps-layout{-moz-column-gap:var(--spacing-medium);column-gap:var(--spacing-medium);display:flex;flex-flow:row wrap}.dnb-forms-steps-layout--drawer{align-items:stretch;flex-direction:column;justify-content:stretch}.dnb-forms-steps-layout__sidebar{flex:0;margin-bottom:2rem}.dnb-forms-steps-layout__contents{flex:1 0 auto}.dnb-forms-steps-layout__contents .dnb-card{--border-color:var(--color-pistachio)}@media screen and (min-width:40em){.dnb-forms-steps-layout+.dnb-form-status+.dnb-form-status:not([class*=space__left]),.dnb-forms-steps-layout+.dnb-form-status:not([class*=space__left]){margin-left:var(--spacing-medium)}}@media screen and (max-width:60em){.dnb-forms-steps-layout{align-items:stretch;flex-direction:column;justify-content:stretch}.dnb-forms-steps-layout__contents{flex-basis:auto}}.dnb-forms-steps-layout .dnb-step-indicator__sidebar{margin-right:0}
@@ -17,13 +17,23 @@
17
17
  }
18
18
 
19
19
  &__contents {
20
- flex: 1 0 25rem;
20
+ flex: 1 0 auto;
21
21
  }
22
22
 
23
23
  &__contents .dnb-card {
24
24
  --border-color: var(--color-pistachio);
25
25
  }
26
26
 
27
+ // FormStatus as part of the Form.Handler
28
+ & + .dnb-form-status,
29
+ & + .dnb-form-status + .dnb-form-status {
30
+ @include allAbove(small) {
31
+ &:not([class*='space__left']) {
32
+ margin-left: var(--spacing-medium);
33
+ }
34
+ }
35
+ }
36
+
27
37
  @include allBelow('medium') {
28
38
  flex-direction: column;
29
39
  justify-content: stretch;
@@ -3,7 +3,7 @@
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import React, { useContext } from 'react';
5
5
  import ValueBlock from '../../ValueBlock';
6
- import { useDataValue } from '../../hooks';
6
+ import { useFieldProps } from '../../hooks';
7
7
  import { pickSpacingProps } from '../../../../components/flex/utils';
8
8
  import SharedContext from '../../../../shared/Context';
9
9
  function BooleanComponent(props) {
@@ -15,7 +15,7 @@ function BooleanComponent(props) {
15
15
  showEmpty,
16
16
  value,
17
17
  inline
18
- } = useDataValue(props);
18
+ } = useFieldProps(props);
19
19
  return React.createElement(ValueBlock, _extends({
20
20
  className: className,
21
21
  label: label,
@@ -1 +1 @@
1
- {"version":3,"file":"Boolean.js","names":["React","useContext","ValueBlock","useDataValue","pickSpacingProps","SharedContext","BooleanComponent","props","sharedContext","className","label","placeholder","showEmpty","value","inline","createElement","_extends","translation","Forms","booleanYes","booleanNo","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Value/Boolean/Boolean.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport ValueBlock from '../../ValueBlock'\nimport { useDataValue } from '../../hooks'\nimport { ValueProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport SharedContext from '../../../../shared/Context'\n\nexport type Props = ValueProps<boolean>\n\nfunction BooleanComponent(props: Props) {\n const sharedContext = useContext(SharedContext)\n const { className, label, placeholder, showEmpty, value, inline } =\n useDataValue(props)\n\n return (\n <ValueBlock\n className={className}\n label={label}\n showEmpty={showEmpty}\n placeholder={placeholder}\n inline={inline}\n {...pickSpacingProps(props)}\n >\n {value === true || value === false\n ? value === true\n ? sharedContext?.translation.Forms.booleanYes\n : sharedContext?.translation.Forms.booleanNo\n : null}\n </ValueBlock>\n )\n}\n\nBooleanComponent._supportsSpacingProps = true\nexport default BooleanComponent\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,kBAAkB;AACzC,SAASC,YAAY,QAAQ,aAAa;AAE1C,SAASC,gBAAgB,QAAQ,mCAAmC;AACpE,OAAOC,aAAa,MAAM,4BAA4B;AAItD,SAASC,gBAAgBA,CAACC,KAAY,EAAE;EACtC,MAAMC,aAAa,GAAGP,UAAU,CAACI,aAAa,CAAC;EAC/C,MAAM;IAAEI,SAAS;IAAEC,KAAK;IAAEC,WAAW;IAAEC,SAAS;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAC/DX,YAAY,CAACI,KAAK,CAAC;EAErB,OACEP,KAAA,CAAAe,aAAA,CAACb,UAAU,EAAAc,QAAA;IACTP,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAM;IACbE,SAAS,EAAEA,SAAU;IACrBD,WAAW,EAAEA,WAAY;IACzBG,MAAM,EAAEA;EAAO,GACXV,gBAAgB,CAACG,KAAK,CAAC,GAE1BM,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,KAAK,GAC9BA,KAAK,KAAK,IAAI,GACZL,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAES,WAAW,CAACC,KAAK,CAACC,UAAU,GAC3CX,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAES,WAAW,CAACC,KAAK,CAACE,SAAS,GAC5C,IACM,CAAC;AAEjB;AAEAd,gBAAgB,CAACe,qBAAqB,GAAG,IAAI;AAC7C,eAAef,gBAAgB"}
1
+ {"version":3,"file":"Boolean.js","names":["React","useContext","ValueBlock","useFieldProps","pickSpacingProps","SharedContext","BooleanComponent","props","sharedContext","className","label","placeholder","showEmpty","value","inline","createElement","_extends","translation","Forms","booleanYes","booleanNo","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Value/Boolean/Boolean.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport ValueBlock from '../../ValueBlock'\nimport { useFieldProps } from '../../hooks'\nimport { ValueProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport SharedContext from '../../../../shared/Context'\n\nexport type Props = ValueProps<boolean>\n\nfunction BooleanComponent(props: Props) {\n const sharedContext = useContext(SharedContext)\n const { className, label, placeholder, showEmpty, value, inline } =\n useFieldProps(props)\n\n return (\n <ValueBlock\n className={className}\n label={label}\n showEmpty={showEmpty}\n placeholder={placeholder}\n inline={inline}\n {...pickSpacingProps(props)}\n >\n {value === true || value === false\n ? value === true\n ? sharedContext?.translation.Forms.booleanYes\n : sharedContext?.translation.Forms.booleanNo\n : null}\n </ValueBlock>\n )\n}\n\nBooleanComponent._supportsSpacingProps = true\nexport default BooleanComponent\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,kBAAkB;AACzC,SAASC,aAAa,QAAQ,aAAa;AAE3C,SAASC,gBAAgB,QAAQ,mCAAmC;AACpE,OAAOC,aAAa,MAAM,4BAA4B;AAItD,SAASC,gBAAgBA,CAACC,KAAY,EAAE;EACtC,MAAMC,aAAa,GAAGP,UAAU,CAACI,aAAa,CAAC;EAC/C,MAAM;IAAEI,SAAS;IAAEC,KAAK;IAAEC,WAAW;IAAEC,SAAS;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAC/DX,aAAa,CAACI,KAAK,CAAC;EAEtB,OACEP,KAAA,CAAAe,aAAA,CAACb,UAAU,EAAAc,QAAA;IACTP,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAM;IACbE,SAAS,EAAEA,SAAU;IACrBD,WAAW,EAAEA,WAAY;IACzBG,MAAM,EAAEA;EAAO,GACXV,gBAAgB,CAACG,KAAK,CAAC,GAE1BM,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,KAAK,GAC9BA,KAAK,KAAK,IAAI,GACZL,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAES,WAAW,CAACC,KAAK,CAACC,UAAU,GAC3CX,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAES,WAAW,CAACC,KAAK,CAACE,SAAS,GAC5C,IACM,CAAC;AAEjB;AAEAd,gBAAgB,CAACe,qBAAqB,GAAG,IAAI;AAC7C,eAAef,gBAAgB"}
@@ -4,21 +4,21 @@ const _excluded = ["className", "label", "placeholder", "inline", "showEmpty"];
4
4
  import React from 'react';
5
5
  import classnames from 'classnames';
6
6
  import ValueBlock from '../../ValueBlock';
7
- import useDataValue, { omitDataValueProps } from '../../hooks/useDataValue';
7
+ import useFieldProps, { omitFieldProps } from '../../hooks/useFieldProps';
8
8
  import { omitSpacingProps, pickSpacingProps } from '../../../../components/flex/utils';
9
9
  import NumberFormat from '../../../../components/NumberFormat';
10
10
  import { convertCamelCaseProps } from '../../../../shared/helpers/withCamelCaseProps';
11
11
  function NumberValue(props) {
12
- const _useDataValue = useDataValue(props),
12
+ const _useFieldProps = useFieldProps(props),
13
13
  {
14
14
  className,
15
15
  label,
16
16
  placeholder,
17
17
  inline,
18
18
  showEmpty
19
- } = _useDataValue,
20
- rest = _objectWithoutProperties(_useDataValue, _excluded);
21
- const numberFormatProps = convertCamelCaseProps(omitDataValueProps(omitSpacingProps(rest)));
19
+ } = _useFieldProps,
20
+ rest = _objectWithoutProperties(_useFieldProps, _excluded);
21
+ const numberFormatProps = convertCamelCaseProps(omitFieldProps(omitSpacingProps(rest)));
22
22
  return React.createElement(ValueBlock, _extends({
23
23
  className: classnames('dnb-forms-value-number', className),
24
24
  label: label,
@@ -1 +1 @@
1
- {"version":3,"file":"Number.js","names":["React","classnames","ValueBlock","useDataValue","omitDataValueProps","omitSpacingProps","pickSpacingProps","NumberFormat","convertCamelCaseProps","NumberValue","props","_useDataValue","className","label","placeholder","inline","showEmpty","rest","_objectWithoutProperties","_excluded","numberFormatProps","createElement","_extends","value","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Value/Number/Number.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport ValueBlock from '../../ValueBlock'\nimport useDataValue, { omitDataValueProps } from '../../hooks/useDataValue'\nimport { ValueProps } from '../../types'\nimport {\n omitSpacingProps,\n pickSpacingProps,\n} from '../../../../components/flex/utils'\nimport NumberFormat, {\n NumberFormatProps,\n} from '../../../../components/NumberFormat'\nimport {\n IncludeCamelCase,\n convertCamelCaseProps,\n} from '../../../../shared/helpers/withCamelCaseProps'\n\nexport type Props = ValueProps<number> &\n IncludeCamelCase<NumberFormatProps>\n\nfunction NumberValue(props: Props) {\n const { className, label, placeholder, inline, showEmpty, ...rest } =\n useDataValue(props)\n\n const numberFormatProps = convertCamelCaseProps(\n omitDataValueProps(omitSpacingProps(rest))\n )\n\n return (\n <ValueBlock\n className={classnames('dnb-forms-value-number', className)}\n label={label}\n showEmpty={showEmpty}\n placeholder={placeholder}\n inline={inline}\n {...pickSpacingProps(rest)}\n >\n {rest.value && <NumberFormat {...numberFormatProps} />}\n </ValueBlock>\n )\n}\n\nNumberValue._supportsSpacingProps = true\nexport default NumberValue\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,UAAU,MAAM,kBAAkB;AACzC,OAAOC,YAAY,IAAIC,kBAAkB,QAAQ,0BAA0B;AAE3E,SACEC,gBAAgB,EAChBC,gBAAgB,QACX,mCAAmC;AAC1C,OAAOC,YAAY,MAEZ,qCAAqC;AAC5C,SAEEC,qBAAqB,QAChB,+CAA+C;AAKtD,SAASC,WAAWA,CAACC,KAAY,EAAE;EACjC,MAAAC,aAAA,GACER,YAAY,CAACO,KAAK,CAAC;IADf;MAAEE,SAAS;MAAEC,KAAK;MAAEC,WAAW;MAAEC,MAAM;MAAEC;IAAmB,CAAC,GAAAL,aAAA;IAANM,IAAI,GAAAC,wBAAA,CAAAP,aAAA,EAAAQ,SAAA;EAGjE,MAAMC,iBAAiB,GAAGZ,qBAAqB,CAC7CJ,kBAAkB,CAACC,gBAAgB,CAACY,IAAI,CAAC,CAC3C,CAAC;EAED,OACEjB,KAAA,CAAAqB,aAAA,CAACnB,UAAU,EAAAoB,QAAA;IACTV,SAAS,EAAEX,UAAU,CAAC,wBAAwB,EAAEW,SAAS,CAAE;IAC3DC,KAAK,EAAEA,KAAM;IACbG,SAAS,EAAEA,SAAU;IACrBF,WAAW,EAAEA,WAAY;IACzBC,MAAM,EAAEA;EAAO,GACXT,gBAAgB,CAACW,IAAI,CAAC,GAEzBA,IAAI,CAACM,KAAK,IAAIvB,KAAA,CAAAqB,aAAA,CAACd,YAAY,EAAKa,iBAAoB,CAC3C,CAAC;AAEjB;AAEAX,WAAW,CAACe,qBAAqB,GAAG,IAAI;AACxC,eAAef,WAAW"}
1
+ {"version":3,"file":"Number.js","names":["React","classnames","ValueBlock","useFieldProps","omitFieldProps","omitSpacingProps","pickSpacingProps","NumberFormat","convertCamelCaseProps","NumberValue","props","_useFieldProps","className","label","placeholder","inline","showEmpty","rest","_objectWithoutProperties","_excluded","numberFormatProps","createElement","_extends","value","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Value/Number/Number.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport ValueBlock from '../../ValueBlock'\nimport useFieldProps, { omitFieldProps } from '../../hooks/useFieldProps'\nimport { ValueProps } from '../../types'\nimport {\n omitSpacingProps,\n pickSpacingProps,\n} from '../../../../components/flex/utils'\nimport NumberFormat, {\n NumberFormatProps,\n} from '../../../../components/NumberFormat'\nimport {\n IncludeCamelCase,\n convertCamelCaseProps,\n} from '../../../../shared/helpers/withCamelCaseProps'\n\nexport type Props = ValueProps<number> &\n IncludeCamelCase<NumberFormatProps>\n\nfunction NumberValue(props: Props) {\n const { className, label, placeholder, inline, showEmpty, ...rest } =\n useFieldProps(props)\n\n const numberFormatProps = convertCamelCaseProps(\n omitFieldProps(omitSpacingProps(rest))\n )\n\n return (\n <ValueBlock\n className={classnames('dnb-forms-value-number', className)}\n label={label}\n showEmpty={showEmpty}\n placeholder={placeholder}\n inline={inline}\n {...pickSpacingProps(rest)}\n >\n {rest.value && <NumberFormat {...numberFormatProps} />}\n </ValueBlock>\n )\n}\n\nNumberValue._supportsSpacingProps = true\nexport default NumberValue\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,UAAU,MAAM,kBAAkB;AACzC,OAAOC,aAAa,IAAIC,cAAc,QAAQ,2BAA2B;AAEzE,SACEC,gBAAgB,EAChBC,gBAAgB,QACX,mCAAmC;AAC1C,OAAOC,YAAY,MAEZ,qCAAqC;AAC5C,SAEEC,qBAAqB,QAChB,+CAA+C;AAKtD,SAASC,WAAWA,CAACC,KAAY,EAAE;EACjC,MAAAC,cAAA,GACER,aAAa,CAACO,KAAK,CAAC;IADhB;MAAEE,SAAS;MAAEC,KAAK;MAAEC,WAAW;MAAEC,MAAM;MAAEC;IAAmB,CAAC,GAAAL,cAAA;IAANM,IAAI,GAAAC,wBAAA,CAAAP,cAAA,EAAAQ,SAAA;EAGjE,MAAMC,iBAAiB,GAAGZ,qBAAqB,CAC7CJ,cAAc,CAACC,gBAAgB,CAACY,IAAI,CAAC,CACvC,CAAC;EAED,OACEjB,KAAA,CAAAqB,aAAA,CAACnB,UAAU,EAAAoB,QAAA;IACTV,SAAS,EAAEX,UAAU,CAAC,wBAAwB,EAAEW,SAAS,CAAE;IAC3DC,KAAK,EAAEA,KAAM;IACbG,SAAS,EAAEA,SAAU;IACrBF,WAAW,EAAEA,WAAY;IACzBC,MAAM,EAAEA;EAAO,GACXT,gBAAgB,CAACW,IAAI,CAAC,GAEzBA,IAAI,CAACM,KAAK,IAAIvB,KAAA,CAAAqB,aAAA,CAACd,YAAY,EAAKa,iBAAoB,CAC3C,CAAC;AAEjB;AAEAX,WAAW,CAACe,qBAAqB,GAAG,IAAI;AACxC,eAAef,WAAW"}
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import React from 'react';
3
3
  import ValueBlock from '../../ValueBlock';
4
- import { useDataValue } from '../../hooks';
4
+ import { useFieldProps } from '../../hooks';
5
5
  import { pickSpacingProps } from '../../../../components/flex/utils';
6
6
  function StringComponent(props) {
7
7
  const {
@@ -12,7 +12,7 @@ function StringComponent(props) {
12
12
  inline,
13
13
  showEmpty,
14
14
  prepare = value => value
15
- } = useDataValue(props);
15
+ } = useFieldProps(props);
16
16
  return React.createElement(ValueBlock, _extends({
17
17
  className: className,
18
18
  label: label,
@@ -1 +1 @@
1
- {"version":3,"file":"String.js","names":["React","ValueBlock","useDataValue","pickSpacingProps","StringComponent","props","className","label","placeholder","value","inline","showEmpty","prepare","createElement","_extends","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Value/String/String.tsx"],"sourcesContent":["import React from 'react'\nimport ValueBlock from '../../ValueBlock'\nimport { useDataValue } from '../../hooks'\nimport { ValueProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\n\nexport type Props = ValueProps<string>\n\nfunction StringComponent(props: Props) {\n const {\n className,\n label,\n placeholder,\n value,\n inline,\n showEmpty,\n prepare = (value) => value,\n } = useDataValue(props)\n\n return (\n <ValueBlock\n className={className}\n label={label}\n showEmpty={showEmpty}\n placeholder={placeholder}\n inline={inline}\n {...pickSpacingProps(props)}\n >\n {prepare(value)}\n </ValueBlock>\n )\n}\n\nStringComponent._supportsSpacingProps = true\nexport default StringComponent\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,kBAAkB;AACzC,SAASC,YAAY,QAAQ,aAAa;AAE1C,SAASC,gBAAgB,QAAQ,mCAAmC;AAIpE,SAASC,eAAeA,CAACC,KAAY,EAAE;EACrC,MAAM;IACJC,SAAS;IACTC,KAAK;IACLC,WAAW;IACXC,KAAK;IACLC,MAAM;IACNC,SAAS;IACTC,OAAO,GAAIH,KAAK,IAAKA;EACvB,CAAC,GAAGP,YAAY,CAACG,KAAK,CAAC;EAEvB,OACEL,KAAA,CAAAa,aAAA,CAACZ,UAAU,EAAAa,QAAA;IACTR,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAM;IACbI,SAAS,EAAEA,SAAU;IACrBH,WAAW,EAAEA,WAAY;IACzBE,MAAM,EAAEA;EAAO,GACXP,gBAAgB,CAACE,KAAK,CAAC,GAE1BO,OAAO,CAACH,KAAK,CACJ,CAAC;AAEjB;AAEAL,eAAe,CAACW,qBAAqB,GAAG,IAAI;AAC5C,eAAeX,eAAe"}
1
+ {"version":3,"file":"String.js","names":["React","ValueBlock","useFieldProps","pickSpacingProps","StringComponent","props","className","label","placeholder","value","inline","showEmpty","prepare","createElement","_extends","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Value/String/String.tsx"],"sourcesContent":["import React from 'react'\nimport ValueBlock from '../../ValueBlock'\nimport { useFieldProps } from '../../hooks'\nimport { ValueProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\n\nexport type Props = ValueProps<string>\n\nfunction StringComponent(props: Props) {\n const {\n className,\n label,\n placeholder,\n value,\n inline,\n showEmpty,\n prepare = (value) => value,\n } = useFieldProps(props)\n\n return (\n <ValueBlock\n className={className}\n label={label}\n showEmpty={showEmpty}\n placeholder={placeholder}\n inline={inline}\n {...pickSpacingProps(props)}\n >\n {prepare(value)}\n </ValueBlock>\n )\n}\n\nStringComponent._supportsSpacingProps = true\nexport default StringComponent\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,kBAAkB;AACzC,SAASC,aAAa,QAAQ,aAAa;AAE3C,SAASC,gBAAgB,QAAQ,mCAAmC;AAIpE,SAASC,eAAeA,CAACC,KAAY,EAAE;EACrC,MAAM;IACJC,SAAS;IACTC,KAAK;IACLC,WAAW;IACXC,KAAK;IACLC,MAAM;IACNC,SAAS;IACTC,OAAO,GAAIH,KAAK,IAAKA;EACvB,CAAC,GAAGP,aAAa,CAACG,KAAK,CAAC;EAExB,OACEL,KAAA,CAAAa,aAAA,CAACZ,UAAU,EAAAa,QAAA;IACTR,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAM;IACbI,SAAS,EAAEA,SAAU;IACrBH,WAAW,EAAEA,WAAY;IACzBE,MAAM,EAAEA;EAAO,GACXP,gBAAgB,CAACE,KAAK,CAAC,GAE1BO,OAAO,CAACH,KAAK,CACJ,CAAC;AAEjB;AAEAL,eAAe,CAACW,qBAAqB,GAAG,IAAI;AAC5C,eAAeX,eAAe"}
@@ -92,17 +92,17 @@ export const dataValueProperties = {
92
92
  };
93
93
  export const dataValueEvents = {
94
94
  onChange: {
95
- doc: ' Will be called on value changes made by the user, with the new value as argument.',
95
+ doc: "Will be called on value changes made by the user, with the new value as argument. When an `async` function is used, the corresponding [FieldBlock](/uilib/extensions/forms/create-component/FieldBlock/) will show an indicator on the field label. You can return `{ success: 'saved' } as const` to show a success symbol, or an error or an object with these keys `{ info: 'Info message', warning: 'Warning message', error: Error('My error') } as const`.",
96
96
  type: 'function',
97
97
  status: 'optional'
98
98
  },
99
99
  onFocus: {
100
- doc: ' Will be called when the component gets into focus. Like clicking inside a text input or opening a dropdown. Called with active value as argument.',
100
+ doc: 'Will be called when the component gets into focus. Like clicking inside a text input or opening a dropdown. Called with active value as argument.',
101
101
  type: 'function',
102
102
  status: 'optional'
103
103
  },
104
104
  onBlur: {
105
- doc: ' Will be called when the component stop being in focus. Like when going to next field, or closing a dropdown. Called with active value as argument.',
105
+ doc: 'Will be called when the component stop being in focus. Like when going to next field, or closing a dropdown. Called with active value as argument.',
106
106
  type: 'function',
107
107
  status: 'optional'
108
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DataValueDocs.js","names":["dataValueProperties","value","doc","type","status","path","id","info","warning","error","disabled","emptyValue","required","schema","validateInitially","validateUnchanged","continuousValidation","errorMessages","validator","onBlurValidator","toInput","fromInput","dataValueEvents","onChange","onFocus","onBlur"],"sources":["../../../../../src/extensions/forms/hooks/DataValueDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../shared/types'\n\nexport const dataValueProperties: PropertiesTableProps = {\n value: {\n doc: 'Source data value for the input.',\n type: '{valueType}',\n status: 'optional',\n },\n path: {\n doc: 'JSON Pointer for where the data for this input is located in the source dataset (when using Form.Handler or DataContext). The `path` will also be set as the `name` attribute for the [string](/uilib/extensions/forms/base-fields/String/)-field.',\n type: 'string',\n status: 'optional',\n },\n id: {\n doc: 'Unique id for connecting Form.Handler and helper tools such as Form.useData.',\n type: 'string',\n status: 'optional',\n },\n info: {\n doc: 'Info message shown below / after the input.',\n type: 'React.Node',\n status: 'optional',\n },\n warning: {\n doc: 'Warning message shown below / after the input.',\n type: 'React.Node',\n status: 'optional',\n },\n error: {\n doc: 'Error message shown below / after the input.',\n type: 'Error',\n status: 'optional',\n },\n disabled: {\n doc: 'Set `true` to show the field but without the possibility of changing the value.',\n type: 'boolean',\n status: 'optional',\n },\n emptyValue: {\n doc: 'The value to use (in `onChange` events etc) when emptying the field. Makes it possible for instance to provide `undefined` instead of an empty string when clearing the content of a text input.',\n type: 'any',\n status: 'optional',\n },\n required: {\n doc: 'When set `true`, the input will give an error if the value cannot be empty.',\n type: 'boolean',\n status: 'optional',\n },\n schema: {\n doc: 'Custom JSON Schema for validating the value.',\n type: 'object',\n status: 'optional',\n },\n validateInitially: {\n doc: 'Set `true` to show validation based errors initially (from given value-prop or source data) before the user interacts with the field.',\n type: 'boolean',\n status: 'optional',\n },\n validateUnchanged: {\n doc: 'Set `true` to show validation based errors when the field is touched (like focusing a field and blurring) without having changed the value. Since the user did not introduce a new error, this will apply when the value was initially invalid based on validation.',\n type: 'boolean',\n status: 'optional',\n },\n continuousValidation: {\n doc: 'Set `true` to show validation based errors continuously while writing, not just when blurring the field.',\n type: 'boolean',\n status: 'optional',\n },\n errorMessages: {\n doc: 'Custom error messages for each type of error, overriding default messages.',\n type: 'object',\n status: 'optional',\n },\n validator: {\n doc: 'Custom validator function that will be called for every change done by the user. Can be asynchronous or synchronous.',\n type: 'function',\n status: 'optional',\n },\n onBlurValidator: {\n doc: 'Custom validator function that will be called when the user leaves the field (blurring a text input, closing a dropdown etc). Can be asynchronous or synchronous.',\n type: 'function',\n status: 'optional',\n },\n toInput: {\n doc: 'Derivate called when the received / active value is sent to the input. Can be used for casting, changing syntax etc.',\n type: 'function',\n status: 'optional',\n },\n fromInput: {\n doc: 'Derivate called when changes is made by the user, to cast or change syntax back to the original (opposite of `toInput`).',\n type: 'function',\n status: 'optional',\n },\n}\n\nexport const dataValueEvents: PropertiesTableProps = {\n onChange: {\n doc: ' Will be called on value changes made by the user, with the new value as argument.',\n type: 'function',\n status: 'optional',\n },\n onFocus: {\n doc: ' Will be called when the component gets into focus. Like clicking inside a text input or opening a dropdown. Called with active value as argument.',\n type: 'function',\n status: 'optional',\n },\n onBlur: {\n doc: ' Will be called when the component stop being in focus. Like when going to next field, or closing a dropdown. Called with active value as argument.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,mBAAyC,GAAG;EACvDC,KAAK,EAAE;IACLC,GAAG,EAAE,kCAAkC;IACvCC,IAAI,EAAE,aAAa;IACnBC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,oPAAoP;IACzPC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,EAAE,EAAE;IACFJ,GAAG,EAAE,8EAA8E;IACnFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,IAAI,EAAE;IACJL,GAAG,EAAE,6CAA6C;IAClDC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV,CAAC;EACDI,OAAO,EAAE;IACPN,GAAG,EAAE,gDAAgD;IACrDC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV,CAAC;EACDK,KAAK,EAAE;IACLP,GAAG,EAAE,8CAA8C;IACnDC,IAAI,EAAE,OAAO;IACbC,MAAM,EAAE;EACV,CAAC;EACDM,QAAQ,EAAE;IACRR,GAAG,EAAE,iFAAiF;IACtFC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDO,UAAU,EAAE;IACVT,GAAG,EAAE,kMAAkM;IACvMC,IAAI,EAAE,KAAK;IACXC,MAAM,EAAE;EACV,CAAC;EACDQ,QAAQ,EAAE;IACRV,GAAG,EAAE,6EAA6E;IAClFC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDS,MAAM,EAAE;IACNX,GAAG,EAAE,8CAA8C;IACnDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDU,iBAAiB,EAAE;IACjBZ,GAAG,EAAE,uIAAuI;IAC5IC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDW,iBAAiB,EAAE;IACjBb,GAAG,EAAE,qQAAqQ;IAC1QC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDY,oBAAoB,EAAE;IACpBd,GAAG,EAAE,0GAA0G;IAC/GC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDa,aAAa,EAAE;IACbf,GAAG,EAAE,4EAA4E;IACjFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDc,SAAS,EAAE;IACThB,GAAG,EAAE,sHAAsH;IAC3HC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDe,eAAe,EAAE;IACfjB,GAAG,EAAE,mKAAmK;IACxKC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDgB,OAAO,EAAE;IACPlB,GAAG,EAAE,sHAAsH;IAC3HC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDiB,SAAS,EAAE;IACTnB,GAAG,EAAE,0HAA0H;IAC/HC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMkB,eAAqC,GAAG;EACnDC,QAAQ,EAAE;IACRrB,GAAG,EAAE,oFAAoF;IACzFC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDoB,OAAO,EAAE;IACPtB,GAAG,EAAE,oJAAoJ;IACzJC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDqB,MAAM,EAAE;IACNvB,GAAG,EAAE,qJAAqJ;IAC1JC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC"}
1
+ {"version":3,"file":"DataValueDocs.js","names":["dataValueProperties","value","doc","type","status","path","id","info","warning","error","disabled","emptyValue","required","schema","validateInitially","validateUnchanged","continuousValidation","errorMessages","validator","onBlurValidator","toInput","fromInput","dataValueEvents","onChange","onFocus","onBlur"],"sources":["../../../../../src/extensions/forms/hooks/DataValueDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../shared/types'\n\nexport const dataValueProperties: PropertiesTableProps = {\n value: {\n doc: 'Source data value for the input.',\n type: '{valueType}',\n status: 'optional',\n },\n path: {\n doc: 'JSON Pointer for where the data for this input is located in the source dataset (when using Form.Handler or DataContext). The `path` will also be set as the `name` attribute for the [string](/uilib/extensions/forms/base-fields/String/)-field.',\n type: 'string',\n status: 'optional',\n },\n id: {\n doc: 'Unique id for connecting Form.Handler and helper tools such as Form.useData.',\n type: 'string',\n status: 'optional',\n },\n info: {\n doc: 'Info message shown below / after the input.',\n type: 'React.Node',\n status: 'optional',\n },\n warning: {\n doc: 'Warning message shown below / after the input.',\n type: 'React.Node',\n status: 'optional',\n },\n error: {\n doc: 'Error message shown below / after the input.',\n type: 'Error',\n status: 'optional',\n },\n disabled: {\n doc: 'Set `true` to show the field but without the possibility of changing the value.',\n type: 'boolean',\n status: 'optional',\n },\n emptyValue: {\n doc: 'The value to use (in `onChange` events etc) when emptying the field. Makes it possible for instance to provide `undefined` instead of an empty string when clearing the content of a text input.',\n type: 'any',\n status: 'optional',\n },\n required: {\n doc: 'When set `true`, the input will give an error if the value cannot be empty.',\n type: 'boolean',\n status: 'optional',\n },\n schema: {\n doc: 'Custom JSON Schema for validating the value.',\n type: 'object',\n status: 'optional',\n },\n validateInitially: {\n doc: 'Set `true` to show validation based errors initially (from given value-prop or source data) before the user interacts with the field.',\n type: 'boolean',\n status: 'optional',\n },\n validateUnchanged: {\n doc: 'Set `true` to show validation based errors when the field is touched (like focusing a field and blurring) without having changed the value. Since the user did not introduce a new error, this will apply when the value was initially invalid based on validation.',\n type: 'boolean',\n status: 'optional',\n },\n continuousValidation: {\n doc: 'Set `true` to show validation based errors continuously while writing, not just when blurring the field.',\n type: 'boolean',\n status: 'optional',\n },\n errorMessages: {\n doc: 'Custom error messages for each type of error, overriding default messages.',\n type: 'object',\n status: 'optional',\n },\n validator: {\n doc: 'Custom validator function that will be called for every change done by the user. Can be asynchronous or synchronous.',\n type: 'function',\n status: 'optional',\n },\n onBlurValidator: {\n doc: 'Custom validator function that will be called when the user leaves the field (blurring a text input, closing a dropdown etc). Can be asynchronous or synchronous.',\n type: 'function',\n status: 'optional',\n },\n toInput: {\n doc: 'Derivate called when the received / active value is sent to the input. Can be used for casting, changing syntax etc.',\n type: 'function',\n status: 'optional',\n },\n fromInput: {\n doc: 'Derivate called when changes is made by the user, to cast or change syntax back to the original (opposite of `toInput`).',\n type: 'function',\n status: 'optional',\n },\n}\n\nexport const dataValueEvents: PropertiesTableProps = {\n onChange: {\n doc: \"Will be called on value changes made by the user, with the new value as argument. When an `async` function is used, the corresponding [FieldBlock](/uilib/extensions/forms/create-component/FieldBlock/) will show an indicator on the field label. You can return `{ success: 'saved' } as const` to show a success symbol, or an error or an object with these keys `{ info: 'Info message', warning: 'Warning message', error: Error('My error') } as const`.\",\n type: 'function',\n status: 'optional',\n },\n onFocus: {\n doc: 'Will be called when the component gets into focus. Like clicking inside a text input or opening a dropdown. Called with active value as argument.',\n type: 'function',\n status: 'optional',\n },\n onBlur: {\n doc: 'Will be called when the component stop being in focus. Like when going to next field, or closing a dropdown. Called with active value as argument.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,mBAAyC,GAAG;EACvDC,KAAK,EAAE;IACLC,GAAG,EAAE,kCAAkC;IACvCC,IAAI,EAAE,aAAa;IACnBC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,oPAAoP;IACzPC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,EAAE,EAAE;IACFJ,GAAG,EAAE,8EAA8E;IACnFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,IAAI,EAAE;IACJL,GAAG,EAAE,6CAA6C;IAClDC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV,CAAC;EACDI,OAAO,EAAE;IACPN,GAAG,EAAE,gDAAgD;IACrDC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV,CAAC;EACDK,KAAK,EAAE;IACLP,GAAG,EAAE,8CAA8C;IACnDC,IAAI,EAAE,OAAO;IACbC,MAAM,EAAE;EACV,CAAC;EACDM,QAAQ,EAAE;IACRR,GAAG,EAAE,iFAAiF;IACtFC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDO,UAAU,EAAE;IACVT,GAAG,EAAE,kMAAkM;IACvMC,IAAI,EAAE,KAAK;IACXC,MAAM,EAAE;EACV,CAAC;EACDQ,QAAQ,EAAE;IACRV,GAAG,EAAE,6EAA6E;IAClFC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDS,MAAM,EAAE;IACNX,GAAG,EAAE,8CAA8C;IACnDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDU,iBAAiB,EAAE;IACjBZ,GAAG,EAAE,uIAAuI;IAC5IC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDW,iBAAiB,EAAE;IACjBb,GAAG,EAAE,qQAAqQ;IAC1QC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDY,oBAAoB,EAAE;IACpBd,GAAG,EAAE,0GAA0G;IAC/GC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDa,aAAa,EAAE;IACbf,GAAG,EAAE,4EAA4E;IACjFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDc,SAAS,EAAE;IACThB,GAAG,EAAE,sHAAsH;IAC3HC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDe,eAAe,EAAE;IACfjB,GAAG,EAAE,mKAAmK;IACxKC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDgB,OAAO,EAAE;IACPlB,GAAG,EAAE,sHAAsH;IAC3HC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDiB,SAAS,EAAE;IACTnB,GAAG,EAAE,0HAA0H;IAC/HC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMkB,eAAqC,GAAG;EACnDC,QAAQ,EAAE;IACRrB,GAAG,EAAE,kcAAkc;IACvcC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDoB,OAAO,EAAE;IACPtB,GAAG,EAAE,mJAAmJ;IACxJC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDqB,MAAM,EAAE;IACNvB,GAAG,EAAE,oJAAoJ;IACzJC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC"}
@@ -1,5 +1,8 @@
1
- export { default as useDataValue } from './useDataValue';
1
+ export { default as useFieldProps } from './useFieldProps';
2
2
  export { default as useErrorMessage } from './useErrorMessage';
3
- export { default as useMountEffect } from './useMountEffect';
4
- export { default as useUpdateEffect } from './useUpdateEffect';
5
3
  export { default as useProcessManager } from './useProcessManager';
4
+ /**
5
+ * Can be removed in v11
6
+ * @deprecated Use `useFieldProps` instead
7
+ */
8
+ export { default as useDataValue } from './useFieldProps';