@dnb/eufemia 10.62.4 → 10.63.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 (892) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/cjs/components/accordion/Accordion.d.ts +1 -125
  3. package/cjs/components/accordion/Accordion.js +0 -1
  4. package/cjs/components/accordion/Accordion.js.map +1 -1
  5. package/cjs/components/autocomplete/Autocomplete.js +3 -2
  6. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  7. package/cjs/components/button/Button.d.ts +3 -6
  8. package/cjs/components/button/Button.js +8 -18
  9. package/cjs/components/button/Button.js.map +1 -1
  10. package/cjs/components/button/ButtonDocs.d.ts +2 -0
  11. package/cjs/components/button/ButtonDocs.js +135 -0
  12. package/cjs/components/button/ButtonDocs.js.map +1 -0
  13. package/cjs/components/date-picker/DatePicker.d.ts +4 -0
  14. package/cjs/components/date-picker/DatePicker.js +24 -10
  15. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  16. package/cjs/components/date-picker/DatePickerDocs.js +5 -0
  17. package/cjs/components/date-picker/DatePickerDocs.js.map +1 -1
  18. package/cjs/components/date-picker/DatePickerPortal.d.ts +9 -0
  19. package/cjs/components/date-picker/DatePickerPortal.js +61 -0
  20. package/cjs/components/date-picker/DatePickerPortal.js.map +1 -0
  21. package/cjs/components/date-picker/style/dnb-date-picker.css +64 -55
  22. package/cjs/components/date-picker/style/dnb-date-picker.min.css +1 -1
  23. package/cjs/components/date-picker/style/dnb-date-picker.scss +90 -75
  24. package/cjs/components/form-row/FormRow.js +2 -7
  25. package/cjs/components/form-row/FormRow.js.map +1 -1
  26. package/cjs/components/form-row/style/dnb-form-row.css +3 -3
  27. package/cjs/components/form-row/style/dnb-form-row.min.css +1 -1
  28. package/cjs/components/form-status/FormStatus.js +17 -19
  29. package/cjs/components/form-status/FormStatus.js.map +1 -1
  30. package/cjs/components/height-animation/HeightAnimationInstance.d.ts +1 -0
  31. package/cjs/components/height-animation/HeightAnimationInstance.js +26 -1
  32. package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
  33. package/cjs/components/input-masked/InputMasked.d.ts +1 -1
  34. package/cjs/components/input-masked/InputMasked.js +2 -2
  35. package/cjs/components/input-masked/InputMasked.js.map +1 -1
  36. package/cjs/components/input-masked/InputMaskedDocs.js +1 -1
  37. package/cjs/components/input-masked/InputMaskedDocs.js.map +1 -1
  38. package/cjs/components/input-masked/InputMaskedHooks.js +1 -1
  39. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  40. package/cjs/components/input-masked/InputMaskedUtils.js +1 -1
  41. package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
  42. package/cjs/components/input-masked/style/dnb-input-masked.css +3 -3
  43. package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
  44. package/cjs/components/pagination/Pagination.d.ts +12 -0
  45. package/cjs/components/pagination/Pagination.js +7 -3
  46. package/cjs/components/pagination/Pagination.js.map +1 -1
  47. package/cjs/components/pagination/PaginationBar.d.ts +2 -1
  48. package/cjs/components/pagination/PaginationBar.js +10 -3
  49. package/cjs/components/pagination/PaginationBar.js.map +1 -1
  50. package/cjs/components/radio/style/dnb-radio.css +3 -3
  51. package/cjs/components/radio/style/dnb-radio.min.css +1 -1
  52. package/cjs/components/space/style/dnb-space.css +4 -4
  53. package/cjs/components/space/style/dnb-space.min.css +1 -1
  54. package/cjs/components/space/style/dnb-space.scss +2 -12
  55. package/cjs/components/space/style/space-mixins.scss +21 -0
  56. package/cjs/components/tabs/Tabs.d.ts +1 -1
  57. package/cjs/components/tabs/Tabs.js +4 -12
  58. package/cjs/components/tabs/Tabs.js.map +1 -1
  59. package/cjs/components/toggle-button/ToggleButton.d.ts +9 -5
  60. package/cjs/components/toggle-button/ToggleButton.js +2 -0
  61. package/cjs/components/toggle-button/ToggleButton.js.map +1 -1
  62. package/cjs/components/toggle-button/ToggleButtonDocs.d.ts +2 -0
  63. package/cjs/components/toggle-button/ToggleButtonDocs.js +87 -0
  64. package/cjs/components/toggle-button/ToggleButtonDocs.js.map +1 -0
  65. package/cjs/components/toggle-button/ToggleButtonGroup.d.ts +21 -6
  66. package/cjs/components/toggle-button/ToggleButtonGroupDocs.d.ts +2 -0
  67. package/cjs/components/toggle-button/ToggleButtonGroupDocs.js +90 -0
  68. package/cjs/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -0
  69. package/cjs/components/toggle-button/style/dnb-toggle-button.css +3 -3
  70. package/cjs/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  71. package/cjs/elements/blockquote/style/blockquote-mixins.scss +5 -3
  72. package/cjs/elements/code/style/code-mixins.scss +2 -3
  73. package/cjs/elements/hr/style/hr-mixins.scss +2 -3
  74. package/cjs/elements/img/style/img-mixins.scss +3 -3
  75. package/cjs/elements/lists/style/lists-mixins.scss +3 -6
  76. package/cjs/elements/typography/style/typography-mixins.scss +2 -3
  77. package/cjs/extensions/forms/DataContext/Context.d.ts +15 -4
  78. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  79. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +1 -1
  80. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  81. package/cjs/extensions/forms/DataContext/Provider/Provider.js +28 -17
  82. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  83. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +3 -3
  84. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  85. package/cjs/extensions/forms/Field/Date/Date.js +5 -4
  86. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  87. package/cjs/extensions/forms/Field/Expiry/Expiry.js +4 -3
  88. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  89. package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js +7 -7
  90. package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
  91. package/cjs/extensions/forms/Field/Number/Number.js +2 -2
  92. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  93. package/cjs/extensions/forms/Field/Option/Option.d.ts +2 -1
  94. package/cjs/extensions/forms/Field/Option/Option.js +2 -14
  95. package/cjs/extensions/forms/Field/Option/Option.js.map +1 -1
  96. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +10 -5
  97. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  98. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +4 -3
  99. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +12 -4
  100. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  101. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +8 -1
  102. package/cjs/extensions/forms/Field/Selection/Selection.js +19 -12
  103. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  104. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js +5 -0
  105. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  106. package/cjs/extensions/forms/Field/Slider/Slider.js +4 -3
  107. package/cjs/extensions/forms/Field/Slider/Slider.js.map +1 -1
  108. package/cjs/extensions/forms/Field/String/String.js +2 -2
  109. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  110. package/cjs/extensions/forms/Field/Toggle/Toggle.js +14 -4
  111. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  112. package/cjs/extensions/forms/Field/Upload/Upload.js +21 -21
  113. package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
  114. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +14 -38
  115. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  116. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -3
  117. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  118. package/cjs/extensions/forms/Form/Isolation/Isolation.js +17 -3
  119. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  120. package/cjs/extensions/forms/Form/MainHeading/MainHeadingDocs.d.ts +2 -0
  121. package/cjs/extensions/forms/Form/MainHeading/MainHeadingDocs.js +27 -0
  122. package/cjs/extensions/forms/Form/MainHeading/MainHeadingDocs.js.map +1 -0
  123. package/cjs/extensions/forms/Form/Section/EditContainer/CancelButton.js +7 -18
  124. package/cjs/extensions/forms/Form/Section/EditContainer/CancelButton.js.map +1 -1
  125. package/cjs/extensions/forms/Form/SubHeading/SubHeadingDocs.d.ts +2 -0
  126. package/cjs/extensions/forms/Form/SubHeading/SubHeadingDocs.js +27 -0
  127. package/cjs/extensions/forms/Form/SubHeading/SubHeadingDocs.js.map +1 -0
  128. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +11 -1
  129. package/cjs/extensions/forms/Form/Visibility/Visibility.js +18 -10
  130. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  131. package/cjs/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -0
  132. package/cjs/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
  133. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  134. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  135. package/cjs/extensions/forms/Form/Visibility/useVisibility.js +18 -9
  136. package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  137. package/cjs/extensions/forms/Iterate/Array/Array.js +49 -29
  138. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  139. package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js +14 -4
  140. package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  141. package/cjs/extensions/forms/Iterate/Array/types.d.ts +8 -3
  142. package/cjs/extensions/forms/Iterate/Array/types.js.map +1 -1
  143. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -15
  144. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  145. package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.js +10 -1
  146. package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
  147. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -3
  148. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  149. package/cjs/extensions/forms/Iterate/ItemNo/useIItemNo.d.ts +5 -0
  150. package/cjs/extensions/forms/Iterate/ItemNo/useIItemNo.js +50 -0
  151. package/cjs/extensions/forms/Iterate/ItemNo/useIItemNo.js.map +1 -0
  152. package/cjs/extensions/forms/Iterate/IterateItemContext.d.ts +2 -0
  153. package/cjs/extensions/forms/Iterate/IterateItemContext.js.map +1 -1
  154. package/cjs/extensions/forms/Iterate/PushButton/PushButton.d.ts +1 -0
  155. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js +16 -14
  156. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  157. package/cjs/extensions/forms/Iterate/PushButton/PushButtonDocs.js +5 -0
  158. package/cjs/extensions/forms/Iterate/PushButton/PushButtonDocs.js.map +1 -1
  159. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +17 -1
  160. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +30 -15
  161. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  162. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerContext.d.ts +1 -0
  163. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerContext.js.map +1 -1
  164. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +10 -0
  165. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  166. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js +7 -6
  167. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  168. package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -0
  169. package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
  170. package/cjs/extensions/forms/Iterate/Visibility/Visibility.d.ts +7 -0
  171. package/cjs/extensions/forms/Iterate/Visibility/Visibility.js +31 -0
  172. package/cjs/extensions/forms/Iterate/Visibility/Visibility.js.map +1 -0
  173. package/cjs/extensions/forms/Iterate/Visibility/index.d.ts +2 -0
  174. package/cjs/extensions/forms/Iterate/Visibility/index.js +27 -0
  175. package/cjs/extensions/forms/Iterate/Visibility/index.js.map +1 -0
  176. package/cjs/extensions/forms/Iterate/hooks/index.d.ts +1 -0
  177. package/cjs/extensions/forms/Iterate/hooks/index.js +7 -0
  178. package/cjs/extensions/forms/Iterate/hooks/index.js.map +1 -1
  179. package/cjs/extensions/forms/Iterate/hooks/useArrayLimit.d.ts +1 -3
  180. package/cjs/extensions/forms/Iterate/hooks/useArrayLimit.js +1 -4
  181. package/cjs/extensions/forms/Iterate/hooks/useArrayLimit.js.map +1 -1
  182. package/cjs/extensions/forms/Iterate/hooks/useItemPath.d.ts +4 -0
  183. package/cjs/extensions/forms/Iterate/hooks/useItemPath.js +22 -0
  184. package/cjs/extensions/forms/Iterate/hooks/useItemPath.js.map +1 -0
  185. package/cjs/extensions/forms/Iterate/hooks/useSwitchContainerMode.d.ts +1 -3
  186. package/cjs/extensions/forms/Iterate/hooks/useSwitchContainerMode.js +1 -4
  187. package/cjs/extensions/forms/Iterate/hooks/useSwitchContainerMode.js.map +1 -1
  188. package/cjs/extensions/forms/Iterate/index.d.ts +1 -0
  189. package/cjs/extensions/forms/Iterate/index.js +7 -0
  190. package/cjs/extensions/forms/Iterate/index.js.map +1 -1
  191. package/cjs/extensions/forms/Tools/GenerateSchema.js +15 -9
  192. package/cjs/extensions/forms/Tools/GenerateSchema.js.map +1 -1
  193. package/cjs/extensions/forms/Tools/ListAllProps.js +11 -7
  194. package/cjs/extensions/forms/Tools/ListAllProps.js.map +1 -1
  195. package/cjs/extensions/forms/Tools/Log.js +2 -1
  196. package/cjs/extensions/forms/Tools/Log.js.map +1 -1
  197. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.js +4 -4
  198. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
  199. package/cjs/extensions/forms/Value/Selection/Selection.js +5 -5
  200. package/cjs/extensions/forms/Value/Selection/Selection.js.map +1 -1
  201. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +25 -7
  202. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  203. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +6 -1
  204. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  205. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.scss +22 -10
  206. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +6 -3
  207. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  208. package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +2 -1
  209. package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +4 -3
  210. package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -1
  211. package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js +9 -9
  212. package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
  213. package/cjs/extensions/forms/hooks/useDataValue.d.ts +2 -2
  214. package/cjs/extensions/forms/hooks/useDataValue.js +5 -9
  215. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  216. package/cjs/extensions/forms/hooks/useExternalValue.js.map +1 -1
  217. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +8 -2
  218. package/cjs/extensions/forms/hooks/useFieldProps.js +164 -76
  219. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  220. package/cjs/extensions/forms/hooks/usePath.js.map +1 -1
  221. package/cjs/extensions/forms/hooks/useValueProps.js +5 -5
  222. package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
  223. package/cjs/extensions/forms/style/dnb-forms.css +9 -4
  224. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  225. package/cjs/extensions/forms/types.d.ts +33 -6
  226. package/cjs/extensions/forms/types.js.map +1 -1
  227. package/cjs/extensions/forms/utils/json-pointer/json-pointer.js +8 -0
  228. package/cjs/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
  229. package/cjs/extensions/payment-card/PaymentCard.js +3 -12
  230. package/cjs/extensions/payment-card/PaymentCard.js.map +1 -1
  231. package/cjs/fragments/drawer-list/DrawerList.d.ts +4 -2
  232. package/cjs/fragments/drawer-list/DrawerList.js +33 -47
  233. package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
  234. package/cjs/fragments/drawer-list/DrawerListDocs.js +3 -3
  235. package/cjs/fragments/drawer-list/DrawerListDocs.js.map +1 -1
  236. package/cjs/fragments/drawer-list/style/dnb-drawer-list.scss +1 -1
  237. package/cjs/shared/AlignmentHelper.js +0 -4
  238. package/cjs/shared/AlignmentHelper.js.map +1 -1
  239. package/cjs/shared/Eufemia.d.ts +1 -1
  240. package/cjs/shared/Eufemia.js +2 -2
  241. package/cjs/shared/Eufemia.js.map +1 -1
  242. package/cjs/shared/component-helper.js +2 -1
  243. package/cjs/shared/component-helper.js.map +1 -1
  244. package/cjs/style/core/scopes.scss +1 -1
  245. package/cjs/style/core/utilities.scss +3 -12
  246. package/cjs/style/dnb-ui-basis.css +1 -1
  247. package/cjs/style/dnb-ui-basis.min.css +1 -1
  248. package/cjs/style/dnb-ui-body.css +1 -1
  249. package/cjs/style/dnb-ui-body.min.css +1 -1
  250. package/cjs/style/dnb-ui-components.css +90 -76
  251. package/cjs/style/dnb-ui-components.min.css +4 -4
  252. package/cjs/style/dnb-ui-core.css +1 -1
  253. package/cjs/style/dnb-ui-core.min.css +1 -1
  254. package/cjs/style/dnb-ui-elements.css +151 -31
  255. package/cjs/style/dnb-ui-elements.min.css +1 -1
  256. package/cjs/style/dnb-ui-extensions.css +9 -4
  257. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  258. package/cjs/style/dnb-ui-forms.css +9 -4
  259. package/cjs/style/dnb-ui-forms.min.css +1 -1
  260. package/cjs/style/dnb-ui-fragments.css +1 -1
  261. package/cjs/style/dnb-ui-fragments.min.css +1 -1
  262. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +151 -31
  263. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  264. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +99 -80
  265. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  266. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +151 -31
  267. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  268. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +9 -4
  269. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  270. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +9 -4
  271. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  272. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +151 -31
  273. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  274. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +99 -80
  275. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  276. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +151 -31
  277. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  278. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +9 -4
  279. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  280. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +9 -4
  281. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  282. package/cjs/style/themes/theme-ui/ui-theme-basis.css +151 -31
  283. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  284. package/cjs/style/themes/theme-ui/ui-theme-components.css +99 -80
  285. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  286. package/cjs/style/themes/theme-ui/ui-theme-elements.css +151 -31
  287. package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  288. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +9 -4
  289. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  290. package/cjs/style/themes/theme-ui/ui-theme-forms.css +9 -4
  291. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  292. package/cjs/style/themes/theme-ui/ui-theme-tags.css +100 -19
  293. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  294. package/components/accordion/Accordion.d.ts +1 -125
  295. package/components/accordion/Accordion.js +0 -1
  296. package/components/accordion/Accordion.js.map +1 -1
  297. package/components/autocomplete/Autocomplete.js +3 -2
  298. package/components/autocomplete/Autocomplete.js.map +1 -1
  299. package/components/button/Button.d.ts +3 -6
  300. package/components/button/Button.js +8 -18
  301. package/components/button/Button.js.map +1 -1
  302. package/components/button/ButtonDocs.d.ts +2 -0
  303. package/components/button/ButtonDocs.js +128 -0
  304. package/components/button/ButtonDocs.js.map +1 -0
  305. package/components/date-picker/DatePicker.d.ts +4 -0
  306. package/components/date-picker/DatePicker.js +25 -11
  307. package/components/date-picker/DatePicker.js.map +1 -1
  308. package/components/date-picker/DatePickerDocs.js +5 -0
  309. package/components/date-picker/DatePickerDocs.js.map +1 -1
  310. package/components/date-picker/DatePickerPortal.d.ts +9 -0
  311. package/components/date-picker/DatePickerPortal.js +53 -0
  312. package/components/date-picker/DatePickerPortal.js.map +1 -0
  313. package/components/date-picker/style/dnb-date-picker.css +64 -55
  314. package/components/date-picker/style/dnb-date-picker.min.css +1 -1
  315. package/components/date-picker/style/dnb-date-picker.scss +90 -75
  316. package/components/form-row/FormRow.js +2 -7
  317. package/components/form-row/FormRow.js.map +1 -1
  318. package/components/form-row/style/dnb-form-row.css +3 -3
  319. package/components/form-row/style/dnb-form-row.min.css +1 -1
  320. package/components/form-status/FormStatus.js +17 -19
  321. package/components/form-status/FormStatus.js.map +1 -1
  322. package/components/height-animation/HeightAnimationInstance.d.ts +1 -0
  323. package/components/height-animation/HeightAnimationInstance.js +26 -1
  324. package/components/height-animation/HeightAnimationInstance.js.map +1 -1
  325. package/components/input-masked/InputMasked.d.ts +1 -1
  326. package/components/input-masked/InputMasked.js +2 -2
  327. package/components/input-masked/InputMasked.js.map +1 -1
  328. package/components/input-masked/InputMaskedDocs.js +1 -1
  329. package/components/input-masked/InputMaskedDocs.js.map +1 -1
  330. package/components/input-masked/InputMaskedHooks.js +1 -1
  331. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  332. package/components/input-masked/InputMaskedUtils.js +1 -1
  333. package/components/input-masked/InputMaskedUtils.js.map +1 -1
  334. package/components/input-masked/style/dnb-input-masked.css +3 -3
  335. package/components/input-masked/style/dnb-input-masked.min.css +1 -1
  336. package/components/pagination/Pagination.d.ts +12 -0
  337. package/components/pagination/Pagination.js +7 -3
  338. package/components/pagination/Pagination.js.map +1 -1
  339. package/components/pagination/PaginationBar.d.ts +2 -1
  340. package/components/pagination/PaginationBar.js +10 -3
  341. package/components/pagination/PaginationBar.js.map +1 -1
  342. package/components/radio/style/dnb-radio.css +3 -3
  343. package/components/radio/style/dnb-radio.min.css +1 -1
  344. package/components/space/style/dnb-space.css +4 -4
  345. package/components/space/style/dnb-space.min.css +1 -1
  346. package/components/space/style/dnb-space.scss +2 -12
  347. package/components/space/style/space-mixins.scss +21 -0
  348. package/components/tabs/Tabs.d.ts +1 -1
  349. package/components/tabs/Tabs.js +4 -12
  350. package/components/tabs/Tabs.js.map +1 -1
  351. package/components/toggle-button/ToggleButton.d.ts +9 -5
  352. package/components/toggle-button/ToggleButton.js +2 -0
  353. package/components/toggle-button/ToggleButton.js.map +1 -1
  354. package/components/toggle-button/ToggleButtonDocs.d.ts +2 -0
  355. package/components/toggle-button/ToggleButtonDocs.js +80 -0
  356. package/components/toggle-button/ToggleButtonDocs.js.map +1 -0
  357. package/components/toggle-button/ToggleButtonGroup.d.ts +21 -6
  358. package/components/toggle-button/ToggleButtonGroupDocs.d.ts +2 -0
  359. package/components/toggle-button/ToggleButtonGroupDocs.js +83 -0
  360. package/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -0
  361. package/components/toggle-button/style/dnb-toggle-button.css +3 -3
  362. package/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  363. package/elements/blockquote/style/blockquote-mixins.scss +5 -3
  364. package/elements/code/style/code-mixins.scss +2 -3
  365. package/elements/hr/style/hr-mixins.scss +2 -3
  366. package/elements/img/style/img-mixins.scss +3 -3
  367. package/elements/lists/style/lists-mixins.scss +3 -6
  368. package/elements/typography/style/typography-mixins.scss +2 -3
  369. package/es/components/accordion/Accordion.d.ts +1 -125
  370. package/es/components/accordion/Accordion.js +0 -1
  371. package/es/components/accordion/Accordion.js.map +1 -1
  372. package/es/components/autocomplete/Autocomplete.js +3 -2
  373. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  374. package/es/components/button/Button.d.ts +3 -6
  375. package/es/components/button/Button.js +8 -18
  376. package/es/components/button/Button.js.map +1 -1
  377. package/es/components/button/ButtonDocs.d.ts +2 -0
  378. package/es/components/button/ButtonDocs.js +128 -0
  379. package/es/components/button/ButtonDocs.js.map +1 -0
  380. package/es/components/date-picker/DatePicker.d.ts +4 -0
  381. package/es/components/date-picker/DatePicker.js +25 -11
  382. package/es/components/date-picker/DatePicker.js.map +1 -1
  383. package/es/components/date-picker/DatePickerDocs.js +5 -0
  384. package/es/components/date-picker/DatePickerDocs.js.map +1 -1
  385. package/es/components/date-picker/DatePickerPortal.d.ts +9 -0
  386. package/es/components/date-picker/DatePickerPortal.js +52 -0
  387. package/es/components/date-picker/DatePickerPortal.js.map +1 -0
  388. package/es/components/date-picker/style/dnb-date-picker.css +64 -55
  389. package/es/components/date-picker/style/dnb-date-picker.min.css +1 -1
  390. package/es/components/date-picker/style/dnb-date-picker.scss +90 -75
  391. package/es/components/form-row/FormRow.js +2 -7
  392. package/es/components/form-row/FormRow.js.map +1 -1
  393. package/es/components/form-row/style/dnb-form-row.css +3 -3
  394. package/es/components/form-row/style/dnb-form-row.min.css +1 -1
  395. package/es/components/form-status/FormStatus.js +17 -19
  396. package/es/components/form-status/FormStatus.js.map +1 -1
  397. package/es/components/height-animation/HeightAnimationInstance.d.ts +1 -0
  398. package/es/components/height-animation/HeightAnimationInstance.js +26 -1
  399. package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
  400. package/es/components/input-masked/InputMasked.d.ts +1 -1
  401. package/es/components/input-masked/InputMasked.js +2 -2
  402. package/es/components/input-masked/InputMasked.js.map +1 -1
  403. package/es/components/input-masked/InputMaskedDocs.js +1 -1
  404. package/es/components/input-masked/InputMaskedDocs.js.map +1 -1
  405. package/es/components/input-masked/InputMaskedHooks.js +1 -1
  406. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  407. package/es/components/input-masked/InputMaskedUtils.js +1 -1
  408. package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
  409. package/es/components/input-masked/style/dnb-input-masked.css +3 -3
  410. package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
  411. package/es/components/pagination/Pagination.d.ts +12 -0
  412. package/es/components/pagination/Pagination.js +7 -3
  413. package/es/components/pagination/Pagination.js.map +1 -1
  414. package/es/components/pagination/PaginationBar.d.ts +2 -1
  415. package/es/components/pagination/PaginationBar.js +10 -3
  416. package/es/components/pagination/PaginationBar.js.map +1 -1
  417. package/es/components/radio/style/dnb-radio.css +3 -3
  418. package/es/components/radio/style/dnb-radio.min.css +1 -1
  419. package/es/components/space/style/dnb-space.css +4 -4
  420. package/es/components/space/style/dnb-space.min.css +1 -1
  421. package/es/components/space/style/dnb-space.scss +2 -12
  422. package/es/components/space/style/space-mixins.scss +21 -0
  423. package/es/components/tabs/Tabs.d.ts +1 -1
  424. package/es/components/tabs/Tabs.js +4 -12
  425. package/es/components/tabs/Tabs.js.map +1 -1
  426. package/es/components/toggle-button/ToggleButton.d.ts +9 -5
  427. package/es/components/toggle-button/ToggleButton.js +2 -0
  428. package/es/components/toggle-button/ToggleButton.js.map +1 -1
  429. package/es/components/toggle-button/ToggleButtonDocs.d.ts +2 -0
  430. package/es/components/toggle-button/ToggleButtonDocs.js +80 -0
  431. package/es/components/toggle-button/ToggleButtonDocs.js.map +1 -0
  432. package/es/components/toggle-button/ToggleButtonGroup.d.ts +21 -6
  433. package/es/components/toggle-button/ToggleButtonGroupDocs.d.ts +2 -0
  434. package/es/components/toggle-button/ToggleButtonGroupDocs.js +83 -0
  435. package/es/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -0
  436. package/es/components/toggle-button/style/dnb-toggle-button.css +3 -3
  437. package/es/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  438. package/es/elements/blockquote/style/blockquote-mixins.scss +5 -3
  439. package/es/elements/code/style/code-mixins.scss +2 -3
  440. package/es/elements/hr/style/hr-mixins.scss +2 -3
  441. package/es/elements/img/style/img-mixins.scss +3 -3
  442. package/es/elements/lists/style/lists-mixins.scss +3 -6
  443. package/es/elements/typography/style/typography-mixins.scss +2 -3
  444. package/es/extensions/forms/DataContext/Context.d.ts +15 -4
  445. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  446. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +1 -1
  447. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  448. package/es/extensions/forms/DataContext/Provider/Provider.js +27 -16
  449. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  450. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +3 -3
  451. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  452. package/es/extensions/forms/Field/Date/Date.js +5 -4
  453. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  454. package/es/extensions/forms/Field/Expiry/Expiry.js +4 -3
  455. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  456. package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js +7 -7
  457. package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
  458. package/es/extensions/forms/Field/Number/Number.js +2 -2
  459. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  460. package/es/extensions/forms/Field/Option/Option.d.ts +2 -1
  461. package/es/extensions/forms/Field/Option/Option.js +2 -12
  462. package/es/extensions/forms/Field/Option/Option.js.map +1 -1
  463. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +10 -5
  464. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  465. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +4 -3
  466. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +12 -4
  467. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  468. package/es/extensions/forms/Field/Selection/Selection.d.ts +8 -1
  469. package/es/extensions/forms/Field/Selection/Selection.js +22 -14
  470. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  471. package/es/extensions/forms/Field/Selection/SelectionDocs.js +5 -0
  472. package/es/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  473. package/es/extensions/forms/Field/Slider/Slider.js +4 -3
  474. package/es/extensions/forms/Field/Slider/Slider.js.map +1 -1
  475. package/es/extensions/forms/Field/String/String.js +2 -2
  476. package/es/extensions/forms/Field/String/String.js.map +1 -1
  477. package/es/extensions/forms/Field/Toggle/Toggle.js +14 -4
  478. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  479. package/es/extensions/forms/Field/Upload/Upload.js +21 -20
  480. package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
  481. package/es/extensions/forms/FieldBlock/FieldBlock.js +14 -38
  482. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  483. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -3
  484. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  485. package/es/extensions/forms/Form/Isolation/Isolation.js +17 -3
  486. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  487. package/es/extensions/forms/Form/MainHeading/MainHeadingDocs.d.ts +2 -0
  488. package/es/extensions/forms/Form/MainHeading/MainHeadingDocs.js +20 -0
  489. package/es/extensions/forms/Form/MainHeading/MainHeadingDocs.js.map +1 -0
  490. package/es/extensions/forms/Form/Section/EditContainer/CancelButton.js +7 -18
  491. package/es/extensions/forms/Form/Section/EditContainer/CancelButton.js.map +1 -1
  492. package/es/extensions/forms/Form/SubHeading/SubHeadingDocs.d.ts +2 -0
  493. package/es/extensions/forms/Form/SubHeading/SubHeadingDocs.js +20 -0
  494. package/es/extensions/forms/Form/SubHeading/SubHeadingDocs.js.map +1 -0
  495. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +11 -1
  496. package/es/extensions/forms/Form/Visibility/Visibility.js +20 -11
  497. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  498. package/es/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -0
  499. package/es/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
  500. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  501. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  502. package/es/extensions/forms/Form/Visibility/useVisibility.js +18 -9
  503. package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  504. package/es/extensions/forms/Iterate/Array/Array.js +47 -28
  505. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  506. package/es/extensions/forms/Iterate/Array/ArrayDocs.js +14 -4
  507. package/es/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  508. package/es/extensions/forms/Iterate/Array/types.d.ts +8 -3
  509. package/es/extensions/forms/Iterate/Array/types.js.map +1 -1
  510. package/es/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -15
  511. package/es/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  512. package/es/extensions/forms/Iterate/EditContainer/DoneButton.js +9 -1
  513. package/es/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
  514. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -3
  515. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  516. package/es/extensions/forms/Iterate/ItemNo/useIItemNo.d.ts +5 -0
  517. package/es/extensions/forms/Iterate/ItemNo/useIItemNo.js +41 -0
  518. package/es/extensions/forms/Iterate/ItemNo/useIItemNo.js.map +1 -0
  519. package/es/extensions/forms/Iterate/IterateItemContext.d.ts +2 -0
  520. package/es/extensions/forms/Iterate/IterateItemContext.js.map +1 -1
  521. package/es/extensions/forms/Iterate/PushButton/PushButton.d.ts +1 -0
  522. package/es/extensions/forms/Iterate/PushButton/PushButton.js +17 -15
  523. package/es/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  524. package/es/extensions/forms/Iterate/PushButton/PushButtonDocs.js +5 -0
  525. package/es/extensions/forms/Iterate/PushButton/PushButtonDocs.js.map +1 -1
  526. package/es/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +17 -1
  527. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +32 -17
  528. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  529. package/es/extensions/forms/Iterate/PushContainer/PushContainerContext.d.ts +1 -0
  530. package/es/extensions/forms/Iterate/PushContainer/PushContainerContext.js.map +1 -1
  531. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +10 -0
  532. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  533. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js +7 -6
  534. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  535. package/es/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -0
  536. package/es/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
  537. package/es/extensions/forms/Iterate/Visibility/Visibility.d.ts +7 -0
  538. package/es/extensions/forms/Iterate/Visibility/Visibility.js +11 -0
  539. package/es/extensions/forms/Iterate/Visibility/Visibility.js.map +1 -0
  540. package/es/extensions/forms/Iterate/Visibility/index.d.ts +2 -0
  541. package/es/extensions/forms/Iterate/Visibility/index.js +3 -0
  542. package/es/extensions/forms/Iterate/Visibility/index.js.map +1 -0
  543. package/es/extensions/forms/Iterate/hooks/index.d.ts +1 -0
  544. package/es/extensions/forms/Iterate/hooks/index.js +1 -0
  545. package/es/extensions/forms/Iterate/hooks/index.js.map +1 -1
  546. package/es/extensions/forms/Iterate/hooks/useArrayLimit.d.ts +1 -3
  547. package/es/extensions/forms/Iterate/hooks/useArrayLimit.js +1 -3
  548. package/es/extensions/forms/Iterate/hooks/useArrayLimit.js.map +1 -1
  549. package/es/extensions/forms/Iterate/hooks/useItemPath.d.ts +4 -0
  550. package/es/extensions/forms/Iterate/hooks/useItemPath.js +16 -0
  551. package/es/extensions/forms/Iterate/hooks/useItemPath.js.map +1 -0
  552. package/es/extensions/forms/Iterate/hooks/useSwitchContainerMode.d.ts +1 -3
  553. package/es/extensions/forms/Iterate/hooks/useSwitchContainerMode.js +1 -3
  554. package/es/extensions/forms/Iterate/hooks/useSwitchContainerMode.js.map +1 -1
  555. package/es/extensions/forms/Iterate/index.d.ts +1 -0
  556. package/es/extensions/forms/Iterate/index.js +1 -0
  557. package/es/extensions/forms/Iterate/index.js.map +1 -1
  558. package/es/extensions/forms/Tools/GenerateSchema.js +12 -6
  559. package/es/extensions/forms/Tools/GenerateSchema.js.map +1 -1
  560. package/es/extensions/forms/Tools/ListAllProps.js +9 -5
  561. package/es/extensions/forms/Tools/ListAllProps.js.map +1 -1
  562. package/es/extensions/forms/Tools/Log.js +2 -1
  563. package/es/extensions/forms/Tools/Log.js.map +1 -1
  564. package/es/extensions/forms/Value/ArraySelection/ArraySelection.js +4 -4
  565. package/es/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
  566. package/es/extensions/forms/Value/Selection/Selection.js +5 -5
  567. package/es/extensions/forms/Value/Selection/Selection.js.map +1 -1
  568. package/es/extensions/forms/ValueBlock/ValueBlock.js +26 -9
  569. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  570. package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +6 -1
  571. package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  572. package/es/extensions/forms/ValueBlock/style/dnb-value-block.scss +22 -10
  573. package/es/extensions/forms/Wizard/Container/WizardContainer.js +6 -3
  574. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  575. package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +2 -1
  576. package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +4 -3
  577. package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -1
  578. package/es/extensions/forms/hooks/DataValueWritePropsDocs.js +9 -9
  579. package/es/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
  580. package/es/extensions/forms/hooks/useDataValue.d.ts +2 -2
  581. package/es/extensions/forms/hooks/useDataValue.js +4 -8
  582. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  583. package/es/extensions/forms/hooks/useExternalValue.js +2 -2
  584. package/es/extensions/forms/hooks/useExternalValue.js.map +1 -1
  585. package/es/extensions/forms/hooks/useFieldProps.d.ts +8 -2
  586. package/es/extensions/forms/hooks/useFieldProps.js +163 -76
  587. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  588. package/es/extensions/forms/hooks/usePath.js +2 -2
  589. package/es/extensions/forms/hooks/usePath.js.map +1 -1
  590. package/es/extensions/forms/hooks/useValueProps.js +5 -5
  591. package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
  592. package/es/extensions/forms/style/dnb-forms.css +9 -4
  593. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  594. package/es/extensions/forms/types.d.ts +33 -6
  595. package/es/extensions/forms/types.js.map +1 -1
  596. package/es/extensions/forms/utils/json-pointer/json-pointer.js +6 -0
  597. package/es/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
  598. package/es/extensions/payment-card/PaymentCard.js +3 -12
  599. package/es/extensions/payment-card/PaymentCard.js.map +1 -1
  600. package/es/fragments/drawer-list/DrawerList.d.ts +4 -2
  601. package/es/fragments/drawer-list/DrawerList.js +33 -47
  602. package/es/fragments/drawer-list/DrawerList.js.map +1 -1
  603. package/es/fragments/drawer-list/DrawerListDocs.js +3 -3
  604. package/es/fragments/drawer-list/DrawerListDocs.js.map +1 -1
  605. package/es/fragments/drawer-list/style/dnb-drawer-list.scss +1 -1
  606. package/es/shared/AlignmentHelper.js +0 -4
  607. package/es/shared/AlignmentHelper.js.map +1 -1
  608. package/es/shared/Eufemia.d.ts +1 -1
  609. package/es/shared/Eufemia.js +2 -2
  610. package/es/shared/Eufemia.js.map +1 -1
  611. package/es/shared/component-helper.js +2 -1
  612. package/es/shared/component-helper.js.map +1 -1
  613. package/es/style/core/scopes.scss +1 -1
  614. package/es/style/core/utilities.scss +3 -12
  615. package/es/style/dnb-ui-basis.css +1 -1
  616. package/es/style/dnb-ui-basis.min.css +1 -1
  617. package/es/style/dnb-ui-body.css +1 -1
  618. package/es/style/dnb-ui-body.min.css +1 -1
  619. package/es/style/dnb-ui-components.css +90 -76
  620. package/es/style/dnb-ui-components.min.css +4 -4
  621. package/es/style/dnb-ui-core.css +1 -1
  622. package/es/style/dnb-ui-core.min.css +1 -1
  623. package/es/style/dnb-ui-elements.css +151 -31
  624. package/es/style/dnb-ui-elements.min.css +1 -1
  625. package/es/style/dnb-ui-extensions.css +9 -4
  626. package/es/style/dnb-ui-extensions.min.css +1 -1
  627. package/es/style/dnb-ui-forms.css +9 -4
  628. package/es/style/dnb-ui-forms.min.css +1 -1
  629. package/es/style/dnb-ui-fragments.css +1 -1
  630. package/es/style/dnb-ui-fragments.min.css +1 -1
  631. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +151 -31
  632. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  633. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +99 -80
  634. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  635. package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +151 -31
  636. package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  637. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +9 -4
  638. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  639. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +9 -4
  640. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  641. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +151 -31
  642. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  643. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +99 -80
  644. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  645. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +151 -31
  646. package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  647. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +9 -4
  648. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  649. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +9 -4
  650. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  651. package/es/style/themes/theme-ui/ui-theme-basis.css +151 -31
  652. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  653. package/es/style/themes/theme-ui/ui-theme-components.css +99 -80
  654. package/es/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  655. package/es/style/themes/theme-ui/ui-theme-elements.css +151 -31
  656. package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  657. package/es/style/themes/theme-ui/ui-theme-extensions.css +9 -4
  658. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  659. package/es/style/themes/theme-ui/ui-theme-forms.css +9 -4
  660. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  661. package/es/style/themes/theme-ui/ui-theme-tags.css +100 -19
  662. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  663. package/esm/dnb-ui-basis.min.mjs +1 -1
  664. package/esm/dnb-ui-components.min.mjs +1 -1
  665. package/esm/dnb-ui-elements.min.mjs +1 -1
  666. package/esm/dnb-ui-extensions.min.mjs +5 -5
  667. package/esm/dnb-ui-lib.min.mjs +1 -1
  668. package/extensions/forms/DataContext/Context.d.ts +15 -4
  669. package/extensions/forms/DataContext/Context.js.map +1 -1
  670. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +1 -1
  671. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  672. package/extensions/forms/DataContext/Provider/Provider.js +28 -17
  673. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  674. package/extensions/forms/Field/ArraySelection/ArraySelection.js +3 -3
  675. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  676. package/extensions/forms/Field/Date/Date.js +5 -4
  677. package/extensions/forms/Field/Date/Date.js.map +1 -1
  678. package/extensions/forms/Field/Expiry/Expiry.js +4 -3
  679. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  680. package/extensions/forms/Field/Indeterminate/useDependencePaths.js +7 -7
  681. package/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
  682. package/extensions/forms/Field/Number/Number.js +2 -2
  683. package/extensions/forms/Field/Number/Number.js.map +1 -1
  684. package/extensions/forms/Field/Option/Option.d.ts +2 -1
  685. package/extensions/forms/Field/Option/Option.js +2 -13
  686. package/extensions/forms/Field/Option/Option.js.map +1 -1
  687. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +10 -5
  688. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  689. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +4 -3
  690. package/extensions/forms/Field/SelectCountry/SelectCountry.js +12 -4
  691. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  692. package/extensions/forms/Field/Selection/Selection.d.ts +8 -1
  693. package/extensions/forms/Field/Selection/Selection.js +19 -12
  694. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  695. package/extensions/forms/Field/Selection/SelectionDocs.js +5 -0
  696. package/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  697. package/extensions/forms/Field/Slider/Slider.js +4 -3
  698. package/extensions/forms/Field/Slider/Slider.js.map +1 -1
  699. package/extensions/forms/Field/String/String.js +2 -2
  700. package/extensions/forms/Field/String/String.js.map +1 -1
  701. package/extensions/forms/Field/Toggle/Toggle.js +14 -4
  702. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  703. package/extensions/forms/Field/Upload/Upload.js +21 -21
  704. package/extensions/forms/Field/Upload/Upload.js.map +1 -1
  705. package/extensions/forms/FieldBlock/FieldBlock.js +14 -38
  706. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  707. package/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -3
  708. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  709. package/extensions/forms/Form/Isolation/Isolation.js +17 -3
  710. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  711. package/extensions/forms/Form/MainHeading/MainHeadingDocs.d.ts +2 -0
  712. package/extensions/forms/Form/MainHeading/MainHeadingDocs.js +20 -0
  713. package/extensions/forms/Form/MainHeading/MainHeadingDocs.js.map +1 -0
  714. package/extensions/forms/Form/Section/EditContainer/CancelButton.js +7 -18
  715. package/extensions/forms/Form/Section/EditContainer/CancelButton.js.map +1 -1
  716. package/extensions/forms/Form/SubHeading/SubHeadingDocs.d.ts +2 -0
  717. package/extensions/forms/Form/SubHeading/SubHeadingDocs.js +20 -0
  718. package/extensions/forms/Form/SubHeading/SubHeadingDocs.js.map +1 -0
  719. package/extensions/forms/Form/Visibility/Visibility.d.ts +11 -1
  720. package/extensions/forms/Form/Visibility/Visibility.js +20 -11
  721. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  722. package/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -0
  723. package/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
  724. package/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  725. package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  726. package/extensions/forms/Form/Visibility/useVisibility.js +18 -9
  727. package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  728. package/extensions/forms/Iterate/Array/Array.js +50 -30
  729. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  730. package/extensions/forms/Iterate/Array/ArrayDocs.js +14 -4
  731. package/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  732. package/extensions/forms/Iterate/Array/types.d.ts +8 -3
  733. package/extensions/forms/Iterate/Array/types.js.map +1 -1
  734. package/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -15
  735. package/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  736. package/extensions/forms/Iterate/EditContainer/DoneButton.js +9 -1
  737. package/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
  738. package/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -3
  739. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  740. package/extensions/forms/Iterate/ItemNo/useIItemNo.d.ts +5 -0
  741. package/extensions/forms/Iterate/ItemNo/useIItemNo.js +42 -0
  742. package/extensions/forms/Iterate/ItemNo/useIItemNo.js.map +1 -0
  743. package/extensions/forms/Iterate/IterateItemContext.d.ts +2 -0
  744. package/extensions/forms/Iterate/IterateItemContext.js.map +1 -1
  745. package/extensions/forms/Iterate/PushButton/PushButton.d.ts +1 -0
  746. package/extensions/forms/Iterate/PushButton/PushButton.js +17 -15
  747. package/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  748. package/extensions/forms/Iterate/PushButton/PushButtonDocs.js +5 -0
  749. package/extensions/forms/Iterate/PushButton/PushButtonDocs.js.map +1 -1
  750. package/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +17 -1
  751. package/extensions/forms/Iterate/PushContainer/PushContainer.js +32 -17
  752. package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  753. package/extensions/forms/Iterate/PushContainer/PushContainerContext.d.ts +1 -0
  754. package/extensions/forms/Iterate/PushContainer/PushContainerContext.js.map +1 -1
  755. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +10 -0
  756. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  757. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js +7 -6
  758. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  759. package/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -0
  760. package/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
  761. package/extensions/forms/Iterate/Visibility/Visibility.d.ts +7 -0
  762. package/extensions/forms/Iterate/Visibility/Visibility.js +11 -0
  763. package/extensions/forms/Iterate/Visibility/Visibility.js.map +1 -0
  764. package/extensions/forms/Iterate/Visibility/index.d.ts +2 -0
  765. package/extensions/forms/Iterate/Visibility/index.js +3 -0
  766. package/extensions/forms/Iterate/Visibility/index.js.map +1 -0
  767. package/extensions/forms/Iterate/hooks/index.d.ts +1 -0
  768. package/extensions/forms/Iterate/hooks/index.js +1 -0
  769. package/extensions/forms/Iterate/hooks/index.js.map +1 -1
  770. package/extensions/forms/Iterate/hooks/useArrayLimit.d.ts +1 -3
  771. package/extensions/forms/Iterate/hooks/useArrayLimit.js +1 -4
  772. package/extensions/forms/Iterate/hooks/useArrayLimit.js.map +1 -1
  773. package/extensions/forms/Iterate/hooks/useItemPath.d.ts +4 -0
  774. package/extensions/forms/Iterate/hooks/useItemPath.js +16 -0
  775. package/extensions/forms/Iterate/hooks/useItemPath.js.map +1 -0
  776. package/extensions/forms/Iterate/hooks/useSwitchContainerMode.d.ts +1 -3
  777. package/extensions/forms/Iterate/hooks/useSwitchContainerMode.js +1 -4
  778. package/extensions/forms/Iterate/hooks/useSwitchContainerMode.js.map +1 -1
  779. package/extensions/forms/Iterate/index.d.ts +1 -0
  780. package/extensions/forms/Iterate/index.js +1 -0
  781. package/extensions/forms/Iterate/index.js.map +1 -1
  782. package/extensions/forms/Tools/GenerateSchema.js +15 -9
  783. package/extensions/forms/Tools/GenerateSchema.js.map +1 -1
  784. package/extensions/forms/Tools/ListAllProps.js +11 -7
  785. package/extensions/forms/Tools/ListAllProps.js.map +1 -1
  786. package/extensions/forms/Tools/Log.js +2 -1
  787. package/extensions/forms/Tools/Log.js.map +1 -1
  788. package/extensions/forms/Value/ArraySelection/ArraySelection.js +4 -4
  789. package/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
  790. package/extensions/forms/Value/Selection/Selection.js +5 -5
  791. package/extensions/forms/Value/Selection/Selection.js.map +1 -1
  792. package/extensions/forms/ValueBlock/ValueBlock.js +27 -9
  793. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  794. package/extensions/forms/ValueBlock/style/dnb-value-block.css +6 -1
  795. package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  796. package/extensions/forms/ValueBlock/style/dnb-value-block.scss +22 -10
  797. package/extensions/forms/Wizard/Container/WizardContainer.js +6 -3
  798. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  799. package/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +2 -1
  800. package/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +4 -3
  801. package/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -1
  802. package/extensions/forms/hooks/DataValueWritePropsDocs.js +9 -9
  803. package/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
  804. package/extensions/forms/hooks/useDataValue.d.ts +2 -2
  805. package/extensions/forms/hooks/useDataValue.js +5 -9
  806. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  807. package/extensions/forms/hooks/useExternalValue.js +2 -2
  808. package/extensions/forms/hooks/useExternalValue.js.map +1 -1
  809. package/extensions/forms/hooks/useFieldProps.d.ts +8 -2
  810. package/extensions/forms/hooks/useFieldProps.js +164 -76
  811. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  812. package/extensions/forms/hooks/usePath.js +2 -2
  813. package/extensions/forms/hooks/usePath.js.map +1 -1
  814. package/extensions/forms/hooks/useValueProps.js +5 -5
  815. package/extensions/forms/hooks/useValueProps.js.map +1 -1
  816. package/extensions/forms/style/dnb-forms.css +9 -4
  817. package/extensions/forms/style/dnb-forms.min.css +1 -1
  818. package/extensions/forms/types.d.ts +33 -6
  819. package/extensions/forms/types.js.map +1 -1
  820. package/extensions/forms/utils/json-pointer/json-pointer.js +6 -0
  821. package/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
  822. package/extensions/payment-card/PaymentCard.js +3 -12
  823. package/extensions/payment-card/PaymentCard.js.map +1 -1
  824. package/fragments/drawer-list/DrawerList.d.ts +4 -2
  825. package/fragments/drawer-list/DrawerList.js +33 -47
  826. package/fragments/drawer-list/DrawerList.js.map +1 -1
  827. package/fragments/drawer-list/DrawerListDocs.js +3 -3
  828. package/fragments/drawer-list/DrawerListDocs.js.map +1 -1
  829. package/fragments/drawer-list/style/dnb-drawer-list.scss +1 -1
  830. package/package.json +1 -1
  831. package/shared/AlignmentHelper.js +0 -4
  832. package/shared/AlignmentHelper.js.map +1 -1
  833. package/shared/Eufemia.d.ts +1 -1
  834. package/shared/Eufemia.js +2 -2
  835. package/shared/Eufemia.js.map +1 -1
  836. package/shared/component-helper.js +2 -1
  837. package/shared/component-helper.js.map +1 -1
  838. package/style/core/scopes.scss +1 -1
  839. package/style/core/utilities.scss +3 -12
  840. package/style/dnb-ui-basis.css +1 -1
  841. package/style/dnb-ui-basis.min.css +1 -1
  842. package/style/dnb-ui-body.css +1 -1
  843. package/style/dnb-ui-body.min.css +1 -1
  844. package/style/dnb-ui-components.css +90 -76
  845. package/style/dnb-ui-components.min.css +4 -4
  846. package/style/dnb-ui-core.css +1 -1
  847. package/style/dnb-ui-core.min.css +1 -1
  848. package/style/dnb-ui-elements.css +151 -31
  849. package/style/dnb-ui-elements.min.css +1 -1
  850. package/style/dnb-ui-extensions.css +9 -4
  851. package/style/dnb-ui-extensions.min.css +1 -1
  852. package/style/dnb-ui-forms.css +9 -4
  853. package/style/dnb-ui-forms.min.css +1 -1
  854. package/style/dnb-ui-fragments.css +1 -1
  855. package/style/dnb-ui-fragments.min.css +1 -1
  856. package/style/themes/theme-eiendom/eiendom-theme-basis.css +151 -31
  857. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  858. package/style/themes/theme-eiendom/eiendom-theme-components.css +99 -80
  859. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  860. package/style/themes/theme-eiendom/eiendom-theme-elements.css +151 -31
  861. package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  862. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +9 -4
  863. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  864. package/style/themes/theme-eiendom/eiendom-theme-forms.css +9 -4
  865. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  866. package/style/themes/theme-sbanken/sbanken-theme-basis.css +151 -31
  867. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  868. package/style/themes/theme-sbanken/sbanken-theme-components.css +99 -80
  869. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  870. package/style/themes/theme-sbanken/sbanken-theme-elements.css +151 -31
  871. package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  872. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +9 -4
  873. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  874. package/style/themes/theme-sbanken/sbanken-theme-forms.css +9 -4
  875. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  876. package/style/themes/theme-ui/ui-theme-basis.css +151 -31
  877. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  878. package/style/themes/theme-ui/ui-theme-components.css +99 -80
  879. package/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  880. package/style/themes/theme-ui/ui-theme-elements.css +151 -31
  881. package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  882. package/style/themes/theme-ui/ui-theme-extensions.css +9 -4
  883. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  884. package/style/themes/theme-ui/ui-theme-forms.css +9 -4
  885. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  886. package/style/themes/theme-ui/ui-theme-tags.css +100 -19
  887. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  888. package/umd/dnb-ui-basis.min.js +1 -1
  889. package/umd/dnb-ui-components.min.js +1 -1
  890. package/umd/dnb-ui-elements.min.js +1 -1
  891. package/umd/dnb-ui-extensions.min.js +3 -3
  892. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"PushButton.js","names":["React","useCallback","useContext","useMemo","classnames","Button","IterateItemContext","useArrayLimit","useSwitchContainerMode","omitDataValueReadWriteProps","add","DataContext","useDataValue","convertJsxToString","PushButton","props","handlePathChange","iterateItemContext","handlePush","pushValue","className","path","text","children","restProps","_objectWithoutProperties","_excluded","buttonProps","arrayValue","getValueByPath","hasReachedLimit","setShowStatus","undefined","Array","isArray","Error","setLastItemContainerMode","handleClick","newValue","setTimeout","content","str","includes","nextItemNo","length","replace","String","createElement","_extends","variant","icon","icon_position","on_click","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/PushButton/PushButton.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { Button } from '../../../../components'\nimport { ButtonProps } from '../../../../components/Button'\nimport IterateItemContext from '../IterateItemContext'\nimport { useArrayLimit, useSwitchContainerMode } from '../hooks'\nimport { omitDataValueReadWriteProps, Path } from '../../types'\nimport { add } from '../../../../icons'\nimport DataContext from '../../DataContext/Context'\nimport useDataValue from '../../hooks/useDataValue'\nimport { convertJsxToString } from '../../../../shared/component-helper'\n\nexport type Props = ButtonProps & {\n path?: Path\n pushValue: unknown | ((value: unknown) => void)\n\n /**\n * Used internally\n */\n value?: unknown\n}\n\nfunction PushButton(props: Props) {\n const { handlePathChange } = useContext(DataContext) || {}\n const iterateItemContext = useContext(IterateItemContext)\n const { handlePush } = iterateItemContext ?? {}\n\n const { pushValue, className, path, text, children, ...restProps } =\n props\n const buttonProps = omitDataValueReadWriteProps(restProps)\n const arrayValue = useDataValue().getValueByPath(path)\n const { hasReachedLimit, setShowStatus } = useArrayLimit({\n path,\n })\n\n if (arrayValue !== undefined && !Array.isArray(arrayValue)) {\n throw new Error('PushButton received a non-array value')\n }\n\n const { setLastItemContainerMode } = useSwitchContainerMode({\n path,\n })\n\n const handleClick = useCallback(async () => {\n if (hasReachedLimit) {\n setShowStatus(true)\n return // stop here\n }\n\n const newValue =\n typeof pushValue === 'function' ? pushValue(arrayValue) : pushValue\n\n if (handlePush) {\n // Inside an Iterate element - make the change through the Iterate component\n handlePush(newValue)\n } else {\n // If not inside an iterate, it could still manipulate a source data set through useFieldProps\n await handlePathChange?.(path, [...(arrayValue ?? []), newValue])\n }\n\n setTimeout(() => {\n setLastItemContainerMode('view')\n }, 100) // UX improvement because of the \"openDelay\"\n }, [\n arrayValue,\n handlePathChange,\n handlePush,\n hasReachedLimit,\n path,\n pushValue,\n setLastItemContainerMode,\n setShowStatus,\n ])\n\n const content = useMemo(() => {\n if (children || text) {\n const str = convertJsxToString(children || text)\n\n if (str.includes('{nextItemNo}')) {\n const nextItemNo = (arrayValue?.length || 0) + 1\n return str.replace('{nextItemNo}', String(nextItemNo))\n }\n }\n\n return children || text\n }, [arrayValue?.length, children, text])\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 {content}\n </Button>\n )\n}\n\nPushButton._supportsSpacingProps = true\nexport default PushButton\n"],"mappings":"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"}
