@dnb/eufemia 10.41.0 → 10.43.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 (396) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/cjs/components/button/Button.d.ts +17 -0
  3. package/cjs/components/card/Card.d.ts +1 -1
  4. package/cjs/components/card/Card.js.map +1 -1
  5. package/cjs/components/tabs/Tabs.js +1 -1
  6. package/cjs/components/tabs/Tabs.js.map +1 -1
  7. package/cjs/elements/img/Img.d.ts +2 -1
  8. package/cjs/elements/img/Img.js +4 -2
  9. package/cjs/elements/img/Img.js.map +1 -1
  10. package/cjs/elements/lib.d.ts +1 -1
  11. package/cjs/elements/lists/style/lists-mixins.scss +25 -12
  12. package/cjs/extensions/forms/DataContext/Context.d.ts +2 -2
  13. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  14. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +13 -1
  15. package/cjs/extensions/forms/DataContext/Provider/Provider.js +15 -5
  16. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  17. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +1 -1
  18. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +8 -7
  19. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  20. package/cjs/extensions/forms/Field/ArraySelection/ArraySelectionDocs.d.ts +2 -0
  21. package/cjs/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +27 -0
  22. package/cjs/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -0
  23. package/cjs/extensions/forms/Field/Number/Number.js +14 -4
  24. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  25. package/cjs/extensions/forms/Field/String/String.d.ts +1 -0
  26. package/cjs/extensions/forms/Field/String/String.js +21 -2
  27. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  28. package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +20 -0
  29. package/cjs/extensions/forms/Form/Isolation/Isolation.js +68 -0
  30. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -0
  31. package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.d.ts +7 -0
  32. package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js +52 -0
  33. package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -0
  34. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.d.ts +3 -0
  35. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +40 -0
  36. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -0
  37. package/cjs/extensions/forms/Form/Isolation/index.d.ts +2 -0
  38. package/cjs/extensions/forms/Form/Isolation/index.js +27 -0
  39. package/cjs/extensions/forms/Form/Isolation/index.js.map +1 -0
  40. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js +6 -2
  41. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  42. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +26 -10
  43. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  44. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  45. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  46. package/cjs/extensions/forms/Form/Visibility/useVisibility.js +22 -19
  47. package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  48. package/cjs/extensions/forms/Form/index.d.ts +1 -0
  49. package/cjs/extensions/forms/Form/index.js +7 -0
  50. package/cjs/extensions/forms/Form/index.js.map +1 -1
  51. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +4 -4
  52. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  53. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +3 -6
  54. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  55. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.scss +1 -4
  56. package/cjs/extensions/forms/Wizard/Step/Step.d.ts +1 -1
  57. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  58. package/cjs/extensions/forms/Wizard/Step/StepDocs.js +1 -1
  59. package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  60. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +3 -0
  61. package/cjs/extensions/forms/constants/locales/en-GB.js +3 -0
  62. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  63. package/cjs/extensions/forms/constants/locales/en-US.d.ts +3 -0
  64. package/cjs/extensions/forms/constants/locales/index.d.ts +6 -0
  65. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +3 -0
  66. package/cjs/extensions/forms/constants/locales/nb-NO.js +3 -0
  67. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  68. package/cjs/extensions/forms/hooks/useFieldProps.js +11 -11
  69. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  70. package/cjs/extensions/forms/hooks/usePath.d.ts +1 -1
  71. package/cjs/extensions/forms/hooks/usePath.js +9 -8
  72. package/cjs/extensions/forms/hooks/usePath.js.map +1 -1
  73. package/cjs/extensions/forms/style/dnb-forms.css +3 -6
  74. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  75. package/cjs/extensions/forms/types.d.ts +1 -0
  76. package/cjs/extensions/forms/types.js.map +1 -1
  77. package/cjs/extensions/payment-card/utils/Types.js.map +1 -1
  78. package/cjs/shared/Eufemia.d.ts +1 -1
  79. package/cjs/shared/Eufemia.js +2 -2
  80. package/cjs/shared/Eufemia.js.map +1 -1
  81. package/cjs/shared/helpers/extendPropsWithContext.js +3 -3
  82. package/cjs/shared/helpers/extendPropsWithContext.js.map +1 -1
  83. package/cjs/style/core/scopes.scss +1 -1
  84. package/cjs/style/dnb-ui-basis.css +1 -1
  85. package/cjs/style/dnb-ui-basis.min.css +1 -1
  86. package/cjs/style/dnb-ui-body.css +1 -1
  87. package/cjs/style/dnb-ui-body.min.css +1 -1
  88. package/cjs/style/dnb-ui-components.css +3 -6
  89. package/cjs/style/dnb-ui-components.min.css +1 -1
  90. package/cjs/style/dnb-ui-core.css +1 -1
  91. package/cjs/style/dnb-ui-core.min.css +1 -1
  92. package/cjs/style/dnb-ui-elements.css +26 -12
  93. package/cjs/style/dnb-ui-elements.min.css +1 -1
  94. package/cjs/style/dnb-ui-extensions.css +3 -6
  95. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  96. package/cjs/style/dnb-ui-forms.css +3 -6
  97. package/cjs/style/dnb-ui-forms.min.css +1 -1
  98. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +26 -12
  99. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  100. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +6 -12
  101. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  102. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +26 -12
  103. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  104. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -6
  105. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  106. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +3 -6
  107. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  108. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +26 -12
  109. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  110. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +6 -12
  111. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  112. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +26 -12
  113. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  114. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -6
  115. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  116. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +3 -6
  117. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  118. package/cjs/style/themes/theme-ui/ui-theme-basis.css +26 -12
  119. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  120. package/cjs/style/themes/theme-ui/ui-theme-components.css +6 -12
  121. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  122. package/cjs/style/themes/theme-ui/ui-theme-elements.css +26 -12
  123. package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  124. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +3 -6
  125. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  126. package/cjs/style/themes/theme-ui/ui-theme-forms.css +3 -6
  127. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  128. package/cjs/style/themes/theme-ui/ui-theme-tags.css +26 -12
  129. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  130. package/components/button/Button.d.ts +17 -0
  131. package/components/card/Card.d.ts +1 -1
  132. package/components/card/Card.js.map +1 -1
  133. package/components/tabs/Tabs.js +1 -1
  134. package/components/tabs/Tabs.js.map +1 -1
  135. package/elements/img/Img.d.ts +2 -1
  136. package/elements/img/Img.js +4 -2
  137. package/elements/img/Img.js.map +1 -1
  138. package/elements/lib.d.ts +1 -1
  139. package/elements/lists/style/lists-mixins.scss +25 -12
  140. package/es/components/button/Button.d.ts +17 -0
  141. package/es/components/card/Card.d.ts +1 -1
  142. package/es/components/card/Card.js.map +1 -1
  143. package/es/components/tabs/Tabs.js +1 -1
  144. package/es/components/tabs/Tabs.js.map +1 -1
  145. package/es/elements/img/Img.d.ts +2 -1
  146. package/es/elements/img/Img.js +4 -2
  147. package/es/elements/img/Img.js.map +1 -1
  148. package/es/elements/lib.d.ts +1 -1
  149. package/es/elements/lists/style/lists-mixins.scss +25 -12
  150. package/es/extensions/forms/DataContext/Context.d.ts +2 -2
  151. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  152. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +13 -1
  153. package/es/extensions/forms/DataContext/Provider/Provider.js +15 -5
  154. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  155. package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +1 -1
  156. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +8 -7
  157. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  158. package/es/extensions/forms/Field/ArraySelection/ArraySelectionDocs.d.ts +2 -0
  159. package/es/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +20 -0
  160. package/es/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -0
  161. package/es/extensions/forms/Field/Number/Number.js +14 -4
  162. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  163. package/es/extensions/forms/Field/String/String.d.ts +1 -0
  164. package/es/extensions/forms/Field/String/String.js +20 -2
  165. package/es/extensions/forms/Field/String/String.js.map +1 -1
  166. package/es/extensions/forms/Form/Isolation/Isolation.d.ts +20 -0
  167. package/es/extensions/forms/Form/Isolation/Isolation.js +57 -0
  168. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -0
  169. package/es/extensions/forms/Form/Isolation/IsolationCommitButton.d.ts +7 -0
  170. package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js +42 -0
  171. package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -0
  172. package/es/extensions/forms/Form/Isolation/IsolationDocs.d.ts +3 -0
  173. package/es/extensions/forms/Form/Isolation/IsolationDocs.js +30 -0
  174. package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -0
  175. package/es/extensions/forms/Form/Isolation/index.d.ts +2 -0
  176. package/es/extensions/forms/Form/Isolation/index.js +3 -0
  177. package/es/extensions/forms/Form/Isolation/index.js.map +1 -0
  178. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js +6 -2
  179. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  180. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +26 -10
  181. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  182. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  183. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  184. package/es/extensions/forms/Form/Visibility/useVisibility.js +22 -19
  185. package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  186. package/es/extensions/forms/Form/index.d.ts +1 -0
  187. package/es/extensions/forms/Form/index.js +1 -0
  188. package/es/extensions/forms/Form/index.js.map +1 -1
  189. package/es/extensions/forms/ValueBlock/ValueBlock.js +4 -4
  190. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  191. package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +3 -6
  192. package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  193. package/es/extensions/forms/ValueBlock/style/dnb-value-block.scss +1 -4
  194. package/es/extensions/forms/Wizard/Step/Step.d.ts +1 -1
  195. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  196. package/es/extensions/forms/Wizard/Step/StepDocs.js +1 -1
  197. package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  198. package/es/extensions/forms/constants/locales/en-GB.d.ts +3 -0
  199. package/es/extensions/forms/constants/locales/en-GB.js +3 -0
  200. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  201. package/es/extensions/forms/constants/locales/en-US.d.ts +3 -0
  202. package/es/extensions/forms/constants/locales/index.d.ts +6 -0
  203. package/es/extensions/forms/constants/locales/nb-NO.d.ts +3 -0
  204. package/es/extensions/forms/constants/locales/nb-NO.js +3 -0
  205. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  206. package/es/extensions/forms/hooks/useFieldProps.js +11 -11
  207. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  208. package/es/extensions/forms/hooks/usePath.d.ts +1 -1
  209. package/es/extensions/forms/hooks/usePath.js +8 -8
  210. package/es/extensions/forms/hooks/usePath.js.map +1 -1
  211. package/es/extensions/forms/style/dnb-forms.css +3 -6
  212. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  213. package/es/extensions/forms/types.d.ts +1 -0
  214. package/es/extensions/forms/types.js.map +1 -1
  215. package/es/extensions/payment-card/utils/Types.js.map +1 -1
  216. package/es/shared/Eufemia.d.ts +1 -1
  217. package/es/shared/Eufemia.js +2 -2
  218. package/es/shared/Eufemia.js.map +1 -1
  219. package/es/shared/helpers/extendPropsWithContext.js +3 -3
  220. package/es/shared/helpers/extendPropsWithContext.js.map +1 -1
  221. package/es/style/core/scopes.scss +1 -1
  222. package/es/style/dnb-ui-basis.css +1 -1
  223. package/es/style/dnb-ui-basis.min.css +1 -1
  224. package/es/style/dnb-ui-body.css +1 -1
  225. package/es/style/dnb-ui-body.min.css +1 -1
  226. package/es/style/dnb-ui-components.css +3 -6
  227. package/es/style/dnb-ui-components.min.css +1 -1
  228. package/es/style/dnb-ui-core.css +1 -1
  229. package/es/style/dnb-ui-core.min.css +1 -1
  230. package/es/style/dnb-ui-elements.css +26 -12
  231. package/es/style/dnb-ui-elements.min.css +1 -1
  232. package/es/style/dnb-ui-extensions.css +3 -6
  233. package/es/style/dnb-ui-extensions.min.css +1 -1
  234. package/es/style/dnb-ui-forms.css +3 -6
  235. package/es/style/dnb-ui-forms.min.css +1 -1
  236. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +26 -12
  237. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  238. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +6 -12
  239. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  240. package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +26 -12
  241. package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  242. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -6
  243. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  244. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +3 -6
  245. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  246. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +26 -12
  247. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  248. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +6 -12
  249. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  250. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +26 -12
  251. package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  252. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -6
  253. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  254. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +3 -6
  255. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  256. package/es/style/themes/theme-ui/ui-theme-basis.css +26 -12
  257. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  258. package/es/style/themes/theme-ui/ui-theme-components.css +6 -12
  259. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  260. package/es/style/themes/theme-ui/ui-theme-elements.css +26 -12
  261. package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  262. package/es/style/themes/theme-ui/ui-theme-extensions.css +3 -6
  263. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  264. package/es/style/themes/theme-ui/ui-theme-forms.css +3 -6
  265. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  266. package/es/style/themes/theme-ui/ui-theme-tags.css +26 -12
  267. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  268. package/esm/dnb-ui-basis.min.mjs +1 -1
  269. package/esm/dnb-ui-components.min.mjs +1 -1
  270. package/esm/dnb-ui-elements.min.mjs +1 -1
  271. package/esm/dnb-ui-extensions.min.mjs +2 -2
  272. package/esm/dnb-ui-lib.min.mjs +1 -1
  273. package/extensions/forms/DataContext/Context.d.ts +2 -2
  274. package/extensions/forms/DataContext/Context.js.map +1 -1
  275. package/extensions/forms/DataContext/Provider/Provider.d.ts +13 -1
  276. package/extensions/forms/DataContext/Provider/Provider.js +15 -5
  277. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  278. package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +1 -1
  279. package/extensions/forms/Field/ArraySelection/ArraySelection.js +8 -7
  280. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  281. package/extensions/forms/Field/ArraySelection/ArraySelectionDocs.d.ts +2 -0
  282. package/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +20 -0
  283. package/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -0
  284. package/extensions/forms/Field/Number/Number.js +14 -4
  285. package/extensions/forms/Field/Number/Number.js.map +1 -1
  286. package/extensions/forms/Field/String/String.d.ts +1 -0
  287. package/extensions/forms/Field/String/String.js +21 -2
  288. package/extensions/forms/Field/String/String.js.map +1 -1
  289. package/extensions/forms/Form/Isolation/Isolation.d.ts +20 -0
  290. package/extensions/forms/Form/Isolation/Isolation.js +57 -0
  291. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -0
  292. package/extensions/forms/Form/Isolation/IsolationCommitButton.d.ts +7 -0
  293. package/extensions/forms/Form/Isolation/IsolationCommitButton.js +42 -0
  294. package/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -0
  295. package/extensions/forms/Form/Isolation/IsolationDocs.d.ts +3 -0
  296. package/extensions/forms/Form/Isolation/IsolationDocs.js +30 -0
  297. package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -0
  298. package/extensions/forms/Form/Isolation/index.d.ts +2 -0
  299. package/extensions/forms/Form/Isolation/index.js +3 -0
  300. package/extensions/forms/Form/Isolation/index.js.map +1 -0
  301. package/extensions/forms/Form/SubmitButton/SubmitButton.js +6 -2
  302. package/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  303. package/extensions/forms/Form/Visibility/Visibility.d.ts +26 -10
  304. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  305. package/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  306. package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  307. package/extensions/forms/Form/Visibility/useVisibility.js +22 -19
  308. package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  309. package/extensions/forms/Form/index.d.ts +1 -0
  310. package/extensions/forms/Form/index.js +1 -0
  311. package/extensions/forms/Form/index.js.map +1 -1
  312. package/extensions/forms/ValueBlock/ValueBlock.js +4 -4
  313. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  314. package/extensions/forms/ValueBlock/style/dnb-value-block.css +3 -6
  315. package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  316. package/extensions/forms/ValueBlock/style/dnb-value-block.scss +1 -4
  317. package/extensions/forms/Wizard/Step/Step.d.ts +1 -1
  318. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  319. package/extensions/forms/Wizard/Step/StepDocs.js +1 -1
  320. package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  321. package/extensions/forms/constants/locales/en-GB.d.ts +3 -0
  322. package/extensions/forms/constants/locales/en-GB.js +3 -0
  323. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  324. package/extensions/forms/constants/locales/en-US.d.ts +3 -0
  325. package/extensions/forms/constants/locales/index.d.ts +6 -0
  326. package/extensions/forms/constants/locales/nb-NO.d.ts +3 -0
  327. package/extensions/forms/constants/locales/nb-NO.js +3 -0
  328. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  329. package/extensions/forms/hooks/useFieldProps.js +11 -11
  330. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  331. package/extensions/forms/hooks/usePath.d.ts +1 -1
  332. package/extensions/forms/hooks/usePath.js +9 -8
  333. package/extensions/forms/hooks/usePath.js.map +1 -1
  334. package/extensions/forms/style/dnb-forms.css +3 -6
  335. package/extensions/forms/style/dnb-forms.min.css +1 -1
  336. package/extensions/forms/types.d.ts +1 -0
  337. package/extensions/forms/types.js.map +1 -1
  338. package/extensions/payment-card/utils/Types.js.map +1 -1
  339. package/package.json +1 -1
  340. package/shared/Eufemia.d.ts +1 -1
  341. package/shared/Eufemia.js +2 -2
  342. package/shared/Eufemia.js.map +1 -1
  343. package/shared/helpers/extendPropsWithContext.js +3 -3
  344. package/shared/helpers/extendPropsWithContext.js.map +1 -1
  345. package/style/core/scopes.scss +1 -1
  346. package/style/dnb-ui-basis.css +1 -1
  347. package/style/dnb-ui-basis.min.css +1 -1
  348. package/style/dnb-ui-body.css +1 -1
  349. package/style/dnb-ui-body.min.css +1 -1
  350. package/style/dnb-ui-components.css +3 -6
  351. package/style/dnb-ui-components.min.css +1 -1
  352. package/style/dnb-ui-core.css +1 -1
  353. package/style/dnb-ui-core.min.css +1 -1
  354. package/style/dnb-ui-elements.css +26 -12
  355. package/style/dnb-ui-elements.min.css +1 -1
  356. package/style/dnb-ui-extensions.css +3 -6
  357. package/style/dnb-ui-extensions.min.css +1 -1
  358. package/style/dnb-ui-forms.css +3 -6
  359. package/style/dnb-ui-forms.min.css +1 -1
  360. package/style/themes/theme-eiendom/eiendom-theme-basis.css +26 -12
  361. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  362. package/style/themes/theme-eiendom/eiendom-theme-components.css +6 -12
  363. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  364. package/style/themes/theme-eiendom/eiendom-theme-elements.css +26 -12
  365. package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  366. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -6
  367. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  368. package/style/themes/theme-eiendom/eiendom-theme-forms.css +3 -6
  369. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  370. package/style/themes/theme-sbanken/sbanken-theme-basis.css +26 -12
  371. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  372. package/style/themes/theme-sbanken/sbanken-theme-components.css +6 -12
  373. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  374. package/style/themes/theme-sbanken/sbanken-theme-elements.css +26 -12
  375. package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  376. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -6
  377. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  378. package/style/themes/theme-sbanken/sbanken-theme-forms.css +3 -6
  379. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  380. package/style/themes/theme-ui/ui-theme-basis.css +26 -12
  381. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  382. package/style/themes/theme-ui/ui-theme-components.css +6 -12
  383. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  384. package/style/themes/theme-ui/ui-theme-elements.css +26 -12
  385. package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  386. package/style/themes/theme-ui/ui-theme-extensions.css +3 -6
  387. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  388. package/style/themes/theme-ui/ui-theme-forms.css +3 -6
  389. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  390. package/style/themes/theme-ui/ui-theme-tags.css +26 -12
  391. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  392. package/umd/dnb-ui-basis.min.js +1 -1
  393. package/umd/dnb-ui-components.min.js +1 -1
  394. package/umd/dnb-ui-elements.min.js +1 -1
  395. package/umd/dnb-ui-extensions.min.js +2 -2
  396. package/umd/dnb-ui-lib.min.js +1 -1
