@dnb/eufemia 10.8.0 → 10.9.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 (832) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/cjs/components/breadcrumb/BreadcrumbItem.js +1 -1
  3. package/cjs/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  4. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  5. package/cjs/components/input-masked/InputMaskedHooks.js +1 -1
  6. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  7. package/cjs/components/modal/ModalContent.js +3 -1
  8. package/cjs/components/modal/ModalContent.js.map +1 -1
  9. package/cjs/components/progress-indicator/style/dnb-progress-indicator.css +59 -2
  10. package/cjs/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  11. package/cjs/components/progress-indicator/style/dnb-progress-indicator.scss +70 -2
  12. package/cjs/components/progress-indicator/style/themes/dnb-progress-indicator-theme-sbanken.css +18 -0
  13. package/cjs/components/progress-indicator/style/themes/dnb-progress-indicator-theme-sbanken.min.css +9 -0
  14. package/cjs/components/progress-indicator/style/themes/dnb-progress-indicator-theme-sbanken.scss +19 -0
  15. package/cjs/components/progress-indicator/style/themes/dnb-progress-indicator-theme-ui.css +5 -64
  16. package/cjs/components/progress-indicator/style/themes/dnb-progress-indicator-theme-ui.min.css +1 -1
  17. package/cjs/components/progress-indicator/style/themes/dnb-progress-indicator-theme-ui.scss +4 -86
  18. package/cjs/components/section/Section.js +1 -1
  19. package/cjs/components/section/Section.js.map +1 -1
  20. package/cjs/components/skeleton/style/dnb-skeleton.css +50 -0
  21. package/cjs/components/skeleton/style/dnb-skeleton.min.css +1 -1
  22. package/cjs/components/skeleton/style/dnb-skeleton.scss +66 -0
  23. package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.css +7 -0
  24. package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.min.css +0 -0
  25. package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.scss +7 -0
  26. package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-ui.css +5 -60
  27. package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-ui.min.css +0 -1
  28. package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-ui.scss +4 -86
  29. package/cjs/components/tooltip/style/dnb-tooltip.css +10 -0
  30. package/cjs/components/tooltip/style/dnb-tooltip.min.css +1 -1
  31. package/cjs/components/tooltip/style/dnb-tooltip.scss +14 -0
  32. package/cjs/components/tooltip/style/themes/dnb-tooltip-theme-sbanken.css +9 -0
  33. package/cjs/components/tooltip/style/themes/dnb-tooltip-theme-sbanken.min.css +1 -0
  34. package/cjs/components/tooltip/style/themes/dnb-tooltip-theme-sbanken.scss +10 -0
  35. package/cjs/components/tooltip/style/themes/dnb-tooltip-theme-ui.css +3 -11
  36. package/cjs/components/tooltip/style/themes/dnb-tooltip-theme-ui.min.css +1 -1
  37. package/cjs/components/tooltip/style/themes/dnb-tooltip-theme-ui.scss +3 -15
  38. package/cjs/elements/blockquote/style/blockquote-mixins.scss +22 -11
  39. package/cjs/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +20 -11
  40. package/cjs/elements/typography/style/themes/dnb-typography-theme-sbanken.scss +1 -0
  41. package/cjs/extensions/forms/DataContext/At.d.ts +1 -1
  42. package/cjs/extensions/forms/DataContext/At.js.map +1 -1
  43. package/cjs/extensions/forms/DataContext/Context.d.ts +1 -0
  44. package/cjs/extensions/forms/DataContext/Context.js +2 -1
  45. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  46. package/cjs/extensions/forms/DataContext/Provider.js +7 -3
  47. package/cjs/extensions/forms/DataContext/Provider.js.map +1 -1
  48. package/cjs/extensions/forms/DataContext/index.d.ts +0 -2
  49. package/cjs/extensions/forms/DataContext/index.js +0 -2
  50. package/cjs/extensions/forms/DataContext/index.js.map +1 -1
  51. package/cjs/extensions/forms/Field/ArraySelection.d.ts +2 -3
  52. package/cjs/extensions/forms/Field/ArraySelection.js +4 -4
  53. package/cjs/extensions/forms/Field/ArraySelection.js.map +1 -1
  54. package/cjs/extensions/forms/Field/CountryCode.d.ts +2 -3
  55. package/cjs/extensions/forms/Field/CountryCode.js +3 -4
  56. package/cjs/extensions/forms/Field/CountryCode.js.map +1 -1
  57. package/cjs/extensions/forms/Field/Currency.d.ts +2 -3
  58. package/cjs/extensions/forms/Field/Currency.js.map +1 -1
  59. package/cjs/extensions/forms/Field/Date.d.ts +2 -3
  60. package/cjs/extensions/forms/Field/Date.js +4 -4
  61. package/cjs/extensions/forms/Field/Date.js.map +1 -1
  62. package/cjs/extensions/forms/Field/Number.d.ts +2 -3
  63. package/cjs/extensions/forms/Field/Number.js +4 -4
  64. package/cjs/extensions/forms/Field/Number.js.map +1 -1
  65. package/cjs/extensions/forms/Field/Option.d.ts +2 -3
  66. package/cjs/extensions/forms/Field/Option.js.map +1 -1
  67. package/cjs/extensions/forms/Field/PhoneNumber.d.ts +2 -3
  68. package/cjs/extensions/forms/Field/PhoneNumber.js +4 -4
  69. package/cjs/extensions/forms/Field/PhoneNumber.js.map +1 -1
  70. package/cjs/extensions/forms/Field/PostalCodeAndCity.d.ts +2 -2
  71. package/cjs/extensions/forms/Field/PostalCodeAndCity.js +4 -4
  72. package/cjs/extensions/forms/Field/PostalCodeAndCity.js.map +1 -1
  73. package/cjs/extensions/forms/Field/Selection.d.ts +2 -3
  74. package/cjs/extensions/forms/Field/Selection.js +5 -6
  75. package/cjs/extensions/forms/Field/Selection.js.map +1 -1
  76. package/cjs/extensions/forms/Field/String.d.ts +2 -3
  77. package/cjs/extensions/forms/Field/String.js +5 -7
  78. package/cjs/extensions/forms/Field/String.js.map +1 -1
  79. package/cjs/extensions/forms/Field/Toggle.d.ts +2 -3
  80. package/cjs/extensions/forms/Field/Toggle.js +5 -5
  81. package/cjs/extensions/forms/Field/Toggle.js.map +1 -1
  82. package/cjs/extensions/forms/Field/index.d.ts +0 -4
  83. package/cjs/extensions/forms/Field/index.js +0 -4
  84. package/cjs/extensions/forms/Field/index.js.map +1 -1
  85. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -3
  86. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +76 -8
  87. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  88. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +8 -0
  89. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js +12 -0
  90. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -0
  91. package/cjs/extensions/forms/FieldBlock/index.d.ts +1 -0
  92. package/cjs/extensions/forms/FieldBlock/index.js +15 -2
  93. package/cjs/extensions/forms/FieldBlock/index.js.map +1 -1
  94. package/cjs/extensions/forms/Form/FormElement.d.ts +4 -0
  95. package/cjs/extensions/forms/Form/FormElement.js +39 -0
  96. package/cjs/extensions/forms/Form/FormElement.js.map +1 -0
  97. package/cjs/extensions/forms/Form/FormHandler.d.ts +6 -0
  98. package/cjs/extensions/forms/Form/FormHandler.js +41 -0
  99. package/cjs/extensions/forms/Form/FormHandler.js.map +1 -0
  100. package/cjs/extensions/forms/{DataContext → Form}/SubmitButton.d.ts +3 -4
  101. package/cjs/extensions/forms/Form/SubmitButton.js +36 -0
  102. package/cjs/extensions/forms/Form/SubmitButton.js.map +1 -0
  103. package/cjs/extensions/forms/Form/index.d.ts +9 -0
  104. package/cjs/extensions/forms/Form/index.js +18 -0
  105. package/cjs/extensions/forms/Form/index.js.map +1 -0
  106. package/cjs/extensions/forms/Iterate/Array.d.ts +17 -0
  107. package/cjs/extensions/forms/Iterate/Array.js +91 -0
  108. package/cjs/extensions/forms/Iterate/Array.js.map +1 -0
  109. package/cjs/extensions/forms/Iterate/ArrayPushButton.d.ts +10 -0
  110. package/cjs/extensions/forms/Iterate/ArrayPushButton.js +53 -0
  111. package/cjs/extensions/forms/Iterate/ArrayPushButton.js.map +1 -0
  112. package/cjs/extensions/forms/Iterate/ArrayRemoveElementButton.d.ts +8 -0
  113. package/cjs/extensions/forms/{DataContext/SubmitButton.js → Iterate/ArrayRemoveElementButton.js} +25 -15
  114. package/cjs/extensions/forms/Iterate/ArrayRemoveElementButton.js.map +1 -0
  115. package/cjs/extensions/forms/Iterate/IterateElementContext.d.ts +11 -0
  116. package/cjs/extensions/forms/Iterate/IterateElementContext.js +12 -0
  117. package/cjs/extensions/forms/Iterate/IterateElementContext.js.map +1 -0
  118. package/cjs/extensions/forms/Iterate/index.d.ts +11 -0
  119. package/cjs/extensions/forms/Iterate/index.js +25 -0
  120. package/cjs/extensions/forms/Iterate/index.js.map +1 -0
  121. package/cjs/extensions/forms/Layout/ButtonRow.d.ts +1 -1
  122. package/cjs/extensions/forms/Layout/ButtonRow.js +2 -2
  123. package/cjs/extensions/forms/Layout/ButtonRow.js.map +1 -1
  124. package/cjs/extensions/forms/Layout/Card.d.ts +1 -1
  125. package/cjs/extensions/forms/Layout/Card.js +4 -4
  126. package/cjs/extensions/forms/Layout/Card.js.map +1 -1
  127. package/cjs/extensions/forms/Layout/FlexContainer.d.ts +1 -1
  128. package/cjs/extensions/forms/Layout/FlexContainer.js +3 -3
  129. package/cjs/extensions/forms/Layout/FlexContainer.js.map +1 -1
  130. package/cjs/extensions/forms/Layout/FlexItem.d.ts +1 -1
  131. package/cjs/extensions/forms/Layout/FlexItem.js +2 -2
  132. package/cjs/extensions/forms/Layout/FlexItem.js.map +1 -1
  133. package/cjs/extensions/forms/Layout/MainHeading.d.ts +4 -2
  134. package/cjs/extensions/forms/Layout/MainHeading.js +11 -4
  135. package/cjs/extensions/forms/Layout/MainHeading.js.map +1 -1
  136. package/cjs/extensions/forms/Layout/Section.d.ts +1 -1
  137. package/cjs/extensions/forms/Layout/Section.js +2 -2
  138. package/cjs/extensions/forms/Layout/Section.js.map +1 -1
  139. package/cjs/extensions/forms/Layout/SubHeading.d.ts +4 -2
  140. package/cjs/extensions/forms/Layout/SubHeading.js +11 -4
  141. package/cjs/extensions/forms/Layout/SubHeading.js.map +1 -1
  142. package/cjs/extensions/forms/Layout/index.d.ts +0 -2
  143. package/cjs/extensions/forms/Layout/index.js +1 -3
  144. package/cjs/extensions/forms/Layout/index.js.map +1 -1
  145. package/cjs/extensions/forms/StepsLayout/Buttons.d.ts +1 -1
  146. package/cjs/extensions/forms/StepsLayout/Buttons.js +2 -2
  147. package/cjs/extensions/forms/StepsLayout/Buttons.js.map +1 -1
  148. package/cjs/extensions/forms/StepsLayout/NextButton.d.ts +1 -1
  149. package/cjs/extensions/forms/StepsLayout/NextButton.js.map +1 -1
  150. package/cjs/extensions/forms/StepsLayout/PreviousButton.d.ts +1 -1
  151. package/cjs/extensions/forms/StepsLayout/PreviousButton.js.map +1 -1
  152. package/cjs/extensions/forms/StepsLayout/Step.d.ts +1 -1
  153. package/cjs/extensions/forms/StepsLayout/Step.js +2 -2
  154. package/cjs/extensions/forms/StepsLayout/Step.js.map +1 -1
  155. package/cjs/extensions/forms/StepsLayout/StepsLayout.d.ts +1 -1
  156. package/cjs/extensions/forms/StepsLayout/StepsLayout.js +2 -2
  157. package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  158. package/cjs/extensions/forms/Value/Boolean.d.ts +2 -3
  159. package/cjs/extensions/forms/Value/Boolean.js +4 -4
  160. package/cjs/extensions/forms/Value/Boolean.js.map +1 -1
  161. package/cjs/extensions/forms/Value/Number.d.ts +2 -3
  162. package/cjs/extensions/forms/Value/Number.js +4 -3
  163. package/cjs/extensions/forms/Value/Number.js.map +1 -1
  164. package/cjs/extensions/forms/Value/String.d.ts +2 -3
  165. package/cjs/extensions/forms/Value/String.js +4 -4
  166. package/cjs/extensions/forms/Value/String.js.map +1 -1
  167. package/cjs/extensions/forms/Value/index.d.ts +0 -4
  168. package/cjs/extensions/forms/Value/index.js +0 -4
  169. package/cjs/extensions/forms/Value/index.js.map +1 -1
  170. package/cjs/extensions/forms/ValueBlock/ValueBlock.d.ts +2 -3
  171. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +2 -2
  172. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  173. package/cjs/extensions/forms/hooks/index.d.ts +1 -0
  174. package/cjs/extensions/forms/{Field/hooks → hooks}/index.js +3 -3
  175. package/cjs/extensions/forms/hooks/index.js.map +1 -0
  176. package/cjs/extensions/forms/hooks/useDataValue.d.ts +12 -0
  177. package/cjs/extensions/forms/{Field/hooks/useField.js → hooks/useDataValue.js} +60 -26
  178. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -0
  179. package/cjs/extensions/forms/index.d.ts +4 -4
  180. package/cjs/extensions/forms/index.js +20 -12
  181. package/cjs/extensions/forms/index.js.map +1 -1
  182. package/cjs/extensions/forms/types.d.ts +95 -2
  183. package/cjs/extensions/forms/types.js +71 -0
  184. package/cjs/extensions/forms/types.js.map +1 -1
  185. package/cjs/extensions/forms/utils/index.d.ts +0 -1
  186. package/cjs/extensions/forms/utils/index.js +0 -12
  187. package/cjs/extensions/forms/utils/index.js.map +1 -1
  188. package/cjs/extensions/lib.d.ts +0 -2
  189. package/cjs/extensions/payment-card/style/dnb-payment-card.css +7 -7
  190. package/cjs/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  191. package/cjs/extensions/payment-card/style/dnb-payment-card.scss +7 -7
  192. package/cjs/shared/Eufemia.d.ts +1 -1
  193. package/cjs/shared/Eufemia.js +2 -2
  194. package/cjs/shared/Eufemia.js.map +1 -1
  195. package/cjs/shared/useMedia.js +33 -23
  196. package/cjs/shared/useMedia.js.map +1 -1
  197. package/cjs/style/dnb-ui-components.css +119 -2
  198. package/cjs/style/dnb-ui-components.min.css +1 -1
  199. package/cjs/style/dnb-ui-elements.css +17 -11
  200. package/cjs/style/dnb-ui-elements.min.css +1 -1
  201. package/cjs/style/dnb-ui-extensions.css +7 -7
  202. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  203. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +19 -11
  204. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  205. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +131 -136
  206. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  207. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +7 -7
  208. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  209. package/cjs/style/themes/theme-sbanken/customisations.scss +4 -0
  210. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +40 -21
  211. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  212. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +155 -152
  213. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +11 -3
  214. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.scss +3 -3
  215. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +38 -21
  216. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  217. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +7 -7
  218. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  219. package/cjs/style/themes/theme-ui/ui-theme-basis.css +19 -11
  220. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  221. package/cjs/style/themes/theme-ui/ui-theme-basis.scss +4 -0
  222. package/cjs/style/themes/theme-ui/ui-theme-components.css +131 -136
  223. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  224. package/cjs/style/themes/theme-ui/ui-theme-elements.css +17 -11
  225. package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  226. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +7 -7
  227. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  228. package/cjs/style/themes/theme-ui/ui-theme-tags.css +17 -11
  229. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  230. package/components/breadcrumb/BreadcrumbItem.js +1 -1
  231. package/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  232. package/components/date-picker/DatePickerInput.js.map +1 -1
  233. package/components/input-masked/InputMaskedHooks.js +1 -1
  234. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  235. package/components/modal/ModalContent.js +3 -1
  236. package/components/modal/ModalContent.js.map +1 -1
  237. package/components/progress-indicator/style/dnb-progress-indicator.css +59 -2
  238. package/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  239. package/components/progress-indicator/style/dnb-progress-indicator.scss +70 -2
  240. package/components/progress-indicator/style/themes/dnb-progress-indicator-theme-sbanken.css +18 -0
  241. package/components/progress-indicator/style/themes/dnb-progress-indicator-theme-sbanken.min.css +9 -0
  242. package/components/progress-indicator/style/themes/dnb-progress-indicator-theme-sbanken.scss +19 -0
  243. package/components/progress-indicator/style/themes/dnb-progress-indicator-theme-ui.css +5 -64
  244. package/components/progress-indicator/style/themes/dnb-progress-indicator-theme-ui.min.css +1 -1
  245. package/components/progress-indicator/style/themes/dnb-progress-indicator-theme-ui.scss +4 -86
  246. package/components/section/Section.js +1 -1
  247. package/components/section/Section.js.map +1 -1
  248. package/components/skeleton/style/dnb-skeleton.css +50 -0
  249. package/components/skeleton/style/dnb-skeleton.min.css +1 -1
  250. package/components/skeleton/style/dnb-skeleton.scss +66 -0
  251. package/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.css +7 -0
  252. package/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.min.css +0 -0
  253. package/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.scss +7 -0
  254. package/components/skeleton/style/themes/dnb-skeleton-theme-ui.css +5 -60
  255. package/components/skeleton/style/themes/dnb-skeleton-theme-ui.min.css +0 -1
  256. package/components/skeleton/style/themes/dnb-skeleton-theme-ui.scss +4 -86
  257. package/components/tooltip/style/dnb-tooltip.css +10 -0
  258. package/components/tooltip/style/dnb-tooltip.min.css +1 -1
  259. package/components/tooltip/style/dnb-tooltip.scss +14 -0
  260. package/components/tooltip/style/themes/dnb-tooltip-theme-sbanken.css +9 -0
  261. package/components/tooltip/style/themes/dnb-tooltip-theme-sbanken.min.css +1 -0
  262. package/components/tooltip/style/themes/dnb-tooltip-theme-sbanken.scss +10 -0
  263. package/components/tooltip/style/themes/dnb-tooltip-theme-ui.css +3 -11
  264. package/components/tooltip/style/themes/dnb-tooltip-theme-ui.min.css +1 -1
  265. package/components/tooltip/style/themes/dnb-tooltip-theme-ui.scss +3 -15
  266. package/elements/blockquote/style/blockquote-mixins.scss +22 -11
  267. package/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +20 -11
  268. package/elements/typography/style/themes/dnb-typography-theme-sbanken.scss +1 -0
  269. package/es/components/breadcrumb/BreadcrumbItem.js +1 -1
  270. package/es/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  271. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  272. package/es/components/input-masked/InputMaskedHooks.js +1 -1
  273. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  274. package/es/components/modal/ModalContent.js +3 -1
  275. package/es/components/modal/ModalContent.js.map +1 -1
  276. package/es/components/progress-indicator/style/dnb-progress-indicator.css +59 -2
  277. package/es/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  278. package/es/components/progress-indicator/style/dnb-progress-indicator.scss +70 -2
  279. package/es/components/progress-indicator/style/themes/dnb-progress-indicator-theme-sbanken.css +18 -0
  280. package/es/components/progress-indicator/style/themes/dnb-progress-indicator-theme-sbanken.min.css +9 -0
  281. package/es/components/progress-indicator/style/themes/dnb-progress-indicator-theme-sbanken.scss +19 -0
  282. package/es/components/progress-indicator/style/themes/dnb-progress-indicator-theme-ui.css +5 -64
  283. package/es/components/progress-indicator/style/themes/dnb-progress-indicator-theme-ui.min.css +1 -1
  284. package/es/components/progress-indicator/style/themes/dnb-progress-indicator-theme-ui.scss +4 -86
  285. package/es/components/section/Section.js +1 -1
  286. package/es/components/section/Section.js.map +1 -1
  287. package/es/components/skeleton/style/dnb-skeleton.css +50 -0
  288. package/es/components/skeleton/style/dnb-skeleton.min.css +1 -1
  289. package/es/components/skeleton/style/dnb-skeleton.scss +66 -0
  290. package/es/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.css +7 -0
  291. package/es/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.min.css +0 -0
  292. package/es/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.scss +7 -0
  293. package/es/components/skeleton/style/themes/dnb-skeleton-theme-ui.css +5 -60
  294. package/es/components/skeleton/style/themes/dnb-skeleton-theme-ui.min.css +0 -1
  295. package/es/components/skeleton/style/themes/dnb-skeleton-theme-ui.scss +4 -86
  296. package/es/components/tooltip/style/dnb-tooltip.css +10 -0
  297. package/es/components/tooltip/style/dnb-tooltip.min.css +1 -1
  298. package/es/components/tooltip/style/dnb-tooltip.scss +14 -0
  299. package/es/components/tooltip/style/themes/dnb-tooltip-theme-sbanken.css +9 -0
  300. package/es/components/tooltip/style/themes/dnb-tooltip-theme-sbanken.min.css +1 -0
  301. package/es/components/tooltip/style/themes/dnb-tooltip-theme-sbanken.scss +10 -0
  302. package/es/components/tooltip/style/themes/dnb-tooltip-theme-ui.css +3 -11
  303. package/es/components/tooltip/style/themes/dnb-tooltip-theme-ui.min.css +1 -1
  304. package/es/components/tooltip/style/themes/dnb-tooltip-theme-ui.scss +3 -15
  305. package/es/elements/blockquote/style/blockquote-mixins.scss +22 -11
  306. package/es/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +20 -11
  307. package/es/elements/typography/style/themes/dnb-typography-theme-sbanken.scss +1 -0
  308. package/es/extensions/forms/DataContext/At.d.ts +1 -1
  309. package/es/extensions/forms/DataContext/At.js.map +1 -1
  310. package/es/extensions/forms/DataContext/Context.d.ts +1 -0
  311. package/es/extensions/forms/DataContext/Context.js +2 -1
  312. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  313. package/es/extensions/forms/DataContext/Provider.js +7 -3
  314. package/es/extensions/forms/DataContext/Provider.js.map +1 -1
  315. package/es/extensions/forms/DataContext/index.d.ts +0 -2
  316. package/es/extensions/forms/DataContext/index.js +0 -2
  317. package/es/extensions/forms/DataContext/index.js.map +1 -1
  318. package/es/extensions/forms/Field/ArraySelection.d.ts +2 -3
  319. package/es/extensions/forms/Field/ArraySelection.js +4 -4
  320. package/es/extensions/forms/Field/ArraySelection.js.map +1 -1
  321. package/es/extensions/forms/Field/CountryCode.d.ts +2 -3
  322. package/es/extensions/forms/Field/CountryCode.js +4 -5
  323. package/es/extensions/forms/Field/CountryCode.js.map +1 -1
  324. package/es/extensions/forms/Field/Currency.d.ts +2 -3
  325. package/es/extensions/forms/Field/Currency.js.map +1 -1
  326. package/es/extensions/forms/Field/Date.d.ts +2 -3
  327. package/es/extensions/forms/Field/Date.js +4 -4
  328. package/es/extensions/forms/Field/Date.js.map +1 -1
  329. package/es/extensions/forms/Field/Number.d.ts +2 -3
  330. package/es/extensions/forms/Field/Number.js +4 -4
  331. package/es/extensions/forms/Field/Number.js.map +1 -1
  332. package/es/extensions/forms/Field/Option.d.ts +2 -3
  333. package/es/extensions/forms/Field/Option.js.map +1 -1
  334. package/es/extensions/forms/Field/PhoneNumber.d.ts +2 -3
  335. package/es/extensions/forms/Field/PhoneNumber.js +4 -4
  336. package/es/extensions/forms/Field/PhoneNumber.js.map +1 -1
  337. package/es/extensions/forms/Field/PostalCodeAndCity.d.ts +2 -2
  338. package/es/extensions/forms/Field/PostalCodeAndCity.js +4 -4
  339. package/es/extensions/forms/Field/PostalCodeAndCity.js.map +1 -1
  340. package/es/extensions/forms/Field/Selection.d.ts +2 -3
  341. package/es/extensions/forms/Field/Selection.js +6 -7
  342. package/es/extensions/forms/Field/Selection.js.map +1 -1
  343. package/es/extensions/forms/Field/String.d.ts +2 -3
  344. package/es/extensions/forms/Field/String.js +5 -7
  345. package/es/extensions/forms/Field/String.js.map +1 -1
  346. package/es/extensions/forms/Field/Toggle.d.ts +2 -3
  347. package/es/extensions/forms/Field/Toggle.js +5 -5
  348. package/es/extensions/forms/Field/Toggle.js.map +1 -1
  349. package/es/extensions/forms/Field/index.d.ts +0 -4
  350. package/es/extensions/forms/Field/index.js +0 -4
  351. package/es/extensions/forms/Field/index.js.map +1 -1
  352. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -3
  353. package/es/extensions/forms/FieldBlock/FieldBlock.js +68 -9
  354. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  355. package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +8 -0
  356. package/es/extensions/forms/FieldBlock/FieldBlockContext.js +4 -0
  357. package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -0
  358. package/es/extensions/forms/FieldBlock/index.d.ts +1 -0
  359. package/es/extensions/forms/FieldBlock/index.js +3 -1
  360. package/es/extensions/forms/FieldBlock/index.js.map +1 -1
  361. package/es/extensions/forms/Form/FormElement.d.ts +4 -0
  362. package/es/extensions/forms/Form/FormElement.js +31 -0
  363. package/es/extensions/forms/Form/FormElement.js.map +1 -0
  364. package/es/extensions/forms/Form/FormHandler.d.ts +6 -0
  365. package/es/extensions/forms/Form/FormHandler.js +33 -0
  366. package/es/extensions/forms/Form/FormHandler.js.map +1 -0
  367. package/es/extensions/forms/{DataContext → Form}/SubmitButton.d.ts +3 -4
  368. package/es/extensions/forms/Form/SubmitButton.js +25 -0
  369. package/es/extensions/forms/Form/SubmitButton.js.map +1 -0
  370. package/es/extensions/forms/Form/index.d.ts +9 -0
  371. package/es/extensions/forms/Form/index.js +10 -0
  372. package/es/extensions/forms/Form/index.js.map +1 -0
  373. package/es/extensions/forms/Iterate/Array.d.ts +17 -0
  374. package/es/extensions/forms/Iterate/Array.js +80 -0
  375. package/es/extensions/forms/Iterate/Array.js.map +1 -0
  376. package/es/extensions/forms/Iterate/ArrayPushButton.d.ts +10 -0
  377. package/es/extensions/forms/Iterate/ArrayPushButton.js +42 -0
  378. package/es/extensions/forms/Iterate/ArrayPushButton.js.map +1 -0
  379. package/es/extensions/forms/Iterate/ArrayRemoveElementButton.d.ts +8 -0
  380. package/es/extensions/forms/Iterate/ArrayRemoveElementButton.js +30 -0
  381. package/es/extensions/forms/Iterate/ArrayRemoveElementButton.js.map +1 -0
  382. package/es/extensions/forms/Iterate/IterateElementContext.d.ts +11 -0
  383. package/es/extensions/forms/Iterate/IterateElementContext.js +4 -0
  384. package/es/extensions/forms/Iterate/IterateElementContext.js.map +1 -0
  385. package/es/extensions/forms/Iterate/index.d.ts +11 -0
  386. package/es/extensions/forms/Iterate/index.js +12 -0
  387. package/es/extensions/forms/Iterate/index.js.map +1 -0
  388. package/es/extensions/forms/Layout/ButtonRow.d.ts +1 -1
  389. package/es/extensions/forms/Layout/ButtonRow.js +2 -2
  390. package/es/extensions/forms/Layout/ButtonRow.js.map +1 -1
  391. package/es/extensions/forms/Layout/Card.d.ts +1 -1
  392. package/es/extensions/forms/Layout/Card.js +4 -4
  393. package/es/extensions/forms/Layout/Card.js.map +1 -1
  394. package/es/extensions/forms/Layout/FlexContainer.d.ts +1 -1
  395. package/es/extensions/forms/Layout/FlexContainer.js +3 -3
  396. package/es/extensions/forms/Layout/FlexContainer.js.map +1 -1
  397. package/es/extensions/forms/Layout/FlexItem.d.ts +1 -1
  398. package/es/extensions/forms/Layout/FlexItem.js +2 -2
  399. package/es/extensions/forms/Layout/FlexItem.js.map +1 -1
  400. package/es/extensions/forms/Layout/MainHeading.d.ts +4 -2
  401. package/es/extensions/forms/Layout/MainHeading.js +10 -4
  402. package/es/extensions/forms/Layout/MainHeading.js.map +1 -1
  403. package/es/extensions/forms/Layout/Section.d.ts +1 -1
  404. package/es/extensions/forms/Layout/Section.js +2 -2
  405. package/es/extensions/forms/Layout/Section.js.map +1 -1
  406. package/es/extensions/forms/Layout/SubHeading.d.ts +4 -2
  407. package/es/extensions/forms/Layout/SubHeading.js +10 -4
  408. package/es/extensions/forms/Layout/SubHeading.js.map +1 -1
  409. package/es/extensions/forms/Layout/index.d.ts +0 -2
  410. package/es/extensions/forms/Layout/index.js +1 -3
  411. package/es/extensions/forms/Layout/index.js.map +1 -1
  412. package/es/extensions/forms/StepsLayout/Buttons.d.ts +1 -1
  413. package/es/extensions/forms/StepsLayout/Buttons.js +2 -2
  414. package/es/extensions/forms/StepsLayout/Buttons.js.map +1 -1
  415. package/es/extensions/forms/StepsLayout/NextButton.d.ts +1 -1
  416. package/es/extensions/forms/StepsLayout/NextButton.js.map +1 -1
  417. package/es/extensions/forms/StepsLayout/PreviousButton.d.ts +1 -1
  418. package/es/extensions/forms/StepsLayout/PreviousButton.js.map +1 -1
  419. package/es/extensions/forms/StepsLayout/Step.d.ts +1 -1
  420. package/es/extensions/forms/StepsLayout/Step.js +2 -2
  421. package/es/extensions/forms/StepsLayout/Step.js.map +1 -1
  422. package/es/extensions/forms/StepsLayout/StepsLayout.d.ts +1 -1
  423. package/es/extensions/forms/StepsLayout/StepsLayout.js +2 -2
  424. package/es/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  425. package/es/extensions/forms/Value/Boolean.d.ts +2 -3
  426. package/es/extensions/forms/Value/Boolean.js +4 -4
  427. package/es/extensions/forms/Value/Boolean.js.map +1 -1
  428. package/es/extensions/forms/Value/Number.d.ts +2 -3
  429. package/es/extensions/forms/Value/Number.js +5 -4
  430. package/es/extensions/forms/Value/Number.js.map +1 -1
  431. package/es/extensions/forms/Value/String.d.ts +2 -3
  432. package/es/extensions/forms/Value/String.js +4 -4
  433. package/es/extensions/forms/Value/String.js.map +1 -1
  434. package/es/extensions/forms/Value/index.d.ts +0 -4
  435. package/es/extensions/forms/Value/index.js +0 -4
  436. package/es/extensions/forms/Value/index.js.map +1 -1
  437. package/es/extensions/forms/ValueBlock/ValueBlock.d.ts +2 -3
  438. package/es/extensions/forms/ValueBlock/ValueBlock.js +2 -2
  439. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  440. package/es/extensions/forms/hooks/index.d.ts +1 -0
  441. package/es/extensions/forms/hooks/index.js +1 -0
  442. package/es/extensions/forms/hooks/index.js.map +1 -0
  443. package/es/extensions/forms/hooks/useDataValue.d.ts +12 -0
  444. package/{extensions/forms/Field/hooks/useField.js → es/extensions/forms/hooks/useDataValue.js} +59 -25
  445. package/es/extensions/forms/hooks/useDataValue.js.map +1 -0
  446. package/es/extensions/forms/index.d.ts +4 -4
  447. package/es/extensions/forms/index.js +3 -2
  448. package/es/extensions/forms/index.js.map +1 -1
  449. package/es/extensions/forms/types.d.ts +95 -2
  450. package/es/extensions/forms/types.js +42 -0
  451. package/es/extensions/forms/types.js.map +1 -1
  452. package/es/extensions/forms/utils/index.d.ts +0 -1
  453. package/es/extensions/forms/utils/index.js +0 -1
  454. package/es/extensions/forms/utils/index.js.map +1 -1
  455. package/es/extensions/lib.d.ts +0 -2
  456. package/es/extensions/payment-card/style/dnb-payment-card.css +7 -7
  457. package/es/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  458. package/es/extensions/payment-card/style/dnb-payment-card.scss +7 -7
  459. package/es/shared/Eufemia.d.ts +1 -1
  460. package/es/shared/Eufemia.js +2 -2
  461. package/es/shared/Eufemia.js.map +1 -1
  462. package/es/shared/useMedia.js +30 -21
  463. package/es/shared/useMedia.js.map +1 -1
  464. package/es/style/dnb-ui-components.css +119 -2
  465. package/es/style/dnb-ui-components.min.css +1 -1
  466. package/es/style/dnb-ui-elements.css +17 -11
  467. package/es/style/dnb-ui-elements.min.css +1 -1
  468. package/es/style/dnb-ui-extensions.css +7 -7
  469. package/es/style/dnb-ui-extensions.min.css +1 -1
  470. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +19 -11
  471. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  472. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +131 -136
  473. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  474. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +7 -7
  475. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  476. package/es/style/themes/theme-sbanken/customisations.scss +4 -0
  477. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +40 -21
  478. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  479. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +155 -152
  480. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +11 -3
  481. package/es/style/themes/theme-sbanken/sbanken-theme-components.scss +3 -3
  482. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +38 -21
  483. package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  484. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +7 -7
  485. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  486. package/es/style/themes/theme-ui/ui-theme-basis.css +19 -11
  487. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  488. package/es/style/themes/theme-ui/ui-theme-basis.scss +4 -0
  489. package/es/style/themes/theme-ui/ui-theme-components.css +131 -136
  490. package/es/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  491. package/es/style/themes/theme-ui/ui-theme-elements.css +17 -11
  492. package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  493. package/es/style/themes/theme-ui/ui-theme-extensions.css +7 -7
  494. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  495. package/es/style/themes/theme-ui/ui-theme-tags.css +17 -11
  496. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  497. package/esm/dnb-ui-basis.min.mjs +1 -1
  498. package/esm/dnb-ui-components.min.mjs +1 -1
  499. package/esm/dnb-ui-elements.min.mjs +1 -1
  500. package/esm/dnb-ui-extensions.min.mjs +3 -3
  501. package/esm/dnb-ui-lib.min.mjs +1 -1
  502. package/extensions/forms/DataContext/At.d.ts +1 -1
  503. package/extensions/forms/DataContext/At.js.map +1 -1
  504. package/extensions/forms/DataContext/Context.d.ts +1 -0
  505. package/extensions/forms/DataContext/Context.js +2 -1
  506. package/extensions/forms/DataContext/Context.js.map +1 -1
  507. package/extensions/forms/DataContext/Provider.js +7 -3
  508. package/extensions/forms/DataContext/Provider.js.map +1 -1
  509. package/extensions/forms/DataContext/index.d.ts +0 -2
  510. package/extensions/forms/DataContext/index.js +0 -2
  511. package/extensions/forms/DataContext/index.js.map +1 -1
  512. package/extensions/forms/Field/ArraySelection.d.ts +2 -3
  513. package/extensions/forms/Field/ArraySelection.js +4 -4
  514. package/extensions/forms/Field/ArraySelection.js.map +1 -1
  515. package/extensions/forms/Field/CountryCode.d.ts +2 -3
  516. package/extensions/forms/Field/CountryCode.js +4 -5
  517. package/extensions/forms/Field/CountryCode.js.map +1 -1
  518. package/extensions/forms/Field/Currency.d.ts +2 -3
  519. package/extensions/forms/Field/Currency.js.map +1 -1
  520. package/extensions/forms/Field/Date.d.ts +2 -3
  521. package/extensions/forms/Field/Date.js +4 -4
  522. package/extensions/forms/Field/Date.js.map +1 -1
  523. package/extensions/forms/Field/Number.d.ts +2 -3
  524. package/extensions/forms/Field/Number.js +4 -4
  525. package/extensions/forms/Field/Number.js.map +1 -1
  526. package/extensions/forms/Field/Option.d.ts +2 -3
  527. package/extensions/forms/Field/Option.js.map +1 -1
  528. package/extensions/forms/Field/PhoneNumber.d.ts +2 -3
  529. package/extensions/forms/Field/PhoneNumber.js +4 -4
  530. package/extensions/forms/Field/PhoneNumber.js.map +1 -1
  531. package/extensions/forms/Field/PostalCodeAndCity.d.ts +2 -2
  532. package/extensions/forms/Field/PostalCodeAndCity.js +4 -4
  533. package/extensions/forms/Field/PostalCodeAndCity.js.map +1 -1
  534. package/extensions/forms/Field/Selection.d.ts +2 -3
  535. package/extensions/forms/Field/Selection.js +6 -7
  536. package/extensions/forms/Field/Selection.js.map +1 -1
  537. package/extensions/forms/Field/String.d.ts +2 -3
  538. package/extensions/forms/Field/String.js +5 -7
  539. package/extensions/forms/Field/String.js.map +1 -1
  540. package/extensions/forms/Field/Toggle.d.ts +2 -3
  541. package/extensions/forms/Field/Toggle.js +5 -5
  542. package/extensions/forms/Field/Toggle.js.map +1 -1
  543. package/extensions/forms/Field/index.d.ts +0 -4
  544. package/extensions/forms/Field/index.js +0 -4
  545. package/extensions/forms/Field/index.js.map +1 -1
  546. package/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -3
  547. package/extensions/forms/FieldBlock/FieldBlock.js +74 -9
  548. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  549. package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +8 -0
  550. package/extensions/forms/FieldBlock/FieldBlockContext.js +4 -0
  551. package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -0
  552. package/extensions/forms/FieldBlock/index.d.ts +1 -0
  553. package/extensions/forms/FieldBlock/index.js +3 -1
  554. package/extensions/forms/FieldBlock/index.js.map +1 -1
  555. package/extensions/forms/Form/FormElement.d.ts +4 -0
  556. package/extensions/forms/Form/FormElement.js +31 -0
  557. package/extensions/forms/Form/FormElement.js.map +1 -0
  558. package/extensions/forms/Form/FormHandler.d.ts +6 -0
  559. package/extensions/forms/Form/FormHandler.js +33 -0
  560. package/extensions/forms/Form/FormHandler.js.map +1 -0
  561. package/extensions/forms/{DataContext → Form}/SubmitButton.d.ts +3 -4
  562. package/extensions/forms/Form/SubmitButton.js +25 -0
  563. package/extensions/forms/Form/SubmitButton.js.map +1 -0
  564. package/extensions/forms/Form/index.d.ts +9 -0
  565. package/extensions/forms/Form/index.js +10 -0
  566. package/extensions/forms/Form/index.js.map +1 -0
  567. package/extensions/forms/Iterate/Array.d.ts +17 -0
  568. package/extensions/forms/Iterate/Array.js +81 -0
  569. package/extensions/forms/Iterate/Array.js.map +1 -0
  570. package/extensions/forms/Iterate/ArrayPushButton.d.ts +10 -0
  571. package/extensions/forms/Iterate/ArrayPushButton.js +42 -0
  572. package/extensions/forms/Iterate/ArrayPushButton.js.map +1 -0
  573. package/extensions/forms/Iterate/ArrayRemoveElementButton.d.ts +8 -0
  574. package/extensions/forms/Iterate/ArrayRemoveElementButton.js +30 -0
  575. package/extensions/forms/Iterate/ArrayRemoveElementButton.js.map +1 -0
  576. package/extensions/forms/Iterate/IterateElementContext.d.ts +11 -0
  577. package/extensions/forms/Iterate/IterateElementContext.js +4 -0
  578. package/extensions/forms/Iterate/IterateElementContext.js.map +1 -0
  579. package/extensions/forms/Iterate/index.d.ts +11 -0
  580. package/extensions/forms/Iterate/index.js +12 -0
  581. package/extensions/forms/Iterate/index.js.map +1 -0
  582. package/extensions/forms/Layout/ButtonRow.d.ts +1 -1
  583. package/extensions/forms/Layout/ButtonRow.js +2 -2
  584. package/extensions/forms/Layout/ButtonRow.js.map +1 -1
  585. package/extensions/forms/Layout/Card.d.ts +1 -1
  586. package/extensions/forms/Layout/Card.js +4 -4
  587. package/extensions/forms/Layout/Card.js.map +1 -1
  588. package/extensions/forms/Layout/FlexContainer.d.ts +1 -1
  589. package/extensions/forms/Layout/FlexContainer.js +3 -3
  590. package/extensions/forms/Layout/FlexContainer.js.map +1 -1
  591. package/extensions/forms/Layout/FlexItem.d.ts +1 -1
  592. package/extensions/forms/Layout/FlexItem.js +2 -2
  593. package/extensions/forms/Layout/FlexItem.js.map +1 -1
  594. package/extensions/forms/Layout/MainHeading.d.ts +4 -2
  595. package/extensions/forms/Layout/MainHeading.js +10 -4
  596. package/extensions/forms/Layout/MainHeading.js.map +1 -1
  597. package/extensions/forms/Layout/Section.d.ts +1 -1
  598. package/extensions/forms/Layout/Section.js +2 -2
  599. package/extensions/forms/Layout/Section.js.map +1 -1
  600. package/extensions/forms/Layout/SubHeading.d.ts +4 -2
  601. package/extensions/forms/Layout/SubHeading.js +10 -4
  602. package/extensions/forms/Layout/SubHeading.js.map +1 -1
  603. package/extensions/forms/Layout/index.d.ts +0 -2
  604. package/extensions/forms/Layout/index.js +1 -3
  605. package/extensions/forms/Layout/index.js.map +1 -1
  606. package/extensions/forms/StepsLayout/Buttons.d.ts +1 -1
  607. package/extensions/forms/StepsLayout/Buttons.js +2 -2
  608. package/extensions/forms/StepsLayout/Buttons.js.map +1 -1
  609. package/extensions/forms/StepsLayout/NextButton.d.ts +1 -1
  610. package/extensions/forms/StepsLayout/NextButton.js.map +1 -1
  611. package/extensions/forms/StepsLayout/PreviousButton.d.ts +1 -1
  612. package/extensions/forms/StepsLayout/PreviousButton.js.map +1 -1
  613. package/extensions/forms/StepsLayout/Step.d.ts +1 -1
  614. package/extensions/forms/StepsLayout/Step.js +2 -2
  615. package/extensions/forms/StepsLayout/Step.js.map +1 -1
  616. package/extensions/forms/StepsLayout/StepsLayout.d.ts +1 -1
  617. package/extensions/forms/StepsLayout/StepsLayout.js +2 -2
  618. package/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  619. package/extensions/forms/Value/Boolean.d.ts +2 -3
  620. package/extensions/forms/Value/Boolean.js +4 -4
  621. package/extensions/forms/Value/Boolean.js.map +1 -1
  622. package/extensions/forms/Value/Number.d.ts +2 -3
  623. package/extensions/forms/Value/Number.js +5 -4
  624. package/extensions/forms/Value/Number.js.map +1 -1
  625. package/extensions/forms/Value/String.d.ts +2 -3
  626. package/extensions/forms/Value/String.js +4 -4
  627. package/extensions/forms/Value/String.js.map +1 -1
  628. package/extensions/forms/Value/index.d.ts +0 -4
  629. package/extensions/forms/Value/index.js +0 -4
  630. package/extensions/forms/Value/index.js.map +1 -1
  631. package/extensions/forms/ValueBlock/ValueBlock.d.ts +2 -3
  632. package/extensions/forms/ValueBlock/ValueBlock.js +2 -2
  633. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  634. package/extensions/forms/hooks/index.d.ts +1 -0
  635. package/extensions/forms/hooks/index.js +1 -0
  636. package/extensions/forms/hooks/index.js.map +1 -0
  637. package/extensions/forms/hooks/useDataValue.d.ts +12 -0
  638. package/{es/extensions/forms/Field/hooks/useField.js → extensions/forms/hooks/useDataValue.js} +59 -25
  639. package/extensions/forms/hooks/useDataValue.js.map +1 -0
  640. package/extensions/forms/index.d.ts +4 -4
  641. package/extensions/forms/index.js +3 -2
  642. package/extensions/forms/index.js.map +1 -1
  643. package/extensions/forms/types.d.ts +95 -2
  644. package/extensions/forms/types.js +60 -0
  645. package/extensions/forms/types.js.map +1 -1
  646. package/extensions/forms/utils/index.d.ts +0 -1
  647. package/extensions/forms/utils/index.js +0 -1
  648. package/extensions/forms/utils/index.js.map +1 -1
  649. package/extensions/lib.d.ts +0 -2
  650. package/extensions/payment-card/style/dnb-payment-card.css +7 -7
  651. package/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  652. package/extensions/payment-card/style/dnb-payment-card.scss +7 -7
  653. package/package.json +2 -1
  654. package/shared/Eufemia.d.ts +1 -1
  655. package/shared/Eufemia.js +2 -2
  656. package/shared/Eufemia.js.map +1 -1
  657. package/shared/useMedia.js +33 -23
  658. package/shared/useMedia.js.map +1 -1
  659. package/style/dnb-ui-components.css +119 -2
  660. package/style/dnb-ui-components.min.css +1 -1
  661. package/style/dnb-ui-elements.css +17 -11
  662. package/style/dnb-ui-elements.min.css +1 -1
  663. package/style/dnb-ui-extensions.css +7 -7
  664. package/style/dnb-ui-extensions.min.css +1 -1
  665. package/style/themes/theme-eiendom/eiendom-theme-basis.css +19 -11
  666. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  667. package/style/themes/theme-eiendom/eiendom-theme-components.css +131 -136
  668. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  669. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +7 -7
  670. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  671. package/style/themes/theme-sbanken/customisations.scss +4 -0
  672. package/style/themes/theme-sbanken/sbanken-theme-basis.css +40 -21
  673. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  674. package/style/themes/theme-sbanken/sbanken-theme-components.css +155 -152
  675. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +11 -3
  676. package/style/themes/theme-sbanken/sbanken-theme-components.scss +3 -3
  677. package/style/themes/theme-sbanken/sbanken-theme-elements.css +38 -21
  678. package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  679. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +7 -7
  680. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  681. package/style/themes/theme-ui/ui-theme-basis.css +19 -11
  682. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  683. package/style/themes/theme-ui/ui-theme-basis.scss +4 -0
  684. package/style/themes/theme-ui/ui-theme-components.css +131 -136
  685. package/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  686. package/style/themes/theme-ui/ui-theme-elements.css +17 -11
  687. package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  688. package/style/themes/theme-ui/ui-theme-extensions.css +7 -7
  689. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  690. package/style/themes/theme-ui/ui-theme-tags.css +17 -11
  691. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  692. package/umd/dnb-ui-basis.min.js +1 -1
  693. package/umd/dnb-ui-components.min.js +1 -1
  694. package/umd/dnb-ui-elements.min.js +1 -1
  695. package/umd/dnb-ui-extensions.min.js +3 -3
  696. package/umd/dnb-ui-lib.min.js +1 -1
  697. package/cjs/extensions/forms/DataContext/SubmitButton.js.map +0 -1
  698. package/cjs/extensions/forms/Field/FirstName.d.ts +0 -7
  699. package/cjs/extensions/forms/Field/FirstName.js +0 -31
  700. package/cjs/extensions/forms/Field/FirstName.js.map +0 -1
  701. package/cjs/extensions/forms/Field/LastName.d.ts +0 -7
  702. package/cjs/extensions/forms/Field/LastName.js +0 -31
  703. package/cjs/extensions/forms/Field/LastName.js.map +0 -1
  704. package/cjs/extensions/forms/Field/hooks/index.d.ts +0 -1
  705. package/cjs/extensions/forms/Field/hooks/index.js.map +0 -1
  706. package/cjs/extensions/forms/Field/hooks/useField.d.ts +0 -9
  707. package/cjs/extensions/forms/Field/hooks/useField.js.map +0 -1
  708. package/cjs/extensions/forms/FieldGroup/FieldGroup.d.ts +0 -17
  709. package/cjs/extensions/forms/FieldGroup/FieldGroup.js +0 -95
  710. package/cjs/extensions/forms/FieldGroup/FieldGroup.js.map +0 -1
  711. package/cjs/extensions/forms/FieldGroup/index.d.ts +0 -2
  712. package/cjs/extensions/forms/FieldGroup/index.js +0 -27
  713. package/cjs/extensions/forms/FieldGroup/index.js.map +0 -1
  714. package/cjs/extensions/forms/Layout/InfoCardSection.d.ts +0 -8
  715. package/cjs/extensions/forms/Layout/InfoCardSection.js +0 -25
  716. package/cjs/extensions/forms/Layout/InfoCardSection.js.map +0 -1
  717. package/cjs/extensions/forms/Value/FirstName.d.ts +0 -7
  718. package/cjs/extensions/forms/Value/FirstName.js +0 -28
  719. package/cjs/extensions/forms/Value/FirstName.js.map +0 -1
  720. package/cjs/extensions/forms/Value/LastName.d.ts +0 -7
  721. package/cjs/extensions/forms/Value/LastName.js +0 -28
  722. package/cjs/extensions/forms/Value/LastName.js.map +0 -1
  723. package/cjs/extensions/forms/Value/hooks/index.d.ts +0 -1
  724. package/cjs/extensions/forms/Value/hooks/index.js +0 -14
  725. package/cjs/extensions/forms/Value/hooks/index.js.map +0 -1
  726. package/cjs/extensions/forms/Value/hooks/useValue.d.ts +0 -2
  727. package/cjs/extensions/forms/Value/hooks/useValue.js +0 -31
  728. package/cjs/extensions/forms/Value/hooks/useValue.js.map +0 -1
  729. package/cjs/extensions/forms/component-types.d.ts +0 -4
  730. package/cjs/extensions/forms/component-types.js +0 -1
  731. package/cjs/extensions/forms/component-types.js.map +0 -1
  732. package/cjs/extensions/forms/field-types.d.ts +0 -58
  733. package/cjs/extensions/forms/field-types.js +0 -1
  734. package/cjs/extensions/forms/field-types.js.map +0 -1
  735. package/cjs/extensions/forms/utils/components.d.ts +0 -3
  736. package/cjs/extensions/forms/utils/components.js +0 -32
  737. package/cjs/extensions/forms/utils/components.js.map +0 -1
  738. package/cjs/extensions/forms/value-types.d.ts +0 -15
  739. package/cjs/extensions/forms/value-types.js +0 -1
  740. package/cjs/extensions/forms/value-types.js.map +0 -1
  741. package/es/extensions/forms/DataContext/SubmitButton.js +0 -20
  742. package/es/extensions/forms/DataContext/SubmitButton.js.map +0 -1
  743. package/es/extensions/forms/Field/FirstName.d.ts +0 -7
  744. package/es/extensions/forms/Field/FirstName.js +0 -19
  745. package/es/extensions/forms/Field/FirstName.js.map +0 -1
  746. package/es/extensions/forms/Field/LastName.d.ts +0 -7
  747. package/es/extensions/forms/Field/LastName.js +0 -19
  748. package/es/extensions/forms/Field/LastName.js.map +0 -1
  749. package/es/extensions/forms/Field/hooks/index.d.ts +0 -1
  750. package/es/extensions/forms/Field/hooks/index.js +0 -1
  751. package/es/extensions/forms/Field/hooks/index.js.map +0 -1
  752. package/es/extensions/forms/Field/hooks/useField.d.ts +0 -9
  753. package/es/extensions/forms/Field/hooks/useField.js.map +0 -1
  754. package/es/extensions/forms/FieldGroup/FieldGroup.d.ts +0 -17
  755. package/es/extensions/forms/FieldGroup/FieldGroup.js +0 -77
  756. package/es/extensions/forms/FieldGroup/FieldGroup.js.map +0 -1
  757. package/es/extensions/forms/FieldGroup/index.d.ts +0 -2
  758. package/es/extensions/forms/FieldGroup/index.js +0 -3
  759. package/es/extensions/forms/FieldGroup/index.js.map +0 -1
  760. package/es/extensions/forms/Layout/InfoCardSection.d.ts +0 -8
  761. package/es/extensions/forms/Layout/InfoCardSection.js +0 -17
  762. package/es/extensions/forms/Layout/InfoCardSection.js.map +0 -1
  763. package/es/extensions/forms/Value/FirstName.d.ts +0 -7
  764. package/es/extensions/forms/Value/FirstName.js +0 -16
  765. package/es/extensions/forms/Value/FirstName.js.map +0 -1
  766. package/es/extensions/forms/Value/LastName.d.ts +0 -7
  767. package/es/extensions/forms/Value/LastName.js +0 -16
  768. package/es/extensions/forms/Value/LastName.js.map +0 -1
  769. package/es/extensions/forms/Value/hooks/index.d.ts +0 -1
  770. package/es/extensions/forms/Value/hooks/index.js +0 -1
  771. package/es/extensions/forms/Value/hooks/index.js.map +0 -1
  772. package/es/extensions/forms/Value/hooks/useValue.d.ts +0 -2
  773. package/es/extensions/forms/Value/hooks/useValue.js +0 -22
  774. package/es/extensions/forms/Value/hooks/useValue.js.map +0 -1
  775. package/es/extensions/forms/component-types.d.ts +0 -4
  776. package/es/extensions/forms/component-types.js +0 -1
  777. package/es/extensions/forms/component-types.js.map +0 -1
  778. package/es/extensions/forms/field-types.d.ts +0 -58
  779. package/es/extensions/forms/field-types.js +0 -1
  780. package/es/extensions/forms/field-types.js.map +0 -1
  781. package/es/extensions/forms/utils/components.d.ts +0 -3
  782. package/es/extensions/forms/utils/components.js +0 -23
  783. package/es/extensions/forms/utils/components.js.map +0 -1
  784. package/es/extensions/forms/value-types.d.ts +0 -15
  785. package/es/extensions/forms/value-types.js +0 -1
  786. package/es/extensions/forms/value-types.js.map +0 -1
  787. package/extensions/forms/DataContext/SubmitButton.js +0 -20
  788. package/extensions/forms/DataContext/SubmitButton.js.map +0 -1
  789. package/extensions/forms/Field/FirstName.d.ts +0 -7
  790. package/extensions/forms/Field/FirstName.js +0 -19
  791. package/extensions/forms/Field/FirstName.js.map +0 -1
  792. package/extensions/forms/Field/LastName.d.ts +0 -7
  793. package/extensions/forms/Field/LastName.js +0 -19
  794. package/extensions/forms/Field/LastName.js.map +0 -1
  795. package/extensions/forms/Field/hooks/index.d.ts +0 -1
  796. package/extensions/forms/Field/hooks/index.js +0 -1
  797. package/extensions/forms/Field/hooks/index.js.map +0 -1
  798. package/extensions/forms/Field/hooks/useField.d.ts +0 -9
  799. package/extensions/forms/Field/hooks/useField.js.map +0 -1
  800. package/extensions/forms/FieldGroup/FieldGroup.d.ts +0 -17
  801. package/extensions/forms/FieldGroup/FieldGroup.js +0 -83
  802. package/extensions/forms/FieldGroup/FieldGroup.js.map +0 -1
  803. package/extensions/forms/FieldGroup/index.d.ts +0 -2
  804. package/extensions/forms/FieldGroup/index.js +0 -3
  805. package/extensions/forms/FieldGroup/index.js.map +0 -1
  806. package/extensions/forms/Layout/InfoCardSection.d.ts +0 -8
  807. package/extensions/forms/Layout/InfoCardSection.js +0 -17
  808. package/extensions/forms/Layout/InfoCardSection.js.map +0 -1
  809. package/extensions/forms/Value/FirstName.d.ts +0 -7
  810. package/extensions/forms/Value/FirstName.js +0 -16
  811. package/extensions/forms/Value/FirstName.js.map +0 -1
  812. package/extensions/forms/Value/LastName.d.ts +0 -7
  813. package/extensions/forms/Value/LastName.js +0 -16
  814. package/extensions/forms/Value/LastName.js.map +0 -1
  815. package/extensions/forms/Value/hooks/index.d.ts +0 -1
  816. package/extensions/forms/Value/hooks/index.js +0 -1
  817. package/extensions/forms/Value/hooks/index.js.map +0 -1
  818. package/extensions/forms/Value/hooks/useValue.d.ts +0 -2
  819. package/extensions/forms/Value/hooks/useValue.js +0 -22
  820. package/extensions/forms/Value/hooks/useValue.js.map +0 -1
  821. package/extensions/forms/component-types.d.ts +0 -4
  822. package/extensions/forms/component-types.js +0 -1
  823. package/extensions/forms/component-types.js.map +0 -1
  824. package/extensions/forms/field-types.d.ts +0 -58
  825. package/extensions/forms/field-types.js +0 -1
  826. package/extensions/forms/field-types.js.map +0 -1
  827. package/extensions/forms/utils/components.d.ts +0 -3
  828. package/extensions/forms/utils/components.js +0 -23
  829. package/extensions/forms/utils/components.js.map +0 -1
  830. package/extensions/forms/value-types.d.ts +0 -15
  831. package/extensions/forms/value-types.js +0 -1
  832. package/extensions/forms/value-types.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { ComponentProps } from '../component-types';
