@dnb/eufemia 10.30.2 → 10.32.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 (717) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/cjs/components/anchor/Anchor.d.ts +8 -1
  3. package/cjs/components/anchor/Anchor.js.map +1 -1
  4. package/cjs/components/card/Card.js +3 -2
  5. package/cjs/components/card/Card.js.map +1 -1
  6. package/cjs/components/card/style/dnb-card.css +1 -2
  7. package/cjs/components/card/style/dnb-card.min.css +1 -1
  8. package/cjs/components/card/style/themes/dnb-card-theme-sbanken.css +5 -0
  9. package/cjs/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -0
  10. package/cjs/components/card/style/themes/dnb-card-theme-sbanken.scss +7 -0
  11. package/cjs/components/checkbox/CheckIcon.d.ts +1 -1
  12. package/cjs/components/checkbox/CheckIcon.js +4 -9
  13. package/cjs/components/checkbox/CheckIcon.js.map +1 -1
  14. package/cjs/components/checkbox/Checkbox.d.ts +4 -0
  15. package/cjs/components/checkbox/Checkbox.js +9 -3
  16. package/cjs/components/checkbox/Checkbox.js.map +1 -1
  17. package/cjs/components/checkbox/CheckboxDocs.js +10 -5
  18. package/cjs/components/checkbox/CheckboxDocs.js.map +1 -1
  19. package/cjs/components/checkbox/style/dnb-checkbox.css +95 -15
  20. package/cjs/components/checkbox/style/dnb-checkbox.min.css +1 -1
  21. package/cjs/components/checkbox/style/dnb-checkbox.scss +156 -21
  22. package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.css +22 -2
  23. package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.min.css +4 -2
  24. package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.scss +28 -2
  25. package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-ui.css +20 -2
  26. package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-ui.min.css +5 -1
  27. package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-ui.scss +25 -2
  28. package/cjs/components/flex/Container.d.ts +4 -1
  29. package/cjs/components/flex/Container.js +10 -7
  30. package/cjs/components/flex/Container.js.map +1 -1
  31. package/cjs/components/flex/Stack.js +3 -3
  32. package/cjs/components/flex/Stack.js.map +1 -1
  33. package/cjs/components/flex/utils.js +7 -7
  34. package/cjs/components/flex/utils.js.map +1 -1
  35. package/cjs/components/height-animation/HeightAnimationInstance.js +6 -1
  36. package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
  37. package/cjs/components/modal/Modal.d.ts +2 -0
  38. package/cjs/components/modal/Modal.js +10 -3
  39. package/cjs/components/modal/Modal.js.map +1 -1
  40. package/cjs/components/skeleton/style/dnb-skeleton.css +4 -8
  41. package/cjs/components/skeleton/style/dnb-skeleton.min.css +1 -1
  42. package/cjs/components/space/SpacingUtils.d.ts +1 -1
  43. package/cjs/components/space/SpacingUtils.js +1 -1
  44. package/cjs/components/space/SpacingUtils.js.map +1 -1
  45. package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.css +70 -0
  46. package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.min.css +1 -0
  47. package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.scss +97 -0
  48. package/cjs/components/switch/style/themes/dnb-switch-theme-ui.css +1 -2
  49. package/cjs/components/switch/style/themes/dnb-switch-theme-ui.min.css +1 -1
  50. package/cjs/components/table/style/dnb-table.css +5 -10
  51. package/cjs/components/table/style/dnb-table.min.css +1 -1
  52. package/cjs/components/visually-hidden/style/dnb-visually-hidden.css +1 -2
  53. package/cjs/components/visually-hidden/style/dnb-visually-hidden.min.css +1 -1
  54. package/cjs/extensions/forms/DataContext/Context.d.ts +20 -9
  55. package/cjs/extensions/forms/DataContext/Context.js +2 -3
  56. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  57. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
  58. package/cjs/extensions/forms/DataContext/Provider/Provider.js +69 -32
  59. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  60. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +3 -3
  61. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  62. package/cjs/extensions/forms/Field/Boolean/Boolean.d.ts +12 -2
  63. package/cjs/extensions/forms/Field/Boolean/Boolean.js +2 -1
  64. package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  65. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.d.ts +2 -0
  66. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js +25 -0
  67. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -0
  68. package/cjs/extensions/forms/Field/FieldDocs.js +1 -1
  69. package/cjs/extensions/forms/Field/FieldDocs.js.map +1 -1
  70. package/cjs/extensions/forms/Field/Indeterminate/Indeterminate.d.ts +16 -0
  71. package/cjs/extensions/forms/Field/Indeterminate/Indeterminate.js +53 -0
  72. package/cjs/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -0
  73. package/cjs/extensions/forms/Field/Indeterminate/IndeterminateDocs.d.ts +2 -0
  74. package/cjs/extensions/forms/Field/Indeterminate/IndeterminateDocs.js +38 -0
  75. package/cjs/extensions/forms/Field/Indeterminate/IndeterminateDocs.js.map +1 -0
  76. package/cjs/extensions/forms/Field/Indeterminate/index.d.ts +2 -0
  77. package/cjs/extensions/forms/Field/Indeterminate/index.js +27 -0
  78. package/cjs/extensions/forms/Field/Indeterminate/index.js.map +1 -0
  79. package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.d.ts +6 -0
  80. package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js +81 -0
  81. package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -0
  82. package/cjs/extensions/forms/Field/Name/NameDocs.js +1 -7
  83. package/cjs/extensions/forms/Field/Name/NameDocs.js.map +1 -1
  84. package/cjs/extensions/forms/Field/Number/Number.js +3 -1
  85. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  86. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +1 -1
  87. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  88. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  89. package/cjs/extensions/forms/Field/Toggle/Toggle.d.ts +2 -1
  90. package/cjs/extensions/forms/Field/Toggle/Toggle.js +2 -2
  91. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  92. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.d.ts +2 -0
  93. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js +35 -0
  94. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -0
  95. package/cjs/extensions/forms/Field/index.d.ts +1 -0
  96. package/cjs/extensions/forms/Field/index.js +7 -0
  97. package/cjs/extensions/forms/Field/index.js.map +1 -1
  98. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +5 -0
  99. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  100. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +1 -0
  101. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js +24 -16
  102. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  103. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +1 -3
  104. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  105. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -2
  106. package/cjs/extensions/forms/Form/Element/Element.js +1 -1
  107. package/cjs/extensions/forms/Form/Element/Element.js.map +1 -1
  108. package/cjs/extensions/forms/Form/Handler/Handler.js +2 -2
  109. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  110. package/cjs/extensions/forms/Form/Handler/HandlerDocs.js +5 -0
  111. package/cjs/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -1
  112. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
  113. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  114. package/cjs/extensions/forms/Form/Tools/GenerateSchema.d.ts +8 -0
  115. package/cjs/extensions/forms/Form/Tools/GenerateSchema.js +100 -0
  116. package/cjs/extensions/forms/Form/Tools/GenerateSchema.js.map +1 -0
  117. package/cjs/extensions/forms/Form/Tools/index.d.ts +1 -0
  118. package/cjs/extensions/forms/Form/Tools/index.js +14 -0
  119. package/cjs/extensions/forms/Form/Tools/index.js.map +1 -0
  120. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +19 -5
  121. package/cjs/extensions/forms/Form/Visibility/Visibility.js +41 -10
  122. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  123. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +11 -6
  124. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  125. package/cjs/extensions/forms/Form/data-context/useData.d.ts +1 -1
  126. package/cjs/extensions/forms/Form/data-context/useData.js +2 -2
  127. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  128. package/cjs/extensions/forms/Form/data-context/useError.d.ts +1 -0
  129. package/cjs/extensions/forms/Form/data-context/useError.js +5 -3
  130. package/cjs/extensions/forms/Form/data-context/useError.js.map +1 -1
  131. package/cjs/extensions/forms/Form/index.d.ts +1 -0
  132. package/cjs/extensions/forms/Form/index.js +5 -0
  133. package/cjs/extensions/forms/Form/index.js.map +1 -1
  134. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +8 -1
  135. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -3
  136. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  137. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -1
  138. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  139. package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
  140. package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  141. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +1 -1
  142. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  143. package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
  144. package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  145. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +2 -1
  146. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  147. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  148. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  149. package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
  150. package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  151. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.css +3 -1
  152. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  153. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.scss +4 -1
  154. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +4 -2
  155. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  156. package/cjs/extensions/forms/Wizard/Container/WizardContainer.d.ts +31 -2
  157. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +105 -31
  158. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  159. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
  160. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  161. package/cjs/extensions/forms/Wizard/Step/Step.d.ts +10 -1
  162. package/cjs/extensions/forms/Wizard/Step/Step.js +15 -6
  163. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  164. package/cjs/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  165. package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  166. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css +0 -1
  167. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  168. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -1
  169. package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.css +1 -0
  170. package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.min.css +0 -0
  171. package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.scss +1 -0
  172. package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.css +3 -0
  173. package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.min.css +1 -0
  174. package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.scss +7 -0
  175. package/cjs/extensions/forms/hooks/useFieldProps.js +71 -32
  176. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  177. package/cjs/extensions/forms/style/dnb-forms.css +4 -5
  178. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  179. package/cjs/extensions/forms/types.d.ts +9 -0
  180. package/cjs/extensions/forms/types.js.map +1 -1
  181. package/cjs/fragments/drawer-list/DrawerListHelpers.js +5 -2
  182. package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  183. package/cjs/shared/Eufemia.d.ts +1 -1
  184. package/cjs/shared/Eufemia.js +2 -2
  185. package/cjs/shared/Eufemia.js.map +1 -1
  186. package/cjs/shared/MediaQuery.js +19 -1
  187. package/cjs/shared/MediaQuery.js.map +1 -1
  188. package/cjs/shared/MediaQueryUtils.d.ts +12 -34
  189. package/cjs/shared/MediaQueryUtils.js +22 -12
  190. package/cjs/shared/MediaQueryUtils.js.map +1 -1
  191. package/cjs/shared/component-helper.d.ts +1 -1
  192. package/cjs/shared/component-helper.js +5 -1
  193. package/cjs/shared/component-helper.js.map +1 -1
  194. package/cjs/shared/useMedia.d.ts +7 -2
  195. package/cjs/shared/useMedia.js +16 -11
  196. package/cjs/shared/useMedia.js.map +1 -1
  197. package/cjs/shared/useMediaQuery.js +30 -9
  198. package/cjs/shared/useMediaQuery.js.map +1 -1
  199. package/cjs/style/core/scopes.scss +1 -1
  200. package/cjs/style/dnb-ui-basis.css +2 -3
  201. package/cjs/style/dnb-ui-basis.min.css +1 -1
  202. package/cjs/style/dnb-ui-body.css +1 -1
  203. package/cjs/style/dnb-ui-body.min.css +1 -1
  204. package/cjs/style/dnb-ui-components.css +110 -42
  205. package/cjs/style/dnb-ui-components.min.css +3 -3
  206. package/cjs/style/dnb-ui-core.css +2 -3
  207. package/cjs/style/dnb-ui-core.min.css +1 -1
  208. package/cjs/style/dnb-ui-extensions.css +4 -5
  209. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  210. package/cjs/style/dnb-ui-forms.css +4 -5
  211. package/cjs/style/dnb-ui-forms.min.css +1 -1
  212. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +139 -51
  213. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +10 -6
  214. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +8 -5
  215. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
  216. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
  217. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +8 -5
  218. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
  219. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
  220. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +214 -127
  221. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +9 -7
  222. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
  223. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +5 -5
  224. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  225. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
  226. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +5 -5
  227. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  228. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
  229. package/cjs/style/themes/theme-ui/ui-theme-components.css +139 -51
  230. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +10 -6
  231. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +8 -5
  232. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
  233. package/cjs/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
  234. package/cjs/style/themes/theme-ui/ui-theme-forms.css +8 -5
  235. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
  236. package/cjs/style/themes/theme-ui/ui-theme-forms.scss +1 -0
  237. package/components/anchor/Anchor.d.ts +8 -1
  238. package/components/anchor/Anchor.js.map +1 -1
  239. package/components/card/Card.js +3 -2
  240. package/components/card/Card.js.map +1 -1
  241. package/components/card/style/dnb-card.css +1 -2
  242. package/components/card/style/dnb-card.min.css +1 -1
  243. package/components/card/style/themes/dnb-card-theme-sbanken.css +5 -0
  244. package/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -0
  245. package/components/card/style/themes/dnb-card-theme-sbanken.scss +7 -0
  246. package/components/checkbox/CheckIcon.d.ts +1 -1
  247. package/components/checkbox/CheckIcon.js +4 -8
  248. package/components/checkbox/CheckIcon.js.map +1 -1
  249. package/components/checkbox/Checkbox.d.ts +4 -0
  250. package/components/checkbox/Checkbox.js +9 -3
  251. package/components/checkbox/Checkbox.js.map +1 -1
  252. package/components/checkbox/CheckboxDocs.js +10 -5
  253. package/components/checkbox/CheckboxDocs.js.map +1 -1
  254. package/components/checkbox/style/dnb-checkbox.css +95 -15
  255. package/components/checkbox/style/dnb-checkbox.min.css +1 -1
  256. package/components/checkbox/style/dnb-checkbox.scss +156 -21
  257. package/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.css +22 -2
  258. package/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.min.css +4 -2
  259. package/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.scss +28 -2
  260. package/components/checkbox/style/themes/dnb-checkbox-theme-ui.css +20 -2
  261. package/components/checkbox/style/themes/dnb-checkbox-theme-ui.min.css +5 -1
  262. package/components/checkbox/style/themes/dnb-checkbox-theme-ui.scss +25 -2
  263. package/components/flex/Container.d.ts +4 -1
  264. package/components/flex/Container.js +10 -7
  265. package/components/flex/Container.js.map +1 -1
  266. package/components/flex/Stack.js +3 -3
  267. package/components/flex/Stack.js.map +1 -1
  268. package/components/flex/utils.js +8 -8
  269. package/components/flex/utils.js.map +1 -1
  270. package/components/height-animation/HeightAnimationInstance.js +6 -1
  271. package/components/height-animation/HeightAnimationInstance.js.map +1 -1
  272. package/components/modal/Modal.d.ts +2 -0
  273. package/components/modal/Modal.js +10 -3
  274. package/components/modal/Modal.js.map +1 -1
  275. package/components/skeleton/style/dnb-skeleton.css +4 -8
  276. package/components/skeleton/style/dnb-skeleton.min.css +1 -1
  277. package/components/space/SpacingUtils.d.ts +1 -1
  278. package/components/space/SpacingUtils.js +1 -1
  279. package/components/space/SpacingUtils.js.map +1 -1
  280. package/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.css +70 -0
  281. package/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.min.css +1 -0
  282. package/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.scss +97 -0
  283. package/components/switch/style/themes/dnb-switch-theme-ui.css +1 -2
  284. package/components/switch/style/themes/dnb-switch-theme-ui.min.css +1 -1
  285. package/components/table/style/dnb-table.css +5 -10
  286. package/components/table/style/dnb-table.min.css +1 -1
  287. package/components/visually-hidden/style/dnb-visually-hidden.css +1 -2
  288. package/components/visually-hidden/style/dnb-visually-hidden.min.css +1 -1
  289. package/es/components/anchor/Anchor.d.ts +8 -1
  290. package/es/components/anchor/Anchor.js.map +1 -1
  291. package/es/components/card/Card.js +3 -2
  292. package/es/components/card/Card.js.map +1 -1
  293. package/es/components/card/style/dnb-card.css +1 -2
  294. package/es/components/card/style/dnb-card.min.css +1 -1
  295. package/es/components/card/style/themes/dnb-card-theme-sbanken.css +5 -0
  296. package/es/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -0
  297. package/es/components/card/style/themes/dnb-card-theme-sbanken.scss +7 -0
  298. package/es/components/checkbox/CheckIcon.d.ts +1 -1
  299. package/es/components/checkbox/CheckIcon.js +5 -10
  300. package/es/components/checkbox/CheckIcon.js.map +1 -1
  301. package/es/components/checkbox/Checkbox.d.ts +4 -0
  302. package/es/components/checkbox/Checkbox.js +9 -3
  303. package/es/components/checkbox/Checkbox.js.map +1 -1
  304. package/es/components/checkbox/CheckboxDocs.js +10 -5
  305. package/es/components/checkbox/CheckboxDocs.js.map +1 -1
  306. package/es/components/checkbox/style/dnb-checkbox.css +95 -15
  307. package/es/components/checkbox/style/dnb-checkbox.min.css +1 -1
  308. package/es/components/checkbox/style/dnb-checkbox.scss +156 -21
  309. package/es/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.css +22 -2
  310. package/es/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.min.css +4 -2
  311. package/es/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.scss +28 -2
  312. package/es/components/checkbox/style/themes/dnb-checkbox-theme-ui.css +20 -2
  313. package/es/components/checkbox/style/themes/dnb-checkbox-theme-ui.min.css +5 -1
  314. package/es/components/checkbox/style/themes/dnb-checkbox-theme-ui.scss +25 -2
  315. package/es/components/flex/Container.d.ts +4 -1
  316. package/es/components/flex/Container.js +10 -7
  317. package/es/components/flex/Container.js.map +1 -1
  318. package/es/components/flex/Stack.js +3 -3
  319. package/es/components/flex/Stack.js.map +1 -1
  320. package/es/components/flex/utils.js +8 -8
  321. package/es/components/flex/utils.js.map +1 -1
  322. package/es/components/height-animation/HeightAnimationInstance.js +6 -1
  323. package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
  324. package/es/components/modal/Modal.d.ts +2 -0
  325. package/es/components/modal/Modal.js +10 -3
  326. package/es/components/modal/Modal.js.map +1 -1
  327. package/es/components/skeleton/style/dnb-skeleton.css +4 -8
  328. package/es/components/skeleton/style/dnb-skeleton.min.css +1 -1
  329. package/es/components/space/SpacingUtils.d.ts +1 -1
  330. package/es/components/space/SpacingUtils.js +1 -1
  331. package/es/components/space/SpacingUtils.js.map +1 -1
  332. package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.css +70 -0
  333. package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.min.css +1 -0
  334. package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.scss +97 -0
  335. package/es/components/switch/style/themes/dnb-switch-theme-ui.css +1 -2
  336. package/es/components/switch/style/themes/dnb-switch-theme-ui.min.css +1 -1
  337. package/es/components/table/style/dnb-table.css +5 -10
  338. package/es/components/table/style/dnb-table.min.css +1 -1
  339. package/es/components/visually-hidden/style/dnb-visually-hidden.css +1 -2
  340. package/es/components/visually-hidden/style/dnb-visually-hidden.min.css +1 -1
  341. package/es/extensions/forms/DataContext/Context.d.ts +20 -9
  342. package/es/extensions/forms/DataContext/Context.js +2 -3
  343. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  344. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
  345. package/es/extensions/forms/DataContext/Provider/Provider.js +66 -30
  346. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  347. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +3 -3
  348. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  349. package/es/extensions/forms/Field/Boolean/Boolean.d.ts +12 -2
  350. package/es/extensions/forms/Field/Boolean/Boolean.js +2 -1
  351. package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  352. package/es/extensions/forms/Field/Boolean/BooleanDocs.d.ts +2 -0
  353. package/es/extensions/forms/Field/Boolean/BooleanDocs.js +18 -0
  354. package/es/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -0
  355. package/es/extensions/forms/Field/FieldDocs.js +2 -2
  356. package/es/extensions/forms/Field/FieldDocs.js.map +1 -1
  357. package/es/extensions/forms/Field/Indeterminate/Indeterminate.d.ts +16 -0
  358. package/es/extensions/forms/Field/Indeterminate/Indeterminate.js +43 -0
  359. package/es/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -0
  360. package/es/extensions/forms/Field/Indeterminate/IndeterminateDocs.d.ts +2 -0
  361. package/es/extensions/forms/Field/Indeterminate/IndeterminateDocs.js +29 -0
  362. package/es/extensions/forms/Field/Indeterminate/IndeterminateDocs.js.map +1 -0
  363. package/es/extensions/forms/Field/Indeterminate/index.d.ts +2 -0
  364. package/es/extensions/forms/Field/Indeterminate/index.js +3 -0
  365. package/es/extensions/forms/Field/Indeterminate/index.js.map +1 -0
  366. package/es/extensions/forms/Field/Indeterminate/useDependencePaths.d.ts +6 -0
  367. package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js +74 -0
  368. package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -0
  369. package/es/extensions/forms/Field/Name/NameDocs.js +1 -8
  370. package/es/extensions/forms/Field/Name/NameDocs.js.map +1 -1
  371. package/es/extensions/forms/Field/Number/Number.js +3 -1
  372. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  373. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +1 -1
  374. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  375. package/es/extensions/forms/Field/String/String.js.map +1 -1
  376. package/es/extensions/forms/Field/Toggle/Toggle.d.ts +2 -1
  377. package/es/extensions/forms/Field/Toggle/Toggle.js +2 -2
  378. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  379. package/es/extensions/forms/Field/Toggle/ToggleDocs.d.ts +2 -0
  380. package/es/extensions/forms/Field/Toggle/ToggleDocs.js +28 -0
  381. package/es/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -0
  382. package/es/extensions/forms/Field/index.d.ts +1 -0
  383. package/es/extensions/forms/Field/index.js +1 -0
  384. package/es/extensions/forms/Field/index.js.map +1 -1
  385. package/es/extensions/forms/FieldBlock/FieldBlock.js +5 -0
  386. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  387. package/es/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +1 -0
  388. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js +20 -15
  389. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  390. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +1 -3
  391. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  392. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -2
  393. package/es/extensions/forms/Form/Element/Element.js +1 -1
  394. package/es/extensions/forms/Form/Element/Element.js.map +1 -1
  395. package/es/extensions/forms/Form/Handler/Handler.js +2 -2
  396. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  397. package/es/extensions/forms/Form/Handler/HandlerDocs.js +5 -0
  398. package/es/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -1
  399. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
  400. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  401. package/es/extensions/forms/Form/Tools/GenerateSchema.d.ts +8 -0
  402. package/es/extensions/forms/Form/Tools/GenerateSchema.js +89 -0
  403. package/es/extensions/forms/Form/Tools/GenerateSchema.js.map +1 -0
  404. package/es/extensions/forms/Form/Tools/index.d.ts +1 -0
  405. package/es/extensions/forms/Form/Tools/index.js +1 -0
  406. package/es/extensions/forms/Form/Tools/index.js.map +1 -0
  407. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +19 -5
  408. package/es/extensions/forms/Form/Visibility/Visibility.js +41 -10
  409. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  410. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +11 -6
  411. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  412. package/es/extensions/forms/Form/data-context/useData.d.ts +1 -1
  413. package/es/extensions/forms/Form/data-context/useData.js +1 -2
  414. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  415. package/es/extensions/forms/Form/data-context/useError.d.ts +1 -0
  416. package/es/extensions/forms/Form/data-context/useError.js +5 -3
  417. package/es/extensions/forms/Form/data-context/useError.js.map +1 -1
  418. package/es/extensions/forms/Form/index.d.ts +1 -0
  419. package/es/extensions/forms/Form/index.js +1 -0
  420. package/es/extensions/forms/Form/index.js.map +1 -1
  421. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +8 -1
  422. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -3
  423. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  424. package/es/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -1
  425. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  426. package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
  427. package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  428. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +1 -1
  429. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  430. package/es/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
  431. package/es/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  432. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +2 -1
  433. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  434. package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  435. package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  436. package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
  437. package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  438. package/es/extensions/forms/Iterate/style/dnb-form-iterate.css +3 -1
  439. package/es/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  440. package/es/extensions/forms/Iterate/style/dnb-form-iterate.scss +4 -1
  441. package/es/extensions/forms/ValueBlock/ValueBlock.js +4 -2
  442. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  443. package/es/extensions/forms/Wizard/Container/WizardContainer.d.ts +31 -2
  444. package/es/extensions/forms/Wizard/Container/WizardContainer.js +101 -31
  445. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  446. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
  447. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  448. package/es/extensions/forms/Wizard/Step/Step.d.ts +10 -1
  449. package/es/extensions/forms/Wizard/Step/Step.js +15 -6
  450. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  451. package/es/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  452. package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  453. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.css +0 -1
  454. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  455. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -1
  456. package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.css +1 -0
  457. package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.min.css +0 -0
  458. package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.scss +1 -0
  459. package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.css +3 -0
  460. package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.min.css +1 -0
  461. package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.scss +7 -0
  462. package/es/extensions/forms/hooks/useFieldProps.js +68 -29
  463. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  464. package/es/extensions/forms/style/dnb-forms.css +4 -5
  465. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  466. package/es/extensions/forms/types.d.ts +9 -0
  467. package/es/extensions/forms/types.js.map +1 -1
  468. package/es/fragments/drawer-list/DrawerListHelpers.js +5 -2
  469. package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  470. package/es/shared/Eufemia.d.ts +1 -1
  471. package/es/shared/Eufemia.js +2 -2
  472. package/es/shared/Eufemia.js.map +1 -1
  473. package/es/shared/MediaQuery.js +19 -1
  474. package/es/shared/MediaQuery.js.map +1 -1
  475. package/es/shared/MediaQueryUtils.d.ts +12 -34
  476. package/es/shared/MediaQueryUtils.js +22 -17
  477. package/es/shared/MediaQueryUtils.js.map +1 -1
  478. package/es/shared/component-helper.d.ts +1 -1
  479. package/es/shared/component-helper.js +5 -2
  480. package/es/shared/component-helper.js.map +1 -1
  481. package/es/shared/useMedia.d.ts +7 -2
  482. package/es/shared/useMedia.js +14 -11
  483. package/es/shared/useMedia.js.map +1 -1
  484. package/es/shared/useMediaQuery.js +28 -9
  485. package/es/shared/useMediaQuery.js.map +1 -1
  486. package/es/style/core/scopes.scss +1 -1
  487. package/es/style/dnb-ui-basis.css +2 -3
  488. package/es/style/dnb-ui-basis.min.css +1 -1
  489. package/es/style/dnb-ui-body.css +1 -1
  490. package/es/style/dnb-ui-body.min.css +1 -1
  491. package/es/style/dnb-ui-components.css +110 -42
  492. package/es/style/dnb-ui-components.min.css +3 -3
  493. package/es/style/dnb-ui-core.css +2 -3
  494. package/es/style/dnb-ui-core.min.css +1 -1
  495. package/es/style/dnb-ui-extensions.css +4 -5
  496. package/es/style/dnb-ui-extensions.min.css +1 -1
  497. package/es/style/dnb-ui-forms.css +4 -5
  498. package/es/style/dnb-ui-forms.min.css +1 -1
  499. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +139 -51
  500. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +10 -6
  501. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +8 -5
  502. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
  503. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
  504. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +8 -5
  505. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
  506. package/es/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
  507. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +214 -127
  508. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +9 -7
  509. package/es/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
  510. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +5 -5
  511. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  512. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
  513. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +5 -5
  514. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  515. package/es/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
  516. package/es/style/themes/theme-ui/ui-theme-components.css +139 -51
  517. package/es/style/themes/theme-ui/ui-theme-components.min.css +10 -6
  518. package/es/style/themes/theme-ui/ui-theme-extensions.css +8 -5
  519. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
  520. package/es/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
  521. package/es/style/themes/theme-ui/ui-theme-forms.css +8 -5
  522. package/es/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
  523. package/es/style/themes/theme-ui/ui-theme-forms.scss +1 -0
  524. package/esm/dnb-ui-basis.min.mjs +1 -1
  525. package/esm/dnb-ui-components.min.mjs +1 -1
  526. package/esm/dnb-ui-elements.min.mjs +1 -1
  527. package/esm/dnb-ui-extensions.min.mjs +3 -3
  528. package/esm/dnb-ui-lib.min.mjs +1 -1
  529. package/extensions/forms/DataContext/Context.d.ts +20 -9
  530. package/extensions/forms/DataContext/Context.js +2 -3
  531. package/extensions/forms/DataContext/Context.js.map +1 -1
  532. package/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
  533. package/extensions/forms/DataContext/Provider/Provider.js +69 -32
  534. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  535. package/extensions/forms/DataContext/Provider/ProviderDocs.js +3 -3
  536. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  537. package/extensions/forms/Field/Boolean/Boolean.d.ts +12 -2
  538. package/extensions/forms/Field/Boolean/Boolean.js +2 -1
  539. package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  540. package/extensions/forms/Field/Boolean/BooleanDocs.d.ts +2 -0
  541. package/extensions/forms/Field/Boolean/BooleanDocs.js +18 -0
  542. package/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -0
  543. package/extensions/forms/Field/FieldDocs.js +2 -2
  544. package/extensions/forms/Field/FieldDocs.js.map +1 -1
  545. package/extensions/forms/Field/Indeterminate/Indeterminate.d.ts +16 -0
  546. package/extensions/forms/Field/Indeterminate/Indeterminate.js +43 -0
  547. package/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -0
  548. package/extensions/forms/Field/Indeterminate/IndeterminateDocs.d.ts +2 -0
  549. package/extensions/forms/Field/Indeterminate/IndeterminateDocs.js +29 -0
  550. package/extensions/forms/Field/Indeterminate/IndeterminateDocs.js.map +1 -0
  551. package/extensions/forms/Field/Indeterminate/index.d.ts +2 -0
  552. package/extensions/forms/Field/Indeterminate/index.js +3 -0
  553. package/extensions/forms/Field/Indeterminate/index.js.map +1 -0
  554. package/extensions/forms/Field/Indeterminate/useDependencePaths.d.ts +6 -0
  555. package/extensions/forms/Field/Indeterminate/useDependencePaths.js +75 -0
  556. package/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -0
  557. package/extensions/forms/Field/Name/NameDocs.js +1 -8
  558. package/extensions/forms/Field/Name/NameDocs.js.map +1 -1
  559. package/extensions/forms/Field/Number/Number.js +3 -1
  560. package/extensions/forms/Field/Number/Number.js.map +1 -1
  561. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +1 -1
  562. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  563. package/extensions/forms/Field/String/String.js.map +1 -1
  564. package/extensions/forms/Field/Toggle/Toggle.d.ts +2 -1
  565. package/extensions/forms/Field/Toggle/Toggle.js +2 -2
  566. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  567. package/extensions/forms/Field/Toggle/ToggleDocs.d.ts +2 -0
  568. package/extensions/forms/Field/Toggle/ToggleDocs.js +28 -0
  569. package/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -0
  570. package/extensions/forms/Field/index.d.ts +1 -0
  571. package/extensions/forms/Field/index.js +1 -0
  572. package/extensions/forms/Field/index.js.map +1 -1
  573. package/extensions/forms/FieldBlock/FieldBlock.js +5 -0
  574. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  575. package/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +1 -0
  576. package/extensions/forms/FieldBlock/FieldBlockDocs.js +20 -15
  577. package/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  578. package/extensions/forms/FieldBlock/style/dnb-field-block.css +1 -3
  579. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  580. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -2
  581. package/extensions/forms/Form/Element/Element.js +1 -1
  582. package/extensions/forms/Form/Element/Element.js.map +1 -1
  583. package/extensions/forms/Form/Handler/Handler.js +2 -2
  584. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  585. package/extensions/forms/Form/Handler/HandlerDocs.js +5 -0
  586. package/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -1
  587. package/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
  588. package/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  589. package/extensions/forms/Form/Tools/GenerateSchema.d.ts +8 -0
  590. package/extensions/forms/Form/Tools/GenerateSchema.js +90 -0
  591. package/extensions/forms/Form/Tools/GenerateSchema.js.map +1 -0
  592. package/extensions/forms/Form/Tools/index.d.ts +1 -0
  593. package/extensions/forms/Form/Tools/index.js +1 -0
  594. package/extensions/forms/Form/Tools/index.js.map +1 -0
  595. package/extensions/forms/Form/Visibility/Visibility.d.ts +19 -5
  596. package/extensions/forms/Form/Visibility/Visibility.js +41 -10
  597. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  598. package/extensions/forms/Form/Visibility/VisibilityDocs.js +11 -6
  599. package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  600. package/extensions/forms/Form/data-context/useData.d.ts +1 -1
  601. package/extensions/forms/Form/data-context/useData.js +2 -2
  602. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  603. package/extensions/forms/Form/data-context/useError.d.ts +1 -0
  604. package/extensions/forms/Form/data-context/useError.js +5 -3
  605. package/extensions/forms/Form/data-context/useError.js.map +1 -1
  606. package/extensions/forms/Form/index.d.ts +1 -0
  607. package/extensions/forms/Form/index.js +2 -0
  608. package/extensions/forms/Form/index.js.map +1 -1
  609. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +8 -1
  610. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -3
  611. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  612. package/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -1
  613. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  614. package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
  615. package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  616. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +1 -1
  617. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  618. package/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
  619. package/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  620. package/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +2 -1
  621. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  622. package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  623. package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  624. package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
  625. package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  626. package/extensions/forms/Iterate/style/dnb-form-iterate.css +3 -1
  627. package/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  628. package/extensions/forms/Iterate/style/dnb-form-iterate.scss +4 -1
  629. package/extensions/forms/ValueBlock/ValueBlock.js +4 -2
  630. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  631. package/extensions/forms/Wizard/Container/WizardContainer.d.ts +31 -2
  632. package/extensions/forms/Wizard/Container/WizardContainer.js +105 -31
  633. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  634. package/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
  635. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  636. package/extensions/forms/Wizard/Step/Step.d.ts +10 -1
  637. package/extensions/forms/Wizard/Step/Step.js +15 -6
  638. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  639. package/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  640. package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  641. package/extensions/forms/Wizard/style/dnb-wizard-layout.css +0 -1
  642. package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  643. package/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -1
  644. package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.css +1 -0
  645. package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.min.css +0 -0
  646. package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.scss +1 -0
  647. package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.css +3 -0
  648. package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.min.css +1 -0
  649. package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.scss +7 -0
  650. package/extensions/forms/hooks/useFieldProps.js +71 -32
  651. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  652. package/extensions/forms/style/dnb-forms.css +4 -5
  653. package/extensions/forms/style/dnb-forms.min.css +1 -1
  654. package/extensions/forms/types.d.ts +9 -0
  655. package/extensions/forms/types.js.map +1 -1
  656. package/fragments/drawer-list/DrawerListHelpers.js +5 -2
  657. package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  658. package/package.json +1 -1
  659. package/shared/Eufemia.d.ts +1 -1
  660. package/shared/Eufemia.js +2 -2
  661. package/shared/Eufemia.js.map +1 -1
  662. package/shared/MediaQuery.js +19 -1
  663. package/shared/MediaQuery.js.map +1 -1
  664. package/shared/MediaQueryUtils.d.ts +12 -34
  665. package/shared/MediaQueryUtils.js +22 -12
  666. package/shared/MediaQueryUtils.js.map +1 -1
  667. package/shared/component-helper.d.ts +1 -1
  668. package/shared/component-helper.js +5 -1
  669. package/shared/component-helper.js.map +1 -1
  670. package/shared/useMedia.d.ts +7 -2
  671. package/shared/useMedia.js +14 -11
  672. package/shared/useMedia.js.map +1 -1
  673. package/shared/useMediaQuery.js +28 -9
  674. package/shared/useMediaQuery.js.map +1 -1
  675. package/style/core/scopes.scss +1 -1
  676. package/style/dnb-ui-basis.css +2 -3
  677. package/style/dnb-ui-basis.min.css +1 -1
  678. package/style/dnb-ui-body.css +1 -1
  679. package/style/dnb-ui-body.min.css +1 -1
  680. package/style/dnb-ui-components.css +110 -42
  681. package/style/dnb-ui-components.min.css +3 -3
  682. package/style/dnb-ui-core.css +2 -3
  683. package/style/dnb-ui-core.min.css +1 -1
  684. package/style/dnb-ui-extensions.css +4 -5
  685. package/style/dnb-ui-extensions.min.css +1 -1
  686. package/style/dnb-ui-forms.css +4 -5
  687. package/style/dnb-ui-forms.min.css +1 -1
  688. package/style/themes/theme-eiendom/eiendom-theme-components.css +139 -51
  689. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +10 -6
  690. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +8 -5
  691. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
  692. package/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
  693. package/style/themes/theme-eiendom/eiendom-theme-forms.css +8 -5
  694. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
  695. package/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
  696. package/style/themes/theme-sbanken/sbanken-theme-components.css +214 -127
  697. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +9 -7
  698. package/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
  699. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +5 -5
  700. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  701. package/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
  702. package/style/themes/theme-sbanken/sbanken-theme-forms.css +5 -5
  703. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  704. package/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
  705. package/style/themes/theme-ui/ui-theme-components.css +139 -51
  706. package/style/themes/theme-ui/ui-theme-components.min.css +10 -6
  707. package/style/themes/theme-ui/ui-theme-extensions.css +8 -5
  708. package/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
  709. package/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
  710. package/style/themes/theme-ui/ui-theme-forms.css +8 -5
  711. package/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
  712. package/style/themes/theme-ui/ui-theme-forms.scss +1 -0
  713. package/umd/dnb-ui-basis.min.js +1 -1
  714. package/umd/dnb-ui-components.min.js +1 -1
  715. package/umd/dnb-ui-elements.min.js +1 -1
  716. package/umd/dnb-ui-extensions.min.js +3 -3
  717. package/umd/dnb-ui-lib.min.js +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["default","GenerateSchema"],"sources":["../../../../../../src/extensions/forms/Form/Tools/index.ts"],"sourcesContent":["export { default as GenerateSchema } from './GenerateSchema'\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,cAAc,QAAQ,kBAAkB"}
