@dnb/eufemia 10.23.0 → 10.25.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 (498) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/cjs/components/accordion/style/dnb-accordion.css +6 -2
  3. package/cjs/components/accordion/style/dnb-accordion.min.css +2 -2
  4. package/cjs/components/accordion/style/dnb-accordion.scss +8 -2
  5. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +23 -4
  6. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  7. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +25 -5
  8. package/cjs/components/anchor/Anchor.d.ts +1 -1
  9. package/cjs/components/anchor/Anchor.js +2 -2
  10. package/cjs/components/anchor/Anchor.js.map +1 -1
  11. package/cjs/components/anchor/style/anchor-mixins.scss +46 -3
  12. package/cjs/components/anchor/style/dnb-anchor.css +73 -4
  13. package/cjs/components/anchor/style/dnb-anchor.min.css +1 -1
  14. package/cjs/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +2 -14
  15. package/cjs/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  16. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +2 -46
  17. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  18. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +1 -32
  19. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.css +2 -14
  20. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  21. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.scss +1 -8
  22. package/cjs/components/autocomplete/Autocomplete.d.ts +0 -15
  23. package/cjs/components/autocomplete/AutocompleteDocs.d.ts +3 -0
  24. package/cjs/components/autocomplete/AutocompleteDocs.js +293 -0
  25. package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -0
  26. package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
  27. package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  28. package/cjs/components/breadcrumb/style/dnb-breadcrumb.scss +1 -1
  29. package/cjs/components/button/Button.js +1 -1
  30. package/cjs/components/button/Button.js.map +1 -1
  31. package/cjs/components/dropdown/Dropdown.d.ts +0 -3
  32. package/cjs/components/flex/style/dnb-flex.css +1 -1
  33. package/cjs/components/flex/style/dnb-flex.min.css +1 -1
  34. package/cjs/components/flex/style/flex-stack.scss +1 -1
  35. package/cjs/components/icon/style/dnb-icon.css +2 -2
  36. package/cjs/components/icon/style/dnb-icon.min.css +1 -1
  37. package/cjs/components/icon/style/dnb-icon.scss +1 -1
  38. package/cjs/components/input/Input.js +1 -1
  39. package/cjs/components/input/Input.js.map +1 -1
  40. package/cjs/components/input/InputDocs.js +2 -2
  41. package/cjs/components/input/InputDocs.js.map +1 -1
  42. package/cjs/components/table/style/dnb-table.css +6 -0
  43. package/cjs/components/table/style/dnb-table.min.css +1 -1
  44. package/cjs/components/table/style/table-th.scss +9 -25
  45. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.css +1 -1
  46. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  47. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.scss +2 -1
  48. package/cjs/components/table/style/themes/dnb-table-theme-ui.css +1 -1
  49. package/cjs/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  50. package/cjs/components/table/style/themes/dnb-table-theme-ui.scss +2 -2
  51. package/cjs/components/textarea/Textarea.d.ts +9 -0
  52. package/cjs/components/textarea/Textarea.js +21 -5
  53. package/cjs/components/textarea/Textarea.js.map +1 -1
  54. package/cjs/components/textarea/TextareaDocs.js +10 -0
  55. package/cjs/components/textarea/TextareaDocs.js.map +1 -1
  56. package/cjs/components/textarea/style/dnb-textarea.css +69 -26
  57. package/cjs/components/textarea/style/dnb-textarea.min.css +1 -1
  58. package/cjs/components/textarea/style/dnb-textarea.scss +83 -31
  59. package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +15 -21
  60. package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -1
  61. package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +17 -28
  62. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.css +12 -23
  63. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  64. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.scss +11 -27
  65. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +1 -2
  66. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
  67. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -2
  68. package/cjs/extensions/forms/DataContext/At/At.js +6 -6
  69. package/cjs/extensions/forms/DataContext/At/At.js.map +1 -1
  70. package/cjs/extensions/forms/DataContext/Context.d.ts +5 -2
  71. package/cjs/extensions/forms/DataContext/Context.js +1 -0
  72. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  73. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
  74. package/cjs/extensions/forms/DataContext/Provider/Provider.js +52 -26
  75. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  76. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +5 -5
  77. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  78. package/cjs/extensions/forms/Field/String/String.d.ts +6 -6
  79. package/cjs/extensions/forms/Field/String/String.js +13 -11
  80. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  81. package/cjs/extensions/forms/Form/Appearance/Appearance.js +3 -0
  82. package/cjs/extensions/forms/Form/Appearance/Appearance.js.map +1 -1
  83. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +2 -2
  84. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  85. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +2 -1
  86. package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  87. package/cjs/extensions/forms/Form/Handler/Handler.js +3 -3
  88. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  89. package/cjs/extensions/forms/StepsLayout/Step/Step.js +2 -3
  90. package/cjs/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
  91. package/cjs/extensions/forms/StepsLayout/StepsContext.d.ts +6 -4
  92. package/cjs/extensions/forms/StepsLayout/StepsContext.js +6 -1
  93. package/cjs/extensions/forms/StepsLayout/StepsContext.js.map +1 -1
  94. package/cjs/extensions/forms/StepsLayout/StepsLayout.d.ts +4 -2
  95. package/cjs/extensions/forms/StepsLayout/StepsLayout.js +86 -50
  96. package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  97. package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.js +1 -1
  98. package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -1
  99. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.css +1 -1
  100. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  101. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +1 -1
  102. package/cjs/extensions/forms/StepsLayout/useStep.d.ts +3 -0
  103. package/cjs/extensions/forms/StepsLayout/useStep.js +19 -0
  104. package/cjs/extensions/forms/StepsLayout/useStep.js.map +1 -0
  105. package/cjs/extensions/forms/hooks/useFieldProps.js +82 -58
  106. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  107. package/cjs/extensions/forms/style/dnb-forms.css +3 -3
  108. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  109. package/cjs/extensions/forms/types.d.ts +2 -2
  110. package/cjs/extensions/forms/types.js.map +1 -1
  111. package/cjs/extensions/forms/utils/ajv.js +6 -2
  112. package/cjs/extensions/forms/utils/ajv.js.map +1 -1
  113. package/cjs/fragments/drawer-list/DrawerList.d.ts +95 -1
  114. package/cjs/fragments/drawer-list/DrawerListDocs.d.ts +3 -0
  115. package/cjs/fragments/drawer-list/DrawerListDocs.js +188 -0
  116. package/cjs/fragments/drawer-list/DrawerListDocs.js.map +1 -0
  117. package/cjs/shared/Eufemia.d.ts +1 -1
  118. package/cjs/shared/Eufemia.js +2 -2
  119. package/cjs/shared/Eufemia.js.map +1 -1
  120. package/cjs/shared/helpers/runCssVersionMismatchWarning.js +2 -2
  121. package/cjs/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
  122. package/cjs/style/core/scopes.scss +1 -1
  123. package/cjs/style/dnb-ui-basis.css +1 -1
  124. package/cjs/style/dnb-ui-basis.min.css +1 -1
  125. package/cjs/style/dnb-ui-body.css +1 -1
  126. package/cjs/style/dnb-ui-body.min.css +1 -1
  127. package/cjs/style/dnb-ui-components.css +160 -39
  128. package/cjs/style/dnb-ui-components.min.css +3 -3
  129. package/cjs/style/dnb-ui-core.css +1 -1
  130. package/cjs/style/dnb-ui-core.min.css +1 -1
  131. package/cjs/style/dnb-ui-extensions.css +3 -3
  132. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  133. package/cjs/style/dnb-ui-forms.css +3 -3
  134. package/cjs/style/dnb-ui-forms.min.css +1 -1
  135. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +178 -83
  136. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  137. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -3
  138. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  139. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +3 -3
  140. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  141. package/cjs/style/themes/theme-eiendom/properties.js +10 -10
  142. package/cjs/style/themes/theme-eiendom/properties.js.map +1 -1
  143. package/cjs/style/themes/theme-sbanken/properties.js +10 -10
  144. package/cjs/style/themes/theme-sbanken/properties.js.map +1 -1
  145. package/cjs/style/themes/theme-sbanken/properties.scss +10 -10
  146. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +10 -10
  147. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  148. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +204 -114
  149. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
  150. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -3
  151. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  152. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +3 -3
  153. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  154. package/cjs/style/themes/theme-ui/properties.js +10 -10
  155. package/cjs/style/themes/theme-ui/properties.js.map +1 -1
  156. package/cjs/style/themes/theme-ui/ui-theme-components.css +178 -81
  157. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +6 -6
  158. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +3 -3
  159. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  160. package/cjs/style/themes/theme-ui/ui-theme-forms.css +3 -3
  161. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  162. package/cjs/style/themes/theme-ui/ui-theme-tags.css +37 -9
  163. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  164. package/components/accordion/style/dnb-accordion.css +6 -2
  165. package/components/accordion/style/dnb-accordion.min.css +2 -2
  166. package/components/accordion/style/dnb-accordion.scss +8 -2
  167. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +23 -4
  168. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  169. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +25 -5
  170. package/components/anchor/Anchor.d.ts +1 -1
  171. package/components/anchor/Anchor.js +2 -2
  172. package/components/anchor/Anchor.js.map +1 -1
  173. package/components/anchor/style/anchor-mixins.scss +46 -3
  174. package/components/anchor/style/dnb-anchor.css +73 -4
  175. package/components/anchor/style/dnb-anchor.min.css +1 -1
  176. package/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +2 -14
  177. package/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  178. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +2 -46
  179. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  180. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +1 -32
  181. package/components/anchor/style/themes/dnb-anchor-theme-ui.css +2 -14
  182. package/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  183. package/components/anchor/style/themes/dnb-anchor-theme-ui.scss +1 -8
  184. package/components/autocomplete/Autocomplete.d.ts +0 -15
  185. package/components/autocomplete/AutocompleteDocs.d.ts +3 -0
  186. package/components/autocomplete/AutocompleteDocs.js +285 -0
  187. package/components/autocomplete/AutocompleteDocs.js.map +1 -0
  188. package/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
  189. package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  190. package/components/breadcrumb/style/dnb-breadcrumb.scss +1 -1
  191. package/components/button/Button.js +1 -1
  192. package/components/button/Button.js.map +1 -1
  193. package/components/dropdown/Dropdown.d.ts +0 -3
  194. package/components/flex/style/dnb-flex.css +1 -1
  195. package/components/flex/style/dnb-flex.min.css +1 -1
  196. package/components/flex/style/flex-stack.scss +1 -1
  197. package/components/icon/style/dnb-icon.css +2 -2
  198. package/components/icon/style/dnb-icon.min.css +1 -1
  199. package/components/icon/style/dnb-icon.scss +1 -1
  200. package/components/input/Input.js +1 -1
  201. package/components/input/Input.js.map +1 -1
  202. package/components/input/InputDocs.js +2 -2
  203. package/components/input/InputDocs.js.map +1 -1
  204. package/components/table/style/dnb-table.css +6 -0
  205. package/components/table/style/dnb-table.min.css +1 -1
  206. package/components/table/style/table-th.scss +9 -25
  207. package/components/table/style/themes/dnb-table-theme-sbanken.css +1 -1
  208. package/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  209. package/components/table/style/themes/dnb-table-theme-sbanken.scss +2 -1
  210. package/components/table/style/themes/dnb-table-theme-ui.css +1 -1
  211. package/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  212. package/components/table/style/themes/dnb-table-theme-ui.scss +2 -2
  213. package/components/textarea/Textarea.d.ts +9 -0
  214. package/components/textarea/Textarea.js +21 -5
  215. package/components/textarea/Textarea.js.map +1 -1
  216. package/components/textarea/TextareaDocs.js +10 -0
  217. package/components/textarea/TextareaDocs.js.map +1 -1
  218. package/components/textarea/style/dnb-textarea.css +69 -26
  219. package/components/textarea/style/dnb-textarea.min.css +1 -1
  220. package/components/textarea/style/dnb-textarea.scss +83 -31
  221. package/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +15 -21
  222. package/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -1
  223. package/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +17 -28
  224. package/components/textarea/style/themes/dnb-textarea-theme-ui.css +12 -23
  225. package/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  226. package/components/textarea/style/themes/dnb-textarea-theme-ui.scss +11 -27
  227. package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +1 -2
  228. package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
  229. package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -2
  230. package/es/components/accordion/style/dnb-accordion.css +6 -2
  231. package/es/components/accordion/style/dnb-accordion.min.css +2 -2
  232. package/es/components/accordion/style/dnb-accordion.scss +8 -2
  233. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +23 -4
  234. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  235. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +25 -5
  236. package/es/components/anchor/Anchor.d.ts +1 -1
  237. package/es/components/anchor/Anchor.js +2 -2
  238. package/es/components/anchor/Anchor.js.map +1 -1
  239. package/es/components/anchor/style/anchor-mixins.scss +46 -3
  240. package/es/components/anchor/style/dnb-anchor.css +73 -4
  241. package/es/components/anchor/style/dnb-anchor.min.css +1 -1
  242. package/es/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +2 -14
  243. package/es/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  244. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +2 -46
  245. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  246. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +1 -32
  247. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.css +2 -14
  248. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  249. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.scss +1 -8
  250. package/es/components/autocomplete/Autocomplete.d.ts +0 -15
  251. package/es/components/autocomplete/AutocompleteDocs.d.ts +3 -0
  252. package/es/components/autocomplete/AutocompleteDocs.js +285 -0
  253. package/es/components/autocomplete/AutocompleteDocs.js.map +1 -0
  254. package/es/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
  255. package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  256. package/es/components/breadcrumb/style/dnb-breadcrumb.scss +1 -1
  257. package/es/components/button/Button.js +1 -1
  258. package/es/components/button/Button.js.map +1 -1
  259. package/es/components/dropdown/Dropdown.d.ts +0 -3
  260. package/es/components/flex/style/dnb-flex.css +1 -1
  261. package/es/components/flex/style/dnb-flex.min.css +1 -1
  262. package/es/components/flex/style/flex-stack.scss +1 -1
  263. package/es/components/icon/style/dnb-icon.css +2 -2
  264. package/es/components/icon/style/dnb-icon.min.css +1 -1
  265. package/es/components/icon/style/dnb-icon.scss +1 -1
  266. package/es/components/input/Input.js +1 -1
  267. package/es/components/input/Input.js.map +1 -1
  268. package/es/components/input/InputDocs.js +2 -2
  269. package/es/components/input/InputDocs.js.map +1 -1
  270. package/es/components/table/style/dnb-table.css +6 -0
  271. package/es/components/table/style/dnb-table.min.css +1 -1
  272. package/es/components/table/style/table-th.scss +9 -25
  273. package/es/components/table/style/themes/dnb-table-theme-sbanken.css +1 -1
  274. package/es/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  275. package/es/components/table/style/themes/dnb-table-theme-sbanken.scss +2 -1
  276. package/es/components/table/style/themes/dnb-table-theme-ui.css +1 -1
  277. package/es/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  278. package/es/components/table/style/themes/dnb-table-theme-ui.scss +2 -2
  279. package/es/components/textarea/Textarea.d.ts +9 -0
  280. package/es/components/textarea/Textarea.js +21 -5
  281. package/es/components/textarea/Textarea.js.map +1 -1
  282. package/es/components/textarea/TextareaDocs.js +10 -0
  283. package/es/components/textarea/TextareaDocs.js.map +1 -1
  284. package/es/components/textarea/style/dnb-textarea.css +69 -26
  285. package/es/components/textarea/style/dnb-textarea.min.css +1 -1
  286. package/es/components/textarea/style/dnb-textarea.scss +83 -31
  287. package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +15 -21
  288. package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -1
  289. package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +17 -28
  290. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.css +12 -23
  291. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  292. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.scss +11 -27
  293. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +1 -2
  294. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
  295. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -2
  296. package/es/extensions/forms/DataContext/At/At.js +7 -7
  297. package/es/extensions/forms/DataContext/At/At.js.map +1 -1
  298. package/es/extensions/forms/DataContext/Context.d.ts +5 -2
  299. package/es/extensions/forms/DataContext/Context.js +1 -0
  300. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  301. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
  302. package/es/extensions/forms/DataContext/Provider/Provider.js +51 -26
  303. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  304. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +5 -5
  305. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  306. package/es/extensions/forms/Field/String/String.d.ts +6 -6
  307. package/es/extensions/forms/Field/String/String.js +13 -11
  308. package/es/extensions/forms/Field/String/String.js.map +1 -1
  309. package/es/extensions/forms/Form/Appearance/Appearance.js +3 -0
  310. package/es/extensions/forms/Form/Appearance/Appearance.js.map +1 -1
  311. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +2 -2
  312. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  313. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +2 -1
  314. package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  315. package/es/extensions/forms/Form/Handler/Handler.js +3 -3
  316. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  317. package/es/extensions/forms/StepsLayout/Step/Step.js +2 -3
  318. package/es/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
  319. package/es/extensions/forms/StepsLayout/StepsContext.d.ts +6 -4
  320. package/es/extensions/forms/StepsLayout/StepsContext.js +6 -1
  321. package/es/extensions/forms/StepsLayout/StepsContext.js.map +1 -1
  322. package/es/extensions/forms/StepsLayout/StepsLayout.d.ts +4 -2
  323. package/es/extensions/forms/StepsLayout/StepsLayout.js +82 -49
  324. package/es/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  325. package/es/extensions/forms/StepsLayout/StepsLayoutDocs.js +1 -1
  326. package/es/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -1
  327. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.css +1 -1
  328. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  329. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +1 -1
  330. package/es/extensions/forms/StepsLayout/useStep.d.ts +3 -0
  331. package/es/extensions/forms/StepsLayout/useStep.js +12 -0
  332. package/es/extensions/forms/StepsLayout/useStep.js.map +1 -0
  333. package/es/extensions/forms/hooks/useFieldProps.js +82 -58
  334. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  335. package/es/extensions/forms/style/dnb-forms.css +3 -3
  336. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  337. package/es/extensions/forms/types.d.ts +2 -2
  338. package/es/extensions/forms/types.js.map +1 -1
  339. package/es/extensions/forms/utils/ajv.js +6 -2
  340. package/es/extensions/forms/utils/ajv.js.map +1 -1
  341. package/es/fragments/drawer-list/DrawerList.d.ts +95 -1
  342. package/es/fragments/drawer-list/DrawerListDocs.d.ts +3 -0
  343. package/es/fragments/drawer-list/DrawerListDocs.js +180 -0
  344. package/es/fragments/drawer-list/DrawerListDocs.js.map +1 -0
  345. package/es/shared/Eufemia.d.ts +1 -1
  346. package/es/shared/Eufemia.js +2 -2
  347. package/es/shared/Eufemia.js.map +1 -1
  348. package/es/shared/helpers/runCssVersionMismatchWarning.js +2 -2
  349. package/es/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
  350. package/es/style/core/scopes.scss +1 -1
  351. package/es/style/dnb-ui-basis.css +1 -1
  352. package/es/style/dnb-ui-basis.min.css +1 -1
  353. package/es/style/dnb-ui-body.css +1 -1
  354. package/es/style/dnb-ui-body.min.css +1 -1
  355. package/es/style/dnb-ui-components.css +160 -39
  356. package/es/style/dnb-ui-components.min.css +3 -3
  357. package/es/style/dnb-ui-core.css +1 -1
  358. package/es/style/dnb-ui-core.min.css +1 -1
  359. package/es/style/dnb-ui-extensions.css +3 -3
  360. package/es/style/dnb-ui-extensions.min.css +1 -1
  361. package/es/style/dnb-ui-forms.css +3 -3
  362. package/es/style/dnb-ui-forms.min.css +1 -1
  363. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +178 -83
  364. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  365. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -3
  366. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  367. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +3 -3
  368. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  369. package/es/style/themes/theme-eiendom/properties.js +10 -10
  370. package/es/style/themes/theme-eiendom/properties.js.map +1 -1
  371. package/es/style/themes/theme-sbanken/properties.js +10 -10
  372. package/es/style/themes/theme-sbanken/properties.js.map +1 -1
  373. package/es/style/themes/theme-sbanken/properties.scss +10 -10
  374. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +10 -10
  375. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  376. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +204 -114
  377. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
  378. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -3
  379. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  380. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +3 -3
  381. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  382. package/es/style/themes/theme-ui/properties.js +10 -10
  383. package/es/style/themes/theme-ui/properties.js.map +1 -1
  384. package/es/style/themes/theme-ui/ui-theme-components.css +178 -81
  385. package/es/style/themes/theme-ui/ui-theme-components.min.css +6 -6
  386. package/es/style/themes/theme-ui/ui-theme-extensions.css +3 -3
  387. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  388. package/es/style/themes/theme-ui/ui-theme-forms.css +3 -3
  389. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  390. package/es/style/themes/theme-ui/ui-theme-tags.css +37 -9
  391. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  392. package/esm/dnb-ui-basis.min.mjs +1 -1
  393. package/esm/dnb-ui-components.min.mjs +1 -1
  394. package/esm/dnb-ui-elements.min.mjs +1 -1
  395. package/esm/dnb-ui-extensions.min.mjs +2 -2
  396. package/esm/dnb-ui-lib.min.mjs +1 -1
  397. package/extensions/forms/DataContext/At/At.js +7 -7
  398. package/extensions/forms/DataContext/At/At.js.map +1 -1
  399. package/extensions/forms/DataContext/Context.d.ts +5 -2
  400. package/extensions/forms/DataContext/Context.js +1 -0
  401. package/extensions/forms/DataContext/Context.js.map +1 -1
  402. package/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
  403. package/extensions/forms/DataContext/Provider/Provider.js +52 -26
  404. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  405. package/extensions/forms/DataContext/Provider/ProviderDocs.js +5 -5
  406. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  407. package/extensions/forms/Field/String/String.d.ts +6 -6
  408. package/extensions/forms/Field/String/String.js +13 -11
  409. package/extensions/forms/Field/String/String.js.map +1 -1
  410. package/extensions/forms/Form/Appearance/Appearance.js +3 -0
  411. package/extensions/forms/Form/Appearance/Appearance.js.map +1 -1
  412. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +2 -2
  413. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  414. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +2 -1
  415. package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  416. package/extensions/forms/Form/Handler/Handler.js +3 -3
  417. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  418. package/extensions/forms/StepsLayout/Step/Step.js +2 -3
  419. package/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
  420. package/extensions/forms/StepsLayout/StepsContext.d.ts +6 -4
  421. package/extensions/forms/StepsLayout/StepsContext.js +6 -1
  422. package/extensions/forms/StepsLayout/StepsContext.js.map +1 -1
  423. package/extensions/forms/StepsLayout/StepsLayout.d.ts +4 -2
  424. package/extensions/forms/StepsLayout/StepsLayout.js +85 -51
  425. package/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  426. package/extensions/forms/StepsLayout/StepsLayoutDocs.js +1 -1
  427. package/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -1
  428. package/extensions/forms/StepsLayout/style/dnb-steps-layout.css +1 -1
  429. package/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  430. package/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +1 -1
  431. package/extensions/forms/StepsLayout/useStep.d.ts +3 -0
  432. package/extensions/forms/StepsLayout/useStep.js +13 -0
  433. package/extensions/forms/StepsLayout/useStep.js.map +1 -0
  434. package/extensions/forms/hooks/useFieldProps.js +82 -58
  435. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  436. package/extensions/forms/style/dnb-forms.css +3 -3
  437. package/extensions/forms/style/dnb-forms.min.css +1 -1
  438. package/extensions/forms/types.d.ts +2 -2
  439. package/extensions/forms/types.js.map +1 -1
  440. package/extensions/forms/utils/ajv.js +6 -2
  441. package/extensions/forms/utils/ajv.js.map +1 -1
  442. package/fragments/drawer-list/DrawerList.d.ts +95 -1
  443. package/fragments/drawer-list/DrawerListDocs.d.ts +3 -0
  444. package/fragments/drawer-list/DrawerListDocs.js +180 -0
  445. package/fragments/drawer-list/DrawerListDocs.js.map +1 -0
  446. package/package.json +1 -1
  447. package/shared/Eufemia.d.ts +1 -1
  448. package/shared/Eufemia.js +2 -2
  449. package/shared/Eufemia.js.map +1 -1
  450. package/shared/helpers/runCssVersionMismatchWarning.js +2 -2
  451. package/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
  452. package/style/core/scopes.scss +1 -1
  453. package/style/dnb-ui-basis.css +1 -1
  454. package/style/dnb-ui-basis.min.css +1 -1
  455. package/style/dnb-ui-body.css +1 -1
  456. package/style/dnb-ui-body.min.css +1 -1
  457. package/style/dnb-ui-components.css +160 -39
  458. package/style/dnb-ui-components.min.css +3 -3
  459. package/style/dnb-ui-core.css +1 -1
  460. package/style/dnb-ui-core.min.css +1 -1
  461. package/style/dnb-ui-extensions.css +3 -3
  462. package/style/dnb-ui-extensions.min.css +1 -1
  463. package/style/dnb-ui-forms.css +3 -3
  464. package/style/dnb-ui-forms.min.css +1 -1
  465. package/style/themes/theme-eiendom/eiendom-theme-components.css +178 -83
  466. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  467. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -3
  468. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  469. package/style/themes/theme-eiendom/eiendom-theme-forms.css +3 -3
  470. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  471. package/style/themes/theme-eiendom/properties.js +10 -10
  472. package/style/themes/theme-eiendom/properties.js.map +1 -1
  473. package/style/themes/theme-sbanken/properties.js +10 -10
  474. package/style/themes/theme-sbanken/properties.js.map +1 -1
  475. package/style/themes/theme-sbanken/properties.scss +10 -10
  476. package/style/themes/theme-sbanken/sbanken-theme-basis.css +10 -10
  477. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  478. package/style/themes/theme-sbanken/sbanken-theme-components.css +204 -114
  479. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
  480. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -3
  481. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  482. package/style/themes/theme-sbanken/sbanken-theme-forms.css +3 -3
  483. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  484. package/style/themes/theme-ui/properties.js +10 -10
  485. package/style/themes/theme-ui/properties.js.map +1 -1
  486. package/style/themes/theme-ui/ui-theme-components.css +178 -81
  487. package/style/themes/theme-ui/ui-theme-components.min.css +6 -6
  488. package/style/themes/theme-ui/ui-theme-extensions.css +3 -3
  489. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  490. package/style/themes/theme-ui/ui-theme-forms.css +3 -3
  491. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  492. package/style/themes/theme-ui/ui-theme-tags.css +37 -9
  493. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  494. package/umd/dnb-ui-basis.min.js +1 -1
  495. package/umd/dnb-ui-components.min.js +1 -1
  496. package/umd/dnb-ui-elements.min.js +1 -1
  497. package/umd/dnb-ui-extensions.min.js +3 -3
  498. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1,9 +1,12 @@