2
+ import type { ComponentProps } from '../types';
3
3
  export type Props = ComponentProps & {
4
4
  /** JSON Pointer for where in the source dataset to point at in sub components */
5
5
  path?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"At.js","names":["React","useContext","useMemo","pointer","Context","At","props","path","iterate","children","dataContext","data","contextData","handlePathChange","contextHandlePathChange","has","get","undefined","changePath","value","Array","isArray","createElement","Fragment","map","element","i","Provider","key","_objectSpread","_supportsEufemiaSpacingProps"],"sources":["../../../../../src/extensions/forms/DataContext/At.tsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react'\nimport pointer from 'json-pointer'\nimport type { ComponentProps } from '../component-types'\nimport Context from './Context'\n\nexport type Props = ComponentProps & {\n /** JSON Pointer for where in the source dataset to point at in sub components */\n path?: string\n iterate?: boolean\n children?: React.ReactNode\n}\n\nfunction At(props: Props) {\n const { path = '/', iterate, children } = props\n const dataContext = useContext(Context)\n const { data: contextData, handlePathChange: contextHandlePathChange } =\n dataContext\n\n const data =\n contextData && pointer.has(contextData, path)\n ? pointer.get(contextData, path)\n : undefined\n\n const handlePathChange = useMemo(\n () =>\n contextHandlePathChange\n ? (changePath, value) => {\n contextHandlePathChange(`${path}${changePath}`, value)\n }\n : undefined,\n [contextHandlePathChange, path]\n )\n\n if (iterate) {\n if (!Array.isArray(data)) {\n return null\n }\n return (\n <>\n {data.map((element, i) => {\n const handlePathChange = contextHandlePathChange\n ? (changePath, value) => {\n contextHandlePathChange(`${path}/${i}${changePath}`, value)\n }\n : undefined\n\n return (\n <Context.Provider\n key={`element${i}`}\n value={{\n ...dataContext,\n data: element,\n handlePathChange,\n }}\n >\n {children}\n </Context.Provider>\n )\n })}\n </>\n )\n }\n\n return (\n <Context.Provider\n value={{\n ...dataContext,\n data,\n handlePathChange,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\nAt._supportsEufemiaSpacingProps = true\nexport default At\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAClD,OAAOC,OAAO,MAAM,cAAc;AAElC,OAAOC,OAAO,MAAM,WAAW;AAS/B,SAASC,EAAEA,CAACC,KAAY,EAAE;EACxB,MAAM;IAAEC,IAAI,GAAG,GAAG;IAAEC,OAAO;IAAEC;EAAS,CAAC,GAAGH,KAAK;EAC/C,MAAMI,WAAW,GAAGT,UAAU,CAACG,OAAO,CAAC;EACvC,MAAM;IAAEO,IAAI,EAAEC,WAAW;IAAEC,gBAAgB,EAAEC;EAAwB,CAAC,GACpEJ,WAAW;EAEb,MAAMC,IAAI,GACRC,WAAW,IAAIT,OAAO,CAACY,GAAG,CAACH,WAAW,EAAEL,IAAI,CAAC,GACzCJ,OAAO,CAACa,GAAG,CAACJ,WAAW,EAAEL,IAAI,CAAC,GAC9BU,SAAS;EAEf,MAAMJ,gBAAgB,GAAGX,OAAO,CAC9B,MACEY,uBAAuB,GACnB,CAACI,UAAU,EAAEC,KAAK,KAAK;IACrBL,uBAAuB,CAAE,GAAEP,IAAK,GAAEW,UAAW,EAAC,EAAEC,KAAK,CAAC;EACxD,CAAC,GACDF,SAAS,EACf,CAACH,uBAAuB,EAAEP,IAAI,CAChC,CAAC;EAED,IAAIC,OAAO,EAAE;IACX,IAAI,CAACY,KAAK,CAACC,OAAO,CAACV,IAAI,CAAC,EAAE;MACxB,OAAO,IAAI;IACb;IACA,OACEX,KAAA,CAAAsB,aAAA,CAAAtB,KAAA,CAAAuB,QAAA,QACGZ,IAAI,CAACa,GAAG,CAAC,CAACC,OAAO,EAAEC,CAAC,KAAK;MACxB,MAAMb,gBAAgB,GAAGC,uBAAuB,GAC5C,CAACI,UAAU,EAAEC,KAAK,KAAK;QACrBL,uBAAuB,CAAE,GAAEP,IAAK,IAAGmB,CAAE,GAAER,UAAW,EAAC,EAAEC,KAAK,CAAC;MAC7D,CAAC,GACDF,SAAS;MAEb,OACEjB,KAAA,CAAAsB,aAAA,CAAClB,OAAO,CAACuB,QAAQ;QACfC,GAAG,EAAG,UAASF,CAAE,EAAE;QACnBP,KAAK,EAAAU,aAAA,CAAAA,aAAA,KACAnB,WAAW;UACdC,IAAI,EAAEc,OAAO;UACbZ;QAAgB;MAChB,GAEDJ,QACe,CAAC;IAEvB,CAAC,CACD,CAAC;EAEP;EAEA,OACET,KAAA,CAAAsB,aAAA,CAAClB,OAAO,CAACuB,QAAQ;IACfR,KAAK,EAAAU,aAAA,CAAAA,aAAA,KACAnB,WAAW;MACdC,IAAI;MACJE;IAAgB;EAChB,GAEDJ,QACe,CAAC;AAEvB;AAEAJ,EAAE,CAACyB,4BAA4B,GAAG,IAAI;AACtC,eAAezB,EAAE"}
1
+ {"version":3,"file":"At.js","names":["React","useContext","useMemo","pointer","Context","At","props","path","iterate","children","dataContext","data","contextData","handlePathChange","contextHandlePathChange","has","get","undefined","changePath","value","Array","isArray","createElement","Fragment","map","element","i","Provider","key","_objectSpread","_supportsEufemiaSpacingProps"],"sources":["../../../../../src/extensions/forms/DataContext/At.tsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react'\nimport pointer from 'json-pointer'\nimport type { ComponentProps } from '../types'\nimport Context from './Context'\n\nexport type Props = ComponentProps & {\n /** JSON Pointer for where in the source dataset to point at in sub components */\n path?: string\n iterate?: boolean\n children?: React.ReactNode\n}\n\nfunction At(props: Props) {\n const { path = '/', iterate, children } = props\n const dataContext = useContext(Context)\n const { data: contextData, handlePathChange: contextHandlePathChange } =\n dataContext\n\n const data =\n contextData && pointer.has(contextData, path)\n ? pointer.get(contextData, path)\n : undefined\n\n const handlePathChange = useMemo(\n () =>\n contextHandlePathChange\n ? (changePath, value) => {\n contextHandlePathChange(`${path}${changePath}`, value)\n }\n : undefined,\n [contextHandlePathChange, path]\n )\n\n if (iterate) {\n if (!Array.isArray(data)) {\n return null\n }\n return (\n <>\n {data.map((element, i) => {\n const handlePathChange = contextHandlePathChange\n ? (changePath, value) => {\n contextHandlePathChange(`${path}/${i}${changePath}`, value)\n }\n : undefined\n\n return (\n <Context.Provider\n key={`element${i}`}\n value={{\n ...dataContext,\n data: element,\n handlePathChange,\n }}\n >\n {children}\n </Context.Provider>\n )\n })}\n </>\n )\n }\n\n return (\n <Context.Provider\n value={{\n ...dataContext,\n data,\n handlePathChange,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\nAt._supportsEufemiaSpacingProps = true\nexport default At\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAClD,OAAOC,OAAO,MAAM,cAAc;AAElC,OAAOC,OAAO,MAAM,WAAW;AAS/B,SAASC,EAAEA,CAACC,KAAY,EAAE;EACxB,MAAM;IAAEC,IAAI,GAAG,GAAG;IAAEC,OAAO;IAAEC;EAAS,CAAC,GAAGH,KAAK;EAC/C,MAAMI,WAAW,GAAGT,UAAU,CAACG,OAAO,CAAC;EACvC,MAAM;IAAEO,IAAI,EAAEC,WAAW;IAAEC,gBAAgB,EAAEC;EAAwB,CAAC,GACpEJ,WAAW;EAEb,MAAMC,IAAI,GACRC,WAAW,IAAIT,OAAO,CAACY,GAAG,CAACH,WAAW,EAAEL,IAAI,CAAC,GACzCJ,OAAO,CAACa,GAAG,CAACJ,WAAW,EAAEL,IAAI,CAAC,GAC9BU,SAAS;EAEf,MAAMJ,gBAAgB,GAAGX,OAAO,CAC9B,MACEY,uBAAuB,GACnB,CAACI,UAAU,EAAEC,KAAK,KAAK;IACrBL,uBAAuB,CAAE,GAAEP,IAAK,GAAEW,UAAW,EAAC,EAAEC,KAAK,CAAC;EACxD,CAAC,GACDF,SAAS,EACf,CAACH,uBAAuB,EAAEP,IAAI,CAChC,CAAC;EAED,IAAIC,OAAO,EAAE;IACX,IAAI,CAACY,KAAK,CAACC,OAAO,CAACV,IAAI,CAAC,EAAE;MACxB,OAAO,IAAI;IACb;IACA,OACEX,KAAA,CAAAsB,aAAA,CAAAtB,KAAA,CAAAuB,QAAA,QACGZ,IAAI,CAACa,GAAG,CAAC,CAACC,OAAO,EAAEC,CAAC,KAAK;MACxB,MAAMb,gBAAgB,GAAGC,uBAAuB,GAC5C,CAACI,UAAU,EAAEC,KAAK,KAAK;QACrBL,uBAAuB,CAAE,GAAEP,IAAK,IAAGmB,CAAE,GAAER,UAAW,EAAC,EAAEC,KAAK,CAAC;MAC7D,CAAC,GACDF,SAAS;MAEb,OACEjB,KAAA,CAAAsB,aAAA,CAAClB,OAAO,CAACuB,QAAQ;QACfC,GAAG,EAAG,UAASF,CAAE,EAAE;QACnBP,KAAK,EAAAU,aAAA,CAAAA,aAAA,KACAnB,WAAW;UACdC,IAAI,EAAEc,OAAO;UACbZ;QAAgB;MAChB,GAEDJ,QACe,CAAC;IAEvB,CAAC,CACD,CAAC;EAEP;EAEA,OACET,KAAA,CAAAsB,aAAA,CAAClB,OAAO,CAACuB,QAAQ;IACfR,KAAK,EAAAU,aAAA,CAAAA,aAAA,KACAnB,WAAW;MACdC,IAAI;MACJE;IAAgB;EAChB,GAEDJ,QACe,CAAC;AAEvB;AAEAJ,EAAE,CAACyB,4BAA4B,GAAG,IAAI;AACtC,eAAezB,EAAE"}
@@ -13,6 +13,7 @@ export interface ContextState {
13
13
  handleUnMountField: (path: string) => void;
14
14
  setPathWithError: (path: string, hasError: boolean) => void;
15
15
  hasErrors: () => boolean;
16
+ _isInsideFormElement?: boolean;
16
17
  }
17
18
  export declare const defaultContextState: ContextState;
18
19
  declare const Context: React.Context<ContextState>;
@@ -9,7 +9,8 @@ export const defaultContextState = {
9
9
  handleMountField: () => null,
10
10
  handleUnMountField: () => null,
11
11
  hasErrors: () => false,
12
- setPathWithError: () => null
12
+ setPathWithError: () => null,
13
+ _isInsideFormElement: false
13
14
  };
14
15
  const Context = React.createContext(defaultContextState);
15
16
  export default Context;
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","names":["React","defaultContextState","data","undefined","handlePathChange","handleSubmit","showAllErrors","setShowAllErrors","mountedFieldPaths","handleMountField","handleUnMountField","hasErrors","setPathWithError","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\n\nexport interface ContextState {\n /** The dataset for the form / form steps */\n data: any\n /** Should the form validate data before submitting? */\n errors?: Record<string, Error>\n handlePathChange: (path: string, value: any) => void\n handleSubmit: () => any\n // Error status\n showAllErrors: boolean\n setShowAllErrors: (showAllErrors: boolean) => void\n // Mounted fields - Components telling the provider what fields is on screen at any time\n mountedFieldPaths: string[]\n handleMountField: (path: string) => void\n handleUnMountField: (path: string) => void\n setPathWithError: (path: string, hasError: boolean) => void\n hasErrors: () => boolean\n}\n\nexport const defaultContextState: ContextState = {\n data: undefined,\n handlePathChange: () => null,\n handleSubmit: () => null,\n showAllErrors: false,\n setShowAllErrors: () => null,\n mountedFieldPaths: [],\n handleMountField: () => null,\n handleUnMountField: () => null,\n hasErrors: () => false,\n setPathWithError: () => null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAoBzB,OAAO,MAAMC,mBAAiC,GAAG;EAC/CC,IAAI,EAAEC,SAAS;EACfC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,aAAa,EAAE,KAAK;EACpBC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,iBAAiB,EAAE,EAAE;EACrBC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,kBAAkB,EAAEA,CAAA,KAAM,IAAI;EAC9BC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,gBAAgB,EAAEA,CAAA,KAAM;AAC1B,CAAC;AAED,MAAMC,OAAO,GAAGb,KAAK,CAACc,aAAa,CAAeb,mBAAmB,CAAC;AAEtE,eAAeY,OAAO"}
1
+ {"version":3,"file":"Context.js","names":["React","defaultContextState","data","undefined","handlePathChange","handleSubmit","showAllErrors","setShowAllErrors","mountedFieldPaths","handleMountField","handleUnMountField","hasErrors","setPathWithError","_isInsideFormElement","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\n\nexport interface ContextState {\n /** The dataset for the form / form steps */\n data: any\n /** Should the form validate data before submitting? */\n errors?: Record<string, Error>\n handlePathChange: (path: string, value: any) => void\n handleSubmit: () => any\n // Error status\n showAllErrors: boolean\n setShowAllErrors: (showAllErrors: boolean) => void\n // Mounted fields - Components telling the provider what fields is on screen at any time\n mountedFieldPaths: string[]\n handleMountField: (path: string) => void\n handleUnMountField: (path: string) => void\n setPathWithError: (path: string, hasError: boolean) => void\n hasErrors: () => boolean\n _isInsideFormElement?: boolean\n}\n\nexport const defaultContextState: ContextState = {\n data: undefined,\n handlePathChange: () => null,\n handleSubmit: () => null,\n showAllErrors: false,\n setShowAllErrors: () => null,\n mountedFieldPaths: [],\n handleMountField: () => null,\n handleUnMountField: () => null,\n hasErrors: () => false,\n setPathWithError: () => null,\n _isInsideFormElement: false,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAqBzB,OAAO,MAAMC,mBAAiC,GAAG;EAC/CC,IAAI,EAAEC,SAAS;EACfC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,aAAa,EAAE,KAAK;EACpBC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,iBAAiB,EAAE,EAAE;EACrBC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,kBAAkB,EAAEA,CAAA,KAAM,IAAI;EAC9BC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,oBAAoB,EAAE;AACxB,CAAC;AAED,MAAMC,OAAO,GAAGd,KAAK,CAACe,aAAa,CAAed,mBAAmB,CAAC;AAEtE,eAAea,OAAO"}
@@ -2,6 +2,7 @@ import React, { useEffect, useRef, useMemo, useCallback, useState } from 'react'
2
2
  import pointer from 'json-pointer';
3
3
  import ajv, { ajvErrorsToFormErrors } from '../utils/ajv';
4
4
  import Context from './Context';
5
+ import structuredClone from '@ungap/structured-clone';
5
6
  function addListPath(paths, path) {
6
7
  return paths.includes(path) ? paths : paths.concat(path);
7
8
  }
@@ -47,9 +48,12 @@ export default function Provider(_ref) {
47
48
  pathsWithErrorRef.current = hasError ? addListPath(pathsWithErrorRef.current, path) : removeListPath(pathsWithErrorRef.current, path);
48
49
  }, []);
49
50
  const handlePathChange = useCallback((path, value) => {
51
+ if (!path) {
52
+ return;
53
+ }
50
54
  onPathChange === null || onPathChange === void 0 ? void 0 : onPathChange(path, value);
51
- const newData = structuredClone(internalData);
52
- if (path) {
55
+ const newData = structuredClone(path === '/' ? value : internalData);
56
+ if (path !== '/') {
53
57
  pointer.set(newData, path, value);
54
58
  }
55
59
  onChange === null || onChange === void 0 ? void 0 : onChange(newData);
@@ -68,7 +72,7 @@ export default function Provider(_ref) {
68
72
  onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(internalData);
69
73
  if (scrollTopOnSubmit) {
70
74
  var _window;
71
- window && ((_window = window) === null || _window === void 0 ? void 0 : _window.scrollTo({
75
+ typeof window !== 'undefined' && ((_window = window) === null || _window === void 0 ? void 0 : _window.scrollTo({
72
76
  top: 0,
73
77
  behavior: 'smooth'
74
78
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","names":["React","useEffect","useRef","useMemo","useCallback","useState","pointer","ajv","ajvErrorsToFormErrors","Context","addListPath","paths","path","includes","concat","removeListPath","filter","thisPath","Provider","_ref","data","externalData","schema","onChange","onPathChange","onSubmit","onSubmitRequest","scrollTopOnSubmit","children","ajvSchemaValidator","compile","undefined","internalData","setInternalData","mountedFieldPathsRef","errorsRef","showAllErrors","setShowAllErrors","pathsWithErrorRef","hasErrors","Boolean","current","find","mountedFieldPath","validateBySchema","errors","validateBySchemaAndUpdateState","setPathWithError","hasError","handlePathChange","value","newData","structuredClone","set","handleMountField","handleUnMountField","handleSubmit","_window","window","scrollTo","top","behavior","createElement","mountedFieldPaths"],"sources":["../../../../../src/extensions/forms/DataContext/Provider.tsx"],"sourcesContent":["import React, {\n useEffect,\n useRef,\n useMemo,\n useCallback,\n useState,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { JSONSchema7 } from 'json-schema'\nimport ajv, { ajvErrorsToFormErrors } from '../utils/ajv'\nimport { FormError } from '../types'\nimport Context from './Context'\n\nexport interface Props<Data extends JsonObject> {\n data: Partial<Data>\n /** JSON Schema for validating the data, like during input or after attempting submit */\n schema?: JSONSchema7\n /** Change handler for the whole data set */\n onChange?: (data: Data) => void\n /** Change handler for each value */\n onPathChange?: (path: string, value: any) => void\n /** Submit called, data was valid (if validation available) */\n onSubmit?: (data: Data) => void\n /** Submit was requested, but data was invalid */\n onSubmitRequest?: () => void\n scrollTopOnSubmit?: boolean\n children: React.ReactNode\n}\n\ntype PathList = string[]\n\nfunction addListPath(paths: PathList, path: string): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nfunction removeListPath(paths: PathList, path: string): PathList {\n return paths.filter((thisPath) => thisPath !== path)\n}\n\nexport default function Provider<Data extends JsonObject>({\n data: externalData,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n scrollTopOnSubmit,\n children,\n}: Props<Data>) {\n const ajvSchemaValidator = useMemo(\n () => (schema ? ajv.compile(schema) : undefined),\n [schema]\n )\n const [internalData, setInternalData] =\n useState<Partial<Data>>(externalData)\n const mountedFieldPathsRef = useRef<string[]>([])\n\n // Errors from provider validation (the whole data set)\n const errorsRef = useRef<Record<string, FormError>>({})\n const [showAllErrors, setShowAllErrors] = useState<boolean>(false)\n // Errors reported by fields, based on their direct validation rules\n const pathsWithErrorRef = useRef<string[]>([])\n\n const hasErrors = useCallback(\n () =>\n Boolean(\n mountedFieldPathsRef.current.find(\n (mountedFieldPath) =>\n errorsRef.current[mountedFieldPath] !== undefined ||\n pathsWithErrorRef.current.includes(mountedFieldPath)\n )\n ),\n []\n )\n\n useEffect(() => {\n // When receivint the initial data, or receiving updated data by props, update the internal data (controlled state)\n setInternalData(externalData)\n }, [externalData])\n\n const validateBySchema = useCallback(\n (data: Partial<Data>): Record<string, Error> | undefined => {\n if (!ajvSchemaValidator) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvSchemaValidator(data)) {\n // Errors found\n const errors = ajvErrorsToFormErrors(ajvSchemaValidator.errors)\n return errors\n } else {\n return\n }\n },\n [ajvSchemaValidator]\n )\n\n const validateBySchemaAndUpdateState = useCallback(\n (data: Partial<Data>) => {\n errorsRef.current = validateBySchema(data) ?? {}\n },\n [validateBySchema]\n )\n\n const setPathWithError = useCallback(\n (path: string, hasError: boolean) => {\n pathsWithErrorRef.current = hasError\n ? addListPath(pathsWithErrorRef.current, path)\n : removeListPath(pathsWithErrorRef.current, path)\n },\n []\n )\n\n const handlePathChange = useCallback(\n (path, value) => {\n onPathChange?.(path, value)\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n const newData = structuredClone(internalData) as Data\n if (path) {\n pointer.set(newData, path, value)\n }\n onChange?.(newData)\n\n validateBySchemaAndUpdateState(newData)\n\n setInternalData(newData)\n\n setShowAllErrors(false)\n },\n [internalData, onChange, onPathChange, validateBySchemaAndUpdateState]\n )\n\n // Mounted fields\n const handleMountField = useCallback((path: string) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: string) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback(() => {\n if (!hasErrors()) {\n onSubmit?.(internalData as Data)\n if (scrollTopOnSubmit) {\n window && window?.scrollTo({ top: 0, behavior: 'smooth' })\n }\n } else {\n setShowAllErrors(true)\n onSubmitRequest?.()\n }\n return internalData\n }, [\n internalData,\n scrollTopOnSubmit,\n hasErrors,\n onSubmit,\n onSubmitRequest,\n ])\n\n useEffect(() => {\n // Mount procedure\n if (externalData) {\n // Validate the initial data to know if the user can submit, and to show errors if inputs are requested to with props\n validateBySchemaAndUpdateState(externalData)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Only run for mount and unmount\n }, [])\n\n return (\n <Context.Provider\n value={{\n data: internalData,\n handlePathChange,\n handleSubmit,\n errors: errorsRef.current,\n showAllErrors,\n setShowAllErrors,\n mountedFieldPaths: mountedFieldPathsRef.current,\n handleMountField,\n handleUnMountField,\n hasErrors,\n setPathWithError,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Provider.js","names":["React","useEffect","useRef","useMemo","useCallback","useState","pointer","ajv","ajvErrorsToFormErrors","Context","structuredClone","addListPath","paths","path","includes","concat","removeListPath","filter","thisPath","Provider","_ref","data","externalData","schema","onChange","onPathChange","onSubmit","onSubmitRequest","scrollTopOnSubmit","children","ajvSchemaValidator","compile","undefined","internalData","setInternalData","mountedFieldPathsRef","errorsRef","showAllErrors","setShowAllErrors","pathsWithErrorRef","hasErrors","Boolean","current","find","mountedFieldPath","validateBySchema","errors","validateBySchemaAndUpdateState","setPathWithError","hasError","handlePathChange","value","newData","set","handleMountField","handleUnMountField","handleSubmit","_window","window","scrollTo","top","behavior","createElement","mountedFieldPaths"],"sources":["../../../../../src/extensions/forms/DataContext/Provider.tsx"],"sourcesContent":["import React, {\n useEffect,\n useRef,\n useMemo,\n useCallback,\n useState,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { JSONSchema7 } from 'json-schema'\nimport ajv, { ajvErrorsToFormErrors } from '../utils/ajv'\nimport { FormError } from '../types'\nimport Context from './Context'\n\n/**\n * Deprecated, as it is supported my all mihor 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\nexport interface Props<Data extends JsonObject> {\n data: Partial<Data>\n /** JSON Schema for validating the data, like during input or after attempting submit */\n schema?: JSONSchema7\n /** Change handler for the whole data set */\n onChange?: (data: Data) => void\n /** Change handler for each value */\n onPathChange?: (path: string, value: any) => void\n /** Submit called, data was valid (if validation available) */\n onSubmit?: (data: Data) => void\n /** Submit was requested, but data was invalid */\n onSubmitRequest?: () => void\n scrollTopOnSubmit?: boolean\n children: React.ReactNode\n}\n\ntype PathList = string[]\n\nfunction addListPath(paths: PathList, path: string): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nfunction removeListPath(paths: PathList, path: string): PathList {\n return paths.filter((thisPath) => thisPath !== path)\n}\n\nexport default function Provider<Data extends JsonObject>({\n data: externalData,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n scrollTopOnSubmit,\n children,\n}: Props<Data>) {\n const ajvSchemaValidator = useMemo(\n () => (schema ? ajv.compile(schema) : undefined),\n [schema]\n )\n const [internalData, setInternalData] =\n useState<Partial<Data>>(externalData)\n const mountedFieldPathsRef = useRef<string[]>([])\n\n // Errors from provider validation (the whole data set)\n const errorsRef = useRef<Record<string, FormError>>({})\n const [showAllErrors, setShowAllErrors] = useState<boolean>(false)\n // Errors reported by fields, based on their direct validation rules\n const pathsWithErrorRef = useRef<string[]>([])\n\n const hasErrors = useCallback(\n () =>\n Boolean(\n mountedFieldPathsRef.current.find(\n (mountedFieldPath) =>\n errorsRef.current[mountedFieldPath] !== undefined ||\n pathsWithErrorRef.current.includes(mountedFieldPath)\n )\n ),\n []\n )\n\n useEffect(() => {\n // When receivint the initial data, or receiving updated data by props, update the internal data (controlled state)\n setInternalData(externalData)\n }, [externalData])\n\n const validateBySchema = useCallback(\n (data: Partial<Data>): Record<string, Error> | undefined => {\n if (!ajvSchemaValidator) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvSchemaValidator(data)) {\n // Errors found\n const errors = ajvErrorsToFormErrors(ajvSchemaValidator.errors)\n return errors\n } else {\n return\n }\n },\n [ajvSchemaValidator]\n )\n\n const validateBySchemaAndUpdateState = useCallback(\n (data: Partial<Data>) => {\n errorsRef.current = validateBySchema(data) ?? {}\n },\n [validateBySchema]\n )\n\n const setPathWithError = useCallback(\n (path: string, hasError: boolean) => {\n pathsWithErrorRef.current = hasError\n ? addListPath(pathsWithErrorRef.current, path)\n : removeListPath(pathsWithErrorRef.current, path)\n },\n []\n )\n\n const handlePathChange = useCallback(\n (path, value) => {\n if (!path) {\n return\n }\n onPathChange?.(path, value)\n\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n const newData = structuredClone(path === '/' ? value : internalData)\n if (path !== '/') {\n pointer.set(newData as Data, path, value)\n }\n\n onChange?.(newData)\n\n validateBySchemaAndUpdateState(newData)\n\n setInternalData(newData)\n\n setShowAllErrors(false)\n },\n [internalData, onChange, onPathChange, validateBySchemaAndUpdateState]\n )\n\n // Mounted fields\n const handleMountField = useCallback((path: string) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: string) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback(() => {\n if (!hasErrors()) {\n onSubmit?.(internalData as Data)\n if (scrollTopOnSubmit) {\n typeof window !== 'undefined' &&\n window?.scrollTo({ top: 0, behavior: 'smooth' })\n }\n } else {\n setShowAllErrors(true)\n onSubmitRequest?.()\n }\n return internalData\n }, [\n internalData,\n scrollTopOnSubmit,\n hasErrors,\n onSubmit,\n onSubmitRequest,\n ])\n\n useEffect(() => {\n // Mount procedure\n if (externalData) {\n // Validate the initial data to know if the user can submit, and to show errors if inputs are requested to with props\n validateBySchemaAndUpdateState(externalData)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Only run for mount and unmount\n }, [])\n\n return (\n <Context.Provider\n value={{\n data: internalData,\n handlePathChange,\n handleSubmit,\n errors: errorsRef.current,\n showAllErrors,\n setShowAllErrors,\n mountedFieldPaths: mountedFieldPathsRef.current,\n handleMountField,\n handleUnMountField,\n hasErrors,\n setPathWithError,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n"],"mappings":"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"}
@@ -1,12 +1,10 @@
1
1
  /// <reference types="react" />
2
2
  import { ContextState } from './Context';
3
3
  import Provider from './Provider';
4
- import SubmitButton from './SubmitButton';
5
4
  import At from './At';
6
5
  declare const DataContext: {
7
6
  Context: import("react").Context<ContextState>;
8
7
  Provider: typeof Provider;
9
- SubmitButton: typeof SubmitButton;
10
8
  At: typeof At;
11
9
  };
12
10
  export type { ContextState };
@@ -1,11 +1,9 @@
1
1
  import Context from './Context';
2
2
  import Provider from './Provider';
3
- import SubmitButton from './SubmitButton';
4
3
  import At from './At';
5
4
  const DataContext = {
6
5
  Context,
7
6
  Provider,
8
- SubmitButton,
9
7
  At
10
8
  };
11
9
  export default DataContext;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Context","Provider","SubmitButton","At","DataContext"],"sources":["../../../../../src/extensions/forms/DataContext/index.ts"],"sourcesContent":["import Context, { ContextState } from './Context'\nimport Provider from './Provider'\nimport SubmitButton from './SubmitButton'\nimport At from './At'\n\nconst DataContext = {\n Context,\n Provider,\n SubmitButton,\n At,\n}\n\nexport type { ContextState }\nexport default DataContext\n"],"mappings":"AAAA,OAAOA,OAAO,MAAwB,WAAW;AACjD,OAAOC,QAAQ,MAAM,YAAY;AACjC,OAAOC,YAAY,MAAM,gBAAgB;AACzC,OAAOC,EAAE,MAAM,MAAM;AAErB,MAAMC,WAAW,GAAG;EAClBJ,OAAO;EACPC,QAAQ;EACRC,YAAY;EACZC;AACF,CAAC;AAGD,eAAeC,WAAW"}
1
+ {"version":3,"file":"index.js","names":["Context","Provider","At","DataContext"],"sources":["../../../../../src/extensions/forms/DataContext/index.ts"],"sourcesContent":["import Context, { ContextState } from './Context'\nimport Provider from './Provider'\nimport At from './At'\n\nconst DataContext = {\n Context,\n Provider,\n At,\n}\n\nexport type { ContextState }\nexport default DataContext\n"],"mappings":"AAAA,OAAOA,OAAO,MAAwB,WAAW;AACjD,OAAOC,QAAQ,MAAM,YAAY;AACjC,OAAOC,EAAE,MAAM,MAAM;AAErB,MAAMC,WAAW,GAAG;EAClBH,OAAO;EACPC,QAAQ;EACRC;AACF,CAAC;AAGD,eAAeC,WAAW"}
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
- import type { ComponentProps } from '../component-types';
3
- import type { FieldProps } from '../field-types';
4
- export type Props = ComponentProps & FieldProps<Array<string | number>> & {
2
+ import { FieldProps } from '../types';
3
+ export type Props = FieldProps<Array<string | number>> & {
5
4
  children?: React.ReactNode;
6
5
  variant?: 'checkbox' | 'button';
7
6
  optionsLayout?: 'horizontal' | 'vertical';
@@ -5,10 +5,10 @@ import React, { useMemo } from 'react';
5
5
  import { Checkbox, Button } from '../../../components';
6
6
  import ButtonRow from '../Layout/ButtonRow';
7
7
  import classnames from 'classnames';
8
- import { forwardSpaceProps } from '../utils';
9
8
  import Option from './Option';
10
9
  import FieldBlock from '../FieldBlock';
11
- import { useField } from './hooks';
10
+ import { useDataValue } from '../hooks';
11
+ import { pickSpacingProps } from '../types';
12
12
  function ArraySelection(props) {
13
13
  const {
14
14
  id,
@@ -27,7 +27,7 @@ function ArraySelection(props) {
27
27
  emptyValue,
28
28
  handleChange,
29
29
  children
30
- } = useField(props);
30
+ } = useDataValue(props);
31
31
  const fieldBlockProps = _objectSpread({
32
32
  forId: id,
33
33
  className: classnames(`dnb-forms-field-array-selection dnb-forms-field-array-selection--options-layout-${optionsLayout}`, className),
@@ -39,7 +39,7 @@ function ArraySelection(props) {
39
39
  label,
40
40
  labelDescription,
41
41
  labelSecondary
42
- }, forwardSpaceProps(props));
42
+ }, pickSpacingProps(props));
43
43
  const options = useMemo(() => React.Children.toArray(children).filter(child => React.isValidElement(child) && child.type === Option).map(option => ({
44
44
  title: option.props.title ?? option.props.children,
45
45
  value: option.props.value,
@@ -1 +1 @@
1
- {"version":3,"file":"ArraySelection.js","names":["React","useMemo","Checkbox","Button","ButtonRow","classnames","forwardSpaceProps","Option","FieldBlock","useField","ArraySelection","props","id","className","variant","layout","optionsLayout","label","labelDescription","labelSecondary","value","error","info","warning","disabled","emptyValue","handleChange","children","fieldBlockProps","_objectSpread","forId","contentClassName","options","Children","toArray","filter","child","isValidElement","type","map","option","title","handleSelect","selected","newValue","includes","length","createElement","i","key","text","on_click","undefined","status","checked","on_change","_supportsEufemiaSpacingProps"],"sources":["../../../../../src/extensions/forms/Field/ArraySelection.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport { Checkbox, Button } from '../../../components'\nimport ButtonRow from '../Layout/ButtonRow'\nimport classnames from 'classnames'\nimport { forwardSpaceProps } from '../utils'\nimport Option from './Option'\nimport FieldBlock from '../FieldBlock'\nimport { useField } from './hooks'\nimport type { ComponentProps } from '../component-types'\nimport type { FieldProps } from '../field-types'\n\ninterface IOption {\n title: string\n value: number | string\n handleSelect: () => void\n}\n\nexport type Props = ComponentProps &\n 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 labelSecondary,\n value,\n error,\n info,\n warning,\n disabled,\n emptyValue,\n handleChange,\n children,\n } = useField(props)\n\n const fieldBlockProps = {\n forId: id,\n className: classnames(\n 'dnb-forms-field-array-selection',\n `dnb-forms-field-array-selection--options-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 labelSecondary,\n ...forwardSpaceProps(props),\n }\n\n const options: IOption[] = useMemo(\n () =>\n React.Children.toArray(children)\n .filter(\n (child) => React.isValidElement(child) && child.type === Option\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 <ButtonRow>\n {options.map((option, i) => (\n <Button\n key={`option-${i}-${option.value}`}\n id={id}\n text={option.title}\n on_click={option.handleSelect}\n variant={\n value?.includes(option.value) ? undefined : 'secondary'\n }\n status={error ? 'error' : undefined}\n disabled={disabled}\n />\n ))}\n </ButtonRow>\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 />\n ))}\n </FieldBlock>\n )\n }\n}\n\nArraySelection._supportsEufemiaSpacingProps = true\nexport default ArraySelection\n"],"mappings":"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"}
1
+ {"version":3,"file":"ArraySelection.js","names":["React","useMemo","Checkbox","Button","ButtonRow","classnames","Option","FieldBlock","useDataValue","pickSpacingProps","ArraySelection","props","id","className","variant","layout","optionsLayout","label","labelDescription","labelSecondary","value","error","info","warning","disabled","emptyValue","handleChange","children","fieldBlockProps","_objectSpread","forId","contentClassName","options","Children","toArray","filter","child","isValidElement","type","map","option","title","handleSelect","selected","newValue","includes","length","createElement","i","key","text","on_click","undefined","status","checked","on_change","_supportsEufemiaSpacingProps"],"sources":["../../../../../src/extensions/forms/Field/ArraySelection.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport { Checkbox, Button } from '../../../components'\nimport ButtonRow from '../Layout/ButtonRow'\nimport classnames from 'classnames'\nimport Option from './Option'\nimport FieldBlock from '../FieldBlock'\nimport { useDataValue } from '../hooks'\nimport { FieldProps, pickSpacingProps } from '../types'\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 labelSecondary,\n value,\n error,\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--options-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 labelSecondary,\n ...pickSpacingProps(props),\n }\n\n const options: IOption[] = useMemo(\n () =>\n React.Children.toArray(children)\n .filter(\n (child) => React.isValidElement(child) && child.type === Option\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 <ButtonRow>\n {options.map((option, i) => (\n <Button\n key={`option-${i}-${option.value}`}\n id={id}\n text={option.title}\n on_click={option.handleSelect}\n variant={\n value?.includes(option.value) ? undefined : 'secondary'\n }\n status={error ? 'error' : undefined}\n disabled={disabled}\n />\n ))}\n </ButtonRow>\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 />\n ))}\n </FieldBlock>\n )\n }\n}\n\nArraySelection._supportsEufemiaSpacingProps = true\nexport default ArraySelection\n"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
- import type { ComponentProps } from '../component-types';
2
- import type { FieldProps, FieldHelpProps } from '../field-types';
3
- export type Props = ComponentProps & FieldHelpProps & FieldProps<string> & {
1
+ import { FieldProps, FieldHelpProps } from '../types';
2
+ export type Props = FieldHelpProps & FieldProps<string> & {
4
3
  width?: false | 'small' | 'medium' | 'large' | 'stretch';
5
4
  };
6
5
  declare function CountryCode(props: Props): import("react/jsx-runtime").JSX.Element;
@@ -3,9 +3,8 @@ import React, { useContext, useCallback, useMemo } from 'react';
3
3
  import { Autocomplete, HelpButton } from '../../../components';
4
4
  import classnames from 'classnames';
5
5
  import countries from '../constants/countries';
6
- import { forwardSpaceProps } from '../utils';
7
- import { useField } from './hooks';
8
- import { FormError } from '../types';
6
+ import { useDataValue } from '../hooks';
7
+ import { FormError, pickSpacingProps } from '../types';
9
8
  import SharedContext from '../../../shared/Context';
10
9
  function CountryCode(props) {
11
10
  const sharedContext = useContext(SharedContext);
@@ -25,7 +24,7 @@ function CountryCode(props) {
25
24
  handleFocus,
26
25
  handleBlur,
27
26
  handleChange
28
- } = useField(props);
27
+ } = useDataValue(props);
29
28
  const autocompleteData = useMemo(() => countries.map(country => ({
30
29
  selected_key: `+${country.code}`,
31
30
  selected_value: `${country.iso} (+${country.code})`,
@@ -59,7 +58,7 @@ function CountryCode(props) {
59
58
  }, help.contents) : undefined,
60
59
  independent_width: true,
61
60
  search_numbers: true
62
- }, forwardSpaceProps(props), {
61
+ }, pickSpacingProps(props), {
63
62
  stretch: width === 'stretch'
64
63
  }));
65
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CountryCode.js","names":["React","useContext","useCallback","useMemo","Autocomplete","HelpButton","classnames","countries","forwardSpaceProps","useField","FormError","SharedContext","CountryCode","props","sharedContext","className","layout","placeholder","label","translation","Forms","countryCodeLabel","value","emptyValue","info","warning","error","disabled","help","width","handleFocus","handleBlur","handleChange","autocompleteData","map","country","selected_key","code","selected_value","iso","content","name","forwardHandleChange","_ref","data","changedData","trim","valueIndex","findIndex","item","createElement","_extends","undefined","label_direction","on_focus","on_blur","on_change","status","message","Error","toString","suffix","title","contents","independent_width","search_numbers","stretch","_supportsEufemiaSpacingProps"],"sources":["../../../../../src/extensions/forms/Field/CountryCode.tsx"],"sourcesContent":["import React, { useContext, useCallback, useMemo } from 'react'\nimport { Autocomplete, HelpButton } from '../../../components'\nimport classnames from 'classnames'\nimport countries from '../constants/countries'\nimport { forwardSpaceProps } from '../utils'\nimport { useField } from './hooks'\nimport type { ComponentProps } from '../component-types'\nimport { FormError } from '../types'\nimport type { FieldProps, FieldHelpProps } from '../field-types'\nimport SharedContext from '../../../shared/Context'\n\nexport type Props = ComponentProps &\n FieldHelpProps &\n FieldProps<string> & {\n width?: false | 'small' | 'medium' | 'large' | 'stretch'\n }\n\nfunction CountryCode(props: Props) {\n const sharedContext = useContext(SharedContext)\n const {\n className,\n layout = 'vertical',\n placeholder,\n label = sharedContext?.translation.Forms.countryCodeLabel,\n value,\n emptyValue,\n info,\n warning,\n error,\n disabled,\n help,\n width,\n handleFocus,\n handleBlur,\n handleChange,\n } = useField(props)\n\n const autocompleteData = useMemo(\n () =>\n countries.map((country) => ({\n selected_key: `+${country.code}`,\n selected_value: `${country.iso} (+${country.code})`,\n content: `+${country.code} ${country.name}`,\n })),\n []\n )\n\n const forwardHandleChange = useCallback(\n ({ data: changedData }: { data: { selected_key: string } }) => {\n if (!changedData || !changedData.selected_key.trim()) {\n handleChange?.(emptyValue)\n return\n }\n\n handleChange?.(changedData?.selected_key)\n },\n [emptyValue, handleChange]\n )\n\n const valueIndex = autocompleteData.findIndex(\n (item) => item.selected_key === value\n )\n\n return (\n <Autocomplete\n className={classnames(\n 'dnb-forms-field-country-code',\n width !== undefined &&\n `dnb-forms-field-country-code--width-${width}`,\n className\n )}\n placeholder={placeholder ?? ' '}\n label_direction={layout}\n label={label}\n data={autocompleteData}\n value={valueIndex}\n disabled={disabled}\n on_focus={handleFocus}\n on_blur={handleBlur}\n on_change={forwardHandleChange}\n status={\n error?.message ??\n ((warning instanceof Error && warning.message) ||\n (warning instanceof FormError && warning.message) ||\n warning?.toString() ||\n (info instanceof Error && info.message) ||\n (info instanceof FormError && info.message) ||\n info?.toString())\n }\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.contents}</HelpButton>\n ) : undefined\n }\n independent_width\n search_numbers\n {...forwardSpaceProps(props)}\n stretch={width === 'stretch'}\n />\n )\n}\n\nCountryCode._supportsEufemiaSpacingProps = true\nexport default CountryCode\n"],"mappings":"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"}
1
+ {"version":3,"file":"CountryCode.js","names":["React","useContext","useCallback","useMemo","Autocomplete","HelpButton","classnames","countries","useDataValue","FormError","pickSpacingProps","SharedContext","CountryCode","props","sharedContext","className","layout","placeholder","label","translation","Forms","countryCodeLabel","value","emptyValue","info","warning","error","disabled","help","width","handleFocus","handleBlur","handleChange","autocompleteData","map","country","selected_key","code","selected_value","iso","content","name","forwardHandleChange","_ref","data","changedData","trim","valueIndex","findIndex","item","createElement","_extends","undefined","label_direction","on_focus","on_blur","on_change","status","message","Error","toString","suffix","title","contents","independent_width","search_numbers","stretch","_supportsEufemiaSpacingProps"],"sources":["../../../../../src/extensions/forms/Field/CountryCode.tsx"],"sourcesContent":["import React, { useContext, useCallback, useMemo } from 'react'\nimport { Autocomplete, HelpButton } from '../../../components'\nimport classnames from 'classnames'\nimport countries from '../constants/countries'\nimport { useDataValue } from '../hooks'\nimport {\n FormError,\n FieldProps,\n FieldHelpProps,\n pickSpacingProps,\n} from '../types'\nimport SharedContext from '../../../shared/Context'\n\nexport type Props = FieldHelpProps &\n FieldProps<string> & {\n width?: false | 'small' | 'medium' | 'large' | 'stretch'\n }\n\nfunction CountryCode(props: Props) {\n const sharedContext = useContext(SharedContext)\n const {\n className,\n layout = 'vertical',\n placeholder,\n label = sharedContext?.translation.Forms.countryCodeLabel,\n value,\n emptyValue,\n info,\n warning,\n error,\n disabled,\n help,\n width,\n handleFocus,\n handleBlur,\n handleChange,\n } = useDataValue(props)\n\n const autocompleteData = useMemo(\n () =>\n countries.map((country) => ({\n selected_key: `+${country.code}`,\n selected_value: `${country.iso} (+${country.code})`,\n content: `+${country.code} ${country.name}`,\n })),\n []\n )\n\n const forwardHandleChange = useCallback(\n ({ data: changedData }: { data: { selected_key: string } }) => {\n if (!changedData || !changedData.selected_key.trim()) {\n handleChange?.(emptyValue)\n return\n }\n\n handleChange?.(changedData?.selected_key)\n },\n [emptyValue, handleChange]\n )\n\n const valueIndex = autocompleteData.findIndex(\n (item) => item.selected_key === value\n )\n\n return (\n <Autocomplete\n className={classnames(\n 'dnb-forms-field-country-code',\n width !== undefined &&\n `dnb-forms-field-country-code--width-${width}`,\n className\n )}\n placeholder={placeholder ?? ' '}\n label_direction={layout}\n label={label}\n data={autocompleteData}\n value={valueIndex}\n disabled={disabled}\n on_focus={handleFocus}\n on_blur={handleBlur}\n on_change={forwardHandleChange}\n status={\n error?.message ??\n ((warning instanceof Error && warning.message) ||\n (warning instanceof FormError && warning.message) ||\n warning?.toString() ||\n (info instanceof Error && info.message) ||\n (info instanceof FormError && info.message) ||\n info?.toString())\n }\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.contents}</HelpButton>\n ) : undefined\n }\n independent_width\n search_numbers\n {...pickSpacingProps(props)}\n stretch={width === 'stretch'}\n />\n )\n}\n\nCountryCode._supportsEufemiaSpacingProps = true\nexport default CountryCode\n"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
- import type { ComponentProps } from '../component-types';
2
- import type { FieldProps, FieldHelpProps } from '../field-types';
3
- export type Props = ComponentProps & FieldHelpProps & FieldProps<number, undefined> & {
1
+ import type { FieldProps, FieldHelpProps } from '../types';
2
+ export type Props = FieldHelpProps & FieldProps<number, undefined> & {
4
3
  currency?: string;
5
4
  };
6
5
  declare function Currency(props: Props): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"Currency.js","names":["React","classnames","NumberComponent","Currency","props","preparedProps","_objectSpread","currency","placeholder","createElement","_extends","className","_supportsEufemiaSpacingProps"],"sources":["../../../../../src/extensions/forms/Field/Currency.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport NumberComponent from './Number'\nimport type { ComponentProps } from '../component-types'\nimport type { FieldProps, FieldHelpProps } from '../field-types'\n\nexport type Props = ComponentProps &\n FieldHelpProps &\n FieldProps<number, undefined> & {\n currency?: string\n }\n\nfunction Currency(props: Props) {\n const preparedProps = {\n ...props,\n currency: props.currency ?? 'NOK',\n placeholder: props.placeholder ?? 'kr',\n }\n\n return (\n <NumberComponent\n {...preparedProps}\n className={classnames('dnb-forms-field-currency', props.className)}\n />\n )\n}\n\nCurrency._supportsEufemiaSpacingProps = true\nexport default Currency\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,eAAe,MAAM,UAAU;AAUtC,SAASC,QAAQA,CAACC,KAAY,EAAE;EAC9B,MAAMC,aAAa,GAAAC,aAAA,CAAAA,aAAA,KACdF,KAAK;IACRG,QAAQ,EAAEH,KAAK,CAACG,QAAQ,IAAI,KAAK;IACjCC,WAAW,EAAEJ,KAAK,CAACI,WAAW,IAAI;EAAI,EACvC;EAED,OACER,KAAA,CAAAS,aAAA,CAACP,eAAe,EAAAQ,QAAA,KACVL,aAAa;IACjBM,SAAS,EAAEV,UAAU,CAAC,0BAA0B,EAAEG,KAAK,CAACO,SAAS;EAAE,EACpE,CAAC;AAEN;AAEAR,QAAQ,CAACS,4BAA4B,GAAG,IAAI;AAC5C,eAAeT,QAAQ"}
1
+ {"version":3,"file":"Currency.js","names":["React","classnames","NumberComponent","Currency","props","preparedProps","_objectSpread","currency","placeholder","createElement","_extends","className","_supportsEufemiaSpacingProps"],"sources":["../../../../../src/extensions/forms/Field/Currency.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport NumberComponent from './Number'\nimport type { FieldProps, FieldHelpProps } from '../types'\n\nexport type Props = FieldHelpProps &\n FieldProps<number, undefined> & {\n currency?: string\n }\n\nfunction Currency(props: Props) {\n const preparedProps = {\n ...props,\n currency: props.currency ?? 'NOK',\n placeholder: props.placeholder ?? 'kr',\n }\n\n return (\n <NumberComponent\n {...preparedProps}\n className={classnames('dnb-forms-field-currency', props.className)}\n />\n )\n}\n\nCurrency._supportsEufemiaSpacingProps = true\nexport default Currency\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,eAAe,MAAM,UAAU;AAQtC,SAASC,QAAQA,CAACC,KAAY,EAAE;EAC9B,MAAMC,aAAa,GAAAC,aAAA,CAAAA,aAAA,KACdF,KAAK;IACRG,QAAQ,EAAEH,KAAK,CAACG,QAAQ,IAAI,KAAK;IACjCC,WAAW,EAAEJ,KAAK,CAACI,WAAW,IAAI;EAAI,EACvC;EAED,OACER,KAAA,CAAAS,aAAA,CAACP,eAAe,EAAAQ,QAAA,KACVL,aAAa;IACjBM,SAAS,EAAEV,UAAU,CAAC,0BAA0B,EAAEG,KAAK,CAACO,SAAS;EAAE,EACpE,CAAC;AAEN;AAEAR,QAAQ,CAACS,4BAA4B,GAAG,IAAI;AAC5C,eAAeT,QAAQ"}
@@ -1,6 +1,5 @@
1
- import type { ComponentProps } from '../component-types';
2
- import type { FieldProps, FieldHelpProps } from '../field-types';
3
- export type Props = ComponentProps & FieldHelpProps & FieldProps<string>;
1
+ import { FieldProps, FieldHelpProps } from '../types';
2
+ export type Props = FieldHelpProps & FieldProps<string>;
4
3
  declare function DateComponent(props: Props): import("react/jsx-runtime").JSX.Element;
5
4
  declare namespace DateComponent {
6
5
  var _supportsEufemiaSpacingProps: boolean;
@@ -4,8 +4,8 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
4
4
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5
5
  import React, { useContext } from 'react';
6
6
  import { DatePicker, HelpButton } from '../../../components';
7
- import { forwardSpaceProps } from '../utils';
8
- import { useField } from './hooks';
7
+ import { useDataValue } from '../hooks';
8
+ import { pickSpacingProps } from '../types';
9
9
  import SharedContext from '../../../shared/Context';
10
10
  function DateComponent(props) {
11
11
  const sharedContext = useContext(SharedContext);
@@ -27,7 +27,7 @@ function DateComponent(props) {
27
27
  handleFocus,
28
28
  handleBlur,
29
29
  handleChange
30
- } = useField(preparedProps);
30
+ } = useDataValue(preparedProps);
31
31
  return React.createElement(DatePicker, _extends({
32
32
  className: className,
33
33
  label: label ?? (sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.dateLabel),
@@ -44,7 +44,7 @@ function DateComponent(props) {
44
44
  on_change: handleChange,
45
45
  on_show: handleFocus,
46
46
  on_hide: handleBlur
47
- }, forwardSpaceProps(props)));
47
+ }, pickSpacingProps(props)));
48
48
  }
49
49
  DateComponent._supportsEufemiaSpacingProps = true;
50
50
  export default DateComponent;
@@ -1 +1 @@
1
- {"version":3,"file":"Date.js","names":["React","useContext","DatePicker","HelpButton","forwardSpaceProps","useField","SharedContext","DateComponent","props","sharedContext","preparedProps","_objectSpread","fromInput","_ref","date","className","label","value","help","error","disabled","handleFocus","handleBlur","handleChange","createElement","_extends","translation","Forms","dateLabel","label_direction","status","message","show_input","show_cancel_button","show_reset_button","suffix","title","contents","undefined","on_change","on_show","on_hide","_supportsEufemiaSpacingProps"],"sources":["../../../../../src/extensions/forms/Field/Date.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport { DatePicker, HelpButton } from '../../../components'\nimport { forwardSpaceProps } from '../utils'\nimport { useField } from './hooks'\nimport type { ComponentProps } from '../component-types'\nimport type { FieldProps, FieldHelpProps } from '../field-types'\nimport SharedContext from '../../../shared/Context'\n\nexport type Props = ComponentProps & FieldHelpProps & FieldProps<string>\n\nfunction DateComponent(props: Props) {\n const sharedContext = useContext(SharedContext)\n const preparedProps: Props = {\n ...props,\n fromInput: ({ date }: { date: string }) => {\n return date\n },\n }\n\n const {\n className,\n label,\n value,\n help,\n error,\n disabled,\n handleFocus,\n handleBlur,\n handleChange,\n } = useField(preparedProps)\n\n return (\n <DatePicker\n className={className}\n label={label ?? sharedContext?.translation.Forms.dateLabel}\n label_direction=\"vertical\"\n date={value}\n status={error?.message}\n disabled={disabled}\n show_input={true}\n show_cancel_button={true}\n show_reset_button={true}\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.contents}</HelpButton>\n ) : undefined\n }\n on_change={handleChange}\n on_show={handleFocus}\n on_hide={handleBlur}\n {...forwardSpaceProps(props)}\n />\n )\n}\n\nDateComponent._supportsEufemiaSpacingProps = true\nexport default DateComponent\n"],"mappings":";;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,SAASC,UAAU,EAAEC,UAAU,QAAQ,qBAAqB;AAC5D,SAASC,iBAAiB,QAAQ,UAAU;AAC5C,SAASC,QAAQ,QAAQ,SAAS;AAGlC,OAAOC,aAAa,MAAM,yBAAyB;AAInD,SAASC,aAAaA,CAACC,KAAY,EAAE;EACnC,MAAMC,aAAa,GAAGR,UAAU,CAACK,aAAa,CAAC;EAC/C,MAAMI,aAAoB,GAAAC,aAAA,CAAAA,aAAA,KACrBH,KAAK;IACRI,SAAS,EAAEC,IAAA,IAAgC;MAAA,IAA/B;QAAEC;MAAuB,CAAC,GAAAD,IAAA;MACpC,OAAOC,IAAI;IACb;EAAC,EACF;EAED,MAAM;IACJC,SAAS;IACTC,KAAK;IACLC,KAAK;IACLC,IAAI;IACJC,KAAK;IACLC,QAAQ;IACRC,WAAW;IACXC,UAAU;IACVC;EACF,CAAC,GAAGlB,QAAQ,CAACK,aAAa,CAAC;EAE3B,OACEV,KAAA,CAAAwB,aAAA,CAACtB,UAAU,EAAAuB,QAAA;IACTV,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAK,KAAIP,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEiB,WAAW,CAACC,KAAK,CAACC,SAAS,CAAC;IAC3DC,eAAe,EAAC,UAAU;IAC1Bf,IAAI,EAAEG,KAAM;IACZa,MAAM,EAAEX,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEY,OAAQ;IACvBX,QAAQ,EAAEA,QAAS;IACnBY,UAAU,EAAE,IAAK;IACjBC,kBAAkB,EAAE,IAAK;IACzBC,iBAAiB,EAAE,IAAK;IACxBC,MAAM,EACJjB,IAAI,GACFlB,KAAA,CAAAwB,aAAA,CAACrB,UAAU;MAACiC,KAAK,EAAElB,IAAI,CAACkB;IAAM,GAAElB,IAAI,CAACmB,QAAqB,CAAC,GACzDC,SACL;IACDC,SAAS,EAAEhB,YAAa;IACxBiB,OAAO,EAAEnB,WAAY;IACrBoB,OAAO,EAAEnB;EAAW,GAChBlB,iBAAiB,CAACI,KAAK,CAAC,CAC7B,CAAC;AAEN;AAEAD,aAAa,CAACmC,4BAA4B,GAAG,IAAI;AACjD,eAAenC,aAAa"}
1
+ {"version":3,"file":"Date.js","names":["React","useContext","DatePicker","HelpButton","useDataValue","pickSpacingProps","SharedContext","DateComponent","props","sharedContext","preparedProps","_objectSpread","fromInput","_ref","date","className","label","value","help","error","disabled","handleFocus","handleBlur","handleChange","createElement","_extends","translation","Forms","dateLabel","label_direction","status","message","show_input","show_cancel_button","show_reset_button","suffix","title","contents","undefined","on_change","on_show","on_hide","_supportsEufemiaSpacingProps"],"sources":["../../../../../src/extensions/forms/Field/Date.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport { DatePicker, HelpButton } from '../../../components'\nimport { useDataValue } from '../hooks'\nimport { FieldProps, FieldHelpProps, pickSpacingProps } from '../types'\nimport SharedContext from '../../../shared/Context'\n\nexport type Props = FieldHelpProps & FieldProps<string>\n\nfunction DateComponent(props: Props) {\n const sharedContext = useContext(SharedContext)\n const preparedProps: Props = {\n ...props,\n fromInput: ({ date }: { date: string }) => {\n return date\n },\n }\n\n const {\n className,\n label,\n value,\n help,\n error,\n disabled,\n handleFocus,\n handleBlur,\n handleChange,\n } = useDataValue(preparedProps)\n\n return (\n <DatePicker\n className={className}\n label={label ?? sharedContext?.translation.Forms.dateLabel}\n label_direction=\"vertical\"\n date={value}\n status={error?.message}\n disabled={disabled}\n show_input={true}\n show_cancel_button={true}\n show_reset_button={true}\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.contents}</HelpButton>\n ) : undefined\n }\n on_change={handleChange}\n on_show={handleFocus}\n on_hide={handleBlur}\n {...pickSpacingProps(props)}\n />\n )\n}\n\nDateComponent._supportsEufemiaSpacingProps = true\nexport default DateComponent\n"],"mappings":";;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,SAASC,UAAU,EAAEC,UAAU,QAAQ,qBAAqB;AAC5D,SAASC,YAAY,QAAQ,UAAU;AACvC,SAAqCC,gBAAgB,QAAQ,UAAU;AACvE,OAAOC,aAAa,MAAM,yBAAyB;AAInD,SAASC,aAAaA,CAACC,KAAY,EAAE;EACnC,MAAMC,aAAa,GAAGR,UAAU,CAACK,aAAa,CAAC;EAC/C,MAAMI,aAAoB,GAAAC,aAAA,CAAAA,aAAA,KACrBH,KAAK;IACRI,SAAS,EAAEC,IAAA,IAAgC;MAAA,IAA/B;QAAEC;MAAuB,CAAC,GAAAD,IAAA;MACpC,OAAOC,IAAI;IACb;EAAC,EACF;EAED,MAAM;IACJC,SAAS;IACTC,KAAK;IACLC,KAAK;IACLC,IAAI;IACJC,KAAK;IACLC,QAAQ;IACRC,WAAW;IACXC,UAAU;IACVC;EACF,CAAC,GAAGnB,YAAY,CAACM,aAAa,CAAC;EAE/B,OACEV,KAAA,CAAAwB,aAAA,CAACtB,UAAU,EAAAuB,QAAA;IACTV,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAK,KAAIP,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEiB,WAAW,CAACC,KAAK,CAACC,SAAS,CAAC;IAC3DC,eAAe,EAAC,UAAU;IAC1Bf,IAAI,EAAEG,KAAM;IACZa,MAAM,EAAEX,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEY,OAAQ;IACvBX,QAAQ,EAAEA,QAAS;IACnBY,UAAU,EAAE,IAAK;IACjBC,kBAAkB,EAAE,IAAK;IACzBC,iBAAiB,EAAE,IAAK;IACxBC,MAAM,EACJjB,IAAI,GACFlB,KAAA,CAAAwB,aAAA,CAACrB,UAAU;MAACiC,KAAK,EAAElB,IAAI,CAACkB;IAAM,GAAElB,IAAI,CAACmB,QAAqB,CAAC,GACzDC,SACL;IACDC,SAAS,EAAEhB,YAAa;IACxBiB,OAAO,EAAEnB,WAAY;IACrBoB,OAAO,EAAEnB;EAAW,GAChBjB,gBAAgB,CAACG,KAAK,CAAC,CAC5B,CAAC;AAEN;AAEAD,aAAa,CAACmC,4BAA4B,GAAG,IAAI;AACjD,eAAenC,aAAa"}
@@ -1,6 +1,5 @@
1
1
  import { InputMaskedProps } from '../../../components/InputMasked';
2
- import type { ComponentProps } from '../component-types';
3
- import type { FieldProps, FieldHelpProps } from '../field-types';
2
+ import { FieldProps, FieldHelpProps } from '../types';
4
3
  interface ErrorMessages {
5
4
  required?: string;
6
5
  schema?: string;
@@ -10,7 +9,7 @@ interface ErrorMessages {
10
9
  exclusiveMaximum?: string;
11
10
  multipleOf?: string;
12
11
  }
13
- export type Props = ComponentProps & FieldHelpProps & FieldProps<number, undefined, ErrorMessages> & {
12
+ export type Props = FieldHelpProps & FieldProps<number, undefined, ErrorMessages> & {
14
13
  inputClassName?: string;
15
14
  currency?: InputMaskedProps['as_currency'];
16
15
  percent?: InputMaskedProps['as_percent'];
@@ -5,9 +5,9 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
5
5
  import React, { useMemo } from 'react';
6
6
  import { InputMasked, HelpButton } from '../../../components';
7
7
  import classnames from 'classnames';
8
- import { forwardSpaceProps } from '../utils';
9
8
  import FieldBlock from '../FieldBlock';
10
- import { useField } from './hooks';
9
+ import { useDataValue } from '../hooks';
10
+ import { pickSpacingProps } from '../types';
11
11
  function NumberComponent(props) {
12
12
  const {
13
13
  currency,
@@ -91,7 +91,7 @@ function NumberComponent(props) {
91
91
  handleFocus,
92
92
  handleBlur,
93
93
  handleChange
94
- } = useField(preparedProps);
94
+ } = useDataValue(preparedProps);
95
95
  return React.createElement(FieldBlock, _extends({
96
96
  className: classnames('dnb-forms-field-number', className),
97
97
  forId: id,
@@ -103,7 +103,7 @@ function NumberComponent(props) {
103
103
  warning: warning,
104
104
  error: error,
105
105
  contentsWidth: width !== false ? width : undefined
106
- }, forwardSpaceProps(props)), React.createElement(InputMasked, _extends({
106
+ }, pickSpacingProps(props)), React.createElement(InputMasked, _extends({
107
107
  id: id,
108
108
  className: classnames('dnb-forms-field-number__input', inputClassName),
109
109
  placeholder: placeholder,
@@ -1 +1 @@
1
- {"version":3,"file":"Number.js","names":["React","useMemo","InputMasked","HelpButton","classnames","forwardSpaceProps","FieldBlock","useField","NumberComponent","props","currency","percent","mask","thousandSeparator","decimalSymbol","decimalLimit","prefix","suffix","rightAligned","maskProps","as_currency","as_percent","as_number","number_mask","includeThousandsSeparator","undefined","thousandsSeparatorSymbol","preparedProps","_objectSpread","schema","type","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","toInput","external","fromInput","_ref","value","numberValue","emptyValue","width","id","className","inputClassName","layout","placeholder","label","labelDescription","labelSecondary","disabled","info","warning","error","help","handleFocus","handleBlur","handleChange","createElement","_extends","forId","contentsWidth","right","on_focus","on_blur","on_change","stretch","title","contents","_supportsEufemiaSpacingProps"],"sources":["../../../../../src/extensions/forms/Field/Number.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport { InputMasked, HelpButton } from '../../../components'\nimport { InputMaskedProps } from '../../../components/InputMasked'\nimport classnames from 'classnames'\nimport { forwardSpaceProps } from '../utils'\nimport FieldBlock from '../FieldBlock'\nimport { useField } from './hooks'\nimport type { ComponentProps } from '../component-types'\nimport type { FieldProps, FieldHelpProps } from '../field-types'\n\ninterface ErrorMessages {\n required?: string\n schema?: string\n minimum?: string\n maximum?: string\n exclusiveMinimum?: string\n exclusiveMaximum?: string\n multipleOf?: string\n}\n\nexport type Props = ComponentProps &\n FieldHelpProps &\n FieldProps<number, undefined, ErrorMessages> & {\n inputClassName?: string\n currency?: InputMaskedProps['as_currency']\n percent?: InputMaskedProps['as_percent']\n mask?: InputMaskedProps['mask']\n // Formatting\n thousandSeparator?: string | true\n decimalSymbol?: string\n decimalLimit?: number\n prefix?: string\n suffix?: string\n // Validation\n minimum?: number // aka greater than or equal to\n maximum?: number // aka less than or equal to\n exclusiveMinimum?: number // aka greater than\n exclusiveMaximum?: number // aka less than\n multipleOf?: number\n // Styling\n width?: false | 'small' | 'medium' | 'large' | 'stretch'\n rightAligned?: boolean\n }\n\nfunction NumberComponent(props: Props) {\n const {\n currency,\n percent,\n mask,\n thousandSeparator,\n decimalSymbol = ',',\n decimalLimit = 12,\n prefix,\n suffix,\n rightAligned,\n } = props\n\n const maskProps: Partial<InputMaskedProps> = useMemo(() => {\n if (currency) {\n return {\n as_currency: currency,\n }\n }\n if (percent) {\n return {\n as_percent: percent,\n }\n }\n // Custom mask based on props\n return {\n as_number: true,\n mask,\n number_mask: {\n decimalLimit,\n decimalSymbol,\n includeThousandsSeparator: thousandSeparator !== undefined,\n thousandsSeparatorSymbol:\n thousandSeparator === true ? ' ' : thousandSeparator,\n prefix,\n suffix,\n },\n }\n }, [\n currency,\n percent,\n mask,\n decimalLimit,\n decimalSymbol,\n thousandSeparator,\n prefix,\n suffix,\n ])\n\n const preparedProps: Props = {\n ...props,\n schema: props.schema ?? {\n type: 'number',\n minimum: props.minimum,\n maximum: props.maximum,\n exclusiveMinimum: props.exclusiveMinimum,\n exclusiveMaximum: props.exclusiveMaximum,\n multipleOf: props.multipleOf,\n },\n toInput: (external: number | undefined) => {\n if (external === undefined) {\n return ''\n }\n return external\n },\n fromInput: ({\n value,\n numberValue,\n }: {\n value: string\n numberValue: number\n }) => {\n if (value === '') {\n return emptyValue\n }\n return numberValue\n },\n width: props.width ?? 'medium',\n }\n\n const {\n id,\n className,\n inputClassName,\n layout,\n placeholder,\n label,\n labelDescription,\n labelSecondary,\n value,\n disabled,\n info,\n warning,\n error,\n help,\n emptyValue,\n width,\n handleFocus,\n handleBlur,\n handleChange,\n } = useField(preparedProps)\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-number', className)}\n forId={id}\n layout={layout}\n label={label}\n labelDescription={labelDescription}\n labelSecondary={labelSecondary}\n info={info}\n warning={warning}\n error={error}\n contentsWidth={width !== false ? width : undefined}\n {...forwardSpaceProps(props)}\n >\n <InputMasked\n id={id}\n className={classnames(\n 'dnb-forms-field-number__input',\n inputClassName\n )}\n placeholder={placeholder}\n value={value}\n {...maskProps}\n right={rightAligned}\n on_focus={handleFocus}\n on_blur={handleBlur}\n on_change={handleChange}\n disabled={disabled}\n stretch={width !== undefined}\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.contents}</HelpButton>\n ) : undefined\n }\n />\n </FieldBlock>\n )\n}\n\nNumberComponent._supportsEufemiaSpacingProps = true\nexport default NumberComponent\n"],"mappings":"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"}
1
+ {"version":3,"file":"Number.js","names":["React","useMemo","InputMasked","HelpButton","classnames","FieldBlock","useDataValue","pickSpacingProps","NumberComponent","props","currency","percent","mask","thousandSeparator","decimalSymbol","decimalLimit","prefix","suffix","rightAligned","maskProps","as_currency","as_percent","as_number","number_mask","includeThousandsSeparator","undefined","thousandsSeparatorSymbol","preparedProps","_objectSpread","schema","type","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","toInput","external","fromInput","_ref","value","numberValue","emptyValue","width","id","className","inputClassName","layout","placeholder","label","labelDescription","labelSecondary","disabled","info","warning","error","help","handleFocus","handleBlur","handleChange","createElement","_extends","forId","contentsWidth","right","on_focus","on_blur","on_change","stretch","title","contents","_supportsEufemiaSpacingProps"],"sources":["../../../../../src/extensions/forms/Field/Number.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport { InputMasked, HelpButton } from '../../../components'\nimport { InputMaskedProps } from '../../../components/InputMasked'\nimport classnames from 'classnames'\nimport FieldBlock from '../FieldBlock'\nimport { useDataValue } from '../hooks'\nimport { FieldProps, FieldHelpProps, pickSpacingProps } from '../types'\n\ninterface ErrorMessages {\n required?: string\n schema?: string\n minimum?: string\n maximum?: string\n exclusiveMinimum?: string\n exclusiveMaximum?: string\n multipleOf?: string\n}\n\nexport type Props = FieldHelpProps &\n FieldProps<number, undefined, ErrorMessages> & {\n inputClassName?: string\n currency?: InputMaskedProps['as_currency']\n percent?: InputMaskedProps['as_percent']\n mask?: InputMaskedProps['mask']\n // Formatting\n thousandSeparator?: string | true\n decimalSymbol?: string\n decimalLimit?: number\n prefix?: string\n suffix?: string\n // Validation\n minimum?: number // aka greater than or equal to\n maximum?: number // aka less than or equal to\n exclusiveMinimum?: number // aka greater than\n exclusiveMaximum?: number // aka less than\n multipleOf?: number\n // Styling\n width?: false | 'small' | 'medium' | 'large' | 'stretch'\n rightAligned?: boolean\n }\n\nfunction NumberComponent(props: Props) {\n const {\n currency,\n percent,\n mask,\n thousandSeparator,\n decimalSymbol = ',',\n decimalLimit = 12,\n prefix,\n suffix,\n rightAligned,\n } = props\n\n const maskProps: Partial<InputMaskedProps> = useMemo(() => {\n if (currency) {\n return {\n as_currency: currency,\n }\n }\n if (percent) {\n return {\n as_percent: percent,\n }\n }\n // Custom mask based on props\n return {\n as_number: true,\n mask,\n number_mask: {\n decimalLimit,\n decimalSymbol,\n includeThousandsSeparator: thousandSeparator !== undefined,\n thousandsSeparatorSymbol:\n thousandSeparator === true ? ' ' : thousandSeparator,\n prefix,\n suffix,\n },\n }\n }, [\n currency,\n percent,\n mask,\n decimalLimit,\n decimalSymbol,\n thousandSeparator,\n prefix,\n suffix,\n ])\n\n const preparedProps: Props = {\n ...props,\n schema: props.schema ?? {\n type: 'number',\n minimum: props.minimum,\n maximum: props.maximum,\n exclusiveMinimum: props.exclusiveMinimum,\n exclusiveMaximum: props.exclusiveMaximum,\n multipleOf: props.multipleOf,\n },\n toInput: (external: number | undefined) => {\n if (external === undefined) {\n return ''\n }\n return external\n },\n fromInput: ({\n value,\n numberValue,\n }: {\n value: string\n numberValue: number\n }) => {\n if (value === '') {\n return emptyValue\n }\n return numberValue\n },\n width: props.width ?? 'medium',\n }\n\n const {\n id,\n className,\n inputClassName,\n layout,\n placeholder,\n label,\n labelDescription,\n labelSecondary,\n value,\n disabled,\n info,\n warning,\n error,\n help,\n emptyValue,\n width,\n handleFocus,\n handleBlur,\n handleChange,\n } = useDataValue(preparedProps)\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-number', className)}\n forId={id}\n layout={layout}\n label={label}\n labelDescription={labelDescription}\n labelSecondary={labelSecondary}\n info={info}\n warning={warning}\n error={error}\n contentsWidth={width !== false ? width : undefined}\n {...pickSpacingProps(props)}\n >\n <InputMasked\n id={id}\n className={classnames(\n 'dnb-forms-field-number__input',\n inputClassName\n )}\n placeholder={placeholder}\n value={value}\n {...maskProps}\n right={rightAligned}\n on_focus={handleFocus}\n on_blur={handleBlur}\n on_change={handleChange}\n disabled={disabled}\n stretch={width !== undefined}\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.contents}</HelpButton>\n ) : undefined\n }\n />\n </FieldBlock>\n )\n}\n\nNumberComponent._supportsEufemiaSpacingProps = true\nexport default NumberComponent\n"],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
- import type { ComponentProps } from '../component-types';
3
- import type { FieldProps } from '../field-types';
4
- export type Props = ComponentProps & FieldProps<number | string> & {
2
+ import type { FieldProps } from '../types';
3
+ export type Props = FieldProps<number | string> & {
5
4
  title?: string;
6
5
  text?: string;
7
6
  children?: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"Option.js","names":["React","classnames","Option","_ref","className","title","text","children","createElement","role"],"sources":["../../../../../src/extensions/forms/Field/Option.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport type { ComponentProps } from '../component-types'\nimport type { FieldProps } from '../field-types'\n\nexport type Props = ComponentProps &\n FieldProps<number | string> & {\n title?: string\n text?: string\n children?: React.ReactNode\n }\n\nexport default function Option({\n className,\n title,\n text,\n children,\n}: Props) {\n return (\n <span\n className={classnames('dnb-forms-field-option', className)}\n // eslint-disable-next-line jsx-a11y/role-has-required-aria-props\n role=\"option\"\n >\n {children ?? title}\n {text}\n </span>\n )\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AAWnC,eAAe,SAASC,MAAMA,CAAAC,IAAA,EAKpB;EAAA,IALqB;IAC7BC,SAAS;IACTC,KAAK;IACLC,IAAI;IACJC;EACK,CAAC,GAAAJ,IAAA;EACN,OACEH,KAAA,CAAAQ,aAAA;IACEJ,SAAS,EAAEH,UAAU,CAAC,wBAAwB,EAAEG,SAAS,CAAE;IAE3DK,IAAI,EAAC;EAAQ,GAEZF,QAAQ,IAAIF,KAAK,EACjBC,IACG,CAAC;AAEX"}
1
+ {"version":3,"file":"Option.js","names":["React","classnames","Option","_ref","className","title","text","children","createElement","role"],"sources":["../../../../../src/extensions/forms/Field/Option.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport type { FieldProps } from '../types'\n\nexport type Props = FieldProps<number | string> & {\n title?: string\n text?: string\n children?: React.ReactNode\n}\n\nexport default function Option({\n className,\n title,\n text,\n children,\n}: Props) {\n return (\n <span\n className={classnames('dnb-forms-field-option', className)}\n // eslint-disable-next-line jsx-a11y/role-has-required-aria-props\n role=\"option\"\n >\n {children ?? title}\n {text}\n </span>\n )\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AASnC,eAAe,SAASC,MAAMA,CAAAC,IAAA,EAKpB;EAAA,IALqB;IAC7BC,SAAS;IACTC,KAAK;IACLC,IAAI;IACJC;EACK,CAAC,GAAAJ,IAAA;EACN,OACEH,KAAA,CAAAQ,aAAA;IACEJ,SAAS,EAAEH,UAAU,CAAC,wBAAwB,EAAEG,SAAS,CAAE;IAE3DK,IAAI,EAAC;EAAQ,GAEZF,QAAQ,IAAIF,KAAK,EACjBC,IACG,CAAC;AAEX"}
@@ -1,7 +1,6 @@
1
1
  import { InputMaskedProps } from '../../../components/InputMasked';
2
- import type { ComponentProps } from '../component-types';
3
- import type { FieldProps } from '../field-types';
4
- export type Props = ComponentProps & FieldProps<string, undefined> & {
2
+ import { FieldProps } from '../types';
3
+ export type Props = FieldProps<string, undefined> & {
5
4
  countryCodeFieldClassName?: string;
6
5
  numberFieldClassName?: string;
7
6
  countryCodeLabel?: string;
@@ -7,8 +7,8 @@ import { Div } from '../../../elements';
7
7
  import classnames from 'classnames';
8
8
  import CountryCode from './CountryCode';
9
9
  import StringComponent from './String';
10
- import { forwardSpaceProps } from '../utils';
11
- import { useField } from './hooks';
10
+ import { useDataValue } from '../hooks';
11
+ import { pickSpacingProps } from '../types';
12
12
  import SharedContext from '../../../shared/Context';
13
13
  function PhoneNumber(props) {
14
14
  const sharedContext = useContext(SharedContext);
@@ -38,7 +38,7 @@ function PhoneNumber(props) {
38
38
  handleChange,
39
39
  onCountryCodeChange,
40
40
  onNumberChange
41
- } = useField(preparedProps);
41
+ } = useDataValue(preparedProps);
42
42
  const [, countryCode, phoneNumber] = value !== undefined ? value.match(/^(\+[^ ]+)? ?(.*)$/) : [undefined, '', ''];
43
43
  const handleCountryCodeChange = useCallback(countryCode => {
44
44
  if (!countryCode && !phoneNumber) {
@@ -60,7 +60,7 @@ function PhoneNumber(props) {
60
60
  }, [countryCode, emptyValue, handleChange, onNumberChange]);
61
61
  return React.createElement(Div, _extends({
62
62
  className: classnames('dnb-forms-field-phone-number', className, width !== undefined && `dnb-forms-field-phone-number--width-${width}`)
63
- }, forwardSpaceProps(preparedProps)), React.createElement(CountryCode, {
63
+ }, pickSpacingProps(preparedProps)), React.createElement(CountryCode, {
64
64
  className: classnames('dnb-forms-field-phone-number__country-code', countryCodeFieldClassName),
65
65
  label: countryCodeLabel,
66
66
  value: countryCode ?? '+47',