@dnb/eufemia 10.22.0 → 10.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1233) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/cjs/components/accordion/Accordion.js +1 -1
  3. package/cjs/components/accordion/Accordion.js.map +1 -1
  4. package/cjs/components/accordion/AccordionContext.d.ts +1 -1
  5. package/cjs/components/accordion/AccordionGroup.js +1 -1
  6. package/cjs/components/accordion/AccordionGroup.js.map +1 -1
  7. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +18 -0
  8. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  9. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +20 -0
  10. package/cjs/components/anchor/Anchor.d.ts +3 -4
  11. package/cjs/components/anchor/Anchor.js +16 -25
  12. package/cjs/components/anchor/Anchor.js.map +1 -1
  13. package/cjs/components/anchor/style/anchor-mixins.scss +62 -13
  14. package/cjs/components/anchor/style/dnb-anchor.css +79 -16
  15. package/cjs/components/anchor/style/dnb-anchor.min.css +1 -1
  16. package/cjs/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +10 -30
  17. package/cjs/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  18. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +82 -78
  19. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  20. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +25 -53
  21. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.css +10 -30
  22. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  23. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.scss +1 -8
  24. package/cjs/components/aria-live/useAriaLive.d.ts +1 -1
  25. package/cjs/components/breadcrumb/Breadcrumb.js +26 -17
  26. package/cjs/components/breadcrumb/Breadcrumb.js.map +1 -1
  27. package/cjs/components/breadcrumb/BreadcrumbItem.d.ts +6 -4
  28. package/cjs/components/breadcrumb/BreadcrumbItem.js +17 -9
  29. package/cjs/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  30. package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +29 -4
  31. package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  32. package/cjs/components/breadcrumb/style/dnb-breadcrumb.scss +32 -4
  33. package/cjs/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.css +9 -0
  34. package/cjs/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.min.css +1 -1
  35. package/cjs/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.scss +7 -0
  36. package/cjs/components/button/Button.js +1 -1
  37. package/cjs/components/button/Button.js.map +1 -1
  38. package/cjs/components/button/style/button--tertiary.scss +30 -75
  39. package/cjs/components/button/style/dnb-button.css +43 -49
  40. package/cjs/components/button/style/dnb-button.min.css +1 -1
  41. package/cjs/components/button/style/dnb-button.scss +46 -59
  42. package/cjs/components/button/style/themes/button-mixins.scss +26 -5
  43. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.css +29 -60
  44. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.min.css +12 -2
  45. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.css +44 -72
  46. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.min.css +16 -4
  47. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.scss +14 -16
  48. package/cjs/components/button/style/themes/dnb-button-theme-ui.css +29 -60
  49. package/cjs/components/button/style/themes/dnb-button-theme-ui.min.css +12 -2
  50. package/cjs/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
  51. package/cjs/components/card/Card.d.ts +15 -2
  52. package/cjs/components/card/Card.js +19 -7
  53. package/cjs/components/card/Card.js.map +1 -1
  54. package/cjs/components/card/CardDocs.d.ts +2 -0
  55. package/cjs/components/card/CardDocs.js +65 -0
  56. package/cjs/components/card/CardDocs.js.map +1 -0
  57. package/cjs/components/card/style/dnb-card.css +24 -5
  58. package/cjs/components/card/style/dnb-card.min.css +1 -1
  59. package/cjs/components/card/style/dnb-card.scss +47 -16
  60. package/cjs/components/checkbox/style/dnb-checkbox.css +3 -0
  61. package/cjs/components/checkbox/style/dnb-checkbox.min.css +1 -1
  62. package/cjs/components/checkbox/style/dnb-checkbox.scss +7 -0
  63. package/cjs/components/date-picker/DatePicker.d.ts +2 -0
  64. package/cjs/components/date-picker/DatePicker.js +2 -1
  65. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  66. package/cjs/components/date-picker/DatePickerInput.js +19 -3
  67. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  68. package/cjs/components/date-picker/DatePickerProvider.js +8 -3
  69. package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
  70. package/cjs/components/dropdown/style/dnb-dropdown.css +3 -0
  71. package/cjs/components/dropdown/style/dnb-dropdown.min.css +1 -1
  72. package/cjs/components/dropdown/style/dnb-dropdown.scss +4 -0
  73. package/cjs/components/flex/style/dnb-flex.css +1 -1
  74. package/cjs/components/flex/style/dnb-flex.min.css +1 -1
  75. package/cjs/components/flex/style/flex-stack.scss +1 -1
  76. package/cjs/components/form-label/FormLabel.js +1 -1
  77. package/cjs/components/form-label/FormLabel.js.map +1 -1
  78. package/cjs/components/form-label/style/dnb-form-label.css +3 -0
  79. package/cjs/components/form-label/style/dnb-form-label.min.css +1 -1
  80. package/cjs/components/form-label/style/dnb-form-label.scss +4 -0
  81. package/cjs/components/form-label/style/themes/dnb-form-label-theme-sbanken.css +0 -3
  82. package/cjs/components/form-label/style/themes/dnb-form-label-theme-sbanken.min.css +1 -1
  83. package/cjs/components/form-label/style/themes/dnb-form-label-theme-sbanken.scss +0 -8
  84. package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.css +0 -6
  85. package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
  86. package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.scss +0 -8
  87. package/cjs/components/heading/HeadingContext.d.ts +1 -1
  88. package/cjs/components/height-animation/style/dnb-height-animation.css +2 -2
  89. package/cjs/components/height-animation/style/dnb-height-animation.min.css +1 -1
  90. package/cjs/components/height-animation/style/dnb-height-animation.scss +3 -2
  91. package/cjs/components/icon/style/dnb-icon.css +2 -2
  92. package/cjs/components/icon/style/dnb-icon.min.css +1 -1
  93. package/cjs/components/icon/style/dnb-icon.scss +1 -1
  94. package/cjs/components/input/Input.js +1 -1
  95. package/cjs/components/input/Input.js.map +1 -1
  96. package/cjs/components/number-format/NumberUtils.d.ts +1 -1
  97. package/cjs/components/radio/style/dnb-radio.css +4 -0
  98. package/cjs/components/radio/style/dnb-radio.min.css +1 -1
  99. package/cjs/components/radio/style/dnb-radio.scss +9 -0
  100. package/cjs/components/section/style/themes/dnb-section-theme-ui.css +3 -6
  101. package/cjs/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  102. package/cjs/components/skeleton/SkeletonHelper.d.ts +6 -6
  103. package/cjs/components/skeleton/style/dnb-skeleton.css +1 -0
  104. package/cjs/components/skeleton/style/dnb-skeleton.min.css +1 -1
  105. package/cjs/components/skeleton/style/dnb-skeleton.scss +1 -0
  106. package/cjs/components/slider/SliderInstance.js +1 -0
  107. package/cjs/components/slider/SliderInstance.js.map +1 -1
  108. package/cjs/components/slider/SliderThumb.js +4 -2
  109. package/cjs/components/slider/SliderThumb.js.map +1 -1
  110. package/cjs/components/step-indicator/StepIndicator.js +11 -5
  111. package/cjs/components/step-indicator/StepIndicator.js.map +1 -1
  112. package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.css +1 -1
  113. package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.min.css +1 -1
  114. package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.scss +1 -1
  115. package/cjs/components/table/TableScrollView.d.ts +5 -1
  116. package/cjs/components/table/TableScrollView.js +1 -0
  117. package/cjs/components/table/TableScrollView.js.map +1 -1
  118. package/cjs/components/table/TableTr.d.ts +1 -2
  119. package/cjs/components/table/TableTr.js.map +1 -1
  120. package/cjs/components/table/style/dnb-table.css +14 -1
  121. package/cjs/components/table/style/dnb-table.min.css +1 -1
  122. package/cjs/components/table/style/dnb-table.scss +7 -1
  123. package/cjs/components/table/style/table-header-buttons.scss +4 -1
  124. package/cjs/components/table/style/table-th.scss +9 -25
  125. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.css +1 -1
  126. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  127. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.scss +2 -1
  128. package/cjs/components/table/style/themes/dnb-table-theme-ui.css +1 -1
  129. package/cjs/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  130. package/cjs/components/table/style/themes/dnb-table-theme-ui.scss +2 -2
  131. package/cjs/components/table/useTableAnimationHandler.d.ts +1 -1
  132. package/cjs/components/table/useTableAnimationHandler.js +3 -3
  133. package/cjs/components/table/useTableAnimationHandler.js.map +1 -1
  134. package/cjs/components/tag/Tag.d.ts +11 -0
  135. package/cjs/components/tag/Tag.js +55 -40
  136. package/cjs/components/tag/Tag.js.map +1 -1
  137. package/cjs/components/tag/style/dnb-tag.css +50 -86
  138. package/cjs/components/tag/style/dnb-tag.min.css +1 -1
  139. package/cjs/components/tag/style/dnb-tag.scss +37 -45
  140. package/cjs/components/tag/style/themes/tag-mixins.scss +24 -6
  141. package/cjs/components/textarea/Textarea.d.ts +9 -0
  142. package/cjs/components/textarea/Textarea.js +21 -5
  143. package/cjs/components/textarea/Textarea.js.map +1 -1
  144. package/cjs/components/textarea/TextareaDocs.js +10 -0
  145. package/cjs/components/textarea/TextareaDocs.js.map +1 -1
  146. package/cjs/components/textarea/style/dnb-textarea.css +69 -26
  147. package/cjs/components/textarea/style/dnb-textarea.min.css +1 -1
  148. package/cjs/components/textarea/style/dnb-textarea.scss +83 -31
  149. package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +15 -21
  150. package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -1
  151. package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +17 -28
  152. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.css +12 -23
  153. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  154. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.scss +11 -27
  155. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +1 -2
  156. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
  157. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -2
  158. package/cjs/components/tooltip/Tooltip.js +1 -1
  159. package/cjs/components/tooltip/Tooltip.js.map +1 -1
  160. package/cjs/elements/Element.d.ts +3 -4
  161. package/cjs/elements/Element.js.map +1 -1
  162. package/cjs/elements/code/style/themes/dnb-code-theme-sbanken.scss +5 -3
  163. package/cjs/extensions/forms/DataContext/At/At.js.map +1 -1
  164. package/cjs/extensions/forms/DataContext/Context.d.ts +31 -8
  165. package/cjs/extensions/forms/DataContext/Context.js +14 -3
  166. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  167. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +29 -16
  168. package/cjs/extensions/forms/DataContext/Provider/Provider.js +324 -77
  169. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  170. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.d.ts +3 -0
  171. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +93 -0
  172. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -0
  173. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +1 -1
  174. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  175. package/cjs/extensions/forms/Field/Date/Date.js +3 -3
  176. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  177. package/cjs/extensions/forms/Field/Expiry/Expiry.js +4 -4
  178. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  179. package/cjs/extensions/forms/Field/Number/Number.js +3 -3
  180. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  181. package/cjs/extensions/forms/Field/Password/Password.d.ts +1 -1
  182. package/cjs/extensions/forms/Field/Password/Password.js.map +1 -1
  183. package/cjs/extensions/forms/Field/Password/style/dnb-password.scss +1 -1
  184. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +4 -4
  185. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  186. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -1
  187. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  188. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +3 -3
  189. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  190. package/cjs/extensions/forms/Field/Selection/Selection.js +5 -5
  191. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  192. package/cjs/extensions/forms/Field/String/String.d.ts +6 -6
  193. package/cjs/extensions/forms/Field/String/String.js +16 -14
  194. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  195. package/cjs/extensions/forms/Field/String/StringDocs.js +9 -4
  196. package/cjs/extensions/forms/Field/String/StringDocs.js.map +1 -1
  197. package/cjs/extensions/forms/Field/Toggle/Toggle.js +7 -7
  198. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  199. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -1
  200. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +41 -19
  201. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  202. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +2 -2
  203. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  204. package/cjs/extensions/forms/Form/Appearance/Appearance.js +3 -0
  205. package/cjs/extensions/forms/Form/Appearance/Appearance.js.map +1 -1
  206. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +2 -2
  207. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  208. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +2 -1
  209. package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  210. package/cjs/extensions/forms/Form/Handler/Handler.js +50 -8
  211. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  212. package/cjs/extensions/forms/Form/Handler/HandlerDocs.d.ts +3 -0
  213. package/cjs/extensions/forms/Form/Handler/HandlerDocs.js +49 -0
  214. package/cjs/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -0
  215. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.d.ts +6 -1
  216. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js +19 -10
  217. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  218. package/cjs/extensions/forms/Form/SubmitButton/SubmitButtonDocs.d.ts +2 -0
  219. package/cjs/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js +30 -0
  220. package/cjs/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js.map +1 -0
  221. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.d.ts +14 -0
  222. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +81 -0
  223. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -0
  224. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.d.ts +2 -0
  225. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js +25 -0
  226. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js.map +1 -0
  227. package/cjs/extensions/forms/Form/SubmitIndicator/index.d.ts +2 -0
  228. package/cjs/extensions/forms/Form/SubmitIndicator/index.js +27 -0
  229. package/cjs/extensions/forms/Form/SubmitIndicator/index.js.map +1 -0
  230. package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +99 -0
  231. package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -0
  232. package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +117 -0
  233. package/cjs/extensions/forms/Form/SubmitIndicator/style/index.d.ts +5 -0
  234. package/cjs/extensions/forms/Form/SubmitIndicator/style/index.js +4 -0
  235. package/cjs/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -0
  236. package/cjs/extensions/forms/Form/data-context/getData.d.ts +1 -1
  237. package/cjs/extensions/forms/Form/data-context/getData.js.map +1 -1
  238. package/cjs/extensions/forms/Form/data-context/useData.d.ts +3 -3
  239. package/cjs/extensions/forms/Form/data-context/useData.js +32 -12
  240. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  241. package/cjs/extensions/forms/Form/data-context/useError.d.ts +3 -2
  242. package/cjs/extensions/forms/Form/data-context/useError.js +8 -5
  243. package/cjs/extensions/forms/Form/data-context/useError.js.map +1 -1
  244. package/cjs/extensions/forms/Form/index.d.ts +1 -0
  245. package/cjs/extensions/forms/Form/index.js +7 -0
  246. package/cjs/extensions/forms/Form/index.js.map +1 -1
  247. package/cjs/extensions/forms/Iterate/Array/Array.js +1 -1
  248. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  249. package/cjs/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +1 -1
  250. package/cjs/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
  251. package/cjs/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +1 -1
  252. package/cjs/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
  253. package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.d.ts +1 -3
  254. package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js +4 -3
  255. package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  256. package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.d.ts +1 -3
  257. package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +6 -2
  258. package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  259. package/cjs/extensions/forms/StepsLayout/Step/Step.js +2 -3
  260. package/cjs/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
  261. package/cjs/extensions/forms/StepsLayout/StepsContext.d.ts +6 -4
  262. package/cjs/extensions/forms/StepsLayout/StepsContext.js +6 -1
  263. package/cjs/extensions/forms/StepsLayout/StepsContext.js.map +1 -1
  264. package/cjs/extensions/forms/StepsLayout/StepsLayout.d.ts +5 -3
  265. package/cjs/extensions/forms/StepsLayout/StepsLayout.js +112 -50
  266. package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  267. package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +3 -0
  268. package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.js +58 -0
  269. package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -0
  270. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.css +6 -1
  271. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  272. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +11 -1
  273. package/cjs/extensions/forms/StepsLayout/useStep.d.ts +3 -0
  274. package/cjs/extensions/forms/StepsLayout/useStep.js +19 -0
  275. package/cjs/extensions/forms/StepsLayout/useStep.js.map +1 -0
  276. package/cjs/extensions/forms/Value/Boolean/Boolean.js +1 -1
  277. package/cjs/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  278. package/cjs/extensions/forms/Value/Number/Number.js +5 -5
  279. package/cjs/extensions/forms/Value/Number/Number.js.map +1 -1
  280. package/cjs/extensions/forms/Value/String/String.js +1 -1
  281. package/cjs/extensions/forms/Value/String/String.js.map +1 -1
  282. package/cjs/extensions/forms/hooks/DataValueDocs.js +3 -3
  283. package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  284. package/cjs/extensions/forms/hooks/index.d.ts +6 -3
  285. package/cjs/extensions/forms/hooks/index.js +4 -12
  286. package/cjs/extensions/forms/hooks/index.js.map +1 -1
  287. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +23 -0
  288. package/cjs/extensions/forms/hooks/useFieldProps.js +774 -0
  289. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -0
  290. package/cjs/extensions/forms/style/dnb-forms.css +107 -3
  291. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  292. package/cjs/extensions/forms/types.d.ts +69 -6
  293. package/cjs/extensions/forms/types.js +3 -2
  294. package/cjs/extensions/forms/types.js.map +1 -1
  295. package/cjs/extensions/forms/utils/ajv.d.ts +9 -7
  296. package/cjs/extensions/forms/utils/ajv.js +34 -17
  297. package/cjs/extensions/forms/utils/ajv.js.map +1 -1
  298. package/cjs/fragments/scroll-view/ScrollView.d.ts +2 -2
  299. package/cjs/fragments/scroll-view/ScrollView.js +4 -1
  300. package/cjs/fragments/scroll-view/ScrollView.js.map +1 -1
  301. package/cjs/shared/Context.d.ts +20 -11
  302. package/cjs/shared/Context.js.map +1 -1
  303. package/cjs/shared/Eufemia.d.ts +2 -2
  304. package/cjs/shared/Eufemia.js +2 -2
  305. package/cjs/shared/Eufemia.js.map +1 -1
  306. package/cjs/shared/Provider.js.map +1 -1
  307. package/cjs/shared/defaults.d.ts +3 -3
  308. package/cjs/shared/defaults.js.map +1 -1
  309. package/cjs/shared/helpers/debounce.d.ts +21 -30
  310. package/cjs/shared/helpers/debounce.js +23 -11
  311. package/cjs/shared/helpers/debounce.js.map +1 -1
  312. package/cjs/shared/helpers/isAsync.d.ts +7 -0
  313. package/cjs/shared/helpers/isAsync.js +20 -0
  314. package/cjs/shared/helpers/isAsync.js.map +1 -0
  315. package/cjs/shared/helpers/runCssVersionMismatchWarning.d.ts +8 -0
  316. package/cjs/shared/helpers/runCssVersionMismatchWarning.js +31 -0
  317. package/cjs/shared/helpers/runCssVersionMismatchWarning.js.map +1 -0
  318. package/cjs/{extensions/forms/hooks → shared/helpers}/useId.js +1 -1
  319. package/cjs/shared/helpers/useId.js.map +1 -0
  320. package/cjs/shared/helpers/useMountEffect.js.map +1 -0
  321. package/cjs/shared/helpers/useMounted.js.map +1 -0
  322. package/cjs/shared/helpers/useSharedState.js +15 -9
  323. package/cjs/shared/helpers/useSharedState.js.map +1 -1
  324. package/cjs/shared/helpers/useUnmountEffect.js.map +1 -0
  325. package/cjs/shared/helpers/useUpdateEffect.js.map +1 -0
  326. package/cjs/shared/helpers.js +2 -0
  327. package/cjs/shared/helpers.js.map +1 -1
  328. package/cjs/shared/index.d.ts +10 -10
  329. package/cjs/shared/index.js +7 -1
  330. package/cjs/shared/index.js.map +1 -1
  331. package/cjs/shared/locales/en-GB.d.ts +1 -0
  332. package/cjs/shared/locales/en-GB.js +2 -1
  333. package/cjs/shared/locales/en-GB.js.map +1 -1
  334. package/cjs/shared/locales/en-US.d.ts +1 -0
  335. package/cjs/shared/locales/index.d.ts +4 -2
  336. package/cjs/shared/locales/index.js +2 -1
  337. package/cjs/shared/locales/index.js.map +1 -1
  338. package/cjs/shared/locales/nb-NO.d.ts +1 -0
  339. package/cjs/shared/locales/nb-NO.js +2 -1
  340. package/cjs/shared/locales/nb-NO.js.map +1 -1
  341. package/cjs/shared/types.d.ts +4 -1
  342. package/cjs/shared/types.js.map +1 -1
  343. package/cjs/shared/useLocale.d.ts +2 -0
  344. package/cjs/shared/useLocale.js +37 -0
  345. package/cjs/shared/useLocale.js.map +1 -0
  346. package/cjs/style/core/scopes.scss +3 -0
  347. package/cjs/style/dnb-ui-basis.css +1 -0
  348. package/cjs/style/dnb-ui-basis.min.css +1 -1
  349. package/cjs/style/dnb-ui-body.css +1 -0
  350. package/cjs/style/dnb-ui-body.min.css +1 -1
  351. package/cjs/style/dnb-ui-components.css +433 -195
  352. package/cjs/style/dnb-ui-components.min.css +3 -3
  353. package/cjs/style/dnb-ui-core.css +1 -0
  354. package/cjs/style/dnb-ui-core.min.css +1 -1
  355. package/cjs/style/dnb-ui-extensions.css +107 -3
  356. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  357. package/cjs/style/dnb-ui-forms.css +107 -3
  358. package/cjs/style/dnb-ui-forms.min.css +1 -1
  359. package/cjs/style/dnb-ui-forms.scss +1 -0
  360. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +3 -6
  361. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  362. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +596 -328
  363. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +17 -7
  364. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +3 -6
  365. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  366. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +107 -3
  367. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  368. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +107 -3
  369. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  370. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +5 -2
  371. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  372. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +710 -374
  373. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +21 -9
  374. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +5 -2
  375. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  376. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +107 -3
  377. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  378. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +107 -3
  379. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  380. package/cjs/style/themes/theme-ui/ui-theme-basis.css +3 -6
  381. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  382. package/cjs/style/themes/theme-ui/ui-theme-components.css +596 -326
  383. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +17 -7
  384. package/cjs/style/themes/theme-ui/ui-theme-elements.css +3 -6
  385. package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  386. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +107 -3
  387. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  388. package/cjs/style/themes/theme-ui/ui-theme-forms.css +107 -3
  389. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  390. package/cjs/style/themes/theme-ui/ui-theme-tags.css +40 -15
  391. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  392. package/components/accordion/Accordion.js +1 -1
  393. package/components/accordion/Accordion.js.map +1 -1
  394. package/components/accordion/AccordionContext.d.ts +1 -1
  395. package/components/accordion/AccordionGroup.js +1 -1
  396. package/components/accordion/AccordionGroup.js.map +1 -1
  397. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +18 -0
  398. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  399. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +20 -0
  400. package/components/anchor/Anchor.d.ts +3 -4
  401. package/components/anchor/Anchor.js +16 -25
  402. package/components/anchor/Anchor.js.map +1 -1
  403. package/components/anchor/style/anchor-mixins.scss +62 -13
  404. package/components/anchor/style/dnb-anchor.css +79 -16
  405. package/components/anchor/style/dnb-anchor.min.css +1 -1
  406. package/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +10 -30
  407. package/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  408. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +82 -78
  409. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  410. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +25 -53
  411. package/components/anchor/style/themes/dnb-anchor-theme-ui.css +10 -30
  412. package/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  413. package/components/anchor/style/themes/dnb-anchor-theme-ui.scss +1 -8
  414. package/components/aria-live/useAriaLive.d.ts +1 -1
  415. package/components/breadcrumb/Breadcrumb.js +27 -18
  416. package/components/breadcrumb/Breadcrumb.js.map +1 -1
  417. package/components/breadcrumb/BreadcrumbItem.d.ts +6 -4
  418. package/components/breadcrumb/BreadcrumbItem.js +18 -10
  419. package/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  420. package/components/breadcrumb/style/dnb-breadcrumb.css +29 -4
  421. package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  422. package/components/breadcrumb/style/dnb-breadcrumb.scss +32 -4
  423. package/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.css +9 -0
  424. package/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.min.css +1 -1
  425. package/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.scss +7 -0
  426. package/components/button/Button.js +1 -1
  427. package/components/button/Button.js.map +1 -1
  428. package/components/button/style/button--tertiary.scss +30 -75
  429. package/components/button/style/dnb-button.css +43 -49
  430. package/components/button/style/dnb-button.min.css +1 -1
  431. package/components/button/style/dnb-button.scss +46 -59
  432. package/components/button/style/themes/button-mixins.scss +26 -5
  433. package/components/button/style/themes/dnb-button-theme-eiendom.css +29 -60
  434. package/components/button/style/themes/dnb-button-theme-eiendom.min.css +12 -2
  435. package/components/button/style/themes/dnb-button-theme-sbanken.css +44 -72
  436. package/components/button/style/themes/dnb-button-theme-sbanken.min.css +16 -4
  437. package/components/button/style/themes/dnb-button-theme-sbanken.scss +14 -16
  438. package/components/button/style/themes/dnb-button-theme-ui.css +29 -60
  439. package/components/button/style/themes/dnb-button-theme-ui.min.css +12 -2
  440. package/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
  441. package/components/card/Card.d.ts +15 -2
  442. package/components/card/Card.js +19 -7
  443. package/components/card/Card.js.map +1 -1
  444. package/components/card/CardDocs.d.ts +2 -0
  445. package/components/card/CardDocs.js +58 -0
  446. package/components/card/CardDocs.js.map +1 -0
  447. package/components/card/style/dnb-card.css +24 -5
  448. package/components/card/style/dnb-card.min.css +1 -1
  449. package/components/card/style/dnb-card.scss +47 -16
  450. package/components/checkbox/style/dnb-checkbox.css +3 -0
  451. package/components/checkbox/style/dnb-checkbox.min.css +1 -1
  452. package/components/checkbox/style/dnb-checkbox.scss +7 -0
  453. package/components/date-picker/DatePicker.d.ts +2 -0
  454. package/components/date-picker/DatePicker.js +2 -1
  455. package/components/date-picker/DatePicker.js.map +1 -1
  456. package/components/date-picker/DatePickerInput.js +19 -3
  457. package/components/date-picker/DatePickerInput.js.map +1 -1
  458. package/components/date-picker/DatePickerProvider.js +8 -3
  459. package/components/date-picker/DatePickerProvider.js.map +1 -1
  460. package/components/dropdown/style/dnb-dropdown.css +3 -0
  461. package/components/dropdown/style/dnb-dropdown.min.css +1 -1
  462. package/components/dropdown/style/dnb-dropdown.scss +4 -0
  463. package/components/flex/style/dnb-flex.css +1 -1
  464. package/components/flex/style/dnb-flex.min.css +1 -1
  465. package/components/flex/style/flex-stack.scss +1 -1
  466. package/components/form-label/FormLabel.js +1 -1
  467. package/components/form-label/FormLabel.js.map +1 -1
  468. package/components/form-label/style/dnb-form-label.css +3 -0
  469. package/components/form-label/style/dnb-form-label.min.css +1 -1
  470. package/components/form-label/style/dnb-form-label.scss +4 -0
  471. package/components/form-label/style/themes/dnb-form-label-theme-sbanken.css +0 -3
  472. package/components/form-label/style/themes/dnb-form-label-theme-sbanken.min.css +1 -1
  473. package/components/form-label/style/themes/dnb-form-label-theme-sbanken.scss +0 -8
  474. package/components/form-label/style/themes/dnb-form-label-theme-ui.css +0 -6
  475. package/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
  476. package/components/form-label/style/themes/dnb-form-label-theme-ui.scss +0 -8
  477. package/components/heading/HeadingContext.d.ts +1 -1
  478. package/components/height-animation/style/dnb-height-animation.css +2 -2
  479. package/components/height-animation/style/dnb-height-animation.min.css +1 -1
  480. package/components/height-animation/style/dnb-height-animation.scss +3 -2
  481. package/components/icon/style/dnb-icon.css +2 -2
  482. package/components/icon/style/dnb-icon.min.css +1 -1
  483. package/components/icon/style/dnb-icon.scss +1 -1
  484. package/components/input/Input.js +1 -1
  485. package/components/input/Input.js.map +1 -1
  486. package/components/number-format/NumberUtils.d.ts +1 -1
  487. package/components/radio/style/dnb-radio.css +4 -0
  488. package/components/radio/style/dnb-radio.min.css +1 -1
  489. package/components/radio/style/dnb-radio.scss +9 -0
  490. package/components/section/style/themes/dnb-section-theme-ui.css +3 -6
  491. package/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  492. package/components/skeleton/SkeletonHelper.d.ts +6 -6
  493. package/components/skeleton/style/dnb-skeleton.css +1 -0
  494. package/components/skeleton/style/dnb-skeleton.min.css +1 -1
  495. package/components/skeleton/style/dnb-skeleton.scss +1 -0
  496. package/components/slider/SliderInstance.js +1 -0
  497. package/components/slider/SliderInstance.js.map +1 -1
  498. package/components/slider/SliderThumb.js +4 -2
  499. package/components/slider/SliderThumb.js.map +1 -1
  500. package/components/step-indicator/StepIndicator.js +11 -6
  501. package/components/step-indicator/StepIndicator.js.map +1 -1
  502. package/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.css +1 -1
  503. package/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.min.css +1 -1
  504. package/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.scss +1 -1
  505. package/components/table/TableScrollView.d.ts +5 -1
  506. package/components/table/TableScrollView.js +1 -0
  507. package/components/table/TableScrollView.js.map +1 -1
  508. package/components/table/TableTr.d.ts +1 -2
  509. package/components/table/TableTr.js.map +1 -1
  510. package/components/table/style/dnb-table.css +14 -1
  511. package/components/table/style/dnb-table.min.css +1 -1
  512. package/components/table/style/dnb-table.scss +7 -1
  513. package/components/table/style/table-header-buttons.scss +4 -1
  514. package/components/table/style/table-th.scss +9 -25
  515. package/components/table/style/themes/dnb-table-theme-sbanken.css +1 -1
  516. package/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  517. package/components/table/style/themes/dnb-table-theme-sbanken.scss +2 -1
  518. package/components/table/style/themes/dnb-table-theme-ui.css +1 -1
  519. package/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  520. package/components/table/style/themes/dnb-table-theme-ui.scss +2 -2
  521. package/components/table/useTableAnimationHandler.d.ts +1 -1
  522. package/components/table/useTableAnimationHandler.js +3 -3
  523. package/components/table/useTableAnimationHandler.js.map +1 -1
  524. package/components/tag/Tag.d.ts +11 -0
  525. package/components/tag/Tag.js +54 -39
  526. package/components/tag/Tag.js.map +1 -1
  527. package/components/tag/style/dnb-tag.css +50 -86
  528. package/components/tag/style/dnb-tag.min.css +1 -1
  529. package/components/tag/style/dnb-tag.scss +37 -45
  530. package/components/tag/style/themes/tag-mixins.scss +24 -6
  531. package/components/textarea/Textarea.d.ts +9 -0
  532. package/components/textarea/Textarea.js +21 -5
  533. package/components/textarea/Textarea.js.map +1 -1
  534. package/components/textarea/TextareaDocs.js +10 -0
  535. package/components/textarea/TextareaDocs.js.map +1 -1
  536. package/components/textarea/style/dnb-textarea.css +69 -26
  537. package/components/textarea/style/dnb-textarea.min.css +1 -1
  538. package/components/textarea/style/dnb-textarea.scss +83 -31
  539. package/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +15 -21
  540. package/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -1
  541. package/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +17 -28
  542. package/components/textarea/style/themes/dnb-textarea-theme-ui.css +12 -23
  543. package/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  544. package/components/textarea/style/themes/dnb-textarea-theme-ui.scss +11 -27
  545. package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +1 -2
  546. package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
  547. package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -2
  548. package/components/tooltip/Tooltip.js +1 -1
  549. package/components/tooltip/Tooltip.js.map +1 -1
  550. package/elements/Element.d.ts +3 -4
  551. package/elements/Element.js.map +1 -1
  552. package/elements/code/style/themes/dnb-code-theme-sbanken.scss +5 -3
  553. package/es/components/accordion/Accordion.js +1 -1
  554. package/es/components/accordion/Accordion.js.map +1 -1
  555. package/es/components/accordion/AccordionContext.d.ts +1 -1
  556. package/es/components/accordion/AccordionGroup.js +1 -1
  557. package/es/components/accordion/AccordionGroup.js.map +1 -1
  558. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +18 -0
  559. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  560. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +20 -0
  561. package/es/components/anchor/Anchor.d.ts +3 -4
  562. package/es/components/anchor/Anchor.js +16 -25
  563. package/es/components/anchor/Anchor.js.map +1 -1
  564. package/es/components/anchor/style/anchor-mixins.scss +62 -13
  565. package/es/components/anchor/style/dnb-anchor.css +79 -16
  566. package/es/components/anchor/style/dnb-anchor.min.css +1 -1
  567. package/es/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +10 -30
  568. package/es/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  569. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +82 -78
  570. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  571. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +25 -53
  572. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.css +10 -30
  573. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  574. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.scss +1 -8
  575. package/es/components/aria-live/useAriaLive.d.ts +1 -1
  576. package/es/components/breadcrumb/Breadcrumb.js +27 -18
  577. package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
  578. package/es/components/breadcrumb/BreadcrumbItem.d.ts +6 -4
  579. package/es/components/breadcrumb/BreadcrumbItem.js +18 -10
  580. package/es/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  581. package/es/components/breadcrumb/style/dnb-breadcrumb.css +29 -4
  582. package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  583. package/es/components/breadcrumb/style/dnb-breadcrumb.scss +32 -4
  584. package/es/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.css +9 -0
  585. package/es/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.min.css +1 -1
  586. package/es/components/breadcrumb/style/themes/dnb-breadcrumb-theme-sbanken.scss +7 -0
  587. package/es/components/button/Button.js +1 -1
  588. package/es/components/button/Button.js.map +1 -1
  589. package/es/components/button/style/button--tertiary.scss +30 -75
  590. package/es/components/button/style/dnb-button.css +43 -49
  591. package/es/components/button/style/dnb-button.min.css +1 -1
  592. package/es/components/button/style/dnb-button.scss +46 -59
  593. package/es/components/button/style/themes/button-mixins.scss +26 -5
  594. package/es/components/button/style/themes/dnb-button-theme-eiendom.css +29 -60
  595. package/es/components/button/style/themes/dnb-button-theme-eiendom.min.css +12 -2
  596. package/es/components/button/style/themes/dnb-button-theme-sbanken.css +44 -72
  597. package/es/components/button/style/themes/dnb-button-theme-sbanken.min.css +16 -4
  598. package/es/components/button/style/themes/dnb-button-theme-sbanken.scss +14 -16
  599. package/es/components/button/style/themes/dnb-button-theme-ui.css +29 -60
  600. package/es/components/button/style/themes/dnb-button-theme-ui.min.css +12 -2
  601. package/es/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
  602. package/es/components/card/Card.d.ts +15 -2
  603. package/es/components/card/Card.js +19 -7
  604. package/es/components/card/Card.js.map +1 -1
  605. package/es/components/card/CardDocs.d.ts +2 -0
  606. package/es/components/card/CardDocs.js +58 -0
  607. package/es/components/card/CardDocs.js.map +1 -0
  608. package/es/components/card/style/dnb-card.css +24 -5
  609. package/es/components/card/style/dnb-card.min.css +1 -1
  610. package/es/components/card/style/dnb-card.scss +47 -16
  611. package/es/components/checkbox/style/dnb-checkbox.css +3 -0
  612. package/es/components/checkbox/style/dnb-checkbox.min.css +1 -1
  613. package/es/components/checkbox/style/dnb-checkbox.scss +7 -0
  614. package/es/components/date-picker/DatePicker.d.ts +2 -0
  615. package/es/components/date-picker/DatePicker.js +2 -1
  616. package/es/components/date-picker/DatePicker.js.map +1 -1
  617. package/es/components/date-picker/DatePickerInput.js +19 -3
  618. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  619. package/es/components/date-picker/DatePickerProvider.js +8 -3
  620. package/es/components/date-picker/DatePickerProvider.js.map +1 -1
  621. package/es/components/dropdown/style/dnb-dropdown.css +3 -0
  622. package/es/components/dropdown/style/dnb-dropdown.min.css +1 -1
  623. package/es/components/dropdown/style/dnb-dropdown.scss +4 -0
  624. package/es/components/flex/style/dnb-flex.css +1 -1
  625. package/es/components/flex/style/dnb-flex.min.css +1 -1
  626. package/es/components/flex/style/flex-stack.scss +1 -1
  627. package/es/components/form-label/FormLabel.js +1 -1
  628. package/es/components/form-label/FormLabel.js.map +1 -1
  629. package/es/components/form-label/style/dnb-form-label.css +3 -0
  630. package/es/components/form-label/style/dnb-form-label.min.css +1 -1
  631. package/es/components/form-label/style/dnb-form-label.scss +4 -0
  632. package/es/components/form-label/style/themes/dnb-form-label-theme-sbanken.css +0 -3
  633. package/es/components/form-label/style/themes/dnb-form-label-theme-sbanken.min.css +1 -1
  634. package/es/components/form-label/style/themes/dnb-form-label-theme-sbanken.scss +0 -8
  635. package/es/components/form-label/style/themes/dnb-form-label-theme-ui.css +0 -6
  636. package/es/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
  637. package/es/components/form-label/style/themes/dnb-form-label-theme-ui.scss +0 -8
  638. package/es/components/heading/HeadingContext.d.ts +1 -1
  639. package/es/components/height-animation/style/dnb-height-animation.css +2 -2
  640. package/es/components/height-animation/style/dnb-height-animation.min.css +1 -1
  641. package/es/components/height-animation/style/dnb-height-animation.scss +3 -2
  642. package/es/components/icon/style/dnb-icon.css +2 -2
  643. package/es/components/icon/style/dnb-icon.min.css +1 -1
  644. package/es/components/icon/style/dnb-icon.scss +1 -1
  645. package/es/components/input/Input.js +1 -1
  646. package/es/components/input/Input.js.map +1 -1
  647. package/es/components/number-format/NumberUtils.d.ts +1 -1
  648. package/es/components/radio/style/dnb-radio.css +4 -0
  649. package/es/components/radio/style/dnb-radio.min.css +1 -1
  650. package/es/components/radio/style/dnb-radio.scss +9 -0
  651. package/es/components/section/style/themes/dnb-section-theme-ui.css +3 -6
  652. package/es/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  653. package/es/components/skeleton/SkeletonHelper.d.ts +6 -6
  654. package/es/components/skeleton/style/dnb-skeleton.css +1 -0
  655. package/es/components/skeleton/style/dnb-skeleton.min.css +1 -1
  656. package/es/components/skeleton/style/dnb-skeleton.scss +1 -0
  657. package/es/components/slider/SliderInstance.js +1 -0
  658. package/es/components/slider/SliderInstance.js.map +1 -1
  659. package/es/components/slider/SliderThumb.js +4 -2
  660. package/es/components/slider/SliderThumb.js.map +1 -1
  661. package/es/components/step-indicator/StepIndicator.js +11 -6
  662. package/es/components/step-indicator/StepIndicator.js.map +1 -1
  663. package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.css +1 -1
  664. package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.min.css +1 -1
  665. package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-ui.scss +1 -1
  666. package/es/components/table/TableScrollView.d.ts +5 -1
  667. package/es/components/table/TableScrollView.js +1 -0
  668. package/es/components/table/TableScrollView.js.map +1 -1
  669. package/es/components/table/TableTr.d.ts +1 -2
  670. package/es/components/table/TableTr.js.map +1 -1
  671. package/es/components/table/style/dnb-table.css +14 -1
  672. package/es/components/table/style/dnb-table.min.css +1 -1
  673. package/es/components/table/style/dnb-table.scss +7 -1
  674. package/es/components/table/style/table-header-buttons.scss +4 -1
  675. package/es/components/table/style/table-th.scss +9 -25
  676. package/es/components/table/style/themes/dnb-table-theme-sbanken.css +1 -1
  677. package/es/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  678. package/es/components/table/style/themes/dnb-table-theme-sbanken.scss +2 -1
  679. package/es/components/table/style/themes/dnb-table-theme-ui.css +1 -1
  680. package/es/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  681. package/es/components/table/style/themes/dnb-table-theme-ui.scss +2 -2
  682. package/es/components/table/useTableAnimationHandler.d.ts +1 -1
  683. package/es/components/table/useTableAnimationHandler.js +3 -3
  684. package/es/components/table/useTableAnimationHandler.js.map +1 -1
  685. package/es/components/tag/Tag.d.ts +11 -0
  686. package/es/components/tag/Tag.js +54 -39
  687. package/es/components/tag/Tag.js.map +1 -1
  688. package/es/components/tag/style/dnb-tag.css +50 -86
  689. package/es/components/tag/style/dnb-tag.min.css +1 -1
  690. package/es/components/tag/style/dnb-tag.scss +37 -45
  691. package/es/components/tag/style/themes/tag-mixins.scss +24 -6
  692. package/es/components/textarea/Textarea.d.ts +9 -0
  693. package/es/components/textarea/Textarea.js +21 -5
  694. package/es/components/textarea/Textarea.js.map +1 -1
  695. package/es/components/textarea/TextareaDocs.js +10 -0
  696. package/es/components/textarea/TextareaDocs.js.map +1 -1
  697. package/es/components/textarea/style/dnb-textarea.css +69 -26
  698. package/es/components/textarea/style/dnb-textarea.min.css +1 -1
  699. package/es/components/textarea/style/dnb-textarea.scss +83 -31
  700. package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +15 -21
  701. package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -1
  702. package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +17 -28
  703. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.css +12 -23
  704. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  705. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.scss +11 -27
  706. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +1 -2
  707. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
  708. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -2
  709. package/es/components/tooltip/Tooltip.js +1 -1
  710. package/es/components/tooltip/Tooltip.js.map +1 -1
  711. package/es/elements/Element.d.ts +3 -4
  712. package/es/elements/Element.js.map +1 -1
  713. package/es/elements/code/style/themes/dnb-code-theme-sbanken.scss +5 -3
  714. package/es/extensions/forms/DataContext/At/At.js.map +1 -1
  715. package/es/extensions/forms/DataContext/Context.d.ts +31 -8
  716. package/es/extensions/forms/DataContext/Context.js +14 -3
  717. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  718. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +29 -16
  719. package/es/extensions/forms/DataContext/Provider/Provider.js +321 -75
  720. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  721. package/es/extensions/forms/DataContext/Provider/ProviderDocs.d.ts +3 -0
  722. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +85 -0
  723. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -0
  724. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +2 -2
  725. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  726. package/es/extensions/forms/Field/Date/Date.js +4 -4
  727. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  728. package/es/extensions/forms/Field/Expiry/Expiry.js +5 -5
  729. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  730. package/es/extensions/forms/Field/Number/Number.js +4 -4
  731. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  732. package/es/extensions/forms/Field/Password/Password.d.ts +1 -1
  733. package/es/extensions/forms/Field/Password/Password.js.map +1 -1
  734. package/es/extensions/forms/Field/Password/style/dnb-password.scss +1 -1
  735. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +5 -5
  736. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  737. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -1
  738. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  739. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -4
  740. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  741. package/es/extensions/forms/Field/Selection/Selection.js +6 -6
  742. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  743. package/es/extensions/forms/Field/String/String.d.ts +6 -6
  744. package/es/extensions/forms/Field/String/String.js +17 -15
  745. package/es/extensions/forms/Field/String/String.js.map +1 -1
  746. package/es/extensions/forms/Field/String/StringDocs.js +9 -4
  747. package/es/extensions/forms/Field/String/StringDocs.js.map +1 -1
  748. package/es/extensions/forms/Field/Toggle/Toggle.js +8 -8
  749. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  750. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -1
  751. package/es/extensions/forms/FieldBlock/FieldBlock.js +41 -20
  752. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  753. package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +2 -2
  754. package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  755. package/es/extensions/forms/Form/Appearance/Appearance.js +3 -0
  756. package/es/extensions/forms/Form/Appearance/Appearance.js.map +1 -1
  757. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +2 -2
  758. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  759. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +2 -1
  760. package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  761. package/es/extensions/forms/Form/Handler/Handler.js +45 -9
  762. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  763. package/es/extensions/forms/Form/Handler/HandlerDocs.d.ts +3 -0
  764. package/es/extensions/forms/Form/Handler/HandlerDocs.js +39 -0
  765. package/es/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -0
  766. package/es/extensions/forms/Form/SubmitButton/SubmitButton.d.ts +6 -1
  767. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js +21 -12
  768. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  769. package/es/extensions/forms/Form/SubmitButton/SubmitButtonDocs.d.ts +2 -0
  770. package/es/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js +23 -0
  771. package/es/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js.map +1 -0
  772. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.d.ts +14 -0
  773. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +69 -0
  774. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -0
  775. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.d.ts +2 -0
  776. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js +18 -0
  777. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js.map +1 -0
  778. package/es/extensions/forms/Form/SubmitIndicator/index.d.ts +2 -0
  779. package/es/extensions/forms/Form/SubmitIndicator/index.js +3 -0
  780. package/es/extensions/forms/Form/SubmitIndicator/index.js.map +1 -0
  781. package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +99 -0
  782. package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -0
  783. package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +117 -0
  784. package/es/extensions/forms/Form/SubmitIndicator/style/index.d.ts +5 -0
  785. package/es/extensions/forms/Form/SubmitIndicator/style/index.js +1 -0
  786. package/es/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -0
  787. package/es/extensions/forms/Form/data-context/getData.d.ts +1 -1
  788. package/es/extensions/forms/Form/data-context/getData.js.map +1 -1
  789. package/es/extensions/forms/Form/data-context/useData.d.ts +3 -3
  790. package/es/extensions/forms/Form/data-context/useData.js +30 -12
  791. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  792. package/es/extensions/forms/Form/data-context/useError.d.ts +3 -2
  793. package/es/extensions/forms/Form/data-context/useError.js +7 -6
  794. package/es/extensions/forms/Form/data-context/useError.js.map +1 -1
  795. package/es/extensions/forms/Form/index.d.ts +1 -0
  796. package/es/extensions/forms/Form/index.js +1 -0
  797. package/es/extensions/forms/Form/index.js.map +1 -1
  798. package/es/extensions/forms/Iterate/Array/Array.js +2 -2
  799. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  800. package/es/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +2 -2
  801. package/es/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
  802. package/es/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +2 -2
  803. package/es/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
  804. package/es/extensions/forms/StepsLayout/NextButton/NextButton.d.ts +1 -3
  805. package/es/extensions/forms/StepsLayout/NextButton/NextButton.js +4 -3
  806. package/es/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  807. package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.d.ts +1 -3
  808. package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +6 -2
  809. package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  810. package/es/extensions/forms/StepsLayout/Step/Step.js +2 -3
  811. package/es/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
  812. package/es/extensions/forms/StepsLayout/StepsContext.d.ts +6 -4
  813. package/es/extensions/forms/StepsLayout/StepsContext.js +6 -1
  814. package/es/extensions/forms/StepsLayout/StepsContext.js.map +1 -1
  815. package/es/extensions/forms/StepsLayout/StepsLayout.d.ts +5 -3
  816. package/es/extensions/forms/StepsLayout/StepsLayout.js +108 -49
  817. package/es/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  818. package/es/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +3 -0
  819. package/es/extensions/forms/StepsLayout/StepsLayoutDocs.js +50 -0
  820. package/es/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -0
  821. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.css +6 -1
  822. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  823. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +11 -1
  824. package/es/extensions/forms/StepsLayout/useStep.d.ts +3 -0
  825. package/es/extensions/forms/StepsLayout/useStep.js +12 -0
  826. package/es/extensions/forms/StepsLayout/useStep.js.map +1 -0
  827. package/es/extensions/forms/Value/Boolean/Boolean.js +2 -2
  828. package/es/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  829. package/es/extensions/forms/Value/Number/Number.js +5 -5
  830. package/es/extensions/forms/Value/Number/Number.js.map +1 -1
  831. package/es/extensions/forms/Value/String/String.js +2 -2
  832. package/es/extensions/forms/Value/String/String.js.map +1 -1
  833. package/es/extensions/forms/hooks/DataValueDocs.js +3 -3
  834. package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  835. package/es/extensions/forms/hooks/index.d.ts +6 -3
  836. package/es/extensions/forms/hooks/index.js +2 -3
  837. package/es/extensions/forms/hooks/index.js.map +1 -1
  838. package/es/extensions/forms/hooks/useFieldProps.d.ts +23 -0
  839. package/es/extensions/forms/hooks/useFieldProps.js +749 -0
  840. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -0
  841. package/es/extensions/forms/style/dnb-forms.css +107 -3
  842. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  843. package/es/extensions/forms/types.d.ts +69 -6
  844. package/es/extensions/forms/types.js +3 -2
  845. package/es/extensions/forms/types.js.map +1 -1
  846. package/es/extensions/forms/utils/ajv.d.ts +9 -7
  847. package/es/extensions/forms/utils/ajv.js +34 -15
  848. package/es/extensions/forms/utils/ajv.js.map +1 -1
  849. package/es/fragments/scroll-view/ScrollView.d.ts +2 -2
  850. package/es/fragments/scroll-view/ScrollView.js +4 -1
  851. package/es/fragments/scroll-view/ScrollView.js.map +1 -1
  852. package/es/shared/Context.d.ts +20 -11
  853. package/es/shared/Context.js.map +1 -1
  854. package/es/shared/Eufemia.d.ts +2 -2
  855. package/es/shared/Eufemia.js +2 -2
  856. package/es/shared/Eufemia.js.map +1 -1
  857. package/es/shared/Provider.js.map +1 -1
  858. package/es/shared/defaults.d.ts +3 -3
  859. package/es/shared/defaults.js.map +1 -1
  860. package/es/shared/helpers/debounce.d.ts +21 -30
  861. package/es/shared/helpers/debounce.js +21 -9
  862. package/es/shared/helpers/debounce.js.map +1 -1
  863. package/es/shared/helpers/isAsync.d.ts +7 -0
  864. package/es/shared/helpers/isAsync.js +14 -0
  865. package/es/shared/helpers/isAsync.js.map +1 -0
  866. package/es/shared/helpers/runCssVersionMismatchWarning.d.ts +8 -0
  867. package/es/shared/helpers/runCssVersionMismatchWarning.js +25 -0
  868. package/es/shared/helpers/runCssVersionMismatchWarning.js.map +1 -0
  869. package/es/{extensions/forms/hooks → shared/helpers}/useId.js +1 -1
  870. package/es/shared/helpers/useId.js.map +1 -0
  871. package/es/shared/helpers/useMountEffect.js.map +1 -0
  872. package/es/shared/helpers/useMounted.js.map +1 -0
  873. package/es/shared/helpers/useSharedState.js +15 -9
  874. package/es/shared/helpers/useSharedState.js.map +1 -1
  875. package/es/shared/helpers/useUnmountEffect.js.map +1 -0
  876. package/es/shared/helpers/useUpdateEffect.js.map +1 -0
  877. package/es/shared/helpers.js +2 -0
  878. package/es/shared/helpers.js.map +1 -1
  879. package/es/shared/index.d.ts +10 -10
  880. package/es/shared/index.js +9 -11
  881. package/es/shared/index.js.map +1 -1
  882. package/es/shared/locales/en-GB.d.ts +1 -0
  883. package/es/shared/locales/en-GB.js +2 -1
  884. package/es/shared/locales/en-GB.js.map +1 -1
  885. package/es/shared/locales/en-US.d.ts +1 -0
  886. package/es/shared/locales/index.d.ts +4 -2
  887. package/es/shared/locales/index.js +2 -1
  888. package/es/shared/locales/index.js.map +1 -1
  889. package/es/shared/locales/nb-NO.d.ts +1 -0
  890. package/es/shared/locales/nb-NO.js +2 -1
  891. package/es/shared/locales/nb-NO.js.map +1 -1
  892. package/es/shared/types.d.ts +4 -1
  893. package/es/shared/types.js.map +1 -1
  894. package/es/shared/useLocale.d.ts +2 -0
  895. package/es/shared/useLocale.js +29 -0
  896. package/es/shared/useLocale.js.map +1 -0
  897. package/es/style/core/scopes.scss +3 -0
  898. package/es/style/dnb-ui-basis.css +1 -0
  899. package/es/style/dnb-ui-basis.min.css +1 -1
  900. package/es/style/dnb-ui-body.css +1 -0
  901. package/es/style/dnb-ui-body.min.css +1 -1
  902. package/es/style/dnb-ui-components.css +433 -195
  903. package/es/style/dnb-ui-components.min.css +3 -3
  904. package/es/style/dnb-ui-core.css +1 -0
  905. package/es/style/dnb-ui-core.min.css +1 -1
  906. package/es/style/dnb-ui-extensions.css +107 -3
  907. package/es/style/dnb-ui-extensions.min.css +1 -1
  908. package/es/style/dnb-ui-forms.css +107 -3
  909. package/es/style/dnb-ui-forms.min.css +1 -1
  910. package/es/style/dnb-ui-forms.scss +1 -0
  911. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +3 -6
  912. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  913. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +596 -328
  914. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +17 -7
  915. package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +3 -6
  916. package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  917. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +107 -3
  918. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  919. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +107 -3
  920. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  921. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +5 -2
  922. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  923. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +710 -374
  924. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +21 -9
  925. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +5 -2
  926. package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  927. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +107 -3
  928. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  929. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +107 -3
  930. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  931. package/es/style/themes/theme-ui/ui-theme-basis.css +3 -6
  932. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  933. package/es/style/themes/theme-ui/ui-theme-components.css +596 -326
  934. package/es/style/themes/theme-ui/ui-theme-components.min.css +17 -7
  935. package/es/style/themes/theme-ui/ui-theme-elements.css +3 -6
  936. package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  937. package/es/style/themes/theme-ui/ui-theme-extensions.css +107 -3
  938. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  939. package/es/style/themes/theme-ui/ui-theme-forms.css +107 -3
  940. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  941. package/es/style/themes/theme-ui/ui-theme-tags.css +40 -15
  942. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  943. package/esm/dnb-ui-basis.min.mjs +1 -1
  944. package/esm/dnb-ui-components.min.mjs +1 -1
  945. package/esm/dnb-ui-elements.min.mjs +1 -1
  946. package/esm/dnb-ui-extensions.min.mjs +3 -3
  947. package/esm/dnb-ui-lib.min.mjs +1 -1
  948. package/extensions/forms/DataContext/At/At.js.map +1 -1
  949. package/extensions/forms/DataContext/Context.d.ts +31 -8
  950. package/extensions/forms/DataContext/Context.js +14 -3
  951. package/extensions/forms/DataContext/Context.js.map +1 -1
  952. package/extensions/forms/DataContext/Provider/Provider.d.ts +29 -16
  953. package/extensions/forms/DataContext/Provider/Provider.js +325 -78
  954. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  955. package/extensions/forms/DataContext/Provider/ProviderDocs.d.ts +3 -0
  956. package/extensions/forms/DataContext/Provider/ProviderDocs.js +85 -0
  957. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -0
  958. package/extensions/forms/Field/ArraySelection/ArraySelection.js +2 -2
  959. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  960. package/extensions/forms/Field/Date/Date.js +4 -4
  961. package/extensions/forms/Field/Date/Date.js.map +1 -1
  962. package/extensions/forms/Field/Expiry/Expiry.js +5 -5
  963. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  964. package/extensions/forms/Field/Number/Number.js +4 -4
  965. package/extensions/forms/Field/Number/Number.js.map +1 -1
  966. package/extensions/forms/Field/Password/Password.d.ts +1 -1
  967. package/extensions/forms/Field/Password/Password.js.map +1 -1
  968. package/extensions/forms/Field/Password/style/dnb-password.scss +1 -1
  969. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +5 -5
  970. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  971. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -1
  972. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  973. package/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -4
  974. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  975. package/extensions/forms/Field/Selection/Selection.js +6 -6
  976. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  977. package/extensions/forms/Field/String/String.d.ts +6 -6
  978. package/extensions/forms/Field/String/String.js +17 -15
  979. package/extensions/forms/Field/String/String.js.map +1 -1
  980. package/extensions/forms/Field/String/StringDocs.js +9 -4
  981. package/extensions/forms/Field/String/StringDocs.js.map +1 -1
  982. package/extensions/forms/Field/Toggle/Toggle.js +8 -8
  983. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  984. package/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -1
  985. package/extensions/forms/FieldBlock/FieldBlock.js +42 -20
  986. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  987. package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +2 -2
  988. package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  989. package/extensions/forms/Form/Appearance/Appearance.js +3 -0
  990. package/extensions/forms/Form/Appearance/Appearance.js.map +1 -1
  991. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +2 -2
  992. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  993. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +2 -1
  994. package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  995. package/extensions/forms/Form/Handler/Handler.js +49 -9
  996. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  997. package/extensions/forms/Form/Handler/HandlerDocs.d.ts +3 -0
  998. package/extensions/forms/Form/Handler/HandlerDocs.js +39 -0
  999. package/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -0
  1000. package/extensions/forms/Form/SubmitButton/SubmitButton.d.ts +6 -1
  1001. package/extensions/forms/Form/SubmitButton/SubmitButton.js +21 -12
  1002. package/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  1003. package/extensions/forms/Form/SubmitButton/SubmitButtonDocs.d.ts +2 -0
  1004. package/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js +23 -0
  1005. package/extensions/forms/Form/SubmitButton/SubmitButtonDocs.js.map +1 -0
  1006. package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.d.ts +14 -0
  1007. package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +69 -0
  1008. package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -0
  1009. package/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.d.ts +2 -0
  1010. package/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js +18 -0
  1011. package/extensions/forms/Form/SubmitIndicator/SubmitIndicatorDocs.js.map +1 -0
  1012. package/extensions/forms/Form/SubmitIndicator/index.d.ts +2 -0
  1013. package/extensions/forms/Form/SubmitIndicator/index.js +3 -0
  1014. package/extensions/forms/Form/SubmitIndicator/index.js.map +1 -0
  1015. package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +99 -0
  1016. package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -0
  1017. package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +117 -0
  1018. package/extensions/forms/Form/SubmitIndicator/style/index.d.ts +5 -0
  1019. package/extensions/forms/Form/SubmitIndicator/style/index.js +1 -0
  1020. package/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -0
  1021. package/extensions/forms/Form/data-context/getData.d.ts +1 -1
  1022. package/extensions/forms/Form/data-context/getData.js.map +1 -1
  1023. package/extensions/forms/Form/data-context/useData.d.ts +3 -3
  1024. package/extensions/forms/Form/data-context/useData.js +32 -12
  1025. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  1026. package/extensions/forms/Form/data-context/useError.d.ts +3 -2
  1027. package/extensions/forms/Form/data-context/useError.js +8 -6
  1028. package/extensions/forms/Form/data-context/useError.js.map +1 -1
  1029. package/extensions/forms/Form/index.d.ts +1 -0
  1030. package/extensions/forms/Form/index.js +1 -0
  1031. package/extensions/forms/Form/index.js.map +1 -1
  1032. package/extensions/forms/Iterate/Array/Array.js +2 -2
  1033. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  1034. package/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +2 -2
  1035. package/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
  1036. package/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +2 -2
  1037. package/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
  1038. package/extensions/forms/StepsLayout/NextButton/NextButton.d.ts +1 -3
  1039. package/extensions/forms/StepsLayout/NextButton/NextButton.js +4 -3
  1040. package/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  1041. package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.d.ts +1 -3
  1042. package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +6 -2
  1043. package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  1044. package/extensions/forms/StepsLayout/Step/Step.js +2 -3
  1045. package/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
  1046. package/extensions/forms/StepsLayout/StepsContext.d.ts +6 -4
  1047. package/extensions/forms/StepsLayout/StepsContext.js +6 -1
  1048. package/extensions/forms/StepsLayout/StepsContext.js.map +1 -1
  1049. package/extensions/forms/StepsLayout/StepsLayout.d.ts +5 -3
  1050. package/extensions/forms/StepsLayout/StepsLayout.js +111 -51
  1051. package/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  1052. package/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +3 -0
  1053. package/extensions/forms/StepsLayout/StepsLayoutDocs.js +50 -0
  1054. package/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -0
  1055. package/extensions/forms/StepsLayout/style/dnb-steps-layout.css +6 -1
  1056. package/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  1057. package/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +11 -1
  1058. package/extensions/forms/StepsLayout/useStep.d.ts +3 -0
  1059. package/extensions/forms/StepsLayout/useStep.js +13 -0
  1060. package/extensions/forms/StepsLayout/useStep.js.map +1 -0
  1061. package/extensions/forms/Value/Boolean/Boolean.js +2 -2
  1062. package/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  1063. package/extensions/forms/Value/Number/Number.js +5 -5
  1064. package/extensions/forms/Value/Number/Number.js.map +1 -1
  1065. package/extensions/forms/Value/String/String.js +2 -2
  1066. package/extensions/forms/Value/String/String.js.map +1 -1
  1067. package/extensions/forms/hooks/DataValueDocs.js +3 -3
  1068. package/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  1069. package/extensions/forms/hooks/index.d.ts +6 -3
  1070. package/extensions/forms/hooks/index.js +2 -3
  1071. package/extensions/forms/hooks/index.js.map +1 -1
  1072. package/extensions/forms/hooks/useFieldProps.d.ts +23 -0
  1073. package/extensions/forms/hooks/useFieldProps.js +764 -0
  1074. package/extensions/forms/hooks/useFieldProps.js.map +1 -0
  1075. package/extensions/forms/style/dnb-forms.css +107 -3
  1076. package/extensions/forms/style/dnb-forms.min.css +1 -1
  1077. package/extensions/forms/types.d.ts +69 -6
  1078. package/extensions/forms/types.js +3 -2
  1079. package/extensions/forms/types.js.map +1 -1
  1080. package/extensions/forms/utils/ajv.d.ts +9 -7
  1081. package/extensions/forms/utils/ajv.js +34 -15
  1082. package/extensions/forms/utils/ajv.js.map +1 -1
  1083. package/fragments/scroll-view/ScrollView.d.ts +2 -2
  1084. package/fragments/scroll-view/ScrollView.js +4 -1
  1085. package/fragments/scroll-view/ScrollView.js.map +1 -1
  1086. package/package.json +1 -1
  1087. package/shared/Context.d.ts +20 -11
  1088. package/shared/Context.js.map +1 -1
  1089. package/shared/Eufemia.d.ts +2 -2
  1090. package/shared/Eufemia.js +2 -2
  1091. package/shared/Eufemia.js.map +1 -1
  1092. package/shared/Provider.js.map +1 -1
  1093. package/shared/defaults.d.ts +3 -3
  1094. package/shared/defaults.js.map +1 -1
  1095. package/shared/helpers/debounce.d.ts +21 -30
  1096. package/shared/helpers/debounce.js +23 -11
  1097. package/shared/helpers/debounce.js.map +1 -1
  1098. package/shared/helpers/isAsync.d.ts +7 -0
  1099. package/shared/helpers/isAsync.js +14 -0
  1100. package/shared/helpers/isAsync.js.map +1 -0
  1101. package/shared/helpers/runCssVersionMismatchWarning.d.ts +8 -0
  1102. package/shared/helpers/runCssVersionMismatchWarning.js +25 -0
  1103. package/shared/helpers/runCssVersionMismatchWarning.js.map +1 -0
  1104. package/{extensions/forms/hooks → shared/helpers}/useId.js +1 -1
  1105. package/shared/helpers/useId.js.map +1 -0
  1106. package/shared/helpers/useMountEffect.js.map +1 -0
  1107. package/shared/helpers/useMounted.js.map +1 -0
  1108. package/shared/helpers/useSharedState.js +15 -9
  1109. package/shared/helpers/useSharedState.js.map +1 -1
  1110. package/shared/helpers/useUnmountEffect.js.map +1 -0
  1111. package/shared/helpers/useUpdateEffect.js.map +1 -0
  1112. package/shared/helpers.js +2 -0
  1113. package/shared/helpers.js.map +1 -1
  1114. package/shared/index.d.ts +10 -10
  1115. package/shared/index.js +9 -11
  1116. package/shared/index.js.map +1 -1
  1117. package/shared/locales/en-GB.d.ts +1 -0
  1118. package/shared/locales/en-GB.js +2 -1
  1119. package/shared/locales/en-GB.js.map +1 -1
  1120. package/shared/locales/en-US.d.ts +1 -0
  1121. package/shared/locales/index.d.ts +4 -2
  1122. package/shared/locales/index.js +2 -1
  1123. package/shared/locales/index.js.map +1 -1
  1124. package/shared/locales/nb-NO.d.ts +1 -0
  1125. package/shared/locales/nb-NO.js +2 -1
  1126. package/shared/locales/nb-NO.js.map +1 -1
  1127. package/shared/types.d.ts +4 -1
  1128. package/shared/types.js.map +1 -1
  1129. package/shared/useLocale.d.ts +2 -0
  1130. package/shared/useLocale.js +29 -0
  1131. package/shared/useLocale.js.map +1 -0
  1132. package/style/core/scopes.scss +3 -0
  1133. package/style/dnb-ui-basis.css +1 -0
  1134. package/style/dnb-ui-basis.min.css +1 -1
  1135. package/style/dnb-ui-body.css +1 -0
  1136. package/style/dnb-ui-body.min.css +1 -1
  1137. package/style/dnb-ui-components.css +433 -195
  1138. package/style/dnb-ui-components.min.css +3 -3
  1139. package/style/dnb-ui-core.css +1 -0
  1140. package/style/dnb-ui-core.min.css +1 -1
  1141. package/style/dnb-ui-extensions.css +107 -3
  1142. package/style/dnb-ui-extensions.min.css +1 -1
  1143. package/style/dnb-ui-forms.css +107 -3
  1144. package/style/dnb-ui-forms.min.css +1 -1
  1145. package/style/dnb-ui-forms.scss +1 -0
  1146. package/style/themes/theme-eiendom/eiendom-theme-basis.css +3 -6
  1147. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  1148. package/style/themes/theme-eiendom/eiendom-theme-components.css +596 -328
  1149. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +17 -7
  1150. package/style/themes/theme-eiendom/eiendom-theme-elements.css +3 -6
  1151. package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  1152. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +107 -3
  1153. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  1154. package/style/themes/theme-eiendom/eiendom-theme-forms.css +107 -3
  1155. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  1156. package/style/themes/theme-sbanken/sbanken-theme-basis.css +5 -2
  1157. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  1158. package/style/themes/theme-sbanken/sbanken-theme-components.css +710 -374
  1159. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +21 -9
  1160. package/style/themes/theme-sbanken/sbanken-theme-elements.css +5 -2
  1161. package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  1162. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +107 -3
  1163. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  1164. package/style/themes/theme-sbanken/sbanken-theme-forms.css +107 -3
  1165. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  1166. package/style/themes/theme-ui/ui-theme-basis.css +3 -6
  1167. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  1168. package/style/themes/theme-ui/ui-theme-components.css +596 -326
  1169. package/style/themes/theme-ui/ui-theme-components.min.css +17 -7
  1170. package/style/themes/theme-ui/ui-theme-elements.css +3 -6
  1171. package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  1172. package/style/themes/theme-ui/ui-theme-extensions.css +107 -3
  1173. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  1174. package/style/themes/theme-ui/ui-theme-forms.css +107 -3
  1175. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  1176. package/style/themes/theme-ui/ui-theme-tags.css +40 -15
  1177. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  1178. package/umd/dnb-ui-basis.min.js +1 -1
  1179. package/umd/dnb-ui-components.min.js +1 -1
  1180. package/umd/dnb-ui-elements.min.js +1 -1
  1181. package/umd/dnb-ui-extensions.min.js +3 -3
  1182. package/umd/dnb-ui-lib.min.js +1 -1
  1183. package/cjs/extensions/forms/hooks/useDataValue.d.ts +0 -18
  1184. package/cjs/extensions/forms/hooks/useDataValue.js +0 -461
  1185. package/cjs/extensions/forms/hooks/useDataValue.js.map +0 -1
  1186. package/cjs/extensions/forms/hooks/useId.js.map +0 -1
  1187. package/cjs/extensions/forms/hooks/useMountEffect.js.map +0 -1
  1188. package/cjs/extensions/forms/hooks/useMounted.js.map +0 -1
  1189. package/cjs/extensions/forms/hooks/useUnmountEffect.js.map +0 -1
  1190. package/cjs/extensions/forms/hooks/useUpdateEffect.js.map +0 -1
  1191. package/es/extensions/forms/hooks/useDataValue.d.ts +0 -18
  1192. package/es/extensions/forms/hooks/useDataValue.js +0 -443
  1193. package/es/extensions/forms/hooks/useDataValue.js.map +0 -1
  1194. package/es/extensions/forms/hooks/useId.js.map +0 -1
  1195. package/es/extensions/forms/hooks/useMountEffect.js.map +0 -1
  1196. package/es/extensions/forms/hooks/useMounted.js.map +0 -1
  1197. package/es/extensions/forms/hooks/useUnmountEffect.js.map +0 -1
  1198. package/es/extensions/forms/hooks/useUpdateEffect.js.map +0 -1
  1199. package/extensions/forms/hooks/useDataValue.d.ts +0 -18
  1200. package/extensions/forms/hooks/useDataValue.js +0 -451
  1201. package/extensions/forms/hooks/useDataValue.js.map +0 -1
  1202. package/extensions/forms/hooks/useId.js.map +0 -1
  1203. package/extensions/forms/hooks/useMountEffect.js.map +0 -1
  1204. package/extensions/forms/hooks/useMounted.js.map +0 -1
  1205. package/extensions/forms/hooks/useUnmountEffect.js.map +0 -1
  1206. package/extensions/forms/hooks/useUpdateEffect.js.map +0 -1
  1207. /package/cjs/{extensions/forms/hooks → shared/helpers}/useId.d.ts +0 -0
  1208. /package/cjs/{extensions/forms/hooks → shared/helpers}/useMountEffect.d.ts +0 -0
  1209. /package/cjs/{extensions/forms/hooks → shared/helpers}/useMountEffect.js +0 -0
  1210. /package/cjs/{extensions/forms/hooks → shared/helpers}/useMounted.d.ts +0 -0
  1211. /package/cjs/{extensions/forms/hooks → shared/helpers}/useMounted.js +0 -0
  1212. /package/cjs/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.d.ts +0 -0
  1213. /package/cjs/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.js +0 -0
  1214. /package/cjs/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.d.ts +0 -0
  1215. /package/cjs/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.js +0 -0
  1216. /package/es/{extensions/forms/hooks → shared/helpers}/useId.d.ts +0 -0
  1217. /package/es/{extensions/forms/hooks → shared/helpers}/useMountEffect.d.ts +0 -0
  1218. /package/es/{extensions/forms/hooks → shared/helpers}/useMountEffect.js +0 -0
  1219. /package/es/{extensions/forms/hooks → shared/helpers}/useMounted.d.ts +0 -0
  1220. /package/es/{extensions/forms/hooks → shared/helpers}/useMounted.js +0 -0
  1221. /package/es/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.d.ts +0 -0
  1222. /package/es/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.js +0 -0
  1223. /package/es/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.d.ts +0 -0
  1224. /package/es/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.js +0 -0
  1225. /package/{extensions/forms/hooks → shared/helpers}/useId.d.ts +0 -0
  1226. /package/{extensions/forms/hooks → shared/helpers}/useMountEffect.d.ts +0 -0
  1227. /package/{extensions/forms/hooks → shared/helpers}/useMountEffect.js +0 -0
  1228. /package/{extensions/forms/hooks → shared/helpers}/useMounted.d.ts +0 -0
  1229. /package/{extensions/forms/hooks → shared/helpers}/useMounted.js +0 -0
  1230. /package/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.d.ts +0 -0
  1231. /package/{extensions/forms/hooks → shared/helpers}/useUnmountEffect.js +0 -0
  1232. /package/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.d.ts +0 -0
  1233. /package/{extensions/forms/hooks → shared/helpers}/useUpdateEffect.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","names":["_react","_interopRequireWildcard","require","_jsonPointer","_interopRequireDefault","_ajv","_useMountEffect","_useUpdateEffect","_useSharedState","_Context","_structuredClone","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","useLayoutEffect","window","React","useEffect","isArrayJsonPointer","Provider","_ref","_sharedAttachments$da","id","defaultData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","scrollTopOnSubmit","sessionStorageId","ajvInstance","filterData","errorMessages","contextErrorMessages","children","rest","forceUpdate","useReducer","console","error","ajvRef","useRef","makeAjvInstance","mountedFieldPathsRef","errorsRef","showAllErrorsRef","setShowAllErrors","useCallback","showAllErrors","current","valuesWithErrorRef","initialData","useMemo","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","ajvValidatorRef","validateDataNow","_ajvValidatorRef$curr","ajvErrorsToFormErrors","errors","validateData","hasFieldError","path","_errorsRef$current","Boolean","includes","hasErrors","find","setValueWithError","withError","addListPath","removeListPath","filterDataHandler","filtered","entries","fieldPropsRef","_ref2","props","exists","pointer","result","remove","setProps","sharedData","useSharedState","sharedAttachments","updateSharedData","update","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","updateDataValue","_internalDataRef$curr","givenData","match","newData","structuredClone","e","_window$sessionStorag2","setItem","stringify","handlePathChange","handleMountField","handleUnMountField","_fieldPropsRef$curren","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","handleSubmit","formElement","resetForm","_formElement$reset","reset","removeItem","clearData","useMountEffect","_ajvRef$current","compile","useUpdateEffect","_ajvRef$current2","createElement","hasContext","mountedFieldPaths","paths","concat","thisPath"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, { useRef, useMemo, useCallback, useReducer } from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n} from '../../utils/ajv'\nimport {\n FormError,\n CustomErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n FieldProps,\n Path,\n} from '../../types'\nimport useMountEffect from '../../hooks/useMountEffect'\nimport useUpdateEffect from '../../hooks/useUpdateEffect'\nimport { useSharedState } from '../../../../shared/helpers/useSharedState'\nimport Context, { ContextState } from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type UpdateDataValue = (path: Path, data: unknown) => void\n\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterData = (\n path: Path,\n value: any,\n props: FieldProps\n) => boolean | undefined\n\nexport type OnSubmitReturn = {\n /** Will remove browser-side stored autocomplete data */\n resetForm: () => void\n /** Will empty the whole internal data set of the form */\n clearData: () => void\n}\n\nexport type OnSubmit<Data = JsonObject> = (\n data: Partial<Data>,\n { resetForm, clearData }: OnSubmitReturn\n) => void\n\nexport interface Props<Data extends JsonObject> {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: string\n /**\n * Default source data, only used if no other source is available, and not leading to updates if changed after mount\n */\n defaultData?: Partial<Data>\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Partial<Data>\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions\n /**\n * Custom Ajv instance, if you want to use your own\n */\n ajvInstance?: Ajv\n /**\n * Custom error messages for the whole data set\n */\n errorMessages?: CustomErrorMessagesWithPaths\n /**\n * Filter the internal data context based on your criteria: `(path, value, props) => !props?.disabled`. It will iterate on each data entry.\n */\n filterData?: FilterData\n /**\n * Change handler for the whole data set\n */\n onChange?: (data: Data) => void\n /**\n * Change handler for each value\n */\n onPathChange?: (path: Path, value: any) => void\n /**\n * Submit called, data was valid (if validation available)\n */\n onSubmit?: OnSubmit\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: () => void\n /**\n * Scroll to top on submit\n */\n scrollTopOnSubmit?: boolean\n /**\n * Key for caching the data in session storage\n */\n sessionStorageId?: string\n children: React.ReactNode\n}\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>({\n id,\n defaultData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n scrollTopOnSubmit,\n sessionStorageId,\n ajvInstance,\n filterData,\n errorMessages: contextErrorMessages,\n children,\n ...rest\n}: Props<Data>) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n console.error(\n 'Providing both data and sessionStorageId could lead to competing data sources. To provide default data to use only before anything is changed in the interface, use defaultData.'\n )\n }\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n // - Paths\n const mountedFieldPathsRef = useRef<Path[]>([])\n // - Errors from provider validation (the whole data set)\n const errorsRef = useRef<Record<string, FormError> | undefined>()\n const showAllErrorsRef = useRef<boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors\n forceUpdate()\n }, [])\n\n // - Errors reported by fields, based on their direct validation rules\n const valuesWithErrorRef = useRef<Path[]>([])\n\n // - Data\n const initialData = useMemo<Data>(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Partial<Data>>(initialData)\n\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n const validateDataNow = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvValidatorRef.current?.(internalDataRef.current)) {\n // Errors found\n errorsRef.current = ajvErrorsToFormErrors(\n ajvValidatorRef.current.errors\n )\n } else {\n errorsRef.current = undefined\n }\n }, [])\n const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n validateDataNow()\n forceUpdate()\n }, [validateDataNow])\n\n // - Error handling\n const hasFieldError = useCallback((path: Path) => {\n return Boolean(\n errorsRef.current?.[path] !== undefined ||\n valuesWithErrorRef.current.includes(path)\n )\n }, [])\n const hasErrors = useCallback(() => {\n return Boolean(\n mountedFieldPathsRef.current.find((path) => hasFieldError(path))\n )\n }, [hasFieldError])\n\n /**\n * Sets the error state for a specific path\n */\n const setValueWithError = useCallback(\n (path: Path, withError: boolean) => {\n if (withError !== valuesWithErrorRef.current.includes(path)) {\n // The boolean error state for the target value was changed\n valuesWithErrorRef.current = withError\n ? addListPath(valuesWithErrorRef.current, path)\n : removeListPath(valuesWithErrorRef.current, path)\n forceUpdate()\n }\n },\n []\n )\n\n /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter = filterData) => {\n if (filter) {\n const filtered = { ...data }\n Object.entries(fieldPropsRef.current).forEach(([path, props]) => {\n const exists = pointer.has(data, path)\n const result = filter(\n path,\n exists ? pointer.get(data, path) : undefined,\n props\n )\n if (result === false && exists) {\n pointer.remove(filtered, path)\n }\n })\n\n return filtered\n }\n\n return data\n },\n [filterData]\n )\n const fieldPropsRef = useRef<Record<string, FieldProps>>({})\n const setProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n fieldPropsRef.current[path] = props\n },\n []\n )\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<{\n filterDataHandler?: Props<Data>['filterData']\n hasErrors?: () => boolean\n rerenderUseDataHook?: () => void\n }>(id + '-attachments')\n\n const updateSharedData = sharedData.update\n const extendSharedData = sharedData.extend\n const extendAttachment = sharedAttachments.extend\n const rerenderUseDataHook = sharedAttachments.data?.rerenderUseDataHook\n\n const cacheRef = useRef({\n data,\n schema,\n shared: sharedData.data,\n hasUsedInitialData: false,\n })\n\n internalDataRef.current = useMemo(() => {\n // NB: \"sharedData.data\" is only available on a rerender.\n // Update the shared state, if initialData is given and no shared state is available.\n // We do almost the same later in a useLayoutEffect, but we need to do it here as well, so we set the data as early as possible.\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData\n ) {\n return {\n ...internalDataRef.current,\n ...sharedData.data,\n }\n }\n\n // Use shared state if no initial and initial data, and the shared state exists\n if (\n id &&\n !initialData &&\n !internalDataRef.current &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data\n ) {\n return sharedData.data\n }\n\n // Merge the internal data with the shared state, if the shared was updated and not the same as internal data\n if (\n id &&\n sharedData.data &&\n cacheRef.current.shared !== sharedData.data &&\n sharedData.data !== internalDataRef.current\n ) {\n cacheRef.current.shared = sharedData.data\n return {\n ...internalDataRef.current,\n ...sharedData.data,\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [data, id, initialData, sharedData])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id && initialData && !sharedData.data) {\n extendSharedData?.(initialData)\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useMemo(() => {\n validateDataNow()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment?.({ filterDataHandler, hasErrors })\n if (filterData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n filterData,\n filterDataHandler,\n rerenderUseDataHook,\n hasErrors,\n id,\n extendAttachment,\n ])\n\n /**\n * Update the data set\n */\n const updateDataValue: UpdateDataValue = useCallback(\n (path, value) => {\n if (!path) {\n return\n }\n\n const givenData = (\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalDataRef.current ??\n (path.match(isArrayJsonPointer) ? [] : {})\n ) as Data\n\n let newData: Data = null\n try {\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n newData = structuredClone(givenData)\n } catch (e) {\n newData = givenData\n }\n\n if (path !== '/') {\n pointer.set(newData, path, value)\n }\n\n if (id) {\n updateSharedData?.(newData)\n if (filterData) {\n rerenderUseDataHook?.()\n }\n }\n\n internalDataRef.current = newData\n\n if (sessionStorageId && typeof window !== 'undefined') {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(newData)\n )\n }\n\n forceUpdate()\n\n return newData\n },\n [\n filterData,\n id,\n sessionStorageId,\n rerenderUseDataHook,\n updateSharedData,\n ]\n )\n\n /**\n * Update the data set on user interaction\n */\n const handlePathChange: UpdateDataValue = useCallback(\n (path, value) => {\n if (!path) {\n return\n }\n\n onPathChange?.(path, value)\n\n const newData = updateDataValue(path, value)\n\n onChange?.(newData as Data)\n\n showAllErrorsRef.current = false\n\n validateData()\n },\n [onPathChange, updateDataValue, onChange, validateData]\n )\n\n // - Mounted fields\n const handleMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n if (fieldPropsRef.current?.[path]) {\n delete fieldPropsRef.current[path]\n }\n }, [])\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<ContextState['handleSubmit']>(\n ({ formElement = null } = {}) => {\n if (!hasErrors()) {\n const resetForm = () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n }\n const clearData = () => {\n internalDataRef.current = {}\n forceUpdate()\n }\n\n onSubmit?.(filterDataHandler(internalDataRef.current as Data), {\n resetForm,\n clearData,\n })\n\n if (scrollTopOnSubmit) {\n scrollToTop()\n }\n } else {\n setShowAllErrors(true)\n onSubmitRequest?.()\n }\n\n return internalDataRef.current\n },\n [\n hasErrors,\n onSubmit,\n filterDataHandler,\n scrollTopOnSubmit,\n sessionStorageId,\n scrollToTop,\n setShowAllErrors,\n onSubmitRequest,\n ]\n )\n\n // - ajv validator routines\n\n useMountEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n })\n\n useUpdateEffect(() => {\n if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [schema, validateData, forceUpdate])\n\n return (\n <Context.Provider\n value={{\n hasContext: true,\n data: internalDataRef.current,\n ...rest,\n handlePathChange,\n updateDataValue,\n validateData,\n handleSubmit,\n scrollToTop,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n setShowAllErrors,\n mountedFieldPaths: mountedFieldPathsRef.current,\n handleMountField,\n handleUnMountField,\n hasErrors,\n hasFieldError,\n setValueWithError,\n setProps,\n ajvInstance: ajvRef.current,\n schema,\n contextErrorMessages,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\ntype PathList = string[]\n\nfunction addListPath(paths: PathList, path: Path): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nfunction removeListPath(paths: PathList, path: Path): PathList {\n return paths.filter((thisPath) => thisPath !== path)\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Provider.js","names":["_react","_interopRequireWildcard","require","_jsonPointer","_interopRequireDefault","_ajv","_Provider","_useMountEffect","_useUpdateEffect","_isAsync","_useSharedState","_Context","_structuredClone","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","useLayoutEffect","window","React","useEffect","isArrayJsonPointer","Provider","props","_sharedAttachments$da","_rest$disabled","forceUpdate","useReducer","id","defaultData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncBehaviorTimeout","sessionStorageId","ajvInstance","filterData","errorMessages","contextErrorMessages","children","rest","console","error","ajvRef","useRef","makeAjvInstance","mountedFieldPathsRef","errorsRef","showAllErrorsRef","setShowAllErrors","useCallback","showAllErrors","current","submitStateRef","setSubmitState","state","assign","formStateRef","setFormState","formState","fieldErrorRef","fieldStateRef","initialData","useMemo","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","ajvErrorsToFormErrors","errors","validateData","checkFieldStateFor","path","_errorsRef$current","Boolean","Error","hasFieldState","some","hasErrors","setFieldError","setFieldState","fieldState","filterDataHandler","filtered","entries","fieldPropsRef","_ref","exists","pointer","result","remove","setProps","hasFieldWithAsyncValidator","isAsync","validator","onBlurValidator","sharedData","useSharedState","sharedAttachments","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","update","updateDataValue","_internalDataRef$curr","givenData","match","newData","structuredClone","e","_window$sessionStorag2","setItem","stringify","setData","handlePathChange","handleMountField","addListPath","handleUnMountField","_fieldPropsRef$curren","removeListPath","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","handleSubmitCall","args","enableAsyncBehaviour","skipFieldValidation","skipErrorCheck","asyncBehaviorIsEnabled","type","callback","fieldEventListenersRef","includes","warning","info","requestAnimationFrame","onSubmitContinueRef","handleSubmit","formElement","opts","resetForm","_formElement$reset","reset","removeItem","clearData","completeResult","setFieldEventListener","_ref2","p","t","_onSubmitContinueRef$","useMountEffect","_ajvRef$current","compile","useUpdateEffect","_ajvRef$current2","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","createElement","hasContext","mountedFieldPaths","paths","concat","thisPath","stateRef","nowRef","timeoutRef","setState","clear","clearTimeout","hadCompleteRef","isTest","process","env","NODE_ENV","minimum","setTimeout","Date","now","offset","Math","max","delay","complete","timeout"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n} from '../../utils/ajv'\nimport {\n FormError,\n CustomErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n FieldProps,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n} from '../../types'\nimport SharedProvider from '../../../../shared/Provider'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport { useSharedState } from '../../../../shared/helpers/useSharedState'\nimport Context, {\n ContextState,\n EventListenerCall,\n FilterData,\n} from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport interface Props<Data extends JsonObject> {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: string\n /**\n * Default source data, only used if no other source is available, and not leading to updates if changed after mount\n */\n defaultData?: Partial<Data>\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Partial<Data>\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions\n /**\n * Custom Ajv instance, if you want to use your own\n */\n ajvInstance?: Ajv\n /**\n * Custom error messages for the whole data set\n */\n errorMessages?: CustomErrorMessagesWithPaths\n /**\n * Filter the internal data context based on your criteria: `(path, value, props) => !props?.disabled`. It will iterate on each data entry.\n */\n filterData?: FilterData\n /**\n * Change handler for the whole data set.\n * You can provide an async function to show an indicator on the current label during a field change.\n */\n onChange?: OnChange<Data>\n /**\n * Change handler for each value\n */\n onPathChange?: (\n path: Path,\n value: any\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will emit on a form submit – if validation has passed.\n * You can provide an async function to shows a submit indicator during submit. All form elements will be disabled during the submit.\n */\n onSubmit?: OnSubmit\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: () => void\n /**\n * Will be called when the onSubmit is finished and had not errors\n */\n onSubmitComplete?: (\n data: Data,\n /**\n * The result of the onSubmit function\n */\n result: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Shows an indicator on the current label during a field change.\n */\n enableAsyncChangeBehavior?: boolean\n /**\n * Minimum time to display the submit indicator.\n */\n minimumAsyncBehaviorTime?: number\n /**\n * The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission.\n */\n asyncBehaviorTimeout?: number\n /**\n * Scroll to top on submit\n */\n scrollTopOnSubmit?: boolean\n /**\n * Key for caching the data in session storage\n */\n sessionStorageId?: string\n children: React.ReactNode\n}\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>(\n props: Props<Data>\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n id,\n defaultData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncBehaviorTimeout,\n sessionStorageId,\n ajvInstance,\n filterData,\n errorMessages: contextErrorMessages,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n console.error(\n 'Providing both data and sessionStorageId could lead to competing data sources. To provide default data to use only before anything is changed in the interface, use defaultData.'\n )\n }\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldPathsRef = useRef<Path[]>([])\n\n // - Errors from provider validation (the whole data set)\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const showAllErrorsRef = useRef<boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors\n forceUpdate()\n }, [])\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n Object.assign(submitStateRef.current, state)\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const setFormState = useCallback((formState: SubmitState) => {\n formStateRef.current = formState\n forceUpdate()\n }, [])\n\n // - States (e.g. error) reported by fields, based on their direct validation rules\n const fieldErrorRef = useRef<Record<Path, boolean>>({})\n const fieldStateRef = useRef<Record<Path, SubmitState>>({})\n\n // - Data\n const initialData = useMemo<Data>(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Partial<Data>>(initialData)\n\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n const executeAjvValidator = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvValidatorRef.current?.(internalDataRef.current)) {\n // Errors found\n errorsRef.current = ajvErrorsToFormErrors(\n ajvValidatorRef.current.errors,\n internalDataRef.current\n )\n } else {\n errorsRef.current = undefined\n }\n }, [])\n const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n executeAjvValidator()\n forceUpdate()\n }, [executeAjvValidator])\n\n // - Error handling\n const checkFieldStateFor = useCallback(\n (path: Path, state: SubmitState) => {\n return Boolean(\n state === 'error'\n ? errorsRef.current?.[path] instanceof Error ||\n fieldErrorRef.current[path]\n : fieldStateRef.current[path] === state\n )\n },\n []\n )\n const hasFieldState = useCallback(\n (state: SubmitState) => {\n return mountedFieldPathsRef.current.some((path) => {\n return checkFieldStateFor(path, state)\n })\n },\n [checkFieldStateFor]\n )\n const hasErrors = useCallback(() => {\n return hasFieldState('error')\n }, [hasFieldState])\n\n /**\n * Sets the error state for a specific path\n */\n const setFieldError = useCallback(\n (path: Path, error: Error | FormError) => {\n fieldErrorRef.current[path] = Boolean(error)\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState = useCallback(\n (path: Path, fieldState: SubmitState) => {\n if (fieldState !== fieldStateRef.current[path]) {\n // The state for the target value was changed\n fieldStateRef.current[path] = fieldState\n forceUpdate()\n }\n },\n []\n )\n\n /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter = filterData) => {\n if (filter) {\n const filtered = { ...data }\n Object.entries(fieldPropsRef.current).forEach(([path, props]) => {\n const exists = pointer.has(data, path)\n const result = filter(\n path,\n exists ? pointer.get(data, path) : undefined,\n props\n )\n if (result === false && exists) {\n pointer.remove(filtered, path)\n }\n })\n\n return filtered\n }\n\n return data\n },\n [filterData]\n )\n const fieldPropsRef = useRef<Record<Path, FieldProps>>({})\n const setProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n fieldPropsRef.current[path] = props\n },\n []\n )\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldPropsRef.current) {\n const props = fieldPropsRef.current[path]\n if (isAsync(props.validator) || isAsync(props.onBlurValidator)) {\n return true\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<{\n filterDataHandler?: Props<Data>['filterData']\n hasErrors?: ContextState['hasErrors']\n setShowAllErrors?: ContextState['setShowAllErrors']\n rerenderUseDataHook?: () => void\n }>(id + '-attachments')\n\n const setSharedData = sharedData.set\n const extendSharedData = sharedData.extend\n const extendAttachment = sharedAttachments.extend\n const rerenderUseDataHook = sharedAttachments.data?.rerenderUseDataHook\n\n const cacheRef = useRef({\n data,\n schema,\n shared: sharedData.data,\n hasUsedInitialData: false,\n })\n\n internalDataRef.current = useMemo(() => {\n // NB: \"sharedData.data\" is only available on a rerender.\n // Update the shared state, if initialData is given and no shared state is available.\n // We do almost the same later in a useLayoutEffect, but we need to do it here as well, so we set the data as early as possible.\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData\n ) {\n return {\n ...internalDataRef.current,\n ...sharedData.data,\n }\n }\n\n // Use shared state if no initial and initial data, and the shared state exists\n if (\n id &&\n !initialData &&\n !internalDataRef.current &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data\n ) {\n return sharedData.data\n }\n\n // Merge the internal data with the shared state, if the shared was updated and not the same as internal data\n if (\n id &&\n sharedData.data &&\n cacheRef.current.shared !== sharedData.data &&\n sharedData.data !== internalDataRef.current\n ) {\n cacheRef.current.shared = sharedData.data\n return {\n ...internalDataRef.current,\n ...sharedData.data,\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [data, id, initialData, sharedData])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id && initialData && !sharedData.data) {\n extendSharedData?.(initialData)\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useMemo(() => {\n executeAjvValidator()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment?.({\n filterDataHandler,\n hasErrors,\n setShowAllErrors,\n })\n if (filterData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n extendAttachment,\n filterData,\n filterDataHandler,\n hasErrors,\n id,\n rerenderUseDataHook,\n setShowAllErrors,\n ])\n\n /**\n * Update the data set\n */\n const updateDataValue: ContextState['updateDataValue'] = useCallback(\n (path, value) => {\n if (!path) {\n return\n }\n\n const givenData = (\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalDataRef.current ??\n (path.match(isArrayJsonPointer) ? [] : {})\n ) as Data\n\n let newData: Data = null\n try {\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n newData = structuredClone(givenData)\n } catch (e) {\n newData = givenData\n }\n\n if (path !== '/') {\n pointer.set(newData, path, value)\n }\n\n internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData?.(newData)\n if (filterData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(newData)\n )\n }\n\n forceUpdate()\n\n return newData\n },\n [\n id,\n sessionStorageId,\n extendSharedData,\n filterData,\n rerenderUseDataHook,\n ]\n )\n\n const setData = useCallback((newData: Data) => {\n internalDataRef.current = newData\n forceUpdate()\n }, [])\n\n /**\n * Update the data set on user interaction\n */\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n async (path, value) => {\n if (!path) {\n return null\n }\n\n if (isAsync(onPathChange)) {\n await onPathChange?.(path, value)\n } else {\n onPathChange?.(path, value)\n }\n\n const newData = updateDataValue(path, value)\n\n showAllErrorsRef.current = false\n\n validateData()\n\n if (isAsync(onChange)) {\n return await onChange(newData as Data)\n }\n\n return onChange?.(newData as Data)\n },\n [onChange, onPathChange, updateDataValue, validateData]\n )\n\n // - Mounted fields\n const handleMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n if (fieldPropsRef.current?.[path]) {\n delete fieldPropsRef.current[path]\n }\n }, [])\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n /**\n * Shared logic dedicated to submit the whole form\n */\n const handleSubmitCall = useCallback<ContextState['handleSubmitCall']>(\n async (args) => {\n const {\n onSubmit,\n enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined })\n\n const asyncBehaviorIsEnabled =\n !(skipErrorCheck ? false : hasErrors()) &&\n (enableAsyncBehaviour || hasFieldWithAsyncValidator())\n\n if (asyncBehaviorIsEnabled) {\n setFormState('pending')\n }\n\n // Just call the submit listeners \"once\", and not on the retry/recall\n if (!skipFieldValidation) {\n for (const {\n path,\n type,\n callback,\n } of fieldEventListenersRef.current) {\n if (\n type === 'onSubmit' &&\n mountedFieldPathsRef.current.includes(path)\n ) {\n // Call all submit listener callbacks (e.g. to validate fields)\n if (asyncBehaviorIsEnabled) {\n await callback()\n } else {\n callback()\n }\n }\n }\n }\n\n if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let result: EventStateObject | unknown\n\n try {\n result = await onSubmit()\n\n if (result instanceof Error) {\n throw result\n }\n } catch (error) {\n result = { error }\n }\n\n const state = result as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n setFormState(state?.error ? 'abort' : 'complete')\n }\n\n // Force the state to be set by a custom status\n if (state?.['status']) {\n setFormState(state?.['status'])\n }\n\n if (state?.error || state?.warning || state?.info) {\n setSubmitState(state)\n }\n } else {\n if (asyncBehaviorIsEnabled) {\n window.requestAnimationFrame(() => {\n setFormState(undefined)\n })\n }\n\n if (!skipFieldValidation) {\n // Add a event listener to continue the submit after the pending state is resolved\n onSubmitContinueRef.current = () => {\n window.requestAnimationFrame(() => {\n // Do not call the validators again,\n // because we already did it in the first call\n // If they are async, we wait for them to finish anyway\n handleSubmitCall({ ...args, skipFieldValidation: true })\n })\n }\n }\n\n onSubmitRequest?.()\n\n setShowAllErrors(true)\n }\n\n return internalDataRef.current\n },\n [\n setSubmitState,\n hasErrors,\n hasFieldWithAsyncValidator,\n hasFieldState,\n setFormState,\n onSubmitRequest,\n setShowAllErrors,\n ]\n )\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<ContextState['handleSubmit']>(\n async ({ formElement = null } = {}) => {\n handleSubmitCall({\n enableAsyncBehaviour: isAsync(onSubmit),\n onSubmit: async () => {\n const args = filterDataHandler(internalDataRef.current as Data)\n const opts = {\n resetForm: () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n },\n clearData: () => {\n internalDataRef.current = {}\n if (id) {\n setSharedData?.({} as Data)\n } else {\n forceUpdate()\n }\n },\n }\n\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(args, opts)\n } else {\n result = onSubmit?.(args, opts)\n }\n\n const completeResult = await onSubmitComplete?.(args, result)\n if (completeResult) {\n result =\n Object.keys(result).length > 0\n ? { ...result, ...completeResult }\n : completeResult\n }\n\n if (scrollTopOnSubmit) {\n scrollToTop()\n }\n\n return result\n },\n })\n },\n [\n filterDataHandler,\n handleSubmitCall,\n id,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n sessionStorageId,\n setSharedData,\n ]\n )\n\n // Collect listeners to be called during form submit\n const fieldEventListenersRef = useRef<Array<EventListenerCall>>([])\n const setFieldEventListener = useCallback(\n (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => {\n fieldEventListenersRef.current =\n fieldEventListenersRef.current.filter(({ path: p, type: t }) => {\n return !(p === path && t === type)\n })\n fieldEventListenersRef.current.push({ path, type, callback })\n },\n []\n )\n\n // Handle unresolved field states during async submit\n const onSubmitContinueRef = useRef<() => void>(null)\n if (!hasFieldState('pending')) {\n onSubmitContinueRef.current?.()\n onSubmitContinueRef.current = null\n }\n\n // - ajv validator routines\n useMountEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n })\n useUpdateEffect(() => {\n if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [schema, validateData, forceUpdate])\n\n const { bufferedFormState: formState } = useFormStatusBuffer({\n formState: formStateRef.current,\n waitFor: hasFieldState('pending'),\n minimumAsyncBehaviorTime,\n asyncBehaviorTimeout,\n })\n\n const submitState = submitStateRef.current\n const disabled = rest?.['disabled'] ?? formState === 'pending'\n\n return (\n <Context.Provider\n value={{\n /** Method */\n handlePathChange,\n handleSubmit,\n handleMountField,\n handleUnMountField,\n handleSubmitCall,\n setFormState,\n setShowAllErrors,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setProps,\n hasErrors,\n hasFieldState,\n checkFieldStateFor,\n validateData,\n updateDataValue,\n setData,\n filterDataHandler,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n mountedFieldPaths: mountedFieldPathsRef.current,\n ajvInstance: ajvRef.current,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n props,\n ...rest,\n }}\n >\n <SharedProvider formElement={{ disabled }}>\n {children}\n </SharedProvider>\n </Context.Provider>\n )\n}\n\ntype PathList = string[]\n\nfunction addListPath(paths: PathList, path: Path): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nfunction removeListPath(paths: PathList, path: Path): PathList {\n return paths.filter((thisPath) => thisPath !== path)\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<unknown>['minimumAsyncBehaviorTime']\n asyncBehaviorTimeout?: Props<unknown>['asyncBehaviorTimeout']\n formState: ContextState['formState']\n waitFor: boolean\n}\n\nfunction useFormStatusBuffer(props: FormStatusBufferProps) {\n const {\n formState,\n waitFor,\n minimumAsyncBehaviorTime,\n asyncBehaviorTimeout,\n } = props || {}\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const stateRef = useRef<SubmitState>()\n const nowRef = useRef<number | null>(null)\n const timeoutRef = useRef<{\n complete?: NodeJS.Timeout | null\n reset?: NodeJS.Timeout | null\n timeout?: NodeJS.Timeout | null\n }>({})\n\n const setState = useCallback(\n (state: SubmitState) => {\n stateRef.current = state\n forceUpdate()\n },\n [forceUpdate]\n )\n\n const clear = useCallback(() => {\n for (const key in timeoutRef.current) {\n clearTimeout(timeoutRef.current[key])\n }\n }, [])\n\n const hadCompleteRef = useRef(false)\n\n useEffect(() => {\n // This offset is used to calculate the delay,\n // which ensures that the form state is displayed for at least minimumAsyncBehaviorTime duration.\n // If the form was 'pending' for less than minimumAsyncBehaviorTime,\n // the delay will be the remaining time to reach minimumAsyncBehaviorTime.\n const isTest = process.env.NODE_ENV === 'test'\n const minimum =\n minimumAsyncBehaviorTime ??\n // make it testable\n (isTest ? 1 : 1000)\n\n if (stateRef.current && formState === 'error') {\n clear()\n setState(undefined)\n return\n }\n\n if (formState === 'abort') {\n clear()\n setState('abort')\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n }, minimum)\n return\n }\n\n if (formState === 'complete') {\n hadCompleteRef.current = true\n }\n\n if (formState === 'pending') {\n clear()\n nowRef.current = Date.now()\n hadCompleteRef.current = false\n setState('pending')\n } else if (stateRef.current === 'pending') {\n const offset = Math.max(Date.now() - nowRef.current)\n const delay = isTest ? minimum : Math.max(minimum - offset, 0)\n\n if (!waitFor) {\n timeoutRef.current.complete = setTimeout(() => {\n if (hadCompleteRef.current) {\n setState('complete')\n }\n }, delay)\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n clear()\n }, delay + minimum)\n }\n\n timeoutRef.current.timeout = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n }, asyncBehaviorTimeout ?? 30000)\n }\n\n return clear\n }, [\n clear,\n minimumAsyncBehaviorTime,\n formState,\n setState,\n waitFor,\n asyncBehaviorTimeout,\n ])\n\n return { bufferedFormState: stateRef.current }\n}\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { PropertiesTableProps } from '../../../../shared/types';
2
+ export declare const ProviderProperties: PropertiesTableProps;
3
+ export declare const ProviderEvents: PropertiesTableProps;
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ProviderProperties = exports.ProviderEvents = void 0;
7
+ const ProviderProperties = {
8
+ defaultData: {
9
+ doc: 'Default source data, only used if no other source is available, and not leading to updates if changed after mount.',
10
+ type: 'object',
11
+ status: 'required'
12
+ },
13
+ data: {
14
+ doc: 'Dynamic source data used as both initial data, and updates internal data if changed after mount.',
15
+ type: 'object',
16
+ status: 'required'
17
+ },
18
+ schema: {
19
+ doc: 'JSON Schema for validation of the data set.',
20
+ type: 'object',
21
+ status: 'optional'
22
+ },
23
+ errorMessages: {
24
+ doc: 'Object containing error messages by either type of JSON Pointer path and type.',
25
+ type: 'object',
26
+ status: 'optional'
27
+ },
28
+ minimumAsyncBehaviorTime: {
29
+ doc: 'Minimum time to display the submit indicator. Default is 1s.',
30
+ type: 'boolean',
31
+ status: 'optional'
32
+ },
33
+ asyncBehaviorTimeout: {
34
+ doc: 'The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission. Default is 30s.',
35
+ type: 'boolean',
36
+ status: 'optional'
37
+ },
38
+ scrollTopOnSubmit: {
39
+ doc: 'True for the UI to scroll to the top of the page when data is submitted.',
40
+ type: 'boolean',
41
+ status: 'optional'
42
+ },
43
+ sessionStorageId: {
44
+ doc: 'Key for saving active data to session storage and loading it on mount.',
45
+ type: 'string',
46
+ status: 'optional'
47
+ },
48
+ ajvInstance: {
49
+ doc: 'Provide your own custom Ajv instance. More info in the <a href="/uilib/extensions/forms/extended-features/Form/schema-validation/#custom-ajv-instance-and-keywords">Schema validation</a> section.',
50
+ type: 'ajv',
51
+ status: 'optional'
52
+ },
53
+ filterData: {
54
+ doc: 'Filter the internal data context based on your criteria: `(path, value, props) => !props?.disabled`. It will iterate on each data entry.',
55
+ type: 'function',
56
+ status: 'optional'
57
+ },
58
+ children: {
59
+ doc: 'Contents.',
60
+ type: 'React.Node',
61
+ status: 'required'
62
+ }
63
+ };
64
+ exports.ProviderProperties = ProviderProperties;
65
+ const ProviderEvents = {
66
+ onChange: {
67
+ doc: "Will be called when a value of a field was changed by the user, with the data set (including the changed value) as argument. When an async function is provided, it will show an indicator on the current label during a field change. Related props: `minimumAsyncBehaviorTime` and `asyncBehaviorTimeout`. You can return an error or an object with these keys `{ info: 'Info message', warning: 'Warning message', error: Error('My error') } as const` in addition to { success: 'saved' } indicate the field was saved. Will emit unvalidated by default and validated when an async function is provided.",
68
+ type: 'function',
69
+ status: 'optional'
70
+ },
71
+ onPathChange: {
72
+ doc: 'Will be called when a value of a field was changed by the user, with the `path` (JSON Pointer) and new `value` as arguments. Can be an async function. Will emit unvalidated by default and validated when `onChange` is an async function.',
73
+ type: 'function',
74
+ status: 'optional'
75
+ },
76
+ onSubmit: {
77
+ doc: "Will be called (on validation success) when the user submit the form (i.e by clicking a [SubmitButton](/uilib/extensions/forms/extended-features/Form/SubmitButton) component inside), with the data set as 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 props: `minimumAsyncBehaviorTime` and `asyncBehaviorTimeout`. You can return an error or an object with these keys `{ status: 'pending', info: 'Info message', warning: 'Warning message', error: Error('My error') } as const` to be shown in a [FormStatus](/uilib/components/form-status). Will only emit when every validation has passed.",
78
+ type: 'function',
79
+ status: 'optional'
80
+ },
81
+ onSubmitRequest: {
82
+ doc: 'Will be called when the user tries to submit, but errors stop the data from being submitted.',
83
+ type: 'function',
84
+ status: 'optional'
85
+ },
86
+ onSubmitComplete: {
87
+ doc: 'Will be called after onSubmit has finished and had not errors. It supports the same return values as `onSubmit` and will be merged together.',
88
+ type: 'function',
89
+ status: 'optional'
90
+ }
91
+ };
92
+ exports.ProviderEvents = ProviderEvents;
93
+ //# sourceMappingURL=ProviderDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProviderDocs.js","names":["ProviderProperties","defaultData","doc","type","status","data","schema","errorMessages","minimumAsyncBehaviorTime","asyncBehaviorTimeout","scrollTopOnSubmit","sessionStorageId","ajvInstance","filterData","children","exports","ProviderEvents","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/ProviderDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const ProviderProperties: PropertiesTableProps = {\n defaultData: {\n doc: 'Default source data, only used if no other source is available, and not leading to updates if changed after mount.',\n type: 'object',\n status: 'required',\n },\n data: {\n doc: 'Dynamic source data used as both initial data, and updates internal data if changed after mount.',\n type: 'object',\n status: 'required',\n },\n schema: {\n doc: 'JSON Schema for validation of the data set.',\n type: 'object',\n status: 'optional',\n },\n errorMessages: {\n doc: 'Object containing error messages by either type of JSON Pointer path and type.',\n type: 'object',\n status: 'optional',\n },\n minimumAsyncBehaviorTime: {\n doc: 'Minimum time to display the submit indicator. Default is 1s.',\n type: 'boolean',\n status: 'optional',\n },\n asyncBehaviorTimeout: {\n doc: 'The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission. Default is 30s.',\n type: 'boolean',\n status: 'optional',\n },\n scrollTopOnSubmit: {\n doc: 'True for the UI to scroll to the top of the page when data is submitted.',\n type: 'boolean',\n status: 'optional',\n },\n sessionStorageId: {\n doc: 'Key for saving active data to session storage and loading it on mount.',\n type: 'string',\n status: 'optional',\n },\n ajvInstance: {\n doc: 'Provide your own custom Ajv instance. More info in the <a href=\"/uilib/extensions/forms/extended-features/Form/schema-validation/#custom-ajv-instance-and-keywords\">Schema validation</a> section.',\n type: 'ajv',\n status: 'optional',\n },\n filterData: {\n doc: 'Filter the internal data context based on your criteria: `(path, value, props) => !props?.disabled`. It will iterate on each data entry.',\n type: 'function',\n status: 'optional',\n },\n children: {\n doc: 'Contents.',\n type: 'React.Node',\n status: 'required',\n },\n}\n\nexport const ProviderEvents: PropertiesTableProps = {\n onChange: {\n doc: \"Will be called when a value of a field was changed by the user, with the data set (including the changed value) as argument. When an async function is provided, it will show an indicator on the current label during a field change. Related props: `minimumAsyncBehaviorTime` and `asyncBehaviorTimeout`. You can return an error or an object with these keys `{ info: 'Info message', warning: 'Warning message', error: Error('My error') } as const` in addition to { success: 'saved' } indicate the field was saved. Will emit unvalidated by default and validated when an async function is provided.\",\n type: 'function',\n status: 'optional',\n },\n onPathChange: {\n doc: 'Will be called when a value of a field was changed by the user, with the `path` (JSON Pointer) and new `value` as arguments. Can be an async function. Will emit unvalidated by default and validated when `onChange` is an async function.',\n type: 'function',\n status: 'optional',\n },\n onSubmit: {\n doc: \"Will be called (on validation success) when the user submit the form (i.e by clicking a [SubmitButton](/uilib/extensions/forms/extended-features/Form/SubmitButton) component inside), with the data set as 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 props: `minimumAsyncBehaviorTime` and `asyncBehaviorTimeout`. You can return an error or an object with these keys `{ status: 'pending', info: 'Info message', warning: 'Warning message', error: Error('My error') } as const` to be shown in a [FormStatus](/uilib/components/form-status). Will only emit when every validation has passed.\",\n type: 'function',\n status: 'optional',\n },\n onSubmitRequest: {\n doc: 'Will be called when the user tries to submit, but errors stop the data from being submitted.',\n type: 'function',\n status: 'optional',\n },\n onSubmitComplete: {\n doc: 'Will be called after onSubmit has finished and had not errors. It supports the same return values as `onSubmit` and will be merged together.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":";;;;;;AAEO,MAAMA,kBAAwC,GAAG;EACtDC,WAAW,EAAE;IACXC,GAAG,EAAE,oHAAoH;IACzHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,MAAM,EAAE;IACNJ,GAAG,EAAE,6CAA6C;IAClDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,aAAa,EAAE;IACbL,GAAG,EAAE,gFAAgF;IACrFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,wBAAwB,EAAE;IACxBN,GAAG,EAAE,8DAA8D;IACnEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDK,oBAAoB,EAAE;IACpBP,GAAG,EAAE,oJAAoJ;IACzJC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDM,iBAAiB,EAAE;IACjBR,GAAG,EAAE,0EAA0E;IAC/EC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDO,gBAAgB,EAAE;IAChBT,GAAG,EAAE,wEAAwE;IAC7EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,WAAW,EAAE;IACXV,GAAG,EAAE,oMAAoM;IACzMC,IAAI,EAAE,KAAK;IACXC,MAAM,EAAE;EACV,CAAC;EACDS,UAAU,EAAE;IACVX,GAAG,EAAE,0IAA0I;IAC/IC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDU,QAAQ,EAAE;IACRZ,GAAG,EAAE,WAAW;IAChBC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV;AACF,CAAC;AAAAW,OAAA,CAAAf,kBAAA,GAAAA,kBAAA;AAEM,MAAMgB,cAAoC,GAAG;EAClDC,QAAQ,EAAE;IACRf,GAAG,EAAE,klBAAklB;IACvlBC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDc,YAAY,EAAE;IACZhB,GAAG,EAAE,6OAA6O;IAClPC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDe,QAAQ,EAAE;IACRjB,GAAG,EAAE,qwBAAqwB;IAC1wBC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDgB,eAAe,EAAE;IACflB,GAAG,EAAE,8FAA8F;IACnGC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDiB,gBAAgB,EAAE;IAChBnB,GAAG,EAAE,8IAA8I;IACnJC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC;AAAAW,OAAA,CAAAC,cAAA,GAAAA,cAAA"}
@@ -38,7 +38,7 @@ function ArraySelection(props) {
38
38
  emptyValue,
39
39
  handleChange,
40
40
  children
41
- } = (0, _hooks.useDataValue)(props);
41
+ } = (0, _hooks.useFieldProps)(props);
42
42
  const fieldBlockProps = _objectSpread({
43
43
  forId: id,
44
44
  className: (0, _classnames.default)(`dnb-forms-field-array-selection dnb-forms-field-array-selection--layout-${optionsLayout}`, className),
@@ -1 +1 @@
1
- {"version":3,"file":"ArraySelection.js","names":["_react","_interopRequireWildcard","require","_components","_classnames","_interopRequireDefault","_Option","_FieldBlock","_hooks","_utils","_ToggleButtonGroupContext","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","ArraySelection","props","id","className","variant","layout","optionsLayout","label","labelDescription","error","hasError","info","warning","disabled","emptyValue","handleChange","children","useDataValue","fieldBlockProps","forId","classnames","contentClassName","pickSpacingProps","options","useMemo","React","Children","toArray","child","isValidElement","type","OptionField","map","option","_option$props$title","title","handleSelect","selected","newValue","includes","createElement","Provider","status","ToggleButton","text","checked","on_change","Checkbox","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/ArraySelection/ArraySelection.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport { Checkbox, ToggleButton } from '../../../../components'\nimport classnames from 'classnames'\nimport OptionField from '../Option'\nimport FieldBlock from '../../FieldBlock'\nimport { useDataValue } from '../../hooks'\nimport { FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\n\ninterface IOption {\n title: string\n value: number | string\n handleSelect: () => void\n}\n\nexport type Props = FieldProps<Array<string | number>> & {\n children?: React.ReactNode\n variant?: 'checkbox' | 'button'\n optionsLayout?: 'horizontal' | 'vertical'\n}\n\nfunction ArraySelection(props: Props) {\n const {\n id,\n className,\n variant = 'checkbox',\n layout = 'vertical',\n optionsLayout = 'vertical',\n label,\n labelDescription,\n value,\n error,\n hasError,\n info,\n warning,\n disabled,\n emptyValue,\n handleChange,\n children,\n } = useDataValue(props)\n\n const fieldBlockProps = {\n forId: id,\n className: classnames(\n 'dnb-forms-field-array-selection',\n `dnb-forms-field-array-selection--layout-${optionsLayout}`,\n className\n ),\n contentClassName: 'dnb-forms-field-array-selection__options',\n info,\n warning,\n error,\n layout,\n label,\n labelDescription,\n ...pickSpacingProps(props),\n }\n\n const options: IOption[] = useMemo(\n () =>\n React.Children.toArray(children)\n .filter(\n (child) =>\n React.isValidElement(child) && child.type === OptionField\n )\n .map((option: React.ReactElement) => ({\n title: option.props.title ?? option.props.children,\n value: option.props.value,\n handleSelect: () => {\n const selected = option.props.value\n\n const newValue = value?.includes(selected)\n ? value.filter((value) => value !== selected)\n : [...(value ?? []), selected]\n\n handleChange?.(newValue.length === 0 ? emptyValue : newValue)\n },\n })),\n [children, value, emptyValue, handleChange]\n )\n\n switch (variant) {\n case 'button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButtonGroupContext.Provider\n value={{\n status: hasError ? 'error' : undefined,\n disabled,\n }}\n >\n {options.map((option, i) => (\n <ToggleButton\n key={`option-${i}-${option.value}`}\n text={option.title}\n checked={value?.includes(option.value)}\n on_change={option.handleSelect}\n />\n ))}\n </ToggleButtonGroupContext.Provider>\n </FieldBlock>\n )\n case 'checkbox':\n return (\n <FieldBlock {...fieldBlockProps}>\n {options.map((option, i) => (\n <Checkbox\n key={`option-${i}-${option.value}`}\n className=\"dnb-forms-field-array-selection__checkbox\"\n label={option.title}\n checked={value?.includes(option.value)}\n disabled={disabled}\n on_change={option.handleSelect}\n status={hasError ? 'error' : undefined}\n />\n ))}\n </FieldBlock>\n )\n }\n}\n\nArraySelection._supportsSpacingProps = true\nexport default ArraySelection\n"],"mappings":"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"}
1
+ {"version":3,"file":"ArraySelection.js","names":["_react","_interopRequireWildcard","require","_components","_classnames","_interopRequireDefault","_Option","_FieldBlock","_hooks","_utils","_ToggleButtonGroupContext","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","ArraySelection","props","id","className","variant","layout","optionsLayout","label","labelDescription","error","hasError","info","warning","disabled","emptyValue","handleChange","children","useFieldProps","fieldBlockProps","forId","classnames","contentClassName","pickSpacingProps","options","useMemo","React","Children","toArray","child","isValidElement","type","OptionField","map","option","_option$props$title","title","handleSelect","selected","newValue","includes","createElement","Provider","status","ToggleButton","text","checked","on_change","Checkbox","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/ArraySelection/ArraySelection.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport { Checkbox, ToggleButton } from '../../../../components'\nimport classnames from 'classnames'\nimport OptionField from '../Option'\nimport FieldBlock from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\n\ninterface IOption {\n title: string\n value: number | string\n handleSelect: () => void\n}\n\nexport type Props = FieldProps<Array<string | number>> & {\n children?: React.ReactNode\n variant?: 'checkbox' | 'button'\n optionsLayout?: 'horizontal' | 'vertical'\n}\n\nfunction ArraySelection(props: Props) {\n const {\n id,\n className,\n variant = 'checkbox',\n layout = 'vertical',\n optionsLayout = 'vertical',\n label,\n labelDescription,\n value,\n error,\n hasError,\n info,\n warning,\n disabled,\n emptyValue,\n handleChange,\n children,\n } = useFieldProps(props)\n\n const fieldBlockProps = {\n forId: id,\n className: classnames(\n 'dnb-forms-field-array-selection',\n `dnb-forms-field-array-selection--layout-${optionsLayout}`,\n className\n ),\n contentClassName: 'dnb-forms-field-array-selection__options',\n info,\n warning,\n error,\n layout,\n label,\n labelDescription,\n ...pickSpacingProps(props),\n }\n\n const options: IOption[] = useMemo(\n () =>\n React.Children.toArray(children)\n .filter(\n (child) =>\n React.isValidElement(child) && child.type === OptionField\n )\n .map((option: React.ReactElement) => ({\n title: option.props.title ?? option.props.children,\n value: option.props.value,\n handleSelect: () => {\n const selected = option.props.value\n\n const newValue = value?.includes(selected)\n ? value.filter((value) => value !== selected)\n : [...(value ?? []), selected]\n\n handleChange?.(newValue.length === 0 ? emptyValue : newValue)\n },\n })),\n [children, value, emptyValue, handleChange]\n )\n\n switch (variant) {\n case 'button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButtonGroupContext.Provider\n value={{\n status: hasError ? 'error' : undefined,\n disabled,\n }}\n >\n {options.map((option, i) => (\n <ToggleButton\n key={`option-${i}-${option.value}`}\n text={option.title}\n checked={value?.includes(option.value)}\n on_change={option.handleSelect}\n />\n ))}\n </ToggleButtonGroupContext.Provider>\n </FieldBlock>\n )\n case 'checkbox':\n return (\n <FieldBlock {...fieldBlockProps}>\n {options.map((option, i) => (\n <Checkbox\n key={`option-${i}-${option.value}`}\n className=\"dnb-forms-field-array-selection__checkbox\"\n label={option.title}\n checked={value?.includes(option.value)}\n disabled={disabled}\n on_change={option.handleSelect}\n status={hasError ? 'error' : undefined}\n />\n ))}\n </FieldBlock>\n )\n }\n}\n\nArraySelection._supportsSpacingProps = true\nexport default ArraySelection\n"],"mappings":"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"}
@@ -70,11 +70,11 @@ function DateComponent(props) {
70
70
  error,
71
71
  hasError,
72
72
  disabled,
73
- ariaAttributes,
73
+ htmlAttributes,
74
74
  handleFocus,
75
75
  handleBlur,
76
76
  handleChange
77
- } = (0, _hooks.useDataValue)(preparedProps);
77
+ } = (0, _hooks.useFieldProps)(preparedProps);
78
78
  return _react.default.createElement(_FieldBlock.default, _extends({
79
79
  className: (0, _classnames.default)('dnb-forms-field-string', className),
80
80
  forId: id,
@@ -99,7 +99,7 @@ function DateComponent(props) {
99
99
  on_reset: handleChange,
100
100
  onFocus: handleFocus,
101
101
  onBlur: handleBlur
102
- }, ariaAttributes)));
102
+ }, htmlAttributes)));
103
103
  }
