@dnb/eufemia 10.28.0 → 10.29.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 (651) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/cjs/components/aria-live/useAriaLive.d.ts +1 -1
  3. package/cjs/components/autocomplete/Autocomplete.d.ts +19 -5
  4. package/cjs/components/dropdown/Dropdown.d.ts +22 -5
  5. package/cjs/components/height-animation/HeightAnimationInstance.js +5 -0
  6. package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
  7. package/cjs/components/icon/style/dnb-icon.css +1 -0
  8. package/cjs/components/icon/style/dnb-icon.min.css +1 -1
  9. package/cjs/components/icon/style/dnb-icon.scss +1 -0
  10. package/cjs/components/progress-indicator/ProgressIndicator.d.ts +2 -52
  11. package/cjs/components/progress-indicator/ProgressIndicator.js +27 -14
  12. package/cjs/components/progress-indicator/ProgressIndicator.js.map +1 -1
  13. package/cjs/components/progress-indicator/ProgressIndicatorCircular.d.ts +2 -23
  14. package/cjs/components/progress-indicator/ProgressIndicatorCircular.js +63 -27
  15. package/cjs/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
  16. package/cjs/components/progress-indicator/ProgressIndicatorDocs.d.ts +1 -0
  17. package/cjs/components/progress-indicator/ProgressIndicatorDocs.js +45 -11
  18. package/cjs/components/progress-indicator/ProgressIndicatorDocs.js.map +1 -1
  19. package/cjs/components/progress-indicator/ProgressIndicatorLinear.d.ts +2 -22
  20. package/cjs/components/progress-indicator/ProgressIndicatorLinear.js +18 -10
  21. package/cjs/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
  22. package/cjs/components/progress-indicator/style/dnb-progress-indicator.css +52 -55
  23. package/cjs/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  24. package/cjs/components/progress-indicator/style/dnb-progress-indicator.scss +65 -69
  25. package/cjs/components/progress-indicator/types.d.ts +95 -0
  26. package/cjs/components/progress-indicator/types.js +11 -0
  27. package/cjs/components/progress-indicator/types.js.map +1 -0
  28. package/cjs/extensions/forms/DataContext/Context.d.ts +5 -1
  29. package/cjs/extensions/forms/DataContext/Context.js +0 -1
  30. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  31. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +17 -5
  32. package/cjs/extensions/forms/DataContext/Provider/Provider.js +60 -30
  33. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  34. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +12 -2
  35. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  36. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +1 -1
  37. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  38. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +5 -2
  39. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  40. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +5 -2
  41. package/cjs/extensions/forms/Field/Name/Name.d.ts +10 -0
  42. package/cjs/extensions/forms/Field/Name/Name.js +73 -0
  43. package/cjs/extensions/forms/Field/Name/Name.js.map +1 -0
  44. package/cjs/extensions/forms/Field/Name/NameDocs.d.ts +2 -0
  45. package/cjs/extensions/forms/Field/Name/NameDocs.js +15 -0
  46. package/cjs/extensions/forms/Field/Name/NameDocs.js.map +1 -0
  47. package/cjs/extensions/forms/Field/Name/index.d.ts +2 -0
  48. package/cjs/extensions/forms/Field/Name/index.js +27 -0
  49. package/cjs/extensions/forms/Field/Name/index.js.map +1 -0
  50. package/cjs/extensions/forms/Field/Number/Number.d.ts +2 -2
  51. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  52. package/cjs/extensions/forms/Field/Option/Option.d.ts +2 -0
  53. package/cjs/extensions/forms/Field/Option/Option.js +21 -0
  54. package/cjs/extensions/forms/Field/Option/Option.js.map +1 -1
  55. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.d.ts +2 -0
  56. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +25 -0
  57. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -0
  58. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  59. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  60. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +11 -4
  61. package/cjs/extensions/forms/Field/Selection/Selection.js +20 -32
  62. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  63. package/cjs/extensions/forms/Field/Selection/SelectionDocs.d.ts +2 -0
  64. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js +45 -0
  65. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -0
  66. package/cjs/extensions/forms/Field/String/String.d.ts +2 -2
  67. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  68. package/cjs/extensions/forms/Field/index.d.ts +1 -0
  69. package/cjs/extensions/forms/Field/index.js +7 -0
  70. package/cjs/extensions/forms/Field/index.js.map +1 -1
  71. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -3
  72. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  73. package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  74. package/cjs/extensions/forms/Form/Handler/Handler.js +8 -2
  75. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  76. package/cjs/extensions/forms/Form/MainHeading/MainHeading.js +1 -1
  77. package/cjs/extensions/forms/Form/MainHeading/MainHeading.js.map +1 -1
  78. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +3 -3
  79. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  80. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.scss +1 -1
  81. package/cjs/extensions/forms/Form/SubHeading/SubHeading.js +1 -1
  82. package/cjs/extensions/forms/Form/SubHeading/SubHeading.js.map +1 -1
  83. package/cjs/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.css +2 -2
  84. package/cjs/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.min.css +1 -1
  85. package/cjs/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.scss +1 -1
  86. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +2 -2
  87. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -1
  88. package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +13 -13
  89. package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -1
  90. package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +1 -1
  91. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -4
  92. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  93. package/cjs/extensions/forms/Iterate/Array/Array.js +2 -2
  94. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  95. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -1
  96. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  97. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js +1 -1
  98. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  99. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  100. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  101. package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
  102. package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  103. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js +1 -1
  104. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  105. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.css +14 -14
  106. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  107. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.scss +1 -1
  108. package/cjs/extensions/forms/Value/Boolean/Boolean.js +8 -3
  109. package/cjs/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  110. package/cjs/extensions/forms/Value/Name/Name.d.ts +10 -0
  111. package/cjs/extensions/forms/Value/Name/Name.js +50 -0
  112. package/cjs/extensions/forms/Value/Name/Name.js.map +1 -0
  113. package/cjs/extensions/forms/Value/Name/index.d.ts +2 -0
  114. package/cjs/extensions/forms/Value/Name/index.js +27 -0
  115. package/cjs/extensions/forms/Value/Name/index.js.map +1 -0
  116. package/cjs/extensions/forms/Value/OrganizationNumber/OrganizationNumber.d.ts +7 -0
  117. package/cjs/extensions/forms/Value/OrganizationNumber/OrganizationNumber.js +36 -0
  118. package/cjs/extensions/forms/Value/OrganizationNumber/OrganizationNumber.js.map +1 -0
  119. package/cjs/extensions/forms/Value/OrganizationNumber/index.d.ts +2 -0
  120. package/cjs/extensions/forms/Value/OrganizationNumber/index.js +27 -0
  121. package/cjs/extensions/forms/Value/OrganizationNumber/index.js.map +1 -0
  122. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.d.ts +7 -0
  123. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js +41 -0
  124. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -0
  125. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.d.ts +2 -0
  126. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js +20 -0
  127. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -0
  128. package/cjs/extensions/forms/Value/PostalCodeAndCity/index.d.ts +2 -0
  129. package/cjs/extensions/forms/Value/PostalCodeAndCity/index.js +27 -0
  130. package/cjs/extensions/forms/Value/PostalCodeAndCity/index.js.map +1 -0
  131. package/cjs/extensions/forms/Value/String/String.js +8 -3
  132. package/cjs/extensions/forms/Value/String/String.js.map +1 -1
  133. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js +1 -1
  134. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
  135. package/cjs/extensions/forms/Value/ValueDocs.js +6 -1
  136. package/cjs/extensions/forms/Value/ValueDocs.js.map +1 -1
  137. package/cjs/extensions/forms/Value/index.d.ts +3 -0
  138. package/cjs/extensions/forms/Value/index.js +21 -0
  139. package/cjs/extensions/forms/Value/index.js.map +1 -1
  140. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +2 -1
  141. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  142. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +11 -6
  143. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  144. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.scss +11 -3
  145. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +17 -52
  146. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  147. package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +9 -0
  148. package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +53 -0
  149. package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -0
  150. package/cjs/extensions/forms/Wizard/Container/useStepAnimation.d.ts +4 -0
  151. package/cjs/extensions/forms/Wizard/Container/useStepAnimation.js +37 -0
  152. package/cjs/extensions/forms/Wizard/Container/useStepAnimation.js.map +1 -0
  153. package/cjs/extensions/forms/Wizard/Step/Step.js +13 -1
  154. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  155. package/cjs/extensions/forms/Wizard/hooks/useStep.js +5 -2
  156. package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  157. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css +29 -2
  158. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  159. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.scss +35 -2
  160. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +9 -0
  161. package/cjs/extensions/forms/constants/locales/en-GB.js +12 -3
  162. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  163. package/cjs/extensions/forms/constants/locales/en-US.d.ts +9 -0
  164. package/cjs/extensions/forms/constants/locales/index.d.ts +18 -0
  165. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +9 -0
  166. package/cjs/extensions/forms/constants/locales/nb-NO.js +11 -2
  167. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  168. package/cjs/extensions/forms/style/dnb-forms.css +77 -43
  169. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  170. package/cjs/extensions/forms/types.d.ts +3 -2
  171. package/cjs/extensions/forms/types.js.map +1 -1
  172. package/cjs/fragments/drawer-list/DrawerList.d.ts +8 -4
  173. package/cjs/shared/Context.d.ts +2 -4
  174. package/cjs/shared/Context.js.map +1 -1
  175. package/cjs/shared/Eufemia.d.ts +1 -1
  176. package/cjs/shared/Eufemia.js +2 -2
  177. package/cjs/shared/Eufemia.js.map +1 -1
  178. package/cjs/shared/component-helper.js +1 -1
  179. package/cjs/shared/component-helper.js.map +1 -1
  180. package/cjs/style/core/scopes.scss +1 -1
  181. package/cjs/style/dnb-ui-basis.css +1 -1
  182. package/cjs/style/dnb-ui-basis.min.css +1 -1
  183. package/cjs/style/dnb-ui-body.css +1 -1
  184. package/cjs/style/dnb-ui-body.min.css +1 -1
  185. package/cjs/style/dnb-ui-components.css +129 -98
  186. package/cjs/style/dnb-ui-components.min.css +2 -2
  187. package/cjs/style/dnb-ui-core.css +1 -1
  188. package/cjs/style/dnb-ui-core.min.css +1 -1
  189. package/cjs/style/dnb-ui-extensions.css +77 -43
  190. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  191. package/cjs/style/dnb-ui-forms.css +77 -43
  192. package/cjs/style/dnb-ui-forms.min.css +1 -1
  193. package/cjs/style/dnb-ui-forms.scss +1 -1
  194. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +205 -141
  195. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  196. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +77 -43
  197. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  198. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +77 -43
  199. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  200. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +205 -141
  201. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  202. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +77 -43
  203. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  204. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +77 -43
  205. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  206. package/cjs/style/themes/theme-ui/ui-theme-components.css +205 -141
  207. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  208. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +77 -43
  209. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  210. package/cjs/style/themes/theme-ui/ui-theme-forms.css +77 -43
  211. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  212. package/components/aria-live/useAriaLive.d.ts +1 -1
  213. package/components/autocomplete/Autocomplete.d.ts +19 -5
  214. package/components/dropdown/Dropdown.d.ts +22 -5
  215. package/components/height-animation/HeightAnimationInstance.js +5 -0
  216. package/components/height-animation/HeightAnimationInstance.js.map +1 -1
  217. package/components/icon/style/dnb-icon.css +1 -0
  218. package/components/icon/style/dnb-icon.min.css +1 -1
  219. package/components/icon/style/dnb-icon.scss +1 -0
  220. package/components/progress-indicator/ProgressIndicator.d.ts +2 -52
  221. package/components/progress-indicator/ProgressIndicator.js +27 -14
  222. package/components/progress-indicator/ProgressIndicator.js.map +1 -1
  223. package/components/progress-indicator/ProgressIndicatorCircular.d.ts +2 -23
  224. package/components/progress-indicator/ProgressIndicatorCircular.js +63 -27
  225. package/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
  226. package/components/progress-indicator/ProgressIndicatorDocs.d.ts +1 -0
  227. package/components/progress-indicator/ProgressIndicatorDocs.js +43 -10
  228. package/components/progress-indicator/ProgressIndicatorDocs.js.map +1 -1
  229. package/components/progress-indicator/ProgressIndicatorLinear.d.ts +2 -22
  230. package/components/progress-indicator/ProgressIndicatorLinear.js +18 -10
  231. package/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
  232. package/components/progress-indicator/style/dnb-progress-indicator.css +52 -55
  233. package/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  234. package/components/progress-indicator/style/dnb-progress-indicator.scss +65 -69
  235. package/components/progress-indicator/types.d.ts +95 -0
  236. package/components/progress-indicator/types.js +5 -0
  237. package/components/progress-indicator/types.js.map +1 -0
  238. package/es/components/aria-live/useAriaLive.d.ts +1 -1
  239. package/es/components/autocomplete/Autocomplete.d.ts +19 -5
  240. package/es/components/dropdown/Dropdown.d.ts +22 -5
  241. package/es/components/height-animation/HeightAnimationInstance.js +5 -0
  242. package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
  243. package/es/components/icon/style/dnb-icon.css +1 -0
  244. package/es/components/icon/style/dnb-icon.min.css +1 -1
  245. package/es/components/icon/style/dnb-icon.scss +1 -0
  246. package/es/components/progress-indicator/ProgressIndicator.d.ts +2 -52
  247. package/es/components/progress-indicator/ProgressIndicator.js +27 -14
  248. package/es/components/progress-indicator/ProgressIndicator.js.map +1 -1
  249. package/es/components/progress-indicator/ProgressIndicatorCircular.d.ts +2 -23
  250. package/es/components/progress-indicator/ProgressIndicatorCircular.js +62 -27
  251. package/es/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
  252. package/es/components/progress-indicator/ProgressIndicatorDocs.d.ts +1 -0
  253. package/es/components/progress-indicator/ProgressIndicatorDocs.js +43 -10
  254. package/es/components/progress-indicator/ProgressIndicatorDocs.js.map +1 -1
  255. package/es/components/progress-indicator/ProgressIndicatorLinear.d.ts +2 -22
  256. package/es/components/progress-indicator/ProgressIndicatorLinear.js +18 -10
  257. package/es/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
  258. package/es/components/progress-indicator/style/dnb-progress-indicator.css +52 -55
  259. package/es/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  260. package/es/components/progress-indicator/style/dnb-progress-indicator.scss +65 -69
  261. package/es/components/progress-indicator/types.d.ts +95 -0
  262. package/es/components/progress-indicator/types.js +5 -0
  263. package/es/components/progress-indicator/types.js.map +1 -0
  264. package/es/extensions/forms/DataContext/Context.d.ts +5 -1
  265. package/es/extensions/forms/DataContext/Context.js +0 -1
  266. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  267. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +17 -5
  268. package/es/extensions/forms/DataContext/Provider/Provider.js +58 -29
  269. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  270. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +12 -2
  271. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  272. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +1 -1
  273. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  274. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +5 -2
  275. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  276. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +5 -2
  277. package/es/extensions/forms/Field/Name/Name.d.ts +10 -0
  278. package/es/extensions/forms/Field/Name/Name.js +63 -0
  279. package/es/extensions/forms/Field/Name/Name.js.map +1 -0
  280. package/es/extensions/forms/Field/Name/NameDocs.d.ts +2 -0
  281. package/es/extensions/forms/Field/Name/NameDocs.js +8 -0
  282. package/es/extensions/forms/Field/Name/NameDocs.js.map +1 -0
  283. package/es/extensions/forms/Field/Name/index.d.ts +2 -0
  284. package/es/extensions/forms/Field/Name/index.js +3 -0
  285. package/es/extensions/forms/Field/Name/index.js.map +1 -0
  286. package/es/extensions/forms/Field/Number/Number.d.ts +2 -2
  287. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  288. package/es/extensions/forms/Field/Option/Option.d.ts +2 -0
  289. package/es/extensions/forms/Field/Option/Option.js +20 -0
  290. package/es/extensions/forms/Field/Option/Option.js.map +1 -1
  291. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.d.ts +2 -0
  292. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +18 -0
  293. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -0
  294. package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  295. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  296. package/es/extensions/forms/Field/Selection/Selection.d.ts +11 -4
  297. package/es/extensions/forms/Field/Selection/Selection.js +20 -32
  298. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  299. package/es/extensions/forms/Field/Selection/SelectionDocs.d.ts +2 -0
  300. package/es/extensions/forms/Field/Selection/SelectionDocs.js +38 -0
  301. package/es/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -0
  302. package/es/extensions/forms/Field/String/String.d.ts +2 -2
  303. package/es/extensions/forms/Field/String/String.js.map +1 -1
  304. package/es/extensions/forms/Field/index.d.ts +1 -0
  305. package/es/extensions/forms/Field/index.js +1 -0
  306. package/es/extensions/forms/Field/index.js.map +1 -1
  307. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -3
  308. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  309. package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  310. package/es/extensions/forms/Form/Handler/Handler.js +8 -2
  311. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  312. package/es/extensions/forms/Form/MainHeading/MainHeading.js +1 -1
  313. package/es/extensions/forms/Form/MainHeading/MainHeading.js.map +1 -1
  314. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +3 -3
  315. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  316. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.scss +1 -1
  317. package/es/extensions/forms/Form/SubHeading/SubHeading.js +1 -1
  318. package/es/extensions/forms/Form/SubHeading/SubHeading.js.map +1 -1
  319. package/es/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.css +2 -2
  320. package/es/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.min.css +1 -1
  321. package/es/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.scss +1 -1
  322. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +2 -2
  323. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -1
  324. package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +13 -13
  325. package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -1
  326. package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +1 -1
  327. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -4
  328. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  329. package/es/extensions/forms/Iterate/Array/Array.js +2 -2
  330. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  331. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -1
  332. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  333. package/es/extensions/forms/Iterate/PushButton/PushButton.js +1 -1
  334. package/es/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  335. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  336. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  337. package/es/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
  338. package/es/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  339. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js +1 -1
  340. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  341. package/es/extensions/forms/Iterate/style/dnb-form-iterate.css +14 -14
  342. package/es/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  343. package/es/extensions/forms/Iterate/style/dnb-form-iterate.scss +1 -1
  344. package/es/extensions/forms/Value/Boolean/Boolean.js +8 -3
  345. package/es/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  346. package/es/extensions/forms/Value/Name/Name.d.ts +10 -0
  347. package/es/extensions/forms/Value/Name/Name.js +40 -0
  348. package/es/extensions/forms/Value/Name/Name.js.map +1 -0
  349. package/es/extensions/forms/Value/Name/index.d.ts +2 -0
  350. package/es/extensions/forms/Value/Name/index.js +3 -0
  351. package/es/extensions/forms/Value/Name/index.js.map +1 -0
  352. package/es/extensions/forms/Value/OrganizationNumber/OrganizationNumber.d.ts +7 -0
  353. package/es/extensions/forms/Value/OrganizationNumber/OrganizationNumber.js +24 -0
  354. package/es/extensions/forms/Value/OrganizationNumber/OrganizationNumber.js.map +1 -0
  355. package/es/extensions/forms/Value/OrganizationNumber/index.d.ts +2 -0
  356. package/es/extensions/forms/Value/OrganizationNumber/index.js +3 -0
  357. package/es/extensions/forms/Value/OrganizationNumber/index.js.map +1 -0
  358. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.d.ts +7 -0
  359. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js +31 -0
  360. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -0
  361. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.d.ts +2 -0
  362. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js +13 -0
  363. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -0
  364. package/es/extensions/forms/Value/PostalCodeAndCity/index.d.ts +2 -0
  365. package/es/extensions/forms/Value/PostalCodeAndCity/index.js +3 -0
  366. package/es/extensions/forms/Value/PostalCodeAndCity/index.js.map +1 -0
  367. package/es/extensions/forms/Value/String/String.js +8 -3
  368. package/es/extensions/forms/Value/String/String.js.map +1 -1
  369. package/es/extensions/forms/Value/SummaryList/SummaryList.js +1 -1
  370. package/es/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
  371. package/es/extensions/forms/Value/ValueDocs.js +6 -1
  372. package/es/extensions/forms/Value/ValueDocs.js.map +1 -1
  373. package/es/extensions/forms/Value/index.d.ts +3 -0
  374. package/es/extensions/forms/Value/index.js +3 -0
  375. package/es/extensions/forms/Value/index.js.map +1 -1
  376. package/es/extensions/forms/ValueBlock/ValueBlock.js +2 -1
  377. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  378. package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +11 -6
  379. package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  380. package/es/extensions/forms/ValueBlock/style/dnb-value-block.scss +11 -3
  381. package/es/extensions/forms/Wizard/Container/WizardContainer.js +17 -51
  382. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  383. package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +9 -0
  384. package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +46 -0
  385. package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -0
  386. package/es/extensions/forms/Wizard/Container/useStepAnimation.d.ts +4 -0
  387. package/es/extensions/forms/Wizard/Container/useStepAnimation.js +29 -0
  388. package/es/extensions/forms/Wizard/Container/useStepAnimation.js.map +1 -0
  389. package/es/extensions/forms/Wizard/Step/Step.js +14 -2
  390. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  391. package/es/extensions/forms/Wizard/hooks/useStep.js +3 -2
  392. package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  393. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.css +29 -2
  394. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  395. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.scss +35 -2
  396. package/es/extensions/forms/constants/locales/en-GB.d.ts +9 -0
  397. package/es/extensions/forms/constants/locales/en-GB.js +12 -3
  398. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  399. package/es/extensions/forms/constants/locales/en-US.d.ts +9 -0
  400. package/es/extensions/forms/constants/locales/index.d.ts +18 -0
  401. package/es/extensions/forms/constants/locales/nb-NO.d.ts +9 -0
  402. package/es/extensions/forms/constants/locales/nb-NO.js +11 -2
  403. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  404. package/es/extensions/forms/style/dnb-forms.css +77 -43
  405. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  406. package/es/extensions/forms/types.d.ts +3 -2
  407. package/es/extensions/forms/types.js.map +1 -1
  408. package/es/fragments/drawer-list/DrawerList.d.ts +8 -4
  409. package/es/shared/Context.d.ts +2 -4
  410. package/es/shared/Context.js.map +1 -1
  411. package/es/shared/Eufemia.d.ts +1 -1
  412. package/es/shared/Eufemia.js +2 -2
  413. package/es/shared/Eufemia.js.map +1 -1
  414. package/es/shared/component-helper.js +1 -1
  415. package/es/shared/component-helper.js.map +1 -1
  416. package/es/style/core/scopes.scss +1 -1
  417. package/es/style/dnb-ui-basis.css +1 -1
  418. package/es/style/dnb-ui-basis.min.css +1 -1
  419. package/es/style/dnb-ui-body.css +1 -1
  420. package/es/style/dnb-ui-body.min.css +1 -1
  421. package/es/style/dnb-ui-components.css +129 -98
  422. package/es/style/dnb-ui-components.min.css +2 -2
  423. package/es/style/dnb-ui-core.css +1 -1
  424. package/es/style/dnb-ui-core.min.css +1 -1
  425. package/es/style/dnb-ui-extensions.css +77 -43
  426. package/es/style/dnb-ui-extensions.min.css +1 -1
  427. package/es/style/dnb-ui-forms.css +77 -43
  428. package/es/style/dnb-ui-forms.min.css +1 -1
  429. package/es/style/dnb-ui-forms.scss +1 -1
  430. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +205 -141
  431. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  432. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +77 -43
  433. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  434. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +77 -43
  435. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  436. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +205 -141
  437. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  438. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +77 -43
  439. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  440. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +77 -43
  441. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  442. package/es/style/themes/theme-ui/ui-theme-components.css +205 -141
  443. package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  444. package/es/style/themes/theme-ui/ui-theme-extensions.css +77 -43
  445. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  446. package/es/style/themes/theme-ui/ui-theme-forms.css +77 -43
  447. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  448. package/esm/dnb-ui-basis.min.mjs +1 -1
  449. package/esm/dnb-ui-components.min.mjs +1 -1
  450. package/esm/dnb-ui-elements.min.mjs +1 -1
  451. package/esm/dnb-ui-extensions.min.mjs +3 -3
  452. package/esm/dnb-ui-lib.min.mjs +1 -1
  453. package/extensions/forms/DataContext/Context.d.ts +5 -1
  454. package/extensions/forms/DataContext/Context.js +0 -1
  455. package/extensions/forms/DataContext/Context.js.map +1 -1
  456. package/extensions/forms/DataContext/Provider/Provider.d.ts +17 -5
  457. package/extensions/forms/DataContext/Provider/Provider.js +60 -30
  458. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  459. package/extensions/forms/DataContext/Provider/ProviderDocs.js +12 -2
  460. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  461. package/extensions/forms/Field/ArraySelection/ArraySelection.js +1 -1
  462. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  463. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +5 -2
  464. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  465. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +5 -2
  466. package/extensions/forms/Field/Name/Name.d.ts +10 -0
  467. package/extensions/forms/Field/Name/Name.js +63 -0
  468. package/extensions/forms/Field/Name/Name.js.map +1 -0
  469. package/extensions/forms/Field/Name/NameDocs.d.ts +2 -0
  470. package/extensions/forms/Field/Name/NameDocs.js +8 -0
  471. package/extensions/forms/Field/Name/NameDocs.js.map +1 -0
  472. package/extensions/forms/Field/Name/index.d.ts +2 -0
  473. package/extensions/forms/Field/Name/index.js +3 -0
  474. package/extensions/forms/Field/Name/index.js.map +1 -0
  475. package/extensions/forms/Field/Number/Number.d.ts +2 -2
  476. package/extensions/forms/Field/Number/Number.js.map +1 -1
  477. package/extensions/forms/Field/Option/Option.d.ts +2 -0
  478. package/extensions/forms/Field/Option/Option.js +20 -0
  479. package/extensions/forms/Field/Option/Option.js.map +1 -1
  480. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.d.ts +2 -0
  481. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +18 -0
  482. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -0
  483. package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  484. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  485. package/extensions/forms/Field/Selection/Selection.d.ts +11 -4
  486. package/extensions/forms/Field/Selection/Selection.js +20 -32
  487. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  488. package/extensions/forms/Field/Selection/SelectionDocs.d.ts +2 -0
  489. package/extensions/forms/Field/Selection/SelectionDocs.js +38 -0
  490. package/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -0
  491. package/extensions/forms/Field/String/String.d.ts +2 -2
  492. package/extensions/forms/Field/String/String.js.map +1 -1
  493. package/extensions/forms/Field/index.d.ts +1 -0
  494. package/extensions/forms/Field/index.js +1 -0
  495. package/extensions/forms/Field/index.js.map +1 -1
  496. package/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -3
  497. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  498. package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  499. package/extensions/forms/Form/Handler/Handler.js +8 -2
  500. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  501. package/extensions/forms/Form/MainHeading/MainHeading.js +1 -1
  502. package/extensions/forms/Form/MainHeading/MainHeading.js.map +1 -1
  503. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +3 -3
  504. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  505. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.scss +1 -1
  506. package/extensions/forms/Form/SubHeading/SubHeading.js +1 -1
  507. package/extensions/forms/Form/SubHeading/SubHeading.js.map +1 -1
  508. package/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.css +2 -2
  509. package/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.min.css +1 -1
  510. package/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.scss +1 -1
  511. package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +2 -2
  512. package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -1
  513. package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +13 -13
  514. package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -1
  515. package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +1 -1
  516. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -4
  517. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  518. package/extensions/forms/Iterate/Array/Array.js +2 -2
  519. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  520. package/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -1
  521. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  522. package/extensions/forms/Iterate/PushButton/PushButton.js +1 -1
  523. package/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  524. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  525. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  526. package/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
  527. package/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  528. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js +1 -1
  529. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  530. package/extensions/forms/Iterate/style/dnb-form-iterate.css +14 -14
  531. package/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  532. package/extensions/forms/Iterate/style/dnb-form-iterate.scss +1 -1
  533. package/extensions/forms/Value/Boolean/Boolean.js +8 -3
  534. package/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  535. package/extensions/forms/Value/Name/Name.d.ts +10 -0
  536. package/extensions/forms/Value/Name/Name.js +40 -0
  537. package/extensions/forms/Value/Name/Name.js.map +1 -0
  538. package/extensions/forms/Value/Name/index.d.ts +2 -0
  539. package/extensions/forms/Value/Name/index.js +3 -0
  540. package/extensions/forms/Value/Name/index.js.map +1 -0
  541. package/extensions/forms/Value/OrganizationNumber/OrganizationNumber.d.ts +7 -0
  542. package/extensions/forms/Value/OrganizationNumber/OrganizationNumber.js +24 -0
  543. package/extensions/forms/Value/OrganizationNumber/OrganizationNumber.js.map +1 -0
  544. package/extensions/forms/Value/OrganizationNumber/index.d.ts +2 -0
  545. package/extensions/forms/Value/OrganizationNumber/index.js +3 -0
  546. package/extensions/forms/Value/OrganizationNumber/index.js.map +1 -0
  547. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.d.ts +7 -0
  548. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js +31 -0
  549. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -0
  550. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.d.ts +2 -0
  551. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js +13 -0
  552. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -0
  553. package/extensions/forms/Value/PostalCodeAndCity/index.d.ts +2 -0
  554. package/extensions/forms/Value/PostalCodeAndCity/index.js +3 -0
  555. package/extensions/forms/Value/PostalCodeAndCity/index.js.map +1 -0
  556. package/extensions/forms/Value/String/String.js +8 -3
  557. package/extensions/forms/Value/String/String.js.map +1 -1
  558. package/extensions/forms/Value/SummaryList/SummaryList.js +1 -1
  559. package/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
  560. package/extensions/forms/Value/ValueDocs.js +6 -1
  561. package/extensions/forms/Value/ValueDocs.js.map +1 -1
  562. package/extensions/forms/Value/index.d.ts +3 -0
  563. package/extensions/forms/Value/index.js +3 -0
  564. package/extensions/forms/Value/index.js.map +1 -1
  565. package/extensions/forms/ValueBlock/ValueBlock.js +2 -1
  566. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  567. package/extensions/forms/ValueBlock/style/dnb-value-block.css +11 -6
  568. package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  569. package/extensions/forms/ValueBlock/style/dnb-value-block.scss +11 -3
  570. package/extensions/forms/Wizard/Container/WizardContainer.js +17 -52
  571. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  572. package/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +9 -0
  573. package/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +47 -0
  574. package/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -0
  575. package/extensions/forms/Wizard/Container/useStepAnimation.d.ts +4 -0
  576. package/extensions/forms/Wizard/Container/useStepAnimation.js +30 -0
  577. package/extensions/forms/Wizard/Container/useStepAnimation.js.map +1 -0
  578. package/extensions/forms/Wizard/Step/Step.js +14 -2
  579. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  580. package/extensions/forms/Wizard/hooks/useStep.js +3 -2
  581. package/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  582. package/extensions/forms/Wizard/style/dnb-wizard-layout.css +29 -2
  583. package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  584. package/extensions/forms/Wizard/style/dnb-wizard-layout.scss +35 -2
  585. package/extensions/forms/constants/locales/en-GB.d.ts +9 -0
  586. package/extensions/forms/constants/locales/en-GB.js +12 -3
  587. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  588. package/extensions/forms/constants/locales/en-US.d.ts +9 -0
  589. package/extensions/forms/constants/locales/index.d.ts +18 -0
  590. package/extensions/forms/constants/locales/nb-NO.d.ts +9 -0
  591. package/extensions/forms/constants/locales/nb-NO.js +11 -2
  592. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  593. package/extensions/forms/style/dnb-forms.css +77 -43
  594. package/extensions/forms/style/dnb-forms.min.css +1 -1
  595. package/extensions/forms/types.d.ts +3 -2
  596. package/extensions/forms/types.js.map +1 -1
  597. package/fragments/drawer-list/DrawerList.d.ts +8 -4
  598. package/package.json +1 -1
  599. package/shared/Context.d.ts +2 -4
  600. package/shared/Context.js.map +1 -1
  601. package/shared/Eufemia.d.ts +1 -1
  602. package/shared/Eufemia.js +2 -2
  603. package/shared/Eufemia.js.map +1 -1
  604. package/shared/component-helper.js +1 -1
  605. package/shared/component-helper.js.map +1 -1
  606. package/style/core/scopes.scss +1 -1
  607. package/style/dnb-ui-basis.css +1 -1
  608. package/style/dnb-ui-basis.min.css +1 -1
  609. package/style/dnb-ui-body.css +1 -1
  610. package/style/dnb-ui-body.min.css +1 -1
  611. package/style/dnb-ui-components.css +129 -98
  612. package/style/dnb-ui-components.min.css +2 -2
  613. package/style/dnb-ui-core.css +1 -1
  614. package/style/dnb-ui-core.min.css +1 -1
  615. package/style/dnb-ui-extensions.css +77 -43
  616. package/style/dnb-ui-extensions.min.css +1 -1
  617. package/style/dnb-ui-forms.css +77 -43
  618. package/style/dnb-ui-forms.min.css +1 -1
  619. package/style/dnb-ui-forms.scss +1 -1
  620. package/style/themes/theme-eiendom/eiendom-theme-components.css +205 -141
  621. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  622. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +77 -43
  623. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  624. package/style/themes/theme-eiendom/eiendom-theme-forms.css +77 -43
  625. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  626. package/style/themes/theme-sbanken/sbanken-theme-components.css +205 -141
  627. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  628. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +77 -43
  629. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  630. package/style/themes/theme-sbanken/sbanken-theme-forms.css +77 -43
  631. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  632. package/style/themes/theme-ui/ui-theme-components.css +205 -141
  633. package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  634. package/style/themes/theme-ui/ui-theme-extensions.css +77 -43
  635. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  636. package/style/themes/theme-ui/ui-theme-forms.css +77 -43
  637. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  638. package/umd/dnb-ui-basis.min.js +1 -1
  639. package/umd/dnb-ui-components.min.js +1 -1
  640. package/umd/dnb-ui-elements.min.js +1 -1
  641. package/umd/dnb-ui-extensions.min.js +3 -3
  642. package/umd/dnb-ui-lib.min.js +1 -1
  643. /package/cjs/extensions/forms/Form/Element/style/{dnb-forms-element.css → dnb-form-element.css} +0 -0
  644. /package/cjs/extensions/forms/Form/Element/style/{dnb-forms-element.min.css → dnb-form-element.min.css} +0 -0
  645. /package/cjs/extensions/forms/Form/Element/style/{dnb-forms-element.scss → dnb-form-element.scss} +0 -0
  646. /package/es/extensions/forms/Form/Element/style/{dnb-forms-element.css → dnb-form-element.css} +0 -0
  647. /package/es/extensions/forms/Form/Element/style/{dnb-forms-element.min.css → dnb-form-element.min.css} +0 -0
  648. /package/es/extensions/forms/Form/Element/style/{dnb-forms-element.scss → dnb-form-element.scss} +0 -0
  649. /package/extensions/forms/Form/Element/style/{dnb-forms-element.css → dnb-form-element.css} +0 -0
  650. /package/extensions/forms/Form/Element/style/{dnb-forms-element.min.css → dnb-form-element.min.css} +0 -0
  651. /package/extensions/forms/Form/Element/style/{dnb-forms-element.scss → dnb-form-element.scss} +0 -0