1
1
  "use client";
2
2
 
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
5
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
6
  const _excluded = ["className", "id", "mode", "scrollTopOnStepChange", "initialActiveIndex", "onStepChange", "children", "noAnimation", "variant", "sidebarId"];
6
- import React, { useContext, useCallback, useRef, useReducer } from 'react';
7
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
8
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9
+ import React, { useContext, useCallback, useRef, useReducer, useMemo, useEffect } from 'react';
7
10
  import classnames from 'classnames';
8
11
  import { Space, StepIndicator } from '../../../components';
9
12
  import { warn } from '../../../shared/component-helper';
@@ -16,6 +19,8 @@ import NextButton from './NextButton';
16
19
  import PreviousButton from './PreviousButton';
17
20
  import Buttons from './Buttons';
18
21
  import Provider from '../DataContext/Provider';
22
+ import { useSharedState } from '../../../shared/helpers/useSharedState';
23
+ import { useStep } from './useStep';
19
24
  function StepsLayout(props) {
20
25
  const {
21
26
  className,
@@ -30,7 +35,6 @@ function StepsLayout(props) {
30
35
  sidebarId
31
36
  } = props,
32
37
  rest = _objectWithoutProperties(props, _excluded);
33
- const dataContext = useContext(DataContext);
34
38
  const {
35
39
  hasContext,
36
40
  setFormState,
@@ -38,7 +42,7 @@ function StepsLayout(props) {
38
42
  setShowAllErrors,
39
43
  showAllErrors,
40
44
  scrollToTop
41
- } = dataContext;
45
+ } = useContext(DataContext);
42
46
  const id = useId(_id);
43
47
  const [, forceUpdate] = useReducer(() => ({}), {});
44
48
  const activeIndexRef = useRef(initialActiveIndex);
@@ -50,34 +54,24 @@ function StepsLayout(props) {
50
54
  }
51
55
  return onStepChange === null || onStepChange === void 0 ? void 0 : onStepChange(index, mode);
52
56
  }, [onStepChange]);