104
104
  DateComponent._supportsSpacingProps = true;
105
105
  var _default = DateComponent;
@@ -1 +1 @@
1
- {"version":3,"file":"Date.js","names":["_react","_interopRequireWildcard","require","_components","_hooks","_utils","_Context","_interopRequireDefault","_classnames","_FieldBlock","_dateFns","_useErrorMessage","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","DateComponent","props","sharedContext","useContext","SharedContext","tr","translation","Forms","errorMessages","useErrorMessage","path","required","dateErrorRequired","pattern","inputErrorPattern","schema","useMemo","_props$schema","type","validateRequired","useCallback","_ref","error","isValid","parseISO","preparedProps","fromInput","_ref2","date","id","className","label","labelDescription","help","info","warning","hasError","disabled","ariaAttributes","handleFocus","handleBlur","handleChange","useDataValue","createElement","classnames","forId","dateLabel","pickSpacingProps","DatePicker","show_input","show_cancel_button","show_reset_button","status","suffix","HelpButton","title","content","on_change","on_reset","onFocus","onBlur","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/Date/Date.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport { DatePicker, HelpButton } from '../../../../components'\nimport { useDataValue } from '../../hooks'\nimport {\n FieldProps,\n FieldHelpProps,\n AllJSONSchemaVersions,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport SharedContext from '../../../../shared/Context'\nimport classnames from 'classnames'\nimport FieldBlock from '../../FieldBlock'\nimport { parseISO, isValid } from 'date-fns'\nimport useErrorMessage from '../../hooks/useErrorMessage'\n\nexport type Props = FieldHelpProps &\n FieldProps<string> & {\n // Validation\n pattern?: string\n }\n\nfunction DateComponent(props: Props) {\n const sharedContext = useContext(SharedContext)\n const tr = sharedContext?.translation.Forms\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: tr.dateErrorRequired,\n pattern: tr.inputErrorPattern,\n })\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'string',\n pattern: props.pattern,\n },\n [props.schema, props.pattern]\n )\n\n const validateRequired = useCallback(\n (value: string, { required, error }) => {\n if (required && (!value || !isValid(parseISO(value)))) {\n return error\n }\n\n return undefined\n },\n []\n )\n\n const preparedProps: Props = {\n ...props,\n errorMessages,\n schema,\n fromInput: ({ date }: { date: string }) => {\n return date\n },\n validateRequired,\n }\n\n const {\n id,\n className,\n label,\n labelDescription,\n value,\n help,\n info,\n warning,\n error,\n hasError,\n disabled,\n ariaAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n } = useDataValue(preparedProps)\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-string', className)}\n forId={id}\n label={label ?? sharedContext?.translation.Forms.dateLabel}\n labelDescription={labelDescription}\n info={info}\n warning={warning}\n disabled={disabled}\n error={error}\n {...pickSpacingProps(props)}\n >\n <DatePicker\n id={id}\n date={value}\n disabled={disabled}\n show_input={true}\n show_cancel_button={true}\n show_reset_button={true}\n status={hasError ? 'error' : undefined}\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined\n }\n on_change={handleChange}\n on_reset={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n {...ariaAttributes}\n />\n </FieldBlock>\n )\n}\n\nDateComponent._supportsSpacingProps = true\nexport default DateComponent\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAMA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,WAAA,GAAAD,sBAAA,CAAAL,OAAA;AACA,IAAAO,WAAA,GAAAF,sBAAA,CAAAL,OAAA;AACA,IAAAQ,QAAA,GAAAR,OAAA;AACA,IAAAS,gBAAA,GAAAJ,sBAAA,CAAAL,OAAA;AAAyD,SAAAK,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAf,wBAAAW,GAAA,EAAAI,WAAA,SAAAA,WAAA,IAAAJ,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAQ,KAAA,GAAAL,wBAAA,CAAAC,WAAA,OAAAI,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,CAAAT,OAAA,GAAAF,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAAA,SAAAW,SAAA,IAAAA,QAAA,GAAAT,MAAA,CAAAU,MAAA,GAAAV,MAAA,CAAAU,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAV,GAAA,IAAAa,MAAA,QAAAhB,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAU,MAAA,EAAAb,GAAA,KAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,gBAAAS,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAH,SAAA;AAAA,SAAAI,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAArB,MAAA,CAAAqB,IAAA,CAAAF,MAAA,OAAAnB,MAAA,CAAAsB,qBAAA,QAAAC,OAAA,GAAAvB,MAAA,CAAAsB,qBAAA,CAAAH,MAAA,GAAAC,cAAA,KAAAG,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAzB,MAAA,CAAAE,wBAAA,CAAAiB,MAAA,EAAAM,GAAA,EAAAC,UAAA,OAAAL,IAAA,CAAAM,IAAA,CAAAV,KAAA,CAAAI,IAAA,EAAAE,OAAA,YAAAF,IAAA;AAAA,SAAAO,cAAAhB,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAK,OAAA,CAAAlB,MAAA,CAAAgB,MAAA,OAAAa,OAAA,WAAA1B,GAAA,IAAA2B,eAAA,CAAAlB,MAAA,EAAAT,GAAA,EAAAa,MAAA,CAAAb,GAAA,SAAAH,MAAA,CAAA+B,yBAAA,GAAA/B,MAAA,CAAAgC,gBAAA,CAAApB,MAAA,EAAAZ,MAAA,CAAA+B,yBAAA,CAAAf,MAAA,KAAAE,OAAA,CAAAlB,MAAA,CAAAgB,MAAA,GAAAa,OAAA,WAAA1B,GAAA,IAAAH,MAAA,CAAAC,cAAA,CAAAW,MAAA,EAAAT,GAAA,EAAAH,MAAA,CAAAE,wBAAA,CAAAc,MAAA,EAAAb,GAAA,iBAAAS,MAAA;AAAA,SAAAkB,gBAAA3C,GAAA,EAAAgB,GAAA,EAAA8B,KAAA,IAAA9B,GAAA,GAAA+B,cAAA,CAAA/B,GAAA,OAAAA,GAAA,IAAAhB,GAAA,IAAAa,MAAA,CAAAC,cAAA,CAAAd,GAAA,EAAAgB,GAAA,IAAA8B,KAAA,EAAAA,KAAA,EAAAP,UAAA,QAAAS,YAAA,QAAAC,QAAA,oBAAAjD,GAAA,CAAAgB,GAAA,IAAA8B,KAAA,WAAA9C,GAAA;AAAA,SAAA+C,eAAAG,GAAA,QAAAlC,GAAA,GAAAmC,YAAA,CAAAD,GAAA,2BAAAlC,GAAA,gBAAAA,GAAA,GAAAoC,MAAA,CAAApC,GAAA;AAAA,SAAAmC,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAApC,IAAA,CAAAkC,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAC,SAAA,4DAAAN,IAAA,gBAAAF,MAAA,GAAAS,MAAA,EAAAR,KAAA;AAQzD,SAASS,aAAaA,CAACC,KAAY,EAAE;EACnC,MAAMC,aAAa,GAAG,IAAAC,iBAAU,EAACC,gBAAa,CAAC;EAC/C,MAAMC,EAAE,GAAGH,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEI,WAAW,CAACC,KAAK;EAE3C,MAAMC,aAAa,GAAG,IAAAC,wBAAe,EAACR,KAAK,CAACS,IAAI,EAAET,KAAK,CAACO,aAAa,EAAE;IACrEG,QAAQ,EAAEN,EAAE,CAACO,iBAAiB;IAC9BC,OAAO,EAAER,EAAE,CAACS;EACd,CAAC,CAAC;EAEF,MAAMC,MAAM,GAAG,IAAAC,cAAO,EACpB;IAAA,IAAAC,aAAA;IAAA,QAAAA,aAAA,GACEhB,KAAK,CAACc,MAAM,cAAAE,aAAA,cAAAA,aAAA,GAAI;MACdC,IAAI,EAAE,QAAQ;MACdL,OAAO,EAAEZ,KAAK,CAACY;IACjB,CAAC;EAAA,GACH,CAACZ,KAAK,CAACc,MAAM,EAAEd,KAAK,CAACY,OAAO,CAC9B,CAAC;EAED,MAAMM,gBAAgB,GAAG,IAAAC,kBAAW,EAClC,CAACpC,KAAa,EAAAqC,IAAA,KAA0B;IAAA,IAAxB;MAAEV,QAAQ;MAAEW;IAAM,CAAC,GAAAD,IAAA;IACjC,IAAIV,QAAQ,KAAK,CAAC3B,KAAK,IAAI,CAAC,IAAAuC,gBAAO,EAAC,IAAAC,iBAAQ,EAACxC,KAAK,CAAC,CAAC,CAAC,EAAE;MACrD,OAAOsC,KAAK;IACd;IAEA,OAAO1B,SAAS;EAClB,CAAC,EACD,EACF,CAAC;EAED,MAAM6B,aAAoB,GAAA9C,aAAA,CAAAA,aAAA,KACrBsB,KAAK;IACRO,aAAa;IACbO,MAAM;IACNW,SAAS,EAAEC,KAAA,IAAgC;MAAA,IAA/B;QAAEC;MAAuB,CAAC,GAAAD,KAAA;MACpC,OAAOC,IAAI;IACb,CAAC;IACDT;EAAgB,EACjB;EAED,MAAM;IACJU,EAAE;IACFC,SAAS;IACTC,KAAK;IACLC,gBAAgB;IAChBhD,KAAK;IACLiD,IAAI;IACJC,IAAI;IACJC,OAAO;IACPb,KAAK;IACLc,QAAQ;IACRC,QAAQ;IACRC,cAAc;IACdC,WAAW;IACXC,UAAU;IACVC;EACF,CAAC,GAAG,IAAAC,mBAAY,EAACjB,aAAa,CAAC;EAE/B,OACEnG,MAAA,CAAAc,OAAA,CAAAuG,aAAA,CAAC5G,WAAA,CAAAK,OAAU,EAAAoB,QAAA;IACTsE,SAAS,EAAE,IAAAc,mBAAU,EAAC,wBAAwB,EAAEd,SAAS,CAAE;IAC3De,KAAK,EAAEhB,EAAG;IACVE,KAAK,EAAEA,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI7B,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEI,WAAW,CAACC,KAAK,CAACuC,SAAU;IAC3Dd,gBAAgB,EAAEA,gBAAiB;IACnCE,IAAI,EAAEA,IAAK;IACXC,OAAO,EAAEA,OAAQ;IACjBE,QAAQ,EAAEA,QAAS;IACnBf,KAAK,EAAEA;EAAM,GACT,IAAAyB,uBAAgB,EAAC9C,KAAK,CAAC,GAE3B3E,MAAA,CAAAc,OAAA,CAAAuG,aAAA,CAAClH,WAAA,CAAAuH,UAAU,EAAAxF,QAAA;IACTqE,EAAE,EAAEA,EAAG;IACPD,IAAI,EAAE5C,KAAM;IACZqD,QAAQ,EAAEA,QAAS;IACnBY,UAAU,EAAE,IAAK;IACjBC,kBAAkB,EAAE,IAAK;IACzBC,iBAAiB,EAAE,IAAK;IACxBC,MAAM,EAAEhB,QAAQ,GAAG,OAAO,GAAGxC,SAAU;IACvCyD,MAAM,EACJpB,IAAI,GACF3G,MAAA,CAAAc,OAAA,CAAAuG,aAAA,CAAClH,WAAA,CAAA6H,UAAU;MAACC,KAAK,EAAEtB,IAAI,CAACsB;IAAM,GAAEtB,IAAI,CAACuB,OAAoB,CAAC,GACxD5D,SACL;IACD6D,SAAS,EAAEhB,YAAa;IACxBiB,QAAQ,EAAEjB,YAAa;IACvBkB,OAAO,EAAEpB,WAAY;IACrBqB,MAAM,EAAEpB;EAAW,GACfF,cAAc,CACnB,CACS,CAAC;AAEjB;AAEAtC,aAAa,CAAC6D,qBAAqB,GAAG,IAAI;AAAA,IAAAC,QAAA,GAC3B9D,aAAa;AAAA+D,OAAA,CAAA3H,OAAA,GAAA0H,QAAA"}
1
+ {"version":3,"file":"Date.js","names":["_react","_interopRequireWildcard","require","_components","_hooks","_utils","_Context","_interopRequireDefault","_classnames","_FieldBlock","_dateFns","_useErrorMessage","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","DateComponent","props","sharedContext","useContext","SharedContext","tr","translation","Forms","errorMessages","useErrorMessage","path","required","dateErrorRequired","pattern","inputErrorPattern","schema","useMemo","_props$schema","type","validateRequired","useCallback","_ref","error","isValid","parseISO","preparedProps","fromInput","_ref2","date","id","className","label","labelDescription","help","info","warning","hasError","disabled","htmlAttributes","handleFocus","handleBlur","handleChange","useFieldProps","createElement","classnames","forId","dateLabel","pickSpacingProps","DatePicker","show_input","show_cancel_button","show_reset_button","status","suffix","HelpButton","title","content","on_change","on_reset","onFocus","onBlur","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/Date/Date.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport { DatePicker, HelpButton } from '../../../../components'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldProps,\n FieldHelpProps,\n AllJSONSchemaVersions,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport SharedContext from '../../../../shared/Context'\nimport classnames from 'classnames'\nimport FieldBlock from '../../FieldBlock'\nimport { parseISO, isValid } from 'date-fns'\nimport useErrorMessage from '../../hooks/useErrorMessage'\n\nexport type Props = FieldHelpProps &\n FieldProps<string> & {\n // Validation\n pattern?: string\n }\n\nfunction DateComponent(props: Props) {\n const sharedContext = useContext(SharedContext)\n const tr = sharedContext?.translation.Forms\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: tr.dateErrorRequired,\n pattern: tr.inputErrorPattern,\n })\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'string',\n pattern: props.pattern,\n },\n [props.schema, props.pattern]\n )\n\n const validateRequired = useCallback(\n (value: string, { required, error }) => {\n if (required && (!value || !isValid(parseISO(value)))) {\n return error\n }\n\n return undefined\n },\n []\n )\n\n const preparedProps: Props = {\n ...props,\n errorMessages,\n schema,\n fromInput: ({ date }: { date: string }) => {\n return date\n },\n validateRequired,\n }\n\n const {\n id,\n className,\n label,\n labelDescription,\n value,\n help,\n info,\n warning,\n error,\n hasError,\n disabled,\n htmlAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n } = useFieldProps(preparedProps)\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-string', className)}\n forId={id}\n label={label ?? sharedContext?.translation.Forms.dateLabel}\n labelDescription={labelDescription}\n info={info}\n warning={warning}\n disabled={disabled}\n error={error}\n {...pickSpacingProps(props)}\n >\n <DatePicker\n id={id}\n date={value}\n disabled={disabled}\n show_input={true}\n show_cancel_button={true}\n show_reset_button={true}\n status={hasError ? 'error' : undefined}\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined\n }\n on_change={handleChange}\n on_reset={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n}\n\nDateComponent._supportsSpacingProps = true\nexport default DateComponent\n"],"mappings":"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"}
@@ -56,11 +56,11 @@ function Expiry(props) {
56
56
  value = '',
57
57
  labelDescription,
58
58
  layout = 'vertical',
59
- ariaAttributes,
59
+ htmlAttributes,
60
60
  handleFocus,
61
61
  handleBlur,
62
62
  handleChange
63
- } = (0, _hooks.useDataValue)(preparedProps);
63
+ } = (0, _hooks.useFieldProps)(preparedProps);
64
64
  const expiry = {
65
65
  month: ensureValidMonth(value === null || value === void 0 ? void 0 : value.substring(0, 2)),
66
66
  year: (_value$substring = value === null || value === void 0 ? void 0 : value.substring(2, 4)) !== null && _value$substring !== void 0 ? _value$substring : ''
@@ -94,13 +94,13 @@ function Expiry(props) {
94
94
  mask: getMonthMask(expiry === null || expiry === void 0 ? void 0 : expiry.month),
95
95
  placeholderCharacter: placeholders['month'],
96
96
  autoComplete: 'cc-exp-month'
97
- }, ariaAttributes), _objectSpread({
97
+ }, htmlAttributes), _objectSpread({
98
98
  id: 'year',
99
99
  label: sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.DatePicker['year'],
100
100
  mask: [/[0-9]/, /[0-9]/],
101
101
  placeholderCharacter: placeholders['year'],
102
102
  autoComplete: 'cc-exp-year'
103
- }, ariaAttributes)],
103
+ }, htmlAttributes)],
104
104
  suffix: help ? _react.default.createElement(_components.HelpButton, {
105
105
  title: help.title
106
106
  }, help.content) : undefined