@@ -0,0 +1,20 @@
1
+ export const arraySelectionProperties = {
2
+ variant: {
3
+ doc: 'Choice of UI feature.',
4
+ type: [`'checkbox'`, `'button'`, `'checkbox-button'`],
5
+ defaultValue: `'checkbox'`,
6
+ status: 'optional'
7
+ },
8
+ optionsLayout: {
9
+ doc: 'Layout for the list of options.',
10
+ type: [`'horizontal'`, `'vertical'`],
11
+ defaultValue: `'vertical'`,
12
+ status: 'optional'
13
+ },
14
+ children: {
15
+ doc: 'For providing `<Field.Option>` components.',
16
+ type: 'React.Node',
17
+ status: 'optional'
18
+ }
19
+ };
20
+ //# sourceMappingURL=ArraySelectionDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArraySelectionDocs.js","names":["arraySelectionProperties","variant","doc","type","defaultValue","status","optionsLayout","children"],"sources":["../../../../../../src/extensions/forms/Field/ArraySelection/ArraySelectionDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const arraySelectionProperties: PropertiesTableProps = {\n variant: {\n doc: 'Choice of UI feature.',\n type: [`'checkbox'`, `'button'`, `'checkbox-button'`],\n defaultValue: `'checkbox'`,\n status: 'optional',\n },\n optionsLayout: {\n doc: 'Layout for the list of options.',\n type: [`'horizontal'`, `'vertical'`],\n defaultValue: `'vertical'`,\n status: 'optional',\n },\n children: {\n doc: 'For providing `<Field.Option>` components.',\n type: 'React.Node',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,wBAA8C,GAAG;EAC5DC,OAAO,EAAE;IACPC,GAAG,EAAE,uBAAuB;IAC5BC,IAAI,EAAE,CAAE,YAAW,EAAG,UAAS,EAAG,mBAAkB,CAAC;IACrDC,YAAY,EAAG,YAAW;IAC1BC,MAAM,EAAE;EACV,CAAC;EACDC,aAAa,EAAE;IACbJ,GAAG,EAAE,iCAAiC;IACtCC,IAAI,EAAE,CAAE,cAAa,EAAG,YAAW,CAAC;IACpCC,YAAY,EAAG,YAAW;IAC1BC,MAAM,EAAE;EACV,CAAC;EACDE,QAAQ,EAAE;IACRL,GAAG,EAAE,4CAA4C;IACjDC,IAAI,EAAE,YAAY;IAClBE,MAAM,EAAE;EACV;AACF,CAAC"}
@@ -15,8 +15,10 @@ import { pickSpacingProps } from '../../../../components/flex/utils';
15
15
  import { clamp } from '../../../../components/slider/SliderHelpers';
16
16
  import useErrorMessage from '../../hooks/useErrorMessage';
17
17
  import useTranslation from '../../hooks/useTranslation';