@@ -16,7 +16,7 @@ function MainHeading(_ref) {
16
16
  } = props,
17
17
  rest = _objectWithoutProperties(props, _excluded2);
18
18
  return React.createElement(Heading, _extends({
19
- className: classnames('dnb-form-main-heading', className),
19
+ className: classnames('dnb-forms-main-heading', className),
20
20
  level: level || 2,
21
21
  size: "large"
22
22
  }, rest), children);
@@ -1 +1 @@
1
- {"version":3,"file":"MainHeading.js","names":["React","classnames","Heading","MainHeading","_ref","level","props","_objectWithoutProperties","_excluded","className","children","rest","_excluded2","createElement","_extends","size","_supportsSpacingProps","_isHeadingElement"],"sources":["../../../../../../src/extensions/forms/Form/MainHeading/MainHeading.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport Heading from '../../../../components/heading/Heading'\nimport type { HeadingLevel } from '../../../../components/heading/Heading'\nimport type { ComponentProps } from '../../types'\n\nexport type Props = ComponentProps & {\n level?: HeadingLevel\n children?: React.ReactNode\n} & Omit<React.HTMLProps<HTMLElement>, 'size'>\n\nfunction MainHeading({ level, ...props }: Props) {\n const { className, children, ...rest } = props\n return (\n <Heading\n className={classnames('dnb-form-main-heading', className)}\n level={level || 2}\n size=\"large\"\n {...rest}\n >\n {children}\n </Heading>\n )\n}\n\nMainHeading._supportsSpacingProps = true\nMainHeading._isHeadingElement = true\n\nexport default MainHeading\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,OAAO,MAAM,wCAAwC;AAS5D,SAASC,WAAWA,CAAAC,IAAA,EAA6B;EAAA,IAA5B;MAAEC;IAAuB,CAAC,GAAAD,IAAA;IAAdE,KAAK,GAAAC,wBAAA,CAAAH,IAAA,EAAAI,SAAA;EACpC,MAAM;MAAEC,SAAS;MAAEC;IAAkB,CAAC,GAAGJ,KAAK;IAAdK,IAAI,GAAAJ,wBAAA,CAAKD,KAAK,EAAAM,UAAA;EAC9C,OACEZ,KAAA,CAAAa,aAAA,CAACX,OAAO,EAAAY,QAAA;IACNL,SAAS,EAAER,UAAU,CAAC,uBAAuB,EAAEQ,SAAS,CAAE;IAC1DJ,KAAK,EAAEA,KAAK,IAAI,CAAE;IAClBU,IAAI,EAAC;EAAO,GACRJ,IAAI,GAEPD,QACM,CAAC;AAEd;AAEAP,WAAW,CAACa,qBAAqB,GAAG,IAAI;AACxCb,WAAW,CAACc,iBAAiB,GAAG,IAAI;AAEpC,eAAed,WAAW"}
1
+ {"version":3,"file":"MainHeading.js","names":["React","classnames","Heading","MainHeading","_ref","level","props","_objectWithoutProperties","_excluded","className","children","rest","_excluded2","createElement","_extends","size","_supportsSpacingProps","_isHeadingElement"],"sources":["../../../../../../src/extensions/forms/Form/MainHeading/MainHeading.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport Heading from '../../../../components/heading/Heading'\nimport type { HeadingLevel } from '../../../../components/heading/Heading'\nimport type { ComponentProps } from '../../types'\n\nexport type Props = ComponentProps & {\n level?: HeadingLevel\n children?: React.ReactNode\n} & Omit<React.HTMLProps<HTMLElement>, 'size'>\n\nfunction MainHeading({ level, ...props }: Props) {\n const { className, children, ...rest } = props\n return (\n <Heading\n className={classnames('dnb-forms-main-heading', className)}\n level={level || 2}\n size=\"large\"\n {...rest}\n >\n {children}\n </Heading>\n )\n}\n\nMainHeading._supportsSpacingProps = true\nMainHeading._isHeadingElement = true\n\nexport default MainHeading\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,OAAO,MAAM,wCAAwC;AAS5D,SAASC,WAAWA,CAAAC,IAAA,EAA6B;EAAA,IAA5B;MAAEC;IAAuB,CAAC,GAAAD,IAAA;IAAdE,KAAK,GAAAC,wBAAA,CAAAH,IAAA,EAAAI,SAAA;EACpC,MAAM;MAAEC,SAAS;MAAEC;IAAkB,CAAC,GAAGJ,KAAK;IAAdK,IAAI,GAAAJ,wBAAA,CAAKD,KAAK,EAAAM,UAAA;EAC9C,OACEZ,KAAA,CAAAa,aAAA,CAACX,OAAO,EAAAY,QAAA;IACNL,SAAS,EAAER,UAAU,CAAC,wBAAwB,EAAEQ,SAAS,CAAE;IAC3DJ,KAAK,EAAEA,KAAK,IAAI,CAAE;IAClBU,IAAI,EAAC;EAAO,GACRJ,IAAI,GAEPD,QACM,CAAC;AAEd;AAEAP,WAAW,CAACa,qBAAqB,GAAG,IAAI;AACxCb,WAAW,CAACc,iBAAiB,GAAG,IAAI;AAEpC,eAAed,WAAW"}
@@ -1,14 +1,14 @@
1
1
  /*
2
2
  * Utilities
3
3
  */
4
- .dnb-spacing .dnb-form-main-heading.dnb-h--large:not([class*=space__]) {
4
+ .dnb-spacing .dnb-forms-main-heading.dnb-h--large:not([class*=space__]) {
5
5
  margin: 0;
6
6
  }
7
7
  @media screen and (min-width: 40em) {
8
- .dnb-form-main-heading:has(+ .dnb-flex-stack > .dnb-card, + .dnb-card):not([class*=space__left]) {
8
+ .dnb-forms-main-heading:has(+ .dnb-flex-stack > .dnb-card, + .dnb-card):not([class*=space__left]) {
9
9
  margin-left: var(--spacing-medium);
10
10
  }
11
11
  }
12
- .dnb-form-main-heading:has(+ .dnb-flex-stack > .dnb-card, + .dnb-card):not([class*=space__bottom]) {
12
+ .dnb-forms-main-heading:has(+ .dnb-flex-stack > .dnb-card, + .dnb-card):not([class*=space__bottom]) {
13
13
  margin-bottom: var(--spacing-small);
14
14
  }
@@ -1 +1 @@
1
- .dnb-spacing .dnb-form-main-heading.dnb-h--large:not([class*=space__]){margin:0}@media screen and (min-width:40em){.dnb-form-main-heading:has(+.dnb-flex-stack>.dnb-card,+.dnb-card):not([class*=space__left]){margin-left:var(--spacing-medium)}}.dnb-form-main-heading:has(+.dnb-flex-stack>.dnb-card,+.dnb-card):not([class*=space__bottom]){margin-bottom:var(--spacing-small)}
1
+ .dnb-spacing .dnb-forms-main-heading.dnb-h--large:not([class*=space__]){margin:0}@media screen and (min-width:40em){.dnb-forms-main-heading:has(+.dnb-flex-stack>.dnb-card,+.dnb-card):not([class*=space__left]){margin-left:var(--spacing-medium)}}.dnb-forms-main-heading:has(+.dnb-flex-stack>.dnb-card,+.dnb-card):not([class*=space__bottom]){margin-bottom:var(--spacing-small)}
@@ -1,6 +1,6 @@
1
1
  @import '../../../../../style/core/utilities.scss';
2
2
 
3
- .dnb-form-main-heading {
3
+ .dnb-forms-main-heading {
4
4
  // Reset inherited spacing
5
5
  .dnb-spacing & {
6
6
  &.dnb-h--large:not([class*='space__']) {
@@ -16,7 +16,7 @@ function SubHeading(_ref) {
16
16
  } = props,
17
17
  rest = _objectWithoutProperties(props, _excluded2);
18
18
  return React.createElement(Heading, _extends({
19
- className: classnames('dnb-form-sub-heading', className),
19
+ className: classnames('dnb-forms-sub-heading', className),
20
20
  level: level || 3,
21
21
  size: "medium"
22
22
  }, rest), children);
@@ -1 +1 @@
1
- {"version":3,"file":"SubHeading.js","names":["React","classnames","Heading","SubHeading","_ref","level","props","_objectWithoutProperties","_excluded","className","children","rest","_excluded2","createElement","_extends","size","_supportsSpacingProps","_isHeadingElement"],"sources":["../../../../../../src/extensions/forms/Form/SubHeading/SubHeading.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport Heading from '../../../../components/heading/Heading'\nimport type { HeadingLevel } from '../../../../components/heading/Heading'\nimport type { ComponentProps } from '../../types'\n\nexport type Props = ComponentProps & {\n level?: HeadingLevel\n children?: React.ReactNode\n} & Omit<React.HTMLProps<HTMLElement>, 'size'>\n\nfunction SubHeading({ level, ...props }: Props) {\n const { className, children, ...rest } = props\n return (\n <Heading\n className={classnames('dnb-form-sub-heading', className)}\n level={level || 3}\n size=\"medium\"\n {...rest}\n >\n {children}\n </Heading>\n )\n}\n\nSubHeading._supportsSpacingProps = true\nSubHeading._isHeadingElement = true\n\nexport default SubHeading\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,OAAO,MAAM,wCAAwC;AAS5D,SAASC,UAAUA,CAAAC,IAAA,EAA6B;EAAA,IAA5B;MAAEC;IAAuB,CAAC,GAAAD,IAAA;IAAdE,KAAK,GAAAC,wBAAA,CAAAH,IAAA,EAAAI,SAAA;EACnC,MAAM;MAAEC,SAAS;MAAEC;IAAkB,CAAC,GAAGJ,KAAK;IAAdK,IAAI,GAAAJ,wBAAA,CAAKD,KAAK,EAAAM,UAAA;EAC9C,OACEZ,KAAA,CAAAa,aAAA,CAACX,OAAO,EAAAY,QAAA;IACNL,SAAS,EAAER,UAAU,CAAC,sBAAsB,EAAEQ,SAAS,CAAE;IACzDJ,KAAK,EAAEA,KAAK,IAAI,CAAE;IAClBU,IAAI,EAAC;EAAQ,GACTJ,IAAI,GAEPD,QACM,CAAC;AAEd;AAEAP,UAAU,CAACa,qBAAqB,GAAG,IAAI;AACvCb,UAAU,CAACc,iBAAiB,GAAG,IAAI;AAEnC,eAAed,UAAU"}
1
+ {"version":3,"file":"SubHeading.js","names":["React","classnames","Heading","SubHeading","_ref","level","props","_objectWithoutProperties","_excluded","className","children","rest","_excluded2","createElement","_extends","size","_supportsSpacingProps","_isHeadingElement"],"sources":["../../../../../../src/extensions/forms/Form/SubHeading/SubHeading.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport Heading from '../../../../components/heading/Heading'\nimport type { HeadingLevel } from '../../../../components/heading/Heading'\nimport type { ComponentProps } from '../../types'\n\nexport type Props = ComponentProps & {\n level?: HeadingLevel\n children?: React.ReactNode\n} & Omit<React.HTMLProps<HTMLElement>, 'size'>\n\nfunction SubHeading({ level, ...props }: Props) {\n const { className, children, ...rest } = props\n return (\n <Heading\n className={classnames('dnb-forms-sub-heading', className)}\n level={level || 3}\n size=\"medium\"\n {...rest}\n >\n {children}\n </Heading>\n )\n}\n\nSubHeading._supportsSpacingProps = true\nSubHeading._isHeadingElement = true\n\nexport default SubHeading\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,OAAO,MAAM,wCAAwC;AAS5D,SAASC,UAAUA,CAAAC,IAAA,EAA6B;EAAA,IAA5B;MAAEC;IAAuB,CAAC,GAAAD,IAAA;IAAdE,KAAK,GAAAC,wBAAA,CAAAH,IAAA,EAAAI,SAAA;EACnC,MAAM;MAAEC,SAAS;MAAEC;IAAkB,CAAC,GAAGJ,KAAK;IAAdK,IAAI,GAAAJ,wBAAA,CAAKD,KAAK,EAAAM,UAAA;EAC9C,OACEZ,KAAA,CAAAa,aAAA,CAACX,OAAO,EAAAY,QAAA;IACNL,SAAS,EAAER,UAAU,CAAC,uBAAuB,EAAEQ,SAAS,CAAE;IAC1DJ,KAAK,EAAEA,KAAK,IAAI,CAAE;IAClBU,IAAI,EAAC;EAAQ,GACTJ,IAAI,GAEPD,QACM,CAAC;AAEd;AAEAP,UAAU,CAACa,qBAAqB,GAAG,IAAI;AACvCb,UAAU,CAACc,iBAAiB,GAAG,IAAI;AAEnC,eAAed,UAAU"}
@@ -1,9 +1,9 @@
1
1
  /*
2
2
  * Utilities
3
3
  */
4
- .dnb-spacing .dnb-form-sub-heading.dnb-h--medium:not([class*=space__]) {
4
+ .dnb-spacing .dnb-forms-sub-heading.dnb-h--medium:not([class*=space__]) {
5
5
  margin: 0;
6
6
  }
7
- .dnb-form-sub-heading:has(+ .dnb-flex-stack > .dnb-card, + .dnb-card):not([class*=space__bottom]) {
7
+ .dnb-forms-sub-heading:has(+ .dnb-flex-stack > .dnb-card, + .dnb-card):not([class*=space__bottom]) {
8
8
  margin-bottom: var(--spacing-small);
9
9
  }
@@ -1 +1 @@
1
- .dnb-spacing .dnb-form-sub-heading.dnb-h--medium:not([class*=space__]){margin:0}.dnb-form-sub-heading:has(+.dnb-flex-stack>.dnb-card,+.dnb-card):not([class*=space__bottom]){margin-bottom:var(--spacing-small)}
1
+ .dnb-spacing .dnb-forms-sub-heading.dnb-h--medium:not([class*=space__]){margin:0}.dnb-forms-sub-heading:has(+.dnb-flex-stack>.dnb-card,+.dnb-card):not([class*=space__bottom]){margin-bottom:var(--spacing-small)}
@@ -1,6 +1,6 @@
1
1
  @import '../../../../../style/core/utilities.scss';
2
2
 
3
- .dnb-form-sub-heading {
3
+ .dnb-forms-sub-heading {
4
4
  // Reset inherited spacing
5
5
  .dnb-spacing & {
6
6
  &.dnb-h--medium:not([class*='space__']) {
@@ -30,7 +30,7 @@ function SubmitIndicator(props) {
30
30
  }
31
31
  }, [children, state]);
32
32
  const params = _objectSpread({
33
- className: classnames('dnb-form-submit-indicator', className, state && `dnb-form-submit-indicator--state-${state}`, willWrap && 'dnb-form-submit-indicator--inline-wrap')
33
+ className: classnames('dnb-forms-submit-indicator', className, state && `dnb-forms-submit-indicator--state-${state}`, willWrap && 'dnb-forms-submit-indicator--inline-wrap')
34
34
  }, pickSpacingProps(rest));
35
35
  const ariaAttributes = state === 'pending' ? {
36
36
  role: 'status',
@@ -39,7 +39,7 @@ function SubmitIndicator(props) {
39
39
  } : {};
40
40
  const dot = _b || (_b = React.createElement("b", null, "."));
41
41
  const indicator = React.createElement("span", _extends({
42
- className: "dnb-form-submit-indicator__content"
42
+ className: "dnb-forms-submit-indicator__content"
43
43
  }, ariaAttributes, omitSpacingProps(rest)), state === 'success' && React.createElement(Tooltip, {
44
44
  targetElement: _span || (_span = React.createElement("span", null, React.createElement(Icon, {
45
45
  icon: check
@@ -1 +1 @@
1
- {"version":3,"file":"SubmitIndicator.js","names":["React","useLayoutEffect","useRef","useState","classnames","Icon","Space","Tooltip","check","omitSpacingProps","pickSpacingProps","useTranslation","SubmitIndicator","props","className","children","state","successLabel","rest","_objectWithoutProperties","_excluded","translation","childrenRef","willWrap","setWillWrap","willWordWrap","current","params","_objectSpread","ariaAttributes","role","ProgressIndicator","indicator_label","dot","_b","createElement","indicator","_extends","targetElement","_span","icon","Fragment","element","ref","word","offsetHeight","textContent","height","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/SubmitIndicator/SubmitIndicator.tsx"],"sourcesContent":["import React, { useLayoutEffect, useRef, useState } from 'react'\nimport classnames from 'classnames'\nimport { Icon, Space, Tooltip } from '../../../../components'\nimport type { SpaceProps } from '../../../../components/Space'\nimport { check } from '../../../../icons'\nimport type { SubmitState } from '../../types'\nimport {\n omitSpacingProps,\n pickSpacingProps,\n} from '../../../../components/flex/utils'\nimport { useTranslation } from '../../../../shared'\n\nexport type Props = {\n state: SubmitState\n className?: string\n successLabel?: string\n children?: React.ReactNode\n} & SpaceProps\n\nfunction SubmitIndicator(props: Props) {\n const {\n className,\n children,\n state,\n successLabel = 'Saved',\n ...rest\n } = props\n const translation = useTranslation()\n const childrenRef = useRef<HTMLSpanElement>(null)\n const [willWrap, setWillWrap] = useState(false)\n\n useLayoutEffect(() => {\n if (children && state) {\n setWillWrap(willWordWrap(childrenRef.current, '. . . '))\n }\n }, [children, state])\n\n const params = {\n className: classnames(\n 'dnb-form-submit-indicator',\n state && `dnb-form-submit-indicator--state-${state}`,\n willWrap && 'dnb-form-submit-indicator--inline-wrap',\n className\n ),\n ...pickSpacingProps(rest),\n } as SpaceProps\n\n const ariaAttributes =\n state === 'pending'\n ? {\n role: 'status',\n 'aria-busy': true,\n 'aria-label': translation.ProgressIndicator.indicator_label,\n }\n : {}\n\n const dot = <b>.</b>\n const indicator = (\n <span\n className=\"dnb-form-submit-indicator__content\"\n {...ariaAttributes}\n {...omitSpacingProps(rest)}\n >\n {state === 'success' && (\n <Tooltip\n targetElement={\n <span>\n <Icon icon={check} />\n </span>\n }\n >\n {successLabel}\n </Tooltip>\n )}\n {state && state !== 'success' && state !== 'abort' && (\n <>\n {dot}\n {dot}\n {dot}\n </>\n )}\n </span>\n )\n\n return (\n <Space {...params} element=\"span\">\n {children && <span ref={childrenRef}>{children}</span>}\n {indicator}\n </Space>\n )\n}\n\nfunction willWordWrap(element: HTMLElement, word: string) {\n if (!element) {\n return\n }\n\n const { offsetHeight, textContent } = element\n\n element.textContent += word\n const height = element.offsetHeight\n element.textContent = textContent\n\n return height > offsetHeight\n}\n\nSubmitIndicator._supportsSpacingProps = true\nexport default SubmitIndicator\n"],"mappings":"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"}
1
+ {"version":3,"file":"SubmitIndicator.js","names":["React","useLayoutEffect","useRef","useState","classnames","Icon","Space","Tooltip","check","omitSpacingProps","pickSpacingProps","useTranslation","SubmitIndicator","props","className","children","state","successLabel","rest","_objectWithoutProperties","_excluded","translation","childrenRef","willWrap","setWillWrap","willWordWrap","current","params","_objectSpread","ariaAttributes","role","ProgressIndicator","indicator_label","dot","_b","createElement","indicator","_extends","targetElement","_span","icon","Fragment","element","ref","word","offsetHeight","textContent","height","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/SubmitIndicator/SubmitIndicator.tsx"],"sourcesContent":["import React, { useLayoutEffect, useRef, useState } from 'react'\nimport classnames from 'classnames'\nimport { Icon, Space, Tooltip } from '../../../../components'\nimport type { SpaceProps } from '../../../../components/Space'\nimport { check } from '../../../../icons'\nimport type { SubmitState } from '../../types'\nimport {\n omitSpacingProps,\n pickSpacingProps,\n} from '../../../../components/flex/utils'\nimport { useTranslation } from '../../../../shared'\n\nexport type Props = {\n state: SubmitState\n className?: string\n successLabel?: string\n children?: React.ReactNode\n} & SpaceProps\n\nfunction SubmitIndicator(props: Props) {\n const {\n className,\n children,\n state,\n successLabel = 'Saved',\n ...rest\n } = props\n const translation = useTranslation()\n const childrenRef = useRef<HTMLSpanElement>(null)\n const [willWrap, setWillWrap] = useState(false)\n\n useLayoutEffect(() => {\n if (children && state) {\n setWillWrap(willWordWrap(childrenRef.current, '. . . '))\n }\n }, [children, state])\n\n const params = {\n className: classnames(\n 'dnb-forms-submit-indicator',\n state && `dnb-forms-submit-indicator--state-${state}`,\n willWrap && 'dnb-forms-submit-indicator--inline-wrap',\n className\n ),\n ...pickSpacingProps(rest),\n } as SpaceProps\n\n const ariaAttributes =\n state === 'pending'\n ? {\n role: 'status',\n 'aria-busy': true,\n 'aria-label': translation.ProgressIndicator.indicator_label,\n }\n : {}\n\n const dot = <b>.</b>\n const indicator = (\n <span\n className=\"dnb-forms-submit-indicator__content\"\n {...ariaAttributes}\n {...omitSpacingProps(rest)}\n >\n {state === 'success' && (\n <Tooltip\n targetElement={\n <span>\n <Icon icon={check} />\n </span>\n }\n >\n {successLabel}\n </Tooltip>\n )}\n {state && state !== 'success' && state !== 'abort' && (\n <>\n {dot}\n {dot}\n {dot}\n </>\n )}\n </span>\n )\n\n return (\n <Space {...params} element=\"span\">\n {children && <span ref={childrenRef}>{children}</span>}\n {indicator}\n </Space>\n )\n}\n\nfunction willWordWrap(element: HTMLElement, word: string) {\n if (!element) {\n return\n }\n\n const { offsetHeight, textContent } = element\n\n element.textContent += word\n const height = element.offsetHeight\n element.textContent = textContent\n\n return height > offsetHeight\n}\n\nSubmitIndicator._supportsSpacingProps = true\nexport default SubmitIndicator\n"],"mappings":"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"}
@@ -1,17 +1,17 @@
1
1
  /*
2
2
  * Utilities
3
3
  */
4
- .dnb-form-submit-indicator {
4
+ .dnb-forms-submit-indicator {
5
5
  display: inline;
6
6
  --padding-left: 0.5em;
7
7
  }
8
- .dnb-form-submit-indicator__content {
8
+ .dnb-forms-submit-indicator__content {
9
9
  font-size: 0;
10
10
  line-height: 1em;
11
11
  will-change: font-size;
12
12
  transition: font-size 800ms var(--easing-default);
13
13
  }
14
- .dnb-form-submit-indicator__content b {
14
+ .dnb-forms-submit-indicator__content b {
15
15
  padding-left: 0.125em;
16
16
  color: var(--dots-color, currentColor);
17
17
  opacity: 0.2;
@@ -20,38 +20,38 @@
20
20
  animation-duration: 1.3s;
21
21
  animation-delay: 200ms;
22
22
  }
23
- .dnb-form-submit-indicator__content b:nth-of-type(1) {
23
+ .dnb-forms-submit-indicator__content b:nth-of-type(1) {
24
24
  padding-left: var(--padding-left);
25
25
  animation-delay: 50ms;
26
26
  }
27
- .dnb-form-submit-indicator__content b:nth-of-type(2) {
27
+ .dnb-forms-submit-indicator__content b:nth-of-type(2) {
28
28
  animation-delay: 200ms;
29
29
  }
30
- .dnb-form-submit-indicator__content b:nth-of-type(3) {
30
+ .dnb-forms-submit-indicator__content b:nth-of-type(3) {
31
31
  animation-delay: 400ms;
32
32
  }
33
- html[data-visual-test] .dnb-form-submit-indicator__content b {
33
+ html[data-visual-test] .dnb-forms-submit-indicator__content b {
34
34
  animation: none;
35
35
  }
36
- .dnb-form-submit-indicator--state-pending .dnb-form-submit-indicator__content {
36
+ .dnb-forms-submit-indicator--state-pending .dnb-forms-submit-indicator__content {
37
37
  font-size: 1em;
38
38
  font-weight: var(--font-weight-bold);
39
39
  }
40
- .dnb-form-submit-indicator--state-success .dnb-form-submit-indicator__content {
40
+ .dnb-forms-submit-indicator--state-success .dnb-forms-submit-indicator__content {
41
41
  font-size: 1em;
42
42
  }
43
- .dnb-form-submit-indicator--state-success .dnb-form-submit-indicator__content .dnb-icon {
43
+ .dnb-forms-submit-indicator--state-success .dnb-forms-submit-indicator__content .dnb-icon {
44
44
  padding-left: var(--padding-left);
45
45
  color: var(--color-success-green);
46
46
  }
47
- .dnb-form-submit-indicator--state-success .dnb-form-submit-indicator__content .dnb-icon--default {
47
+ .dnb-forms-submit-indicator--state-success .dnb-forms-submit-indicator__content .dnb-icon--default {
48
48
  font-size: 1em;
49
49
  }
50
- .dnb-form-submit-indicator--state-success .dnb-form-submit-indicator__content__label {
50
+ .dnb-forms-submit-indicator--state-success .dnb-forms-submit-indicator__content__label {
51
51
  font-size: var(--font-size-small);
52
52
  padding-left: calc(var(--padding-left) * 2);
53
53
  }
54
- .dnb-form-submit-indicator--inline-wrap .dnb-form-submit-indicator__content {
54
+ .dnb-forms-submit-indicator--inline-wrap .dnb-forms-submit-indicator__content {
55
55
  display: flex;
56
56
  --padding-left: 0.25em;
57
57
  }
@@ -1 +1 @@
1
- .dnb-form-submit-indicator{--padding-left:0.5em;display:inline}.dnb-form-submit-indicator__content{font-size:0;line-height:1em;transition:font-size .8s var(--easing-default);will-change:font-size}.dnb-form-submit-indicator__content b{animation-delay:.2s;animation-duration:1.3s;animation-iteration-count:infinite;animation-name:submit-indicator-dot;color:var(--dots-color,currentColor);opacity:.2;padding-left:.125em}.dnb-form-submit-indicator__content b:first-of-type{animation-delay:50ms;padding-left:var(--padding-left)}.dnb-form-submit-indicator__content b:nth-of-type(2){animation-delay:.2s}.dnb-form-submit-indicator__content b:nth-of-type(3){animation-delay:.4s}html[data-visual-test] .dnb-form-submit-indicator__content b{animation:none}.dnb-form-submit-indicator--state-pending .dnb-form-submit-indicator__content{font-size:1em;font-weight:var(--font-weight-bold)}.dnb-form-submit-indicator--state-success .dnb-form-submit-indicator__content{font-size:1em}.dnb-form-submit-indicator--state-success .dnb-form-submit-indicator__content .dnb-icon{color:var(--color-success-green);padding-left:var(--padding-left)}.dnb-form-submit-indicator--state-success .dnb-form-submit-indicator__content .dnb-icon--default{font-size:1em}.dnb-form-submit-indicator--state-success .dnb-form-submit-indicator__content__label{font-size:var(--font-size-small);padding-left:calc(var(--padding-left)*2)}.dnb-form-submit-indicator--inline-wrap .dnb-form-submit-indicator__content{--padding-left:0.25em;display:flex}@keyframes submit-indicator-dot{0%{opacity:.2}15%{opacity:1}50%{opacity:1}60%{opacity:.3}to{opacity:.2}}@keyframes submit-indicator-success{0%{font-size:1em;opacity:.2}20%{font-size:1em;opacity:1}80%{opacity:1}85%{font-size:1em;opacity:.3}90%{opacity:0}to{font-size:0;opacity:0}}
1
+ .dnb-forms-submit-indicator{--padding-left:0.5em;display:inline}.dnb-forms-submit-indicator__content{font-size:0;line-height:1em;transition:font-size .8s var(--easing-default);will-change:font-size}.dnb-forms-submit-indicator__content b{animation-delay:.2s;animation-duration:1.3s;animation-iteration-count:infinite;animation-name:submit-indicator-dot;color:var(--dots-color,currentColor);opacity:.2;padding-left:.125em}.dnb-forms-submit-indicator__content b:first-of-type{animation-delay:50ms;padding-left:var(--padding-left)}.dnb-forms-submit-indicator__content b:nth-of-type(2){animation-delay:.2s}.dnb-forms-submit-indicator__content b:nth-of-type(3){animation-delay:.4s}html[data-visual-test] .dnb-forms-submit-indicator__content b{animation:none}.dnb-forms-submit-indicator--state-pending .dnb-forms-submit-indicator__content{font-size:1em;font-weight:var(--font-weight-bold)}.dnb-forms-submit-indicator--state-success .dnb-forms-submit-indicator__content{font-size:1em}.dnb-forms-submit-indicator--state-success .dnb-forms-submit-indicator__content .dnb-icon{color:var(--color-success-green);padding-left:var(--padding-left)}.dnb-forms-submit-indicator--state-success .dnb-forms-submit-indicator__content .dnb-icon--default{font-size:1em}.dnb-forms-submit-indicator--state-success .dnb-forms-submit-indicator__content__label{font-size:var(--font-size-small);padding-left:calc(var(--padding-left)*2)}.dnb-forms-submit-indicator--inline-wrap .dnb-forms-submit-indicator__content{--padding-left:0.25em;display:flex}@keyframes submit-indicator-dot{0%{opacity:.2}15%{opacity:1}50%{opacity:1}60%{opacity:.3}to{opacity:.2}}@keyframes submit-indicator-success{0%{font-size:1em;opacity:.2}20%{font-size:1em;opacity:1}80%{opacity:1}85%{font-size:1em;opacity:.3}90%{opacity:0}to{font-size:0;opacity:0}}
@@ -1,6 +1,6 @@
1
1
  @import '../../../../../style/core/utilities.scss';
2
2
 
3
- .dnb-form-submit-indicator {
3
+ .dnb-forms-submit-indicator {
4
4
  display: inline;
5
5
 
6
6
  --padding-left: 0.5em;
@@ -74,9 +74,9 @@ function ElementBlock(props) {
74
74
  window.requestAnimationFrame(() => {
75
75
  try {
76
76
  var _document$activeEleme;
77
- if (!((_document$activeEleme = document.activeElement) !== null && _document$activeEleme !== void 0 && _document$activeEleme.closest('.dnb-form-iterate__element'))) {
77
+ if (!((_document$activeEleme = document.activeElement) !== null && _document$activeEleme !== void 0 && _document$activeEleme.closest('.dnb-forms-iterate__element'))) {
78
78
  var _contextRef$current2;
79
- const elements = (_contextRef$current2 = contextRef.current) === null || _contextRef$current2 === void 0 ? void 0 : _contextRef$current2.containerRef.current.querySelectorAll('.dnb-form-iterate__element');
79
+ const elements = (_contextRef$current2 = contextRef.current) === null || _contextRef$current2 === void 0 ? void 0 : _contextRef$current2.containerRef.current.querySelectorAll('.dnb-forms-iterate__element');
80
80
  elements[elements.length - 1].focus();
81
81
  }
82
82
  } catch (e) {}
@@ -102,13 +102,13 @@ function ElementBlock(props) {
102
102
  handleRemoveBlock
103
103
  }
104
104
  }, React.createElement(HeightAnimation, {
105
- className: classnames('dnb-form-iterate-block', className, isNew && 'dnb-form-iterate-block--new', contextRef.current.hasErrorAndShowIt && 'dnb-form-iterate-block--error'),
105
+ className: classnames('dnb-forms-iterate-block', className, isNew && 'dnb-forms-iterate-block--new', contextRef.current.hasErrorAndShowIt && 'dnb-forms-iterate-block--error'),
106
106
  open: openRef.current,
107
107
  onAnimationEnd: handleAnimationEnd,
108
108
  duration: 450,
109
109
  keepInDOM: true
110
110
  }, React.createElement(Flex.Stack, _extends({
111
- className: "dnb-form-iterate-block__inner"
111
+ className: "dnb-forms-iterate-block__inner"
112
112
  }, restProps, {
113
113
  element: "section",
114
114
  "aria-label": ariaLabel
@@ -1 +1 @@
1
- {"version":3,"file":"ElementBlock.js","names":["React","useCallback","useContext","useEffect","useReducer","useRef","classnames","Flex","HeightAnimation","IterateElementContext","ElementBlockContext","FieldBoundaryContext","ElementBlock","props","forceUpdate","contextRef","current","hasError","hasErrorAndShowIt","containerMode","handleRemove","switchContainerMode","isNew","mode","open","ariaLabel","onAnimationEnd","className","children","openDelay","restProps","_objectWithoutProperties","_excluded","openRef","isRemoving","setOpenState","setTimeout","handleAnimationEnd","state","preventFocusOnErrorOpening","_contextRef$current","_contextRef$current$e","_contextRef$current$e2","_contextRef$current$e3","elementRef","focus","call","window","requestAnimationFrame","_document$activeEleme","document","activeElement","closest","_contextRef$current2","elements","containerRef","querySelectorAll","length","e","_contextRef$current3","_contextRef$current3$","fulfillRemove","handleRemoveBlock","keepItems","createElement","Provider","value","duration","keepInDOM","Stack","_extends","element","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/AnimatedContainer/ElementBlock.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useEffect,\n useReducer,\n useRef,\n} from 'react'\nimport classnames from 'classnames'\nimport { Flex, HeightAnimation } from '../../../../components'\nimport IterateElementContext, {\n IterateElementContextState,\n} from '../IterateElementContext'\nimport ElementBlockContext from './ElementBlockContext'\nimport FieldBoundaryContext from '../../DataContext/FieldBoundary/FieldBoundaryContext'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport { ContainerMode } from '../Array/types'\n\nexport type Props = {\n mode: ContainerMode\n open?: boolean | undefined\n ariaLabel?: string\n openDelay?: number\n}\n\nfunction ElementBlock(props: Props & FlexContainerProps) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const contextRef = useRef<\n IterateElementContextState & {\n hasError?: boolean\n hasErrorAndShowIt?: boolean\n }\n >()\n contextRef.current = useContext(IterateElementContext) || {}\n\n const { hasError, hasErrorAndShowIt } =\n useContext(FieldBoundaryContext) || {}\n contextRef.current.hasError = hasError\n contextRef.current.hasErrorAndShowIt = hasErrorAndShowIt\n\n // - Set the container mode to \"edit\" if we have an error\n if (hasErrorAndShowIt) {\n contextRef.current.containerMode = 'edit'\n }\n\n const { handleRemove, switchContainerMode, containerMode, isNew } =\n contextRef.current\n\n const {\n mode,\n open,\n ariaLabel,\n onAnimationEnd,\n className,\n children,\n openDelay = 100,\n ...restProps\n } = props\n\n const openRef = useRef(open ?? (containerMode === mode && !isNew))\n const isRemoving = useRef(false)\n\n const setOpenState = useCallback((open: boolean) => {\n openRef.current = open\n forceUpdate()\n }, [])\n\n useEffect(() => {\n if (!isRemoving.current) {\n // - Set the open state, if it's controlled\n if (typeof open !== 'undefined') {\n setOpenState(open)\n } else {\n // - Open the block with animation, if it's in the right mode\n if (openRef.current !== (containerMode === mode)) {\n if (isNew) {\n setTimeout(() => {\n setOpenState(containerMode === mode)\n }, openDelay) // in order to apply the animation\n } else {\n setOpenState(containerMode === mode)\n }\n }\n }\n }\n }, [containerMode, isNew, mode, open, openDelay, setOpenState])\n\n // - Remove the block with animation, if it's in the right mode\n const handleAnimationEnd = useCallback(\n (state) => {\n // - Keep the block open if we have an error\n if (contextRef.current.hasErrorAndShowIt) {\n switchContainerMode('edit')\n }\n\n const preventFocusOnErrorOpening =\n !contextRef.current.hasErrorAndShowIt\n if (preventFocusOnErrorOpening) {\n if (state === 'opened') {\n contextRef.current?.elementRef?.current?.focus?.()\n } else {\n // Wait until the element is removed, then check if we can set focus\n window.requestAnimationFrame(() => {\n // try to focus on the second last element\n try {\n if (\n // But not when we focus is already inside our element\n !document.activeElement?.closest(\n '.dnb-form-iterate__element'\n )\n ) {\n const elements =\n contextRef.current?.containerRef.current.querySelectorAll<HTMLDivElement>(\n '.dnb-form-iterate__element'\n )\n elements[elements.length - 1].focus()\n }\n } catch (e) {\n /**/\n }\n })\n }\n }\n\n if (!openRef.current && isRemoving.current) {\n isRemoving.current = false\n contextRef.current?.fulfillRemove?.()\n }\n\n onAnimationEnd?.(state)\n },\n [onAnimationEnd, switchContainerMode]\n )\n const handleRemoveBlock = useCallback(() => {\n isRemoving.current = true\n handleRemove?.({ keepItems: true })\n setOpenState(false)\n }, [handleRemove, setOpenState])\n\n return (\n <ElementBlockContext.Provider value={{ handleRemoveBlock }}>\n <HeightAnimation\n className={classnames(\n 'dnb-form-iterate-block',\n isNew && 'dnb-form-iterate-block--new',\n contextRef.current.hasErrorAndShowIt &&\n 'dnb-form-iterate-block--error',\n className\n )}\n open={openRef.current}\n onAnimationEnd={handleAnimationEnd}\n duration={450}\n keepInDOM // Ensure fields get mounted so they will sync with the data context\n >\n <Flex.Stack\n className=\"dnb-form-iterate-block__inner\"\n {...restProps}\n element=\"section\"\n aria-label={ariaLabel}\n >\n {children}\n </Flex.Stack>\n </HeightAnimation>\n </ElementBlockContext.Provider>\n )\n}\n\nElementBlock._supportsSpacingProps = true\nexport default ElementBlock\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IACVC,WAAW,EACXC,UAAU,EACVC,SAAS,EACTC,UAAU,EACVC,MAAM,QACD,OAAO;AACd,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,IAAI,EAAEC,eAAe,QAAQ,wBAAwB;AAC9D,OAAOC,qBAAqB,MAErB,0BAA0B;AACjC,OAAOC,mBAAmB,MAAM,uBAAuB;AACvD,OAAOC,oBAAoB,MAAM,sDAAsD;AAWvF,SAASC,YAAYA,CAACC,KAAiC,EAAE;EACvD,MAAM,GAAGC,WAAW,CAAC,GAAGV,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAElD,MAAMW,UAAU,GAAGV,MAAM,CAKvB,CAAC;EACHU,UAAU,CAACC,OAAO,GAAGd,UAAU,CAACO,qBAAqB,CAAC,IAAI,CAAC,CAAC;EAE5D,MAAM;IAAEQ,QAAQ;IAAEC;EAAkB,CAAC,GACnChB,UAAU,CAACS,oBAAoB,CAAC,IAAI,CAAC,CAAC;EACxCI,UAAU,CAACC,OAAO,CAACC,QAAQ,GAAGA,QAAQ;EACtCF,UAAU,CAACC,OAAO,CAACE,iBAAiB,GAAGA,iBAAiB;EAGxD,IAAIA,iBAAiB,EAAE;IACrBH,UAAU,CAACC,OAAO,CAACG,aAAa,GAAG,MAAM;EAC3C;EAEA,MAAM;IAAEC,YAAY;IAAEC,mBAAmB;IAAEF,aAAa;IAAEG;EAAM,CAAC,GAC/DP,UAAU,CAACC,OAAO;EAEpB,MAAM;MACJO,IAAI;MACJC,IAAI;MACJC,SAAS;MACTC,cAAc;MACdC,SAAS;MACTC,QAAQ;MACRC,SAAS,GAAG;IAEd,CAAC,GAAGhB,KAAK;IADJiB,SAAS,GAAAC,wBAAA,CACVlB,KAAK,EAAAmB,SAAA;EAET,MAAMC,OAAO,GAAG5B,MAAM,CAACmB,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAKL,aAAa,KAAKI,IAAI,IAAI,CAACD,KAAM,CAAC;EAClE,MAAMY,UAAU,GAAG7B,MAAM,CAAC,KAAK,CAAC;EAEhC,MAAM8B,YAAY,GAAGlC,WAAW,CAAEuB,IAAa,IAAK;IAClDS,OAAO,CAACjB,OAAO,GAAGQ,IAAI;IACtBV,WAAW,CAAC,CAAC;EACf,CAAC,EAAE,EAAE,CAAC;EAENX,SAAS,CAAC,MAAM;IACd,IAAI,CAAC+B,UAAU,CAAClB,OAAO,EAAE;MAEvB,IAAI,OAAOQ,IAAI,KAAK,WAAW,EAAE;QAC/BW,YAAY,CAACX,IAAI,CAAC;MACpB,CAAC,MAAM;QAEL,IAAIS,OAAO,CAACjB,OAAO,MAAMG,aAAa,KAAKI,IAAI,CAAC,EAAE;UAChD,IAAID,KAAK,EAAE;YACTc,UAAU,CAAC,MAAM;cACfD,YAAY,CAAChB,aAAa,KAAKI,IAAI,CAAC;YACtC,CAAC,EAAEM,SAAS,CAAC;UACf,CAAC,MAAM;YACLM,YAAY,CAAChB,aAAa,KAAKI,IAAI,CAAC;UACtC;QACF;MACF;IACF;EACF,CAAC,EAAE,CAACJ,aAAa,EAAEG,KAAK,EAAEC,IAAI,EAAEC,IAAI,EAAEK,SAAS,EAAEM,YAAY,CAAC,CAAC;EAG/D,MAAME,kBAAkB,GAAGpC,WAAW,CACnCqC,KAAK,IAAK;IAET,IAAIvB,UAAU,CAACC,OAAO,CAACE,iBAAiB,EAAE;MACxCG,mBAAmB,CAAC,MAAM,CAAC;IAC7B;IAEA,MAAMkB,0BAA0B,GAC9B,CAACxB,UAAU,CAACC,OAAO,CAACE,iBAAiB;IACvC,IAAIqB,0BAA0B,EAAE;MAC9B,IAAID,KAAK,KAAK,QAAQ,EAAE;QAAA,IAAAE,mBAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;QACtB,CAAAH,mBAAA,GAAAzB,UAAU,CAACC,OAAO,cAAAwB,mBAAA,wBAAAC,qBAAA,GAAlBD,mBAAA,CAAoBI,UAAU,cAAAH,qBAAA,wBAAAC,sBAAA,GAA9BD,qBAAA,CAAgCzB,OAAO,cAAA0B,sBAAA,wBAAAC,sBAAA,GAAvCD,sBAAA,CAAyCG,KAAK,cAAAF,sBAAA,uBAA9CA,sBAAA,CAAAG,IAAA,CAAAJ,sBAAiD,CAAC;MACpD,CAAC,MAAM;QAELK,MAAM,CAACC,qBAAqB,CAAC,MAAM;UAEjC,IAAI;YAAA,IAAAC,qBAAA;YACF,IAEE,GAAAA,qBAAA,GAACC,QAAQ,CAACC,aAAa,cAAAF,qBAAA,eAAtBA,qBAAA,CAAwBG,OAAO,CAC9B,4BACF,CAAC,GACD;cAAA,IAAAC,oBAAA;cACA,MAAMC,QAAQ,IAAAD,oBAAA,GACZtC,UAAU,CAACC,OAAO,cAAAqC,oBAAA,uBAAlBA,oBAAA,CAAoBE,YAAY,CAACvC,OAAO,CAACwC,gBAAgB,CACvD,4BACF,CAAC;cACHF,QAAQ,CAACA,QAAQ,CAACG,MAAM,GAAG,CAAC,CAAC,CAACZ,KAAK,CAAC,CAAC;YACvC;UACF,CAAC,CAAC,OAAOa,CAAC,EAAE,CAEZ;QACF,CAAC,CAAC;MACJ;IACF;IAEA,IAAI,CAACzB,OAAO,CAACjB,OAAO,IAAIkB,UAAU,CAAClB,OAAO,EAAE;MAAA,IAAA2C,oBAAA,EAAAC,qBAAA;MAC1C1B,UAAU,CAAClB,OAAO,GAAG,KAAK;MAC1B,CAAA2C,oBAAA,GAAA5C,UAAU,CAACC,OAAO,cAAA2C,oBAAA,wBAAAC,qBAAA,GAAlBD,oBAAA,CAAoBE,aAAa,cAAAD,qBAAA,uBAAjCA,qBAAA,CAAAd,IAAA,CAAAa,oBAAoC,CAAC;IACvC;IAEAjC,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAGY,KAAK,CAAC;EACzB,CAAC,EACD,CAACZ,cAAc,EAAEL,mBAAmB,CACtC,CAAC;EACD,MAAMyC,iBAAiB,GAAG7D,WAAW,CAAC,MAAM;IAC1CiC,UAAU,CAAClB,OAAO,GAAG,IAAI;IACzBI,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAG;MAAE2C,SAAS,EAAE;IAAK,CAAC,CAAC;IACnC5B,YAAY,CAAC,KAAK,CAAC;EACrB,CAAC,EAAE,CAACf,YAAY,EAAEe,YAAY,CAAC,CAAC;EAEhC,OACEnC,KAAA,CAAAgE,aAAA,CAACtD,mBAAmB,CAACuD,QAAQ;IAACC,KAAK,EAAE;MAAEJ;IAAkB;EAAE,GACzD9D,KAAA,CAAAgE,aAAA,CAACxD,eAAe;IACdmB,SAAS,EAAErB,UAAU,CACnB,wBAAwB,EAIxBqB,SAAS,EAHTL,KAAK,IAAI,6BAA6B,EACtCP,UAAU,CAACC,OAAO,CAACE,iBAAiB,IAClC,+BAEJ,CAAE;IACFM,IAAI,EAAES,OAAO,CAACjB,OAAQ;IACtBU,cAAc,EAAEW,kBAAmB;IACnC8B,QAAQ,EAAE,GAAI;IACdC,SAAS;EAAA,GAETpE,KAAA,CAAAgE,aAAA,CAACzD,IAAI,CAAC8D,KAAK,EAAAC,QAAA;IACT3C,SAAS,EAAC;EAA+B,GACrCG,SAAS;IACbyC,OAAO,EAAC,SAAS;IACjB,cAAY9C;EAAU,IAErBG,QACS,CACG,CACW,CAAC;AAEnC;AAEAhB,YAAY,CAAC4D,qBAAqB,GAAG,IAAI;AACzC,eAAe5D,YAAY"}
1
+ {"version":3,"file":"ElementBlock.js","names":["React","useCallback","useContext","useEffect","useReducer","useRef","classnames","Flex","HeightAnimation","IterateElementContext","ElementBlockContext","FieldBoundaryContext","ElementBlock","props","forceUpdate","contextRef","current","hasError","hasErrorAndShowIt","containerMode","handleRemove","switchContainerMode","isNew","mode","open","ariaLabel","onAnimationEnd","className","children","openDelay","restProps","_objectWithoutProperties","_excluded","openRef","isRemoving","setOpenState","setTimeout","handleAnimationEnd","state","preventFocusOnErrorOpening","_contextRef$current","_contextRef$current$e","_contextRef$current$e2","_contextRef$current$e3","elementRef","focus","call","window","requestAnimationFrame","_document$activeEleme","document","activeElement","closest","_contextRef$current2","elements","containerRef","querySelectorAll","length","e","_contextRef$current3","_contextRef$current3$","fulfillRemove","handleRemoveBlock","keepItems","createElement","Provider","value","duration","keepInDOM","Stack","_extends","element","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/AnimatedContainer/ElementBlock.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useEffect,\n useReducer,\n useRef,\n} from 'react'\nimport classnames from 'classnames'\nimport { Flex, HeightAnimation } from '../../../../components'\nimport IterateElementContext, {\n IterateElementContextState,\n} from '../IterateElementContext'\nimport ElementBlockContext from './ElementBlockContext'\nimport FieldBoundaryContext from '../../DataContext/FieldBoundary/FieldBoundaryContext'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport { ContainerMode } from '../Array/types'\n\nexport type Props = {\n mode: ContainerMode\n open?: boolean | undefined\n ariaLabel?: string\n openDelay?: number\n}\n\nfunction ElementBlock(props: Props & FlexContainerProps) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const contextRef = useRef<\n IterateElementContextState & {\n hasError?: boolean\n hasErrorAndShowIt?: boolean\n }\n >()\n contextRef.current = useContext(IterateElementContext) || {}\n\n const { hasError, hasErrorAndShowIt } =\n useContext(FieldBoundaryContext) || {}\n contextRef.current.hasError = hasError\n contextRef.current.hasErrorAndShowIt = hasErrorAndShowIt\n\n // - Set the container mode to \"edit\" if we have an error\n if (hasErrorAndShowIt) {\n contextRef.current.containerMode = 'edit'\n }\n\n const { handleRemove, switchContainerMode, containerMode, isNew } =\n contextRef.current\n\n const {\n mode,\n open,\n ariaLabel,\n onAnimationEnd,\n className,\n children,\n openDelay = 100,\n ...restProps\n } = props\n\n const openRef = useRef(open ?? (containerMode === mode && !isNew))\n const isRemoving = useRef(false)\n\n const setOpenState = useCallback((open: boolean) => {\n openRef.current = open\n forceUpdate()\n }, [])\n\n useEffect(() => {\n if (!isRemoving.current) {\n // - Set the open state, if it's controlled\n if (typeof open !== 'undefined') {\n setOpenState(open)\n } else {\n // - Open the block with animation, if it's in the right mode\n if (openRef.current !== (containerMode === mode)) {\n if (isNew) {\n setTimeout(() => {\n setOpenState(containerMode === mode)\n }, openDelay) // in order to apply the animation\n } else {\n setOpenState(containerMode === mode)\n }\n }\n }\n }\n }, [containerMode, isNew, mode, open, openDelay, setOpenState])\n\n // - Remove the block with animation, if it's in the right mode\n const handleAnimationEnd = useCallback(\n (state) => {\n // - Keep the block open if we have an error\n if (contextRef.current.hasErrorAndShowIt) {\n switchContainerMode('edit')\n }\n\n const preventFocusOnErrorOpening =\n !contextRef.current.hasErrorAndShowIt\n if (preventFocusOnErrorOpening) {\n if (state === 'opened') {\n contextRef.current?.elementRef?.current?.focus?.()\n } else {\n // Wait until the element is removed, then check if we can set focus\n window.requestAnimationFrame(() => {\n // try to focus on the second last element\n try {\n if (\n // But not when we focus is already inside our element\n !document.activeElement?.closest(\n '.dnb-forms-iterate__element'\n )\n ) {\n const elements =\n contextRef.current?.containerRef.current.querySelectorAll<HTMLDivElement>(\n '.dnb-forms-iterate__element'\n )\n elements[elements.length - 1].focus()\n }\n } catch (e) {\n /**/\n }\n })\n }\n }\n\n if (!openRef.current && isRemoving.current) {\n isRemoving.current = false\n contextRef.current?.fulfillRemove?.()\n }\n\n onAnimationEnd?.(state)\n },\n [onAnimationEnd, switchContainerMode]\n )\n const handleRemoveBlock = useCallback(() => {\n isRemoving.current = true\n handleRemove?.({ keepItems: true })\n setOpenState(false)\n }, [handleRemove, setOpenState])\n\n return (\n <ElementBlockContext.Provider value={{ handleRemoveBlock }}>\n <HeightAnimation\n className={classnames(\n 'dnb-forms-iterate-block',\n isNew && 'dnb-forms-iterate-block--new',\n contextRef.current.hasErrorAndShowIt &&\n 'dnb-forms-iterate-block--error',\n className\n )}\n open={openRef.current}\n onAnimationEnd={handleAnimationEnd}\n duration={450}\n keepInDOM // Ensure fields get mounted so they will sync with the data context\n >\n <Flex.Stack\n className=\"dnb-forms-iterate-block__inner\"\n {...restProps}\n element=\"section\"\n aria-label={ariaLabel}\n >\n {children}\n </Flex.Stack>\n </HeightAnimation>\n </ElementBlockContext.Provider>\n )\n}\n\nElementBlock._supportsSpacingProps = true\nexport default ElementBlock\n"],"mappings":"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"}
@@ -119,7 +119,7 @@ function ArrayComponent(props) {
119
119
  }
120
120
  }, [arrayValue, elementData, onChange]);
121
121
  const flexProps = _objectSpread(_objectSpread(_objectSpread({
122
- className: classnames('dnb-form-iterate', props === null || props === void 0 ? void 0 : props.className)
122
+ className: classnames('dnb-forms-iterate', props === null || props === void 0 ? void 0 : props.className)
123
123
  }, pickFlexContainerProps(props)), pickSpacingProps(props)), {}, {
124
124
  innerRef: containerRef
125
125
  });
@@ -145,7 +145,7 @@ function ArrayComponent(props) {
145
145
  }, React.createElement(FieldBoundaryProvider, null, content));
146
146
  }
147
147
  return React.createElement(Flex.Item, {
148
- className: "dnb-form-iterate__element",
148
+ className: "dnb-forms-iterate__element",
149
149
  tabIndex: -1,
150
150
  innerRef: elementRef,
151
151
  key: `element-${id}`
@@ -1 +1 @@
1
- {"version":3,"file":"Array.js","names":["React","useMemo","useRef","useEffect","useReducer","createRef","useContext","Fragment","classnames","pointer","useFieldProps","makeUniqueId","Flex","pickSpacingProps","pickFlexContainerProps","IterateElementContext","SummaryListContext","ValueBlockContext","FieldBoundaryProvider","structuredClone","ArrayComponent","props","_props$value","salt","forceUpdate","summaryListContext","valueBlockContext","path","value","arrayValue","withoutFlex","emptyValue","placeholder","handleChange","onChange","children","idsRef","isNewRef","modesRef","valueWhileClosingRef","valueCountRef","containerRef","hadPushRef","innerRefs","omitFlex","current","elementData","_ref","map","index","_valueCountRef$curren","id","hasNewItems","length","push","isNew","containerMode","switchContainerMode","mode","_isNewRef$current","newArrayValue","_objectSpread","set","handlePush","element","handleRemove","keepItems","arguments","undefined","splice","fulfillRemove","_modesRef$current","_isNewRef$current2","findIndex","indexOf","restoreOriginalValue","last","flexProps","className","innerRef","WrapperElement","Stack","createElement","elementProps","elementRef","renderChildren","elementChild","contextValue","content","Array","isArray","child","Provider","key","Item","tabIndex","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/Array/Array.tsx"],"sourcesContent":["import React, {\n useMemo,\n useRef,\n useEffect,\n useReducer,\n createRef,\n useContext,\n Fragment,\n} from 'react'\nimport classnames from 'classnames'\nimport pointer from 'json-pointer'\nimport { useFieldProps } from '../../hooks'\nimport { makeUniqueId } from '../../../../shared/component-helper'\nimport { Flex } from '../../../../components'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport {\n BasicProps as FlexContainerProps,\n Props as FlexContainerAllProps,\n pickFlexContainerProps,\n} from '../../../../components/flex/Container'\nimport IterateElementContext, {\n IterateElementContextState,\n} from '../IterateElementContext'\nimport SummaryListContext from '../../Value/SummaryList/SummaryListContext'\nimport ValueBlockContext from '../../ValueBlock/ValueBlockContext'\nimport FieldBoundaryProvider from '../../DataContext/FieldBoundary/FieldBoundaryProvider'\n\nimport type { ContainerMode, ElementChild, Props, Value } from './types'\nimport type { Identifier, Path } from '../../types'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\nexport type * from './types'\n\nfunction ArrayComponent(props: Props) {\n const [salt, forceUpdate] = useReducer(() => ({}), {})\n\n const summaryListContext = useContext(SummaryListContext)\n const valueBlockContext = useContext(ValueBlockContext)\n\n const {\n path,\n value: arrayValue,\n withoutFlex,\n emptyValue,\n placeholder,\n handleChange,\n onChange,\n children,\n } = useFieldProps<Value, Props>(props)\n\n const idsRef = useRef<Array<Identifier>>([])\n const isNewRef = useRef<Record<string, boolean>>({})\n const modesRef = useRef<Record<Identifier, ContainerMode>>({})\n const valueWhileClosingRef = useRef<Array<unknown>>()\n const valueCountRef = useRef(arrayValue)\n const containerRef = useRef<HTMLDivElement>()\n const hadPushRef = useRef<boolean>()\n const innerRefs = useRef<\n Record<string, React.RefObject<HTMLDivElement>>\n >({})\n\n const omitFlex = withoutFlex ?? (summaryListContext || valueBlockContext)\n\n useEffect(() => {\n // Update inside the useEffect, to support React.StrictMode\n valueCountRef.current = arrayValue || []\n }, [arrayValue])\n\n const elementData = useMemo(() => {\n return ((valueWhileClosingRef.current || arrayValue) ?? []).map(\n (value, index) => {\n const id = idsRef.current[index] || makeUniqueId()\n\n const hasNewItems =\n arrayValue.length > valueCountRef.current?.length\n\n if (!idsRef.current[index]) {\n isNewRef.current[id] = hasNewItems\n idsRef.current.push(id)\n }\n\n const isNew = isNewRef.current[id] || false\n if (!modesRef.current[id]) {\n modesRef.current[id] = isNew ? 'edit' : 'view'\n }\n\n return {\n id,\n path,\n value,\n index,\n arrayValue,\n containerRef,\n isNew,\n containerMode: modesRef.current[id],\n switchContainerMode: (mode: ContainerMode) => {\n modesRef.current[id] = mode\n delete isNewRef.current?.[id]\n forceUpdate()\n },\n handleChange: (path: Path, value: unknown) => {\n const newArrayValue = structuredClone(arrayValue)\n\n // Make sure we have a new object reference,\n // else two new objects will be the same\n newArrayValue[index] = { ...newArrayValue[index] }\n\n pointer.set(newArrayValue, path, value)\n handleChange(newArrayValue)\n },\n handlePush: (element: unknown) => {\n hadPushRef.current = true\n handleChange([...(arrayValue ?? []), element])\n },\n handleRemove: ({ keepItems = false } = {}) => {\n if (keepItems) {\n // Add a backup as the array value while animating\n valueWhileClosingRef.current = arrayValue\n }\n\n const newArrayValue = structuredClone(arrayValue)\n newArrayValue.splice(index, 1)\n handleChange(newArrayValue)\n },\n\n // - Called after animation end\n fulfillRemove: () => {\n valueWhileClosingRef.current = null\n delete modesRef.current?.[id]\n delete isNewRef.current?.[id]\n const findIndex = idsRef.current.indexOf(id)\n idsRef.current.splice(findIndex, 1)\n forceUpdate()\n },\n\n // - Called when cancel button press\n restoreOriginalValue: (value: unknown) => {\n const newArrayValue = structuredClone(arrayValue)\n newArrayValue[index] = value\n handleChange(newArrayValue)\n },\n } as IterateElementContextState\n }\n )\n\n // In order to update \"valueWhileClosingRef\" we need to have \"salt\" in the deps array\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [salt, arrayValue, path, handleChange])\n\n // - Call the onChange callback when a new element is added without calling \"handlePush\"\n useMemo(() => {\n const last = elementData?.[elementData.length - 1]\n if (last?.isNew && !hadPushRef.current) {\n onChange?.(arrayValue)\n } else {\n hadPushRef.current = false\n }\n }, [arrayValue, elementData, onChange])\n\n const flexProps: FlexContainerProps & {\n innerRef: FlexContainerAllProps['innerRef']\n } = {\n className: classnames('dnb-form-iterate', props?.className),\n ...pickFlexContainerProps(props as FlexContainerProps),\n ...pickSpacingProps(props),\n innerRef: containerRef,\n }\n\n const WrapperElement = omitFlex ? Fragment : Flex.Stack\n\n return (\n <WrapperElement {...(omitFlex ? null : flexProps)}>\n {arrayValue === emptyValue || props?.value?.length === 0\n ? placeholder\n : elementData.map((elementProps) => {\n const { id, value, index } = elementProps\n const elementRef = (innerRefs.current[id] =\n innerRefs.current[id] || createRef<HTMLDivElement>())\n\n const renderChildren = (elementChild: ElementChild) => {\n return typeof elementChild === 'function'\n ? elementChild(value, index)\n : elementChild\n }\n\n const contextValue = {\n ...elementProps,\n elementRef,\n }\n\n const content = Array.isArray(children)\n ? children.map((child) => renderChildren(child))\n : renderChildren(children)\n\n if (omitFlex) {\n return (\n <IterateElementContext.Provider\n key={`element-${id}`}\n value={contextValue}\n >\n <FieldBoundaryProvider>{content}</FieldBoundaryProvider>\n </IterateElementContext.Provider>\n )\n }\n\n return (\n <Flex.Item\n className=\"dnb-form-iterate__element\"\n tabIndex={-1}\n innerRef={elementRef}\n key={`element-${id}`}\n >\n <IterateElementContext.Provider value={contextValue}>\n <FieldBoundaryProvider>{content}</FieldBoundaryProvider>\n </IterateElementContext.Provider>\n </Flex.Item>\n )\n })}\n </WrapperElement>\n )\n}\n\nArrayComponent._supportsSpacingProps = true\nexport default ArrayComponent\n"],"mappings":"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"}
1
+ {"version":3,"file":"Array.js","names":["React","useMemo","useRef","useEffect","useReducer","createRef","useContext","Fragment","classnames","pointer","useFieldProps","makeUniqueId","Flex","pickSpacingProps","pickFlexContainerProps","IterateElementContext","SummaryListContext","ValueBlockContext","FieldBoundaryProvider","structuredClone","ArrayComponent","props","_props$value","salt","forceUpdate","summaryListContext","valueBlockContext","path","value","arrayValue","withoutFlex","emptyValue","placeholder","handleChange","onChange","children","idsRef","isNewRef","modesRef","valueWhileClosingRef","valueCountRef","containerRef","hadPushRef","innerRefs","omitFlex","current","elementData","_ref","map","index","_valueCountRef$curren","id","hasNewItems","length","push","isNew","containerMode","switchContainerMode","mode","_isNewRef$current","newArrayValue","_objectSpread","set","handlePush","element","handleRemove","keepItems","arguments","undefined","splice","fulfillRemove","_modesRef$current","_isNewRef$current2","findIndex","indexOf","restoreOriginalValue","last","flexProps","className","innerRef","WrapperElement","Stack","createElement","elementProps","elementRef","renderChildren","elementChild","contextValue","content","Array","isArray","child","Provider","key","Item","tabIndex","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/Array/Array.tsx"],"sourcesContent":["import React, {\n useMemo,\n useRef,\n useEffect,\n useReducer,\n createRef,\n useContext,\n Fragment,\n} from 'react'\nimport classnames from 'classnames'\nimport pointer from 'json-pointer'\nimport { useFieldProps } from '../../hooks'\nimport { makeUniqueId } from '../../../../shared/component-helper'\nimport { Flex } from '../../../../components'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport {\n BasicProps as FlexContainerProps,\n Props as FlexContainerAllProps,\n pickFlexContainerProps,\n} from '../../../../components/flex/Container'\nimport IterateElementContext, {\n IterateElementContextState,\n} from '../IterateElementContext'\nimport SummaryListContext from '../../Value/SummaryList/SummaryListContext'\nimport ValueBlockContext from '../../ValueBlock/ValueBlockContext'\nimport FieldBoundaryProvider from '../../DataContext/FieldBoundary/FieldBoundaryProvider'\n\nimport type { ContainerMode, ElementChild, Props, Value } from './types'\nimport type { Identifier, Path } from '../../types'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\nexport type * from './types'\n\nfunction ArrayComponent(props: Props) {\n const [salt, forceUpdate] = useReducer(() => ({}), {})\n\n const summaryListContext = useContext(SummaryListContext)\n const valueBlockContext = useContext(ValueBlockContext)\n\n const {\n path,\n value: arrayValue,\n withoutFlex,\n emptyValue,\n placeholder,\n handleChange,\n onChange,\n children,\n } = useFieldProps<Value, Props>(props)\n\n const idsRef = useRef<Array<Identifier>>([])\n const isNewRef = useRef<Record<string, boolean>>({})\n const modesRef = useRef<Record<Identifier, ContainerMode>>({})\n const valueWhileClosingRef = useRef<Array<unknown>>()\n const valueCountRef = useRef(arrayValue)\n const containerRef = useRef<HTMLDivElement>()\n const hadPushRef = useRef<boolean>()\n const innerRefs = useRef<\n Record<string, React.RefObject<HTMLDivElement>>\n >({})\n\n const omitFlex = withoutFlex ?? (summaryListContext || valueBlockContext)\n\n useEffect(() => {\n // Update inside the useEffect, to support React.StrictMode\n valueCountRef.current = arrayValue || []\n }, [arrayValue])\n\n const elementData = useMemo(() => {\n return ((valueWhileClosingRef.current || arrayValue) ?? []).map(\n (value, index) => {\n const id = idsRef.current[index] || makeUniqueId()\n\n const hasNewItems =\n arrayValue.length > valueCountRef.current?.length\n\n if (!idsRef.current[index]) {\n isNewRef.current[id] = hasNewItems\n idsRef.current.push(id)\n }\n\n const isNew = isNewRef.current[id] || false\n if (!modesRef.current[id]) {\n modesRef.current[id] = isNew ? 'edit' : 'view'\n }\n\n return {\n id,\n path,\n value,\n index,\n arrayValue,\n containerRef,\n isNew,\n containerMode: modesRef.current[id],\n switchContainerMode: (mode: ContainerMode) => {\n modesRef.current[id] = mode\n delete isNewRef.current?.[id]\n forceUpdate()\n },\n handleChange: (path: Path, value: unknown) => {\n const newArrayValue = structuredClone(arrayValue)\n\n // Make sure we have a new object reference,\n // else two new objects will be the same\n newArrayValue[index] = { ...newArrayValue[index] }\n\n pointer.set(newArrayValue, path, value)\n handleChange(newArrayValue)\n },\n handlePush: (element: unknown) => {\n hadPushRef.current = true\n handleChange([...(arrayValue ?? []), element])\n },\n handleRemove: ({ keepItems = false } = {}) => {\n if (keepItems) {\n // Add a backup as the array value while animating\n valueWhileClosingRef.current = arrayValue\n }\n\n const newArrayValue = structuredClone(arrayValue)\n newArrayValue.splice(index, 1)\n handleChange(newArrayValue)\n },\n\n // - Called after animation end\n fulfillRemove: () => {\n valueWhileClosingRef.current = null\n delete modesRef.current?.[id]\n delete isNewRef.current?.[id]\n const findIndex = idsRef.current.indexOf(id)\n idsRef.current.splice(findIndex, 1)\n forceUpdate()\n },\n\n // - Called when cancel button press\n restoreOriginalValue: (value: unknown) => {\n const newArrayValue = structuredClone(arrayValue)\n newArrayValue[index] = value\n handleChange(newArrayValue)\n },\n } as IterateElementContextState\n }\n )\n\n // In order to update \"valueWhileClosingRef\" we need to have \"salt\" in the deps array\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [salt, arrayValue, path, handleChange])\n\n // - Call the onChange callback when a new element is added without calling \"handlePush\"\n useMemo(() => {\n const last = elementData?.[elementData.length - 1]\n if (last?.isNew && !hadPushRef.current) {\n onChange?.(arrayValue)\n } else {\n hadPushRef.current = false\n }\n }, [arrayValue, elementData, onChange])\n\n const flexProps: FlexContainerProps & {\n innerRef: FlexContainerAllProps['innerRef']\n } = {\n className: classnames('dnb-forms-iterate', props?.className),\n ...pickFlexContainerProps(props as FlexContainerProps),\n ...pickSpacingProps(props),\n innerRef: containerRef,\n }\n\n const WrapperElement = omitFlex ? Fragment : Flex.Stack\n\n return (\n <WrapperElement {...(omitFlex ? null : flexProps)}>\n {arrayValue === emptyValue || props?.value?.length === 0\n ? placeholder\n : elementData.map((elementProps) => {\n const { id, value, index } = elementProps\n const elementRef = (innerRefs.current[id] =\n innerRefs.current[id] || createRef<HTMLDivElement>())\n\n const renderChildren = (elementChild: ElementChild) => {\n return typeof elementChild === 'function'\n ? elementChild(value, index)\n : elementChild\n }\n\n const contextValue = {\n ...elementProps,\n elementRef,\n }\n\n const content = Array.isArray(children)\n ? children.map((child) => renderChildren(child))\n : renderChildren(children)\n\n if (omitFlex) {\n return (\n <IterateElementContext.Provider\n key={`element-${id}`}\n value={contextValue}\n >\n <FieldBoundaryProvider>{content}</FieldBoundaryProvider>\n </IterateElementContext.Provider>\n )\n }\n\n return (\n <Flex.Item\n className=\"dnb-forms-iterate__element\"\n tabIndex={-1}\n innerRef={elementRef}\n key={`element-${id}`}\n >\n <IterateElementContext.Provider value={contextValue}>\n <FieldBoundaryProvider>{content}</FieldBoundaryProvider>\n </IterateElementContext.Provider>\n </Flex.Item>\n )\n })}\n </WrapperElement>\n )\n}\n\nArrayComponent._supportsSpacingProps = true\nexport default ArrayComponent\n"],"mappings":"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"}
@@ -42,7 +42,7 @@ export function EditContainerWithoutToolbar(props) {
42
42
  const ariaLabel = useMemo(() => convertJsxToString(blockTitle), [blockTitle]);
43
43
  return React.createElement(ElementBlock, _extends({
44
44
  mode: "edit",
45
- className: classnames('dnb-form-iterate-edit-block', className),
45
+ className: classnames('dnb-forms-iterate-edit-block', className),
46
46
  ariaLabel: ariaLabel
47
47
  }, restProps), blockTitle && React.createElement(Lead, {
48
48
  size: "basis"
@@ -1 +1 @@
1
- {"version":3,"file":"EditContainer.js","names":["React","useContext","useEffect","useMemo","useRef","classnames","convertJsxToString","Lead","IterateElementContext","EditToolbarTools","ElementBlock","Toolbar","EditContainer","props","createElement","EditContainerWithoutToolbar","_extends","toolbar","_Toolbar","iterateElementContext","containerMode","isNew","_ref","children","className","title","titleWhenNew","restProps","_objectWithoutProperties","_excluded","wasNewRef","current","blockTitle","ariaLabel","mode","size","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/EditContainer/EditContainer.tsx"],"sourcesContent":["import React, { useContext, useEffect, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport { convertJsxToString } from '../../../../shared/component-helper'\nimport { Lead } from '../../../../elements'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport IterateElementContext from '../IterateElementContext'\nimport EditToolbarTools from './EditToolbarTools'\nimport ElementBlock from '../AnimatedContainer/ElementBlock'\nimport Toolbar from '../Toolbar'\n\nexport type Props = {\n /**\n * The title of the EditContainer.\n */\n title?: React.ReactNode\n\n /**\n * The title for a new item show within the EditContainer.\n */\n titleWhenNew?: React.ReactNode\n\n /**\n * If the EditContainer is open or not.\n * Used internally.\n */\n open?: boolean\n\n /**\n * The toolbar to be shown in the EditContainer.\n * Used internally.\n */\n toolbar?: React.ReactNode\n}\n\nexport type AllProps = Props & FlexContainerProps\n\nexport default function EditContainer(props: AllProps) {\n return (\n <EditContainerWithoutToolbar\n toolbar={\n <Toolbar>\n <EditToolbarTools />\n </Toolbar>\n }\n {...props}\n />\n )\n}\n\nexport function EditContainerWithoutToolbar(\n props: Props & FlexContainerProps & { toolbar?: React.ReactNode }\n) {\n const iterateElementContext = useContext(IterateElementContext)\n const { containerMode, isNew } = iterateElementContext ?? {}\n\n const {\n children,\n className,\n title,\n titleWhenNew,\n toolbar,\n ...restProps\n } = props || {}\n\n const wasNewRef = useRef<unknown>(isNew)\n\n useEffect(() => {\n if (containerMode === 'view') {\n wasNewRef.current = false\n }\n }, [isNew, containerMode])\n\n const blockTitle =\n wasNewRef.current && titleWhenNew ? titleWhenNew : title\n const ariaLabel = useMemo(\n () => convertJsxToString(blockTitle),\n [blockTitle]\n )\n\n return (\n <ElementBlock\n mode=\"edit\"\n className={classnames('dnb-form-iterate-edit-block', className)}\n ariaLabel={ariaLabel}\n {...restProps}\n >\n {blockTitle && <Lead size=\"basis\">{blockTitle}</Lead>}\n {children}\n {toolbar}\n </ElementBlock>\n )\n}\n\nEditContainer._supportsSpacingProps = true\nEditContainerWithoutToolbar._supportsSpacingProps = true\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AACrE,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,kBAAkB,QAAQ,qCAAqC;AACxE,SAASC,IAAI,QAAQ,sBAAsB;AAE3C,OAAOC,qBAAqB,MAAM,0BAA0B;AAC5D,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,OAAOC,YAAY,MAAM,mCAAmC;AAC5D,OAAOC,OAAO,MAAM,YAAY;AA4BhC,eAAe,SAASC,aAAaA,CAACC,KAAe,EAAE;EACrD,OACEb,KAAA,CAAAc,aAAA,CAACC,2BAA2B,EAAAC,QAAA;IAC1BC,OAAO,EAAAC,QAAA,KAAAA,QAAA,GACLlB,KAAA,CAAAc,aAAA,CAACH,OAAO,QACNX,KAAA,CAAAc,aAAA,CAACL,gBAAgB,MAAE,CACZ,CAAC;EACX,GACGI,KAAK,CACV,CAAC;AAEN;AAEA,OAAO,SAASE,2BAA2BA,CACzCF,KAAiE,EACjE;EACA,MAAMM,qBAAqB,GAAGlB,UAAU,CAACO,qBAAqB,CAAC;EAC/D,MAAM;IAAEY,aAAa;IAAEC;EAAM,CAAC,GAAGF,qBAAqB,aAArBA,qBAAqB,cAArBA,qBAAqB,GAAI,CAAC,CAAC;EAE5D,MAAAG,IAAA,GAOIT,KAAK,IAAI,CAAC,CAAC;IAPT;MACJU,QAAQ;MACRC,SAAS;MACTC,KAAK;MACLC,YAAY;MACZT;IAEF,CAAC,GAAAK,IAAA;IADIK,SAAS,GAAAC,wBAAA,CAAAN,IAAA,EAAAO,SAAA;EAGd,MAAMC,SAAS,GAAG1B,MAAM,CAAUiB,KAAK,CAAC;EAExCnB,SAAS,CAAC,MAAM;IACd,IAAIkB,aAAa,KAAK,MAAM,EAAE;MAC5BU,SAAS,CAACC,OAAO,GAAG,KAAK;IAC3B;EACF,CAAC,EAAE,CAACV,KAAK,EAAED,aAAa,CAAC,CAAC;EAE1B,MAAMY,UAAU,GACdF,SAAS,CAACC,OAAO,IAAIL,YAAY,GAAGA,YAAY,GAAGD,KAAK;EAC1D,MAAMQ,SAAS,GAAG9B,OAAO,CACvB,MAAMG,kBAAkB,CAAC0B,UAAU,CAAC,EACpC,CAACA,UAAU,CACb,CAAC;EAED,OACEhC,KAAA,CAAAc,aAAA,CAACJ,YAAY,EAAAM,QAAA;IACXkB,IAAI,EAAC,MAAM;IACXV,SAAS,EAAEnB,UAAU,CAAC,6BAA6B,EAAEmB,SAAS,CAAE;IAChES,SAAS,EAAEA;EAAU,GACjBN,SAAS,GAEZK,UAAU,IAAIhC,KAAA,CAAAc,aAAA,CAACP,IAAI;IAAC4B,IAAI,EAAC;EAAO,GAAEH,UAAiB,CAAC,EACpDT,QAAQ,EACRN,OACW,CAAC;AAEnB;AAEAL,aAAa,CAACwB,qBAAqB,GAAG,IAAI;AAC1CrB,2BAA2B,CAACqB,qBAAqB,GAAG,IAAI"}
1
+ {"version":3,"file":"EditContainer.js","names":["React","useContext","useEffect","useMemo","useRef","classnames","convertJsxToString","Lead","IterateElementContext","EditToolbarTools","ElementBlock","Toolbar","EditContainer","props","createElement","EditContainerWithoutToolbar","_extends","toolbar","_Toolbar","iterateElementContext","containerMode","isNew","_ref","children","className","title","titleWhenNew","restProps","_objectWithoutProperties","_excluded","wasNewRef","current","blockTitle","ariaLabel","mode","size","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/EditContainer/EditContainer.tsx"],"sourcesContent":["import React, { useContext, useEffect, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport { convertJsxToString } from '../../../../shared/component-helper'\nimport { Lead } from '../../../../elements'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport IterateElementContext from '../IterateElementContext'\nimport EditToolbarTools from './EditToolbarTools'\nimport ElementBlock from '../AnimatedContainer/ElementBlock'\nimport Toolbar from '../Toolbar'\n\nexport type Props = {\n /**\n * The title of the EditContainer.\n */\n title?: React.ReactNode\n\n /**\n * The title for a new item show within the EditContainer.\n */\n titleWhenNew?: React.ReactNode\n\n /**\n * If the EditContainer is open or not.\n * Used internally.\n */\n open?: boolean\n\n /**\n * The toolbar to be shown in the EditContainer.\n * Used internally.\n */\n toolbar?: React.ReactNode\n}\n\nexport type AllProps = Props & FlexContainerProps\n\nexport default function EditContainer(props: AllProps) {\n return (\n <EditContainerWithoutToolbar\n toolbar={\n <Toolbar>\n <EditToolbarTools />\n </Toolbar>\n }\n {...props}\n />\n )\n}\n\nexport function EditContainerWithoutToolbar(\n props: Props & FlexContainerProps & { toolbar?: React.ReactNode }\n) {\n const iterateElementContext = useContext(IterateElementContext)\n const { containerMode, isNew } = iterateElementContext ?? {}\n\n const {\n children,\n className,\n title,\n titleWhenNew,\n toolbar,\n ...restProps\n } = props || {}\n\n const wasNewRef = useRef<unknown>(isNew)\n\n useEffect(() => {\n if (containerMode === 'view') {\n wasNewRef.current = false\n }\n }, [isNew, containerMode])\n\n const blockTitle =\n wasNewRef.current && titleWhenNew ? titleWhenNew : title\n const ariaLabel = useMemo(\n () => convertJsxToString(blockTitle),\n [blockTitle]\n )\n\n return (\n <ElementBlock\n mode=\"edit\"\n className={classnames('dnb-forms-iterate-edit-block', className)}\n ariaLabel={ariaLabel}\n {...restProps}\n >\n {blockTitle && <Lead size=\"basis\">{blockTitle}</Lead>}\n {children}\n {toolbar}\n </ElementBlock>\n )\n}\n\nEditContainer._supportsSpacingProps = true\nEditContainerWithoutToolbar._supportsSpacingProps = true\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AACrE,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,kBAAkB,QAAQ,qCAAqC;AACxE,SAASC,IAAI,QAAQ,sBAAsB;AAE3C,OAAOC,qBAAqB,MAAM,0BAA0B;AAC5D,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,OAAOC,YAAY,MAAM,mCAAmC;AAC5D,OAAOC,OAAO,MAAM,YAAY;AA4BhC,eAAe,SAASC,aAAaA,CAACC,KAAe,EAAE;EACrD,OACEb,KAAA,CAAAc,aAAA,CAACC,2BAA2B,EAAAC,QAAA;IAC1BC,OAAO,EAAAC,QAAA,KAAAA,QAAA,GACLlB,KAAA,CAAAc,aAAA,CAACH,OAAO,QACNX,KAAA,CAAAc,aAAA,CAACL,gBAAgB,MAAE,CACZ,CAAC;EACX,GACGI,KAAK,CACV,CAAC;AAEN;AAEA,OAAO,SAASE,2BAA2BA,CACzCF,KAAiE,EACjE;EACA,MAAMM,qBAAqB,GAAGlB,UAAU,CAACO,qBAAqB,CAAC;EAC/D,MAAM;IAAEY,aAAa;IAAEC;EAAM,CAAC,GAAGF,qBAAqB,aAArBA,qBAAqB,cAArBA,qBAAqB,GAAI,CAAC,CAAC;EAE5D,MAAAG,IAAA,GAOIT,KAAK,IAAI,CAAC,CAAC;IAPT;MACJU,QAAQ;MACRC,SAAS;MACTC,KAAK;MACLC,YAAY;MACZT;IAEF,CAAC,GAAAK,IAAA;IADIK,SAAS,GAAAC,wBAAA,CAAAN,IAAA,EAAAO,SAAA;EAGd,MAAMC,SAAS,GAAG1B,MAAM,CAAUiB,KAAK,CAAC;EAExCnB,SAAS,CAAC,MAAM;IACd,IAAIkB,aAAa,KAAK,MAAM,EAAE;MAC5BU,SAAS,CAACC,OAAO,GAAG,KAAK;IAC3B;EACF,CAAC,EAAE,CAACV,KAAK,EAAED,aAAa,CAAC,CAAC;EAE1B,MAAMY,UAAU,GACdF,SAAS,CAACC,OAAO,IAAIL,YAAY,GAAGA,YAAY,GAAGD,KAAK;EAC1D,MAAMQ,SAAS,GAAG9B,OAAO,CACvB,MAAMG,kBAAkB,CAAC0B,UAAU,CAAC,EACpC,CAACA,UAAU,CACb,CAAC;EAED,OACEhC,KAAA,CAAAc,aAAA,CAACJ,YAAY,EAAAM,QAAA;IACXkB,IAAI,EAAC,MAAM;IACXV,SAAS,EAAEnB,UAAU,CAAC,8BAA8B,EAAEmB,SAAS,CAAE;IACjES,SAAS,EAAEA;EAAU,GACjBN,SAAS,GAEZK,UAAU,IAAIhC,KAAA,CAAAc,aAAA,CAACP,IAAI;IAAC4B,IAAI,EAAC;EAAO,GAAEH,UAAiB,CAAC,EACpDT,QAAQ,EACRN,OACW,CAAC;AAEnB;AAEAL,aAAa,CAACwB,qBAAqB,GAAG,IAAI;AAC1CrB,2BAA2B,CAACqB,qBAAqB,GAAG,IAAI"}
@@ -38,7 +38,7 @@ function PushButton(props) {
38
38
  handleChange([...(value !== null && value !== void 0 ? value : []), newValue]);
39
39
  }, [value, pushValue, handlePush, handleChange]);
40
40
  return React.createElement(Button, _extends({
41
- className: classnames('dnb-form-iterate-push-button', className),
41
+ className: classnames('dnb-forms-iterate-push-button', className),
42
42
  variant: "secondary",
43
43
  icon: add,
44
44
  icon_position: "left",
@@ -1 +1 @@
1
- {"version":3,"file":"PushButton.js","names":["React","useCallback","useContext","classnames","Button","IterateElementContext","useFieldProps","omitDataValueReadWriteProps","add","PushButton","props","iterateElementContext","handlePush","pushValue","className","restProps","_objectWithoutProperties","_excluded","buttonProps","value","handleChange","children","undefined","Array","isArray","Error","handleClick","newValue","createElement","_extends","variant","icon","icon_position","on_click","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/PushButton/PushButton.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport classnames from 'classnames'\nimport { Button } from '../../../../components'\nimport { ButtonProps } from '../../../../components/Button'\nimport IterateElementContext from '../IterateElementContext'\nimport { useFieldProps } from '../../hooks'\nimport {\n DataValueReadWriteComponentProps,\n omitDataValueReadWriteProps,\n} from '../../types'\nimport { add } from '../../../../icons'\n\nexport type Props = ButtonProps &\n DataValueReadWriteComponentProps<unknown[]> & {\n pushValue: unknown | ((value: unknown) => void)\n }\n\nfunction PushButton(props: Props) {\n const iterateElementContext = useContext(IterateElementContext)\n const { handlePush } = iterateElementContext ?? {}\n\n const { pushValue, className, ...restProps } = props\n const buttonProps = omitDataValueReadWriteProps(restProps)\n const { value, handleChange, children } = useFieldProps(restProps)\n\n if (value !== undefined && !Array.isArray(value)) {\n throw new Error('PushButton received a non-array value.')\n }\n\n const handleClick = useCallback(() => {\n const newValue =\n typeof pushValue === 'function' ? pushValue(value) : pushValue\n\n if (handlePush) {\n // Inside an Iterate element - make the change through the Iterate component\n handlePush(newValue)\n return // stop here\n }\n\n // If not inside an iterate, it could still manipulate a source data set through useFieldProps\n handleChange([...(value ?? []), newValue])\n }, [value, pushValue, handlePush, handleChange])\n\n return (\n <Button\n className={classnames('dnb-form-iterate-push-button', className)}\n variant=\"secondary\"\n icon={add}\n icon_position=\"left\"\n on_click={handleClick}\n {...buttonProps}\n >\n {children}\n </Button>\n )\n}\n\nPushButton._supportsSpacingProps = true\nexport default PushButton\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,QAAQ,OAAO;AACtD,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,MAAM,QAAQ,wBAAwB;AAE/C,OAAOC,qBAAqB,MAAM,0BAA0B;AAC5D,SAASC,aAAa,QAAQ,aAAa;AAC3C,SAEEC,2BAA2B,QACtB,aAAa;AACpB,SAASC,GAAG,QAAQ,mBAAmB;AAOvC,SAASC,UAAUA,CAACC,KAAY,EAAE;EAChC,MAAMC,qBAAqB,GAAGT,UAAU,CAACG,qBAAqB,CAAC;EAC/D,MAAM;IAAEO;EAAW,CAAC,GAAGD,qBAAqB,aAArBA,qBAAqB,cAArBA,qBAAqB,GAAI,CAAC,CAAC;EAElD,MAAM;MAAEE,SAAS;MAAEC;IAAwB,CAAC,GAAGJ,KAAK;IAAnBK,SAAS,GAAAC,wBAAA,CAAKN,KAAK,EAAAO,SAAA;EACpD,MAAMC,WAAW,GAAGX,2BAA2B,CAACQ,SAAS,CAAC;EAC1D,MAAM;IAAEI,KAAK;IAAEC,YAAY;IAAEC;EAAS,CAAC,GAAGf,aAAa,CAACS,SAAS,CAAC;EAElE,IAAII,KAAK,KAAKG,SAAS,IAAI,CAACC,KAAK,CAACC,OAAO,CAACL,KAAK,CAAC,EAAE;IAChD,MAAM,IAAIM,KAAK,CAAC,wCAAwC,CAAC;EAC3D;EAEA,MAAMC,WAAW,GAAGzB,WAAW,CAAC,MAAM;IACpC,MAAM0B,QAAQ,GACZ,OAAOd,SAAS,KAAK,UAAU,GAAGA,SAAS,CAACM,KAAK,CAAC,GAAGN,SAAS;IAEhE,IAAID,UAAU,EAAE;MAEdA,UAAU,CAACe,QAAQ,CAAC;MACpB;IACF;IAGAP,YAAY,CAAC,CAAC,IAAID,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAE,CAAC,EAAEQ,QAAQ,CAAC,CAAC;EAC5C,CAAC,EAAE,CAACR,KAAK,EAAEN,SAAS,EAAED,UAAU,EAAEQ,YAAY,CAAC,CAAC;EAEhD,OACEpB,KAAA,CAAA4B,aAAA,CAACxB,MAAM,EAAAyB,QAAA;IACLf,SAAS,EAAEX,UAAU,CAAC,8BAA8B,EAAEW,SAAS,CAAE;IACjEgB,OAAO,EAAC,WAAW;IACnBC,IAAI,EAAEvB,GAAI;IACVwB,aAAa,EAAC,MAAM;IACpBC,QAAQ,EAAEP;EAAY,GAClBR,WAAW,GAEdG,QACK,CAAC;AAEb;AAEAZ,UAAU,CAACyB,qBAAqB,GAAG,IAAI;AACvC,eAAezB,UAAU"}
1
+ {"version":3,"file":"PushButton.js","names":["React","useCallback","useContext","classnames","Button","IterateElementContext","useFieldProps","omitDataValueReadWriteProps","add","PushButton","props","iterateElementContext","handlePush","pushValue","className","restProps","_objectWithoutProperties","_excluded","buttonProps","value","handleChange","children","undefined","Array","isArray","Error","handleClick","newValue","createElement","_extends","variant","icon","icon_position","on_click","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/PushButton/PushButton.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport classnames from 'classnames'\nimport { Button } from '../../../../components'\nimport { ButtonProps } from '../../../../components/Button'\nimport IterateElementContext from '../IterateElementContext'\nimport { useFieldProps } from '../../hooks'\nimport {\n DataValueReadWriteComponentProps,\n omitDataValueReadWriteProps,\n} from '../../types'\nimport { add } from '../../../../icons'\n\nexport type Props = ButtonProps &\n DataValueReadWriteComponentProps<unknown[]> & {\n pushValue: unknown | ((value: unknown) => void)\n }\n\nfunction PushButton(props: Props) {\n const iterateElementContext = useContext(IterateElementContext)\n const { handlePush } = iterateElementContext ?? {}\n\n const { pushValue, className, ...restProps } = props\n const buttonProps = omitDataValueReadWriteProps(restProps)\n const { value, handleChange, children } = useFieldProps(restProps)\n\n if (value !== undefined && !Array.isArray(value)) {\n throw new Error('PushButton received a non-array value.')\n }\n\n const handleClick = useCallback(() => {\n const newValue =\n typeof pushValue === 'function' ? pushValue(value) : pushValue\n\n if (handlePush) {\n // Inside an Iterate element - make the change through the Iterate component\n handlePush(newValue)\n return // stop here\n }\n\n // If not inside an iterate, it could still manipulate a source data set through useFieldProps\n handleChange([...(value ?? []), newValue])\n }, [value, pushValue, handlePush, handleChange])\n\n return (\n <Button\n className={classnames('dnb-forms-iterate-push-button', className)}\n variant=\"secondary\"\n icon={add}\n icon_position=\"left\"\n on_click={handleClick}\n {...buttonProps}\n >\n {children}\n </Button>\n )\n}\n\nPushButton._supportsSpacingProps = true\nexport default PushButton\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,QAAQ,OAAO;AACtD,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,MAAM,QAAQ,wBAAwB;AAE/C,OAAOC,qBAAqB,MAAM,0BAA0B;AAC5D,SAASC,aAAa,QAAQ,aAAa;AAC3C,SAEEC,2BAA2B,QACtB,aAAa;AACpB,SAASC,GAAG,QAAQ,mBAAmB;AAOvC,SAASC,UAAUA,CAACC,KAAY,EAAE;EAChC,MAAMC,qBAAqB,GAAGT,UAAU,CAACG,qBAAqB,CAAC;EAC/D,MAAM;IAAEO;EAAW,CAAC,GAAGD,qBAAqB,aAArBA,qBAAqB,cAArBA,qBAAqB,GAAI,CAAC,CAAC;EAElD,MAAM;MAAEE,SAAS;MAAEC;IAAwB,CAAC,GAAGJ,KAAK;IAAnBK,SAAS,GAAAC,wBAAA,CAAKN,KAAK,EAAAO,SAAA;EACpD,MAAMC,WAAW,GAAGX,2BAA2B,CAACQ,SAAS,CAAC;EAC1D,MAAM;IAAEI,KAAK;IAAEC,YAAY;IAAEC;EAAS,CAAC,GAAGf,aAAa,CAACS,SAAS,CAAC;EAElE,IAAII,KAAK,KAAKG,SAAS,IAAI,CAACC,KAAK,CAACC,OAAO,CAACL,KAAK,CAAC,EAAE;IAChD,MAAM,IAAIM,KAAK,CAAC,wCAAwC,CAAC;EAC3D;EAEA,MAAMC,WAAW,GAAGzB,WAAW,CAAC,MAAM;IACpC,MAAM0B,QAAQ,GACZ,OAAOd,SAAS,KAAK,UAAU,GAAGA,SAAS,CAACM,KAAK,CAAC,GAAGN,SAAS;IAEhE,IAAID,UAAU,EAAE;MAEdA,UAAU,CAACe,QAAQ,CAAC;MACpB;IACF;IAGAP,YAAY,CAAC,CAAC,IAAID,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAE,CAAC,EAAEQ,QAAQ,CAAC,CAAC;EAC5C,CAAC,EAAE,CAACR,KAAK,EAAEN,SAAS,EAAED,UAAU,EAAEQ,YAAY,CAAC,CAAC;EAEhD,OACEpB,KAAA,CAAA4B,aAAA,CAACxB,MAAM,EAAAyB,QAAA;IACLf,SAAS,EAAEX,UAAU,CAAC,+BAA+B,EAAEW,SAAS,CAAE;IAClEgB,OAAO,EAAC,WAAW;IACnBC,IAAI,EAAEvB,GAAI;IACVwB,aAAa,EAAC,MAAM;IACpBC,QAAQ,EAAEP;EAAY,GAClBR,WAAW,GAEdG,QACK,CAAC;AAEb;AAEAZ,UAAU,CAACyB,qBAAqB,GAAG,IAAI;AACvC,eAAezB,UAAU"}
@@ -42,7 +42,7 @@ function RemoveButton(props) {
42
42
  }
43
43
  }, [handleRemove, handleRemoveBlock]);
44
44
  return React.createElement(Button, _extends({
45
- className: classnames('dnb-form-iterate-remove-element-button', className),
45
+ className: classnames('dnb-forms-iterate-remove-element-button', className),
46
46
  variant: textContent ? 'tertiary' : 'secondary',
47
47
  icon: trash,
48
48
  icon_position: "left",
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveButton.js","names":["React","useCallback","useContext","classnames","Button","IterateElementContext","useFieldProps","useTranslation","ElementBlockContext","omitDataValueReadWriteProps","trash","RemoveButton","props","iterateElementContext","handleRemove","Error","className","restProps","_objectWithoutProperties","_excluded","children","text","buttonProps","translation","Iterate","textContent","remove","elementBlockContext","handleRemoveBlock","handleClick","createElement","_extends","variant","icon","icon_position","on_click","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/RemoveButton/RemoveButton.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport classnames from 'classnames'\nimport { Button } from '../../../../components'\nimport { ButtonProps } from '../../../../components/Button'\nimport IterateElementContext from '../IterateElementContext'\nimport { useFieldProps, useTranslation } from '../../hooks'\nimport ElementBlockContext from '../AnimatedContainer/ElementBlockContext'\nimport {\n DataValueReadWriteComponentProps,\n omitDataValueReadWriteProps,\n} from '../../types'\nimport { trash } from '../../../../icons'\n\nexport type Props = ButtonProps &\n DataValueReadWriteComponentProps<unknown[]>\n\nfunction RemoveButton(props: Props) {\n const iterateElementContext = useContext(IterateElementContext)\n const { handleRemove } = iterateElementContext ?? {}\n\n if (!iterateElementContext) {\n throw new Error(\n 'RemoveButton must be inside an Iterate.Array component.'\n )\n }\n\n const { className, ...restProps } = props\n const { children, text } = useFieldProps(restProps)\n const buttonProps = omitDataValueReadWriteProps(restProps)\n const translation = useTranslation().Iterate\n const textContent = text || children || translation.remove\n\n const elementBlockContext = useContext(ElementBlockContext)\n const { handleRemoveBlock } = elementBlockContext ?? {}\n\n const handleClick = useCallback(() => {\n if (handleRemoveBlock) {\n handleRemoveBlock()\n } else {\n handleRemove()\n }\n }, [handleRemove, handleRemoveBlock])\n\n return (\n <Button\n className={classnames(\n 'dnb-form-iterate-remove-element-button',\n className\n )}\n variant={textContent ? 'tertiary' : 'secondary'}\n icon={trash}\n icon_position=\"left\"\n on_click={handleClick}\n {...buttonProps}\n >\n {textContent}\n </Button>\n )\n}\n\nRemoveButton._supportsSpacingProps = true\nexport default RemoveButton\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,QAAQ,OAAO;AACtD,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,MAAM,QAAQ,wBAAwB;AAE/C,OAAOC,qBAAqB,MAAM,0BAA0B;AAC5D,SAASC,aAAa,EAAEC,cAAc,QAAQ,aAAa;AAC3D,OAAOC,mBAAmB,MAAM,0CAA0C;AAC1E,SAEEC,2BAA2B,QACtB,aAAa;AACpB,SAASC,KAAK,QAAQ,mBAAmB;AAKzC,SAASC,YAAYA,CAACC,KAAY,EAAE;EAClC,MAAMC,qBAAqB,GAAGX,UAAU,CAACG,qBAAqB,CAAC;EAC/D,MAAM;IAAES;EAAa,CAAC,GAAGD,qBAAqB,aAArBA,qBAAqB,cAArBA,qBAAqB,GAAI,CAAC,CAAC;EAEpD,IAAI,CAACA,qBAAqB,EAAE;IAC1B,MAAM,IAAIE,KAAK,CACb,yDACF,CAAC;EACH;EAEA,MAAM;MAAEC;IAAwB,CAAC,GAAGJ,KAAK;IAAnBK,SAAS,GAAAC,wBAAA,CAAKN,KAAK,EAAAO,SAAA;EACzC,MAAM;IAAEC,QAAQ;IAAEC;EAAK,CAAC,GAAGf,aAAa,CAACW,SAAS,CAAC;EACnD,MAAMK,WAAW,GAAGb,2BAA2B,CAACQ,SAAS,CAAC;EAC1D,MAAMM,WAAW,GAAGhB,cAAc,CAAC,CAAC,CAACiB,OAAO;EAC5C,MAAMC,WAAW,GAAGJ,IAAI,IAAID,QAAQ,IAAIG,WAAW,CAACG,MAAM;EAE1D,MAAMC,mBAAmB,GAAGzB,UAAU,CAACM,mBAAmB,CAAC;EAC3D,MAAM;IAAEoB;EAAkB,CAAC,GAAGD,mBAAmB,aAAnBA,mBAAmB,cAAnBA,mBAAmB,GAAI,CAAC,CAAC;EAEvD,MAAME,WAAW,GAAG5B,WAAW,CAAC,MAAM;IACpC,IAAI2B,iBAAiB,EAAE;MACrBA,iBAAiB,CAAC,CAAC;IACrB,CAAC,MAAM;MACLd,YAAY,CAAC,CAAC;IAChB;EACF,CAAC,EAAE,CAACA,YAAY,EAAEc,iBAAiB,CAAC,CAAC;EAErC,OACE5B,KAAA,CAAA8B,aAAA,CAAC1B,MAAM,EAAA2B,QAAA;IACLf,SAAS,EAAEb,UAAU,CACnB,wCAAwC,EACxCa,SACF,CAAE;IACFgB,OAAO,EAAEP,WAAW,GAAG,UAAU,GAAG,WAAY;IAChDQ,IAAI,EAAEvB,KAAM;IACZwB,aAAa,EAAC,MAAM;IACpBC,QAAQ,EAAEN;EAAY,GAClBP,WAAW,GAEdG,WACK,CAAC;AAEb;AAEAd,YAAY,CAACyB,qBAAqB,GAAG,IAAI;AACzC,eAAezB,YAAY"}
1
+ {"version":3,"file":"RemoveButton.js","names":["React","useCallback","useContext","classnames","Button","IterateElementContext","useFieldProps","useTranslation","ElementBlockContext","omitDataValueReadWriteProps","trash","RemoveButton","props","iterateElementContext","handleRemove","Error","className","restProps","_objectWithoutProperties","_excluded","children","text","buttonProps","translation","Iterate","textContent","remove","elementBlockContext","handleRemoveBlock","handleClick","createElement","_extends","variant","icon","icon_position","on_click","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/RemoveButton/RemoveButton.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport classnames from 'classnames'\nimport { Button } from '../../../../components'\nimport { ButtonProps } from '../../../../components/Button'\nimport IterateElementContext from '../IterateElementContext'\nimport { useFieldProps, useTranslation } from '../../hooks'\nimport ElementBlockContext from '../AnimatedContainer/ElementBlockContext'\nimport {\n DataValueReadWriteComponentProps,\n omitDataValueReadWriteProps,\n} from '../../types'\nimport { trash } from '../../../../icons'\n\nexport type Props = ButtonProps &\n DataValueReadWriteComponentProps<unknown[]>\n\nfunction RemoveButton(props: Props) {\n const iterateElementContext = useContext(IterateElementContext)\n const { handleRemove } = iterateElementContext ?? {}\n\n if (!iterateElementContext) {\n throw new Error(\n 'RemoveButton must be inside an Iterate.Array component.'\n )\n }\n\n const { className, ...restProps } = props\n const { children, text } = useFieldProps(restProps)\n const buttonProps = omitDataValueReadWriteProps(restProps)\n const translation = useTranslation().Iterate\n const textContent = text || children || translation.remove\n\n const elementBlockContext = useContext(ElementBlockContext)\n const { handleRemoveBlock } = elementBlockContext ?? {}\n\n const handleClick = useCallback(() => {\n if (handleRemoveBlock) {\n handleRemoveBlock()\n } else {\n handleRemove()\n }\n }, [handleRemove, handleRemoveBlock])\n\n return (\n <Button\n className={classnames(\n 'dnb-forms-iterate-remove-element-button',\n className\n )}\n variant={textContent ? 'tertiary' : 'secondary'}\n icon={trash}\n icon_position=\"left\"\n on_click={handleClick}\n {...buttonProps}\n >\n {textContent}\n </Button>\n )\n}\n\nRemoveButton._supportsSpacingProps = true\nexport default RemoveButton\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,QAAQ,OAAO;AACtD,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,MAAM,QAAQ,wBAAwB;AAE/C,OAAOC,qBAAqB,MAAM,0BAA0B;AAC5D,SAASC,aAAa,EAAEC,cAAc,QAAQ,aAAa;AAC3D,OAAOC,mBAAmB,MAAM,0CAA0C;AAC1E,SAEEC,2BAA2B,QACtB,aAAa;AACpB,SAASC,KAAK,QAAQ,mBAAmB;AAKzC,SAASC,YAAYA,CAACC,KAAY,EAAE;EAClC,MAAMC,qBAAqB,GAAGX,UAAU,CAACG,qBAAqB,CAAC;EAC/D,MAAM;IAAES;EAAa,CAAC,GAAGD,qBAAqB,aAArBA,qBAAqB,cAArBA,qBAAqB,GAAI,CAAC,CAAC;EAEpD,IAAI,CAACA,qBAAqB,EAAE;IAC1B,MAAM,IAAIE,KAAK,CACb,yDACF,CAAC;EACH;EAEA,MAAM;MAAEC;IAAwB,CAAC,GAAGJ,KAAK;IAAnBK,SAAS,GAAAC,wBAAA,CAAKN,KAAK,EAAAO,SAAA;EACzC,MAAM;IAAEC,QAAQ;IAAEC;EAAK,CAAC,GAAGf,aAAa,CAACW,SAAS,CAAC;EACnD,MAAMK,WAAW,GAAGb,2BAA2B,CAACQ,SAAS,CAAC;EAC1D,MAAMM,WAAW,GAAGhB,cAAc,CAAC,CAAC,CAACiB,OAAO;EAC5C,MAAMC,WAAW,GAAGJ,IAAI,IAAID,QAAQ,IAAIG,WAAW,CAACG,MAAM;EAE1D,MAAMC,mBAAmB,GAAGzB,UAAU,CAACM,mBAAmB,CAAC;EAC3D,MAAM;IAAEoB;EAAkB,CAAC,GAAGD,mBAAmB,aAAnBA,mBAAmB,cAAnBA,mBAAmB,GAAI,CAAC,CAAC;EAEvD,MAAME,WAAW,GAAG5B,WAAW,CAAC,MAAM;IACpC,IAAI2B,iBAAiB,EAAE;MACrBA,iBAAiB,CAAC,CAAC;IACrB,CAAC,MAAM;MACLd,YAAY,CAAC,CAAC;IAChB;EACF,CAAC,EAAE,CAACA,YAAY,EAAEc,iBAAiB,CAAC,CAAC;EAErC,OACE5B,KAAA,CAAA8B,aAAA,CAAC1B,MAAM,EAAA2B,QAAA;IACLf,SAAS,EAAEb,UAAU,CACnB,yCAAyC,EACzCa,SACF,CAAE;IACFgB,OAAO,EAAEP,WAAW,GAAG,UAAU,GAAG,WAAY;IAChDQ,IAAI,EAAEvB,KAAM;IACZwB,aAAa,EAAC,MAAM;IACpBC,QAAQ,EAAEN;EAAY,GAClBP,WAAW,GAEdG,WACK,CAAC;AAEb;AAEAd,YAAY,CAACyB,qBAAqB,GAAG,IAAI;AACzC,eAAezB,YAAY"}
@@ -15,7 +15,7 @@ export default function Toolbar(props) {
15
15
  rest = _objectWithoutProperties(_ref, _excluded);
16
16
  return React.createElement(Space, _extends({
17
17
  top: "medium",
18
- className: classnames('dnb-form-iterate-toolbar', className)
18
+ className: classnames('dnb-forms-iterate-toolbar', className)
19
19
  }, rest), _Hr || (_Hr = React.createElement(Hr, {
20
20
  space: 0
21
21
  })), React.createElement(Flex.Horizontal, {
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.js","names":["React","classnames","Hr","Flex","Space","Toolbar","props","_ref","children","className","rest","_objectWithoutProperties","_excluded","createElement","_extends","top","_Hr","space","Horizontal","spacing","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/Toolbar/Toolbar.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport { Hr } from '../../../../elements'\nimport { Flex, Space } from '../../../../components'\nimport { SpaceAllProps } from '../../../../components/Space'\n\nexport type Props = SpaceAllProps\n\nexport default function Toolbar(props: Props) {\n const { children, className, ...rest } = props || {}\n\n return (\n <Space\n top=\"medium\"\n className={classnames('dnb-form-iterate-toolbar', className)}\n {...rest}\n >\n <Hr space={0} />\n\n <Flex.Horizontal top=\"x-small\" spacing=\"large\">\n {children}\n </Flex.Horizontal>\n </Space>\n )\n}\n\nToolbar._supportsSpacingProps = true\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,EAAE,QAAQ,sBAAsB;AACzC,SAASC,IAAI,EAAEC,KAAK,QAAQ,wBAAwB;AAKpD,eAAe,SAASC,OAAOA,CAACC,KAAY,EAAE;EAC5C,MAAAC,IAAA,GAAyCD,KAAK,IAAI,CAAC,CAAC;IAA9C;MAAEE,QAAQ;MAAEC;IAAmB,CAAC,GAAAF,IAAA;IAANG,IAAI,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA;EAEpC,OACEZ,KAAA,CAAAa,aAAA,CAACT,KAAK,EAAAU,QAAA;IACJC,GAAG,EAAC,QAAQ;IACZN,SAAS,EAAER,UAAU,CAAC,0BAA0B,EAAEQ,SAAS;EAAE,GACzDC,IAAI,GAAAM,GAAA,KAAAA,GAAA,GAERhB,KAAA,CAAAa,aAAA,CAACX,EAAE;IAACe,KAAK,EAAE;EAAE,CAAE,CAAC,GAEhBjB,KAAA,CAAAa,aAAA,CAACV,IAAI,CAACe,UAAU;IAACH,GAAG,EAAC,SAAS;IAACI,OAAO,EAAC;EAAO,GAC3CX,QACc,CACZ,CAAC;AAEZ;AAEAH,OAAO,CAACe,qBAAqB,GAAG,IAAI"}
1
+ {"version":3,"file":"Toolbar.js","names":["React","classnames","Hr","Flex","Space","Toolbar","props","_ref","children","className","rest","_objectWithoutProperties","_excluded","createElement","_extends","top","_Hr","space","Horizontal","spacing","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/Toolbar/Toolbar.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport { Hr } from '../../../../elements'\nimport { Flex, Space } from '../../../../components'\nimport { SpaceAllProps } from '../../../../components/Space'\n\nexport type Props = SpaceAllProps\n\nexport default function Toolbar(props: Props) {\n const { children, className, ...rest } = props || {}\n\n return (\n <Space\n top=\"medium\"\n className={classnames('dnb-forms-iterate-toolbar', className)}\n {...rest}\n >\n <Hr space={0} />\n\n <Flex.Horizontal top=\"x-small\" spacing=\"large\">\n {children}\n </Flex.Horizontal>\n </Space>\n )\n}\n\nToolbar._supportsSpacingProps = true\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,EAAE,QAAQ,sBAAsB;AACzC,SAASC,IAAI,EAAEC,KAAK,QAAQ,wBAAwB;AAKpD,eAAe,SAASC,OAAOA,CAACC,KAAY,EAAE;EAC5C,MAAAC,IAAA,GAAyCD,KAAK,IAAI,CAAC,CAAC;IAA9C;MAAEE,QAAQ;MAAEC;IAAmB,CAAC,GAAAF,IAAA;IAANG,IAAI,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA;EAEpC,OACEZ,KAAA,CAAAa,aAAA,CAACT,KAAK,EAAAU,QAAA;IACJC,GAAG,EAAC,QAAQ;IACZN,SAAS,EAAER,UAAU,CAAC,2BAA2B,EAAEQ,SAAS;EAAE,GAC1DC,IAAI,GAAAM,GAAA,KAAAA,GAAA,GAERhB,KAAA,CAAAa,aAAA,CAACX,EAAE;IAACe,KAAK,EAAE;EAAE,CAAE,CAAC,GAEhBjB,KAAA,CAAAa,aAAA,CAACV,IAAI,CAACe,UAAU;IAACH,GAAG,EAAC,SAAS;IAACI,OAAO,EAAC;EAAO,GAC3CX,QACc,CACZ,CAAC;AAEZ;AAEAH,OAAO,CAACe,qBAAqB,GAAG,IAAI"}
@@ -22,7 +22,7 @@ function ViewContainer(props) {
22
22
  return React.createElement(ElementBlock, _extends({
23
23
  mode: "view",
24
24
  ariaLabel: ariaLabel,
25
- className: classnames('dnb-form-iterate-view-block', className)
25
+ className: classnames('dnb-forms-iterate-view-block', className)
26
26
  }, restProps), React.createElement(Flex.Stack, null, title && React.createElement(Lead, {
27
27
  size: "basis"
28
28
  }, title), children, _Toolbar || (_Toolbar = React.createElement(Toolbar, null, React.createElement(ViewToolbarTools, null)))));