1
+ {"version":3,"file":"PushButton.js","names":["React","useCallback","useContext","useMemo","classnames","Button","IterateItemContext","useArrayLimit","useItemPath","useSwitchContainerMode","omitDataValueReadWriteProps","add","DataContext","useDataValue","convertJsxToString","PushButton","props","handlePathChange","iterateItemContext","handlePush","pushValue","className","path","itemPath","text","children","restProps","_objectWithoutProperties","_excluded","buttonProps","absolutePath","arrayValue","getValueByPath","hasReachedLimit","setShowStatus","undefined","Array","isArray","Error","setLastItemContainerMode","handleClick","newValue","setTimeout","content","str","includes","nextItemNo","length","replace","String","createElement","_extends","variant","icon","icon_position","on_click","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/PushButton/PushButton.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { Button } from '../../../../components'\nimport { ButtonProps } from '../../../../components/Button'\nimport IterateItemContext from '../IterateItemContext'\nimport {\n useArrayLimit,\n useItemPath,\n useSwitchContainerMode,\n} from '../hooks'\nimport { omitDataValueReadWriteProps, Path } from '../../types'\nimport { add } from '../../../../icons'\nimport DataContext from '../../DataContext/Context'\nimport useDataValue from '../../hooks/useDataValue'\nimport { convertJsxToString } from '../../../../shared/component-helper'\n\nexport type Props = ButtonProps & {\n path?: Path\n itemPath?: Path\n pushValue: unknown | ((value: unknown) => void)\n\n /**\n * Used internally\n */\n value?: unknown\n}\n\nfunction PushButton(props: Props) {\n const { handlePathChange } = useContext(DataContext) || {}\n const iterateItemContext = useContext(IterateItemContext)\n const { handlePush } = iterateItemContext ?? {}\n\n const {\n pushValue,\n className,\n path,\n itemPath,\n text,\n children,\n ...restProps\n } = props\n const buttonProps = omitDataValueReadWriteProps(restProps)\n\n const { absolutePath } = useItemPath(itemPath)\n\n const arrayValue = useDataValue().getValueByPath(path || absolutePath)\n\n const { hasReachedLimit, setShowStatus } = useArrayLimit(path)\n\n if (arrayValue !== undefined && !Array.isArray(arrayValue)) {\n throw new Error('PushButton received a non-array value')\n }\n\n const { setLastItemContainerMode } = useSwitchContainerMode(path)\n\n const handleClick = useCallback(async () => {\n if (hasReachedLimit) {\n setShowStatus(true)\n return // stop here\n }\n\n const newValue =\n typeof pushValue === 'function' ? pushValue(arrayValue) : pushValue\n\n if (handlePush && !absolutePath) {\n // Inside an Iterate element - make the change through the Iterate component\n handlePush(newValue)\n } else {\n // If not inside an iterate, it could still manipulate a source data set through useFieldProps\n await handlePathChange?.(path || absolutePath, [\n ...(arrayValue ?? []),\n newValue,\n ])\n }\n\n if (!absolutePath) {\n setTimeout(() => {\n setLastItemContainerMode('view')\n }, 100) // UX improvement because of the \"openDelay\"\n }\n }, [\n arrayValue,\n absolutePath,\n handlePathChange,\n handlePush,\n hasReachedLimit,\n path,\n pushValue,\n setLastItemContainerMode,\n setShowStatus,\n ])\n\n const content = useMemo(() => {\n if (children || text) {\n const str = convertJsxToString(children || text)\n\n if (str.includes('{nextItemNo}')) {\n const nextItemNo = (arrayValue?.length || 0) + 1\n return str.replace('{nextItemNo}', String(nextItemNo))\n }\n }\n\n return children || text\n }, [arrayValue?.length, children, text])\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 {content}\n </Button>\n )\n}\n\nPushButton._supportsSpacingProps = true\nexport default PushButton\n"],"mappings":"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"}
@@ -4,6 +4,11 @@ export const PushButtonProperties = {
4
4
  type: 'string',
5
5
  status: 'required'
6
6
  },