18
+ import DataContext from '../../DataContext/Context';
18
19
  function NumberComponent(props) {
19
- var _props$width, _sharedContext$transl, _sharedContext$transl2;
20
+ var _props$width, _dataContext$props2, _sharedContext$transl, _sharedContext$transl2;
21
+ const dataContext = useContext(DataContext);
20
22
  const fieldBlockContext = useContext(FieldBlockContext);
21
23
  const sharedContext = useContext(SharedContext);
22
24
  const translations = useTranslation();
@@ -141,16 +143,24 @@ function NumberComponent(props) {
141
143
  handleBlur,
142
144
  handleChange
143
145
  } = useFieldProps(preparedProps);
146
+ const {
147
+ handleSubmit
148
+ } = dataContext !== null && dataContext !== void 0 ? dataContext : {};
144
149
  const onKeyDownHandler = useCallback(_ref2 => {
150
+ var _dataContext$props;
145
151
  let {
146
- key,
147
152
  event
148
153
  } = _ref2;
154
+ if (dataContext !== null && dataContext !== void 0 && (_dataContext$props = dataContext.props) !== null && _dataContext$props !== void 0 && _dataContext$props.isolate && event.key === 'Enter') {
155
+ var _event$preventDefault;
156
+ handleSubmit();
157
+ (_event$preventDefault = event.preventDefault) === null || _event$preventDefault === void 0 ? void 0 : _event$preventDefault.call(event);
158
+ }
149
159
  if (!showStepControls) {
150
160
  return;
151
161
  }
152
162
  let numberValue = null;
153
- switch (key) {
163
+ switch (event.key) {
154
164
  case 'ArrowUp':
155
165
  numberValue = clamp((value !== null && value !== void 0 ? value : startWith) + step, minimum, maximum);
156
166
  break;
@@ -165,7 +175,7 @@ function NumberComponent(props) {
165
175
  numberValue
166
176
  });
167
177
  }
168
- }, [handleChange, maximum, minimum, showStepControls, startWith, step, value]);
178
+ }, [dataContext === null || dataContext === void 0 ? void 0 : (_dataContext$props2 = dataContext.props) === null || _dataContext$props2 === void 0 ? void 0 : _dataContext$props2.isolate, handleChange, handleSubmit, maximum, minimum, showStepControls, startWith, step, value]);
169
179
  const fieldBlockProps = _objectSpread({
170
180
  className: classnames("dnb-forms-field-number dnb-input__border--tokens", className),
171
181
  contentClassName: classnames('dnb-forms-field-number__contents', showStepControls && 'dnb-forms-field-number__contents--has-controls', hasError && 'dnb-input__status--error', disabled && 'dnb-input--disabled'),
@@ -1 +1 @@
1
- {"version":3,"file":"Number.js","names":["React","useContext","useMemo","useCallback","InputMasked","HelpButton","Button","SharedContext","FieldBlockContext","classnames","FieldBlock","useFieldProps","pickSpacingProps","clamp","useErrorMessage","useTranslation","NumberComponent","props","_props$width","_sharedContext$transl","_sharedContext$transl2","fieldBlockContext","sharedContext","translations","currency","currencyDisplay","percent","mask","step","decimalLimit","allowNegative","disallowLeadingZeroes","prefix","suffix","showStepControls","errorMessages","path","required","Field","errorRequired","minimum","NumberField","errorMinimum","maximum","errorMaximum","exclusiveMinimum","errorExclusiveMinimum","exclusiveMaximum","errorExclusiveMaximum","multipleOf","errorMultipleOf","schema","_props$schema","type","toInput","external","undefined","fromInput","_ref","value","numberValue","emptyValue","transformValue","currentValue","Number","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","maskProps","mask_options","as_currency","currency_mask","as_percent","as_number","number_mask","_objectSpread","preparedProps","valueType","width","composition","id","name","className","inputClassName","autoComplete","layout","placeholder","label","labelDescription","startWith","disabled","htmlAttributes","info","warning","error","hasError","help","size","align","handleFocus","handleBlur","handleChange","onKeyDownHandler","_ref2","key","event","persist","preventDefault","fieldBlockProps","contentClassName","forId","contentWidth","increaseClickHandler","increaseProps","variant","icon","tabIndex","onClick","title","translation","Slider","addTitle","replace","String","decreaseClickHandler","decreaseProps","subtractTitle","ariaParams","role","inputProps","onKeyDown","onFocus","onBlur","onChange","status","stretch","Boolean","createElement","content","_extends","asFieldset","left","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Number/Number.tsx"],"sourcesContent":["import React, { useContext, useMemo, useCallback } from 'react'\nimport { InputMasked, HelpButton, Button } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport type { InputAlign, InputSize } from '../../../../components/Input'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport classnames from 'classnames'\nimport FieldBlock from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldProps,\n FieldHelpProps,\n AllJSONSchemaVersions,\n CustomErrorMessages,\n FieldBlockWidth,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { ButtonProps, ButtonSize } from '../../../../components/Button'\nimport { clamp } from '../../../../components/slider/SliderHelpers'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\n\ninterface ErrorMessages extends CustomErrorMessages {\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 | number, ErrorMessages> & {\n inputClassName?: string\n currency?: InputMaskedProps['as_currency']\n currencyDisplay?: 'code' | 'symbol' | 'narrowSymbol' | 'name'\n percent?: InputMaskedProps['as_percent']\n mask?: InputMaskedProps['mask']\n step?: number\n startWith?: number\n // Formatting\n decimalLimit?: number\n allowNegative?: boolean\n disallowLeadingZeroes?: boolean\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 size?: InputSize\n width?: FieldBlockWidth\n align?: InputAlign\n showStepControls?: boolean\n }\n\nfunction NumberComponent(props: Props) {\n const fieldBlockContext = useContext(FieldBlockContext)\n const sharedContext = useContext(SharedContext)\n const translations = useTranslation()\n\n const {\n currency,\n currencyDisplay,\n percent,\n mask,\n step = 1,\n decimalLimit = 12,\n allowNegative = true,\n disallowLeadingZeroes = false,\n prefix,\n suffix,\n showStepControls,\n } = props\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.Field.errorRequired,\n minimum: translations.NumberField.errorMinimum,\n maximum: translations.NumberField.errorMaximum,\n exclusiveMinimum: translations.NumberField.errorExclusiveMinimum,\n exclusiveMaximum: translations.NumberField.errorExclusiveMaximum,\n multipleOf: translations.NumberField.errorMultipleOf,\n })\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n 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 [\n props.schema,\n props.minimum,\n props.maximum,\n props.exclusiveMinimum,\n props.exclusiveMaximum,\n props.multipleOf,\n ]\n )\n\n const toInput = useCallback((external: number | undefined) => {\n if (external === undefined) {\n return null\n }\n return external\n }, [])\n const fromInput = useCallback(\n ({ value, numberValue }: { value: string; numberValue: number }) => {\n if (value === '') {\n return props.emptyValue\n }\n return numberValue\n },\n [props.emptyValue]\n )\n const transformValue = useCallback(\n (value: number, currentValue: number) => {\n if (\n value > Number.MAX_SAFE_INTEGER ||\n value < Number.MIN_SAFE_INTEGER\n ) {\n return currentValue\n }\n\n return value\n },\n []\n )\n\n const maskProps: Partial<InputMaskedProps> = useMemo(() => {\n const mask_options = {\n prefix,\n suffix,\n decimalLimit,\n allowNegative,\n disallowLeadingZeroes,\n }\n\n if (currency) {\n return {\n as_currency: currency,\n mask_options,\n currency_mask: {\n currencyDisplay,\n },\n }\n }\n\n if (percent) {\n return {\n as_percent: percent,\n mask_options,\n }\n }\n\n // Custom mask based on props\n return {\n as_number: true,\n mask,\n number_mask: {\n ...mask_options,\n },\n }\n }, [\n currency,\n currencyDisplay,\n decimalLimit,\n mask,\n percent,\n prefix,\n suffix,\n allowNegative,\n disallowLeadingZeroes,\n ])\n\n const preparedProps: Props = {\n valueType: 'number',\n ...props,\n errorMessages,\n schema,\n toInput,\n fromInput,\n transformValue,\n width:\n props.width ??\n (fieldBlockContext?.composition ? 'stretch' : 'medium'),\n }\n\n const {\n id,\n name,\n className,\n inputClassName,\n autoComplete,\n layout,\n placeholder,\n label,\n labelDescription,\n value,\n startWith = null,\n minimum = Number.MIN_SAFE_INTEGER,\n maximum = Number.MAX_SAFE_INTEGER,\n disabled,\n htmlAttributes,\n info,\n warning,\n error,\n hasError,\n help,\n size,\n width,\n align,\n handleFocus,\n handleBlur,\n handleChange,\n } = useFieldProps(preparedProps)\n\n const onKeyDownHandler = useCallback(\n ({ key, event }) => {\n if (!showStepControls) {\n return\n }\n\n let numberValue = null\n\n switch (key) {\n case 'ArrowUp':\n numberValue = clamp(\n (value ?? startWith) + step,\n minimum,\n maximum\n )\n break\n case 'ArrowDown':\n numberValue = clamp(\n (value ?? startWith) - step,\n minimum,\n maximum\n )\n break\n }\n\n if (numberValue !== null) {\n event.persist()\n event.preventDefault()\n handleChange({ numberValue })\n }\n },\n [\n handleChange,\n maximum,\n minimum,\n showStepControls,\n startWith,\n step,\n value,\n ]\n )\n\n const fieldBlockProps = {\n className: classnames(\n 'dnb-forms-field-number',\n 'dnb-input__border--tokens', // Used by \"dnb-input__border\"\n className\n ),\n contentClassName: classnames(\n 'dnb-forms-field-number__contents',\n showStepControls && 'dnb-forms-field-number__contents--has-controls',\n hasError && 'dnb-input__status--error', // Also used by \"dnb-input__border\"\n disabled && 'dnb-input--disabled' // Also used by \"dnb-input__border\"\n ),\n forId: id,\n layout,\n label,\n labelDescription,\n info,\n warning,\n error,\n disabled,\n width:\n (width === 'stretch' || fieldBlockContext?.composition) &&\n !showStepControls\n ? width\n : undefined,\n contentWidth: width !== false ? width : undefined,\n ...pickSpacingProps(props),\n }\n\n const increaseClickHandler = useCallback(() => {\n handleChange({\n numberValue: clamp((value ?? startWith) + step, minimum, maximum),\n })\n }, [handleChange, maximum, minimum, startWith, step, value])\n\n const increaseProps: ButtonProps = showStepControls && {\n 'aria-hidden': true,\n className: 'dnb-button--control-after',\n variant: 'secondary',\n icon: 'add',\n size: (size || 'small') as ButtonSize,\n tabIndex: -1,\n disabled: disabled || value >= maximum,\n onClick: increaseClickHandler,\n title: sharedContext?.translation.Slider.addTitle?.replace(\n '%s',\n String(value + step)\n ),\n }\n\n const decreaseClickHandler = useCallback(() => {\n handleChange({\n numberValue: clamp((value ?? startWith) - step, minimum, maximum),\n })\n }, [handleChange, maximum, minimum, startWith, step, value])\n\n const decreaseProps: ButtonProps = showStepControls && {\n ...increaseProps,\n className: 'dnb-button--control-before',\n icon: 'subtract',\n size: (size || 'small') as ButtonSize,\n disabled: disabled || value <= minimum,\n onClick: decreaseClickHandler,\n title: sharedContext?.translation.Slider.subtractTitle?.replace(\n '%s',\n String(value - step)\n ),\n }\n\n const ariaParams = showStepControls && {\n role: 'spinbutton',\n 'aria-valuemin': String(minimum),\n 'aria-valuemax': String(maximum),\n 'aria-valuenow': String(value), // without it, VO will read an invalid value\n 'aria-valuetext': String(value), // without it, VO will read %\n }\n\n const inputProps = {\n id,\n name,\n autoComplete,\n className: classnames(\n 'dnb-forms-field-number__input',\n `dnb-input--${size}`,\n inputClassName\n ),\n step: showStepControls ? step : undefined,\n placeholder,\n value,\n align: showStepControls ? 'center' : align,\n ...maskProps,\n onKeyDown: onKeyDownHandler,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onChange: handleChange,\n disabled,\n ...htmlAttributes,\n status: hasError ? 'error' : undefined,\n stretch: Boolean(\n width !== undefined || fieldBlockContext?.composition\n ),\n suffix:\n help && !showStepControls ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n ...ariaParams,\n }\n\n if (showStepControls) {\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <span className=\"dnb-input__border dnb-input__border--root\">\n {<Button {...decreaseProps} />}\n <InputMasked {...inputProps} />\n {<Button {...increaseProps} />}\n </span>\n {help && (\n <HelpButton left=\"x-small\" title={help.title}>\n {help.content}\n </HelpButton>\n )}\n </FieldBlock>\n )\n }\n\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <InputMasked {...inputProps} />\n </FieldBlock>\n )\n}\n\nNumberComponent._supportsSpacingProps = true\nexport default NumberComponent\n"],"mappings":"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"}
1
+ {"version":3,"file":"Number.js","names":["React","useContext","useMemo","useCallback","InputMasked","HelpButton","Button","SharedContext","FieldBlockContext","classnames","FieldBlock","useFieldProps","pickSpacingProps","clamp","useErrorMessage","useTranslation","DataContext","NumberComponent","props","_props$width","_dataContext$props2","_sharedContext$transl","_sharedContext$transl2","dataContext","fieldBlockContext","sharedContext","translations","currency","currencyDisplay","percent","mask","step","decimalLimit","allowNegative","disallowLeadingZeroes","prefix","suffix","showStepControls","errorMessages","path","required","Field","errorRequired","minimum","NumberField","errorMinimum","maximum","errorMaximum","exclusiveMinimum","errorExclusiveMinimum","exclusiveMaximum","errorExclusiveMaximum","multipleOf","errorMultipleOf","schema","_props$schema","type","toInput","external","undefined","fromInput","_ref","value","numberValue","emptyValue","transformValue","currentValue","Number","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","maskProps","mask_options","as_currency","currency_mask","as_percent","as_number","number_mask","_objectSpread","preparedProps","valueType","width","composition","id","name","className","inputClassName","autoComplete","layout","placeholder","label","labelDescription","startWith","disabled","htmlAttributes","info","warning","error","hasError","help","size","align","handleFocus","handleBlur","handleChange","handleSubmit","onKeyDownHandler","_ref2","_dataContext$props","event","isolate","key","_event$preventDefault","preventDefault","call","persist","fieldBlockProps","contentClassName","forId","contentWidth","increaseClickHandler","increaseProps","variant","icon","tabIndex","onClick","title","translation","Slider","addTitle","replace","String","decreaseClickHandler","decreaseProps","subtractTitle","ariaParams","role","inputProps","onKeyDown","onFocus","onBlur","onChange","status","stretch","Boolean","createElement","content","_extends","asFieldset","left","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Number/Number.tsx"],"sourcesContent":["import React, { useContext, useMemo, useCallback } from 'react'\nimport { InputMasked, HelpButton, Button } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport type { InputAlign, InputSize } from '../../../../components/Input'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport classnames from 'classnames'\nimport FieldBlock from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldProps,\n FieldHelpProps,\n AllJSONSchemaVersions,\n CustomErrorMessages,\n FieldBlockWidth,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { ButtonProps, ButtonSize } from '../../../../components/Button'\nimport { clamp } from '../../../../components/slider/SliderHelpers'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\nimport DataContext from '../../DataContext/Context'\n\ninterface ErrorMessages extends CustomErrorMessages {\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 | number, ErrorMessages> & {\n inputClassName?: string\n currency?: InputMaskedProps['as_currency']\n currencyDisplay?: 'code' | 'symbol' | 'narrowSymbol' | 'name'\n percent?: InputMaskedProps['as_percent']\n mask?: InputMaskedProps['mask']\n step?: number\n startWith?: number\n // Formatting\n decimalLimit?: number\n allowNegative?: boolean\n disallowLeadingZeroes?: boolean\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 size?: InputSize\n width?: FieldBlockWidth\n align?: InputAlign\n showStepControls?: boolean\n }\n\nfunction NumberComponent(props: Props) {\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const sharedContext = useContext(SharedContext)\n const translations = useTranslation()\n\n const {\n currency,\n currencyDisplay,\n percent,\n mask,\n step = 1,\n decimalLimit = 12,\n allowNegative = true,\n disallowLeadingZeroes = false,\n prefix,\n suffix,\n showStepControls,\n } = props\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.Field.errorRequired,\n minimum: translations.NumberField.errorMinimum,\n maximum: translations.NumberField.errorMaximum,\n exclusiveMinimum: translations.NumberField.errorExclusiveMinimum,\n exclusiveMaximum: translations.NumberField.errorExclusiveMaximum,\n multipleOf: translations.NumberField.errorMultipleOf,\n })\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n 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 [\n props.schema,\n props.minimum,\n props.maximum,\n props.exclusiveMinimum,\n props.exclusiveMaximum,\n props.multipleOf,\n ]\n )\n\n const toInput = useCallback((external: number | undefined) => {\n if (external === undefined) {\n return null\n }\n return external\n }, [])\n const fromInput = useCallback(\n ({ value, numberValue }: { value: string; numberValue: number }) => {\n if (value === '') {\n return props.emptyValue\n }\n return numberValue\n },\n [props.emptyValue]\n )\n const transformValue = useCallback(\n (value: number, currentValue: number) => {\n if (\n value > Number.MAX_SAFE_INTEGER ||\n value < Number.MIN_SAFE_INTEGER\n ) {\n return currentValue\n }\n\n return value\n },\n []\n )\n\n const maskProps: Partial<InputMaskedProps> = useMemo(() => {\n const mask_options = {\n prefix,\n suffix,\n decimalLimit,\n allowNegative,\n disallowLeadingZeroes,\n }\n\n if (currency) {\n return {\n as_currency: currency,\n mask_options,\n currency_mask: {\n currencyDisplay,\n },\n }\n }\n\n if (percent) {\n return {\n as_percent: percent,\n mask_options,\n }\n }\n\n // Custom mask based on props\n return {\n as_number: true,\n mask,\n number_mask: {\n ...mask_options,\n },\n }\n }, [\n currency,\n currencyDisplay,\n decimalLimit,\n mask,\n percent,\n prefix,\n suffix,\n allowNegative,\n disallowLeadingZeroes,\n ])\n\n const preparedProps: Props = {\n valueType: 'number',\n ...props,\n errorMessages,\n schema,\n toInput,\n fromInput,\n transformValue,\n width:\n props.width ??\n (fieldBlockContext?.composition ? 'stretch' : 'medium'),\n }\n\n const {\n id,\n name,\n className,\n inputClassName,\n autoComplete,\n layout,\n placeholder,\n label,\n labelDescription,\n value,\n startWith = null,\n minimum = Number.MIN_SAFE_INTEGER,\n maximum = Number.MAX_SAFE_INTEGER,\n disabled,\n htmlAttributes,\n info,\n warning,\n error,\n hasError,\n help,\n size,\n width,\n align,\n handleFocus,\n handleBlur,\n handleChange,\n } = useFieldProps(preparedProps)\n\n const { handleSubmit } = dataContext ?? {}\n const onKeyDownHandler = useCallback(\n ({ event }: { event: React.KeyboardEvent<HTMLInputElement> }) => {\n if (dataContext?.props?.isolate && event.key === 'Enter') {\n handleSubmit() // So we commit the data to the outer context\n event.preventDefault?.() // And prevent the default form submit\n }\n\n if (!showStepControls) {\n return\n }\n\n let numberValue = null\n\n switch (event.key) {\n case 'ArrowUp':\n numberValue = clamp(\n (value ?? startWith) + step,\n minimum,\n maximum\n )\n break\n case 'ArrowDown':\n numberValue = clamp(\n (value ?? startWith) - step,\n minimum,\n maximum\n )\n break\n }\n\n if (numberValue !== null) {\n event.persist()\n event.preventDefault()\n handleChange({ numberValue })\n }\n },\n [\n dataContext?.props?.isolate,\n handleChange,\n handleSubmit,\n maximum,\n minimum,\n showStepControls,\n startWith,\n step,\n value,\n ]\n )\n\n const fieldBlockProps = {\n className: classnames(\n 'dnb-forms-field-number',\n 'dnb-input__border--tokens', // Used by \"dnb-input__border\"\n className\n ),\n contentClassName: classnames(\n 'dnb-forms-field-number__contents',\n showStepControls && 'dnb-forms-field-number__contents--has-controls',\n hasError && 'dnb-input__status--error', // Also used by \"dnb-input__border\"\n disabled && 'dnb-input--disabled' // Also used by \"dnb-input__border\"\n ),\n forId: id,\n layout,\n label,\n labelDescription,\n info,\n warning,\n error,\n disabled,\n width:\n (width === 'stretch' || fieldBlockContext?.composition) &&\n !showStepControls\n ? width\n : undefined,\n contentWidth: width !== false ? width : undefined,\n ...pickSpacingProps(props),\n }\n\n const increaseClickHandler = useCallback(() => {\n handleChange({\n numberValue: clamp((value ?? startWith) + step, minimum, maximum),\n })\n }, [handleChange, maximum, minimum, startWith, step, value])\n\n const increaseProps: ButtonProps = showStepControls && {\n 'aria-hidden': true,\n className: 'dnb-button--control-after',\n variant: 'secondary',\n icon: 'add',\n size: (size || 'small') as ButtonSize,\n tabIndex: -1,\n disabled: disabled || value >= maximum,\n onClick: increaseClickHandler,\n title: sharedContext?.translation.Slider.addTitle?.replace(\n '%s',\n String(value + step)\n ),\n }\n\n const decreaseClickHandler = useCallback(() => {\n handleChange({\n numberValue: clamp((value ?? startWith) - step, minimum, maximum),\n })\n }, [handleChange, maximum, minimum, startWith, step, value])\n\n const decreaseProps: ButtonProps = showStepControls && {\n ...increaseProps,\n className: 'dnb-button--control-before',\n icon: 'subtract',\n size: (size || 'small') as ButtonSize,\n disabled: disabled || value <= minimum,\n onClick: decreaseClickHandler,\n title: sharedContext?.translation.Slider.subtractTitle?.replace(\n '%s',\n String(value - step)\n ),\n }\n\n const ariaParams = showStepControls && {\n role: 'spinbutton',\n 'aria-valuemin': String(minimum),\n 'aria-valuemax': String(maximum),\n 'aria-valuenow': String(value), // without it, VO will read an invalid value\n 'aria-valuetext': String(value), // without it, VO will read %\n }\n\n const inputProps = {\n id,\n name,\n autoComplete,\n className: classnames(\n 'dnb-forms-field-number__input',\n `dnb-input--${size}`,\n inputClassName\n ),\n step: showStepControls ? step : undefined,\n placeholder,\n value,\n align: showStepControls ? 'center' : align,\n ...maskProps,\n onKeyDown: onKeyDownHandler,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onChange: handleChange,\n disabled,\n ...htmlAttributes,\n status: hasError ? 'error' : undefined,\n stretch: Boolean(\n width !== undefined || fieldBlockContext?.composition\n ),\n suffix:\n help && !showStepControls ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n ...ariaParams,\n }\n\n if (showStepControls) {\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <span className=\"dnb-input__border dnb-input__border--root\">\n {<Button {...decreaseProps} />}\n <InputMasked {...inputProps} />\n {<Button {...increaseProps} />}\n </span>\n {help && (\n <HelpButton left=\"x-small\" title={help.title}>\n {help.content}\n </HelpButton>\n )}\n </FieldBlock>\n )\n }\n\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <InputMasked {...inputProps} />\n </FieldBlock>\n )\n}\n\nNumberComponent._supportsSpacingProps = true\nexport default NumberComponent\n"],"mappings":"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"}
@@ -41,6 +41,7 @@ export type Props = FieldHelpProps & FieldProps<string, undefined | string, Erro
41
41
  spellCheck?: React.HTMLAttributes<HTMLInputElement>['spellCheck'];
42
42
  autoFocus?: React.HTMLAttributes<HTMLInputElement>['autoFocus'];
43
43
  autoCapitalize?: React.HTMLAttributes<HTMLInputElement>['autoCapitalize'];
44
+ onKeyDown?: React.KeyboardEventHandler<HTMLInputElement>;
44
45
  };
45
46
  declare function StringComponent(props: Props): import("react/jsx-runtime").JSX.Element;
46
47
  declare namespace StringComponent {
@@ -8,6 +8,7 @@ import React, { useContext, useMemo, useCallback } from 'react';
8
8
  import classnames from 'classnames';
9
9
  import { HelpButton, Input, Textarea } from '../../../../components';
10
10
  import InputMasked from '../../../../components/InputMasked';
11
+ import DataContext from '../../DataContext/Context';
11
12
  import FieldBlockContext from '../../FieldBlock/FieldBlockContext';
12
13
  import FieldBlock from '../../FieldBlock';
13
14
  import { useFieldProps } from '../../hooks';
@@ -16,7 +17,8 @@ import { toCapitalized } from '../../../../shared/component-helper';
16
17
  import useErrorMessage from '../../hooks/useErrorMessage';
17
18
  import useTranslation from '../../hooks/useTranslation';
18
19
  function StringComponent(props) {
19
- var _props$width, _value$toString;
20
+ var _props$width, _dataContext$props2, _value$toString;
21
+ const dataContext = useContext(DataContext);
20
22
  const fieldBlockContext = useContext(FieldBlockContext);
21
23
  const translations = useTranslation();
22
24
  const errorMessages = useErrorMessage(props.path, props.errorMessages, {
@@ -113,9 +115,25 @@ function StringComponent(props) {
113
115
  autoCapitalize,
114
116
  handleFocus,
115
117
  handleBlur,
116
- handleChange
118
+ handleChange,
119
+ onKeyDown
117
120
  } = useFieldProps(preparedProps);
118
121
  const transformInstantly = useCallback(value => props.capitalize ? toCapitalized(value) : value, [props.capitalize]);
122
+ const {
123
+ handleSubmit
124
+ } = dataContext !== null && dataContext !== void 0 ? dataContext : {};
125
+ const handleKeyDown = useCallback(_ref => {
126
+ var _dataContext$props;
127
+ let {
128
+ event
129
+ } = _ref;
130
+ if (!multiline && dataContext !== null && dataContext !== void 0 && (_dataContext$props = dataContext.props) !== null && _dataContext$props !== void 0 && _dataContext$props.isolate && event.key === 'Enter') {
131
+ var _event$preventDefault;
132
+ handleSubmit();
133
+ (_event$preventDefault = event.preventDefault) === null || _event$preventDefault === void 0 ? void 0 : _event$preventDefault.call(event);
134
+ }
135
+ onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);
136
+ }, [handleSubmit, dataContext === null || dataContext === void 0 ? void 0 : (_dataContext$props2 = dataContext.props) === null || _dataContext$props2 === void 0 ? void 0 : _dataContext$props2.isolate, multiline, onKeyDown]);
119
137
  const cn = classnames('dnb-forms-field-string__input', inputClassName);
120
138
  const sharedProps = _objectSpread(_objectSpread({
121
139
  id,
@@ -134,6 +152,7 @@ function StringComponent(props) {
134
152
  on_focus: handleFocus,
135
153
  on_blur: handleBlur,
136
154
  on_change: handleChange,
155
+ on_key_down: handleKeyDown,
137
156
  disabled
138
157
  }, htmlAttributes), {}, {
139
158
  stretch: Boolean(width !== undefined || (fieldBlockContext === null || fieldBlockContext === void 0 ? void 0 : fieldBlockContext.composition)),
@@ -1 +1 @@
1
- {"version":3,"file":"String.js","names":["React","useContext","useMemo","useCallback","classnames","HelpButton","Input","Textarea","InputMasked","FieldBlockContext","FieldBlock","useFieldProps","pickSpacingProps","toCapitalized","useErrorMessage","useTranslation","StringComponent","props","_props$width","_value$toString","fieldBlockContext","translations","errorMessages","path","required","Field","errorRequired","minLength","StringField","errorMinLength","maxLength","errorMaxLength","pattern","errorPattern","schema","_props$schema","type","fromInput","event","_event","_event$cleanedValue","_event2","_event3","value","emptyValue","cleanedValue","toEvent","trim","spaces","RegExp","test","replace","handleChange","transform","transformValue","capitalize","String","preparedProps","_objectSpread","width","composition","id","name","className","innerRef","inputClassName","layout","placeholder","label","labelDescription","info","warning","error","hasError","disabled","help","multiline","mask","leftIcon","rightIcon","htmlAttributes","submitElement","clear","align","size","selectall","keepPlaceholder","rows","autoresizeMaxRows","autoresize","characterCounter","autoComplete","inputMode","autoCorrect","spellCheck","autoFocus","autoCapitalize","handleFocus","handleBlur","transformInstantly","cn","sharedProps","suffix","createElement","title","content","undefined","on_focus","on_blur","on_change","stretch","Boolean","inner_ref","status","toString","textareaProps","autoresize_max_rows","inputProps","icon","icon_position","submit_element","keep_placeholder","fieldBlockProps","forId","contentWidth","_extends","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/String/String.tsx"],"sourcesContent":["import React, { useContext, useMemo, useCallback } from 'react'\nimport classnames from 'classnames'\nimport { HelpButton, Input, Textarea } from '../../../../components'\nimport { InputProps } from '../../../../components/input/Input'\nimport InputMasked, {\n InputMaskedProps,\n} from '../../../../components/InputMasked'\nimport { TextareaProps } from '../../../../components/Textarea'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport FieldBlock from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { toCapitalized } from '../../../../shared/component-helper'\nimport type { TextCounterProps } from '../../../../fragments/TextCounter'\nimport type {\n FieldProps,\n FieldHelpProps,\n CustomErrorMessages,\n AllJSONSchemaVersions,\n FieldBlockWidth,\n} from '../../types'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\n\ninterface ErrorMessages extends CustomErrorMessages {\n required?: string\n schema?: string\n minLength?: string\n maxLength?: string\n pattern?: string\n}\nexport type Props = FieldHelpProps &\n FieldProps<string, undefined | string, ErrorMessages> & {\n // - Shared props\n multiline?: boolean\n inputClassName?: string\n innerRef?: React.RefObject<HTMLInputElement | HTMLTextAreaElement>\n width?: FieldBlockWidth\n size?: InputProps['size'] | TextareaProps['size']\n keepPlaceholder?: InputProps['keep_placeholder']\n\n // - Validation\n minLength?: number\n maxLength?: number\n pattern?: string\n\n // - Input props\n type?: InputProps['type']\n align?: InputProps['align']\n selectall?: InputProps['selectall']\n clear?: boolean\n mask?: InputMaskedProps['mask']\n leftIcon?: string\n rightIcon?: string\n submitElement?: InputProps['submit_element']\n capitalize?: boolean\n trim?: boolean\n\n // - Textarea props\n rows?: TextareaProps['rows']\n autoresizeMaxRows?: TextareaProps['autoresize_max_rows']\n autoresize?: TextareaProps['autoresize']\n characterCounter?: Omit<TextCounterProps, 'text'> | number\n\n // - Html props\n autoComplete?: HTMLInputElement['autocomplete']\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode']\n autoCorrect?: React.HTMLAttributes<HTMLInputElement>['autoCorrect']\n spellCheck?: React.HTMLAttributes<HTMLInputElement>['spellCheck']\n autoFocus?: React.HTMLAttributes<HTMLInputElement>['autoFocus']\n autoCapitalize?: React.HTMLAttributes<HTMLInputElement>['autoCapitalize']\n }\n\nfunction StringComponent(props: Props) {\n const fieldBlockContext = useContext(FieldBlockContext)\n const translations = useTranslation()\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.Field.errorRequired,\n minLength: translations.StringField.errorMinLength,\n maxLength: translations.StringField.errorMaxLength,\n pattern: translations.Field.errorPattern,\n })\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'string',\n minLength: props.minLength,\n maxLength: props.maxLength,\n pattern: props.pattern,\n },\n [props.schema, props.minLength, props.maxLength, props.pattern]\n )\n const fromInput = useCallback(\n (event: { value: string; cleanedValue?: string }) => {\n if (typeof event === 'string') {\n event = { value: event }\n }\n if (event?.value === '') {\n return props.emptyValue\n }\n // Cleaned value for masked\n return event?.cleanedValue ?? event?.value\n },\n [props.emptyValue]\n )\n const toEvent = useCallback(\n (value: string, type: string) => {\n if (props.trim && type === 'onBlur') {\n const spaces = '[\\\\s ]'\n if (new RegExp(`^${spaces}|${spaces}$`).test(value)) {\n value = value.replace(\n new RegExp(`^${spaces}+|${spaces}+$`, 'g'),\n ''\n )\n handleChange(value)\n }\n }\n return value\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [props.trim]\n )\n const transform = props.transformValue\n const transformValue = useCallback(\n (value: string) => {\n if (props.capitalize) {\n value = toCapitalized(String(value || ''))\n }\n return transform?.(value) || value\n },\n [props.capitalize, transform]\n )\n\n const preparedProps: Props = {\n ...props,\n errorMessages,\n schema,\n fromInput,\n toEvent,\n transformValue,\n width:\n props.width ??\n (fieldBlockContext?.composition ? 'stretch' : 'large'),\n }\n\n const {\n id,\n name,\n className,\n innerRef,\n inputClassName,\n layout,\n placeholder,\n label,\n labelDescription,\n value,\n info,\n warning,\n error,\n hasError,\n disabled,\n help,\n multiline,\n mask,\n leftIcon,\n rightIcon,\n width,\n htmlAttributes,\n submitElement,\n\n // - Input props\n type,\n clear,\n align,\n size,\n selectall,\n keepPlaceholder,\n\n // - Textarea props\n rows,\n autoresizeMaxRows = 6,\n autoresize = true,\n characterCounter,\n\n // - Html props\n autoComplete,\n inputMode,\n autoCorrect,\n spellCheck,\n autoFocus,\n autoCapitalize,\n\n // - Events\n handleFocus,\n handleBlur,\n handleChange,\n } = useFieldProps(preparedProps)\n\n const transformInstantly = useCallback(\n (value: string) => (props.capitalize ? toCapitalized(value) : value),\n [props.capitalize]\n )\n\n const cn = classnames('dnb-forms-field-string__input', inputClassName)\n\n const sharedProps: InputProps & TextareaProps = {\n id,\n name,\n autoComplete,\n autoCorrect,\n spellCheck,\n autoFocus,\n autoCapitalize,\n inputMode,\n className: cn,\n placeholder,\n suffix: help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n on_focus: handleFocus,\n on_blur: handleBlur,\n on_change: handleChange,\n disabled,\n ...htmlAttributes,\n stretch: Boolean(\n width !== undefined || fieldBlockContext?.composition\n ),\n inner_ref: innerRef,\n status: hasError ? 'error' : undefined,\n value: transformInstantly(value?.toString() ?? ''),\n }\n\n const textareaProps: TextareaProps = {\n keepPlaceholder,\n rows,\n autoresize_max_rows: autoresizeMaxRows,\n autoresize,\n characterCounter,\n }\n\n const inputProps: InputProps = {\n type: type,\n clear: clear,\n size: size,\n align: align,\n selectall: selectall,\n icon: leftIcon ?? rightIcon,\n icon_position: rightIcon && !leftIcon ? 'right' : undefined,\n submit_element: submitElement,\n keep_placeholder: keepPlaceholder,\n }\n\n const fieldBlockProps = {\n className: classnames('dnb-forms-field-string', className),\n forId: id,\n layout,\n label,\n labelDescription,\n info,\n warning,\n error,\n disabled,\n width:\n width === 'stretch' || fieldBlockContext?.composition\n ? width\n : undefined,\n contentWidth: width !== false ? width : undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n {multiline ? (\n <Textarea {...sharedProps} {...textareaProps} />\n ) : mask ? (\n <InputMasked {...sharedProps} {...inputProps} mask={mask} />\n ) : (\n <Input {...sharedProps} {...inputProps} />\n )}\n </FieldBlock>\n )\n}\n\nStringComponent._supportsSpacingProps = true\nexport default StringComponent\n"],"mappings":"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"}
1
+ {"version":3,"file":"String.js","names":["React","useContext","useMemo","useCallback","classnames","HelpButton","Input","Textarea","InputMasked","DataContext","FieldBlockContext","FieldBlock","useFieldProps","pickSpacingProps","toCapitalized","useErrorMessage","useTranslation","StringComponent","props","_props$width","_dataContext$props2","_value$toString","dataContext","fieldBlockContext","translations","errorMessages","path","required","Field","errorRequired","minLength","StringField","errorMinLength","maxLength","errorMaxLength","pattern","errorPattern","schema","_props$schema","type","fromInput","event","_event","_event$cleanedValue","_event2","_event3","value","emptyValue","cleanedValue","toEvent","trim","spaces","RegExp","test","replace","handleChange","transform","transformValue","capitalize","String","preparedProps","_objectSpread","width","composition","id","name","className","innerRef","inputClassName","layout","placeholder","label","labelDescription","info","warning","error","hasError","disabled","help","multiline","mask","leftIcon","rightIcon","htmlAttributes","submitElement","clear","align","size","selectall","keepPlaceholder","rows","autoresizeMaxRows","autoresize","characterCounter","autoComplete","inputMode","autoCorrect","spellCheck","autoFocus","autoCapitalize","handleFocus","handleBlur","onKeyDown","transformInstantly","handleSubmit","handleKeyDown","_ref","_dataContext$props","isolate","key","_event$preventDefault","preventDefault","call","cn","sharedProps","suffix","createElement","title","content","undefined","on_focus","on_blur","on_change","on_key_down","stretch","Boolean","inner_ref","status","toString","textareaProps","autoresize_max_rows","inputProps","icon","icon_position","submit_element","keep_placeholder","fieldBlockProps","forId","contentWidth","_extends","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/String/String.tsx"],"sourcesContent":["import React, { useContext, useMemo, useCallback } from 'react'\nimport classnames from 'classnames'\nimport { HelpButton, Input, Textarea } from '../../../../components'\nimport { InputProps } from '../../../../components/input/Input'\nimport InputMasked, {\n InputMaskedProps,\n} from '../../../../components/InputMasked'\nimport { TextareaProps } from '../../../../components/Textarea'\nimport DataContext from '../../DataContext/Context'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport FieldBlock from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { toCapitalized } from '../../../../shared/component-helper'\nimport type { TextCounterProps } from '../../../../fragments/TextCounter'\nimport type {\n FieldProps,\n FieldHelpProps,\n CustomErrorMessages,\n AllJSONSchemaVersions,\n FieldBlockWidth,\n} from '../../types'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\n\ninterface ErrorMessages extends CustomErrorMessages {\n required?: string\n schema?: string\n minLength?: string\n maxLength?: string\n pattern?: string\n}\nexport type Props = FieldHelpProps &\n FieldProps<string, undefined | string, ErrorMessages> & {\n // - Shared props\n multiline?: boolean\n inputClassName?: string\n innerRef?: React.RefObject<HTMLInputElement | HTMLTextAreaElement>\n width?: FieldBlockWidth\n size?: InputProps['size'] | TextareaProps['size']\n keepPlaceholder?: InputProps['keep_placeholder']\n\n // - Validation\n minLength?: number\n maxLength?: number\n pattern?: string\n\n // - Input props\n type?: InputProps['type']\n align?: InputProps['align']\n selectall?: InputProps['selectall']\n clear?: boolean\n mask?: InputMaskedProps['mask']\n leftIcon?: string\n rightIcon?: string\n submitElement?: InputProps['submit_element']\n capitalize?: boolean\n trim?: boolean\n\n // - Textarea props\n rows?: TextareaProps['rows']\n autoresizeMaxRows?: TextareaProps['autoresize_max_rows']\n autoresize?: TextareaProps['autoresize']\n characterCounter?: Omit<TextCounterProps, 'text'> | number\n\n // - Html props\n autoComplete?: HTMLInputElement['autocomplete']\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode']\n autoCorrect?: React.HTMLAttributes<HTMLInputElement>['autoCorrect']\n spellCheck?: React.HTMLAttributes<HTMLInputElement>['spellCheck']\n autoFocus?: React.HTMLAttributes<HTMLInputElement>['autoFocus']\n autoCapitalize?: React.HTMLAttributes<HTMLInputElement>['autoCapitalize']\n\n // - Events\n onKeyDown?: React.KeyboardEventHandler<HTMLInputElement>\n }\n\nfunction StringComponent(props: Props) {\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const translations = useTranslation()\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.Field.errorRequired,\n minLength: translations.StringField.errorMinLength,\n maxLength: translations.StringField.errorMaxLength,\n pattern: translations.Field.errorPattern,\n })\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'string',\n minLength: props.minLength,\n maxLength: props.maxLength,\n pattern: props.pattern,\n },\n [props.schema, props.minLength, props.maxLength, props.pattern]\n )\n const fromInput = useCallback(\n (event: { value: string; cleanedValue?: string }) => {\n if (typeof event === 'string') {\n event = { value: event }\n }\n if (event?.value === '') {\n return props.emptyValue\n }\n // Cleaned value for masked\n return event?.cleanedValue ?? event?.value\n },\n [props.emptyValue]\n )\n const toEvent = useCallback(\n (value: string, type: string) => {\n if (props.trim && type === 'onBlur') {\n const spaces = '[\\\\s ]'\n if (new RegExp(`^${spaces}|${spaces}$`).test(value)) {\n value = value.replace(\n new RegExp(`^${spaces}+|${spaces}+$`, 'g'),\n ''\n )\n handleChange(value)\n }\n }\n return value\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [props.trim]\n )\n const transform = props.transformValue\n const transformValue = useCallback(\n (value: string) => {\n if (props.capitalize) {\n value = toCapitalized(String(value || ''))\n }\n return transform?.(value) || value\n },\n [props.capitalize, transform]\n )\n\n const preparedProps: Props = {\n ...props,\n errorMessages,\n schema,\n fromInput,\n toEvent,\n transformValue,\n width:\n props.width ??\n (fieldBlockContext?.composition ? 'stretch' : 'large'),\n }\n\n const {\n id,\n name,\n className,\n innerRef,\n inputClassName,\n layout,\n placeholder,\n label,\n labelDescription,\n value,\n info,\n warning,\n error,\n hasError,\n disabled,\n help,\n multiline,\n mask,\n leftIcon,\n rightIcon,\n width,\n htmlAttributes,\n submitElement,\n\n // - Input props\n type,\n clear,\n align,\n size,\n selectall,\n keepPlaceholder,\n\n // - Textarea props\n rows,\n autoresizeMaxRows = 6,\n autoresize = true,\n characterCounter,\n\n // - Html props\n autoComplete,\n inputMode,\n autoCorrect,\n spellCheck,\n autoFocus,\n autoCapitalize,\n\n // - Events\n handleFocus,\n handleBlur,\n handleChange,\n onKeyDown,\n } = useFieldProps(preparedProps)\n\n const transformInstantly = useCallback(\n (value: string) => (props.capitalize ? toCapitalized(value) : value),\n [props.capitalize]\n )\n\n const { handleSubmit } = dataContext ?? {}\n const handleKeyDown = useCallback(\n ({ event }: { event: React.KeyboardEvent<HTMLInputElement> }) => {\n if (\n !multiline &&\n dataContext?.props?.isolate &&\n event.key === 'Enter'\n ) {\n handleSubmit() // So we commit the data to the outer context\n event.preventDefault?.() // And prevent the default form submit\n }\n\n onKeyDown?.(event)\n },\n [handleSubmit, dataContext?.props?.isolate, multiline, onKeyDown]\n )\n\n const cn = classnames('dnb-forms-field-string__input', inputClassName)\n\n const sharedProps: InputProps & TextareaProps = {\n id,\n name,\n autoComplete,\n autoCorrect,\n spellCheck,\n autoFocus,\n autoCapitalize,\n inputMode,\n className: cn,\n placeholder,\n suffix: help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n on_focus: handleFocus,\n on_blur: handleBlur,\n on_change: handleChange,\n on_key_down: handleKeyDown,\n disabled,\n ...htmlAttributes,\n stretch: Boolean(\n width !== undefined || fieldBlockContext?.composition\n ),\n inner_ref: innerRef,\n status: hasError ? 'error' : undefined,\n value: transformInstantly(value?.toString() ?? ''),\n }\n\n const textareaProps: TextareaProps = {\n keepPlaceholder,\n rows,\n autoresize_max_rows: autoresizeMaxRows,\n autoresize,\n characterCounter,\n }\n\n const inputProps: InputProps = {\n type: type,\n clear: clear,\n size: size,\n align: align,\n selectall: selectall,\n icon: leftIcon ?? rightIcon,\n icon_position: rightIcon && !leftIcon ? 'right' : undefined,\n submit_element: submitElement,\n keep_placeholder: keepPlaceholder,\n }\n\n const fieldBlockProps = {\n className: classnames('dnb-forms-field-string', className),\n forId: id,\n layout,\n label,\n labelDescription,\n info,\n warning,\n error,\n disabled,\n width:\n width === 'stretch' || fieldBlockContext?.composition\n ? width\n : undefined,\n contentWidth: width !== false ? width : undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n {multiline ? (\n <Textarea {...sharedProps} {...textareaProps} />\n ) : mask ? (\n <InputMasked {...sharedProps} {...inputProps} mask={mask} />\n ) : (\n <Input {...sharedProps} {...inputProps} />\n )}\n </FieldBlock>\n )\n}\n\nStringComponent._supportsSpacingProps = true\nexport default StringComponent\n"],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { JsonObject } from 'json-pointer';
3
+ import { Props as ProviderProps } from '../../DataContext/Provider';
4
+ import IsolationCommitButton from './IsolationCommitButton';
5
+ export type IsolationProps<Data> = Omit<ProviderProps<Data>, 'onSubmit' | 'onSubmitRequest' | 'onSubmitComplete' | 'minimumAsyncBehaviorTime' | 'asyncSubmitTimeout' | 'scrollTopOnSubmit' | 'sessionStorageId' | 'filterSubmitData' | 'globalStatusId'> & {
6
+ /**
7
+ * A ref (function) that you can call in order to commit the data programmatically to the outer context.
8
+ */
9
+ commitHandleRef?: React.MutableRefObject<() => void>;
10
+ /**
11
+ * Will be called when the isolated context is committed.
12
+ */
13
+ onCommit?: (data: Data) => void;
14
+ };
15
+ declare function IsolationProvider<Data extends JsonObject>(props: IsolationProps<Data>): import("react/jsx-runtime").JSX.Element;
16
+ declare namespace IsolationProvider {
17
+ var CommitButton: typeof IsolationCommitButton;
18
+ var _supportsSpacingProps: any;
19
+ }
20
+ export default IsolationProvider;
@@ -0,0 +1,57 @@
1
+ "use client";
2
+
3
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
+ 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; }
6
+ import React, { useCallback, useContext, useEffect, useMemo, useRef } from 'react';
7
+ import pointer from 'json-pointer';
8
+ import { Context, Provider } from '../../DataContext';
9
+ import { extendDeep } from '../../../../shared/component-helper';
10
+ import IsolationCommitButton from './IsolationCommitButton';
11
+ function IsolationProvider(props) {
12
+ const {
13
+ children,
14
+ onPathChange,
15
+ onCommit,
16
+ commitHandleRef,
17
+ data,
18
+ defaultData
19
+ } = props;
20
+ const nestedContext = useContext(Context);
21
+ const {
22
+ handlePathChange
23
+ } = nestedContext !== null && nestedContext !== void 0 ? nestedContext : {};
24
+ const dataRef = useRef({});
25
+ const getData = useCallback(() => {
26
+ return extendDeep({}, nestedContext === null || nestedContext === void 0 ? void 0 : nestedContext.data, dataRef.current);
27
+ }, [nestedContext === null || nestedContext === void 0 ? void 0 : nestedContext.data]);
28
+ useEffect(() => {
29
+ if (commitHandleRef) {
30
+ commitHandleRef.current = () => {
31
+ handlePathChange === null || handlePathChange === void 0 ? void 0 : handlePathChange('/', getData());
32
+ };
33
+ }
34
+ }, [getData, handlePathChange, commitHandleRef]);
35
+ const onPathChangeHandler = useCallback(async (path, value) => {
36
+ pointer.set(dataRef.current, path, value);
37
+ return await (onPathChange === null || onPathChange === void 0 ? void 0 : onPathChange(path, value));
38
+ }, [onPathChange]);
39
+ const providerProps = _objectSpread(_objectSpread({}, props), {}, {
40
+ data,
41
+ defaultData,
42
+ onPathChange: onPathChangeHandler,
43
+ onCommit,
44
+ isolate: true
45
+ });
46
+ providerProps.data = useMemo(() => {
47
+ if (!defaultData && !data) {
48
+ return getData();
49
+ }
50
+ return providerProps.data;
51
+ }, [data, defaultData, getData, providerProps.data]);
52
+ return React.createElement(Provider, providerProps, children);
53
+ }
54
+ IsolationProvider.CommitButton = IsolationCommitButton;
55
+ IsolationProvider._supportsSpacingProps = undefined;
56
+ export default IsolationProvider;
57
+ //# sourceMappingURL=Isolation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Isolation.js","names":["React","useCallback","useContext","useEffect","useMemo","useRef","pointer","Context","Provider","extendDeep","IsolationCommitButton","IsolationProvider","props","children","onPathChange","onCommit","commitHandleRef","data","defaultData","nestedContext","handlePathChange","dataRef","getData","current","onPathChangeHandler","path","value","set","providerProps","_objectSpread","isolate","createElement","CommitButton","_supportsSpacingProps","undefined"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/Isolation.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { Context, Provider } from '../../DataContext'\nimport { Props as ProviderProps } from '../../DataContext/Provider'\nimport { Path } from '../../types'\nimport { extendDeep } from '../../../../shared/component-helper'\nimport IsolationCommitButton from './IsolationCommitButton'\n\nexport type IsolationProps<Data> = Omit<\n ProviderProps<Data>,\n | 'onSubmit'\n | 'onSubmitRequest'\n | 'onSubmitComplete'\n | 'minimumAsyncBehaviorTime'\n | 'asyncSubmitTimeout'\n | 'scrollTopOnSubmit'\n | 'sessionStorageId'\n | 'filterSubmitData'\n | 'globalStatusId'\n> & {\n /**\n * A ref (function) that you can call in order to commit the data programmatically to the outer context.\n */\n commitHandleRef?: React.MutableRefObject<() => void>\n\n /**\n * Will be called when the isolated context is committed.\n */\n onCommit?: (data: Data) => void\n}\n\nfunction IsolationProvider<Data extends JsonObject>(\n props: IsolationProps<Data>\n) {\n const {\n children,\n onPathChange,\n onCommit,\n commitHandleRef,\n data,\n defaultData,\n } = props\n\n const nestedContext = useContext(Context)\n const { handlePathChange } = nestedContext ?? {}\n\n const dataRef = useRef<Partial<Data>>({})\n const getData = useCallback(() => {\n return extendDeep({}, nestedContext?.data, dataRef.current) as Data\n }, [nestedContext?.data])\n\n useEffect(() => {\n if (commitHandleRef) {\n commitHandleRef.current = () => {\n handlePathChange?.('/', getData())\n }\n }\n }, [getData, handlePathChange, commitHandleRef])\n\n const onPathChangeHandler = useCallback(\n async (path: Path, value: any) => {\n pointer.set(dataRef.current, path, value)\n\n return await onPathChange?.(path, value)\n },\n [onPathChange]\n )\n\n const providerProps: IsolationProps<Data> = {\n ...props,\n data,\n defaultData,\n onPathChange: onPathChangeHandler,\n onCommit,\n isolate: true,\n }\n\n // Update the isolated data with the outside context data\n providerProps.data = useMemo(() => {\n if (!defaultData && !data) {\n return getData()\n }\n return providerProps.data\n }, [data, defaultData, getData, providerProps.data])\n\n return <Provider {...providerProps}>{children}</Provider>\n}\n\nIsolationProvider.CommitButton = IsolationCommitButton\nIsolationProvider._supportsSpacingProps = undefined\n\nexport default IsolationProvider\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IACVC,WAAW,EACXC,UAAU,EACVC,SAAS,EACTC,OAAO,EACPC,MAAM,QACD,OAAO;AACd,OAAOC,OAAO,MAAsB,cAAc;AAClD,SAASC,OAAO,EAAEC,QAAQ,QAAQ,mBAAmB;AAGrD,SAASC,UAAU,QAAQ,qCAAqC;AAChE,OAAOC,qBAAqB,MAAM,yBAAyB;AAyB3D,SAASC,iBAAiBA,CACxBC,KAA2B,EAC3B;EACA,MAAM;IACJC,QAAQ;IACRC,YAAY;IACZC,QAAQ;IACRC,eAAe;IACfC,IAAI;IACJC;EACF,CAAC,GAAGN,KAAK;EAET,MAAMO,aAAa,GAAGjB,UAAU,CAACK,OAAO,CAAC;EACzC,MAAM;IAAEa;EAAiB,CAAC,GAAGD,aAAa,aAAbA,aAAa,cAAbA,aAAa,GAAI,CAAC,CAAC;EAEhD,MAAME,OAAO,GAAGhB,MAAM,CAAgB,CAAC,CAAC,CAAC;EACzC,MAAMiB,OAAO,GAAGrB,WAAW,CAAC,MAAM;IAChC,OAAOQ,UAAU,CAAC,CAAC,CAAC,EAAEU,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEF,IAAI,EAAEI,OAAO,CAACE,OAAO,CAAC;EAC7D,CAAC,EAAE,CAACJ,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEF,IAAI,CAAC,CAAC;EAEzBd,SAAS,CAAC,MAAM;IACd,IAAIa,eAAe,EAAE;MACnBA,eAAe,CAACO,OAAO,GAAG,MAAM;QAC9BH,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAG,GAAG,EAAEE,OAAO,CAAC,CAAC,CAAC;MACpC,CAAC;IACH;EACF,CAAC,EAAE,CAACA,OAAO,EAAEF,gBAAgB,EAAEJ,eAAe,CAAC,CAAC;EAEhD,MAAMQ,mBAAmB,GAAGvB,WAAW,CACrC,OAAOwB,IAAU,EAAEC,KAAU,KAAK;IAChCpB,OAAO,CAACqB,GAAG,CAACN,OAAO,CAACE,OAAO,EAAEE,IAAI,EAAEC,KAAK,CAAC;IAEzC,OAAO,OAAMZ,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGW,IAAI,EAAEC,KAAK,CAAC;EAC1C,CAAC,EACD,CAACZ,YAAY,CACf,CAAC;EAED,MAAMc,aAAmC,GAAAC,aAAA,CAAAA,aAAA,KACpCjB,KAAK;IACRK,IAAI;IACJC,WAAW;IACXJ,YAAY,EAAEU,mBAAmB;IACjCT,QAAQ;IACRe,OAAO,EAAE;EAAI,EACd;EAGDF,aAAa,CAACX,IAAI,GAAGb,OAAO,CAAC,MAAM;IACjC,IAAI,CAACc,WAAW,IAAI,CAACD,IAAI,EAAE;MACzB,OAAOK,OAAO,CAAC,CAAC;IAClB;IACA,OAAOM,aAAa,CAACX,IAAI;EAC3B,CAAC,EAAE,CAACA,IAAI,EAAEC,WAAW,EAAEI,OAAO,EAAEM,aAAa,CAACX,IAAI,CAAC,CAAC;EAEpD,OAAOjB,KAAA,CAAA+B,aAAA,CAACvB,QAAQ,EAAKoB,aAAa,EAAGf,QAAmB,CAAC;AAC3D;AAEAF,iBAAiB,CAACqB,YAAY,GAAGtB,qBAAqB;AACtDC,iBAAiB,CAACsB,qBAAqB,GAAGC,SAAS;AAEnD,eAAevB,iBAAiB"}
@@ -0,0 +1,7 @@
1
+ import { ButtonProps } from '../../../../components/button/Button';
2
+ export type Props = ButtonProps;
3
+ declare function IsolationCommitButton(props: Props): import("react/jsx-runtime").JSX.Element;
4
+ declare namespace IsolationCommitButton {
5
+ var _supportsSpacingProps: boolean;
6
+ }
7
+ export default IsolationCommitButton;
@@ -0,0 +1,42 @@
1
+ "use client";
2
+
3
+ import _extends from "@babel/runtime/helpers/esm/extends";
4
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
+ const _excluded = ["className", "children", "text"];
6
+ import React, { useCallback, useContext } from 'react';
7
+ import classnames from 'classnames';
8
+ import { useTranslation } from '../../hooks';
9
+ import DataContext from '../../DataContext/Context';
10
+ import Button from '../../../../components/button/Button';
11
+ import { check } from '../../../../icons';
12
+ function IsolationCommitButton(props) {
13
+ const translations = useTranslation().Isolation;
14
+ const {
15
+ className,
16
+ children,
17
+ text
18
+ } = props,
19
+ rest = _objectWithoutProperties(props, _excluded);
20
+ const content = text || children || translations.commitButtonText;
21
+ const {
22
+ handleSubmit,
23
+ props: dataContextProps
24
+ } = useContext(DataContext) || {};
25
+ const {
26
+ isolate
27
+ } = dataContextProps || {};
28
+ const onClickHandler = useCallback(() => {
29
+ if (isolate) {
30
+ handleSubmit === null || handleSubmit === void 0 ? void 0 : handleSubmit();
31
+ }
32
+ }, [handleSubmit, isolate]);
33
+ return React.createElement(Button, _extends({
34
+ variant: "secondary",
35
+ className: classnames('dnb-forms-isolate-button', className),
36
+ icon: check,
37
+ onClick: onClickHandler
38
+ }, rest), content);
39
+ }
40
+ IsolationCommitButton._supportsSpacingProps = true;
41
+ export default IsolationCommitButton;
42
+ //# sourceMappingURL=IsolationCommitButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsolationCommitButton.js","names":["React","useCallback","useContext","classnames","useTranslation","DataContext","Button","check","IsolationCommitButton","props","translations","Isolation","className","children","text","rest","_objectWithoutProperties","_excluded","content","commitButtonText","handleSubmit","dataContextProps","isolate","onClickHandler","createElement","_extends","variant","icon","onClick","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/IsolationCommitButton.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport classnames from 'classnames'\nimport { useTranslation } from '../../hooks'\nimport DataContext from '../../DataContext/Context'\nimport Button, { ButtonProps } from '../../../../components/button/Button'\nimport { check } from '../../../../icons'\n\nexport type Props = ButtonProps\n\nfunction IsolationCommitButton(props: Props) {\n const translations = useTranslation().Isolation\n\n const { className, children, text, ...rest } = props\n\n const content = text || children || translations.commitButtonText\n\n const { handleSubmit, props: dataContextProps } =\n useContext(DataContext) || {}\n const { isolate } = dataContextProps || {}\n\n const onClickHandler = useCallback(() => {\n if (isolate) {\n handleSubmit?.()\n }\n }, [handleSubmit, isolate])\n\n return (\n <Button\n variant=\"secondary\"\n className={classnames('dnb-forms-isolate-button', className)}\n icon={check}\n onClick={onClickHandler}\n {...rest}\n >\n {content}\n </Button>\n )\n}\n\nIsolationCommitButton._supportsSpacingProps = true\nexport default IsolationCommitButton\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,QAAQ,OAAO;AACtD,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,cAAc,QAAQ,aAAa;AAC5C,OAAOC,WAAW,MAAM,2BAA2B;AACnD,OAAOC,MAAM,MAAuB,sCAAsC;AAC1E,SAASC,KAAK,QAAQ,mBAAmB;AAIzC,SAASC,qBAAqBA,CAACC,KAAY,EAAE;EAC3C,MAAMC,YAAY,GAAGN,cAAc,CAAC,CAAC,CAACO,SAAS;EAE/C,MAAM;MAAEC,SAAS;MAAEC,QAAQ;MAAEC;IAAc,CAAC,GAAGL,KAAK;IAAdM,IAAI,GAAAC,wBAAA,CAAKP,KAAK,EAAAQ,SAAA;EAEpD,MAAMC,OAAO,GAAGJ,IAAI,IAAID,QAAQ,IAAIH,YAAY,CAACS,gBAAgB;EAEjE,MAAM;IAAEC,YAAY;IAAEX,KAAK,EAAEY;EAAiB,CAAC,GAC7CnB,UAAU,CAACG,WAAW,CAAC,IAAI,CAAC,CAAC;EAC/B,MAAM;IAAEiB;EAAQ,CAAC,GAAGD,gBAAgB,IAAI,CAAC,CAAC;EAE1C,MAAME,cAAc,GAAGtB,WAAW,CAAC,MAAM;IACvC,IAAIqB,OAAO,EAAE;MACXF,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAG,CAAC;IAClB;EACF,CAAC,EAAE,CAACA,YAAY,EAAEE,OAAO,CAAC,CAAC;EAE3B,OACEtB,KAAA,CAAAwB,aAAA,CAAClB,MAAM,EAAAmB,QAAA;IACLC,OAAO,EAAC,WAAW;IACnBd,SAAS,EAAET,UAAU,CAAC,0BAA0B,EAAES,SAAS,CAAE;IAC7De,IAAI,EAAEpB,KAAM;IACZqB,OAAO,EAAEL;EAAe,GACpBR,IAAI,GAEPG,OACK,CAAC;AAEb;AAEAV,qBAAqB,CAACqB,qBAAqB,GAAG,IAAI;AAClD,eAAerB,qBAAqB"}
@@ -0,0 +1,3 @@
1
+ import { PropertiesTableProps } from '../../../../shared/types';
2
+ export declare const IsolationProperties: PropertiesTableProps;
3
+ export declare const IsolationEvents: PropertiesTableProps;
@@ -0,0 +1,30 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
+ import { ProviderEvents, ProviderProperties } from '../../DataContext/Provider/ProviderDocs';
5
+ export const IsolationProperties = _objectSpread(_objectSpread({
6
+ commitHandleRef: {
7
+ doc: 'Provide a ref to a function that can be called from any location to commit the data to the form.',
8
+ type: 'React.Ref',
9
+ status: 'optional'
10
+ }
11
+ }, ProviderProperties), {}, {
12
+ minimumAsyncBehaviorTime: undefined,
13
+ asyncSubmitTimeout: undefined,
14
+ scrollTopOnSubmit: undefined,
15
+ sessionStorageId: undefined,
16
+ filterSubmitData: undefined,
17
+ globalStatusId: undefined
18
+ });
19
+ export const IsolationEvents = _objectSpread(_objectSpread({
20
+ onCommit: {
21
+ doc: 'Will be called on a nested form context commit – if validation has passed.',
22
+ type: 'function',
23
+ status: 'optional'
24
+ }
25
+ }, ProviderEvents), {}, {
26
+ onSubmit: undefined,
27
+ onSubmitRequest: undefined,
28
+ onSubmitComplete: undefined
29
+ });
30
+ //# sourceMappingURL=IsolationDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsolationDocs.js","names":["ProviderEvents","ProviderProperties","IsolationProperties","_objectSpread","commitHandleRef","doc","type","status","minimumAsyncBehaviorTime","undefined","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","filterSubmitData","globalStatusId","IsolationEvents","onCommit","onSubmit","onSubmitRequest","onSubmitComplete"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/IsolationDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport {\n ProviderEvents,\n ProviderProperties,\n} from '../../DataContext/Provider/ProviderDocs'\n\nexport const IsolationProperties: PropertiesTableProps = {\n commitHandleRef: {\n doc: 'Provide a ref to a function that can be called from any location to commit the data to the form.',\n type: 'React.Ref',\n status: 'optional',\n },\n ...ProviderProperties,\n minimumAsyncBehaviorTime: undefined,\n asyncSubmitTimeout: undefined,\n scrollTopOnSubmit: undefined,\n sessionStorageId: undefined,\n filterSubmitData: undefined,\n globalStatusId: undefined,\n}\n\nexport const IsolationEvents: PropertiesTableProps = {\n onCommit: {\n doc: 'Will be called on a nested form context commit – if validation has passed.',\n type: 'function',\n status: 'optional',\n },\n ...ProviderEvents,\n onSubmit: undefined,\n onSubmitRequest: undefined,\n onSubmitComplete: undefined,\n}\n"],"mappings":";;;AACA,SACEA,cAAc,EACdC,kBAAkB,QACb,yCAAyC;AAEhD,OAAO,MAAMC,mBAAyC,GAAAC,aAAA,CAAAA,aAAA;EACpDC,eAAe,EAAE;IACfC,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,WAAW;IACjBC,MAAM,EAAE;EACV;AAAC,GACEN,kBAAkB;EACrBO,wBAAwB,EAAEC,SAAS;EACnCC,kBAAkB,EAAED,SAAS;EAC7BE,iBAAiB,EAAEF,SAAS;EAC5BG,gBAAgB,EAAEH,SAAS;EAC3BI,gBAAgB,EAAEJ,SAAS;EAC3BK,cAAc,EAAEL;AAAS,EAC1B;AAED,OAAO,MAAMM,eAAqC,GAAAZ,aAAA,CAAAA,aAAA;EAChDa,QAAQ,EAAE;IACRX,GAAG,EAAE,4EAA4E;IACjFC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AAAC,GACEP,cAAc;EACjBiB,QAAQ,EAAER,SAAS;EACnBS,eAAe,EAAET,SAAS;EAC1BU,gBAAgB,EAAEV;AAAS,EAC5B"}
@@ -0,0 +1,2 @@
1
+ export { default } from './Isolation';
2
+ export * from './Isolation';
@@ -0,0 +1,3 @@
1
+ export { default } from './Isolation';
2
+ export * from './Isolation';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["default"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/index.ts"],"sourcesContent":["export { default } from './Isolation'\nexport * from './Isolation'\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,aAAa;AACrC,cAAc,aAAa"}
@@ -24,8 +24,12 @@ function SubmitButton(props) {
24
24
  const {
25
25
  formState,
26
26
  handleSubmit,
27
- isInsideFormElement
27
+ isInsideFormElement,
28
+ props: dataContextProps
28
29
  } = useContext(DataContext) || {};
30
+ const {
31
+ isolate
32
+ } = dataContextProps || {};
29
33
  const onClickHandler = useCallback(() => {
30
34
  if (!isInsideFormElement) {
31
35
  handleSubmit === null || handleSubmit === void 0 ? void 0 : handleSubmit();
@@ -34,7 +38,7 @@ function SubmitButton(props) {
34
38
  return React.createElement(Button, _extends({
35
39
  className: classnames('dnb-forms-submit-button', className),
36
40
  onClick: onClickHandler,
37
- type: "submit",
41
+ type: isolate ? 'button' : 'submit',
38
42
  icon: variant === 'send' ? send : null
39
43
  }, rest), content, React.createElement(SubmitIndicator, {
40
44
  state: showIndicator ? 'pending' : formState
@@ -1 +1 @@
1
- {"version":3,"file":"SubmitButton.js","names":["React","useCallback","useContext","classnames","DataContext","Button","SubmitIndicator","useTranslation","send","SubmitButton","props","translations","variant","className","showIndicator","children","text","rest","_objectWithoutProperties","_excluded","content","sendText","formState","handleSubmit","isInsideFormElement","onClickHandler","createElement","_extends","onClick","type","icon","state","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/SubmitButton/SubmitButton.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport classnames from 'classnames'\nimport type { ComponentProps } from '../../types'\nimport DataContext from '../../DataContext/Context'\nimport Button, { ButtonProps } from '../../../../components/button/Button'\nimport SubmitIndicator from '../SubmitIndicator'\nimport useTranslation from '../../hooks/useTranslation'\nimport { send } from '../../../../icons'\n\nexport type Props = {\n /**\n * Show the submit indicator\n */\n showIndicator?: boolean\n} & ComponentProps &\n Omit<ButtonProps, 'variant'> &\n Partial<React.HTMLAttributes<HTMLButtonElement | HTMLAnchorElement>> & {\n variant?: 'send'\n }\n\nfunction SubmitButton(props: Props) {\n const translations = useTranslation().SubmitButton\n\n const { variant, className, showIndicator, children, text, ...rest } =\n props\n\n const content =\n text ||\n children ||\n (variant === 'send' ? translations.sendText : translations.text)\n\n const { formState, handleSubmit, isInsideFormElement } =\n useContext(DataContext) || {}\n\n const onClickHandler = useCallback(() => {\n if (!isInsideFormElement) {\n handleSubmit?.()\n }\n }, [isInsideFormElement, handleSubmit])\n\n return (\n <Button\n className={classnames('dnb-forms-submit-button', className)}\n onClick={onClickHandler}\n type=\"submit\"\n icon={variant === 'send' ? send : null}\n {...rest}\n >\n {content}\n\n <SubmitIndicator\n state={\n showIndicator ? 'pending' : formState // will be enabled in a follow-up PR\n }\n />\n </Button>\n )\n}\n\nSubmitButton._supportsSpacingProps = true\nexport default SubmitButton\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,QAAQ,OAAO;AACtD,OAAOC,UAAU,MAAM,YAAY;AAEnC,OAAOC,WAAW,MAAM,2BAA2B;AACnD,OAAOC,MAAM,MAAuB,sCAAsC;AAC1E,OAAOC,eAAe,MAAM,oBAAoB;AAChD,OAAOC,cAAc,MAAM,4BAA4B;AACvD,SAASC,IAAI,QAAQ,mBAAmB;AAaxC,SAASC,YAAYA,CAACC,KAAY,EAAE;EAClC,MAAMC,YAAY,GAAGJ,cAAc,CAAC,CAAC,CAACE,YAAY;EAElD,MAAM;MAAEG,OAAO;MAAEC,SAAS;MAAEC,aAAa;MAAEC,QAAQ;MAAEC;IAAc,CAAC,GAClEN,KAAK;IADuDO,IAAI,GAAAC,wBAAA,CAChER,KAAK,EAAAS,SAAA;EAEP,MAAMC,OAAO,GACXJ,IAAI,IACJD,QAAQ,KACPH,OAAO,KAAK,MAAM,GAAGD,YAAY,CAACU,QAAQ,GAAGV,YAAY,CAACK,IAAI,CAAC;EAElE,MAAM;IAAEM,SAAS;IAAEC,YAAY;IAAEC;EAAoB,CAAC,GACpDtB,UAAU,CAACE,WAAW,CAAC,IAAI,CAAC,CAAC;EAE/B,MAAMqB,cAAc,GAAGxB,WAAW,CAAC,MAAM;IACvC,IAAI,CAACuB,mBAAmB,EAAE;MACxBD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAG,CAAC;IAClB;EACF,CAAC,EAAE,CAACC,mBAAmB,EAAED,YAAY,CAAC,CAAC;EAEvC,OACEvB,KAAA,CAAA0B,aAAA,CAACrB,MAAM,EAAAsB,QAAA;IACLd,SAAS,EAAEV,UAAU,CAAC,yBAAyB,EAAEU,SAAS,CAAE;IAC5De,OAAO,EAAEH,cAAe;IACxBI,IAAI,EAAC,QAAQ;IACbC,IAAI,EAAElB,OAAO,KAAK,MAAM,GAAGJ,IAAI,GAAG;EAAK,GACnCS,IAAI,GAEPG,OAAO,EAERpB,KAAA,CAAA0B,aAAA,CAACpB,eAAe;IACdyB,KAAK,EACHjB,aAAa,GAAG,SAAS,GAAGQ;EAC7B,CACF,CACK,CAAC;AAEb;AAEAb,YAAY,CAACuB,qBAAqB,GAAG,IAAI;AACzC,eAAevB,YAAY"}
1
+ {"version":3,"file":"SubmitButton.js","names":["React","useCallback","useContext","classnames","DataContext","Button","SubmitIndicator","useTranslation","send","SubmitButton","props","translations","variant","className","showIndicator","children","text","rest","_objectWithoutProperties","_excluded","content","sendText","formState","handleSubmit","isInsideFormElement","dataContextProps","isolate","onClickHandler","createElement","_extends","onClick","type","icon","state","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/SubmitButton/SubmitButton.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport classnames from 'classnames'\nimport type { ComponentProps } from '../../types'\nimport DataContext from '../../DataContext/Context'\nimport Button, { ButtonProps } from '../../../../components/button/Button'\nimport SubmitIndicator from '../SubmitIndicator'\nimport useTranslation from '../../hooks/useTranslation'\nimport { send } from '../../../../icons'\n\nexport type Props = {\n /**\n * Show the submit indicator\n */\n showIndicator?: boolean\n} & ComponentProps &\n Omit<ButtonProps, 'variant'> &\n Partial<React.HTMLAttributes<HTMLButtonElement | HTMLAnchorElement>> & {\n variant?: 'send'\n }\n\nfunction SubmitButton(props: Props) {\n const translations = useTranslation().SubmitButton\n\n const { variant, className, showIndicator, children, text, ...rest } =\n props\n\n const content =\n text ||\n children ||\n (variant === 'send' ? translations.sendText : translations.text)\n\n const {\n formState,\n handleSubmit,\n isInsideFormElement,\n props: dataContextProps,\n } = useContext(DataContext) || {}\n const { isolate } = dataContextProps || {}\n\n const onClickHandler = useCallback(() => {\n if (!isInsideFormElement) {\n handleSubmit?.()\n }\n }, [isInsideFormElement, handleSubmit])\n\n return (\n <Button\n className={classnames('dnb-forms-submit-button', className)}\n onClick={onClickHandler}\n type={isolate ? 'button' : 'submit'}\n icon={variant === 'send' ? send : null}\n {...rest}\n >\n {content}\n\n <SubmitIndicator\n state={\n showIndicator ? 'pending' : formState // will be enabled in a follow-up PR\n }\n />\n </Button>\n )\n}\n\nSubmitButton._supportsSpacingProps = true\nexport default SubmitButton\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,QAAQ,OAAO;AACtD,OAAOC,UAAU,MAAM,YAAY;AAEnC,OAAOC,WAAW,MAAM,2BAA2B;AACnD,OAAOC,MAAM,MAAuB,sCAAsC;AAC1E,OAAOC,eAAe,MAAM,oBAAoB;AAChD,OAAOC,cAAc,MAAM,4BAA4B;AACvD,SAASC,IAAI,QAAQ,mBAAmB;AAaxC,SAASC,YAAYA,CAACC,KAAY,EAAE;EAClC,MAAMC,YAAY,GAAGJ,cAAc,CAAC,CAAC,CAACE,YAAY;EAElD,MAAM;MAAEG,OAAO;MAAEC,SAAS;MAAEC,aAAa;MAAEC,QAAQ;MAAEC;IAAc,CAAC,GAClEN,KAAK;IADuDO,IAAI,GAAAC,wBAAA,CAChER,KAAK,EAAAS,SAAA;EAEP,MAAMC,OAAO,GACXJ,IAAI,IACJD,QAAQ,KACPH,OAAO,KAAK,MAAM,GAAGD,YAAY,CAACU,QAAQ,GAAGV,YAAY,CAACK,IAAI,CAAC;EAElE,MAAM;IACJM,SAAS;IACTC,YAAY;IACZC,mBAAmB;IACnBd,KAAK,EAAEe;EACT,CAAC,GAAGvB,UAAU,CAACE,WAAW,CAAC,IAAI,CAAC,CAAC;EACjC,MAAM;IAAEsB;EAAQ,CAAC,GAAGD,gBAAgB,IAAI,CAAC,CAAC;EAE1C,MAAME,cAAc,GAAG1B,WAAW,CAAC,MAAM;IACvC,IAAI,CAACuB,mBAAmB,EAAE;MACxBD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAG,CAAC;IAClB;EACF,CAAC,EAAE,CAACC,mBAAmB,EAAED,YAAY,CAAC,CAAC;EAEvC,OACEvB,KAAA,CAAA4B,aAAA,CAACvB,MAAM,EAAAwB,QAAA;IACLhB,SAAS,EAAEV,UAAU,CAAC,yBAAyB,EAAEU,SAAS,CAAE;IAC5DiB,OAAO,EAAEH,cAAe;IACxBI,IAAI,EAAEL,OAAO,GAAG,QAAQ,GAAG,QAAS;IACpCM,IAAI,EAAEpB,OAAO,KAAK,MAAM,GAAGJ,IAAI,GAAG;EAAK,GACnCS,IAAI,GAEPG,OAAO,EAERpB,KAAA,CAAA4B,aAAA,CAACtB,eAAe;IACd2B,KAAK,EACHnB,aAAa,GAAG,SAAS,GAAGQ;EAC7B,CACF,CACK,CAAC;AAEb;AAEAb,YAAY,CAACyB,qBAAqB,GAAG,IAAI;AACzC,eAAezB,YAAY"}