53
- const handlePrevious = useCallback(() => {
57
+ const handleStepChange = useCallback(_ref => {
58
+ let {
59
+ index,
60
+ skipErrorCheck,
61
+ mode
62
+ } = _ref;
54
63
  handleSubmitCall({
55
- skipFieldValidation: true,
56
- skipErrorCheck: true,
64
+ skipErrorCheck,
65
+ skipFieldValidation: skipErrorCheck,
57
66
  enableAsyncBehaviour: isAsync(onStepChange),
58
67
  onSubmit: async () => {
59
- const result = await callOnStepChange(activeIndexRef.current - 1, 'previous');
68
+ const result = await callOnStepChange(index, mode);
60
69
  setFormState('abort');
61
- if (!(result instanceof Error)) {
62
- activeIndexRef.current = activeIndexRef.current - 1;
63
- forceUpdate();
64
- }
65
- if (scrollTopOnStepChange) {
66
- scrollToTop();
70
+ if (!skipErrorCheck) {
71
+ setShowAllErrors(errorOnStepRef.current[index]);
67
72
  }
68
- return result;
69
- }
70
- });
71
- }, [callOnStepChange, handleSubmitCall, onStepChange, scrollToTop, scrollTopOnStepChange, setFormState]);
72
- const handleNext = useCallback(() => {
73
- handleSubmitCall({
74
- enableAsyncBehaviour: isAsync(onStepChange),
75
- onSubmit: async () => {
76
- const result = await callOnStepChange(activeIndexRef.current + 1, 'next');
77
- setFormState('abort');
78
- setShowAllErrors(errorOnStepRef.current[activeIndexRef.current + 1]);
79
73
  if (!(result instanceof Error)) {
80
- activeIndexRef.current = activeIndexRef.current + 1;
74
+ activeIndexRef.current = index;
81
75
  forceUpdate();
82
76
  }
83
77
  if (scrollTopOnStepChange) {
@@ -87,21 +81,71 @@ function StepsLayout(props) {
87
81
  }
88
82
  });
89
83
  }, [callOnStepChange, handleSubmitCall, onStepChange, scrollToTop, scrollTopOnStepChange, setFormState, setShowAllErrors]);
90
- const stepIndicatorData = React.Children.map(children, child => {
91
- var _child$props$title;
92
- if (!React.isValidElement(child) || child.type !== Step) {
93
- throw new Error('Only Step can be children of StepsLayout');
84
+ const setActiveIndex = useCallback((index, options) => {
85
+ if (index === activeIndexRef.current) {
86
+ return;
94
87
  }
95
- return (_child$props$title = child.props.title) !== null && _child$props$title !== void 0 ? _child$props$title : 'Title missing';
96
- });
97
- const handleChange = useCallback(_ref => {
88
+ const mode = index > activeIndexRef.current ? 'next' : 'previous';
89
+ handleStepChange(_objectSpread({
90
+ index,
91
+ skipErrorCheck: mode === 'previous',
92
+ mode
93
+ }, options));
94
+ }, [handleStepChange]);
95
+ const handlePrevious = useCallback(() => {
96
+ setActiveIndex(activeIndexRef.current - 1);
97
+ }, [setActiveIndex]);
98
+ const handleNext = useCallback(() => {
99
+ setActiveIndex(activeIndexRef.current + 1);
100
+ }, [setActiveIndex]);
101
+ const handleChange = useCallback(_ref2 => {
98
102
  let {
99
103
  current_step
100
- } = _ref;
101
- activeIndexRef.current = current_step;
102
- setShowAllErrors(errorOnStepRef.current[current_step]);
103
- forceUpdate();
104
- }, [setShowAllErrors]);
104
+ } = _ref2;
105
+ setActiveIndex(current_step, {
106
+ skipErrorCheck: true
107
+ });
108
+ }, [setActiveIndex]);
109
+ const providerValue = useMemo(() => ({
110
+ activeIndex: activeIndexRef.current,
111
+ setActiveIndex,
112
+ handlePrevious,
113
+ handleNext
114
+ }), [activeIndexRef.current, setActiveIndex, handlePrevious, handleNext]);
115
+ const sharedState = useSharedState(hasContext && id ? id + '-steps' : undefined);
116
+ const {
117
+ extend
118
+ } = sharedState;
119
+ useEffect(() => {
120
+ if (hasContext && id) {
121
+ extend(providerValue);
122
+ }
123
+ }, [id, extend, providerValue]);
124
+ const titlesRef = useRef([]);
125
+ const Contents = useCallback(() => {
126
+ titlesRef.current = [];
127
+ return React.Children.map(children, (child, i) => {
128
+ if (React.isValidElement(child)) {
129
+ var _child, _child2;
130
+ let step = child;
131
+ if (((_child = child) === null || _child === void 0 ? void 0 : _child.type) !== Step && typeof child.type === 'function') {
132
+ var _step;
133
+ step = child.type.apply(child.type, [child.props]);
134
+ if (((_step = step) === null || _step === void 0 ? void 0 : _step.type) === Step) {
135
+ child = step;
136
+ }
137
+ }
138
+ if (((_child2 = child) === null || _child2 === void 0 ? void 0 : _child2.type) === Step) {
139
+ var _child$props$title;
140
+ titlesRef.current.push((_child$props$title = child.props.title) !== null && _child$props$title !== void 0 ? _child$props$title : 'Title missing');
141
+ return React.cloneElement(child, {
142
+ index: i
143
+ });
144
+ }
145
+ }
146
+ return child;
147
+ });
148
+ }, [children]);
105
149
  if (!hasContext) {
106
150
  warn('You may wrap StepsLayout in Form.Handler');
107
151
  return React.createElement(Provider, null, React.createElement(StepsLayout, _extends({}, props, {
@@ -109,11 +153,7 @@ function StepsLayout(props) {
109
153
  })));
110
154
  }
111
155
  return React.createElement(StepsContext.Provider, {
112
- value: {
113
- activeIndex: activeIndexRef.current,
114
- handlePrevious,
115
- handleNext
116
- }
156
+ value: providerValue
117
157
  }, React.createElement(Space, _extends({
118
158
  className: classnames('dnb-forms-steps-layout', className, variant === 'drawer' && 'dnb-forms-steps-layout--drawer')
119
159
  }, rest), React.createElement("aside", {
@@ -123,26 +163,20 @@ function StepsLayout(props) {
123
163
  }), React.createElement(StepIndicator, {
124
164
  bottom: true,
125
165
  current_step: activeIndexRef.current,
126
- data: stepIndicatorData,
166
+ data: titlesRef.current,
127
167
  mode: mode,
128
168
  no_animation: noAnimation,
129
169
  on_change: handleChange,
130
170
  sidebar_id: variant === 'drawer' && !sidebarId ? '' : sidebarId ? sidebarId : id
131
171
  })), React.createElement("div", {
132
172
  className: "dnb-forms-steps-layout__contents"
133
- }, React.Children.map(children, (child, i) => {
134
- if (React.isValidElement(child) && child.type === Step) {
135
- return React.cloneElement(child, {
136
- index: i
137
- });
138
- }
139
- return child;
140
- }))));
173
+ }, React.createElement(Contents, null))));
141
174
  }
142
175
  StepsLayout._supportsSpacingProps = true;
143
176
  StepsLayout.Step = Step;
144
177
  StepsLayout.NextButton = NextButton;
145
178
  StepsLayout.PreviousButton = PreviousButton;
146
179
  StepsLayout.Buttons = Buttons;
180
+ StepsLayout.useStep = useStep;
147
181
  export default StepsLayout;
148
182
  //# sourceMappingURL=StepsLayout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StepsLayout.js","names":["React","useContext","useCallback","useRef","useReducer","classnames","Space","StepIndicator","warn","isAsync","useId","DataContext","Step","StepsContext","NextButton","PreviousButton","Buttons","Provider","StepsLayout","props","className","id","_id","mode","scrollTopOnStepChange","initialActiveIndex","onStepChange","children","noAnimation","variant","sidebarId","rest","_objectWithoutProperties","_excluded","dataContext","hasContext","setFormState","handleSubmitCall","setShowAllErrors","showAllErrors","scrollToTop","forceUpdate","activeIndexRef","errorOnStepRef","current","callOnStepChange","index","handlePrevious","skipFieldValidation","skipErrorCheck","enableAsyncBehaviour","onSubmit","result","Error","handleNext","stepIndicatorData","Children","map","child","_child$props$title","isValidElement","type","title","handleChange","_ref","current_step","createElement","_extends","value","activeIndex","Sidebar","sidebar_id","bottom","data","no_animation","on_change","i","cloneElement","_supportsSpacingProps"],"sources":["../../../../../src/extensions/forms/StepsLayout/StepsLayout.tsx"],"sourcesContent":["import React, { useContext, useCallback, useRef, useReducer } from 'react'\nimport classnames from 'classnames'\nimport { Space, StepIndicator } from '../../../components'\nimport { warn } from '../../../shared/component-helper'\nimport { isAsync } from '../../../shared/helpers/isAsync'\nimport useId from '../../../shared/helpers/useId'\nimport DataContext from '../DataContext/Context'\nimport Step, { Props as StepProps } from './Step'\nimport StepsContext from './StepsContext'\nimport NextButton from './NextButton'\nimport PreviousButton from './PreviousButton'\nimport Buttons from './Buttons'\nimport Provider from '../DataContext/Provider'\nimport { ComponentProps, EventReturnWithStateObject } from '../types'\n\nexport type Props = ComponentProps & {\n id?: string\n mode?: 'static' | 'strict' | 'loose'\n scrollTopOnStepChange?: boolean\n initialActiveIndex?: number\n onStepChange?: (\n index: number,\n mode: 'previous' | 'next'\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n children: React.ReactNode\n variant?: 'sidebar' | 'drawer'\n noAnimation?: boolean\n sidebarId?: string\n}\n\nfunction StepsLayout(props: Props) {\n const {\n className,\n id: _id,\n mode = 'strict',\n scrollTopOnStepChange,\n initialActiveIndex = 0,\n onStepChange,\n children,\n noAnimation = true,\n variant = 'sidebar',\n sidebarId,\n ...rest\n } = props\n const dataContext = useContext(DataContext)\n const {\n hasContext,\n setFormState,\n handleSubmitCall,\n setShowAllErrors,\n showAllErrors,\n scrollToTop,\n } = dataContext\n\n const id = useId(_id)\n const [, forceUpdate] = useReducer(() => ({}), {})\n const activeIndexRef = useRef<number>(initialActiveIndex)\n const errorOnStepRef = useRef<Record<number, boolean>>({})\n\n // Store the current state of showAllErrors\n errorOnStepRef.current[activeIndexRef.current] = showAllErrors\n\n const callOnStepChange = useCallback(\n async (index: number, mode: 'previous' | 'next') => {\n if (isAsync(onStepChange)) {\n return await onStepChange(index, mode)\n }\n\n return onStepChange?.(index, mode)\n },\n [onStepChange]\n )\n\n const handlePrevious = useCallback(() => {\n handleSubmitCall({\n skipFieldValidation: true,\n skipErrorCheck: true,\n enableAsyncBehaviour: isAsync(onStepChange),\n onSubmit: async () => {\n const result = await callOnStepChange(\n activeIndexRef.current - 1,\n 'previous'\n )\n\n // Hide async indicator\n setFormState('abort')\n\n if (!(result instanceof Error)) {\n activeIndexRef.current = activeIndexRef.current - 1\n forceUpdate()\n }\n\n if (scrollTopOnStepChange) {\n scrollToTop()\n }\n\n return result\n },\n })\n }, [\n callOnStepChange,\n handleSubmitCall,\n onStepChange,\n scrollToTop,\n scrollTopOnStepChange,\n setFormState,\n ])\n\n const handleNext = useCallback(() => {\n handleSubmitCall({\n enableAsyncBehaviour: isAsync(onStepChange),\n onSubmit: async () => {\n const result = await callOnStepChange(\n activeIndexRef.current + 1,\n 'next'\n )\n\n // Hide async indicator\n setFormState('abort')\n\n // Set the showAllErrors to the step we got to\n setShowAllErrors(\n errorOnStepRef.current[activeIndexRef.current + 1]\n )\n\n if (!(result instanceof Error)) {\n activeIndexRef.current = activeIndexRef.current + 1\n forceUpdate()\n }\n\n if (scrollTopOnStepChange) {\n scrollToTop()\n }\n\n return result\n },\n })\n }, [\n callOnStepChange,\n handleSubmitCall,\n onStepChange,\n scrollToTop,\n scrollTopOnStepChange,\n setFormState,\n setShowAllErrors,\n ])\n\n const stepIndicatorData = React.Children.map(children, (child) => {\n if (!React.isValidElement(child) || child.type !== Step) {\n throw new Error('Only Step can be children of StepsLayout')\n }\n return child.props.title ?? 'Title missing'\n }) as string[]\n\n const handleChange = useCallback(\n ({ current_step }) => {\n activeIndexRef.current = current_step\n\n // Set the showAllErrors to the step we got to\n setShowAllErrors(errorOnStepRef.current[current_step])\n\n forceUpdate()\n },\n [setShowAllErrors]\n )\n\n if (!hasContext) {\n warn('You may wrap StepsLayout in Form.Handler')\n return (\n <Provider>\n <StepsLayout {...props} id={id} />\n </Provider>\n )\n }\n\n return (\n <StepsContext.Provider\n value={{\n activeIndex: activeIndexRef.current,\n handlePrevious,\n handleNext,\n }}\n >\n <Space\n className={classnames(\n 'dnb-forms-steps-layout',\n variant === 'drawer' && 'dnb-forms-steps-layout--drawer',\n className\n )}\n {...rest}\n >\n <aside className=\"dnb-forms-steps-layout__sidebar\">\n <StepIndicator.Sidebar sidebar_id={id} />\n <StepIndicator\n bottom\n current_step={activeIndexRef.current}\n data={stepIndicatorData}\n mode={mode}\n no_animation={noAnimation}\n on_change={handleChange}\n sidebar_id={\n variant === 'drawer' && !sidebarId\n ? ''\n : sidebarId\n ? sidebarId\n : id\n }\n />\n </aside>\n <div className=\"dnb-forms-steps-layout__contents\">\n {React.Children.map(children, (child, i) => {\n if (React.isValidElement(child) && child.type === Step) {\n return React.cloneElement(\n child as React.ReactElement<StepProps>,\n {\n index: i,\n }\n )\n }\n return child\n })}\n </div>\n </Space>\n </StepsContext.Provider>\n )\n}\n\nStepsLayout._supportsSpacingProps = true\n\nStepsLayout.Step = Step\nStepsLayout.NextButton = NextButton\nStepsLayout.PreviousButton = PreviousButton\nStepsLayout.Buttons = Buttons\n\nexport default StepsLayout\n"],"mappings":"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"}
1
+ {"version":3,"file":"StepsLayout.js","names":["React","useContext","useCallback","useRef","useReducer","useMemo","useEffect","classnames","Space","StepIndicator","warn","isAsync","useId","DataContext","Step","StepsContext","NextButton","PreviousButton","Buttons","Provider","useSharedState","useStep","StepsLayout","props","className","id","_id","mode","scrollTopOnStepChange","initialActiveIndex","onStepChange","children","noAnimation","variant","sidebarId","rest","_objectWithoutProperties","_excluded","hasContext","setFormState","handleSubmitCall","setShowAllErrors","showAllErrors","scrollToTop","forceUpdate","activeIndexRef","errorOnStepRef","current","callOnStepChange","index","handleStepChange","_ref","skipErrorCheck","skipFieldValidation","enableAsyncBehaviour","onSubmit","result","Error","setActiveIndex","options","_objectSpread","handlePrevious","handleNext","handleChange","_ref2","current_step","providerValue","activeIndex","sharedState","undefined","extend","titlesRef","Contents","Children","map","child","i","isValidElement","_child","_child2","step","type","_step","apply","_child$props$title","push","title","cloneElement","createElement","_extends","value","Sidebar","sidebar_id","bottom","data","no_animation","on_change","_supportsSpacingProps"],"sources":["../../../../../src/extensions/forms/StepsLayout/StepsLayout.tsx"],"sourcesContent":["import React, {\n useContext,\n useCallback,\n useRef,\n useReducer,\n useMemo,\n useEffect,\n} from 'react'\nimport classnames from 'classnames'\nimport { Space, StepIndicator } from '../../../components'\nimport { warn } from '../../../shared/component-helper'\nimport { isAsync } from '../../../shared/helpers/isAsync'\nimport useId from '../../../shared/helpers/useId'\nimport DataContext from '../DataContext/Context'\nimport Step, { Props as StepProps } from './Step'\nimport StepsContext, { StepIndex, StepsContextState } from './StepsContext'\nimport NextButton from './NextButton'\nimport PreviousButton from './PreviousButton'\nimport Buttons from './Buttons'\nimport Provider from '../DataContext/Provider'\nimport { useSharedState } from '../../../shared/helpers/useSharedState'\nimport { useStep } from './useStep'\nimport { ComponentProps, EventReturnWithStateObject } from '../types'\n\nexport type Props = ComponentProps & {\n id?: string\n mode?: 'static' | 'strict' | 'loose'\n scrollTopOnStepChange?: boolean\n initialActiveIndex?: StepIndex\n onStepChange?: (\n index: StepIndex,\n mode: 'previous' | 'next'\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n children: React.ReactNode\n variant?: 'sidebar' | 'drawer'\n noAnimation?: boolean\n sidebarId?: string\n}\n\nfunction StepsLayout(props: Props) {\n const {\n className,\n id: _id,\n mode = 'strict',\n scrollTopOnStepChange,\n initialActiveIndex = 0,\n onStepChange,\n children,\n noAnimation = true,\n variant = 'sidebar',\n sidebarId,\n ...rest\n } = props\n\n const {\n hasContext,\n setFormState,\n handleSubmitCall,\n setShowAllErrors,\n showAllErrors,\n scrollToTop,\n } = useContext(DataContext)\n\n const id = useId(_id)\n const [, forceUpdate] = useReducer(() => ({}), {})\n const activeIndexRef = useRef<StepIndex>(initialActiveIndex)\n const errorOnStepRef = useRef<Record<StepIndex, boolean>>({})\n\n // Store the current state of showAllErrors\n errorOnStepRef.current[activeIndexRef.current] = showAllErrors\n\n const callOnStepChange = useCallback(\n async (index: StepIndex, mode: 'previous' | 'next') => {\n if (isAsync(onStepChange)) {\n return await onStepChange(index, mode)\n }\n\n return onStepChange?.(index, mode)\n },\n [onStepChange]\n )\n\n const handleStepChange = useCallback(\n ({\n index,\n skipErrorCheck,\n mode,\n }: {\n index: StepIndex\n skipErrorCheck: boolean\n mode: 'previous' | 'next'\n }) => {\n handleSubmitCall({\n skipErrorCheck,\n skipFieldValidation: skipErrorCheck,\n enableAsyncBehaviour: isAsync(onStepChange),\n onSubmit: async () => {\n const result = await callOnStepChange(index, mode)\n\n // Hide async indicator\n setFormState('abort')\n\n if (!skipErrorCheck) {\n // Set the showAllErrors to the step we got to\n setShowAllErrors(errorOnStepRef.current[index])\n }\n\n if (!(result instanceof Error)) {\n activeIndexRef.current = index\n forceUpdate()\n }\n\n if (scrollTopOnStepChange) {\n scrollToTop()\n }\n\n return result\n },\n })\n },\n [\n callOnStepChange,\n handleSubmitCall,\n onStepChange,\n scrollToTop,\n scrollTopOnStepChange,\n setFormState,\n setShowAllErrors,\n ]\n )\n\n const setActiveIndex = useCallback(\n (index: StepIndex, options?: { skipErrorCheck: boolean }) => {\n if (index === activeIndexRef.current) {\n return\n }\n\n const mode = index > activeIndexRef.current ? 'next' : 'previous'\n\n handleStepChange({\n index,\n skipErrorCheck: mode === 'previous',\n mode,\n ...options,\n })\n },\n [handleStepChange]\n )\n\n const handlePrevious = useCallback(() => {\n setActiveIndex(activeIndexRef.current - 1)\n }, [setActiveIndex])\n\n const handleNext = useCallback(() => {\n setActiveIndex(activeIndexRef.current + 1)\n }, [setActiveIndex])\n\n const handleChange = useCallback(\n ({ current_step }) => {\n setActiveIndex(current_step, { skipErrorCheck: true })\n },\n [setActiveIndex]\n )\n\n const providerValue = useMemo(\n () => ({\n activeIndex: activeIndexRef.current,\n setActiveIndex,\n handlePrevious,\n handleNext,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [activeIndexRef.current, setActiveIndex, handlePrevious, handleNext]\n )\n\n // - Handle shared state\n const sharedState = useSharedState<StepsContextState>(\n hasContext && id ? id + '-steps' : undefined\n )\n const { extend } = sharedState\n useEffect(() => {\n if (hasContext && id) {\n extend(providerValue)\n }\n }, [id, extend, providerValue]) // eslint-disable-line react-hooks/exhaustive-deps\n\n const titlesRef = useRef([])\n const Contents = useCallback(() => {\n titlesRef.current = []\n return React.Children.map(children, (child, i) => {\n if (React.isValidElement(child)) {\n let step = child\n\n if (child?.type !== Step && typeof child.type === 'function') {\n step = child.type.apply(child.type, [\n child.props,\n ]) as React.ReactElement\n\n if (step?.type === Step) {\n child = step\n }\n }\n\n if (child?.type === Step) {\n titlesRef.current.push(child.props.title ?? 'Title missing')\n return React.cloneElement(\n child as React.ReactElement<StepProps>,\n {\n index: i,\n }\n )\n }\n }\n\n return child\n })\n }, [children])\n\n if (!hasContext) {\n warn('You may wrap StepsLayout in Form.Handler')\n return (\n <Provider>\n <StepsLayout {...props} id={id} />\n </Provider>\n )\n }\n\n return (\n <StepsContext.Provider value={providerValue}>\n <Space\n className={classnames(\n 'dnb-forms-steps-layout',\n variant === 'drawer' && 'dnb-forms-steps-layout--drawer',\n className\n )}\n {...rest}\n >\n <aside className=\"dnb-forms-steps-layout__sidebar\">\n <StepIndicator.Sidebar sidebar_id={id} />\n <StepIndicator\n bottom\n current_step={activeIndexRef.current}\n data={titlesRef.current}\n mode={mode}\n no_animation={noAnimation}\n on_change={handleChange}\n sidebar_id={\n variant === 'drawer' && !sidebarId\n ? ''\n : sidebarId\n ? sidebarId\n : id\n }\n />\n </aside>\n\n <div className=\"dnb-forms-steps-layout__contents\">\n <Contents />\n </div>\n </Space>\n </StepsContext.Provider>\n )\n}\n\nStepsLayout._supportsSpacingProps = true\n\nStepsLayout.Step = Step\nStepsLayout.NextButton = NextButton\nStepsLayout.PreviousButton = PreviousButton\nStepsLayout.Buttons = Buttons\nStepsLayout.useStep = useStep\n\nexport default StepsLayout\n"],"mappings":";;;;;;;;AAAA,OAAOA,KAAK,IACVC,UAAU,EACVC,WAAW,EACXC,MAAM,EACNC,UAAU,EACVC,OAAO,EACPC,SAAS,QACJ,OAAO;AACd,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,KAAK,EAAEC,aAAa,QAAQ,qBAAqB;AAC1D,SAASC,IAAI,QAAQ,kCAAkC;AACvD,SAASC,OAAO,QAAQ,iCAAiC;AACzD,OAAOC,KAAK,MAAM,+BAA+B;AACjD,OAAOC,WAAW,MAAM,wBAAwB;AAChD,OAAOC,IAAI,MAA8B,QAAQ;AACjD,OAAOC,YAAY,MAAwC,gBAAgB;AAC3E,OAAOC,UAAU,MAAM,cAAc;AACrC,OAAOC,cAAc,MAAM,kBAAkB;AAC7C,OAAOC,OAAO,MAAM,WAAW;AAC/B,OAAOC,QAAQ,MAAM,yBAAyB;AAC9C,SAASC,cAAc,QAAQ,wCAAwC;AACvE,SAASC,OAAO,QAAQ,WAAW;AAqBnC,SAASC,WAAWA,CAACC,KAAY,EAAE;EACjC,MAAM;MACJC,SAAS;MACTC,EAAE,EAAEC,GAAG;MACPC,IAAI,GAAG,QAAQ;MACfC,qBAAqB;MACrBC,kBAAkB,GAAG,CAAC;MACtBC,YAAY;MACZC,QAAQ;MACRC,WAAW,GAAG,IAAI;MAClBC,OAAO,GAAG,SAAS;MACnBC;IAEF,CAAC,GAAGX,KAAK;IADJY,IAAI,GAAAC,wBAAA,CACLb,KAAK,EAAAc,SAAA;EAET,MAAM;IACJC,UAAU;IACVC,YAAY;IACZC,gBAAgB;IAChBC,gBAAgB;IAChBC,aAAa;IACbC;EACF,CAAC,GAAG1C,UAAU,CAACY,WAAW,CAAC;EAE3B,MAAMY,EAAE,GAAGb,KAAK,CAACc,GAAG,CAAC;EACrB,MAAM,GAAGkB,WAAW,CAAC,GAAGxC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAClD,MAAMyC,cAAc,GAAG1C,MAAM,CAAY0B,kBAAkB,CAAC;EAC5D,MAAMiB,cAAc,GAAG3C,MAAM,CAA6B,CAAC,CAAC,CAAC;EAG7D2C,cAAc,CAACC,OAAO,CAACF,cAAc,CAACE,OAAO,CAAC,GAAGL,aAAa;EAE9D,MAAMM,gBAAgB,GAAG9C,WAAW,CAClC,OAAO+C,KAAgB,EAAEtB,IAAyB,KAAK;IACrD,IAAIhB,OAAO,CAACmB,YAAY,CAAC,EAAE;MACzB,OAAO,MAAMA,YAAY,CAACmB,KAAK,EAAEtB,IAAI,CAAC;IACxC;IAEA,OAAOG,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGmB,KAAK,EAAEtB,IAAI,CAAC;EACpC,CAAC,EACD,CAACG,YAAY,CACf,CAAC;EAED,MAAMoB,gBAAgB,GAAGhD,WAAW,CAClCiD,IAAA,IAQM;IAAA,IARL;MACCF,KAAK;MACLG,cAAc;MACdzB;IAKF,CAAC,GAAAwB,IAAA;IACCX,gBAAgB,CAAC;MACfY,cAAc;MACdC,mBAAmB,EAAED,cAAc;MACnCE,oBAAoB,EAAE3C,OAAO,CAACmB,YAAY,CAAC;MAC3CyB,QAAQ,EAAE,MAAAA,CAAA,KAAY;QACpB,MAAMC,MAAM,GAAG,MAAMR,gBAAgB,CAACC,KAAK,EAAEtB,IAAI,CAAC;QAGlDY,YAAY,CAAC,OAAO,CAAC;QAErB,IAAI,CAACa,cAAc,EAAE;UAEnBX,gBAAgB,CAACK,cAAc,CAACC,OAAO,CAACE,KAAK,CAAC,CAAC;QACjD;QAEA,IAAI,EAAEO,MAAM,YAAYC,KAAK,CAAC,EAAE;UAC9BZ,cAAc,CAACE,OAAO,GAAGE,KAAK;UAC9BL,WAAW,CAAC,CAAC;QACf;QAEA,IAAIhB,qBAAqB,EAAE;UACzBe,WAAW,CAAC,CAAC;QACf;QAEA,OAAOa,MAAM;MACf;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CACER,gBAAgB,EAChBR,gBAAgB,EAChBV,YAAY,EACZa,WAAW,EACXf,qBAAqB,EACrBW,YAAY,EACZE,gBAAgB,CAEpB,CAAC;EAED,MAAMiB,cAAc,GAAGxD,WAAW,CAChC,CAAC+C,KAAgB,EAAEU,OAAqC,KAAK;IAC3D,IAAIV,KAAK,KAAKJ,cAAc,CAACE,OAAO,EAAE;MACpC;IACF;IAEA,MAAMpB,IAAI,GAAGsB,KAAK,GAAGJ,cAAc,CAACE,OAAO,GAAG,MAAM,GAAG,UAAU;IAEjEG,gBAAgB,CAAAU,aAAA;MACdX,KAAK;MACLG,cAAc,EAAEzB,IAAI,KAAK,UAAU;MACnCA;IAAI,GACDgC,OAAO,CACX,CAAC;EACJ,CAAC,EACD,CAACT,gBAAgB,CACnB,CAAC;EAED,MAAMW,cAAc,GAAG3D,WAAW,CAAC,MAAM;IACvCwD,cAAc,CAACb,cAAc,CAACE,OAAO,GAAG,CAAC,CAAC;EAC5C,CAAC,EAAE,CAACW,cAAc,CAAC,CAAC;EAEpB,MAAMI,UAAU,GAAG5D,WAAW,CAAC,MAAM;IACnCwD,cAAc,CAACb,cAAc,CAACE,OAAO,GAAG,CAAC,CAAC;EAC5C,CAAC,EAAE,CAACW,cAAc,CAAC,CAAC;EAEpB,MAAMK,YAAY,GAAG7D,WAAW,CAC9B8D,KAAA,IAAsB;IAAA,IAArB;MAAEC;IAAa,CAAC,GAAAD,KAAA;IACfN,cAAc,CAACO,YAAY,EAAE;MAAEb,cAAc,EAAE;IAAK,CAAC,CAAC;EACxD,CAAC,EACD,CAACM,cAAc,CACjB,CAAC;EAED,MAAMQ,aAAa,GAAG7D,OAAO,CAC3B,OAAO;IACL8D,WAAW,EAAEtB,cAAc,CAACE,OAAO;IACnCW,cAAc;IACdG,cAAc;IACdC;EACF,CAAC,CAAC,EAEF,CAACjB,cAAc,CAACE,OAAO,EAAEW,cAAc,EAAEG,cAAc,EAAEC,UAAU,CACrE,CAAC;EAGD,MAAMM,WAAW,GAAGhD,cAAc,CAChCkB,UAAU,IAAIb,EAAE,GAAGA,EAAE,GAAG,QAAQ,GAAG4C,SACrC,CAAC;EACD,MAAM;IAAEC;EAAO,CAAC,GAAGF,WAAW;EAC9B9D,SAAS,CAAC,MAAM;IACd,IAAIgC,UAAU,IAAIb,EAAE,EAAE;MACpB6C,MAAM,CAACJ,aAAa,CAAC;IACvB;EACF,CAAC,EAAE,CAACzC,EAAE,EAAE6C,MAAM,EAAEJ,aAAa,CAAC,CAAC;EAE/B,MAAMK,SAAS,GAAGpE,MAAM,CAAC,EAAE,CAAC;EAC5B,MAAMqE,QAAQ,GAAGtE,WAAW,CAAC,MAAM;IACjCqE,SAAS,CAACxB,OAAO,GAAG,EAAE;IACtB,OAAO/C,KAAK,CAACyE,QAAQ,CAACC,GAAG,CAAC3C,QAAQ,EAAE,CAAC4C,KAAK,EAAEC,CAAC,KAAK;MAChD,IAAI5E,KAAK,CAAC6E,cAAc,CAACF,KAAK,CAAC,EAAE;QAAA,IAAAG,MAAA,EAAAC,OAAA;QAC/B,IAAIC,IAAI,GAAGL,KAAK;QAEhB,IAAI,EAAAG,MAAA,GAAAH,KAAK,cAAAG,MAAA,uBAALA,MAAA,CAAOG,IAAI,MAAKnE,IAAI,IAAI,OAAO6D,KAAK,CAACM,IAAI,KAAK,UAAU,EAAE;UAAA,IAAAC,KAAA;UAC5DF,IAAI,GAAGL,KAAK,CAACM,IAAI,CAACE,KAAK,CAACR,KAAK,CAACM,IAAI,EAAE,CAClCN,KAAK,CAACpD,KAAK,CACZ,CAAuB;UAExB,IAAI,EAAA2D,KAAA,GAAAF,IAAI,cAAAE,KAAA,uBAAJA,KAAA,CAAMD,IAAI,MAAKnE,IAAI,EAAE;YACvB6D,KAAK,GAAGK,IAAI;UACd;QACF;QAEA,IAAI,EAAAD,OAAA,GAAAJ,KAAK,cAAAI,OAAA,uBAALA,OAAA,CAAOE,IAAI,MAAKnE,IAAI,EAAE;UAAA,IAAAsE,kBAAA;UACxBb,SAAS,CAACxB,OAAO,CAACsC,IAAI,EAAAD,kBAAA,GAACT,KAAK,CAACpD,KAAK,CAAC+D,KAAK,cAAAF,kBAAA,cAAAA,kBAAA,GAAI,eAAe,CAAC;UAC5D,OAAOpF,KAAK,CAACuF,YAAY,CACvBZ,KAAK,EACL;YACE1B,KAAK,EAAE2B;UACT,CACF,CAAC;QACH;MACF;MAEA,OAAOD,KAAK;IACd,CAAC,CAAC;EACJ,CAAC,EAAE,CAAC5C,QAAQ,CAAC,CAAC;EAEd,IAAI,CAACO,UAAU,EAAE;IACf5B,IAAI,CAAC,0CAA0C,CAAC;IAChD,OACEV,KAAA,CAAAwF,aAAA,CAACrE,QAAQ,QACPnB,KAAA,CAAAwF,aAAA,CAAClE,WAAW,EAAAmE,QAAA,KAAKlE,KAAK;MAAEE,EAAE,EAAEA;IAAG,EAAE,CACzB,CAAC;EAEf;EAEA,OACEzB,KAAA,CAAAwF,aAAA,CAACzE,YAAY,CAACI,QAAQ;IAACuE,KAAK,EAAExB;EAAc,GAC1ClE,KAAA,CAAAwF,aAAA,CAAChF,KAAK,EAAAiF,QAAA;IACJjE,SAAS,EAAEjB,UAAU,CACnB,wBAAwB,EAExBiB,SAAS,EADTS,OAAO,KAAK,QAAQ,IAAI,gCAE1B;EAAE,GACEE,IAAI,GAERnC,KAAA,CAAAwF,aAAA;IAAOhE,SAAS,EAAC;EAAiC,GAChDxB,KAAA,CAAAwF,aAAA,CAAC/E,aAAa,CAACkF,OAAO;IAACC,UAAU,EAAEnE;EAAG,CAAE,CAAC,EACzCzB,KAAA,CAAAwF,aAAA,CAAC/E,aAAa;IACZoF,MAAM;IACN5B,YAAY,EAAEpB,cAAc,CAACE,OAAQ;IACrC+C,IAAI,EAAEvB,SAAS,CAACxB,OAAQ;IACxBpB,IAAI,EAAEA,IAAK;IACXoE,YAAY,EAAE/D,WAAY;IAC1BgE,SAAS,EAAEjC,YAAa;IACxB6B,UAAU,EACR3D,OAAO,KAAK,QAAQ,IAAI,CAACC,SAAS,GAC9B,EAAE,GACFA,SAAS,GACTA,SAAS,GACTT;EACL,CACF,CACI,CAAC,EAERzB,KAAA,CAAAwF,aAAA;IAAKhE,SAAS,EAAC;EAAkC,GAC/CxB,KAAA,CAAAwF,aAAA,CAAChB,QAAQ,MAAE,CACR,CACA,CACc,CAAC;AAE5B;AAEAlD,WAAW,CAAC2E,qBAAqB,GAAG,IAAI;AAExC3E,WAAW,CAACR,IAAI,GAAGA,IAAI;AACvBQ,WAAW,CAACN,UAAU,GAAGA,UAAU;AACnCM,WAAW,CAACL,cAAc,GAAGA,cAAc;AAC3CK,WAAW,CAACJ,OAAO,GAAGA,OAAO;AAC7BI,WAAW,CAACD,OAAO,GAAGA,OAAO;AAE7B,eAAeC,WAAW"}
@@ -42,7 +42,7 @@ export const StepsLayoutProperties = {
42
42
  };
43
43
  export const StepsLayoutEvents = {
44
44
  onStepChange: {
45
- doc: 'Will be called when the user navigate to a different step, with step `index` as the first argument and `previous` or `next` (string) as the second argument. When an async function is provided, it will show an indicator on the submit button during the form submission. All form elements will be disabled during the submit. The indicator will be shown for minimum 1 second. Related Form.Handler props: `minimumAsyncBehaviorTime` and `asyncBehaviorTimeout`.',
45
+ doc: 'Will be called when the user navigate to a different step, with step `index` as the first argument and `previous` or `next` (string) as the second argument. When an async function is provided, it will show an indicator on the submit button during the form submission. All form elements will be disabled during the submit. The indicator will be shown for minimum 1 second. Related Form.Handler props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`.',
46
46
  type: 'function',
47
47
  status: 'optional'
48
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StepsLayoutDocs.js","names":["StepsLayoutProperties","initialActiveIndex","doc","type","status","mode","variant","noAnimation","sidebarId","scrollTopOnStepChange","children","StepsLayoutEvents","onStepChange"],"sources":["../../../../../src/extensions/forms/StepsLayout/StepsLayoutDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../shared/types'\n\nexport const StepsLayoutProperties: PropertiesTableProps = {\n initialActiveIndex: {\n doc: 'What step should show initially (defaults to 0 for the first one).',\n type: 'number',\n status: 'optional',\n },\n mode: {\n doc: 'How to show the steps. Inherited from StepIndicator. Defaults to `strict`.',\n type: 'string',\n status: 'optional',\n },\n variant: {\n doc: 'Sets the StepIndicator to be either `sidebar` or `drawer`. Defaults to `sidebar`.',\n type: 'string',\n status: 'optional',\n },\n noAnimation: {\n doc: 'Determines if the height animation for step items and the drawer button will run. Inherited from StepIndicator. Defaults to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n sidebarId: {\n doc: 'Sets the id for `<StepIndicator.Sidebar />` Inherited from StepIndicator.',\n type: 'string',\n status: 'required',\n },\n scrollTopOnStepChange: {\n doc: 'True for the UI to scroll to the top of the page when navigating between steps.',\n type: 'boolean',\n status: 'optional',\n },\n children: {\n doc: 'Contents (Step components).',\n type: 'React.Node',\n status: 'required',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const StepsLayoutEvents: PropertiesTableProps = {\n onStepChange: {\n doc: 'Will be called when the user navigate to a different step, with step `index` as the first argument and `previous` or `next` (string) as the second argument. When an async function is provided, it will show an indicator on the submit button during the form submission. All form elements will be disabled during the submit. The indicator will be shown for minimum 1 second. Related Form.Handler props: `minimumAsyncBehaviorTime` and `asyncBehaviorTimeout`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,qBAA2C,GAAG;EACzDC,kBAAkB,EAAE;IAClBC,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,4EAA4E;IACjFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,OAAO,EAAE;IACPJ,GAAG,EAAE,mFAAmF;IACxFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,WAAW,EAAE;IACXL,GAAG,EAAE,qIAAqI;IAC1IC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDI,SAAS,EAAE;IACTN,GAAG,EAAE,2EAA2E;IAChFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,qBAAqB,EAAE;IACrBP,GAAG,EAAE,iFAAiF;IACtFC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDM,QAAQ,EAAE;IACRR,GAAG,EAAE,6BAA6B;IAClCC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMO,iBAAuC,GAAG;EACrDC,YAAY,EAAE;IACZV,GAAG,EAAE,wcAAwc;IAC7cC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC"}
1
+ {"version":3,"file":"StepsLayoutDocs.js","names":["StepsLayoutProperties","initialActiveIndex","doc","type","status","mode","variant","noAnimation","sidebarId","scrollTopOnStepChange","children","StepsLayoutEvents","onStepChange"],"sources":["../../../../../src/extensions/forms/StepsLayout/StepsLayoutDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../shared/types'\n\nexport const StepsLayoutProperties: PropertiesTableProps = {\n initialActiveIndex: {\n doc: 'What step should show initially (defaults to 0 for the first one).',\n type: 'number',\n status: 'optional',\n },\n mode: {\n doc: 'How to show the steps. Inherited from StepIndicator. Defaults to `strict`.',\n type: 'string',\n status: 'optional',\n },\n variant: {\n doc: 'Sets the StepIndicator to be either `sidebar` or `drawer`. Defaults to `sidebar`.',\n type: 'string',\n status: 'optional',\n },\n noAnimation: {\n doc: 'Determines if the height animation for step items and the drawer button will run. Inherited from StepIndicator. Defaults to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n sidebarId: {\n doc: 'Sets the id for `<StepIndicator.Sidebar />` Inherited from StepIndicator.',\n type: 'string',\n status: 'required',\n },\n scrollTopOnStepChange: {\n doc: 'True for the UI to scroll to the top of the page when navigating between steps.',\n type: 'boolean',\n status: 'optional',\n },\n children: {\n doc: 'Contents (Step components).',\n type: 'React.Node',\n status: 'required',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const StepsLayoutEvents: PropertiesTableProps = {\n onStepChange: {\n doc: 'Will be called when the user navigate to a different step, with step `index` as the first argument and `previous` or `next` (string) as the second argument. When an async function is provided, it will show an indicator on the submit button during the form submission. All form elements will be disabled during the submit. The indicator will be shown for minimum 1 second. Related Form.Handler props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,qBAA2C,GAAG;EACzDC,kBAAkB,EAAE;IAClBC,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,4EAA4E;IACjFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,OAAO,EAAE;IACPJ,GAAG,EAAE,mFAAmF;IACxFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,WAAW,EAAE;IACXL,GAAG,EAAE,qIAAqI;IAC1IC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDI,SAAS,EAAE;IACTN,GAAG,EAAE,2EAA2E;IAChFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,qBAAqB,EAAE;IACrBP,GAAG,EAAE,iFAAiF;IACtFC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDM,QAAQ,EAAE;IACRR,GAAG,EAAE,6BAA6B;IAClCC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMO,iBAAuC,GAAG;EACrDC,YAAY,EAAE;IACZV,GAAG,EAAE,scAAsc;IAC3cC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC"}
@@ -17,7 +17,7 @@
17
17
  margin-bottom: 2rem;
18
18
  }
19
19
  .dnb-forms-steps-layout__contents {
20
- flex: 1 0 auto;
20
+ flex: 1;
21
21
  }
22
22
  .dnb-forms-steps-layout__contents .dnb-card {
23
23
  --border-color: var(--color-pistachio);
@@ -1 +1 @@
1
- .dnb-forms-steps-layout{-moz-column-gap:var(--spacing-medium);column-gap:var(--spacing-medium);display:flex;flex-flow:row wrap}.dnb-forms-steps-layout--drawer{align-items:stretch;flex-direction:column;justify-content:stretch}.dnb-forms-steps-layout__sidebar{flex:0;margin-bottom:2rem}.dnb-forms-steps-layout__contents{flex:1 0 auto}.dnb-forms-steps-layout__contents .dnb-card{--border-color:var(--color-pistachio)}@media screen and (min-width:40em){.dnb-forms-steps-layout+.dnb-form-status+.dnb-form-status:not([class*=space__left]),.dnb-forms-steps-layout+.dnb-form-status:not([class*=space__left]){margin-left:var(--spacing-medium)}}@media screen and (max-width:60em){.dnb-forms-steps-layout{align-items:stretch;flex-direction:column;justify-content:stretch}.dnb-forms-steps-layout__contents{flex-basis:auto}}.dnb-forms-steps-layout .dnb-step-indicator__sidebar{margin-right:0}
1
+ .dnb-forms-steps-layout{-moz-column-gap:var(--spacing-medium);column-gap:var(--spacing-medium);display:flex;flex-flow:row wrap}.dnb-forms-steps-layout--drawer{align-items:stretch;flex-direction:column;justify-content:stretch}.dnb-forms-steps-layout__sidebar{flex:0;margin-bottom:2rem}.dnb-forms-steps-layout__contents{flex:1}.dnb-forms-steps-layout__contents .dnb-card{--border-color:var(--color-pistachio)}@media screen and (min-width:40em){.dnb-forms-steps-layout+.dnb-form-status+.dnb-form-status:not([class*=space__left]),.dnb-forms-steps-layout+.dnb-form-status:not([class*=space__left]){margin-left:var(--spacing-medium)}}@media screen and (max-width:60em){.dnb-forms-steps-layout{align-items:stretch;flex-direction:column;justify-content:stretch}.dnb-forms-steps-layout__contents{flex-basis:auto}}.dnb-forms-steps-layout .dnb-step-indicator__sidebar{margin-right:0}
@@ -17,7 +17,7 @@
17
17
  }
18
18
 
19
19
  &__contents {
20
- flex: 1 0 auto;
20
+ flex: 1;
21
21
  }
22
22
 
23
23
  &__contents .dnb-card {
@@ -0,0 +1,3 @@
1
+ import { StepsContextState } from './StepsContext';
2
+ import { Identifier } from '../types';
3
+ export declare function useStep(id?: Identifier): StepsContextState;
@@ -0,0 +1,13 @@
1
+ "use client";
2
+
3
+ import { useContext, useRef } from 'react';
4
+ import StepsContext from './StepsContext';
5
+ import { useSharedState } from '../../../shared/helpers/useSharedState';
6
+ export function useStep() {
7
+ let id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
8
+ const sharedDataRef = useRef(null);
9
+ sharedDataRef.current = useSharedState(id ? id + '-steps' : undefined);
10
+ const context = useContext(StepsContext);
11
+ return sharedDataRef.current.data || context;
12
+ }
13
+ //# sourceMappingURL=useStep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStep.js","names":["useContext","useRef","StepsContext","useSharedState","useStep","id","arguments","length","undefined","sharedDataRef","current","context","data"],"sources":["../../../../../src/extensions/forms/StepsLayout/useStep.tsx"],"sourcesContent":["import { useContext, useRef } from 'react'\nimport StepsContext, { StepsContextState } from './StepsContext'\nimport { Identifier } from '../types'\nimport { useSharedState } from '../../../shared/helpers/useSharedState'\n\nexport function useStep(id: Identifier = null) {\n const sharedDataRef =\n useRef<ReturnType<typeof useSharedState<StepsContextState>>>(null)\n sharedDataRef.current = useSharedState<StepsContextState>(\n id ? id + '-steps' : undefined\n )\n\n const context = useContext(StepsContext)\n return sharedDataRef.current.data || context\n}\n"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,MAAM,QAAQ,OAAO;AAC1C,OAAOC,YAAY,MAA6B,gBAAgB;AAEhE,SAASC,cAAc,QAAQ,wCAAwC;AAEvE,OAAO,SAASC,OAAOA,CAAA,EAAwB;EAAA,IAAvBC,EAAc,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EAC3C,MAAMG,aAAa,GACjBR,MAAM,CAAuD,IAAI,CAAC;EACpEQ,aAAa,CAACC,OAAO,GAAGP,cAAc,CACpCE,EAAE,GAAGA,EAAE,GAAG,QAAQ,GAAGG,SACvB,CAAC;EAED,MAAMG,OAAO,GAAGX,UAAU,CAACE,YAAY,CAAC;EACxC,OAAOO,aAAa,CAACC,OAAO,CAACE,IAAI,IAAID,OAAO;AAC9C"}