7
+ itemPath: {
8
+ doc: 'The path to the item in a nested array, to add the new item to.',
9
+ type: 'string',
10
+ status: 'optional'
11
+ },
7
12
  pushValue: {
8
13
  doc: 'The element to add to the array when the button is clicked. Can be a function to returns the push value.',
9
14
  type: 'unknown',
@@ -1 +1 @@
1
- {"version":3,"file":"PushButtonDocs.js","names":["PushButtonProperties","path","doc","type","status","pushValue","PushButtonEvents"],"sources":["../../../../../../src/extensions/forms/Iterate/PushButton/PushButtonDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const PushButtonProperties: PropertiesTableProps = {\n path: {\n doc: 'The path to the array to add the new item to.',\n type: 'string',\n status: 'required',\n },\n pushValue: {\n doc: 'The element to add to the array when the button is clicked. Can be a function to returns the push value.',\n type: 'unknown',\n status: 'optional',\n },\n '[Button](/uilib/components/button/properties)': {\n doc: 'All button properties.',\n type: 'Various',\n status: 'optional',\n },\n}\n\nexport const PushButtonEvents: PropertiesTableProps = {}\n"],"mappings":"AAEA,OAAO,MAAMA,oBAA0C,GAAG;EACxDC,IAAI,EAAE;IACJC,GAAG,EAAE,+CAA+C;IACpDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,SAAS,EAAE;IACTH,GAAG,EAAE,0GAA0G;IAC/GC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACD,+CAA+C,EAAE;IAC/CF,GAAG,EAAE,wBAAwB;IAC7BC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAME,gBAAsC,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"PushButtonDocs.js","names":["PushButtonProperties","path","doc","type","status","itemPath","pushValue","PushButtonEvents"],"sources":["../../../../../../src/extensions/forms/Iterate/PushButton/PushButtonDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const PushButtonProperties: PropertiesTableProps = {\n path: {\n doc: 'The path to the array to add the new item to.',\n type: 'string',\n status: 'required',\n },\n itemPath: {\n doc: 'The path to the item in a nested array, to add the new item to.',\n type: 'string',\n status: 'optional',\n },\n pushValue: {\n doc: 'The element to add to the array when the button is clicked. Can be a function to returns the push value.',\n type: 'unknown',\n status: 'optional',\n },\n '[Button](/uilib/components/button/properties)': {\n doc: 'All button properties.',\n type: 'Various',\n status: 'optional',\n },\n}\n\nexport const PushButtonEvents: PropertiesTableProps = {}\n"],"mappings":"AAEA,OAAO,MAAMA,oBAA0C,GAAG;EACxDC,IAAI,EAAE;IACJC,GAAG,EAAE,+CAA+C;IACpDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,QAAQ,EAAE;IACRH,GAAG,EAAE,iEAAiE;IACtEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,SAAS,EAAE;IACTJ,GAAG,EAAE,0GAA0G;IAC/GC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACD,+CAA+C,EAAE;IAC/CF,GAAG,EAAE,wBAAwB;IAC7BC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMG,gBAAsC,GAAG,CAAC,CAAC"}
@@ -2,15 +2,31 @@ import React from 'react';
2
2
  import { OnCommit, Path } from '../../types';
3
3
  import { SpacingProps } from '../../../../shared/types';
4
4
  import { ArrayItemAreaProps } from '../Array/ArrayItemArea';
5
- export type Props = {
5
+ type OnlyPathRequired = {
6
6
  /**
7
7
  * The path to the array to add the new item to.
8
8
  */
9
9
  path: Path;
10
+ /** The sub path to the array to add the new item to. */
11
+ itemPath?: Path;
12
+ };
13
+ type OnlyItemPathRequired = {
14
+ /**
15
+ * The path to the array to add the new item to.
16
+ */
17
+ path?: Path;
18
+ /** The sub path to the array to add the new item to. */
19
+ itemPath: Path;
20
+ };
21
+ export type Props = (OnlyPathRequired | OnlyItemPathRequired) & {
10
22
  /**
11
23
  * The title of the container.
12
24
  */
13
25
  title?: React.ReactNode;
26
+ /**
27
+ * If the fields inside the container are required.
28
+ */
29
+ required?: boolean;
14
30
  /**
15
31
  * The button to open container.
16
32
  */
@@ -3,11 +3,11 @@
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
5
5
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
6
- const _excluded = ["data", "defaultData", "isolatedData", "bubbleValidation", "path", "title", "children", "openButton", "showOpenButtonWhen", "onCommit"],
7
- _excluded2 = ["title", "openButton", "showOpenButton", "switchContainerModeRef", "cancelHandler", "children"];
6
+ const _excluded = ["data", "defaultData", "isolatedData", "bubbleValidation", "path", "itemPath", "title", "required", "children", "openButton", "showOpenButtonWhen", "onCommit"],
7
+ _excluded2 = ["title", "openButton", "showOpenButton", "switchContainerModeRef", "cancelHandler", "containerModeRef", "rerenderPushContainer", "children"];
8
8
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
9
9
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
10
- import React, { useCallback, useContext, useMemo, useRef } from 'react';
10
+ import React, { useCallback, useContext, useEffect, useMemo, useReducer, useRef } from 'react';
11
11
  import Isolation from '../../Form/Isolation';
12
12
  import PushContainerContext from './PushContainerContext';
13
13
  import IterateItemContext from '../IterateItemContext';
@@ -17,43 +17,48 @@ import EditContainer, { CancelButton, DoneButton } from '../EditContainer';
17
17
  import IterateArray from '../Array';
18
18
  import OpenButton from './OpenButton';
19
19
  import { Flex, HeightAnimation } from '../../../../components';
20
- import { useArrayLimit, useSwitchContainerMode } from '../hooks';
20
+ import { useArrayLimit, useItemPath, useSwitchContainerMode } from '../hooks';
21
21
  import Toolbar from '../Toolbar';
22
22
  import { useTranslation } from '../../hooks';
23
23
  import { clearedData } from '../../DataContext/Provider';
24
+ import structuredClone from '@ungap/structured-clone';
24
25
  function PushContainer(props) {
26
+ var _useContext;
27
+ const [, forceUpdate] = useReducer(() => ({}), {});
28
+ const requiredInherited = (_useContext = useContext(DataContext)) === null || _useContext === void 0 ? void 0 : _useContext.required;
25
29
  const {
26
30
  data: dataProp,
27
31
  defaultData: defaultDataProp,
28
32
  isolatedData,
29
33
  bubbleValidation,
30
34
  path,
35
+ itemPath,
31
36
  title,
37
+ required = requiredInherited,
32
38
  children,
33
39
  openButton,
34
40
  showOpenButtonWhen,
35
41
  onCommit
36
42
  } = props,
37
43
  rest = _objectWithoutProperties(props, _excluded);
44
+ const {
45
+ absolutePath
46
+ } = useItemPath(itemPath);
38
47
  const commitHandleRef = useRef();
39
48
  const switchContainerModeRef = useRef();
49
+ const containerModeRef = useRef();
40
50
  const {
41
51
  value: entries = [],
42
- moveValueToPath
43
- } = useDataValue({
44
- path
45
- });
52
+ moveValueToPath,
53
+ getValueByPath
54
+ } = useDataValue(path || itemPath);
46
55
  const {
47
56
  setNextContainerMode
48
- } = useSwitchContainerMode({
49
- path
50
- });
57
+ } = useSwitchContainerMode(path || absolutePath);
51
58
  const {
52
59
  hasReachedLimit,
53
60
  setShowStatus
54
- } = useArrayLimit({
55
- path
56
- });
61
+ } = useArrayLimit(path || absolutePath);
57
62
  const cancelHandler = useCallback(() => {
58
63
  if (hasReachedLimit) {
59
64
  setShowStatus(false);
@@ -62,6 +67,7 @@ function PushContainer(props) {
62
67
  const showOpenButton = showOpenButtonWhen === null || showOpenButtonWhen === void 0 ? void 0 : showOpenButtonWhen(entries);
63
68
  const newItemContextProps = {
64
69
  path,
70
+ itemPath,
65
71
  entries,
66
72
  commitHandleRef,
67
73
  switchContainerMode: switchContainerModeRef.current
@@ -92,13 +98,14 @@ function PushContainer(props) {
92
98
  return React.createElement(Isolation, {
93
99
  data: data,
94
100
  defaultData: defaultData,
101
+ required: required,
95
102
  emptyData: emptyData,
96
- bubbleValidation: bubbleValidation,
103
+ bubbleValidation: containerModeRef.current === 'view' ? false : bubbleValidation,
97
104
  commitHandleRef: commitHandleRef,
98
105
  transformOnCommit: ({
99
106
  pushContainerItems
100
107
  }) => {
101
- return moveValueToPath(path, [...entries, ...pushContainerItems]);
108
+ return moveValueToPath(path || absolutePath, [...entries, ...pushContainerItems], absolutePath ? structuredClone(getValueByPath('/')) : {});
102
109
  },
103
110
  onCommit: (data, options) => {
104
111
  const {
@@ -127,7 +134,9 @@ function PushContainer(props) {
127
134
  openButton: openButton,
128
135
  switchContainerModeRef: switchContainerModeRef,
129
136
  showOpenButton: showOpenButton,
130
- cancelHandler: cancelHandler
137
+ cancelHandler: cancelHandler,
138
+ containerModeRef: containerModeRef,
139
+ rerenderPushContainer: forceUpdate
131
140
  }, rest), children))));
132
141
  }
133
142
  function NewContainer(_ref) {
@@ -138,6 +147,8 @@ function NewContainer(_ref) {
138
147
  showOpenButton,
139
148
  switchContainerModeRef,
140
149
  cancelHandler,
150
+ containerModeRef,
151
+ rerenderPushContainer,
141
152
  children
142
153
  } = _ref,
143
154
  rest = _objectWithoutProperties(_ref, _excluded2);
@@ -145,6 +156,10 @@ function NewContainer(_ref) {
145
156
  containerMode,
146
157
  switchContainerMode
147
158
  } = useContext(IterateItemContext) || {};
159
+ containerModeRef.current = containerMode;
160
+ useEffect(() => {
161
+ rerenderPushContainer();
162
+ }, [containerMode, rerenderPushContainer]);
148
163
  switchContainerModeRef.current = switchContainerMode;
149
164
  const {
150
165
  createButton
@@ -1 +1 @@
1
- {"version":3,"file":"PushContainer.js","names":["React","useCallback","useContext","useMemo","useRef","Isolation","PushContainerContext","IterateItemContext","DataContext","useDataValue","EditContainer","CancelButton","DoneButton","IterateArray","OpenButton","Flex","HeightAnimation","useArrayLimit","useSwitchContainerMode","Toolbar","useTranslation","clearedData","PushContainer","props","data","dataProp","defaultData","defaultDataProp","isolatedData","bubbleValidation","path","title","children","openButton","showOpenButtonWhen","onCommit","rest","_objectWithoutProperties","_excluded","commitHandleRef","switchContainerModeRef","value","entries","moveValueToPath","setNextContainerMode","hasReachedLimit","setShowStatus","cancelHandler","showOpenButton","newItemContextProps","switchContainerMode","current","_objectSpread","pushContainerItems","emptyData","_data$pushContainerIt","firstItem","createElement","transformOnCommit","options","clearData","preventCommit","_switchContainerModeR","call","Provider","containerMode","withoutFlex","NewContainer","_extends","_ref","_DoneButton","_CancelButton","_excluded2","createButton","IteratePushContainer","restoreOriginalValue","toolbar","Consumer","context","Horizontal","gap","text","onClick","Fragment","open","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/PushContainer/PushContainer.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo, useRef } from 'react'\nimport Isolation from '../../Form/Isolation'\nimport PushContainerContext from './PushContainerContext'\nimport IterateItemContext from '../IterateItemContext'\nimport DataContext from '../../DataContext/Context'\nimport useDataValue from '../../hooks/useDataValue'\nimport EditContainer, { CancelButton, DoneButton } from '../EditContainer'\nimport IterateArray, { ContainerMode } from '../Array'\nimport OpenButton from './OpenButton'\nimport { Flex, HeightAnimation } from '../../../../components'\nimport { OnCommit, Path } from '../../types'\nimport { SpacingProps } from '../../../../shared/types'\nimport { useArrayLimit, useSwitchContainerMode } from '../hooks'\nimport Toolbar from '../Toolbar'\nimport { useTranslation } from '../../hooks'\nimport { ArrayItemAreaProps } from '../Array/ArrayItemArea'\nimport { clearedData } from '../../DataContext/Provider'\n\nexport type Props = {\n /**\n * The path to the array to add the new item to.\n */\n path: Path\n\n /**\n * The title of the container.\n */\n title?: React.ReactNode\n\n /**\n * The button to open container.\n */\n openButton?: React.ReactNode\n\n /**\n * Define when the \"open button\" should be shown.\n * Should be a function that returns a boolean.\n */\n showOpenButtonWhen?: (list: unknown[]) => boolean\n\n /**\n * Prefilled data to add to the fields. The data will be put into this path: \"/pushContainerItems/0\".\n */\n data?: unknown | Record<string, unknown>\n\n /**\n * Prefilled data to add to the fields. The data will be put into this path: \"/pushContainerItems/0\".\n */\n defaultData?: unknown | Record<string, unknown>\n\n /**\n * Provide additional data that will be put into the root of the isolated data context (parallel to \"/pushContainerItems/0\").\n */\n isolatedData?: Record<string, unknown>\n\n /**\n * Prevent the form from being submitted when there are fields with errors inside the PushContainer.\n */\n bubbleValidation?: boolean\n\n /**\n * A custom toolbar to be shown below the container.\n */\n toolbar?: React.ReactNode\n\n /**\n * Will be called when the user clicks on the \"Done\" button.\n */\n onCommit?: OnCommit\n\n /**\n * The container contents.\n */\n children: React.ReactNode\n}\n\nexport type AllProps = Props & SpacingProps & ArrayItemAreaProps\n\nfunction PushContainer(props: AllProps) {\n const {\n data: dataProp,\n defaultData: defaultDataProp,\n isolatedData,\n bubbleValidation,\n path,\n title,\n children,\n openButton,\n showOpenButtonWhen,\n onCommit,\n ...rest\n } = props\n\n const commitHandleRef = useRef<() => void>()\n const switchContainerModeRef = useRef<(mode: ContainerMode) => void>()\n const { value: entries = [], moveValueToPath } = useDataValue<\n Array<unknown>\n >({ path })\n\n const { setNextContainerMode } = useSwitchContainerMode({ path })\n const { hasReachedLimit, setShowStatus } = useArrayLimit({\n path,\n })\n const cancelHandler = useCallback(() => {\n if (hasReachedLimit) {\n setShowStatus(false)\n }\n }, [hasReachedLimit, setShowStatus])\n\n const showOpenButton = showOpenButtonWhen?.(entries)\n const newItemContextProps: PushContainerContext = {\n path,\n entries,\n commitHandleRef,\n switchContainerMode: switchContainerModeRef.current,\n }\n\n const data = useMemo(() => {\n if (defaultDataProp) {\n return // don't return a fallback, because we want to use the defaultData\n }\n return {\n ...isolatedData,\n pushContainerItems: [dataProp ?? clearedData],\n }\n }, [dataProp, defaultDataProp, isolatedData])\n\n const defaultData = useMemo(() => {\n return {\n ...(!dataProp ? isolatedData : null),\n pushContainerItems: [defaultDataProp ?? clearedData],\n }\n }, [dataProp, defaultDataProp, isolatedData])\n\n const emptyData = useCallback(\n (data: { pushContainerItems: unknown[] }) => {\n const firstItem = data.pushContainerItems?.[0]\n if (firstItem === null || typeof firstItem !== 'object') {\n return {\n ...isolatedData,\n pushContainerItems: [null],\n }\n }\n return defaultData\n },\n [defaultData, isolatedData]\n )\n\n return (\n <Isolation\n data={data}\n defaultData={defaultData}\n emptyData={emptyData}\n bubbleValidation={bubbleValidation}\n commitHandleRef={commitHandleRef}\n transformOnCommit={({ pushContainerItems }) => {\n return moveValueToPath(path, [...entries, ...pushContainerItems])\n }}\n onCommit={(data, options) => {\n const { clearData, preventCommit } = options\n if (hasReachedLimit) {\n preventCommit()\n setShowStatus(true)\n } else {\n setNextContainerMode('view')\n switchContainerModeRef.current?.('view')\n clearData()\n }\n onCommit?.(data, options)\n }}\n >\n <PushContainerContext.Provider value={newItemContextProps}>\n <IterateArray\n path=\"/pushContainerItems\"\n containerMode={showOpenButton ? 'view' : 'edit'}\n withoutFlex\n >\n <NewContainer\n title={title}\n openButton={openButton}\n switchContainerModeRef={switchContainerModeRef}\n showOpenButton={showOpenButton}\n cancelHandler={cancelHandler}\n {...rest}\n >\n {children}\n </NewContainer>\n </IterateArray>\n </PushContainerContext.Provider>\n </Isolation>\n )\n}\n\nfunction NewContainer({\n title,\n openButton,\n showOpenButton,\n switchContainerModeRef,\n cancelHandler,\n children,\n ...rest\n}) {\n const { containerMode, switchContainerMode } =\n useContext(IterateItemContext) || {}\n switchContainerModeRef.current = switchContainerMode\n const { createButton } = useTranslation().IteratePushContainer\n const { clearData } = useContext(DataContext) || {}\n const restoreOriginalValue = useCallback(() => {\n clearData?.()\n }, [clearData])\n\n const toolbar = (\n <Toolbar>\n <IterateItemContext.Consumer>\n {(context) => {\n const newItemContextProps = {\n ...context,\n restoreOriginalValue,\n }\n return (\n <IterateItemContext.Provider value={newItemContextProps}>\n <Flex.Horizontal gap=\"large\">\n <DoneButton text={createButton} />\n {showOpenButton && (\n <CancelButton onClick={cancelHandler} />\n )}\n </Flex.Horizontal>\n </IterateItemContext.Provider>\n )\n }}\n </IterateItemContext.Consumer>\n </Toolbar>\n )\n\n return (\n <>\n <EditContainer\n open={!showOpenButton || containerMode === 'edit'}\n title={title}\n toolbar={toolbar}\n {...rest}\n >\n {children}\n </EditContainer>\n\n {openButton && typeof showOpenButton === 'boolean' && (\n <HeightAnimation open={showOpenButton && containerMode === 'view'}>\n {openButton}\n </HeightAnimation>\n )}\n </>\n )\n}\n\nPushContainer.OpenButton = OpenButton\nPushContainer._supportsSpacingProps = true\n\nexport default PushContainer\n"],"mappings":"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"}
1
+ {"version":3,"file":"PushContainer.js","names":["React","useCallback","useContext","useEffect","useMemo","useReducer","useRef","Isolation","PushContainerContext","IterateItemContext","DataContext","useDataValue","EditContainer","CancelButton","DoneButton","IterateArray","OpenButton","Flex","HeightAnimation","useArrayLimit","useItemPath","useSwitchContainerMode","Toolbar","useTranslation","clearedData","structuredClone","PushContainer","props","_useContext","forceUpdate","requiredInherited","required","data","dataProp","defaultData","defaultDataProp","isolatedData","bubbleValidation","path","itemPath","title","children","openButton","showOpenButtonWhen","onCommit","rest","_objectWithoutProperties","_excluded","absolutePath","commitHandleRef","switchContainerModeRef","containerModeRef","value","entries","moveValueToPath","getValueByPath","setNextContainerMode","hasReachedLimit","setShowStatus","cancelHandler","showOpenButton","newItemContextProps","switchContainerMode","current","_objectSpread","pushContainerItems","emptyData","_data$pushContainerIt","firstItem","createElement","transformOnCommit","options","clearData","preventCommit","_switchContainerModeR","call","Provider","containerMode","withoutFlex","NewContainer","_extends","rerenderPushContainer","_ref","_DoneButton","_CancelButton","_excluded2","createButton","IteratePushContainer","restoreOriginalValue","toolbar","Consumer","context","Horizontal","gap","text","onClick","Fragment","open","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/PushContainer/PushContainer.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport Isolation from '../../Form/Isolation'\nimport PushContainerContext from './PushContainerContext'\nimport IterateItemContext from '../IterateItemContext'\nimport DataContext from '../../DataContext/Context'\nimport useDataValue from '../../hooks/useDataValue'\nimport EditContainer, { CancelButton, DoneButton } from '../EditContainer'\nimport IterateArray, { ContainerMode } from '../Array'\nimport OpenButton from './OpenButton'\nimport { Flex, HeightAnimation } from '../../../../components'\nimport { OnCommit, Path } from '../../types'\nimport { SpacingProps } from '../../../../shared/types'\nimport {\n useArrayLimit,\n useItemPath,\n useSwitchContainerMode,\n} from '../hooks'\nimport Toolbar from '../Toolbar'\nimport { useTranslation } from '../../hooks'\nimport { ArrayItemAreaProps } from '../Array/ArrayItemArea'\nimport { clearedData } from '../../DataContext/Provider'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So it's a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\ntype OnlyPathRequired = {\n /**\n * The path to the array to add the new item to.\n */\n path: Path\n\n /** The sub path to the array to add the new item to. */\n itemPath?: Path\n}\n\ntype OnlyItemPathRequired = {\n /**\n * The path to the array to add the new item to.\n */\n path?: Path\n\n /** The sub path to the array to add the new item to. */\n itemPath: Path\n}\n\nexport type Props = (OnlyPathRequired | OnlyItemPathRequired) & {\n /**\n * The title of the container.\n */\n title?: React.ReactNode\n\n /**\n * If the fields inside the container are required.\n */\n required?: boolean\n\n /**\n * The button to open container.\n */\n openButton?: React.ReactNode\n\n /**\n * Define when the \"open button\" should be shown.\n * Should be a function that returns a boolean.\n */\n showOpenButtonWhen?: (list: unknown[]) => boolean\n\n /**\n * Prefilled data to add to the fields. The data will be put into this path: \"/pushContainerItems/0\".\n */\n data?: unknown | Record<string, unknown>\n\n /**\n * Prefilled data to add to the fields. The data will be put into this path: \"/pushContainerItems/0\".\n */\n defaultData?: unknown | Record<string, unknown>\n\n /**\n * Provide additional data that will be put into the root of the isolated data context (parallel to \"/pushContainerItems/0\").\n */\n isolatedData?: Record<string, unknown>\n\n /**\n * Prevent the form from being submitted when there are fields with errors inside the PushContainer.\n */\n bubbleValidation?: boolean\n\n /**\n * A custom toolbar to be shown below the container.\n */\n toolbar?: React.ReactNode\n\n /**\n * Will be called when the user clicks on the \"Done\" button.\n */\n onCommit?: OnCommit\n\n /**\n * The container contents.\n */\n children: React.ReactNode\n}\n\nexport type AllProps = Props & SpacingProps & ArrayItemAreaProps\n\nfunction PushContainer(props: AllProps) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n const requiredInherited = useContext(DataContext)?.required\n\n const {\n data: dataProp,\n defaultData: defaultDataProp,\n isolatedData,\n bubbleValidation,\n path,\n itemPath,\n title,\n required = requiredInherited,\n children,\n openButton,\n showOpenButtonWhen,\n onCommit,\n ...rest\n } = props\n\n const { absolutePath } = useItemPath(itemPath)\n const commitHandleRef = useRef<() => void>()\n const switchContainerModeRef = useRef<(mode: ContainerMode) => void>()\n const containerModeRef = useRef<ContainerMode>()\n const {\n value: entries = [],\n moveValueToPath,\n getValueByPath,\n } = useDataValue<Array<unknown>>(path || itemPath)\n\n const { setNextContainerMode } = useSwitchContainerMode(\n path || absolutePath\n )\n const { hasReachedLimit, setShowStatus } = useArrayLimit(\n path || absolutePath\n )\n const cancelHandler = useCallback(() => {\n if (hasReachedLimit) {\n setShowStatus(false)\n }\n }, [hasReachedLimit, setShowStatus])\n\n const showOpenButton = showOpenButtonWhen?.(entries)\n const newItemContextProps: PushContainerContext = {\n path,\n itemPath,\n entries,\n commitHandleRef,\n switchContainerMode: switchContainerModeRef.current,\n }\n\n const data = useMemo(() => {\n if (defaultDataProp) {\n return // don't return a fallback, because we want to use the defaultData\n }\n return {\n ...isolatedData,\n pushContainerItems: [dataProp ?? clearedData],\n }\n }, [dataProp, defaultDataProp, isolatedData])\n\n const defaultData = useMemo(() => {\n return {\n ...(!dataProp ? isolatedData : null),\n pushContainerItems: [defaultDataProp ?? clearedData],\n }\n }, [dataProp, defaultDataProp, isolatedData])\n\n const emptyData = useCallback(\n (data: { pushContainerItems: unknown[] }) => {\n const firstItem = data.pushContainerItems?.[0]\n if (firstItem === null || typeof firstItem !== 'object') {\n return {\n ...isolatedData,\n pushContainerItems: [null],\n }\n }\n return defaultData\n },\n [defaultData, isolatedData]\n )\n\n return (\n <Isolation\n data={data}\n defaultData={defaultData}\n required={required}\n emptyData={emptyData}\n bubbleValidation={\n containerModeRef.current === 'view' ? false : bubbleValidation\n }\n commitHandleRef={commitHandleRef}\n transformOnCommit={({ pushContainerItems }) => {\n return moveValueToPath(\n path || absolutePath,\n [...entries, ...pushContainerItems],\n absolutePath ? structuredClone(getValueByPath('/')) : {}\n )\n }}\n onCommit={(data, options) => {\n const { clearData, preventCommit } = options\n if (hasReachedLimit) {\n preventCommit()\n setShowStatus(true)\n } else {\n setNextContainerMode('view')\n switchContainerModeRef.current?.('view')\n clearData()\n }\n onCommit?.(data, options)\n }}\n >\n <PushContainerContext.Provider value={newItemContextProps}>\n <IterateArray\n path=\"/pushContainerItems\"\n containerMode={showOpenButton ? 'view' : 'edit'}\n withoutFlex\n >\n <NewContainer\n title={title}\n openButton={openButton}\n switchContainerModeRef={switchContainerModeRef}\n showOpenButton={showOpenButton}\n cancelHandler={cancelHandler}\n containerModeRef={containerModeRef}\n rerenderPushContainer={forceUpdate}\n {...rest}\n >\n {children}\n </NewContainer>\n </IterateArray>\n </PushContainerContext.Provider>\n </Isolation>\n )\n}\n\nfunction NewContainer({\n title,\n openButton,\n showOpenButton,\n switchContainerModeRef,\n cancelHandler,\n containerModeRef,\n rerenderPushContainer,\n children,\n ...rest\n}) {\n const { containerMode, switchContainerMode } =\n useContext(IterateItemContext) || {}\n containerModeRef.current = containerMode\n\n useEffect(() => {\n rerenderPushContainer()\n }, [containerMode, rerenderPushContainer])\n\n switchContainerModeRef.current = switchContainerMode\n const { createButton } = useTranslation().IteratePushContainer\n const { clearData } = useContext(DataContext) || {}\n const restoreOriginalValue = useCallback(() => {\n clearData?.()\n }, [clearData])\n\n const toolbar = (\n <Toolbar>\n <IterateItemContext.Consumer>\n {(context) => {\n const newItemContextProps = {\n ...context,\n restoreOriginalValue,\n }\n return (\n <IterateItemContext.Provider value={newItemContextProps}>\n <Flex.Horizontal gap=\"large\">\n <DoneButton text={createButton} />\n {showOpenButton && (\n <CancelButton onClick={cancelHandler} />\n )}\n </Flex.Horizontal>\n </IterateItemContext.Provider>\n )\n }}\n </IterateItemContext.Consumer>\n </Toolbar>\n )\n\n return (\n <>\n <EditContainer\n open={!showOpenButton || containerMode === 'edit'}\n title={title}\n toolbar={toolbar}\n {...rest}\n >\n {children}\n </EditContainer>\n\n {openButton && typeof showOpenButton === 'boolean' && (\n <HeightAnimation open={showOpenButton && containerMode === 'view'}>\n {openButton}\n </HeightAnimation>\n )}\n </>\n )\n}\n\nPushContainer.OpenButton = OpenButton\nPushContainer._supportsSpacingProps = true\n\nexport default PushContainer\n"],"mappings":"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"}
@@ -3,6 +3,7 @@ import { Path } from '../../types';
3
3
  import { ContainerMode } from '../Array';
4
4
  type PushContainerContext = {
5
5
  path: Path;
6
+ itemPath: Path;
6
7
  entries?: Array<unknown>;
7
8
  commitHandleRef: React.MutableRefObject<() => void>;
8
9
  switchContainerMode?: (mode: ContainerMode) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"PushContainerContext.js","names":["createContext","PushContainerContext"],"sources":["../../../../../../src/extensions/forms/Iterate/PushContainer/PushContainerContext.tsx"],"sourcesContent":["import { createContext } from 'react'\nimport { Path } from '../../types'\nimport { ContainerMode } from '../Array'\n\ntype PushContainerContext = {\n path: Path\n entries?: Array<unknown>\n commitHandleRef: React.MutableRefObject<() => void>\n switchContainerMode?: (mode: ContainerMode) => void\n}\n\nconst PushContainerContext = createContext<PushContainerContext>(null)\n\nexport default PushContainerContext\n"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,OAAO;AAWrC,MAAMC,oBAAoB,GAAGD,aAAa,CAAuB,IAAI,CAAC;AAEtE,eAAeC,oBAAoB"}
1
+ {"version":3,"file":"PushContainerContext.js","names":["createContext","PushContainerContext"],"sources":["../../../../../../src/extensions/forms/Iterate/PushContainer/PushContainerContext.tsx"],"sourcesContent":["import { createContext } from 'react'\nimport { Path } from '../../types'\nimport { ContainerMode } from '../Array'\n\ntype PushContainerContext = {\n path: Path\n itemPath: Path\n entries?: Array<unknown>\n commitHandleRef: React.MutableRefObject<() => void>\n switchContainerMode?: (mode: ContainerMode) => void\n}\n\nconst PushContainerContext = createContext<PushContainerContext>(null)\n\nexport default PushContainerContext\n"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,OAAO;AAYrC,MAAMC,oBAAoB,GAAGD,aAAa,CAAuB,IAAI,CAAC;AAEtE,eAAeC,oBAAoB"}
@@ -5,6 +5,11 @@ export const PushContainerProperties = {
5
5
  type: 'string',
6
6
  status: 'required'
7
7
  },
8
+ itemPath: {
9
+ doc: 'The path to the item in a nested array, to add the new item to.',
10
+ type: 'string',
11
+ status: 'optional'
12
+ },
8
13
  title: {
9
14
  doc: 'The title of the container.',
10
15
  type: 'React.Node',
@@ -25,6 +30,11 @@ export const PushContainerProperties = {
25
30
  type: 'object',
26
31
  status: 'optional'
27
32
  },
33
+ required: {
34
+ doc: 'If the fields inside the container are required.',
35
+ type: 'boolean',
36
+ status: 'optional'
37
+ },
28
38
  bubbleValidation: {
29
39
  doc: 'Prevent the form from being submitted when there are fields with errors inside the PushContainer.',
30
40
  type: 'boolean',
@@ -1 +1 @@
1
- {"version":3,"file":"PushContainerDocs.js","names":["IsolationEvents","PushContainerProperties","path","doc","type","status","title","data","defaultData","isolatedData","bubbleValidation","openButton","showOpenButtonWhen","variant","toolbar","children","PushContainerEvents","onCommit"],"sources":["../../../../../../src/extensions/forms/Iterate/PushContainer/PushContainerDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport { IsolationEvents } from '../../Form/Isolation/IsolationDocs'\n\nexport const PushContainerProperties: PropertiesTableProps = {\n path: {\n doc: 'The path to the array to add the new item to.',\n type: 'string',\n status: 'required',\n },\n title: {\n doc: 'The title of the container.',\n type: 'React.Node',\n status: 'optional',\n },\n data: {\n doc: 'Prefilled data to be used by fields. The data will be put into this path: `/pushContainerItems/0`. Use `defaultData` when possible.',\n type: ['object', 'array'],\n status: 'optional',\n },\n defaultData: {\n doc: 'Prefilled data to be used by fields. The data will be put into this path: `/pushContainerItems/0`',\n type: ['object', 'array'],\n status: 'optional',\n },\n isolatedData: {\n doc: 'Provide additional data that will be put into the root of the isolated data context (parallel to `/pushContainerItems/0`).',\n type: 'object',\n status: 'optional',\n },\n bubbleValidation: {\n doc: 'Prevent the form from being submitted when there are fields with errors inside the PushContainer.',\n type: 'boolean',\n status: 'optional',\n },\n openButton: {\n doc: 'The button to open container.',\n type: 'React.Node',\n status: 'optional',\n },\n showOpenButtonWhen: {\n doc: 'Define when the \"open button\" should be shown. Should be a function that returns a boolean.',\n type: 'function',\n status: 'optional',\n },\n variant: {\n doc: 'Defines the variant of the container. Can be `outline`, `filled` or `basic`. Defaults to `outline`.',\n type: 'string',\n status: 'optional',\n },\n toolbar: {\n doc: 'A custom toolbar to be shown below the container.',\n type: 'React.Node',\n status: 'optional',\n },\n children: {\n doc: 'The container contents.',\n type: 'React.Node',\n status: 'required',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const PushContainerEvents: PropertiesTableProps = {\n onCommit: IsolationEvents.onCommit,\n}\n"],"mappings":"AACA,SAASA,eAAe,QAAQ,oCAAoC;AAEpE,OAAO,MAAMC,uBAA6C,GAAG;EAC3DC,IAAI,EAAE;IACJC,GAAG,EAAE,+CAA+C;IACpDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,KAAK,EAAE;IACLH,GAAG,EAAE,6BAA6B;IAClCC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV,CAAC;EACDE,IAAI,EAAE;IACJJ,GAAG,EAAE,qIAAqI;IAC1IC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDG,WAAW,EAAE;IACXL,GAAG,EAAE,mGAAmG;IACxGC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDI,YAAY,EAAE;IACZN,GAAG,EAAE,4HAA4H;IACjIC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,gBAAgB,EAAE;IAChBP,GAAG,EAAE,mGAAmG;IACxGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDM,UAAU,EAAE;IACVR,GAAG,EAAE,+BAA+B;IACpCC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV,CAAC;EACDO,kBAAkB,EAAE;IAClBT,GAAG,EAAE,6FAA6F;IAClGC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDQ,OAAO,EAAE;IACPV,GAAG,EAAE,qGAAqG;IAC1GC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDS,OAAO,EAAE;IACPX,GAAG,EAAE,mDAAmD;IACxDC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV,CAAC;EACDU,QAAQ,EAAE;IACRZ,GAAG,EAAE,yBAAyB;IAC9BC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMW,mBAAyC,GAAG;EACvDC,QAAQ,EAAEjB,eAAe,CAACiB;AAC5B,CAAC"}
1
+ {"version":3,"file":"PushContainerDocs.js","names":["IsolationEvents","PushContainerProperties","path","doc","type","status","itemPath","title","data","defaultData","isolatedData","required","bubbleValidation","openButton","showOpenButtonWhen","variant","toolbar","children","PushContainerEvents","onCommit"],"sources":["../../../../../../src/extensions/forms/Iterate/PushContainer/PushContainerDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport { IsolationEvents } from '../../Form/Isolation/IsolationDocs'\n\nexport const PushContainerProperties: PropertiesTableProps = {\n path: {\n doc: 'The path to the array to add the new item to.',\n type: 'string',\n status: 'required',\n },\n itemPath: {\n doc: 'The path to the item in a nested array, to add the new item to.',\n type: 'string',\n status: 'optional',\n },\n title: {\n doc: 'The title of the container.',\n type: 'React.Node',\n status: 'optional',\n },\n data: {\n doc: 'Prefilled data to be used by fields. The data will be put into this path: `/pushContainerItems/0`. Use `defaultData` when possible.',\n type: ['object', 'array'],\n status: 'optional',\n },\n defaultData: {\n doc: 'Prefilled data to be used by fields. The data will be put into this path: `/pushContainerItems/0`',\n type: ['object', 'array'],\n status: 'optional',\n },\n isolatedData: {\n doc: 'Provide additional data that will be put into the root of the isolated data context (parallel to `/pushContainerItems/0`).',\n type: 'object',\n status: 'optional',\n },\n required: {\n doc: 'If the fields inside the container are required.',\n type: 'boolean',\n status: 'optional',\n },\n bubbleValidation: {\n doc: 'Prevent the form from being submitted when there are fields with errors inside the PushContainer.',\n type: 'boolean',\n status: 'optional',\n },\n openButton: {\n doc: 'The button to open container.',\n type: 'React.Node',\n status: 'optional',\n },\n showOpenButtonWhen: {\n doc: 'Define when the \"open button\" should be shown. Should be a function that returns a boolean.',\n type: 'function',\n status: 'optional',\n },\n variant: {\n doc: 'Defines the variant of the container. Can be `outline`, `filled` or `basic`. Defaults to `outline`.',\n type: 'string',\n status: 'optional',\n },\n toolbar: {\n doc: 'A custom toolbar to be shown below the container.',\n type: 'React.Node',\n status: 'optional',\n },\n children: {\n doc: 'The container contents.',\n type: 'React.Node',\n status: 'required',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const PushContainerEvents: PropertiesTableProps = {\n onCommit: IsolationEvents.onCommit,\n}\n"],"mappings":"AACA,SAASA,eAAe,QAAQ,oCAAoC;AAEpE,OAAO,MAAMC,uBAA6C,GAAG;EAC3DC,IAAI,EAAE;IACJC,GAAG,EAAE,+CAA+C;IACpDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,QAAQ,EAAE;IACRH,GAAG,EAAE,iEAAiE;IACtEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,KAAK,EAAE;IACLJ,GAAG,EAAE,6BAA6B;IAClCC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV,CAAC;EACDG,IAAI,EAAE;IACJL,GAAG,EAAE,qIAAqI;IAC1IC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDI,WAAW,EAAE;IACXN,GAAG,EAAE,mGAAmG;IACxGC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDK,YAAY,EAAE;IACZP,GAAG,EAAE,4HAA4H;IACjIC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,QAAQ,EAAE;IACRR,GAAG,EAAE,kDAAkD;IACvDC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDO,gBAAgB,EAAE;IAChBT,GAAG,EAAE,mGAAmG;IACxGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDQ,UAAU,EAAE;IACVV,GAAG,EAAE,+BAA+B;IACpCC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV,CAAC;EACDS,kBAAkB,EAAE;IAClBX,GAAG,EAAE,6FAA6F;IAClGC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDU,OAAO,EAAE;IACPZ,GAAG,EAAE,qGAAqG;IAC1GC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDW,OAAO,EAAE;IACPb,GAAG,EAAE,mDAAmD;IACxDC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV,CAAC;EACDY,QAAQ,EAAE;IACRd,GAAG,EAAE,yBAAyB;IAC9BC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMa,mBAAyC,GAAG;EACvDC,QAAQ,EAAEnB,eAAe,CAACmB;AAC5B,CAAC"}
@@ -17,7 +17,8 @@ import { trash } from '../../../../icons';
17
17
  function RemoveButton(props) {
18
18
  const iterateItemContext = useContext(IterateItemContext);
19
19
  const {
20
- handleRemove
20
+ handleRemove,
21
+ itemPath
21
22
  } = iterateItemContext || {};
22
23
  if (!iterateItemContext) {
23
24
  throw new Error('RemoveButton must be inside an Iterate.Array');
@@ -32,20 +33,20 @@ function RemoveButton(props) {
32
33
  const buttonProps = omitDataValueReadWriteProps(restProps);
33
34
  const translation = useTranslation().RemoveButton;
34
35
  const textContent = text || children || translation.text;
35
- const elementBlockContext = useContext(ArrayItemAreaContext);
36
+ const arrayItemAreaContext = useContext(ArrayItemAreaContext);
36
37
  const {
37
38
  handleRemoveItem
38
- } = elementBlockContext || {};
39
+ } = arrayItemAreaContext || {};
39
40
  const handleClick = useCallback(({
40
41
  close
41
42
  }) => {
42
43
  close === null || close === void 0 ? void 0 : close();
43
- if (handleRemoveItem) {
44
- handleRemoveItem === null || handleRemoveItem === void 0 ? void 0 : handleRemoveItem();
44
+ if (handleRemoveItem && !itemPath) {
45
+ handleRemoveItem();
45
46
  } else {
46
47
  handleRemove === null || handleRemove === void 0 ? void 0 : handleRemove();
47
48
  }
48
- }, [handleRemove, handleRemoveItem]);
49
+ }, [handleRemove, handleRemoveItem, itemPath]);
49
50
  const triggerAttributes = _objectSpread({
50
51
  className: classnames('dnb-forms-iterate-remove-element-button', className),
51
52
  text: textContent,
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveButton.js","names":["React","useCallback","useContext","classnames","Button","Dialog","IterateItemContext","useTranslation","ArrayItemAreaContext","omitDataValueReadWriteProps","trash","RemoveButton","props","iterateItemContext","handleRemove","Error","text","children","className","showConfirmDialog","restProps","_objectWithoutProperties","_excluded","buttonProps","translation","textContent","elementBlockContext","handleRemoveItem","handleClick","close","triggerAttributes","_objectSpread","variant","icon","icon_position","createElement","title","confirmRemoveText","onConfirm","_extends","on_click","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/RemoveButton/RemoveButton.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport classnames from 'classnames'\nimport { Button, Dialog } from '../../../../components'\nimport { ButtonProps } from '../../../../components/Button'\nimport IterateItemContext from '../IterateItemContext'\nimport { useTranslation } from '../../hooks'\nimport ArrayItemAreaContext from '../Array/ArrayItemAreaContext'\nimport {\n DataValueReadWriteComponentProps,\n omitDataValueReadWriteProps,\n} from '../../types'\nimport { trash } from '../../../../icons'\n\nexport type Props = ButtonProps &\n DataValueReadWriteComponentProps<unknown[]> & {\n showConfirmDialog?: boolean\n }\n\nfunction RemoveButton(props: Props) {\n const iterateItemContext = useContext(IterateItemContext)\n const { handleRemove } = iterateItemContext || {}\n\n if (!iterateItemContext) {\n throw new Error('RemoveButton must be inside an Iterate.Array')\n }\n\n const { text, children, className, showConfirmDialog, ...restProps } =\n props\n const buttonProps = omitDataValueReadWriteProps(restProps)\n const translation = useTranslation().RemoveButton\n const textContent = text || children || translation.text\n\n const elementBlockContext = useContext(ArrayItemAreaContext)\n const { handleRemoveItem } = elementBlockContext || {}\n\n const handleClick = useCallback(\n ({ close }) => {\n close?.()\n\n if (handleRemoveItem) {\n handleRemoveItem?.()\n } else {\n handleRemove?.()\n }\n },\n [handleRemove, handleRemoveItem]\n )\n\n const triggerAttributes: ButtonProps = {\n className: classnames(\n 'dnb-forms-iterate-remove-element-button',\n className\n ),\n text: textContent,\n variant: textContent ? 'tertiary' : 'secondary',\n icon: trash,\n icon_position: 'left',\n ...buttonProps,\n }\n\n if (showConfirmDialog) {\n return (\n <Dialog\n variant=\"confirmation\"\n title={translation.confirmRemoveText}\n triggerAttributes={triggerAttributes}\n onConfirm={handleClick}\n />\n )\n }\n\n return (\n <Button\n {...triggerAttributes}\n on_click={handleClick}\n {...buttonProps}\n />\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,EAAEC,MAAM,QAAQ,wBAAwB;AAEvD,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,SAASC,cAAc,QAAQ,aAAa;AAC5C,OAAOC,oBAAoB,MAAM,+BAA+B;AAChE,SAEEC,2BAA2B,QACtB,aAAa;AACpB,SAASC,KAAK,QAAQ,mBAAmB;AAOzC,SAASC,YAAYA,CAACC,KAAY,EAAE;EAClC,MAAMC,kBAAkB,GAAGX,UAAU,CAACI,kBAAkB,CAAC;EACzD,MAAM;IAAEQ;EAAa,CAAC,GAAGD,kBAAkB,IAAI,CAAC,CAAC;EAEjD,IAAI,CAACA,kBAAkB,EAAE;IACvB,MAAM,IAAIE,KAAK,CAAC,8CAA8C,CAAC;EACjE;EAEA,MAAM;MAAEC,IAAI;MAAEC,QAAQ;MAAEC,SAAS;MAAEC;IAAgC,CAAC,GAClEP,KAAK;IADkDQ,SAAS,GAAAC,wBAAA,CAChET,KAAK,EAAAU,SAAA;EACP,MAAMC,WAAW,GAAGd,2BAA2B,CAACW,SAAS,CAAC;EAC1D,MAAMI,WAAW,GAAGjB,cAAc,CAAC,CAAC,CAACI,YAAY;EACjD,MAAMc,WAAW,GAAGT,IAAI,IAAIC,QAAQ,IAAIO,WAAW,CAACR,IAAI;EAExD,MAAMU,mBAAmB,GAAGxB,UAAU,CAACM,oBAAoB,CAAC;EAC5D,MAAM;IAAEmB;EAAiB,CAAC,GAAGD,mBAAmB,IAAI,CAAC,CAAC;EAEtD,MAAME,WAAW,GAAG3B,WAAW,CAC7B,CAAC;IAAE4B;EAAM,CAAC,KAAK;IACbA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAG,CAAC;IAET,IAAIF,gBAAgB,EAAE;MACpBA,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAG,CAAC;IACtB,CAAC,MAAM;MACLb,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAG,CAAC;IAClB;EACF,CAAC,EACD,CAACA,YAAY,EAAEa,gBAAgB,CACjC,CAAC;EAED,MAAMG,iBAA8B,GAAAC,aAAA;IAClCb,SAAS,EAAEf,UAAU,CACnB,yCAAyC,EACzCe,SACF,CAAC;IACDF,IAAI,EAAES,WAAW;IACjBO,OAAO,EAAEP,WAAW,GAAG,UAAU,GAAG,WAAW;IAC/CQ,IAAI,EAAEvB,KAAK;IACXwB,aAAa,EAAE;EAAM,GAClBX,WAAW,CACf;EAED,IAAIJ,iBAAiB,EAAE;IACrB,OACEnB,KAAA,CAAAmC,aAAA,CAAC9B,MAAM;MACL2B,OAAO,EAAC,cAAc;MACtBI,KAAK,EAAEZ,WAAW,CAACa,iBAAkB;MACrCP,iBAAiB,EAAEA,iBAAkB;MACrCQ,SAAS,EAAEV;IAAY,CACxB,CAAC;EAEN;EAEA,OACE5B,KAAA,CAAAmC,aAAA,CAAC/B,MAAM,EAAAmC,QAAA,KACDT,iBAAiB;IACrBU,QAAQ,EAAEZ;EAAY,GAClBL,WAAW,CAChB,CAAC;AAEN;AAEAZ,YAAY,CAAC8B,qBAAqB,GAAG,IAAI;AACzC,eAAe9B,YAAY"}
1
+ {"version":3,"file":"RemoveButton.js","names":["React","useCallback","useContext","classnames","Button","Dialog","IterateItemContext","useTranslation","ArrayItemAreaContext","omitDataValueReadWriteProps","trash","RemoveButton","props","iterateItemContext","handleRemove","itemPath","Error","text","children","className","showConfirmDialog","restProps","_objectWithoutProperties","_excluded","buttonProps","translation","textContent","arrayItemAreaContext","handleRemoveItem","handleClick","close","triggerAttributes","_objectSpread","variant","icon","icon_position","createElement","title","confirmRemoveText","onConfirm","_extends","on_click","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/RemoveButton/RemoveButton.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport classnames from 'classnames'\nimport { Button, Dialog } from '../../../../components'\nimport { ButtonProps } from '../../../../components/Button'\nimport IterateItemContext from '../IterateItemContext'\nimport { useTranslation } from '../../hooks'\nimport ArrayItemAreaContext from '../Array/ArrayItemAreaContext'\nimport {\n DataValueReadWriteComponentProps,\n omitDataValueReadWriteProps,\n} from '../../types'\nimport { trash } from '../../../../icons'\n\nexport type Props = ButtonProps &\n DataValueReadWriteComponentProps<unknown[]> & {\n showConfirmDialog?: boolean\n }\n\nfunction RemoveButton(props: Props) {\n const iterateItemContext = useContext(IterateItemContext)\n const { handleRemove, itemPath } = iterateItemContext || {}\n\n if (!iterateItemContext) {\n throw new Error('RemoveButton must be inside an Iterate.Array')\n }\n\n const { text, children, className, showConfirmDialog, ...restProps } =\n props\n const buttonProps = omitDataValueReadWriteProps(restProps)\n const translation = useTranslation().RemoveButton\n const textContent = text || children || translation.text\n\n const arrayItemAreaContext = useContext(ArrayItemAreaContext)\n const { handleRemoveItem } = arrayItemAreaContext || {}\n\n const handleClick = useCallback(\n ({ close }) => {\n close?.()\n\n // - Don't call handleRemoveItem when itemPath is given to support nested arrays\n if (handleRemoveItem && !itemPath) {\n handleRemoveItem()\n } else {\n handleRemove?.()\n }\n },\n [handleRemove, handleRemoveItem, itemPath]\n )\n\n const triggerAttributes: ButtonProps = {\n className: classnames(\n 'dnb-forms-iterate-remove-element-button',\n className\n ),\n text: textContent,\n variant: textContent ? 'tertiary' : 'secondary',\n icon: trash,\n icon_position: 'left',\n ...buttonProps,\n }\n\n if (showConfirmDialog) {\n return (\n <Dialog\n variant=\"confirmation\"\n title={translation.confirmRemoveText}\n triggerAttributes={triggerAttributes}\n onConfirm={handleClick}\n />\n )\n }\n\n return (\n <Button\n {...triggerAttributes}\n on_click={handleClick}\n {...buttonProps}\n />\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,EAAEC,MAAM,QAAQ,wBAAwB;AAEvD,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,SAASC,cAAc,QAAQ,aAAa;AAC5C,OAAOC,oBAAoB,MAAM,+BAA+B;AAChE,SAEEC,2BAA2B,QACtB,aAAa;AACpB,SAASC,KAAK,QAAQ,mBAAmB;AAOzC,SAASC,YAAYA,CAACC,KAAY,EAAE;EAClC,MAAMC,kBAAkB,GAAGX,UAAU,CAACI,kBAAkB,CAAC;EACzD,MAAM;IAAEQ,YAAY;IAAEC;EAAS,CAAC,GAAGF,kBAAkB,IAAI,CAAC,CAAC;EAE3D,IAAI,CAACA,kBAAkB,EAAE;IACvB,MAAM,IAAIG,KAAK,CAAC,8CAA8C,CAAC;EACjE;EAEA,MAAM;MAAEC,IAAI;MAAEC,QAAQ;MAAEC,SAAS;MAAEC;IAAgC,CAAC,GAClER,KAAK;IADkDS,SAAS,GAAAC,wBAAA,CAChEV,KAAK,EAAAW,SAAA;EACP,MAAMC,WAAW,GAAGf,2BAA2B,CAACY,SAAS,CAAC;EAC1D,MAAMI,WAAW,GAAGlB,cAAc,CAAC,CAAC,CAACI,YAAY;EACjD,MAAMe,WAAW,GAAGT,IAAI,IAAIC,QAAQ,IAAIO,WAAW,CAACR,IAAI;EAExD,MAAMU,oBAAoB,GAAGzB,UAAU,CAACM,oBAAoB,CAAC;EAC7D,MAAM;IAAEoB;EAAiB,CAAC,GAAGD,oBAAoB,IAAI,CAAC,CAAC;EAEvD,MAAME,WAAW,GAAG5B,WAAW,CAC7B,CAAC;IAAE6B;EAAM,CAAC,KAAK;IACbA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAG,CAAC;IAGT,IAAIF,gBAAgB,IAAI,CAACb,QAAQ,EAAE;MACjCa,gBAAgB,CAAC,CAAC;IACpB,CAAC,MAAM;MACLd,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAG,CAAC;IAClB;EACF,CAAC,EACD,CAACA,YAAY,EAAEc,gBAAgB,EAAEb,QAAQ,CAC3C,CAAC;EAED,MAAMgB,iBAA8B,GAAAC,aAAA;IAClCb,SAAS,EAAEhB,UAAU,CACnB,yCAAyC,EACzCgB,SACF,CAAC;IACDF,IAAI,EAAES,WAAW;IACjBO,OAAO,EAAEP,WAAW,GAAG,UAAU,GAAG,WAAW;IAC/CQ,IAAI,EAAExB,KAAK;IACXyB,aAAa,EAAE;EAAM,GAClBX,WAAW,CACf;EAED,IAAIJ,iBAAiB,EAAE;IACrB,OACEpB,KAAA,CAAAoC,aAAA,CAAC/B,MAAM;MACL4B,OAAO,EAAC,cAAc;MACtBI,KAAK,EAAEZ,WAAW,CAACa,iBAAkB;MACrCP,iBAAiB,EAAEA,iBAAkB;MACrCQ,SAAS,EAAEV;IAAY,CACxB,CAAC;EAEN;EAEA,OACE7B,KAAA,CAAAoC,aAAA,CAAChC,MAAM,EAAAoC,QAAA,KACDT,iBAAiB;IACrBU,QAAQ,EAAEZ;EAAY,GAClBL,WAAW,CAChB,CAAC;AAEN;AAEAb,YAAY,CAAC+B,qBAAqB,GAAG,IAAI;AACzC,eAAe/B,YAAY"}
@@ -18,6 +18,7 @@ export default function EditButton() {
18
18
  }, [switchContainerMode]);
19
19
  return React.createElement(Button, {
20
20
  variant: "tertiary",
21
+ className: "dnb-push-container__edit-button",
21
22
  icon: edit,
22
23
  icon_position: "left",
23
24
  on_click: editHandler
@@ -1 +1 @@
1
- {"version":3,"file":"EditButton.js","names":["React","useCallback","useContext","Button","useTranslation","IterateItemContext","edit","EditButton","iterateItemContext","switchContainerMode","editButton","IterateViewContainer","editHandler","createElement","variant","icon","icon_position","on_click"],"sources":["../../../../../../src/extensions/forms/Iterate/ViewContainer/EditButton.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport { Button } from '../../../../components'\nimport useTranslation from '../../hooks/useTranslation'\nimport IterateItemContext from '../IterateItemContext'\nimport { edit } from '../../../../icons'\n\nexport default function EditButton() {\n const iterateItemContext = useContext(IterateItemContext)\n const { switchContainerMode } = iterateItemContext ?? {}\n const { editButton } = useTranslation().IterateViewContainer\n\n const editHandler = useCallback(() => {\n switchContainerMode?.('edit')\n }, [switchContainerMode])\n\n return (\n <Button\n variant=\"tertiary\"\n icon={edit}\n icon_position=\"left\"\n on_click={editHandler}\n >\n {editButton}\n </Button>\n )\n}\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,QAAQ,OAAO;AACtD,SAASC,MAAM,QAAQ,wBAAwB;AAC/C,OAAOC,cAAc,MAAM,4BAA4B;AACvD,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,SAASC,IAAI,QAAQ,mBAAmB;AAExC,eAAe,SAASC,UAAUA,CAAA,EAAG;EACnC,MAAMC,kBAAkB,GAAGN,UAAU,CAACG,kBAAkB,CAAC;EACzD,MAAM;IAAEI;EAAoB,CAAC,GAAGD,kBAAkB,aAAlBA,kBAAkB,cAAlBA,kBAAkB,GAAI,CAAC,CAAC;EACxD,MAAM;IAAEE;EAAW,CAAC,GAAGN,cAAc,CAAC,CAAC,CAACO,oBAAoB;EAE5D,MAAMC,WAAW,GAAGX,WAAW,CAAC,MAAM;IACpCQ,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAG,MAAM,CAAC;EAC/B,CAAC,EAAE,CAACA,mBAAmB,CAAC,CAAC;EAEzB,OACET,KAAA,CAAAa,aAAA,CAACV,MAAM;IACLW,OAAO,EAAC,UAAU;IAClBC,IAAI,EAAET,IAAK;IACXU,aAAa,EAAC,MAAM;IACpBC,QAAQ,EAAEL;EAAY,GAErBF,UACK,CAAC;AAEb"}
1
+ {"version":3,"file":"EditButton.js","names":["React","useCallback","useContext","Button","useTranslation","IterateItemContext","edit","EditButton","iterateItemContext","switchContainerMode","editButton","IterateViewContainer","editHandler","createElement","variant","className","icon","icon_position","on_click"],"sources":["../../../../../../src/extensions/forms/Iterate/ViewContainer/EditButton.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport { Button } from '../../../../components'\nimport useTranslation from '../../hooks/useTranslation'\nimport IterateItemContext from '../IterateItemContext'\nimport { edit } from '../../../../icons'\n\nexport default function EditButton() {\n const iterateItemContext = useContext(IterateItemContext)\n const { switchContainerMode } = iterateItemContext ?? {}\n const { editButton } = useTranslation().IterateViewContainer\n\n const editHandler = useCallback(() => {\n switchContainerMode?.('edit')\n }, [switchContainerMode])\n\n return (\n <Button\n variant=\"tertiary\"\n className=\"dnb-push-container__edit-button\"\n icon={edit}\n icon_position=\"left\"\n on_click={editHandler}\n >\n {editButton}\n </Button>\n )\n}\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,QAAQ,OAAO;AACtD,SAASC,MAAM,QAAQ,wBAAwB;AAC/C,OAAOC,cAAc,MAAM,4BAA4B;AACvD,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,SAASC,IAAI,QAAQ,mBAAmB;AAExC,eAAe,SAASC,UAAUA,CAAA,EAAG;EACnC,MAAMC,kBAAkB,GAAGN,UAAU,CAACG,kBAAkB,CAAC;EACzD,MAAM;IAAEI;EAAoB,CAAC,GAAGD,kBAAkB,aAAlBA,kBAAkB,cAAlBA,kBAAkB,GAAI,CAAC,CAAC;EACxD,MAAM;IAAEE;EAAW,CAAC,GAAGN,cAAc,CAAC,CAAC,CAACO,oBAAoB;EAE5D,MAAMC,WAAW,GAAGX,WAAW,CAAC,MAAM;IACpCQ,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAG,MAAM,CAAC;EAC/B,CAAC,EAAE,CAACA,mBAAmB,CAAC,CAAC;EAEzB,OACET,KAAA,CAAAa,aAAA,CAACV,MAAM;IACLW,OAAO,EAAC,UAAU;IAClBC,SAAS,EAAC,iCAAiC;IAC3CC,IAAI,EAAEV,IAAK;IACXW,aAAa,EAAC,MAAM;IACpBC,QAAQ,EAAEN;EAAY,GAErBF,UACK,CAAC;AAEb"}
@@ -0,0 +1,7 @@
1
+ import { Props } from '../../Form/Visibility/Visibility';
2
+ export * from '../../Form/Visibility/Visibility';
3
+ declare function IterateVisibility(props: Props): import("react/jsx-runtime").JSX.Element;
4
+ declare namespace IterateVisibility {
5
+ var _supportsSpacingProps: string;
6
+ }
7
+ export default IterateVisibility;
@@ -0,0 +1,11 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import React from 'react';
3
+ import Visibility from '../../Form/Visibility/Visibility';
4
+ export * from '../../Form/Visibility/Visibility';
5
+ export default function IterateVisibility(props) {
6
+ return React.createElement(Visibility, _extends({
7
+ withinIterate: true
8
+ }, props));
9
+ }
10
+ IterateVisibility._supportsSpacingProps = 'children';
11
+ //# sourceMappingURL=Visibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Visibility.js","names":["React","Visibility","IterateVisibility","props","createElement","_extends","withinIterate","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/Visibility/Visibility.tsx"],"sourcesContent":["import React from 'react'\nimport Visibility, { Props } from '../../Form/Visibility/Visibility'\nexport * from '../../Form/Visibility/Visibility'\n\nexport default function IterateVisibility(props: Props) {\n return <Visibility withinIterate {...props} />\n}\n\nIterateVisibility._supportsSpacingProps = 'children'\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAiB,kCAAkC;AACpE,cAAc,kCAAkC;AAEhD,eAAe,SAASC,iBAAiBA,CAACC,KAAY,EAAE;EACtD,OAAOH,KAAA,CAAAI,aAAA,CAACH,UAAU,EAAAI,QAAA;IAACC,aAAa;EAAA,GAAKH,KAAK,CAAG,CAAC;AAChD;AAEAD,iBAAiB,CAACK,qBAAqB,GAAG,UAAU"}
@@ -0,0 +1,2 @@
1
+ export { default } from './Visibility';
2
+ export * from './Visibility';
@@ -0,0 +1,3 @@
1
+ export { default } from './Visibility';
2
+ export * from './Visibility';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["default"],"sources":["../../../../../../src/extensions/forms/Iterate/Visibility/index.ts"],"sourcesContent":["export { default } from './Visibility'\nexport * from './Visibility'\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,cAAc;AACtC,cAAc,cAAc"}
@@ -1,3 +1,4 @@
1
1
  export { default as useItem } from './useItem';
2
2
  export { default as useSwitchContainerMode } from './useSwitchContainerMode';
3
3
  export { default as useArrayLimit } from './useArrayLimit';
4
+ export { default as useItemPath } from './useItemPath';
@@ -1,4 +1,5 @@
1
1
  export { default as useItem } from './useItem';
2
2
  export { default as useSwitchContainerMode } from './useSwitchContainerMode';
3
3
  export { default as useArrayLimit } from './useArrayLimit';
4
+ export { default as useItemPath } from './useItemPath';
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","useItem","useSwitchContainerMode","useArrayLimit"],"sources":["../../../../../../src/extensions/forms/Iterate/hooks/index.ts"],"sourcesContent":["export { default as useItem } from './useItem'\nexport { default as useSwitchContainerMode } from './useSwitchContainerMode'\nexport { default as useArrayLimit } from './useArrayLimit'\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,OAAO,QAAQ,WAAW;AAC9C,SAASD,OAAO,IAAIE,sBAAsB,QAAQ,0BAA0B;AAC5E,SAASF,OAAO,IAAIG,aAAa,QAAQ,iBAAiB"}
1
+ {"version":3,"file":"index.js","names":["default","useItem","useSwitchContainerMode","useArrayLimit","useItemPath"],"sources":["../../../../../../src/extensions/forms/Iterate/hooks/index.ts"],"sourcesContent":["export { default as useItem } from './useItem'\nexport { default as useSwitchContainerMode } from './useSwitchContainerMode'\nexport { default as useArrayLimit } from './useArrayLimit'\nexport { default as useItemPath } from './useItemPath'\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,OAAO,QAAQ,WAAW;AAC9C,SAASD,OAAO,IAAIE,sBAAsB,QAAQ,0BAA0B;AAC5E,SAASF,OAAO,IAAIG,aAAa,QAAQ,iBAAiB;AAC1D,SAASH,OAAO,IAAII,WAAW,QAAQ,eAAe"}
@@ -4,9 +4,7 @@ type SharedState = {
4
4
  limit?: number;
5
5
  total?: number;
6
6
  };
7
- export default function useArrayLimit({ path }: {
8
- path: Path;
9
- }): {
7
+ export default function useArrayLimit(path: Path): {
10
8
  setShowStatus: (show: boolean) => void;
11
9
  setLimitProps: (props: Omit<SharedState, 'show'>) => void;
12
10
  error: Error;
@@ -1,9 +1,7 @@
1
1
  import { useCallback } from 'react';
2
2
  import { useTranslation } from '../../hooks';
3
3
  import { useSharedState } from '../../../../shared/helpers/useSharedState';
4
- export default function useArrayLimit({
5
- path
6
- }) {
4
+ export default function useArrayLimit(path) {
7
5
  const sharedState = useSharedState(path + '-iterate-limit');
8
6
  const {
9
7
  set,
@@ -1 +1 @@
1
- {"version":3,"file":"useArrayLimit.js","names":["useCallback","useTranslation","useSharedState","useArrayLimit","path","sharedState","set","update","extend","data","limit","total","show","setLimitProps","props","setShowStatus","hasReachedLimit","itemsLimitReached","IteratePushContainer","error","Error","replace","String","undefined"],"sources":["../../../../../../src/extensions/forms/Iterate/hooks/useArrayLimit.tsx"],"sourcesContent":["import { useCallback } from 'react'\nimport { useTranslation } from '../../hooks'\nimport { Path } from '../../types'\nimport { useSharedState } from '../../../../shared/helpers/useSharedState'\n\ntype SharedState = {\n show?: boolean\n limit?: number\n total?: number\n}\n\nexport default function useArrayLimit({ path }: { path: Path }) {\n const sharedState = useSharedState<SharedState>(path + '-iterate-limit')\n const { set, update, extend, data } = sharedState || {}\n const { limit, total, show } = data || {}\n\n const setLimitProps = useCallback(\n (props: Omit<SharedState, 'show'>) => {\n if (props.total !== total) {\n update(props)\n } else {\n set(props)\n }\n },\n [set, total, update]\n )\n\n const setShowStatus = useCallback(\n (show: boolean) => {\n extend({ show })\n },\n [extend]\n )\n\n const hasReachedLimit = typeof limit === 'number' && total >= limit\n const { itemsLimitReached } = useTranslation().IteratePushContainer\n const error = show\n ? new Error(itemsLimitReached.replace('{limit}', String(limit)))\n : undefined\n\n return { setShowStatus, setLimitProps, error, hasReachedLimit }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,SAASC,cAAc,QAAQ,aAAa;AAE5C,SAASC,cAAc,QAAQ,2CAA2C;AAQ1E,eAAe,SAASC,aAAaA,CAAC;EAAEC;AAAqB,CAAC,EAAE;EAC9D,MAAMC,WAAW,GAAGH,cAAc,CAAcE,IAAI,GAAG,gBAAgB,CAAC;EACxE,MAAM;IAAEE,GAAG;IAAEC,MAAM;IAAEC,MAAM;IAAEC;EAAK,CAAC,GAAGJ,WAAW,IAAI,CAAC,CAAC;EACvD,MAAM;IAAEK,KAAK;IAAEC,KAAK;IAAEC;EAAK,CAAC,GAAGH,IAAI,IAAI,CAAC,CAAC;EAEzC,MAAMI,aAAa,GAAGb,WAAW,CAC9Bc,KAAgC,IAAK;IACpC,IAAIA,KAAK,CAACH,KAAK,KAAKA,KAAK,EAAE;MACzBJ,MAAM,CAACO,KAAK,CAAC;IACf,CAAC,MAAM;MACLR,GAAG,CAACQ,KAAK,CAAC;IACZ;EACF,CAAC,EACD,CAACR,GAAG,EAAEK,KAAK,EAAEJ,MAAM,CACrB,CAAC;EAED,MAAMQ,aAAa,GAAGf,WAAW,CAC9BY,IAAa,IAAK;IACjBJ,MAAM,CAAC;MAAEI;IAAK,CAAC,CAAC;EAClB,CAAC,EACD,CAACJ,MAAM,CACT,CAAC;EAED,MAAMQ,eAAe,GAAG,OAAON,KAAK,KAAK,QAAQ,IAAIC,KAAK,IAAID,KAAK;EACnE,MAAM;IAAEO;EAAkB,CAAC,GAAGhB,cAAc,CAAC,CAAC,CAACiB,oBAAoB;EACnE,MAAMC,KAAK,GAAGP,IAAI,GACd,IAAIQ,KAAK,CAACH,iBAAiB,CAACI,OAAO,CAAC,SAAS,EAAEC,MAAM,CAACZ,KAAK,CAAC,CAAC,CAAC,GAC9Da,SAAS;EAEb,OAAO;IAAER,aAAa;IAAEF,aAAa;IAAEM,KAAK;IAAEH;EAAgB,CAAC;AACjE"}
1
+ {"version":3,"file":"useArrayLimit.js","names":["useCallback","useTranslation","useSharedState","useArrayLimit","path","sharedState","set","update","extend","data","limit","total","show","setLimitProps","props","setShowStatus","hasReachedLimit","itemsLimitReached","IteratePushContainer","error","Error","replace","String","undefined"],"sources":["../../../../../../src/extensions/forms/Iterate/hooks/useArrayLimit.tsx"],"sourcesContent":["import { useCallback } from 'react'\nimport { useTranslation } from '../../hooks'\nimport { Path } from '../../types'\nimport { useSharedState } from '../../../../shared/helpers/useSharedState'\n\ntype SharedState = {\n show?: boolean\n limit?: number\n total?: number\n}\n\nexport default function useArrayLimit(path: Path) {\n const sharedState = useSharedState<SharedState>(path + '-iterate-limit')\n const { set, update, extend, data } = sharedState || {}\n const { limit, total, show } = data || {}\n\n const setLimitProps = useCallback(\n (props: Omit<SharedState, 'show'>) => {\n if (props.total !== total) {\n update(props)\n } else {\n set(props)\n }\n },\n [set, total, update]\n )\n\n const setShowStatus = useCallback(\n (show: boolean) => {\n extend({ show })\n },\n [extend]\n )\n\n const hasReachedLimit = typeof limit === 'number' && total >= limit\n const { itemsLimitReached } = useTranslation().IteratePushContainer\n const error = show\n ? new Error(itemsLimitReached.replace('{limit}', String(limit)))\n : undefined\n\n return { setShowStatus, setLimitProps, error, hasReachedLimit }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,SAASC,cAAc,QAAQ,aAAa;AAE5C,SAASC,cAAc,QAAQ,2CAA2C;AAQ1E,eAAe,SAASC,aAAaA,CAACC,IAAU,EAAE;EAChD,MAAMC,WAAW,GAAGH,cAAc,CAAcE,IAAI,GAAG,gBAAgB,CAAC;EACxE,MAAM;IAAEE,GAAG;IAAEC,MAAM;IAAEC,MAAM;IAAEC;EAAK,CAAC,GAAGJ,WAAW,IAAI,CAAC,CAAC;EACvD,MAAM;IAAEK,KAAK;IAAEC,KAAK;IAAEC;EAAK,CAAC,GAAGH,IAAI,IAAI,CAAC,CAAC;EAEzC,MAAMI,aAAa,GAAGb,WAAW,CAC9Bc,KAAgC,IAAK;IACpC,IAAIA,KAAK,CAACH,KAAK,KAAKA,KAAK,EAAE;MACzBJ,MAAM,CAACO,KAAK,CAAC;IACf,CAAC,MAAM;MACLR,GAAG,CAACQ,KAAK,CAAC;IACZ;EACF,CAAC,EACD,CAACR,GAAG,EAAEK,KAAK,EAAEJ,MAAM,CACrB,CAAC;EAED,MAAMQ,aAAa,GAAGf,WAAW,CAC9BY,IAAa,IAAK;IACjBJ,MAAM,CAAC;MAAEI;IAAK,CAAC,CAAC;EAClB,CAAC,EACD,CAACJ,MAAM,CACT,CAAC;EAED,MAAMQ,eAAe,GAAG,OAAON,KAAK,KAAK,QAAQ,IAAIC,KAAK,IAAID,KAAK;EACnE,MAAM;IAAEO;EAAkB,CAAC,GAAGhB,cAAc,CAAC,CAAC,CAACiB,oBAAoB;EACnE,MAAMC,KAAK,GAAGP,IAAI,GACd,IAAIQ,KAAK,CAACH,iBAAiB,CAACI,OAAO,CAAC,SAAS,EAAEC,MAAM,CAACZ,KAAK,CAAC,CAAC,CAAC,GAC9Da,SAAS;EAEb,OAAO;IAAER,aAAa;IAAEF,aAAa;IAAEM,KAAK;IAAEH;EAAgB,CAAC;AACjE"}
@@ -0,0 +1,4 @@
1
+ import type { Path } from '../../types';
2
+ export default function useItemPath(itemPath: Path): {
3
+ absolutePath: string;
4
+ };
@@ -0,0 +1,16 @@
1
+ "use client";
2
+
3
+ import { useContext } from 'react';
4
+ import IterateItemContext from '../IterateItemContext';
5
+ import usePath from '../../hooks/usePath';
6
+ export default function useItemPath(itemPath) {
7
+ const {
8
+ joinPath
9
+ } = usePath();
10
+ const iterateItemContext = useContext(IterateItemContext);
11
+ const absolutePath = itemPath && iterateItemContext && joinPath([iterateItemContext.path, String(iterateItemContext.index), itemPath]);
12
+ return {
13
+ absolutePath
14
+ };
15
+ }
16
+ //# sourceMappingURL=useItemPath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useItemPath.js","names":["useContext","IterateItemContext","usePath","useItemPath","itemPath","joinPath","iterateItemContext","absolutePath","path","String","index"],"sources":["../../../../../../src/extensions/forms/Iterate/hooks/useItemPath.ts"],"sourcesContent":["import { useContext } from 'react'\nimport IterateItemContext from '../IterateItemContext'\nimport usePath from '../../hooks/usePath'\nimport type { Path } from '../../types'\n\nexport default function useItemPath(itemPath: Path) {\n const { joinPath } = usePath()\n const iterateItemContext = useContext(IterateItemContext)\n\n const absolutePath =\n itemPath &&\n iterateItemContext &&\n joinPath([\n iterateItemContext.path,\n String(iterateItemContext.index),\n itemPath,\n ])\n\n return { absolutePath }\n}\n"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,OAAOC,OAAO,MAAM,qBAAqB;AAGzC,eAAe,SAASC,WAAWA,CAACC,QAAc,EAAE;EAClD,MAAM;IAAEC;EAAS,CAAC,GAAGH,OAAO,CAAC,CAAC;EAC9B,MAAMI,kBAAkB,GAAGN,UAAU,CAACC,kBAAkB,CAAC;EAEzD,MAAMM,YAAY,GAChBH,QAAQ,IACRE,kBAAkB,IAClBD,QAAQ,CAAC,CACPC,kBAAkB,CAACE,IAAI,EACvBC,MAAM,CAACH,kBAAkB,CAACI,KAAK,CAAC,EAChCN,QAAQ,CACT,CAAC;EAEJ,OAAO;IAAEG;EAAa,CAAC;AACzB"}