@@ -1,7 +1,15 @@
1
1
  import React, { AriaAttributes } from 'react';
2
2
  import { HeightAnimationProps } from '../../../../components/HeightAnimation';
3
+ import { FilterData } from '../../DataContext/Context';
3
4
  import type { UseFieldProps } from '../../types';
4
5
  import type { DataAttributes } from '../../hooks/useFieldProps';
6
+ type VisibleWhen = {
7
+ path: string;
8
+ hasValue: unknown;
9
+ } | {
10
+ path: string;
11
+ withValue: (value: unknown) => boolean;
12
+ };
5
13
  export type Props = {
6
14
  visible?: boolean;
7
15
  /** Given data context path must be defined to show children */
@@ -16,12 +24,14 @@ export type Props = {
16
24
  pathTrue?: string;
17
25
  /** Given data context path must be false to show children */
18
26
  pathFalse?: string;
19
- /** Given data context path must match, as well as the "whenValue" value */
20
- pathValue?: string;
21
- /** Given data context value must match this value to show children */
22
- whenValue?: unknown;
27
+ /** Provide a `path` and a `hasValue` property with the excepted value in order to show children. You can alternatively provide a `withValue` function that returns a boolean. The first parameter is the value of the path. */
28
+ visibleWhen?: VisibleWhen;
29
+ /** Same as `visibleWhen`, but with inverted logic. */
30
+ visibleWhenNot?: VisibleWhen;
23
31
  /** Infer visibility calling given derivative function with the whole data set. Should return true/false for visibility. */
24
32
  inferData?: (data: unknown) => boolean;
33
+ /** Filter data based on provided criteria. The first parameter is the path, the second is the value, and the third is the props, and the fourth is the internal. Return false to filter out the data. */
34
+ filterData?: FilterData;
25
35
  /** Animate the visibility change */
26
36
  animate?: boolean;
27
37
  /** Keep the content in the DOM, even if it's not visible */
@@ -30,8 +40,12 @@ export type Props = {
30
40
  fieldPropsWhenHidden?: UseFieldProps & DataAttributes & AriaAttributes;
31
41
  element?: HeightAnimationProps['element'];
32
42
  children: React.ReactNode;
43
+ /** @deprecated Use `visibleWhen` instead */
44
+ pathValue?: string;
45
+ /** @deprecated Use `visibleWhen` instead */
46
+ whenValue?: unknown;
33
47
  };
34
- declare function Visibility({ visible, pathDefined, pathUndefined, pathTruthy, pathFalsy, pathTrue, pathFalse, pathValue, whenValue, inferData, animate, keepInDOM, fieldPropsWhenHidden, children, ...rest }: Props): import("react/jsx-runtime").JSX.Element;
48
+ declare function Visibility({ visible, pathDefined, pathUndefined, pathTruthy, pathFalsy, pathTrue, pathFalse, pathValue, whenValue, visibleWhen, visibleWhenNot, inferData, filterData, animate, keepInDOM, fieldPropsWhenHidden, children, ...rest }: Props): import("react/jsx-runtime").JSX.Element;
35
49
  declare namespace Visibility {
36
50
  var _supportsSpacingProps: string;
37
51
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
- const _excluded = ["visible", "pathDefined", "pathUndefined", "pathTruthy", "pathFalsy", "pathTrue", "pathFalse", "pathValue", "whenValue", "inferData", "animate", "keepInDOM", "fieldPropsWhenHidden", "children"];
5
+ const _excluded = ["visible", "pathDefined", "pathUndefined", "pathTruthy", "pathFalsy", "pathTrue", "pathFalse", "pathValue", "whenValue", "visibleWhen", "visibleWhenNot", "inferData", "filterData", "animate", "keepInDOM", "fieldPropsWhenHidden", "children"];
6
6
  import React, { useContext } from 'react';
7
7
  import pointer from 'json-pointer';
8
8
  import { warn } from '../../../../shared/helpers';
@@ -21,7 +21,10 @@ function Visibility(_ref) {
21
21
  pathFalse,
22
22
  pathValue,
23
23
  whenValue,
24
+ visibleWhen,
25
+ visibleWhenNot,
24
26
  inferData,
27
+ filterData,
25
28
  animate,
26
29
  keepInDOM,
27
30
  fieldPropsWhenHidden,
@@ -35,31 +38,59 @@ function Visibility(_ref) {
35
38
  }
36
39
  });
37
40
  const check = () => {
41
+ var _dataContext$filterDa;
38
42
  if (visible === false) {
39
43
  return;
40
44
  }
41
- if (pathDefined && !pointer.has(dataContext.data, pathDefined)) {
45
+ const data = filterData && ((_dataContext$filterDa = dataContext.filterDataHandler) === null || _dataContext$filterDa === void 0 ? void 0 : _dataContext$filterDa.call(dataContext, dataContext.data, filterData)) || dataContext.data;
46
+ if (visibleWhen || visibleWhenNot) {
47
+ if (visibleWhenNot) {
48
+ visibleWhen = visibleWhenNot;
49
+ }
50
+ const hasPath = pointer.has(data, visibleWhen.path);
51
+ if (hasPath) {
52
+ var _visibleWhen, _visibleWhen2;
53
+ const value = pointer.get(data, visibleWhen.path);
54
+ const withValue = (_visibleWhen = visibleWhen) === null || _visibleWhen === void 0 ? void 0 : _visibleWhen['withValue'];
55
+ const result = withValue && (withValue === null || withValue === void 0 ? void 0 : withValue(value)) === false || Object.prototype.hasOwnProperty.call(visibleWhen, 'hasValue') && ((_visibleWhen2 = visibleWhen) === null || _visibleWhen2 === void 0 ? void 0 : _visibleWhen2['hasValue']) !== value;
56
+ if (visibleWhenNot) {
57
+ if (!result) {
58
+ return;
59
+ }
60
+ } else if (result) {
61
+ return;
62
+ }
63
+ } else {
64
+ return;
65
+ }
66
+ }
67
+ if (pathDefined && !pointer.has(data, pathDefined)) {
42
68
  return;
43
69
  }
44
- if (pathUndefined && pointer.has(dataContext.data, pathUndefined)) {
70
+ if (pathUndefined && pointer.has(data, pathUndefined)) {
45
71
  return;
46
72
  }
47
- if (pathTruthy && (!pointer.has(dataContext.data, pathTruthy) || !pointer.get(dataContext.data, pathTruthy))) {
73
+ const getValue = path => {
74
+ if (pointer.has(data, path)) {
75
+ return pointer.get(data, path);
76
+ }
77
+ };
78
+ if (pathTrue && getValue(pathTrue) !== true) {
48
79
  return;
49
80
  }
50
- if (pathFalsy && pointer.has(dataContext.data, pathFalsy) && Boolean(pointer.get(dataContext.data, pathFalsy))) {
81
+ if (pathFalse && getValue(pathFalse) !== false) {
51
82
  return;
52
83
  }
53
- if (pathTrue && (!pointer.has(dataContext.data, pathTrue) || pointer.get(dataContext.data, pathTrue) !== true)) {
84
+ if (pathTruthy && Boolean(getValue(pathTruthy)) === false) {
54
85
  return;
55
86
  }
56
- if (pathFalse && (!pointer.has(dataContext.data, pathFalse) || pointer.get(dataContext.data, pathFalse) !== false)) {
87
+ if (pathFalsy && Boolean(getValue(pathFalsy)) === true) {
57
88
  return;
58
89
  }
59
- if (pathValue && !(pointer.has(dataContext.data, pathValue) && pointer.get(dataContext.data, pathValue) === whenValue)) {
90
+ if (inferData && !inferData(data)) {
60
91
  return;
61
92
  }
62
- if (inferData && !inferData(dataContext.data)) {
93
+ if (pathValue && getValue(pathValue) !== whenValue) {
63
94
  return;
64
95
  }
65
96
  return true;
@@ -69,7 +100,7 @@ function Visibility(_ref) {
69
100
  const props = !open ? fieldPropsWhenHidden : null;
70
101
  return React.createElement(HeightAnimation, _extends({
71
102
  open: open,
72
- keepInDOM: keepInDOM,
103
+ keepInDOM: Boolean(keepInDOM),
73
104
  className: "dnb-forms-visibility"
74
105
  }, rest), React.createElement(FieldProps, props, children));
75
106
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Visibility.js","names":["React","useContext","pointer","warn","useMountEffect","HeightAnimation","DataContext","FieldProps","Visibility","_ref","visible","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","pathValue","whenValue","inferData","animate","keepInDOM","fieldPropsWhenHidden","children","rest","_objectWithoutProperties","_excluded","dataContext","check","has","data","get","Boolean","open","props","createElement","_extends","className","hidden","Fragment","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/Visibility.tsx"],"sourcesContent":["import React, { AriaAttributes, useContext } from 'react'\nimport pointer from 'json-pointer'\nimport { warn } from '../../../../shared/helpers'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport HeightAnimation, {\n HeightAnimationProps,\n} from '../../../../components/HeightAnimation'\nimport DataContext from '../../DataContext/Context'\nimport FieldProps from '../FieldProps'\nimport type { UseFieldProps } from '../../types'\nimport type { DataAttributes } from '../../hooks/useFieldProps'\n\nexport type Props = {\n visible?: boolean\n /** Given data context path must be defined to show children */\n pathDefined?: string\n /** Given data context path must be undefined to show children */\n pathUndefined?: string\n /** Given data context path must be truthy to show children */\n pathTruthy?: string\n /** Given data context path must be falsy to show children */\n pathFalsy?: string\n /** Given data context path must be true to show children */\n pathTrue?: string\n /** Given data context path must be false to show children */\n pathFalse?: string\n /** Given data context path must match, as well as the \"whenValue\" value */\n pathValue?: string\n /** Given data context value must match this value to show children */\n whenValue?: unknown\n /** Infer visibility calling given derivative function with the whole data set. Should return true/false for visibility. */\n inferData?: (data: unknown) => boolean\n /** Animate the visibility change */\n animate?: boolean\n /** Keep the content in the DOM, even if it's not visible */\n keepInDOM?: boolean\n /** When visibility is hidden, and `keepInDOM` is true, pass these props to the children */\n fieldPropsWhenHidden?: UseFieldProps & DataAttributes & AriaAttributes\n element?: HeightAnimationProps['element']\n children: React.ReactNode\n}\n\nfunction Visibility({\n visible,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n inferData,\n animate,\n keepInDOM,\n fieldPropsWhenHidden,\n children,\n ...rest\n}: Props) {\n const dataContext = useContext(DataContext)\n\n useMountEffect(() => {\n if (fieldPropsWhenHidden && !keepInDOM) {\n warn('Using \"fieldPropsWhenHidden\" requires \"keepInDOM\" to be true.')\n }\n })\n\n const check = () => {\n if (visible === false) {\n return\n }\n\n if (pathDefined && !pointer.has(dataContext.data, pathDefined)) {\n return\n }\n if (pathUndefined && pointer.has(dataContext.data, pathUndefined)) {\n return\n }\n\n if (\n pathTruthy &&\n (!pointer.has(dataContext.data, pathTruthy) ||\n !pointer.get(dataContext.data, pathTruthy))\n ) {\n return\n }\n if (\n pathFalsy &&\n pointer.has(dataContext.data, pathFalsy) &&\n Boolean(pointer.get(dataContext.data, pathFalsy))\n ) {\n return\n }\n\n if (\n pathTrue &&\n (!pointer.has(dataContext.data, pathTrue) ||\n pointer.get(dataContext.data, pathTrue) !== true)\n ) {\n return\n }\n if (\n pathFalse &&\n (!pointer.has(dataContext.data, pathFalse) ||\n pointer.get(dataContext.data, pathFalse) !== false)\n ) {\n return\n }\n\n if (\n pathValue &&\n !(\n pointer.has(dataContext.data, pathValue) &&\n pointer.get(dataContext.data, pathValue) === whenValue\n )\n ) {\n return\n }\n\n if (inferData && !inferData(dataContext.data)) {\n return\n }\n\n return true\n }\n\n const open = Boolean(check())\n\n if (animate) {\n const props = !open ? fieldPropsWhenHidden : null\n\n return (\n <HeightAnimation\n open={open}\n keepInDOM={keepInDOM}\n className=\"dnb-forms-visibility\"\n {...rest}\n >\n <FieldProps {...props}>{children}</FieldProps>\n </HeightAnimation>\n )\n }\n\n if (keepInDOM) {\n const props = !open ? fieldPropsWhenHidden : null\n return (\n <span className=\"dnb-forms-visibility\" hidden={!open}>\n <FieldProps {...props}>{children}</FieldProps>\n </span>\n )\n }\n\n return <>{open ? children : null}</>\n}\n\nVisibility._supportsSpacingProps = 'children'\nexport default Visibility\n"],"mappings":"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"}
1
+ {"version":3,"file":"Visibility.js","names":["React","useContext","pointer","warn","useMountEffect","HeightAnimation","DataContext","FieldProps","Visibility","_ref","visible","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","pathValue","whenValue","visibleWhen","visibleWhenNot","inferData","filterData","animate","keepInDOM","fieldPropsWhenHidden","children","rest","_objectWithoutProperties","_excluded","dataContext","check","_dataContext$filterDa","data","filterDataHandler","call","hasPath","has","path","_visibleWhen","_visibleWhen2","value","get","withValue","result","Object","prototype","hasOwnProperty","getValue","Boolean","open","props","createElement","_extends","className","hidden","Fragment","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/Visibility.tsx"],"sourcesContent":["import React, { AriaAttributes, useContext } from 'react'\nimport pointer from 'json-pointer'\nimport { warn } from '../../../../shared/helpers'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport HeightAnimation, {\n HeightAnimationProps,\n} from '../../../../components/HeightAnimation'\nimport DataContext, { FilterData } from '../../DataContext/Context'\nimport FieldProps from '../FieldProps'\nimport type { Path, UseFieldProps } from '../../types'\nimport type { DataAttributes } from '../../hooks/useFieldProps'\n\ntype VisibleWhen =\n | {\n path: string\n hasValue: unknown\n }\n | {\n path: string\n withValue: (value: unknown) => boolean\n }\n\nexport type Props = {\n visible?: boolean\n /** Given data context path must be defined to show children */\n pathDefined?: string\n /** Given data context path must be undefined to show children */\n pathUndefined?: string\n /** Given data context path must be truthy to show children */\n pathTruthy?: string\n /** Given data context path must be falsy to show children */\n pathFalsy?: string\n /** Given data context path must be true to show children */\n pathTrue?: string\n /** Given data context path must be false to show children */\n pathFalse?: string\n /** Provide a `path` and a `hasValue` property with the excepted value in order to show children. You can alternatively provide a `withValue` function that returns a boolean. The first parameter is the value of the path. */\n visibleWhen?: VisibleWhen\n /** Same as `visibleWhen`, but with inverted logic. */\n visibleWhenNot?: VisibleWhen\n /** Infer visibility calling given derivative function with the whole data set. Should return true/false for visibility. */\n inferData?: (data: unknown) => boolean\n /** Filter data based on provided criteria. The first parameter is the path, the second is the value, and the third is the props, and the fourth is the internal. Return false to filter out the data. */\n filterData?: FilterData\n /** Animate the visibility change */\n animate?: boolean\n /** Keep the content in the DOM, even if it's not visible */\n keepInDOM?: boolean\n /** When visibility is hidden, and `keepInDOM` is true, pass these props to the children */\n fieldPropsWhenHidden?: UseFieldProps & DataAttributes & AriaAttributes\n element?: HeightAnimationProps['element']\n children: React.ReactNode\n\n /** @deprecated Use `visibleWhen` instead */\n pathValue?: string\n /** @deprecated Use `visibleWhen` instead */\n whenValue?: unknown\n}\n\nfunction Visibility({\n visible,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n visibleWhen,\n visibleWhenNot,\n inferData,\n filterData,\n animate,\n keepInDOM,\n fieldPropsWhenHidden,\n children,\n ...rest\n}: Props) {\n const dataContext = useContext(DataContext)\n\n useMountEffect(() => {\n if (fieldPropsWhenHidden && !keepInDOM) {\n warn('Using \"fieldPropsWhenHidden\" requires \"keepInDOM\" to be true.')\n }\n })\n\n const check = () => {\n if (visible === false) {\n return\n }\n\n const data =\n (filterData &&\n dataContext.filterDataHandler?.(dataContext.data, filterData)) ||\n dataContext.data\n\n if (visibleWhen || visibleWhenNot) {\n if (visibleWhenNot) {\n visibleWhen = visibleWhenNot\n }\n const hasPath = pointer.has(data, visibleWhen.path)\n if (hasPath) {\n const value = pointer.get(data, visibleWhen.path)\n\n const withValue = visibleWhen?.['withValue']\n const result =\n (withValue && withValue?.(value) === false) ||\n (Object.prototype.hasOwnProperty.call(visibleWhen, 'hasValue') &&\n visibleWhen?.['hasValue'] !== value)\n\n if (visibleWhenNot) {\n if (!result) {\n return\n }\n } else if (result) {\n return\n }\n } else {\n return\n }\n }\n\n if (pathDefined && !pointer.has(data, pathDefined)) {\n return\n }\n if (pathUndefined && pointer.has(data, pathUndefined)) {\n return\n }\n\n const getValue = (path: Path) => {\n if (pointer.has(data, path)) {\n return pointer.get(data, path)\n }\n }\n\n if (pathTrue && getValue(pathTrue) !== true) {\n return\n }\n if (pathFalse && getValue(pathFalse) !== false) {\n return\n }\n if (pathTruthy && Boolean(getValue(pathTruthy)) === false) {\n return\n }\n if (pathFalsy && Boolean(getValue(pathFalsy)) === true) {\n return\n }\n if (inferData && !inferData(data)) {\n return\n }\n\n // Deprecated can be removed in v11\n if (pathValue && getValue(pathValue) !== whenValue) {\n return\n }\n\n return true\n }\n\n const open = Boolean(check())\n\n if (animate) {\n const props = !open ? fieldPropsWhenHidden : null\n\n return (\n <HeightAnimation\n open={open}\n keepInDOM={Boolean(keepInDOM)}\n className=\"dnb-forms-visibility\"\n {...rest}\n >\n <FieldProps {...props}>{children}</FieldProps>\n </HeightAnimation>\n )\n }\n\n if (keepInDOM) {\n const props = !open ? fieldPropsWhenHidden : null\n return (\n <span className=\"dnb-forms-visibility\" hidden={!open}>\n <FieldProps {...props}>{children}</FieldProps>\n </span>\n )\n }\n\n return <>{open ? children : null}</>\n}\n\nVisibility._supportsSpacingProps = 'children'\nexport default Visibility\n"],"mappings":"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"}
@@ -29,14 +29,14 @@ export const VisibilityProperties = {
29
29
  type: 'string',
30
30
  status: 'optional'
31
31
  },
32
- pathValue: {
33
- doc: 'Given data context path must match, as well as the `whenValue` value.',
34
- type: 'string',
32
+ visibleWhen: {
33
+ doc: 'Provide a `path` and a `hasValue` property with the excepted value in order to show children. You can alternatively provide a `withValue` function that returns a boolean. The first parameter is the value of the path.',
34
+ type: 'object',
35
35
  status: 'optional'
36
36
  },
37
- whenValue: {
38
- doc: 'The value to match. Should be used together with `pathValue`.',
39
- type: 'string',
37
+ visibleWhenNot: {
38
+ doc: 'Same as `visibleWhen`, but with inverted logic.',
39
+ type: 'object',
40
40
  status: 'optional'
41
41
  },
42
42
  inferData: {
@@ -59,6 +59,11 @@ export const VisibilityProperties = {
59
59
  type: 'boolean',
60
60
  status: 'optional'
61
61
  },
62
+ filterData: {
63
+ doc: 'Filter data based on provided criteria. More info about `filterData` can be found in the [Getting Started](/uilib/extensions/forms/getting-started/#filter-data) documentation.',
64
+ type: ['object', 'function'],
65
+ status: 'optional'
66
+ },
62
67
  fieldPropsWhenHidden: {
63
68
  doc: 'When visibility is hidden, and `keepInDOM` is true, pass these props to the children.',
64
69
  type: 'various',
@@ -1 +1 @@
1
- {"version":3,"file":"VisibilityDocs.js","names":["VisibilityProperties","pathDefined","doc","type","status","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","pathValue","whenValue","inferData","visible","animate","keepInDOM","fieldPropsWhenHidden","element","children"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/VisibilityDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const VisibilityProperties: PropertiesTableProps = {\n pathDefined: {\n doc: 'Given data context path must be defined to show children.',\n type: 'string',\n status: 'optional',\n },\n pathUndefined: {\n doc: 'Given data context path must be undefined to show children.',\n type: 'string',\n status: 'optional',\n },\n pathTruthy: {\n doc: 'Given data context path must be truthy to show children.',\n type: 'string',\n status: 'optional',\n },\n pathFalsy: {\n doc: 'Given data context path must be falsy to show children.',\n type: 'string',\n status: 'optional',\n },\n pathTrue: {\n doc: 'Given data context path must be true to show children.',\n type: 'string',\n status: 'optional',\n },\n pathFalse: {\n doc: 'Given data context path must be false to show children.',\n type: 'string',\n status: 'optional',\n },\n pathValue: {\n doc: 'Given data context path must match, as well as the `whenValue` value.',\n type: 'string',\n status: 'optional',\n },\n whenValue: {\n doc: 'The value to match. Should be used together with `pathValue`.',\n type: 'string',\n status: 'optional',\n },\n inferData: {\n doc: 'Will be called to decide by external logic, and show/hide contents based on the return value.',\n type: 'function',\n status: 'optional',\n },\n visible: {\n doc: 'Control visibility directly by boolean value.',\n type: 'boolean',\n status: 'optional',\n },\n animate: {\n doc: 'Define if the content should animate during show/hide.',\n type: 'boolean',\n status: 'optional',\n },\n keepInDOM: {\n doc: \"Keep the content in the DOM, even if it's not visible. Can be used to let fields run validation.\",\n type: 'boolean',\n status: 'optional',\n },\n fieldPropsWhenHidden: {\n doc: 'When visibility is hidden, and `keepInDOM` is true, pass these props to the children.',\n type: 'various',\n status: 'optional',\n },\n element: {\n doc: 'Define the type of element. Defaults to `div`. Only for when `animate` is true.',\n type: 'string or React.Element',\n status: 'optional',\n },\n children: {\n doc: 'Contents.',\n type: 'React.Node',\n status: 'required',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,oBAA0C,GAAG;EACxDC,WAAW,EAAE;IACXC,GAAG,EAAE,2DAA2D;IAChEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,aAAa,EAAE;IACbH,GAAG,EAAE,6DAA6D;IAClEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,UAAU,EAAE;IACVJ,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,SAAS,EAAE;IACTL,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,QAAQ,EAAE;IACRN,GAAG,EAAE,wDAAwD;IAC7DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,SAAS,EAAE;IACTP,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,SAAS,EAAE;IACTR,GAAG,EAAE,uEAAuE;IAC5EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,SAAS,EAAE;IACTT,GAAG,EAAE,+DAA+D;IACpEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,SAAS,EAAE;IACTV,GAAG,EAAE,+FAA+F;IACpGC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDS,OAAO,EAAE;IACPX,GAAG,EAAE,+CAA+C;IACpDC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDU,OAAO,EAAE;IACPZ,GAAG,EAAE,wDAAwD;IAC7DC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDW,SAAS,EAAE;IACTb,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDY,oBAAoB,EAAE;IACpBd,GAAG,EAAE,uFAAuF;IAC5FC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDa,OAAO,EAAE;IACPf,GAAG,EAAE,iFAAiF;IACtFC,IAAI,EAAE,yBAAyB;IAC/BC,MAAM,EAAE;EACV,CAAC;EACDc,QAAQ,EAAE;IACRhB,GAAG,EAAE,WAAW;IAChBC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV;AACF,CAAC"}
1
+ {"version":3,"file":"VisibilityDocs.js","names":["VisibilityProperties","pathDefined","doc","type","status","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","visibleWhen","visibleWhenNot","inferData","visible","animate","keepInDOM","filterData","fieldPropsWhenHidden","element","children"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/VisibilityDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const VisibilityProperties: PropertiesTableProps = {\n pathDefined: {\n doc: 'Given data context path must be defined to show children.',\n type: 'string',\n status: 'optional',\n },\n pathUndefined: {\n doc: 'Given data context path must be undefined to show children.',\n type: 'string',\n status: 'optional',\n },\n pathTruthy: {\n doc: 'Given data context path must be truthy to show children.',\n type: 'string',\n status: 'optional',\n },\n pathFalsy: {\n doc: 'Given data context path must be falsy to show children.',\n type: 'string',\n status: 'optional',\n },\n pathTrue: {\n doc: 'Given data context path must be true to show children.',\n type: 'string',\n status: 'optional',\n },\n pathFalse: {\n doc: 'Given data context path must be false to show children.',\n type: 'string',\n status: 'optional',\n },\n visibleWhen: {\n doc: 'Provide a `path` and a `hasValue` property with the excepted value in order to show children. You can alternatively provide a `withValue` function that returns a boolean. The first parameter is the value of the path.',\n type: 'object',\n status: 'optional',\n },\n visibleWhenNot: {\n doc: 'Same as `visibleWhen`, but with inverted logic.',\n type: 'object',\n status: 'optional',\n },\n inferData: {\n doc: 'Will be called to decide by external logic, and show/hide contents based on the return value.',\n type: 'function',\n status: 'optional',\n },\n visible: {\n doc: 'Control visibility directly by boolean value.',\n type: 'boolean',\n status: 'optional',\n },\n animate: {\n doc: 'Define if the content should animate during show/hide.',\n type: 'boolean',\n status: 'optional',\n },\n keepInDOM: {\n doc: \"Keep the content in the DOM, even if it's not visible. Can be used to let fields run validation.\",\n type: 'boolean',\n status: 'optional',\n },\n filterData: {\n doc: 'Filter data based on provided criteria. More info about `filterData` can be found in the [Getting Started](/uilib/extensions/forms/getting-started/#filter-data) documentation.',\n type: ['object', 'function'],\n status: 'optional',\n },\n fieldPropsWhenHidden: {\n doc: 'When visibility is hidden, and `keepInDOM` is true, pass these props to the children.',\n type: 'various',\n status: 'optional',\n },\n element: {\n doc: 'Define the type of element. Defaults to `div`. Only for when `animate` is true.',\n type: 'string or React.Element',\n status: 'optional',\n },\n children: {\n doc: 'Contents.',\n type: 'React.Node',\n status: 'required',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,oBAA0C,GAAG;EACxDC,WAAW,EAAE;IACXC,GAAG,EAAE,2DAA2D;IAChEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,aAAa,EAAE;IACbH,GAAG,EAAE,6DAA6D;IAClEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,UAAU,EAAE;IACVJ,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,SAAS,EAAE;IACTL,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,QAAQ,EAAE;IACRN,GAAG,EAAE,wDAAwD;IAC7DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,SAAS,EAAE;IACTP,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,WAAW,EAAE;IACXR,GAAG,EAAE,0NAA0N;IAC/NC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,cAAc,EAAE;IACdT,GAAG,EAAE,iDAAiD;IACtDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,SAAS,EAAE;IACTV,GAAG,EAAE,+FAA+F;IACpGC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDS,OAAO,EAAE;IACPX,GAAG,EAAE,+CAA+C;IACpDC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDU,OAAO,EAAE;IACPZ,GAAG,EAAE,wDAAwD;IAC7DC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDW,SAAS,EAAE;IACTb,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDY,UAAU,EAAE;IACVd,GAAG,EAAE,iLAAiL;IACtLC,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC5BC,MAAM,EAAE;EACV,CAAC;EACDa,oBAAoB,EAAE;IACpBf,GAAG,EAAE,uFAAuF;IAC5FC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDc,OAAO,EAAE;IACPhB,GAAG,EAAE,iFAAiF;IACtFC,IAAI,EAAE,yBAAyB;IAC/BC,MAAM,EAAE;EACV,CAAC;EACDe,QAAQ,EAAE;IACRjB,GAAG,EAAE,WAAW;IAChBC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV;AACF,CAAC"}
@@ -5,7 +5,7 @@ type PathImpl<T, P extends string> = P extends `${infer Key}/${infer Rest}` ? Ke
5
5
  type PathType<T, P extends string> = P extends `/${infer Rest}` ? PathImpl<T, Rest> : never;
6
6
  type UseDataReturnUpdate<Data> = <P extends Path>(path: P, value: ((value: PathType<Data, P>) => unknown) | unknown) => void;
7
7
  export type UseDataReturnGetValue<Data> = <P extends Path>(path: P) => PathType<Data, P>;
8
- export type UseDataReturnFilterData<Data> = (filterDataHandler: FilterData) => Partial<Data>;
8
+ export type UseDataReturnFilterData<Data> = (filterDataHandler: FilterData, data?: Data) => Partial<Data>;
9
9
  type UseDataReturn<Data> = {
10
10
  data: Data;
11
11
  set: (newData: Data) => void;
@@ -42,8 +42,8 @@ export default function useData() {
42
42
  }
43
43
  }
44
44
  }, [id, updateDataValue]);
45
- const filterData = useCallback(filter => {
46
- const data = sharedDataRef.current.data;
45
+ const filterData = useCallback(function (filter) {
46
+ let data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : sharedDataRef.current.data;
47
47
  if (id) {
48
48
  var _sharedAttachmentsRef, _sharedAttachmentsRef2;
49
49
  return (_sharedAttachmentsRef = sharedAttachmentsRef.current.data) === null || _sharedAttachmentsRef === void 0 ? void 0 : (_sharedAttachmentsRef2 = _sharedAttachmentsRef.filterDataHandler) === null || _sharedAttachmentsRef2 === void 0 ? void 0 : _sharedAttachmentsRef2.call(_sharedAttachmentsRef, data, filter);
@@ -1 +1 @@
1
- {"version":3,"file":"useData.js","names":["useCallback","useContext","useMemo","useReducer","useRef","pointer","useSharedState","useMountEffect","DataContext","useData","id","arguments","length","undefined","initialData","sharedDataRef","sharedAttachmentsRef","forceUpdate","current","context","data","updateDataValue","setData","rerenderUseDataHook","setHandler","newData","update","updateHandler","path","value","existingData","existingValue","has","get","newValue","set","extend","filterData","filter","_sharedAttachmentsRef","_sharedAttachmentsRef2","filterDataHandler","call","getValue","hadInitialData"],"sources":["../../../../../../src/extensions/forms/Form/data-context/useData.tsx"],"sourcesContent":["import {\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport pointer from 'json-pointer'\nimport {\n SharedStateId,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport type { Path } from '../../types'\nimport DataContext, {\n FilterData,\n FilterDataHandler,\n} from '../../DataContext/Context'\n\ntype PathImpl<T, P extends string> = P extends `${infer Key}/${infer Rest}`\n ? Key extends keyof T\n ? Rest extends ''\n ? T[Key]\n : PathImpl<T[Key], Rest>\n : never\n : T[P & keyof T]\n\ntype PathType<T, P extends string> = P extends `/${infer Rest}`\n ? PathImpl<T, Rest>\n : never\n\ntype UseDataReturnUpdate<Data> = <P extends Path>(\n path: P,\n value: ((value: PathType<Data, P>) => unknown) | unknown\n) => void\n\nexport type UseDataReturnGetValue<Data> = <P extends Path>(\n path: P\n) => PathType<Data, P>\n\nexport type UseDataReturnFilterData<Data> = (\n filterDataHandler: FilterData\n) => Partial<Data>\n\ntype UseDataReturn<Data> = {\n data: Data\n set: (newData: Data) => void\n update: UseDataReturnUpdate<Data>\n getValue: UseDataReturnGetValue<Data>\n filterData: UseDataReturnFilterData<Data>\n}\n\ntype SharedAttachment<Data> = {\n rerenderUseDataHook: () => void\n filterDataHandler?: FilterDataHandler<Data>\n}\n\n/**\n * Custom hook that provides form data management functionality.\n *\n * @template Data - The type of data being managed.\n * @param {SharedStateId} id - The identifier for the data.\n * @param {Data} initialData - The initial data value (optional).\n * @returns {UseDataReturn<Data>} An object containing the data and data management functions.\n */\nexport default function useData<Data>(\n id: SharedStateId = undefined,\n initialData: Data = undefined\n): UseDataReturn<Data> {\n const sharedDataRef =\n useRef<ReturnType<typeof useSharedState<Data>>>(null)\n const sharedAttachmentsRef =\n useRef<ReturnType<typeof useSharedState<SharedAttachment<Data>>>>(null)\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n sharedDataRef.current = useSharedState<Data>(\n id,\n initialData,\n forceUpdate\n )\n\n // If no id is provided, use the context data\n const context = useContext(DataContext)\n if (!id && context?.data) {\n sharedDataRef.current.data = context.data\n }\n const updateDataValue = context?.updateDataValue\n const setData = context?.setData\n\n sharedAttachmentsRef.current = useSharedState<SharedAttachment<Data>>(\n id + '-attachments',\n { rerenderUseDataHook: forceUpdate }\n )\n\n const setHandler = useCallback(\n (newData: Data) => {\n if (id) {\n sharedDataRef.current.update(newData)\n } else {\n setData?.(newData)\n }\n },\n [id, setData]\n )\n\n const updateHandler = useCallback<UseDataReturnUpdate<Data>>(\n (path, value = undefined) => {\n const existingData = sharedDataRef.current.data || ({} as Data)\n const existingValue = pointer.has(existingData, path)\n ? pointer.get(existingData, path)\n : undefined\n\n // get new value\n const newValue =\n typeof value === 'function' ? value(existingValue) : value\n\n if (newValue !== existingValue) {\n // update existing data\n pointer.set(existingData, path, newValue)\n\n // update provider\n if (id) {\n sharedDataRef.current.extend(existingData)\n } else {\n updateDataValue(path, newValue)\n }\n }\n },\n [id, updateDataValue]\n )\n\n const filterData = useCallback<UseDataReturn<Data>['filterData']>(\n (filter) => {\n const data = sharedDataRef.current.data\n\n if (id) {\n return sharedAttachmentsRef.current.data?.filterDataHandler?.(\n data,\n filter\n )\n }\n\n return context?.filterDataHandler(data, filter)\n },\n [context, id]\n )\n\n const getValue = useCallback<UseDataReturn<Data>['getValue']>((path) => {\n if (pointer.has(sharedDataRef.current.data, path)) {\n return pointer.get(sharedDataRef.current.data, path)\n }\n\n return undefined\n }, [])\n\n useMountEffect(() => {\n if (id && !sharedDataRef.current.hadInitialData && initialData) {\n sharedDataRef.current.extend(initialData)\n }\n })\n\n const { data } = sharedDataRef.current\n\n return useMemo(\n () => ({\n data,\n update: updateHandler,\n set: setHandler,\n getValue,\n filterData,\n }),\n [data, filterData, getValue, setHandler, updateHandler]\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useData.js","names":["useCallback","useContext","useMemo","useReducer","useRef","pointer","useSharedState","useMountEffect","DataContext","useData","id","arguments","length","undefined","initialData","sharedDataRef","sharedAttachmentsRef","forceUpdate","current","context","data","updateDataValue","setData","rerenderUseDataHook","setHandler","newData","update","updateHandler","path","value","existingData","existingValue","has","get","newValue","set","extend","filterData","filter","_sharedAttachmentsRef","_sharedAttachmentsRef2","filterDataHandler","call","getValue","hadInitialData"],"sources":["../../../../../../src/extensions/forms/Form/data-context/useData.tsx"],"sourcesContent":["import {\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport pointer from 'json-pointer'\nimport {\n SharedStateId,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport type { Path } from '../../types'\nimport DataContext, {\n FilterData,\n FilterDataHandler,\n} from '../../DataContext/Context'\n\ntype PathImpl<T, P extends string> = P extends `${infer Key}/${infer Rest}`\n ? Key extends keyof T\n ? Rest extends ''\n ? T[Key]\n : PathImpl<T[Key], Rest>\n : never\n : T[P & keyof T]\n\ntype PathType<T, P extends string> = P extends `/${infer Rest}`\n ? PathImpl<T, Rest>\n : never\n\ntype UseDataReturnUpdate<Data> = <P extends Path>(\n path: P,\n value: ((value: PathType<Data, P>) => unknown) | unknown\n) => void\n\nexport type UseDataReturnGetValue<Data> = <P extends Path>(\n path: P\n) => PathType<Data, P>\n\nexport type UseDataReturnFilterData<Data> = (\n filterDataHandler: FilterData,\n data?: Data\n) => Partial<Data>\n\ntype UseDataReturn<Data> = {\n data: Data\n set: (newData: Data) => void\n update: UseDataReturnUpdate<Data>\n getValue: UseDataReturnGetValue<Data>\n filterData: UseDataReturnFilterData<Data>\n}\n\ntype SharedAttachment<Data> = {\n rerenderUseDataHook: () => void\n filterDataHandler?: FilterDataHandler<Data>\n}\n\n/**\n * Custom hook that provides form data management functionality.\n *\n * @template Data - The type of data being managed.\n * @param {SharedStateId} id - The identifier for the data.\n * @param {Data} initialData - The initial data value (optional).\n * @returns {UseDataReturn<Data>} An object containing the data and data management functions.\n */\nexport default function useData<Data>(\n id: SharedStateId = undefined,\n initialData: Data = undefined\n): UseDataReturn<Data> {\n const sharedDataRef =\n useRef<ReturnType<typeof useSharedState<Data>>>(null)\n const sharedAttachmentsRef =\n useRef<ReturnType<typeof useSharedState<SharedAttachment<Data>>>>(null)\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n sharedDataRef.current = useSharedState<Data>(\n id,\n initialData,\n forceUpdate\n )\n\n // If no id is provided, use the context data\n const context = useContext(DataContext)\n if (!id && context?.data) {\n sharedDataRef.current.data = context.data\n }\n const updateDataValue = context?.updateDataValue\n const setData = context?.setData\n\n sharedAttachmentsRef.current = useSharedState<SharedAttachment<Data>>(\n id + '-attachments',\n { rerenderUseDataHook: forceUpdate }\n )\n\n const setHandler = useCallback(\n (newData: Data) => {\n if (id) {\n sharedDataRef.current.update(newData)\n } else {\n setData?.(newData)\n }\n },\n [id, setData]\n )\n\n const updateHandler = useCallback<UseDataReturnUpdate<Data>>(\n (path, value = undefined) => {\n const existingData = sharedDataRef.current.data || ({} as Data)\n const existingValue = pointer.has(existingData, path)\n ? pointer.get(existingData, path)\n : undefined\n\n // get new value\n const newValue =\n typeof value === 'function' ? value(existingValue) : value\n\n if (newValue !== existingValue) {\n // update existing data\n pointer.set(existingData, path, newValue)\n\n // update provider\n if (id) {\n sharedDataRef.current.extend(existingData)\n } else {\n updateDataValue(path, newValue)\n }\n }\n },\n [id, updateDataValue]\n )\n\n const filterData = useCallback<UseDataReturn<Data>['filterData']>(\n (filter, data = sharedDataRef.current.data) => {\n if (id) {\n return sharedAttachmentsRef.current.data?.filterDataHandler?.(\n data,\n filter\n )\n }\n\n return context?.filterDataHandler(data, filter)\n },\n [context, id]\n )\n\n const getValue = useCallback<UseDataReturn<Data>['getValue']>((path) => {\n if (pointer.has(sharedDataRef.current.data, path)) {\n return pointer.get(sharedDataRef.current.data, path)\n }\n\n return undefined\n }, [])\n\n useMountEffect(() => {\n if (id && !sharedDataRef.current.hadInitialData && initialData) {\n sharedDataRef.current.extend(initialData)\n }\n })\n\n const { data } = sharedDataRef.current\n\n return useMemo(\n () => ({\n data,\n update: updateHandler,\n set: setHandler,\n getValue,\n filterData,\n }),\n [data, filterData, getValue, setHandler, updateHandler]\n )\n}\n"],"mappings":"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"}
@@ -2,6 +2,7 @@ import { SharedStateId } from '../../../../shared/helpers/useSharedState';
2
2
  import { ContextState } from '../../DataContext/Context';
3
3
  type UseDataReturn = {
4
4
  hasErrors: ContextState['hasErrors'];
5
+ hasFieldError: ContextState['hasFieldError'];
5
6
  setFormError: (error: Error) => void;
6
7
  };
7
8
  export default function useError(id?: SharedStateId): UseDataReturn;
@@ -4,14 +4,15 @@ import { useCallback, useContext, useMemo, useRef } from 'react';
4
4
  import { useSharedState } from '../../../../shared/helpers/useSharedState';
5
5
  import DataContext from '../../DataContext/Context';
6
6
  export default function useError() {
7
- var _sharedAttachmentsRef, _sharedAttachmentsRef2, _sharedAttachmentsRef3, _sharedAttachmentsRef4;
7
+ var _sharedAttachmentsRef, _sharedAttachmentsRef2, _sharedAttachmentsRef3, _sharedAttachmentsRef4, _sharedAttachmentsRef5, _sharedAttachmentsRef6;
8
8
  let id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;
9
9
  const sharedAttachmentsRef = useRef(null);
10
10
  sharedAttachmentsRef.current = useSharedState(id + '-attachments');
11
11
  const fallback = useCallback(() => false, []);
12
12
  const context = useContext(DataContext);
13
13
  const hasErrors = ((_sharedAttachmentsRef = sharedAttachmentsRef.current) === null || _sharedAttachmentsRef === void 0 ? void 0 : (_sharedAttachmentsRef2 = _sharedAttachmentsRef.data) === null || _sharedAttachmentsRef2 === void 0 ? void 0 : _sharedAttachmentsRef2.hasErrors) || !id && (context === null || context === void 0 ? void 0 : context.hasErrors) || fallback;
14
- const setSubmitState = ((_sharedAttachmentsRef3 = sharedAttachmentsRef.current) === null || _sharedAttachmentsRef3 === void 0 ? void 0 : (_sharedAttachmentsRef4 = _sharedAttachmentsRef3.data) === null || _sharedAttachmentsRef4 === void 0 ? void 0 : _sharedAttachmentsRef4.setSubmitState) || !id && (context === null || context === void 0 ? void 0 : context.setSubmitState) || fallback;
14
+ const hasFieldError = ((_sharedAttachmentsRef3 = sharedAttachmentsRef.current) === null || _sharedAttachmentsRef3 === void 0 ? void 0 : (_sharedAttachmentsRef4 = _sharedAttachmentsRef3.data) === null || _sharedAttachmentsRef4 === void 0 ? void 0 : _sharedAttachmentsRef4.hasFieldError) || !id && (context === null || context === void 0 ? void 0 : context.hasFieldError) || fallback;
15
+ const setSubmitState = ((_sharedAttachmentsRef5 = sharedAttachmentsRef.current) === null || _sharedAttachmentsRef5 === void 0 ? void 0 : (_sharedAttachmentsRef6 = _sharedAttachmentsRef5.data) === null || _sharedAttachmentsRef6 === void 0 ? void 0 : _sharedAttachmentsRef6.setSubmitState) || !id && (context === null || context === void 0 ? void 0 : context.setSubmitState) || fallback;
15
16
  const setFormError = useCallback(error => {
16
17
  setSubmitState === null || setSubmitState === void 0 ? void 0 : setSubmitState({
17
18
  error
@@ -19,7 +20,8 @@ export default function useError() {
19
20
  }, [setSubmitState]);
20
21
  return useMemo(() => ({
21
22
  hasErrors,
23
+ hasFieldError,
22
24
  setFormError
23
- }), [hasErrors, setFormError]);
25
+ }), [hasErrors, hasFieldError, setFormError]);
24
26
  }
25
27
  //# sourceMappingURL=useError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useError.js","names":["useCallback","useContext","useMemo","useRef","useSharedState","DataContext","useError","_sharedAttachmentsRef","_sharedAttachmentsRef2","_sharedAttachmentsRef3","_sharedAttachmentsRef4","id","arguments","length","undefined","sharedAttachmentsRef","current","fallback","context","hasErrors","data","setSubmitState","setFormError","error"],"sources":["../../../../../../src/extensions/forms/Form/data-context/useError.tsx"],"sourcesContent":["import { useCallback, useContext, useMemo, useRef } from 'react'\nimport {\n SharedStateId,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport DataContext, { ContextState } from '../../DataContext/Context'\n\ntype UseDataReturn = {\n hasErrors: ContextState['hasErrors']\n setFormError: (error: Error) => void\n}\n\nexport default function useError(\n id: SharedStateId = undefined\n): UseDataReturn {\n const sharedAttachmentsRef = useRef(null)\n sharedAttachmentsRef.current = useSharedState<UseDataReturn>(\n id + '-attachments'\n )\n\n const fallback = useCallback(() => false, [])\n\n // If no id is provided, use the context version\n const context = useContext(DataContext)\n const hasErrors =\n sharedAttachmentsRef.current?.data?.hasErrors ||\n (!id && context?.hasErrors) ||\n fallback\n\n // Error handling\n const setSubmitState =\n sharedAttachmentsRef.current?.data?.setSubmitState ||\n (!id && context?.setSubmitState) ||\n fallback\n const setFormError = useCallback(\n (error: Error) => {\n setSubmitState?.({ error })\n // console.error(error)\n },\n [setSubmitState]\n )\n\n return useMemo(\n () => ({ hasErrors, setFormError }),\n [hasErrors, setFormError]\n )\n}\n"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,UAAU,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAChE,SAEEC,cAAc,QACT,2CAA2C;AAClD,OAAOC,WAAW,MAAwB,2BAA2B;AAOrE,eAAe,SAASC,QAAQA,CAAA,EAEf;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EAAA,IADfC,EAAiB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGE,SAAS;EAE7B,MAAMC,oBAAoB,GAAGZ,MAAM,CAAC,IAAI,CAAC;EACzCY,oBAAoB,CAACC,OAAO,GAAGZ,cAAc,CAC3CO,EAAE,GAAG,cACP,CAAC;EAED,MAAMM,QAAQ,GAAGjB,WAAW,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;EAG7C,MAAMkB,OAAO,GAAGjB,UAAU,CAACI,WAAW,CAAC;EACvC,MAAMc,SAAS,GACb,EAAAZ,qBAAA,GAAAQ,oBAAoB,CAACC,OAAO,cAAAT,qBAAA,wBAAAC,sBAAA,GAA5BD,qBAAA,CAA8Ba,IAAI,cAAAZ,sBAAA,uBAAlCA,sBAAA,CAAoCW,SAAS,KAC5C,CAACR,EAAE,KAAIO,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,SAAS,CAAC,IAC3BF,QAAQ;EAGV,MAAMI,cAAc,GAClB,EAAAZ,sBAAA,GAAAM,oBAAoB,CAACC,OAAO,cAAAP,sBAAA,wBAAAC,sBAAA,GAA5BD,sBAAA,CAA8BW,IAAI,cAAAV,sBAAA,uBAAlCA,sBAAA,CAAoCW,cAAc,KACjD,CAACV,EAAE,KAAIO,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEG,cAAc,CAAC,IAChCJ,QAAQ;EACV,MAAMK,YAAY,GAAGtB,WAAW,CAC7BuB,KAAY,IAAK;IAChBF,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAG;MAAEE;IAAM,CAAC,CAAC;EAE7B,CAAC,EACD,CAACF,cAAc,CACjB,CAAC;EAED,OAAOnB,OAAO,CACZ,OAAO;IAAEiB,SAAS;IAAEG;EAAa,CAAC,CAAC,EACnC,CAACH,SAAS,EAAEG,YAAY,CAC1B,CAAC;AACH"}
1
+ {"version":3,"file":"useError.js","names":["useCallback","useContext","useMemo","useRef","useSharedState","DataContext","useError","_sharedAttachmentsRef","_sharedAttachmentsRef2","_sharedAttachmentsRef3","_sharedAttachmentsRef4","_sharedAttachmentsRef5","_sharedAttachmentsRef6","id","arguments","length","undefined","sharedAttachmentsRef","current","fallback","context","hasErrors","data","hasFieldError","setSubmitState","setFormError","error"],"sources":["../../../../../../src/extensions/forms/Form/data-context/useError.tsx"],"sourcesContent":["import { useCallback, useContext, useMemo, useRef } from 'react'\nimport {\n SharedStateId,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport DataContext, { ContextState } from '../../DataContext/Context'\n\ntype UseDataReturn = {\n hasErrors: ContextState['hasErrors']\n hasFieldError: ContextState['hasFieldError']\n setFormError: (error: Error) => void\n}\n\nexport default function useError(\n id: SharedStateId = undefined\n): UseDataReturn {\n const sharedAttachmentsRef = useRef(null)\n sharedAttachmentsRef.current = useSharedState<UseDataReturn>(\n id + '-attachments'\n )\n\n const fallback = useCallback(() => false, [])\n\n // If no id is provided, use the context version\n const context = useContext(DataContext)\n const hasErrors =\n sharedAttachmentsRef.current?.data?.hasErrors ||\n (!id && context?.hasErrors) ||\n fallback\n const hasFieldError =\n sharedAttachmentsRef.current?.data?.hasFieldError ||\n (!id && context?.hasFieldError) ||\n fallback\n\n // Error handling\n const setSubmitState =\n sharedAttachmentsRef.current?.data?.setSubmitState ||\n (!id && context?.setSubmitState) ||\n fallback\n const setFormError = useCallback(\n (error: Error) => {\n setSubmitState?.({ error })\n },\n [setSubmitState]\n )\n\n return useMemo(\n () => ({ hasErrors, hasFieldError, setFormError }),\n [hasErrors, hasFieldError, setFormError]\n )\n}\n"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,UAAU,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAChE,SAEEC,cAAc,QACT,2CAA2C;AAClD,OAAOC,WAAW,MAAwB,2BAA2B;AAQrE,eAAe,SAASC,QAAQA,CAAA,EAEf;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EAAA,IADfC,EAAiB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGE,SAAS;EAE7B,MAAMC,oBAAoB,GAAGd,MAAM,CAAC,IAAI,CAAC;EACzCc,oBAAoB,CAACC,OAAO,GAAGd,cAAc,CAC3CS,EAAE,GAAG,cACP,CAAC;EAED,MAAMM,QAAQ,GAAGnB,WAAW,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;EAG7C,MAAMoB,OAAO,GAAGnB,UAAU,CAACI,WAAW,CAAC;EACvC,MAAMgB,SAAS,GACb,EAAAd,qBAAA,GAAAU,oBAAoB,CAACC,OAAO,cAAAX,qBAAA,wBAAAC,sBAAA,GAA5BD,qBAAA,CAA8Be,IAAI,cAAAd,sBAAA,uBAAlCA,sBAAA,CAAoCa,SAAS,KAC5C,CAACR,EAAE,KAAIO,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,SAAS,CAAC,IAC3BF,QAAQ;EACV,MAAMI,aAAa,GACjB,EAAAd,sBAAA,GAAAQ,oBAAoB,CAACC,OAAO,cAAAT,sBAAA,wBAAAC,sBAAA,GAA5BD,sBAAA,CAA8Ba,IAAI,cAAAZ,sBAAA,uBAAlCA,sBAAA,CAAoCa,aAAa,KAChD,CAACV,EAAE,KAAIO,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEG,aAAa,CAAC,IAC/BJ,QAAQ;EAGV,MAAMK,cAAc,GAClB,EAAAb,sBAAA,GAAAM,oBAAoB,CAACC,OAAO,cAAAP,sBAAA,wBAAAC,sBAAA,GAA5BD,sBAAA,CAA8BW,IAAI,cAAAV,sBAAA,uBAAlCA,sBAAA,CAAoCY,cAAc,KACjD,CAACX,EAAE,KAAIO,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEI,cAAc,CAAC,IAChCL,QAAQ;EACV,MAAMM,YAAY,GAAGzB,WAAW,CAC7B0B,KAAY,IAAK;IAChBF,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAG;MAAEE;IAAM,CAAC,CAAC;EAC7B,CAAC,EACD,CAACF,cAAc,CACjB,CAAC;EAED,OAAOtB,OAAO,CACZ,OAAO;IAAEmB,SAAS;IAAEE,aAAa;IAAEE;EAAa,CAAC,CAAC,EAClD,CAACJ,SAAS,EAAEE,aAAa,EAAEE,YAAY,CACzC,CAAC;AACH"}
@@ -13,6 +13,7 @@ export { default as setData } from './data-context/setData';
13
13
  export { default as getData } from './data-context/getData';
14
14
  export { default as useError } from './data-context/useError';
15
15
  export { default as useTranslation } from '../hooks/useTranslation';
16
+ export * as Tools from './Tools';
16
17
  /**
17
18
  * Can be removed in v11
18
19
  * @deprecated Use `useTranslation` instead
@@ -13,5 +13,7 @@ export { default as setData } from './data-context/setData';
13
13
  export { default as getData } from './data-context/getData';
14
14
  export { default as useError } from './data-context/useError';
15
15
  export { default as useTranslation } from '../hooks/useTranslation';
16
+ import * as _Tools from './Tools';
17
+ export { _Tools as Tools };
16
18
  export { default as useLocale } from '../hooks/useTranslation';
17
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","Handler","Element","Appearance","SubmitButton","SubmitIndicator","ButtonRow","MainHeading","SubHeading","Visibility","FieldProps","useData","setData","getData","useError","useTranslation","useLocale"],"sources":["../../../../../src/extensions/forms/Form/index.ts"],"sourcesContent":["export { default as Handler } from './Handler'\nexport { default as Element } from './Element'\nexport { default as Appearance } from './Appearance'\nexport { default as SubmitButton } from './SubmitButton'\nexport { default as SubmitIndicator } from './SubmitIndicator'\nexport { default as ButtonRow } from './ButtonRow'\nexport { default as MainHeading } from './MainHeading'\nexport { default as SubHeading } from './SubHeading'\nexport { default as Visibility } from './Visibility'\nexport { default as FieldProps } from './FieldProps'\nexport { default as useData } from './data-context/useData'\nexport { default as setData } from './data-context/setData'\nexport { default as getData } from './data-context/getData'\nexport { default as useError } from './data-context/useError'\nexport { default as useTranslation } from '../hooks/useTranslation'\n\n/**\n * Can be removed in v11\n * @deprecated Use `useTranslation` instead\n */\nexport { default as useLocale } from '../hooks/useTranslation'\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,OAAO,QAAQ,WAAW;AAC9C,SAASD,OAAO,IAAIE,OAAO,QAAQ,WAAW;AAC9C,SAASF,OAAO,IAAIG,UAAU,QAAQ,cAAc;AACpD,SAASH,OAAO,IAAII,YAAY,QAAQ,gBAAgB;AACxD,SAASJ,OAAO,IAAIK,eAAe,QAAQ,mBAAmB;AAC9D,SAASL,OAAO,IAAIM,SAAS,QAAQ,aAAa;AAClD,SAASN,OAAO,IAAIO,WAAW,QAAQ,eAAe;AACtD,SAASP,OAAO,IAAIQ,UAAU,QAAQ,cAAc;AACpD,SAASR,OAAO,IAAIS,UAAU,QAAQ,cAAc;AACpD,SAAST,OAAO,IAAIU,UAAU,QAAQ,cAAc;AACpD,SAASV,OAAO,IAAIW,OAAO,QAAQ,wBAAwB;AAC3D,SAASX,OAAO,IAAIY,OAAO,QAAQ,wBAAwB;AAC3D,SAASZ,OAAO,IAAIa,OAAO,QAAQ,wBAAwB;AAC3D,SAASb,OAAO,IAAIc,QAAQ,QAAQ,yBAAyB;AAC7D,SAASd,OAAO,IAAIe,cAAc,QAAQ,yBAAyB;AAMnE,SAASf,OAAO,IAAIgB,SAAS,QAAQ,yBAAyB"}
1
+ {"version":3,"file":"index.js","names":["default","Handler","Element","Appearance","SubmitButton","SubmitIndicator","ButtonRow","MainHeading","SubHeading","Visibility","FieldProps","useData","setData","getData","useError","useTranslation","_Tools","Tools","useLocale"],"sources":["../../../../../src/extensions/forms/Form/index.ts"],"sourcesContent":["export { default as Handler } from './Handler'\nexport { default as Element } from './Element'\nexport { default as Appearance } from './Appearance'\nexport { default as SubmitButton } from './SubmitButton'\nexport { default as SubmitIndicator } from './SubmitIndicator'\nexport { default as ButtonRow } from './ButtonRow'\nexport { default as MainHeading } from './MainHeading'\nexport { default as SubHeading } from './SubHeading'\nexport { default as Visibility } from './Visibility'\nexport { default as FieldProps } from './FieldProps'\nexport { default as useData } from './data-context/useData'\nexport { default as setData } from './data-context/setData'\nexport { default as getData } from './data-context/getData'\nexport { default as useError } from './data-context/useError'\nexport { default as useTranslation } from '../hooks/useTranslation'\nexport * as Tools from './Tools'\n\n/**\n * Can be removed in v11\n * @deprecated Use `useTranslation` instead\n */\nexport { default as useLocale } from '../hooks/useTranslation'\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,OAAO,QAAQ,WAAW;AAC9C,SAASD,OAAO,IAAIE,OAAO,QAAQ,WAAW;AAC9C,SAASF,OAAO,IAAIG,UAAU,QAAQ,cAAc;AACpD,SAASH,OAAO,IAAII,YAAY,QAAQ,gBAAgB;AACxD,SAASJ,OAAO,IAAIK,eAAe,QAAQ,mBAAmB;AAC9D,SAASL,OAAO,IAAIM,SAAS,QAAQ,aAAa;AAClD,SAASN,OAAO,IAAIO,WAAW,QAAQ,eAAe;AACtD,SAASP,OAAO,IAAIQ,UAAU,QAAQ,cAAc;AACpD,SAASR,OAAO,IAAIS,UAAU,QAAQ,cAAc;AACpD,SAAST,OAAO,IAAIU,UAAU,QAAQ,cAAc;AACpD,SAASV,OAAO,IAAIW,OAAO,QAAQ,wBAAwB;AAC3D,SAASX,OAAO,IAAIY,OAAO,QAAQ,wBAAwB;AAC3D,SAASZ,OAAO,IAAIa,OAAO,QAAQ,wBAAwB;AAC3D,SAASb,OAAO,IAAIc,QAAQ,QAAQ,yBAAyB;AAC7D,SAASd,OAAO,IAAIe,cAAc,QAAQ,yBAAyB;AAAA,YAAAC,MAAA,MAC5C,SAAS;AAAA,SAAAA,MAAA,IAApBC,KAAK;AAMjB,SAASjB,OAAO,IAAIkB,SAAS,QAAQ,yBAAyB"}
@@ -1,11 +1,18 @@
1
1
  import { Props as FlexContainerProps } from '../../../../components/flex/Container';
2
2
  import { ContainerMode } from '../Array/types';
3
+ export type ElementBlockProps = {
4
+ /**
5
+ * Defines the variant of the ViewContainer or EditContainer. Can be `outline`.
6
+ * Defaults to `outline`.
7
+ */
8
+ variant?: 'outline' | 'basic';
9
+ };
3
10
  export type Props = {
4
11
  mode: ContainerMode;
5
12
  open?: boolean | undefined;
6
13
  ariaLabel?: string;
7
14
  openDelay?: number;
8
- };
15
+ } & ElementBlockProps;
9
16
  declare function ElementBlock(props: Props & FlexContainerProps): import("react/jsx-runtime").JSX.Element;
10
17
  declare namespace ElementBlock {
11
18
  var _supportsSpacingProps: boolean;
@@ -2,7 +2,7 @@
2
2
 
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
- const _excluded = ["mode", "open", "ariaLabel", "onAnimationEnd", "className", "children", "openDelay"];
5
+ const _excluded = ["mode", "open", "ariaLabel", "onAnimationEnd", "className", "children", "openDelay", "variant"];
6
6
  import React, { useCallback, useContext, useEffect, useReducer, useRef } from 'react';
7
7
  import classnames from 'classnames';
8
8
  import { Flex, HeightAnimation } from '../../../../components';
@@ -35,7 +35,8 @@ function ElementBlock(props) {
35
35
  onAnimationEnd,
36
36
  className,
37
37
  children,
38
- openDelay = 100
38
+ openDelay = 100,
39
+ variant = 'outline'
39
40
  } = props,
40
41
  restProps = _objectWithoutProperties(props, _excluded);
41
42
  const openRef = useRef(open !== null && open !== void 0 ? open : containerMode === mode && !isNew);
@@ -102,7 +103,7 @@ function ElementBlock(props) {
102
103
  handleRemoveBlock
103
104
  }
104
105
  }, React.createElement(HeightAnimation, {
105
- className: classnames('dnb-forms-iterate-block', className, isNew && 'dnb-forms-iterate-block--new', contextRef.current.hasErrorAndShowIt && 'dnb-forms-iterate-block--error'),
106
+ className: classnames('dnb-forms-iterate-block', className, variant && `dnb-forms-iterate-block--variant-${variant}`, isNew && 'dnb-forms-iterate-block--new', contextRef.current.hasErrorAndShowIt && 'dnb-forms-iterate-block--error'),
106
107
  open: openRef.current,
107
108
  onAnimationEnd: handleAnimationEnd,
108
109
  duration: 450,
@@ -1 +1 @@
1
- {"version":3,"file":"ElementBlock.js","names":["React","useCallback","useContext","useEffect","useReducer","useRef","classnames","Flex","HeightAnimation","IterateElementContext","ElementBlockContext","FieldBoundaryContext","ElementBlock","props","forceUpdate","contextRef","current","hasError","hasErrorAndShowIt","containerMode","handleRemove","switchContainerMode","isNew","mode","open","ariaLabel","onAnimationEnd","className","children","openDelay","restProps","_objectWithoutProperties","_excluded","openRef","isRemoving","setOpenState","setTimeout","handleAnimationEnd","state","preventFocusOnErrorOpening","_contextRef$current","_contextRef$current$e","_contextRef$current$e2","_contextRef$current$e3","elementRef","focus","call","window","requestAnimationFrame","_document$activeEleme","document","activeElement","closest","_contextRef$current2","elements","containerRef","querySelectorAll","length","e","_contextRef$current3","_contextRef$current3$","fulfillRemove","handleRemoveBlock","keepItems","createElement","Provider","value","duration","keepInDOM","Stack","_extends","element","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/AnimatedContainer/ElementBlock.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useEffect,\n useReducer,\n useRef,\n} from 'react'\nimport classnames from 'classnames'\nimport { Flex, HeightAnimation } from '../../../../components'\nimport IterateElementContext, {\n IterateElementContextState,\n} from '../IterateElementContext'\nimport ElementBlockContext from './ElementBlockContext'\nimport FieldBoundaryContext from '../../DataContext/FieldBoundary/FieldBoundaryContext'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport { ContainerMode } from '../Array/types'\n\nexport type Props = {\n mode: ContainerMode\n open?: boolean | undefined\n ariaLabel?: string\n openDelay?: number\n}\n\nfunction ElementBlock(props: Props & FlexContainerProps) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const contextRef = useRef<\n IterateElementContextState & {\n hasError?: boolean\n hasErrorAndShowIt?: boolean\n }\n >()\n contextRef.current = useContext(IterateElementContext) || {}\n\n const { hasError, hasErrorAndShowIt } =\n useContext(FieldBoundaryContext) || {}\n contextRef.current.hasError = hasError\n contextRef.current.hasErrorAndShowIt = hasErrorAndShowIt\n\n // - Set the container mode to \"edit\" if we have an error\n if (hasErrorAndShowIt) {\n contextRef.current.containerMode = 'edit'\n }\n\n const { handleRemove, switchContainerMode, containerMode, isNew } =\n contextRef.current\n\n const {\n mode,\n open,\n ariaLabel,\n onAnimationEnd,\n className,\n children,\n openDelay = 100,\n ...restProps\n } = props\n\n const openRef = useRef(open ?? (containerMode === mode && !isNew))\n const isRemoving = useRef(false)\n\n const setOpenState = useCallback((open: boolean) => {\n openRef.current = open\n forceUpdate()\n }, [])\n\n useEffect(() => {\n if (!isRemoving.current) {\n // - Set the open state, if it's controlled\n if (typeof open !== 'undefined') {\n setOpenState(open)\n } else {\n // - Open the block with animation, if it's in the right mode\n if (openRef.current !== (containerMode === mode)) {\n if (isNew) {\n setTimeout(() => {\n setOpenState(containerMode === mode)\n }, openDelay) // in order to apply the animation\n } else {\n setOpenState(containerMode === mode)\n }\n }\n }\n }\n }, [containerMode, isNew, mode, open, openDelay, setOpenState])\n\n // - Remove the block with animation, if it's in the right mode\n const handleAnimationEnd = useCallback(\n (state) => {\n // - Keep the block open if we have an error\n if (contextRef.current.hasErrorAndShowIt) {\n switchContainerMode('edit')\n }\n\n const preventFocusOnErrorOpening =\n !contextRef.current.hasErrorAndShowIt\n if (preventFocusOnErrorOpening) {\n if (state === 'opened') {\n contextRef.current?.elementRef?.current?.focus?.()\n } else {\n // Wait until the element is removed, then check if we can set focus\n window.requestAnimationFrame(() => {\n // try to focus on the second last element\n try {\n if (\n // But not when we focus is already inside our element\n !document.activeElement?.closest(\n '.dnb-forms-iterate__element'\n )\n ) {\n const elements =\n contextRef.current?.containerRef.current.querySelectorAll<HTMLDivElement>(\n '.dnb-forms-iterate__element'\n )\n elements[elements.length - 1].focus()\n }\n } catch (e) {\n /**/\n }\n })\n }\n }\n\n if (!openRef.current && isRemoving.current) {\n isRemoving.current = false\n contextRef.current?.fulfillRemove?.()\n }\n\n onAnimationEnd?.(state)\n },\n [onAnimationEnd, switchContainerMode]\n )\n const handleRemoveBlock = useCallback(() => {\n isRemoving.current = true\n handleRemove?.({ keepItems: true })\n setOpenState(false)\n }, [handleRemove, setOpenState])\n\n return (\n <ElementBlockContext.Provider value={{ handleRemoveBlock }}>\n <HeightAnimation\n className={classnames(\n 'dnb-forms-iterate-block',\n isNew && 'dnb-forms-iterate-block--new',\n contextRef.current.hasErrorAndShowIt &&\n 'dnb-forms-iterate-block--error',\n className\n )}\n open={openRef.current}\n onAnimationEnd={handleAnimationEnd}\n duration={450}\n keepInDOM // Ensure fields get mounted so they will sync with the data context\n >\n <Flex.Stack\n className=\"dnb-forms-iterate-block__inner\"\n {...restProps}\n element=\"section\"\n aria-label={ariaLabel}\n >\n {children}\n </Flex.Stack>\n </HeightAnimation>\n </ElementBlockContext.Provider>\n )\n}\n\nElementBlock._supportsSpacingProps = true\nexport default ElementBlock\n"],"mappings":"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"}
1
+ {"version":3,"file":"ElementBlock.js","names":["React","useCallback","useContext","useEffect","useReducer","useRef","classnames","Flex","HeightAnimation","IterateElementContext","ElementBlockContext","FieldBoundaryContext","ElementBlock","props","forceUpdate","contextRef","current","hasError","hasErrorAndShowIt","containerMode","handleRemove","switchContainerMode","isNew","mode","open","ariaLabel","onAnimationEnd","className","children","openDelay","variant","restProps","_objectWithoutProperties","_excluded","openRef","isRemoving","setOpenState","setTimeout","handleAnimationEnd","state","preventFocusOnErrorOpening","_contextRef$current","_contextRef$current$e","_contextRef$current$e2","_contextRef$current$e3","elementRef","focus","call","window","requestAnimationFrame","_document$activeEleme","document","activeElement","closest","_contextRef$current2","elements","containerRef","querySelectorAll","length","e","_contextRef$current3","_contextRef$current3$","fulfillRemove","handleRemoveBlock","keepItems","createElement","Provider","value","duration","keepInDOM","Stack","_extends","element","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/AnimatedContainer/ElementBlock.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useEffect,\n useReducer,\n useRef,\n} from 'react'\nimport classnames from 'classnames'\nimport { Flex, HeightAnimation } from '../../../../components'\nimport IterateElementContext, {\n IterateElementContextState,\n} from '../IterateElementContext'\nimport ElementBlockContext from './ElementBlockContext'\nimport FieldBoundaryContext from '../../DataContext/FieldBoundary/FieldBoundaryContext'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport { ContainerMode } from '../Array/types'\n\nexport type ElementBlockProps = {\n /**\n * Defines the variant of the ViewContainer or EditContainer. Can be `outline`.\n * Defaults to `outline`.\n */\n variant?: 'outline' | 'basic'\n}\n\nexport type Props = {\n mode: ContainerMode\n open?: boolean | undefined\n ariaLabel?: string\n openDelay?: number\n} & ElementBlockProps\n\nfunction ElementBlock(props: Props & FlexContainerProps) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const contextRef = useRef<\n IterateElementContextState & {\n hasError?: boolean\n hasErrorAndShowIt?: boolean\n }\n >()\n contextRef.current = useContext(IterateElementContext) || {}\n\n const { hasError, hasErrorAndShowIt } =\n useContext(FieldBoundaryContext) || {}\n contextRef.current.hasError = hasError\n contextRef.current.hasErrorAndShowIt = hasErrorAndShowIt\n\n // - Set the container mode to \"edit\" if we have an error\n if (hasErrorAndShowIt) {\n contextRef.current.containerMode = 'edit'\n }\n\n const { handleRemove, switchContainerMode, containerMode, isNew } =\n contextRef.current\n\n const {\n mode,\n open,\n ariaLabel,\n onAnimationEnd,\n className,\n children,\n openDelay = 100,\n variant = 'outline',\n ...restProps\n } = props\n\n const openRef = useRef(open ?? (containerMode === mode && !isNew))\n const isRemoving = useRef(false)\n\n const setOpenState = useCallback((open: boolean) => {\n openRef.current = open\n forceUpdate()\n }, [])\n\n useEffect(() => {\n if (!isRemoving.current) {\n // - Set the open state, if it's controlled\n if (typeof open !== 'undefined') {\n setOpenState(open)\n } else {\n // - Open the block with animation, if it's in the right mode\n if (openRef.current !== (containerMode === mode)) {\n if (isNew) {\n setTimeout(() => {\n setOpenState(containerMode === mode)\n }, openDelay) // in order to apply the animation\n } else {\n setOpenState(containerMode === mode)\n }\n }\n }\n }\n }, [containerMode, isNew, mode, open, openDelay, setOpenState])\n\n // - Remove the block with animation, if it's in the right mode\n const handleAnimationEnd = useCallback(\n (state) => {\n // - Keep the block open if we have an error\n if (contextRef.current.hasErrorAndShowIt) {\n switchContainerMode('edit')\n }\n\n const preventFocusOnErrorOpening =\n !contextRef.current.hasErrorAndShowIt\n if (preventFocusOnErrorOpening) {\n if (state === 'opened') {\n contextRef.current?.elementRef?.current?.focus?.()\n } else {\n // Wait until the element is removed, then check if we can set focus\n window.requestAnimationFrame(() => {\n // try to focus on the second last element\n try {\n if (\n // But not when we focus is already inside our element\n !document.activeElement?.closest(\n '.dnb-forms-iterate__element'\n )\n ) {\n const elements =\n contextRef.current?.containerRef.current.querySelectorAll<HTMLDivElement>(\n '.dnb-forms-iterate__element'\n )\n elements[elements.length - 1].focus()\n }\n } catch (e) {\n /**/\n }\n })\n }\n }\n\n if (!openRef.current && isRemoving.current) {\n isRemoving.current = false\n contextRef.current?.fulfillRemove?.()\n }\n\n onAnimationEnd?.(state)\n },\n [onAnimationEnd, switchContainerMode]\n )\n const handleRemoveBlock = useCallback(() => {\n isRemoving.current = true\n handleRemove?.({ keepItems: true })\n setOpenState(false)\n }, [handleRemove, setOpenState])\n\n return (\n <ElementBlockContext.Provider value={{ handleRemoveBlock }}>\n <HeightAnimation\n className={classnames(\n 'dnb-forms-iterate-block',\n variant && `dnb-forms-iterate-block--variant-${variant}`,\n isNew && 'dnb-forms-iterate-block--new',\n contextRef.current.hasErrorAndShowIt &&\n 'dnb-forms-iterate-block--error',\n className\n )}\n open={openRef.current}\n onAnimationEnd={handleAnimationEnd}\n duration={450}\n keepInDOM // Ensure fields get mounted so they will sync with the data context\n >\n <Flex.Stack\n className=\"dnb-forms-iterate-block__inner\"\n {...restProps}\n element=\"section\"\n aria-label={ariaLabel}\n >\n {children}\n </Flex.Stack>\n </HeightAnimation>\n </ElementBlockContext.Provider>\n )\n}\n\nElementBlock._supportsSpacingProps = true\nexport default ElementBlock\n"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { Props as FlexContainerProps } from '../../../../components/flex/Container';
3
+ import { ElementBlockProps } from '../AnimatedContainer/ElementBlock';
3
4
  export type Props = {
4
5
  /**
5
6
  * The title of the EditContainer.
@@ -20,7 +21,7 @@ export type Props = {
20
21
  */
21
22
  toolbar?: React.ReactNode;
22
23
  };
23
- export type AllProps = Props & FlexContainerProps;
24
+ export type AllProps = Props & FlexContainerProps & ElementBlockProps;
24
25
  declare function EditContainer(props: AllProps): import("react/jsx-runtime").JSX.Element;
25
26
  declare namespace EditContainer {
26
27
  var _supportsSpacingProps: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"EditContainer.js","names":["React","useContext","useEffect","useMemo","useRef","classnames","convertJsxToString","Lead","IterateElementContext","EditToolbarTools","ElementBlock","Toolbar","EditContainer","props","createElement","EditContainerWithoutToolbar","_extends","toolbar","_Toolbar","iterateElementContext","containerMode","isNew","_ref","children","className","title","titleWhenNew","restProps","_objectWithoutProperties","_excluded","wasNewRef","current","blockTitle","ariaLabel","mode","size","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/EditContainer/EditContainer.tsx"],"sourcesContent":["import React, { useContext, useEffect, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport { convertJsxToString } from '../../../../shared/component-helper'\nimport { Lead } from '../../../../elements'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport IterateElementContext from '../IterateElementContext'\nimport EditToolbarTools from './EditToolbarTools'\nimport ElementBlock from '../AnimatedContainer/ElementBlock'\nimport Toolbar from '../Toolbar'\n\nexport type Props = {\n /**\n * The title of the EditContainer.\n */\n title?: React.ReactNode\n\n /**\n * The title for a new item show within the EditContainer.\n */\n titleWhenNew?: React.ReactNode\n\n /**\n * If the EditContainer is open or not.\n * Used internally.\n */\n open?: boolean\n\n /**\n * The toolbar to be shown in the EditContainer.\n * Used internally.\n */\n toolbar?: React.ReactNode\n}\n\nexport type AllProps = Props & FlexContainerProps\n\nexport default function EditContainer(props: AllProps) {\n return (\n <EditContainerWithoutToolbar\n toolbar={\n <Toolbar>\n <EditToolbarTools />\n </Toolbar>\n }\n {...props}\n />\n )\n}\n\nexport function EditContainerWithoutToolbar(\n props: Props & FlexContainerProps & { toolbar?: React.ReactNode }\n) {\n const iterateElementContext = useContext(IterateElementContext)\n const { containerMode, isNew } = iterateElementContext ?? {}\n\n const {\n children,\n className,\n title,\n titleWhenNew,\n toolbar,\n ...restProps\n } = props || {}\n\n const wasNewRef = useRef<unknown>(isNew)\n\n useEffect(() => {\n if (containerMode === 'view') {\n wasNewRef.current = false\n }\n }, [isNew, containerMode])\n\n const blockTitle =\n wasNewRef.current && titleWhenNew ? titleWhenNew : title\n const ariaLabel = useMemo(\n () => convertJsxToString(blockTitle),\n [blockTitle]\n )\n\n return (\n <ElementBlock\n mode=\"edit\"\n className={classnames('dnb-forms-iterate-edit-block', className)}\n ariaLabel={ariaLabel}\n {...restProps}\n >\n {blockTitle && <Lead size=\"basis\">{blockTitle}</Lead>}\n {children}\n {toolbar}\n </ElementBlock>\n )\n}\n\nEditContainer._supportsSpacingProps = true\nEditContainerWithoutToolbar._supportsSpacingProps = true\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AACrE,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,kBAAkB,QAAQ,qCAAqC;AACxE,SAASC,IAAI,QAAQ,sBAAsB;AAE3C,OAAOC,qBAAqB,MAAM,0BAA0B;AAC5D,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,OAAOC,YAAY,MAAM,mCAAmC;AAC5D,OAAOC,OAAO,MAAM,YAAY;AA4BhC,eAAe,SAASC,aAAaA,CAACC,KAAe,EAAE;EACrD,OACEb,KAAA,CAAAc,aAAA,CAACC,2BAA2B,EAAAC,QAAA;IAC1BC,OAAO,EAAAC,QAAA,KAAAA,QAAA,GACLlB,KAAA,CAAAc,aAAA,CAACH,OAAO,QACNX,KAAA,CAAAc,aAAA,CAACL,gBAAgB,MAAE,CACZ,CAAC;EACX,GACGI,KAAK,CACV,CAAC;AAEN;AAEA,OAAO,SAASE,2BAA2BA,CACzCF,KAAiE,EACjE;EACA,MAAMM,qBAAqB,GAAGlB,UAAU,CAACO,qBAAqB,CAAC;EAC/D,MAAM;IAAEY,aAAa;IAAEC;EAAM,CAAC,GAAGF,qBAAqB,aAArBA,qBAAqB,cAArBA,qBAAqB,GAAI,CAAC,CAAC;EAE5D,MAAAG,IAAA,GAOIT,KAAK,IAAI,CAAC,CAAC;IAPT;MACJU,QAAQ;MACRC,SAAS;MACTC,KAAK;MACLC,YAAY;MACZT;IAEF,CAAC,GAAAK,IAAA;IADIK,SAAS,GAAAC,wBAAA,CAAAN,IAAA,EAAAO,SAAA;EAGd,MAAMC,SAAS,GAAG1B,MAAM,CAAUiB,KAAK,CAAC;EAExCnB,SAAS,CAAC,MAAM;IACd,IAAIkB,aAAa,KAAK,MAAM,EAAE;MAC5BU,SAAS,CAACC,OAAO,GAAG,KAAK;IAC3B;EACF,CAAC,EAAE,CAACV,KAAK,EAAED,aAAa,CAAC,CAAC;EAE1B,MAAMY,UAAU,GACdF,SAAS,CAACC,OAAO,IAAIL,YAAY,GAAGA,YAAY,GAAGD,KAAK;EAC1D,MAAMQ,SAAS,GAAG9B,OAAO,CACvB,MAAMG,kBAAkB,CAAC0B,UAAU,CAAC,EACpC,CAACA,UAAU,CACb,CAAC;EAED,OACEhC,KAAA,CAAAc,aAAA,CAACJ,YAAY,EAAAM,QAAA;IACXkB,IAAI,EAAC,MAAM;IACXV,SAAS,EAAEnB,UAAU,CAAC,8BAA8B,EAAEmB,SAAS,CAAE;IACjES,SAAS,EAAEA;EAAU,GACjBN,SAAS,GAEZK,UAAU,IAAIhC,KAAA,CAAAc,aAAA,CAACP,IAAI;IAAC4B,IAAI,EAAC;EAAO,GAAEH,UAAiB,CAAC,EACpDT,QAAQ,EACRN,OACW,CAAC;AAEnB;AAEAL,aAAa,CAACwB,qBAAqB,GAAG,IAAI;AAC1CrB,2BAA2B,CAACqB,qBAAqB,GAAG,IAAI"}
1
+ {"version":3,"file":"EditContainer.js","names":["React","useContext","useEffect","useMemo","useRef","classnames","convertJsxToString","Lead","IterateElementContext","EditToolbarTools","ElementBlock","Toolbar","EditContainer","props","createElement","EditContainerWithoutToolbar","_extends","toolbar","_Toolbar","iterateElementContext","containerMode","isNew","_ref","children","className","title","titleWhenNew","restProps","_objectWithoutProperties","_excluded","wasNewRef","current","blockTitle","ariaLabel","mode","size","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/EditContainer/EditContainer.tsx"],"sourcesContent":["import React, { useContext, useEffect, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport { convertJsxToString } from '../../../../shared/component-helper'\nimport { Lead } from '../../../../elements'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport IterateElementContext from '../IterateElementContext'\nimport EditToolbarTools from './EditToolbarTools'\nimport ElementBlock, {\n ElementBlockProps,\n} from '../AnimatedContainer/ElementBlock'\nimport Toolbar from '../Toolbar'\n\nexport type Props = {\n /**\n * The title of the EditContainer.\n */\n title?: React.ReactNode\n\n /**\n * The title for a new item show within the EditContainer.\n */\n titleWhenNew?: React.ReactNode\n\n /**\n * If the EditContainer is open or not.\n * Used internally.\n */\n open?: boolean\n\n /**\n * The toolbar to be shown in the EditContainer.\n * Used internally.\n */\n toolbar?: React.ReactNode\n}\n\nexport type AllProps = Props & FlexContainerProps & ElementBlockProps\n\nexport default function EditContainer(props: AllProps) {\n return (\n <EditContainerWithoutToolbar\n toolbar={\n <Toolbar>\n <EditToolbarTools />\n </Toolbar>\n }\n {...props}\n />\n )\n}\n\nexport function EditContainerWithoutToolbar(\n props: Props & FlexContainerProps & { toolbar?: React.ReactNode }\n) {\n const iterateElementContext = useContext(IterateElementContext)\n const { containerMode, isNew } = iterateElementContext ?? {}\n\n const {\n children,\n className,\n title,\n titleWhenNew,\n toolbar,\n ...restProps\n } = props || {}\n\n const wasNewRef = useRef<unknown>(isNew)\n\n useEffect(() => {\n if (containerMode === 'view') {\n wasNewRef.current = false\n }\n }, [isNew, containerMode])\n\n const blockTitle =\n wasNewRef.current && titleWhenNew ? titleWhenNew : title\n const ariaLabel = useMemo(\n () => convertJsxToString(blockTitle),\n [blockTitle]\n )\n\n return (\n <ElementBlock\n mode=\"edit\"\n className={classnames('dnb-forms-iterate-edit-block', className)}\n ariaLabel={ariaLabel}\n {...restProps}\n >\n {blockTitle && <Lead size=\"basis\">{blockTitle}</Lead>}\n {children}\n {toolbar}\n </ElementBlock>\n )\n}\n\nEditContainer._supportsSpacingProps = true\nEditContainerWithoutToolbar._supportsSpacingProps = true\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AACrE,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,kBAAkB,QAAQ,qCAAqC;AACxE,SAASC,IAAI,QAAQ,sBAAsB;AAE3C,OAAOC,qBAAqB,MAAM,0BAA0B;AAC5D,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,OAAOC,YAAY,MAEZ,mCAAmC;AAC1C,OAAOC,OAAO,MAAM,YAAY;AA4BhC,eAAe,SAASC,aAAaA,CAACC,KAAe,EAAE;EACrD,OACEb,KAAA,CAAAc,aAAA,CAACC,2BAA2B,EAAAC,QAAA;IAC1BC,OAAO,EAAAC,QAAA,KAAAA,QAAA,GACLlB,KAAA,CAAAc,aAAA,CAACH,OAAO,QACNX,KAAA,CAAAc,aAAA,CAACL,gBAAgB,MAAE,CACZ,CAAC;EACX,GACGI,KAAK,CACV,CAAC;AAEN;AAEA,OAAO,SAASE,2BAA2BA,CACzCF,KAAiE,EACjE;EACA,MAAMM,qBAAqB,GAAGlB,UAAU,CAACO,qBAAqB,CAAC;EAC/D,MAAM;IAAEY,aAAa;IAAEC;EAAM,CAAC,GAAGF,qBAAqB,aAArBA,qBAAqB,cAArBA,qBAAqB,GAAI,CAAC,CAAC;EAE5D,MAAAG,IAAA,GAOIT,KAAK,IAAI,CAAC,CAAC;IAPT;MACJU,QAAQ;MACRC,SAAS;MACTC,KAAK;MACLC,YAAY;MACZT;IAEF,CAAC,GAAAK,IAAA;IADIK,SAAS,GAAAC,wBAAA,CAAAN,IAAA,EAAAO,SAAA;EAGd,MAAMC,SAAS,GAAG1B,MAAM,CAAUiB,KAAK,CAAC;EAExCnB,SAAS,CAAC,MAAM;IACd,IAAIkB,aAAa,KAAK,MAAM,EAAE;MAC5BU,SAAS,CAACC,OAAO,GAAG,KAAK;IAC3B;EACF,CAAC,EAAE,CAACV,KAAK,EAAED,aAAa,CAAC,CAAC;EAE1B,MAAMY,UAAU,GACdF,SAAS,CAACC,OAAO,IAAIL,YAAY,GAAGA,YAAY,GAAGD,KAAK;EAC1D,MAAMQ,SAAS,GAAG9B,OAAO,CACvB,MAAMG,kBAAkB,CAAC0B,UAAU,CAAC,EACpC,CAACA,UAAU,CACb,CAAC;EAED,OACEhC,KAAA,CAAAc,aAAA,CAACJ,YAAY,EAAAM,QAAA;IACXkB,IAAI,EAAC,MAAM;IACXV,SAAS,EAAEnB,UAAU,CAAC,8BAA8B,EAAEmB,SAAS,CAAE;IACjES,SAAS,EAAEA;EAAU,GACjBN,SAAS,GAEZK,UAAU,IAAIhC,KAAA,CAAAc,aAAA,CAACP,IAAI;IAAC4B,IAAI,EAAC;EAAO,GAAEH,UAAiB,CAAC,EACpDT,QAAQ,EACRN,OACW,CAAC;AAEnB;AAEAL,aAAa,CAACwB,qBAAqB,GAAG,IAAI;AAC1CrB,2BAA2B,CAACqB,qBAAqB,GAAG,IAAI"}
@@ -9,6 +9,11 @@ export const EditContainerProperties = {
9
9
  type: 'React.Node',
10
10
  status: 'optional'
11
11
  },
12
+ variant: {
13
+ doc: 'Defines the variant of the container. Can be `outline` or `basic`. Defaults to `outline`.',
14
+ type: 'string',
15
+ status: 'optional'
16
+ },
12
17
  '[FlexVertical](/uilib/layout/flex/container/)': {
13
18
  doc: 'All Flex.Vertical properties.',
14
19
  type: 'Various',