@@ -1 +1 @@
1
- {"version":3,"file":"Expiry.js","names":["_react","_interopRequireWildcard","require","_Context","_interopRequireDefault","_utils","_hooks","_classnames","_FieldBlock","_inputMasked","_components","_useErrorMessage","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","Expiry","props","_value$substring","sharedContext","useContext","SharedContext","translations","translation","Forms","placeholders","DatePicker","placeholder_characters","errorMessages","useErrorMessage","path","required","dateErrorRequired","validateRequired","useCallback","_ref","error","preparedProps","fromInput","toExpiryString","id","className","label","expiryLabel","hasError","info","warning","help","disabled","labelDescription","layout","ariaAttributes","handleFocus","handleBlur","handleChange","useDataValue","expiry","month","ensureValidMonth","substring","year","status","createElement","classnames","forId","pickSpacingProps","MultiInputMask","stretch","values","statusState","onChange","onBlur","onFocus","delimiter","inputMode","inputs","mask","getMonthMask","placeholderCharacter","autoComplete","suffix","HelpButton","title","content","join","firstMask","secondMask","firstDigit","charAt","isFirstDigitValid","test","seconDigit","isSecondDigitValid","_supportsEufemiaSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/Expiry/Expiry.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport SharedContext from '../../../../shared/Context'\nimport { FieldHelpProps, FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { useDataValue } from '../../hooks'\nimport classnames from 'classnames'\nimport FieldBlock from '../../FieldBlock'\nimport { MultiInputMask } from '../../../../components/input-masked'\nimport type { MultiInputMaskValue } from '../../../../components/input-masked'\nimport { HelpButton } from '../../../../components'\nimport useErrorMessage from '../../hooks/useErrorMessage'\n\ntype ExpiryValue = MultiInputMaskValue<'month' | 'year'>\n\nexport type ExpiryProps = FieldHelpProps & FieldProps<string>\n\nfunction Expiry(props: ExpiryProps) {\n const sharedContext = useContext(SharedContext)\n const translations = sharedContext?.translation.Forms\n const placeholders =\n sharedContext?.translation.DatePicker.placeholder_characters\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.dateErrorRequired,\n })\n\n const validateRequired = useCallback(\n (value: string, { required, error }) => {\n return required && !value ? error : undefined\n },\n []\n )\n\n const preparedProps: ExpiryProps = {\n ...props,\n errorMessages,\n fromInput: toExpiryString,\n validateRequired,\n }\n\n const {\n id,\n className,\n label = translations.expiryLabel,\n error,\n hasError,\n info,\n warning,\n help,\n disabled,\n value = '',\n labelDescription,\n layout = 'vertical',\n ariaAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n } = useDataValue(preparedProps)\n\n const expiry: ExpiryValue = {\n month: ensureValidMonth(value?.substring(0, 2)),\n year: value?.substring(2, 4) ?? '',\n }\n\n const status = hasError\n ? 'error'\n : warning\n ? 'warn'\n : info\n ? 'info'\n : null\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-expiry', className)}\n id={id}\n forId={`${id}-input-month`}\n label={label}\n layout={layout}\n labelDescription={labelDescription}\n info={info}\n warning={warning}\n error={error}\n {...pickSpacingProps(props)}\n >\n <MultiInputMask\n stretch\n id={`${id}-input`}\n values={expiry}\n status={status}\n statusState={disabled ? 'disabled' : undefined}\n disabled={disabled}\n onChange={handleChange}\n onBlur={handleBlur}\n onFocus={handleFocus}\n delimiter=\"/\"\n inputMode=\"numeric\"\n inputs={[\n {\n id: 'month',\n label: sharedContext?.translation.DatePicker['month'],\n mask: getMonthMask(expiry?.month),\n placeholderCharacter: placeholders['month'],\n autoComplete: 'cc-exp-month',\n ...ariaAttributes,\n },\n {\n id: 'year',\n label: sharedContext?.translation.DatePicker['year'],\n mask: [/[0-9]/, /[0-9]/],\n placeholderCharacter: placeholders['year'],\n autoComplete: 'cc-exp-year',\n ...ariaAttributes,\n },\n ]}\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined\n }\n />\n </FieldBlock>\n )\n\n function toExpiryString(values: ExpiryValue) {\n return Object.values(values).join('')\n }\n\n function ensureValidMonth(month: string) {\n // Return empty value if no month is given\n if (!month) {\n return ''\n }\n\n const [firstMask, secondMask] = getMonthMask(month)\n\n const firstDigit = month?.charAt(0)\n const isFirstDigitValid = firstMask.test(firstDigit)\n\n if (firstDigit && !isFirstDigitValid) {\n // Return empty value if the first digit is invalid\n return ''\n }\n\n const seconDigit = month?.charAt(1)\n const isSecondDigitValid = secondMask.test(seconDigit)\n\n if (seconDigit && !isSecondDigitValid) {\n // Return empty value if the second digit is invalid\n return ''\n }\n\n // Return given month of month value is valid\n return month\n }\n\n function getMonthMask(month: string) {\n const firstDigit = month?.charAt(0)\n\n return [\n /[0-1]/,\n firstDigit === '0' || firstDigit === '' ? /[1-9]/ : /[0-2]/,\n ]\n }\n}\n\nExpiry._supportsEufemiaSpacingProps = true\nexport default Expiry\n"],"mappings":"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"}
1
+ {"version":3,"file":"Expiry.js","names":["_react","_interopRequireWildcard","require","_Context","_interopRequireDefault","_utils","_hooks","_classnames","_FieldBlock","_inputMasked","_components","_useErrorMessage","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","Expiry","props","_value$substring","sharedContext","useContext","SharedContext","translations","translation","Forms","placeholders","DatePicker","placeholder_characters","errorMessages","useErrorMessage","path","required","dateErrorRequired","validateRequired","useCallback","_ref","error","preparedProps","fromInput","toExpiryString","id","className","label","expiryLabel","hasError","info","warning","help","disabled","labelDescription","layout","htmlAttributes","handleFocus","handleBlur","handleChange","useFieldProps","expiry","month","ensureValidMonth","substring","year","status","createElement","classnames","forId","pickSpacingProps","MultiInputMask","stretch","values","statusState","onChange","onBlur","onFocus","delimiter","inputMode","inputs","mask","getMonthMask","placeholderCharacter","autoComplete","suffix","HelpButton","title","content","join","firstMask","secondMask","firstDigit","charAt","isFirstDigitValid","test","seconDigit","isSecondDigitValid","_supportsEufemiaSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/Expiry/Expiry.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport SharedContext from '../../../../shared/Context'\nimport { FieldHelpProps, FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { useFieldProps } from '../../hooks'\nimport classnames from 'classnames'\nimport FieldBlock from '../../FieldBlock'\nimport { MultiInputMask } from '../../../../components/input-masked'\nimport type { MultiInputMaskValue } from '../../../../components/input-masked'\nimport { HelpButton } from '../../../../components'\nimport useErrorMessage from '../../hooks/useErrorMessage'\n\ntype ExpiryValue = MultiInputMaskValue<'month' | 'year'>\n\nexport type ExpiryProps = FieldHelpProps & FieldProps<string>\n\nfunction Expiry(props: ExpiryProps) {\n const sharedContext = useContext(SharedContext)\n const translations = sharedContext?.translation.Forms\n const placeholders =\n sharedContext?.translation.DatePicker.placeholder_characters\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.dateErrorRequired,\n })\n\n const validateRequired = useCallback(\n (value: string, { required, error }) => {\n return required && !value ? error : undefined\n },\n []\n )\n\n const preparedProps: ExpiryProps = {\n ...props,\n errorMessages,\n fromInput: toExpiryString,\n validateRequired,\n }\n\n const {\n id,\n className,\n label = translations.expiryLabel,\n error,\n hasError,\n info,\n warning,\n help,\n disabled,\n value = '',\n labelDescription,\n layout = 'vertical',\n htmlAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n } = useFieldProps(preparedProps)\n\n const expiry: ExpiryValue = {\n month: ensureValidMonth(value?.substring(0, 2)),\n year: value?.substring(2, 4) ?? '',\n }\n\n const status = hasError\n ? 'error'\n : warning\n ? 'warn'\n : info\n ? 'info'\n : null\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-expiry', className)}\n id={id}\n forId={`${id}-input-month`}\n label={label}\n layout={layout}\n labelDescription={labelDescription}\n info={info}\n warning={warning}\n error={error}\n {...pickSpacingProps(props)}\n >\n <MultiInputMask\n stretch\n id={`${id}-input`}\n values={expiry}\n status={status}\n statusState={disabled ? 'disabled' : undefined}\n disabled={disabled}\n onChange={handleChange}\n onBlur={handleBlur}\n onFocus={handleFocus}\n delimiter=\"/\"\n inputMode=\"numeric\"\n inputs={[\n {\n id: 'month',\n label: sharedContext?.translation.DatePicker['month'],\n mask: getMonthMask(expiry?.month),\n placeholderCharacter: placeholders['month'],\n autoComplete: 'cc-exp-month',\n ...htmlAttributes,\n },\n {\n id: 'year',\n label: sharedContext?.translation.DatePicker['year'],\n mask: [/[0-9]/, /[0-9]/],\n placeholderCharacter: placeholders['year'],\n autoComplete: 'cc-exp-year',\n ...htmlAttributes,\n },\n ]}\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined\n }\n />\n </FieldBlock>\n )\n\n function toExpiryString(values: ExpiryValue) {\n return Object.values(values).join('')\n }\n\n function ensureValidMonth(month: string) {\n // Return empty value if no month is given\n if (!month) {\n return ''\n }\n\n const [firstMask, secondMask] = getMonthMask(month)\n\n const firstDigit = month?.charAt(0)\n const isFirstDigitValid = firstMask.test(firstDigit)\n\n if (firstDigit && !isFirstDigitValid) {\n // Return empty value if the first digit is invalid\n return ''\n }\n\n const seconDigit = month?.charAt(1)\n const isSecondDigitValid = secondMask.test(seconDigit)\n\n if (seconDigit && !isSecondDigitValid) {\n // Return empty value if the second digit is invalid\n return ''\n }\n\n // Return given month of month value is valid\n return month\n }\n\n function getMonthMask(month: string) {\n const firstDigit = month?.charAt(0)\n\n return [\n /[0-1]/,\n firstDigit === '0' || firstDigit === '' ? /[1-9]/ : /[0-2]/,\n ]\n }\n}\n\nExpiry._supportsEufemiaSpacingProps = true\nexport default Expiry\n"],"mappings":"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"}