@dnb/eufemia 10.23.0 → 10.24.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 (369) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +18 -0
  3. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  4. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +20 -0
  5. package/cjs/components/anchor/Anchor.d.ts +1 -1
  6. package/cjs/components/anchor/Anchor.js +2 -2
  7. package/cjs/components/anchor/Anchor.js.map +1 -1
  8. package/cjs/components/anchor/style/anchor-mixins.scss +46 -3
  9. package/cjs/components/anchor/style/dnb-anchor.css +73 -4
  10. package/cjs/components/anchor/style/dnb-anchor.min.css +1 -1
  11. package/cjs/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +2 -14
  12. package/cjs/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  13. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +2 -46
  14. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  15. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +1 -32
  16. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.css +2 -14
  17. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  18. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.scss +1 -8
  19. package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
  20. package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  21. package/cjs/components/breadcrumb/style/dnb-breadcrumb.scss +1 -1
  22. package/cjs/components/button/Button.js +1 -1
  23. package/cjs/components/button/Button.js.map +1 -1
  24. package/cjs/components/flex/style/dnb-flex.css +1 -1
  25. package/cjs/components/flex/style/dnb-flex.min.css +1 -1
  26. package/cjs/components/flex/style/flex-stack.scss +1 -1
  27. package/cjs/components/icon/style/dnb-icon.css +2 -2
  28. package/cjs/components/icon/style/dnb-icon.min.css +1 -1
  29. package/cjs/components/icon/style/dnb-icon.scss +1 -1
  30. package/cjs/components/input/Input.js +1 -1
  31. package/cjs/components/input/Input.js.map +1 -1
  32. package/cjs/components/table/style/dnb-table.css +6 -0
  33. package/cjs/components/table/style/dnb-table.min.css +1 -1
  34. package/cjs/components/table/style/table-th.scss +9 -25
  35. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.css +1 -1
  36. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  37. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.scss +2 -1
  38. package/cjs/components/table/style/themes/dnb-table-theme-ui.css +1 -1
  39. package/cjs/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  40. package/cjs/components/table/style/themes/dnb-table-theme-ui.scss +2 -2
  41. package/cjs/components/textarea/Textarea.d.ts +9 -0
  42. package/cjs/components/textarea/Textarea.js +21 -5
  43. package/cjs/components/textarea/Textarea.js.map +1 -1
  44. package/cjs/components/textarea/TextareaDocs.js +10 -0
  45. package/cjs/components/textarea/TextareaDocs.js.map +1 -1
  46. package/cjs/components/textarea/style/dnb-textarea.css +69 -26
  47. package/cjs/components/textarea/style/dnb-textarea.min.css +1 -1
  48. package/cjs/components/textarea/style/dnb-textarea.scss +83 -31
  49. package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +15 -21
  50. package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -1
  51. package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +17 -28
  52. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.css +12 -23
  53. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  54. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.scss +11 -27
  55. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +1 -2
  56. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
  57. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -2
  58. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +3 -3
  59. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  60. package/cjs/extensions/forms/Field/String/String.d.ts +6 -6
  61. package/cjs/extensions/forms/Field/String/String.js +13 -11
  62. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  63. package/cjs/extensions/forms/Form/Appearance/Appearance.js +3 -0
  64. package/cjs/extensions/forms/Form/Appearance/Appearance.js.map +1 -1
  65. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +2 -2
  66. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  67. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +2 -1
  68. package/cjs/extensions/forms/StepsLayout/Step/Step.js +2 -3
  69. package/cjs/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
  70. package/cjs/extensions/forms/StepsLayout/StepsContext.d.ts +6 -4
  71. package/cjs/extensions/forms/StepsLayout/StepsContext.js +6 -1
  72. package/cjs/extensions/forms/StepsLayout/StepsContext.js.map +1 -1
  73. package/cjs/extensions/forms/StepsLayout/StepsLayout.d.ts +4 -2
  74. package/cjs/extensions/forms/StepsLayout/StepsLayout.js +83 -50
  75. package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  76. package/cjs/extensions/forms/StepsLayout/useStep.d.ts +3 -0
  77. package/cjs/extensions/forms/StepsLayout/useStep.js +19 -0
  78. package/cjs/extensions/forms/StepsLayout/useStep.js.map +1 -0
  79. package/cjs/extensions/forms/style/dnb-forms.css +2 -2
  80. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  81. package/cjs/extensions/forms/types.d.ts +2 -2
  82. package/cjs/extensions/forms/types.js.map +1 -1
  83. package/cjs/extensions/forms/utils/ajv.js +6 -2
  84. package/cjs/extensions/forms/utils/ajv.js.map +1 -1
  85. package/cjs/shared/Eufemia.d.ts +1 -1
  86. package/cjs/shared/Eufemia.js +2 -2
  87. package/cjs/shared/Eufemia.js.map +1 -1
  88. package/cjs/style/core/scopes.scss +1 -1
  89. package/cjs/style/dnb-ui-basis.css +1 -1
  90. package/cjs/style/dnb-ui-basis.min.css +1 -1
  91. package/cjs/style/dnb-ui-body.css +1 -1
  92. package/cjs/style/dnb-ui-body.min.css +1 -1
  93. package/cjs/style/dnb-ui-components.css +153 -36
  94. package/cjs/style/dnb-ui-components.min.css +3 -3
  95. package/cjs/style/dnb-ui-core.css +1 -1
  96. package/cjs/style/dnb-ui-core.min.css +1 -1
  97. package/cjs/style/dnb-ui-extensions.css +2 -2
  98. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  99. package/cjs/style/dnb-ui-forms.css +2 -2
  100. package/cjs/style/dnb-ui-forms.min.css +1 -1
  101. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +170 -79
  102. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  103. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +2 -2
  104. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  105. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +2 -2
  106. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  107. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +191 -106
  108. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +5 -5
  109. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +2 -2
  110. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  111. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +2 -2
  112. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  113. package/cjs/style/themes/theme-ui/ui-theme-components.css +170 -77
  114. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +6 -6
  115. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +2 -2
  116. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  117. package/cjs/style/themes/theme-ui/ui-theme-forms.css +2 -2
  118. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  119. package/cjs/style/themes/theme-ui/ui-theme-tags.css +37 -9
  120. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  121. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +18 -0
  122. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  123. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +20 -0
  124. package/components/anchor/Anchor.d.ts +1 -1
  125. package/components/anchor/Anchor.js +2 -2
  126. package/components/anchor/Anchor.js.map +1 -1
  127. package/components/anchor/style/anchor-mixins.scss +46 -3
  128. package/components/anchor/style/dnb-anchor.css +73 -4
  129. package/components/anchor/style/dnb-anchor.min.css +1 -1
  130. package/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +2 -14
  131. package/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  132. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +2 -46
  133. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  134. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +1 -32
  135. package/components/anchor/style/themes/dnb-anchor-theme-ui.css +2 -14
  136. package/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  137. package/components/anchor/style/themes/dnb-anchor-theme-ui.scss +1 -8
  138. package/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
  139. package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  140. package/components/breadcrumb/style/dnb-breadcrumb.scss +1 -1
  141. package/components/button/Button.js +1 -1
  142. package/components/button/Button.js.map +1 -1
  143. package/components/flex/style/dnb-flex.css +1 -1
  144. package/components/flex/style/dnb-flex.min.css +1 -1
  145. package/components/flex/style/flex-stack.scss +1 -1
  146. package/components/icon/style/dnb-icon.css +2 -2
  147. package/components/icon/style/dnb-icon.min.css +1 -1
  148. package/components/icon/style/dnb-icon.scss +1 -1
  149. package/components/input/Input.js +1 -1
  150. package/components/input/Input.js.map +1 -1
  151. package/components/table/style/dnb-table.css +6 -0
  152. package/components/table/style/dnb-table.min.css +1 -1
  153. package/components/table/style/table-th.scss +9 -25
  154. package/components/table/style/themes/dnb-table-theme-sbanken.css +1 -1
  155. package/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  156. package/components/table/style/themes/dnb-table-theme-sbanken.scss +2 -1
  157. package/components/table/style/themes/dnb-table-theme-ui.css +1 -1
  158. package/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  159. package/components/table/style/themes/dnb-table-theme-ui.scss +2 -2
  160. package/components/textarea/Textarea.d.ts +9 -0
  161. package/components/textarea/Textarea.js +21 -5
  162. package/components/textarea/Textarea.js.map +1 -1
  163. package/components/textarea/TextareaDocs.js +10 -0
  164. package/components/textarea/TextareaDocs.js.map +1 -1
  165. package/components/textarea/style/dnb-textarea.css +69 -26
  166. package/components/textarea/style/dnb-textarea.min.css +1 -1
  167. package/components/textarea/style/dnb-textarea.scss +83 -31
  168. package/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +15 -21
  169. package/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -1
  170. package/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +17 -28
  171. package/components/textarea/style/themes/dnb-textarea-theme-ui.css +12 -23
  172. package/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  173. package/components/textarea/style/themes/dnb-textarea-theme-ui.scss +11 -27
  174. package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +1 -2
  175. package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
  176. package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -2
  177. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +18 -0
  178. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  179. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +20 -0
  180. package/es/components/anchor/Anchor.d.ts +1 -1
  181. package/es/components/anchor/Anchor.js +2 -2
  182. package/es/components/anchor/Anchor.js.map +1 -1
  183. package/es/components/anchor/style/anchor-mixins.scss +46 -3
  184. package/es/components/anchor/style/dnb-anchor.css +73 -4
  185. package/es/components/anchor/style/dnb-anchor.min.css +1 -1
  186. package/es/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +2 -14
  187. package/es/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  188. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +2 -46
  189. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  190. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +1 -32
  191. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.css +2 -14
  192. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  193. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.scss +1 -8
  194. package/es/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
  195. package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  196. package/es/components/breadcrumb/style/dnb-breadcrumb.scss +1 -1
  197. package/es/components/button/Button.js +1 -1
  198. package/es/components/button/Button.js.map +1 -1
  199. package/es/components/flex/style/dnb-flex.css +1 -1
  200. package/es/components/flex/style/dnb-flex.min.css +1 -1
  201. package/es/components/flex/style/flex-stack.scss +1 -1
  202. package/es/components/icon/style/dnb-icon.css +2 -2
  203. package/es/components/icon/style/dnb-icon.min.css +1 -1
  204. package/es/components/icon/style/dnb-icon.scss +1 -1
  205. package/es/components/input/Input.js +1 -1
  206. package/es/components/input/Input.js.map +1 -1
  207. package/es/components/table/style/dnb-table.css +6 -0
  208. package/es/components/table/style/dnb-table.min.css +1 -1
  209. package/es/components/table/style/table-th.scss +9 -25
  210. package/es/components/table/style/themes/dnb-table-theme-sbanken.css +1 -1
  211. package/es/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  212. package/es/components/table/style/themes/dnb-table-theme-sbanken.scss +2 -1
  213. package/es/components/table/style/themes/dnb-table-theme-ui.css +1 -1
  214. package/es/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  215. package/es/components/table/style/themes/dnb-table-theme-ui.scss +2 -2
  216. package/es/components/textarea/Textarea.d.ts +9 -0
  217. package/es/components/textarea/Textarea.js +21 -5
  218. package/es/components/textarea/Textarea.js.map +1 -1
  219. package/es/components/textarea/TextareaDocs.js +10 -0
  220. package/es/components/textarea/TextareaDocs.js.map +1 -1
  221. package/es/components/textarea/style/dnb-textarea.css +69 -26
  222. package/es/components/textarea/style/dnb-textarea.min.css +1 -1
  223. package/es/components/textarea/style/dnb-textarea.scss +83 -31
  224. package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +15 -21
  225. package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -1
  226. package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +17 -28
  227. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.css +12 -23
  228. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  229. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.scss +11 -27
  230. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +1 -2
  231. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
  232. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -2
  233. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +3 -3
  234. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  235. package/es/extensions/forms/Field/String/String.d.ts +6 -6
  236. package/es/extensions/forms/Field/String/String.js +13 -11
  237. package/es/extensions/forms/Field/String/String.js.map +1 -1
  238. package/es/extensions/forms/Form/Appearance/Appearance.js +3 -0
  239. package/es/extensions/forms/Form/Appearance/Appearance.js.map +1 -1
  240. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +2 -2
  241. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  242. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +2 -1
  243. package/es/extensions/forms/StepsLayout/Step/Step.js +2 -3
  244. package/es/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
  245. package/es/extensions/forms/StepsLayout/StepsContext.d.ts +6 -4
  246. package/es/extensions/forms/StepsLayout/StepsContext.js +6 -1
  247. package/es/extensions/forms/StepsLayout/StepsContext.js.map +1 -1
  248. package/es/extensions/forms/StepsLayout/StepsLayout.d.ts +4 -2
  249. package/es/extensions/forms/StepsLayout/StepsLayout.js +79 -49
  250. package/es/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  251. package/es/extensions/forms/StepsLayout/useStep.d.ts +3 -0
  252. package/es/extensions/forms/StepsLayout/useStep.js +12 -0
  253. package/es/extensions/forms/StepsLayout/useStep.js.map +1 -0
  254. package/es/extensions/forms/style/dnb-forms.css +2 -2
  255. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  256. package/es/extensions/forms/types.d.ts +2 -2
  257. package/es/extensions/forms/types.js.map +1 -1
  258. package/es/extensions/forms/utils/ajv.js +6 -2
  259. package/es/extensions/forms/utils/ajv.js.map +1 -1
  260. package/es/shared/Eufemia.d.ts +1 -1
  261. package/es/shared/Eufemia.js +2 -2
  262. package/es/shared/Eufemia.js.map +1 -1
  263. package/es/style/core/scopes.scss +1 -1
  264. package/es/style/dnb-ui-basis.css +1 -1
  265. package/es/style/dnb-ui-basis.min.css +1 -1
  266. package/es/style/dnb-ui-body.css +1 -1
  267. package/es/style/dnb-ui-body.min.css +1 -1
  268. package/es/style/dnb-ui-components.css +153 -36
  269. package/es/style/dnb-ui-components.min.css +3 -3
  270. package/es/style/dnb-ui-core.css +1 -1
  271. package/es/style/dnb-ui-core.min.css +1 -1
  272. package/es/style/dnb-ui-extensions.css +2 -2
  273. package/es/style/dnb-ui-extensions.min.css +1 -1
  274. package/es/style/dnb-ui-forms.css +2 -2
  275. package/es/style/dnb-ui-forms.min.css +1 -1
  276. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +170 -79
  277. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  278. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +2 -2
  279. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  280. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +2 -2
  281. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  282. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +191 -106
  283. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +5 -5
  284. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +2 -2
  285. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  286. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +2 -2
  287. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  288. package/es/style/themes/theme-ui/ui-theme-components.css +170 -77
  289. package/es/style/themes/theme-ui/ui-theme-components.min.css +6 -6
  290. package/es/style/themes/theme-ui/ui-theme-extensions.css +2 -2
  291. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  292. package/es/style/themes/theme-ui/ui-theme-forms.css +2 -2
  293. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  294. package/es/style/themes/theme-ui/ui-theme-tags.css +37 -9
  295. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  296. package/esm/dnb-ui-basis.min.mjs +1 -1
  297. package/esm/dnb-ui-components.min.mjs +1 -1
  298. package/esm/dnb-ui-elements.min.mjs +1 -1
  299. package/esm/dnb-ui-extensions.min.mjs +2 -2
  300. package/esm/dnb-ui-lib.min.mjs +1 -1
  301. package/extensions/forms/DataContext/Provider/ProviderDocs.js +3 -3
  302. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  303. package/extensions/forms/Field/String/String.d.ts +6 -6
  304. package/extensions/forms/Field/String/String.js +13 -11
  305. package/extensions/forms/Field/String/String.js.map +1 -1
  306. package/extensions/forms/Form/Appearance/Appearance.js +3 -0
  307. package/extensions/forms/Form/Appearance/Appearance.js.map +1 -1
  308. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +2 -2
  309. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  310. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +2 -1
  311. package/extensions/forms/StepsLayout/Step/Step.js +2 -3
  312. package/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
  313. package/extensions/forms/StepsLayout/StepsContext.d.ts +6 -4
  314. package/extensions/forms/StepsLayout/StepsContext.js +6 -1
  315. package/extensions/forms/StepsLayout/StepsContext.js.map +1 -1
  316. package/extensions/forms/StepsLayout/StepsLayout.d.ts +4 -2
  317. package/extensions/forms/StepsLayout/StepsLayout.js +82 -51
  318. package/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  319. package/extensions/forms/StepsLayout/useStep.d.ts +3 -0
  320. package/extensions/forms/StepsLayout/useStep.js +13 -0
  321. package/extensions/forms/StepsLayout/useStep.js.map +1 -0
  322. package/extensions/forms/style/dnb-forms.css +2 -2
  323. package/extensions/forms/style/dnb-forms.min.css +1 -1
  324. package/extensions/forms/types.d.ts +2 -2
  325. package/extensions/forms/types.js.map +1 -1
  326. package/extensions/forms/utils/ajv.js +6 -2
  327. package/extensions/forms/utils/ajv.js.map +1 -1
  328. package/package.json +1 -1
  329. package/shared/Eufemia.d.ts +1 -1
  330. package/shared/Eufemia.js +2 -2
  331. package/shared/Eufemia.js.map +1 -1
  332. package/style/core/scopes.scss +1 -1
  333. package/style/dnb-ui-basis.css +1 -1
  334. package/style/dnb-ui-basis.min.css +1 -1
  335. package/style/dnb-ui-body.css +1 -1
  336. package/style/dnb-ui-body.min.css +1 -1
  337. package/style/dnb-ui-components.css +153 -36
  338. package/style/dnb-ui-components.min.css +3 -3
  339. package/style/dnb-ui-core.css +1 -1
  340. package/style/dnb-ui-core.min.css +1 -1
  341. package/style/dnb-ui-extensions.css +2 -2
  342. package/style/dnb-ui-extensions.min.css +1 -1
  343. package/style/dnb-ui-forms.css +2 -2
  344. package/style/dnb-ui-forms.min.css +1 -1
  345. package/style/themes/theme-eiendom/eiendom-theme-components.css +170 -79
  346. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  347. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +2 -2
  348. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  349. package/style/themes/theme-eiendom/eiendom-theme-forms.css +2 -2
  350. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  351. package/style/themes/theme-sbanken/sbanken-theme-components.css +191 -106
  352. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +5 -5
  353. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +2 -2
  354. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  355. package/style/themes/theme-sbanken/sbanken-theme-forms.css +2 -2
  356. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  357. package/style/themes/theme-ui/ui-theme-components.css +170 -77
  358. package/style/themes/theme-ui/ui-theme-components.min.css +6 -6
  359. package/style/themes/theme-ui/ui-theme-extensions.css +2 -2
  360. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  361. package/style/themes/theme-ui/ui-theme-forms.css +2 -2
  362. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  363. package/style/themes/theme-ui/ui-theme-tags.css +37 -9
  364. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  365. package/umd/dnb-ui-basis.min.js +1 -1
  366. package/umd/dnb-ui-components.min.js +1 -1
  367. package/umd/dnb-ui-elements.min.js +1 -1
  368. package/umd/dnb-ui-extensions.min.js +3 -3
  369. package/umd/dnb-ui-lib.min.js +1 -1
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ "use client";
3
+
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useStep = useStep;
8
+ var _react = require("react");
9
+ var _StepsContext = _interopRequireDefault(require("./StepsContext"));
10
+ var _useSharedState = require("../../../shared/helpers/useSharedState");
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ function useStep() {
13
+ let id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
14
+ const sharedDataRef = (0, _react.useRef)(null);
15
+ sharedDataRef.current = (0, _useSharedState.useSharedState)(id ? id + '-steps' : undefined);
16
+ const context = (0, _react.useContext)(_StepsContext.default);
17
+ return sharedDataRef.current.data || context;
18
+ }
19
+ //# sourceMappingURL=useStep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStep.js","names":["_react","require","_StepsContext","_interopRequireDefault","_useSharedState","obj","__esModule","default","useStep","id","arguments","length","undefined","sharedDataRef","useRef","current","useSharedState","context","useContext","StepsContext","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,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,eAAA,GAAAH,OAAA;AAAuE,SAAAE,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEhE,SAASG,OAAOA,CAAA,EAAwB;EAAA,IAAvBC,EAAc,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EAC3C,MAAMG,aAAa,GACjB,IAAAC,aAAM,EAAuD,IAAI,CAAC;EACpED,aAAa,CAACE,OAAO,GAAG,IAAAC,8BAAc,EACpCP,EAAE,GAAGA,EAAE,GAAG,QAAQ,GAAGG,SACvB,CAAC;EAED,MAAMK,OAAO,GAAG,IAAAC,iBAAU,EAACC,qBAAY,CAAC;EACxC,OAAON,aAAa,CAACE,OAAO,CAACK,IAAI,IAAIH,OAAO;AAC9C"}
@@ -402,8 +402,8 @@ fieldset.dnb-forms-field-block:not([class*=space__left]) {
402
402
  .dnb-forms-button-row {
403
403
  display: flex;
404
404
  flex-flow: row;
405
- -moz-column-gap: var(--spacing-small);
406
- column-gap: var(--spacing-small);
405
+ flex-wrap: wrap;
406
+ gap: var(--spacing-small);
407
407
  }
408
408
  .dnb-card + .dnb-forms-button-row:not([class*=space__top]) {
409
409
  margin-top: var(--spacing-small);
@@ -1 +1 @@
1
- .dnb-forms-field-array-selection--layout-vertical .dnb-forms-field-array-selection__options{display:flex;flex-flow:column;row-gap:var(--spacing-x-small)}.dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-array-selection__options{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row wrap;row-gap:var(--spacing-x-small)}@media screen and (min-width:40em){.dnb-forms-field-array-selection .dnb-forms-field-block--layout-horizontal .dnb-form-label{line-height:2.5rem;margin-bottom:0}}.dnb-forms-field-expiry .dnb-multi-input-mask{width:var(--forms-field-width--small)}.dnb-forms-field-expiry .dnb-multi-input-mask .dnb-input__shell{justify-content:center}.dnb-forms-field-number{--number-control-button-border-color:#000;--number-control-button-border-color--hover:#a9a9a9;--number-control-button-border-color--focus:#a9a9a9;--number-control-button-border-width--focus:0.125rem;--number-control-button-background-color--hover:grey;--number-control-button-color--hover:#000;--number-control-button-background-color--active:#000;--number-control-button-color--active:#d3d3d3;--number-control-button--error:red;--number-control-button--error-contrast:#fff;--number-control-button-width--small:2rem;--number-control-button-width--medium:2.5rem;--number-control-button-width--large:3rem;--forms-field-block--number-control-buttons-width--small:calc(var(--number-control-button-width--small)*2);--forms-field-block--number-control-buttons-width--medium:calc(var(--number-control-button-width--medium)*2);--forms-field-block--number-control-buttons-width--large:calc(var(--number-control-button-width--large)*2)}.dnb-forms-field-number__contents{display:flex}.dnb-forms-field-number__contents--has-controls{--border-color:var(--number-control-button-border-color);--border-width:0.0625rem;border-color:transparent;border-radius:.25rem;box-shadow:0 0 0 var(--border-width) var(--border-color)}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls:hover:not([disabled]){--border-color:var(--number-control-button-border-color);--border-width:0.125rem;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}html[data-whatinput=keyboard] .dnb-forms-field-number__contents--has-controls:focus-within{--border-color:var(--number-control-button-border-color--focus);--border-width:var(--number-control-button-border-width--focus);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-forms-field-number__contents--has-controls .dnb-input__input{align-items:center}.dnb-forms-field-number__contents--has-controls .dnb-input__shell{border-radius:0;box-shadow:none}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-input__shell:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-input__shell:hover:not([disabled]){box-shadow:none}.dnb-forms-field-number__contents--has-controls .dnb-input:not([data-input-state=disabled]):not(:active)[data-input-state=focus] .dnb-input__shell{box-shadow:none;outline:initial}html[data-whatinput=""] .dnb-forms-field-number__contents--has-controls .dnb-input:not([data-input-state=disabled]):not(:active)[data-input-state=focus] .dnb-input__shell{box-shadow:none}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-after:hover[disabled],html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-before:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-after:hover:not([disabled]),html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-before:hover:not([disabled]){background-color:var(--number-control-button-background-color--hover);color:var(--number-control-button-color--hover)}.dnb-forms-field-number__contents--has-controls .dnb-button--control-after:active[disabled],.dnb-forms-field-number__contents--has-controls .dnb-button--control-before:active[disabled],html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-after:active[disabled],html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-before:active[disabled]{cursor:not-allowed}.dnb-forms-field-number__contents--has-controls .dnb-button--control-after:active:not([disabled]),.dnb-forms-field-number__contents--has-controls .dnb-button--control-before:active:not([disabled]),html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-after:active:not([disabled]),html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-before:active:not([disabled]){background-color:var(--number-control-button-background-color--active);color:var(--number-control-button-color--active)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error{--border-color:var(--number-control-button--error);--border-width:0.125rem;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error:hover:not([disabled]){--border-color:var(--number-control-button--error);--border-width:0.125rem;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-input__status--error:not([data-input-state=disabled]):not(:hover):not(:active) .dnb-input__shell{box-shadow:none}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after,.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before{color:var(--number-control-button--error)}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after:hover[disabled],html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after:hover:not([disabled]),html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before:hover:not([disabled]){background-color:var(--number-control-button--error-contrast);color:var(--number-control-button--error)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after:active[disabled],.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before:active[disabled],html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after:active[disabled],html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before:active[disabled]{cursor:not-allowed}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after:active:not([disabled]),.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before:active:not([disabled]),html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after:active:not([disabled]),html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before:active:not([disabled]){background-color:var(--number-control-button--error);color:var(--number-control-button--error-contrast)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after[disabled],.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before[disabled]{color:var(--number-control-button--error-contrast)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled{--border-color:var(--color-black-55);--border-width:0.0625rem;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled:hover:not([disabled]){--border-color:var(--color-black-55);--border-width:0.0625rem;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled .dnb-input[data-input-state=disabled] .dnb-input__shell{box-shadow:none}.dnb-input[data-input-state=disabled] .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled{--border-color:var(--color-black-55);--border-width:0.0625rem;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled .dnb-button--control-after[disabled],.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled .dnb-button--control-before[disabled]{background-color:var(--color-black-3);color:var(--color-black-20)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-small{width:calc(var(--forms-field-width--small) + var(--forms-field-block--number-control-buttons-width--small))}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-small .dnb-button--control-after,.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-small .dnb-button--control-before{width:var(--number-control-button-width--small)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-medium{width:calc(var(--forms-field-width--medium) + var(--forms-field-block--number-control-buttons-width--medium))}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-medium .dnb-button--control-after,.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-medium .dnb-button--control-before{width:var(--number-control-button-width--medium)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-large{width:calc(var(--forms-field-width--large) + var(--forms-field-block--number-control-buttons-width--large))}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-large .dnb-button--control-after,.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-large .dnb-button--control-before{width:var(--number-control-button-width--large)}.dnb-forms-field-password .dnb-input__status--error .dnb-input__submit-button__button{color:var(--color-fire-red)}.dnb-forms-field-password .dnb-input__status--error .dnb-input__submit-button__button:hover{color:var(--color-white)}.dnb-forms-field-phone-number__country-code,.dnb-forms-field-phone-number__country-code .dnb-autocomplete__shell{width:calc(var(--forms-field-width--medium) - 2rem)}.dnb-forms-field-phone-number__number{flex:1}.dnb-forms-field-phone-number .dnb-form-label{max-width:14ch}.dnb-forms-field-postal-code-and-city__postal-code{flex:0 5rem}.dnb-forms-field-postal-code-and-city__city{flex:1}.dnb-forms-field-selection__variant--dropdown .dnb-forms-field-block--layout-horizontal .dnb-form-label{align-self:center}.dnb-forms-field-selection__options-layout--horizontal .dnb-forms-field-block--layout-horizontal .dnb-form-label,.dnb-forms-field-selection__variant--dropdown .dnb-forms-field-block--layout-horizontal .dnb-form-label{margin-bottom:0}.dnb-forms-field-selection__variant--button .dnb-forms-field-block--layout-horizontal .dnb-form-label{line-height:2.5rem}:root{--forms-field-width--small:5rem;--forms-field-width--medium:11rem;--forms-field-width--large:21rem}@media screen and (max-width:15em){.dnb-forms-field-number .dnb-input__shell,.dnb-forms-field-string .dnb-input__shell{width:90%}}fieldset.dnb-forms-field-block{border:none;padding:0}fieldset.dnb-forms-field-block:not([class*=space__top]){margin-top:0}fieldset.dnb-forms-field-block:not([class*=space__right]){margin-right:0}fieldset.dnb-forms-field-block:not([class*=space__bottom]){margin-bottom:0}fieldset.dnb-forms-field-block:not([class*=space__left]){margin-left:0}.dnb-forms-field-block{width:100%}.dnb-forms-field-block__grid{display:grid}@media screen and (max-width:40em){.dnb-forms-field-block--layout-vertical .dnb-forms-field-block__grid{flex-wrap:wrap}.dnb-forms-field-block--layout-vertical .dnb-forms-field-block__grid>.dnb-form-label{margin-bottom:.5rem;margin-top:.5rem}}.dnb-forms-field-block--layout-vertical{grid-template-areas:"label" "contents" "status";grid-template-columns:auto}.dnb-forms-field-block--layout-horizontal{grid-template-areas:"label contents" "status status";grid-template-columns:fit-content(100%) auto}.dnb-forms-field-block--width-stretch{flex-grow:1}@media screen and (min-width:25em){.dnb-forms-field-block--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block--width-large{width:var(--forms-field-width--large)}}.dnb-forms-field-block__label{align-items:center;display:flex;flex-flow:row;grid-area:label;justify-content:space-between}.dnb-forms-field-block__label-description{margin-left:.3em}.dnb-forms-field-block__status{grid-area:status}.dnb-forms-field-block__status .dnb-form-status__shell{margin-top:.5rem}@media screen and (max-width:15em){.dnb-forms-field-block__status{width:90%}}.dnb-forms-field-block__contents{grid-area:contents;width:100%}.dnb-forms-field-block__contents--width-stretch{width:100%}@media screen and (min-width:25em){.dnb-forms-field-block__contents--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block__contents--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block__contents--width-large{width:var(--forms-field-width--large)}}.dnb-forms-field-block__contents__composition--vertical{display:flex;flex-flow:column;row-gap:var(--spacing-small)}.dnb-forms-field-block__contents__composition--horizontal{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row}@media screen and (min-width:25em){.dnb-forms-field-block__contents__composition--horizontal{align-items:flex-end}}@media screen and (max-width:25em){.dnb-forms-field-block__contents__composition--horizontal{flex-flow:column;row-gap:var(--spacing-x-small)}}.dnb-forms-button-row{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row}.dnb-card+.dnb-forms-button-row:not([class*=space__top]){margin-top:var(--spacing-small)}.dnb-card+.dnb-forms-button-row:not([class*=space__top]) .dnb-button[class*=space__top]{margin-top:0}@media screen and (min-width:40em){.dnb-card+.dnb-forms-button-row:not([class*=space__left]){margin-left:var(--spacing-medium)}}.dnb-spacing .dnb-form-main-heading.dnb-h--large:not([class*=space__]){margin:0}@media screen and (min-width:40em){.dnb-form-main-heading:has(+.dnb-flex-stack>.dnb-card,+.dnb-card):not([class*=space__left]){margin-left:var(--spacing-medium)}}.dnb-form-main-heading:has(+.dnb-flex-stack>.dnb-card,+.dnb-card):not([class*=space__bottom]){margin-bottom:var(--spacing-small)}.dnb-spacing .dnb-form-sub-heading.dnb-h--medium:not([class*=space__]){margin:0}.dnb-form-sub-heading:has(+.dnb-flex-stack>.dnb-card,+.dnb-card):not([class*=space__bottom]){margin-bottom:var(--spacing-small)}.dnb-form-submit-indicator{--padding-left:0.5em;display:inline}.dnb-form-submit-indicator__content{font-size:0;line-height:1em;transition:font-size .8s var(--easing-default);will-change:font-size}.dnb-form-submit-indicator__content b{animation-delay:.2s;animation-duration:1.3s;animation-iteration-count:infinite;animation-name:submit-indicator-dot;color:var(--dots-color,currentColor);opacity:.2;padding-left:.125em}.dnb-form-submit-indicator__content b:first-of-type{animation-delay:50ms;padding-left:var(--padding-left)}.dnb-form-submit-indicator__content b:nth-of-type(2){animation-delay:.2s}.dnb-form-submit-indicator__content b:nth-of-type(3){animation-delay:.4s}html[data-visual-test] .dnb-form-submit-indicator__content b{animation:none}.dnb-form-submit-indicator--state-pending .dnb-form-submit-indicator__content{font-size:1em;font-weight:var(--font-weight-bold)}.dnb-form-submit-indicator--state-success .dnb-form-submit-indicator__content{font-size:1em}.dnb-form-submit-indicator--state-success .dnb-form-submit-indicator__content .dnb-icon{color:var(--color-success-green);padding-left:var(--padding-left)}.dnb-form-submit-indicator--state-success .dnb-form-submit-indicator__content .dnb-icon--default{font-size:1em}.dnb-form-submit-indicator--state-success .dnb-form-submit-indicator__content__label{font-size:var(--font-size-small);padding-left:calc(var(--padding-left)*2)}.dnb-form-submit-indicator--inline-wrap .dnb-form-submit-indicator__content{--padding-left:0.25em;display:flex}@keyframes submit-indicator-dot{0%{opacity:.2}15%{opacity:1}50%{opacity:1}60%{opacity:.3}to{opacity:.2}}@keyframes submit-indicator-success{0%{font-size:1em;opacity:.2}20%{font-size:1em;opacity:1}80%{opacity:1}85%{font-size:1em;opacity:.3}90%{opacity:0}to{font-size:0;opacity:0}}.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}.dnb-forms-value-block{display:block;font-size:var(--font-size-basis)}.dnb-forms-value-block--inline{display:inline-block;font-size:inherit;margin-left:var(--spacing-xx-small);margin-right:var(--spacing-xx-small)}.dnb-forms-value-block__label{font-weight:var(--font-weight-medium)}.dnb-forms-value-block__placeholder{color:rgba(0,0,0,.5)}.dnb-forms-test-element{border:1px dashed grey;border-radius:.5rem;color:#909090;padding:.5rem 1rem}
1
+ .dnb-forms-field-array-selection--layout-vertical .dnb-forms-field-array-selection__options{display:flex;flex-flow:column;row-gap:var(--spacing-x-small)}.dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-array-selection__options{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row wrap;row-gap:var(--spacing-x-small)}@media screen and (min-width:40em){.dnb-forms-field-array-selection .dnb-forms-field-block--layout-horizontal .dnb-form-label{line-height:2.5rem;margin-bottom:0}}.dnb-forms-field-expiry .dnb-multi-input-mask{width:var(--forms-field-width--small)}.dnb-forms-field-expiry .dnb-multi-input-mask .dnb-input__shell{justify-content:center}.dnb-forms-field-number{--number-control-button-border-color:#000;--number-control-button-border-color--hover:#a9a9a9;--number-control-button-border-color--focus:#a9a9a9;--number-control-button-border-width--focus:0.125rem;--number-control-button-background-color--hover:grey;--number-control-button-color--hover:#000;--number-control-button-background-color--active:#000;--number-control-button-color--active:#d3d3d3;--number-control-button--error:red;--number-control-button--error-contrast:#fff;--number-control-button-width--small:2rem;--number-control-button-width--medium:2.5rem;--number-control-button-width--large:3rem;--forms-field-block--number-control-buttons-width--small:calc(var(--number-control-button-width--small)*2);--forms-field-block--number-control-buttons-width--medium:calc(var(--number-control-button-width--medium)*2);--forms-field-block--number-control-buttons-width--large:calc(var(--number-control-button-width--large)*2)}.dnb-forms-field-number__contents{display:flex}.dnb-forms-field-number__contents--has-controls{--border-color:var(--number-control-button-border-color);--border-width:0.0625rem;border-color:transparent;border-radius:.25rem;box-shadow:0 0 0 var(--border-width) var(--border-color)}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls:hover:not([disabled]){--border-color:var(--number-control-button-border-color);--border-width:0.125rem;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}html[data-whatinput=keyboard] .dnb-forms-field-number__contents--has-controls:focus-within{--border-color:var(--number-control-button-border-color--focus);--border-width:var(--number-control-button-border-width--focus);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-forms-field-number__contents--has-controls .dnb-input__input{align-items:center}.dnb-forms-field-number__contents--has-controls .dnb-input__shell{border-radius:0;box-shadow:none}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-input__shell:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-input__shell:hover:not([disabled]){box-shadow:none}.dnb-forms-field-number__contents--has-controls .dnb-input:not([data-input-state=disabled]):not(:active)[data-input-state=focus] .dnb-input__shell{box-shadow:none;outline:initial}html[data-whatinput=""] .dnb-forms-field-number__contents--has-controls .dnb-input:not([data-input-state=disabled]):not(:active)[data-input-state=focus] .dnb-input__shell{box-shadow:none}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-after:hover[disabled],html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-before:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-after:hover:not([disabled]),html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-before:hover:not([disabled]){background-color:var(--number-control-button-background-color--hover);color:var(--number-control-button-color--hover)}.dnb-forms-field-number__contents--has-controls .dnb-button--control-after:active[disabled],.dnb-forms-field-number__contents--has-controls .dnb-button--control-before:active[disabled],html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-after:active[disabled],html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-before:active[disabled]{cursor:not-allowed}.dnb-forms-field-number__contents--has-controls .dnb-button--control-after:active:not([disabled]),.dnb-forms-field-number__contents--has-controls .dnb-button--control-before:active:not([disabled]),html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-after:active:not([disabled]),html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-before:active:not([disabled]){background-color:var(--number-control-button-background-color--active);color:var(--number-control-button-color--active)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error{--border-color:var(--number-control-button--error);--border-width:0.125rem;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error:hover:not([disabled]){--border-color:var(--number-control-button--error);--border-width:0.125rem;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-input__status--error:not([data-input-state=disabled]):not(:hover):not(:active) .dnb-input__shell{box-shadow:none}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after,.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before{color:var(--number-control-button--error)}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after:hover[disabled],html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after:hover:not([disabled]),html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before:hover:not([disabled]){background-color:var(--number-control-button--error-contrast);color:var(--number-control-button--error)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after:active[disabled],.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before:active[disabled],html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after:active[disabled],html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before:active[disabled]{cursor:not-allowed}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after:active:not([disabled]),.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before:active:not([disabled]),html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after:active:not([disabled]),html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before:active:not([disabled]){background-color:var(--number-control-button--error);color:var(--number-control-button--error-contrast)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after[disabled],.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before[disabled]{color:var(--number-control-button--error-contrast)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled{--border-color:var(--color-black-55);--border-width:0.0625rem;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled:hover:not([disabled]){--border-color:var(--color-black-55);--border-width:0.0625rem;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled .dnb-input[data-input-state=disabled] .dnb-input__shell{box-shadow:none}.dnb-input[data-input-state=disabled] .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled{--border-color:var(--color-black-55);--border-width:0.0625rem;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled .dnb-button--control-after[disabled],.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled .dnb-button--control-before[disabled]{background-color:var(--color-black-3);color:var(--color-black-20)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-small{width:calc(var(--forms-field-width--small) + var(--forms-field-block--number-control-buttons-width--small))}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-small .dnb-button--control-after,.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-small .dnb-button--control-before{width:var(--number-control-button-width--small)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-medium{width:calc(var(--forms-field-width--medium) + var(--forms-field-block--number-control-buttons-width--medium))}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-medium .dnb-button--control-after,.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-medium .dnb-button--control-before{width:var(--number-control-button-width--medium)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-large{width:calc(var(--forms-field-width--large) + var(--forms-field-block--number-control-buttons-width--large))}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-large .dnb-button--control-after,.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-large .dnb-button--control-before{width:var(--number-control-button-width--large)}.dnb-forms-field-password .dnb-input__status--error .dnb-input__submit-button__button{color:var(--color-fire-red)}.dnb-forms-field-password .dnb-input__status--error .dnb-input__submit-button__button:hover{color:var(--color-white)}.dnb-forms-field-phone-number__country-code,.dnb-forms-field-phone-number__country-code .dnb-autocomplete__shell{width:calc(var(--forms-field-width--medium) - 2rem)}.dnb-forms-field-phone-number__number{flex:1}.dnb-forms-field-phone-number .dnb-form-label{max-width:14ch}.dnb-forms-field-postal-code-and-city__postal-code{flex:0 5rem}.dnb-forms-field-postal-code-and-city__city{flex:1}.dnb-forms-field-selection__variant--dropdown .dnb-forms-field-block--layout-horizontal .dnb-form-label{align-self:center}.dnb-forms-field-selection__options-layout--horizontal .dnb-forms-field-block--layout-horizontal .dnb-form-label,.dnb-forms-field-selection__variant--dropdown .dnb-forms-field-block--layout-horizontal .dnb-form-label{margin-bottom:0}.dnb-forms-field-selection__variant--button .dnb-forms-field-block--layout-horizontal .dnb-form-label{line-height:2.5rem}:root{--forms-field-width--small:5rem;--forms-field-width--medium:11rem;--forms-field-width--large:21rem}@media screen and (max-width:15em){.dnb-forms-field-number .dnb-input__shell,.dnb-forms-field-string .dnb-input__shell{width:90%}}fieldset.dnb-forms-field-block{border:none;padding:0}fieldset.dnb-forms-field-block:not([class*=space__top]){margin-top:0}fieldset.dnb-forms-field-block:not([class*=space__right]){margin-right:0}fieldset.dnb-forms-field-block:not([class*=space__bottom]){margin-bottom:0}fieldset.dnb-forms-field-block:not([class*=space__left]){margin-left:0}.dnb-forms-field-block{width:100%}.dnb-forms-field-block__grid{display:grid}@media screen and (max-width:40em){.dnb-forms-field-block--layout-vertical .dnb-forms-field-block__grid{flex-wrap:wrap}.dnb-forms-field-block--layout-vertical .dnb-forms-field-block__grid>.dnb-form-label{margin-bottom:.5rem;margin-top:.5rem}}.dnb-forms-field-block--layout-vertical{grid-template-areas:"label" "contents" "status";grid-template-columns:auto}.dnb-forms-field-block--layout-horizontal{grid-template-areas:"label contents" "status status";grid-template-columns:fit-content(100%) auto}.dnb-forms-field-block--width-stretch{flex-grow:1}@media screen and (min-width:25em){.dnb-forms-field-block--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block--width-large{width:var(--forms-field-width--large)}}.dnb-forms-field-block__label{align-items:center;display:flex;flex-flow:row;grid-area:label;justify-content:space-between}.dnb-forms-field-block__label-description{margin-left:.3em}.dnb-forms-field-block__status{grid-area:status}.dnb-forms-field-block__status .dnb-form-status__shell{margin-top:.5rem}@media screen and (max-width:15em){.dnb-forms-field-block__status{width:90%}}.dnb-forms-field-block__contents{grid-area:contents;width:100%}.dnb-forms-field-block__contents--width-stretch{width:100%}@media screen and (min-width:25em){.dnb-forms-field-block__contents--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block__contents--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block__contents--width-large{width:var(--forms-field-width--large)}}.dnb-forms-field-block__contents__composition--vertical{display:flex;flex-flow:column;row-gap:var(--spacing-small)}.dnb-forms-field-block__contents__composition--horizontal{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row}@media screen and (min-width:25em){.dnb-forms-field-block__contents__composition--horizontal{align-items:flex-end}}@media screen and (max-width:25em){.dnb-forms-field-block__contents__composition--horizontal{flex-flow:column;row-gap:var(--spacing-x-small)}}.dnb-forms-button-row{display:flex;flex-flow:row;flex-wrap:wrap;gap:var(--spacing-small)}.dnb-card+.dnb-forms-button-row:not([class*=space__top]){margin-top:var(--spacing-small)}.dnb-card+.dnb-forms-button-row:not([class*=space__top]) .dnb-button[class*=space__top]{margin-top:0}@media screen and (min-width:40em){.dnb-card+.dnb-forms-button-row:not([class*=space__left]){margin-left:var(--spacing-medium)}}.dnb-spacing .dnb-form-main-heading.dnb-h--large:not([class*=space__]){margin:0}@media screen and (min-width:40em){.dnb-form-main-heading:has(+.dnb-flex-stack>.dnb-card,+.dnb-card):not([class*=space__left]){margin-left:var(--spacing-medium)}}.dnb-form-main-heading:has(+.dnb-flex-stack>.dnb-card,+.dnb-card):not([class*=space__bottom]){margin-bottom:var(--spacing-small)}.dnb-spacing .dnb-form-sub-heading.dnb-h--medium:not([class*=space__]){margin:0}.dnb-form-sub-heading:has(+.dnb-flex-stack>.dnb-card,+.dnb-card):not([class*=space__bottom]){margin-bottom:var(--spacing-small)}.dnb-form-submit-indicator{--padding-left:0.5em;display:inline}.dnb-form-submit-indicator__content{font-size:0;line-height:1em;transition:font-size .8s var(--easing-default);will-change:font-size}.dnb-form-submit-indicator__content b{animation-delay:.2s;animation-duration:1.3s;animation-iteration-count:infinite;animation-name:submit-indicator-dot;color:var(--dots-color,currentColor);opacity:.2;padding-left:.125em}.dnb-form-submit-indicator__content b:first-of-type{animation-delay:50ms;padding-left:var(--padding-left)}.dnb-form-submit-indicator__content b:nth-of-type(2){animation-delay:.2s}.dnb-form-submit-indicator__content b:nth-of-type(3){animation-delay:.4s}html[data-visual-test] .dnb-form-submit-indicator__content b{animation:none}.dnb-form-submit-indicator--state-pending .dnb-form-submit-indicator__content{font-size:1em;font-weight:var(--font-weight-bold)}.dnb-form-submit-indicator--state-success .dnb-form-submit-indicator__content{font-size:1em}.dnb-form-submit-indicator--state-success .dnb-form-submit-indicator__content .dnb-icon{color:var(--color-success-green);padding-left:var(--padding-left)}.dnb-form-submit-indicator--state-success .dnb-form-submit-indicator__content .dnb-icon--default{font-size:1em}.dnb-form-submit-indicator--state-success .dnb-form-submit-indicator__content__label{font-size:var(--font-size-small);padding-left:calc(var(--padding-left)*2)}.dnb-form-submit-indicator--inline-wrap .dnb-form-submit-indicator__content{--padding-left:0.25em;display:flex}@keyframes submit-indicator-dot{0%{opacity:.2}15%{opacity:1}50%{opacity:1}60%{opacity:.3}to{opacity:.2}}@keyframes submit-indicator-success{0%{font-size:1em;opacity:.2}20%{font-size:1em;opacity:1}80%{opacity:1}85%{font-size:1em;opacity:.3}90%{opacity:0}to{font-size:0;opacity:0}}.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}.dnb-forms-value-block{display:block;font-size:var(--font-size-basis)}.dnb-forms-value-block--inline{display:inline-block;font-size:inherit;margin-left:var(--spacing-xx-small);margin-right:var(--spacing-xx-small)}.dnb-forms-value-block__label{font-weight:var(--font-weight-medium)}.dnb-forms-value-block__placeholder{color:rgba(0,0,0,.5)}.dnb-forms-test-element{border:1px dashed grey;border-radius:.5rem;color:#909090;padding:.5rem 1rem}
@@ -1,11 +1,11 @@
1
1
  import type { SpacingProps } from '../../components/space/types';
2
- import type { JSONSchema7 } from 'json-schema';
2
+ import type { JSONSchema4, JSONSchema6, JSONSchema7 } from 'json-schema';
3
3
  import type { JSONSchemaType } from 'ajv/dist/2020';
4
4
  import { JsonObject } from 'json-pointer';
5
5
  import { AriaAttributes } from 'react';
6
6
  export type * from 'json-schema';
7
7
  export type JSONSchema = JSONSchema7;
8
- export type AllJSONSchemaVersions = JSONSchema7 | JSONSchemaType<unknown>;
8
+ export type AllJSONSchemaVersions = JSONSchema4 | JSONSchema6 | JSONSchema7 | JSONSchemaType<unknown>;
9
9
  export { JSONSchemaType };
10
10
  type ValidationRule = 'type' | 'pattern' | 'required' | string;
11
11
  type MessageValues = Record<string, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["FormError","Error","constructor","message","options","_defineProperty","key","exports","dataValueReadProps","pickDataValueReadProps","props","Object","fromEntries","entries","filter","_ref","includes","omitDataValueReadProps","_ref2","dataValueWriteProps","pickDataValueWriteProps","_ref3","omitDataValueWriteProps","_ref4","pickDataValueReadWriteProps","_ref5","omitDataValueReadWriteProps","_ref6"],"sources":["../../../../src/extensions/forms/types.ts"],"sourcesContent":["import type { SpacingProps } from '../../components/space/types'\nimport type { JSONSchema7 } from 'json-schema'\nimport type { JSONSchemaType } from 'ajv/dist/2020'\nimport { JsonObject } from 'json-pointer'\nimport { AriaAttributes } from 'react'\n\nexport type * from 'json-schema'\nexport type JSONSchema = JSONSchema7\nexport type AllJSONSchemaVersions = JSONSchema7 | JSONSchemaType<unknown>\nexport { JSONSchemaType }\n\ntype ValidationRule = 'type' | 'pattern' | 'required' | string\ntype MessageValues = Record<string, string>\n\ninterface IFormErrorOptions {\n validationRule?: ValidationRule\n messageValues?: MessageValues\n}\n\n/**\n * Standard error object for Eufemia Forms, extending the built-in error with additional information for data handling\n */\nexport class FormError extends Error {\n /**\n * What validation rule did the error occur based on? (i.e: minLength, required or maximum)\n */\n validationRule?: ValidationRule\n\n /**\n * Replacement values relevant for this error.\n * @example { minLength: 3 } to be able to replace values in a message like \"Minimum {minLength} characters\"\n */\n messageValues?: MessageValues\n\n constructor(message: string, options?: IFormErrorOptions) {\n super(message)\n\n if (options) {\n for (const key in options) {\n this[key] = options[key]\n }\n }\n }\n}\n\n/**\n * Accept any key, so custom message keys can be used\n */\nexport type CustomErrorMessages = Record<string, string>\n\n/**\n * Accept any key, so custom message keys can be used\n * including the path to the field the message is for\n */\nexport type CustomErrorMessagesWithPaths =\n | CustomErrorMessages\n | {\n // eslint-disable-next-line no-unused-vars\n [K in `/${string}`]?: CustomErrorMessages\n }\n\nexport interface DefaultErrorMessages {\n required?: string\n pattern?: string\n}\n\nexport interface DataValueReadProps<Value = unknown> {\n /** JSON Pointer for where the data for this field is located in the source dataset */\n path?: string\n /** JSON Pointer for where the data for this field is located in the source iterate loop element */\n itemPath?: string\n value?: Value\n}\n\nconst dataValueReadProps = ['path', 'itemPath', 'value']\n\nexport function pickDataValueReadProps<Props extends DataValueReadProps>(\n props: Props\n): DataValueReadProps {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(([key]) =>\n dataValueReadProps.includes(key)\n )\n )\n}\n\nexport function omitDataValueReadProps<Props extends DataValueReadProps>(\n props: Props\n): Omit<DataValueReadProps, keyof DataValueReadProps> {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) => !dataValueReadProps.includes(key)\n )\n )\n}\n\nexport interface DataValueWriteProps<\n Value = unknown,\n EmptyValue = undefined | string,\n> {\n emptyValue?: EmptyValue\n onFocus?: (value: Value | EmptyValue) => void\n onBlur?: (value: Value | EmptyValue) => void\n onChange?: OnChangeValue<Value, EmptyValue>\n}\n\nconst dataValueWriteProps = ['emptyValue', 'onFocus', 'onBlur', 'onChange']\n\nexport function pickDataValueWriteProps<Props extends DataValueWriteProps>(\n props: Props\n): DataValueWriteProps {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(([key]) =>\n dataValueWriteProps.includes(key)\n )\n )\n}\n\nexport function omitDataValueWriteProps<Props extends DataValueWriteProps>(\n props: Props\n): Omit<DataValueWriteProps, keyof DataValueWriteProps> {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) => !dataValueWriteProps.includes(key)\n )\n )\n}\n\nexport type DataValueReadWriteProps<\n Value = unknown,\n EmptyValue = undefined | string,\n> = DataValueReadProps<Value> & DataValueWriteProps<Value, EmptyValue>\n\nexport function pickDataValueReadWriteProps<\n Props extends DataValueReadWriteProps,\n>(props: Props): DataValueReadWriteProps {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) =>\n dataValueReadProps.includes(key) ||\n dataValueWriteProps.includes(key)\n )\n )\n}\n\nexport function omitDataValueReadWriteProps<\n Props extends DataValueReadWriteProps,\n>(\n props: Props\n): Omit<DataValueReadWriteProps, keyof DataValueReadWriteProps> {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) =>\n !dataValueReadProps.includes(key) &&\n !dataValueWriteProps.includes(key)\n )\n )\n}\n\nexport type ComponentProps = SpacingProps & {\n className?: string\n}\n\nexport type AdditionalEventArgs = Record<string, unknown>\n\nexport type DataValueReadComponentProps<Value = unknown> = ComponentProps &\n DataValueReadProps<Value>\n\nexport type DataValueReadWriteComponentProps<\n Value = unknown,\n EmptyValue = undefined | string,\n> = ComponentProps &\n DataValueReadProps<Value> &\n DataValueWriteProps<Value, EmptyValue>\n\nexport interface FieldProps<\n Value = unknown,\n EmptyValue = undefined | string,\n ErrorMessages extends DefaultErrorMessages = DefaultErrorMessages,\n> extends DataValueReadWriteComponentProps<Value, EmptyValue>,\n AriaAttributes {\n /** ID added to the actual field component, and linked to the label via for-attribute */\n id?: string\n name?: string\n layout?: 'horizontal' | 'vertical'\n /** Main label text */\n label?: React.ReactNode\n /** A more discreet text displayed beside the label */\n labelDescription?: React.ReactNode\n /** Text showing in place of the value if no value is given */\n placeholder?: string\n autoComplete?:\n | HTMLInputElement['autocomplete']\n | HTMLTextAreaElement['autocomplete']\n info?: React.ReactNode\n warning?: React.ReactNode\n error?: Error | FormError\n hasError?: boolean\n disabled?: boolean\n readOnly?: boolean\n capitalize?: boolean\n trim?: boolean\n // Validation\n required?: boolean\n schema?: AllJSONSchemaVersions\n validator?: (\n value: Value | EmptyValue,\n errorMessages?: ErrorMessages\n ) => Error | undefined | void | Promise<Error | undefined | void>\n onBlurValidator?: (\n value: Value | EmptyValue\n ) => Error | undefined | void | Promise<Error | undefined | void>\n /**\n * Should error messages based on validation be shown initially (from given value-prop or source data)\n * before the user interacts with the field?\n * @default false\n */\n validateInitially?: boolean\n /**\n * Should error messages be shown when touching (like focusing a field and blurring) without having changed\n * the value? So the user did not introduce a new error, but it was invalid based on validation initially.\n */\n validateUnchanged?: boolean\n /** Should validation be done while writing, not just when blurring the field? */\n continuousValidation?: boolean\n errorMessages?: ErrorMessages\n // Derivatives\n toInput?: (external: Value | unknown) => Value | unknown\n fromInput?: (external: Value | unknown) => Value\n toEvent?: (\n internal: Value,\n type: 'onChange' | 'onFocus' | 'onBlur' | 'onBlurValidator'\n ) => Value\n fromExternal?: (external: Value) => Value\n transformValue?: (value: Value, currentValue?: Value) => Value\n validateRequired?: (\n internal: Value,\n {\n emptyValue,\n required,\n isChanged,\n error,\n }: {\n emptyValue: EmptyValue\n required: boolean\n isChanged: boolean\n error: FormError | undefined\n }\n ) => FormError | undefined\n}\n\nexport interface FieldHelpProps {\n help?: {\n title?: string\n content?: string\n }\n}\n\nexport interface ValueProps<Value>\n extends DataValueReadComponentProps<Value> {\n label?: string\n /** Field label to show above the data value. */\n showEmpty?: boolean\n /** Text showing in place of the value if no value is given. */\n placeholder?: string\n /** JSON Pointer for where the data for this field is located in the source iterate loop element */\n itemPath?: string\n /** For showing the value inline (not as a block element) */\n inline?: boolean\n // Derivatives\n /** Prepare value for display (regardless of source like props or data context) */\n prepare?: (external: Value | undefined) => string\n}\n\nexport type Path = string\nexport type Identifier = string\n\nexport type SubmitState =\n | 'pending' // Used for async operations\n | 'complete' // Used to hide the submit indicator\n | 'success' // Used for fields\n | 'error' // Used when error is shown\n | 'abort' // Used to abort the state regardless (step change)\n\n/**\n * Provide a error that shows in the FormStatus of a field.\n */\ntype EventStateObjectError = Error\n/**\n * Provide a warning that shows in the FormStatus of a field.\n */\ntype EventStateObjectWarning = React.ReactNode\n/**\n * Provide an info that shows in the FormStatus of a field.\n */\ntype EventStateObjectInfo = React.ReactNode\n\n/**\n * Provide a status that will enforce the form to stay in pending state\n */\ntype EventStateObjectStatus = 'pending'\n\n/**\n * Provide a success state that will show an indicator on the related field label\n */\ntype EventStateObjectSuccess = 'saved'\n\n/**\n * Provide an error or status messages that shows in the FormStatus of a field\n */\nexport type EventStateObjectOr = {\n error?: EventStateObjectError\n warning?: EventStateObjectWarning\n info?: EventStateObjectInfo\n pending?: EventStateObjectStatus\n}\n\nexport type EventStateObjectEitherOr =\n | { error: EventStateObjectError }\n | { warning: EventStateObjectWarning }\n | { info: EventStateObjectInfo }\n | { status: EventStateObjectStatus }\n\nexport type EventStateObject = EventStateObjectOr &\n EventStateObjectEitherOr\n\n/**\n * Provide 'saved' to indicate the data has been saved successfully. Can not be combined with `error`.\n */\nexport type EventStateObjectWithSuccess = EventStateObjectOr & {\n success?: EventStateObjectSuccess\n} & (EventStateObjectEitherOr | { success: EventStateObjectSuccess })\n\n/**\n * Provide an error or status messages that shows in the FormStatus of a field\n */\nexport type EventReturnWithStateObject = Error | EventStateObject\n\nexport type EventReturnWithStateObjectAndSuccess =\n | Error\n | EventStateObjectWithSuccess\n\nexport type OnSubmitParams = {\n /** Will remove browser-side stored autocomplete data */\n resetForm: () => void\n\n /** Will empty the whole internal data set of the form */\n clearData: () => void\n}\n\nexport type OnSubmit<Data = JsonObject> = (\n data: Partial<Data>,\n { resetForm, clearData }: OnSubmitParams\n) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n\nexport type OnChange<Data = unknown> = (\n data: Data\n) =>\n | EventReturnWithStateObjectAndSuccess\n | void\n | Promise<EventReturnWithStateObjectAndSuccess | void>\n\nexport type OnChangeValue<\n Value = unknown,\n EmptyValue = undefined | string,\n> = (\n value: Value | EmptyValue,\n additionalArgs?: AdditionalEventArgs\n) =>\n | EventReturnWithStateObjectAndSuccess\n | void\n | Promise<EventReturnWithStateObjectAndSuccess | void>\n"],"mappings":"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"}
1
+ {"version":3,"file":"types.js","names":["FormError","Error","constructor","message","options","_defineProperty","key","exports","dataValueReadProps","pickDataValueReadProps","props","Object","fromEntries","entries","filter","_ref","includes","omitDataValueReadProps","_ref2","dataValueWriteProps","pickDataValueWriteProps","_ref3","omitDataValueWriteProps","_ref4","pickDataValueReadWriteProps","_ref5","omitDataValueReadWriteProps","_ref6"],"sources":["../../../../src/extensions/forms/types.ts"],"sourcesContent":["import type { SpacingProps } from '../../components/space/types'\nimport type { JSONSchema4, JSONSchema6, JSONSchema7 } from 'json-schema'\nimport type { JSONSchemaType } from 'ajv/dist/2020'\nimport { JsonObject } from 'json-pointer'\nimport { AriaAttributes } from 'react'\n\nexport type * from 'json-schema'\nexport type JSONSchema = JSONSchema7\nexport type AllJSONSchemaVersions =\n | JSONSchema4\n | JSONSchema6\n | JSONSchema7\n | JSONSchemaType<unknown>\nexport { JSONSchemaType }\n\ntype ValidationRule = 'type' | 'pattern' | 'required' | string\ntype MessageValues = Record<string, string>\n\ninterface IFormErrorOptions {\n validationRule?: ValidationRule\n messageValues?: MessageValues\n}\n\n/**\n * Standard error object for Eufemia Forms, extending the built-in error with additional information for data handling\n */\nexport class FormError extends Error {\n /**\n * What validation rule did the error occur based on? (i.e: minLength, required or maximum)\n */\n validationRule?: ValidationRule\n\n /**\n * Replacement values relevant for this error.\n * @example { minLength: 3 } to be able to replace values in a message like \"Minimum {minLength} characters\"\n */\n messageValues?: MessageValues\n\n constructor(message: string, options?: IFormErrorOptions) {\n super(message)\n\n if (options) {\n for (const key in options) {\n this[key] = options[key]\n }\n }\n }\n}\n\n/**\n * Accept any key, so custom message keys can be used\n */\nexport type CustomErrorMessages = Record<string, string>\n\n/**\n * Accept any key, so custom message keys can be used\n * including the path to the field the message is for\n */\nexport type CustomErrorMessagesWithPaths =\n | CustomErrorMessages\n | {\n // eslint-disable-next-line no-unused-vars\n [K in `/${string}`]?: CustomErrorMessages\n }\n\nexport interface DefaultErrorMessages {\n required?: string\n pattern?: string\n}\n\nexport interface DataValueReadProps<Value = unknown> {\n /** JSON Pointer for where the data for this field is located in the source dataset */\n path?: string\n /** JSON Pointer for where the data for this field is located in the source iterate loop element */\n itemPath?: string\n value?: Value\n}\n\nconst dataValueReadProps = ['path', 'itemPath', 'value']\n\nexport function pickDataValueReadProps<Props extends DataValueReadProps>(\n props: Props\n): DataValueReadProps {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(([key]) =>\n dataValueReadProps.includes(key)\n )\n )\n}\n\nexport function omitDataValueReadProps<Props extends DataValueReadProps>(\n props: Props\n): Omit<DataValueReadProps, keyof DataValueReadProps> {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) => !dataValueReadProps.includes(key)\n )\n )\n}\n\nexport interface DataValueWriteProps<\n Value = unknown,\n EmptyValue = undefined | string,\n> {\n emptyValue?: EmptyValue\n onFocus?: (value: Value | EmptyValue) => void\n onBlur?: (value: Value | EmptyValue) => void\n onChange?: OnChangeValue<Value, EmptyValue>\n}\n\nconst dataValueWriteProps = ['emptyValue', 'onFocus', 'onBlur', 'onChange']\n\nexport function pickDataValueWriteProps<Props extends DataValueWriteProps>(\n props: Props\n): DataValueWriteProps {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(([key]) =>\n dataValueWriteProps.includes(key)\n )\n )\n}\n\nexport function omitDataValueWriteProps<Props extends DataValueWriteProps>(\n props: Props\n): Omit<DataValueWriteProps, keyof DataValueWriteProps> {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) => !dataValueWriteProps.includes(key)\n )\n )\n}\n\nexport type DataValueReadWriteProps<\n Value = unknown,\n EmptyValue = undefined | string,\n> = DataValueReadProps<Value> & DataValueWriteProps<Value, EmptyValue>\n\nexport function pickDataValueReadWriteProps<\n Props extends DataValueReadWriteProps,\n>(props: Props): DataValueReadWriteProps {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) =>\n dataValueReadProps.includes(key) ||\n dataValueWriteProps.includes(key)\n )\n )\n}\n\nexport function omitDataValueReadWriteProps<\n Props extends DataValueReadWriteProps,\n>(\n props: Props\n): Omit<DataValueReadWriteProps, keyof DataValueReadWriteProps> {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) =>\n !dataValueReadProps.includes(key) &&\n !dataValueWriteProps.includes(key)\n )\n )\n}\n\nexport type ComponentProps = SpacingProps & {\n className?: string\n}\n\nexport type AdditionalEventArgs = Record<string, unknown>\n\nexport type DataValueReadComponentProps<Value = unknown> = ComponentProps &\n DataValueReadProps<Value>\n\nexport type DataValueReadWriteComponentProps<\n Value = unknown,\n EmptyValue = undefined | string,\n> = ComponentProps &\n DataValueReadProps<Value> &\n DataValueWriteProps<Value, EmptyValue>\n\nexport interface FieldProps<\n Value = unknown,\n EmptyValue = undefined | string,\n ErrorMessages extends DefaultErrorMessages = DefaultErrorMessages,\n> extends DataValueReadWriteComponentProps<Value, EmptyValue>,\n AriaAttributes {\n /** ID added to the actual field component, and linked to the label via for-attribute */\n id?: string\n name?: string\n layout?: 'horizontal' | 'vertical'\n /** Main label text */\n label?: React.ReactNode\n /** A more discreet text displayed beside the label */\n labelDescription?: React.ReactNode\n /** Text showing in place of the value if no value is given */\n placeholder?: string\n autoComplete?:\n | HTMLInputElement['autocomplete']\n | HTMLTextAreaElement['autocomplete']\n info?: React.ReactNode\n warning?: React.ReactNode\n error?: Error | FormError\n hasError?: boolean\n disabled?: boolean\n readOnly?: boolean\n capitalize?: boolean\n trim?: boolean\n // Validation\n required?: boolean\n schema?: AllJSONSchemaVersions\n validator?: (\n value: Value | EmptyValue,\n errorMessages?: ErrorMessages\n ) => Error | undefined | void | Promise<Error | undefined | void>\n onBlurValidator?: (\n value: Value | EmptyValue\n ) => Error | undefined | void | Promise<Error | undefined | void>\n /**\n * Should error messages based on validation be shown initially (from given value-prop or source data)\n * before the user interacts with the field?\n * @default false\n */\n validateInitially?: boolean\n /**\n * Should error messages be shown when touching (like focusing a field and blurring) without having changed\n * the value? So the user did not introduce a new error, but it was invalid based on validation initially.\n */\n validateUnchanged?: boolean\n /** Should validation be done while writing, not just when blurring the field? */\n continuousValidation?: boolean\n errorMessages?: ErrorMessages\n // Derivatives\n toInput?: (external: Value | unknown) => Value | unknown\n fromInput?: (external: Value | unknown) => Value\n toEvent?: (\n internal: Value,\n type: 'onChange' | 'onFocus' | 'onBlur' | 'onBlurValidator'\n ) => Value\n fromExternal?: (external: Value) => Value\n transformValue?: (value: Value, currentValue?: Value) => Value\n validateRequired?: (\n internal: Value,\n {\n emptyValue,\n required,\n isChanged,\n error,\n }: {\n emptyValue: EmptyValue\n required: boolean\n isChanged: boolean\n error: FormError | undefined\n }\n ) => FormError | undefined\n}\n\nexport interface FieldHelpProps {\n help?: {\n title?: string\n content?: string\n }\n}\n\nexport interface ValueProps<Value>\n extends DataValueReadComponentProps<Value> {\n label?: string\n /** Field label to show above the data value. */\n showEmpty?: boolean\n /** Text showing in place of the value if no value is given. */\n placeholder?: string\n /** JSON Pointer for where the data for this field is located in the source iterate loop element */\n itemPath?: string\n /** For showing the value inline (not as a block element) */\n inline?: boolean\n // Derivatives\n /** Prepare value for display (regardless of source like props or data context) */\n prepare?: (external: Value | undefined) => string\n}\n\nexport type Path = string\nexport type Identifier = string\n\nexport type SubmitState =\n | 'pending' // Used for async operations\n | 'complete' // Used to hide the submit indicator\n | 'success' // Used for fields\n | 'error' // Used when error is shown\n | 'abort' // Used to abort the state regardless (step change)\n\n/**\n * Provide a error that shows in the FormStatus of a field.\n */\ntype EventStateObjectError = Error\n/**\n * Provide a warning that shows in the FormStatus of a field.\n */\ntype EventStateObjectWarning = React.ReactNode\n/**\n * Provide an info that shows in the FormStatus of a field.\n */\ntype EventStateObjectInfo = React.ReactNode\n\n/**\n * Provide a status that will enforce the form to stay in pending state\n */\ntype EventStateObjectStatus = 'pending'\n\n/**\n * Provide a success state that will show an indicator on the related field label\n */\ntype EventStateObjectSuccess = 'saved'\n\n/**\n * Provide an error or status messages that shows in the FormStatus of a field\n */\nexport type EventStateObjectOr = {\n error?: EventStateObjectError\n warning?: EventStateObjectWarning\n info?: EventStateObjectInfo\n pending?: EventStateObjectStatus\n}\n\nexport type EventStateObjectEitherOr =\n | { error: EventStateObjectError }\n | { warning: EventStateObjectWarning }\n | { info: EventStateObjectInfo }\n | { status: EventStateObjectStatus }\n\nexport type EventStateObject = EventStateObjectOr &\n EventStateObjectEitherOr\n\n/**\n * Provide 'saved' to indicate the data has been saved successfully. Can not be combined with `error`.\n */\nexport type EventStateObjectWithSuccess = EventStateObjectOr & {\n success?: EventStateObjectSuccess\n} & (EventStateObjectEitherOr | { success: EventStateObjectSuccess })\n\n/**\n * Provide an error or status messages that shows in the FormStatus of a field\n */\nexport type EventReturnWithStateObject = Error | EventStateObject\n\nexport type EventReturnWithStateObjectAndSuccess =\n | Error\n | EventStateObjectWithSuccess\n\nexport type OnSubmitParams = {\n /** Will remove browser-side stored autocomplete data */\n resetForm: () => void\n\n /** Will empty the whole internal data set of the form */\n clearData: () => void\n}\n\nexport type OnSubmit<Data = JsonObject> = (\n data: Partial<Data>,\n { resetForm, clearData }: OnSubmitParams\n) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n\nexport type OnChange<Data = unknown> = (\n data: Data\n) =>\n | EventReturnWithStateObjectAndSuccess\n | void\n | Promise<EventReturnWithStateObjectAndSuccess | void>\n\nexport type OnChangeValue<\n Value = unknown,\n EmptyValue = undefined | string,\n> = (\n value: Value | EmptyValue,\n additionalArgs?: AdditionalEventArgs\n) =>\n | EventReturnWithStateObjectAndSuccess\n | void\n | Promise<EventReturnWithStateObjectAndSuccess | void>\n"],"mappings":";;;;;;;;;;;;;;;AA0BO,MAAMA,SAAS,SAASC,KAAK,CAAC;EAYnCC,WAAWA,CAACC,OAAe,EAAEC,OAA2B,EAAE;IACxD,KAAK,CAACD,OAAO,CAAC;IAAAE,eAAA;IAAAA,eAAA;IAEd,IAAID,OAAO,EAAE;MACX,KAAK,MAAME,GAAG,IAAIF,OAAO,EAAE;QACzB,IAAI,CAACE,GAAG,CAAC,GAAGF,OAAO,CAACE,GAAG,CAAC;MAC1B;IACF;EACF;AACF;AAACC,OAAA,CAAAP,SAAA,GAAAA,SAAA;AA+BD,MAAMQ,kBAAkB,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC;AAEjD,SAASC,sBAAsBA,CACpCC,KAAY,EACQ;EACpB,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAACC,IAAA;IAAA,IAAC,CAACT,GAAG,CAAC,GAAAS,IAAA;IAAA,OACvCP,kBAAkB,CAACQ,QAAQ,CAACV,GAAG,CAAC;EAAA,CAClC,CACF,CAAC;AACH;AAEO,SAASW,sBAAsBA,CACpCP,KAAY,EACwC;EACpD,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAChCI,KAAA;IAAA,IAAC,CAACZ,GAAG,CAAC,GAAAY,KAAA;IAAA,OAAK,CAACV,kBAAkB,CAACQ,QAAQ,CAACV,GAAG,CAAC;EAAA,CAC9C,CACF,CAAC;AACH;AAYA,MAAMa,mBAAmB,GAAG,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC;AAEpE,SAASC,uBAAuBA,CACrCV,KAAY,EACS;EACrB,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAACO,KAAA;IAAA,IAAC,CAACf,GAAG,CAAC,GAAAe,KAAA;IAAA,OACvCF,mBAAmB,CAACH,QAAQ,CAACV,GAAG,CAAC;EAAA,CACnC,CACF,CAAC;AACH;AAEO,SAASgB,uBAAuBA,CACrCZ,KAAY,EAC0C;EACtD,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAChCS,KAAA;IAAA,IAAC,CAACjB,GAAG,CAAC,GAAAiB,KAAA;IAAA,OAAK,CAACJ,mBAAmB,CAACH,QAAQ,CAACV,GAAG,CAAC;EAAA,CAC/C,CACF,CAAC;AACH;AAOO,SAASkB,2BAA2BA,CAEzCd,KAAY,EAA2B;EACvC,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAChCW,KAAA;IAAA,IAAC,CAACnB,GAAG,CAAC,GAAAmB,KAAA;IAAA,OACJjB,kBAAkB,CAACQ,QAAQ,CAACV,GAAG,CAAC,IAChCa,mBAAmB,CAACH,QAAQ,CAACV,GAAG,CAAC;EAAA,CACrC,CACF,CAAC;AACH;AAEO,SAASoB,2BAA2BA,CAGzChB,KAAY,EACkD;EAC9D,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAChCa,KAAA;IAAA,IAAC,CAACrB,GAAG,CAAC,GAAAqB,KAAA;IAAA,OACJ,CAACnB,kBAAkB,CAACQ,QAAQ,CAACV,GAAG,CAAC,IACjC,CAACa,mBAAmB,CAACH,QAAQ,CAACV,GAAG,CAAC;EAAA,CACtC,CACF,CAAC;AACH"}
@@ -76,8 +76,12 @@ function getMessageValues(ajvError) {
76
76
  }
77
77
  }
78
78
  function ajvErrorToFormError(ajvError) {
79
- var _ajvError$message;
80
- return new _types.FormError((_ajvError$message = ajvError.message) !== null && _ajvError$message !== void 0 ? _ajvError$message : 'Unknown error', {
79
+ var _ajvError$message2;
80
+ if (ajvError.keyword === 'errorMessage') {
81
+ var _ajvError$message;
82
+ return new Error((_ajvError$message = ajvError.message) !== null && _ajvError$message !== void 0 ? _ajvError$message : 'Unknown error');
83
+ }
84
+ return new _types.FormError((_ajvError$message2 = ajvError.message) !== null && _ajvError$message2 !== void 0 ? _ajvError$message2 : 'Unknown error', {
81
85
  validationRule: getValidationRule(ajvError),
82
86
  messageValues: getMessageValues(ajvError)
83
87
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ajv.js","names":["_","_interopRequireDefault","require","_ajvErrors","_jsonPointer","_types","obj","__esModule","default","makeAjvInstance","instance","ajv","ajvInstance","allErrors","ajvErrors","getInstancePath","ajvError","keyword","instancePath","params","missingProperty","errors","getValidationRule","getMessageValues","_ajvError$params","_ajvError$params2","_ajvError$params3","validationRule","limit","multipleOf","pattern","ajvErrorToFormError","_ajvError$message","FormError","message","messageValues","ajvErrorsToOneFormError","value","length","error","ajvErrorsTransformation","undefined","errorMessages","map","join","ajvErrorsToFormErrors","data","reduce","path","exports","pointer","get","field","console"],"sources":["../../../../../src/extensions/forms/utils/ajv.ts"],"sourcesContent":["import ajvInstance, { ErrorObject } from 'ajv/dist/2020'\nimport ajvErrors from 'ajv-errors'\nimport pointer from 'json-pointer'\nimport { FormError, Path } from '../types'\nimport type Ajv from 'ajv/dist/2020'\n\nexport type AjvInstance = typeof ajvInstance\nexport { ajvInstance, Ajv }\n\n/**\n * Creates an instance of Ajv (Another JSON Schema Validator) with optional custom instance.\n * If no instance is provided, a new instance of Ajv is created with the specified options.\n * The created Ajv instance is enhanced with custom error handling.\n *\n * @param instance - Optional custom instance of Ajv.\n * @returns The created or provided instance of Ajv.\n */\nexport function makeAjvInstance(instance?: Ajv) {\n const ajv =\n instance ||\n new ajvInstance({\n // If allErrors is off, Ajv only give you the first error it finds\n allErrors: true,\n })\n\n if (!ajv['__ajvErrors__']) {\n ajvErrors(ajv)\n ajv['__ajvErrors__'] = true\n }\n\n return ajv\n}\n\n/**\n * Returns the instance path of the given Ajv error.\n * If the error is of type 'required', it is considered an object error and the missing property is shown under the relevant field.\n * If the error is of type 'errorMessage', it is a wrapped error and the instance path is found from the original error to avoid issues like required-errors pointing at the parent object.\n * @param ajvError - The Ajv error object.\n * @returns The instance path of the error.\n */\nexport function getInstancePath(ajvError: ErrorObject): Path {\n switch (ajvError.keyword) {\n case 'required': {\n // Required-errors are considered object errors by ajv, so they don't have instancePaths. We want to\n // show them under the relevant field\n return `${ajvError.instancePath}/${ajvError.params.missingProperty}`\n }\n case 'errorMessage': {\n // errorMessage structures (from ajv-errors) wrap the original error. Find instance path from original\n // to avoid issues like required-errors pointing at parent object.\n if (ajvError.params.errors[0]) {\n return getInstancePath(ajvError.params.errors[0])\n }\n }\n }\n return ajvError.instancePath\n}\n\n/**\n * Retrieves the validation rule from an AJV error object.\n * If the error object has an 'errorMessage' keyword, it unwraps the original error\n * to avoid issues like required-errors pointing at the parent object.\n * @param ajvError - The AJV error object.\n * @returns The validation rule.\n */\nexport function getValidationRule(ajvError: ErrorObject): string {\n if (ajvError.keyword === 'errorMessage' && ajvError.params.errors[0]) {\n // errorMessage structures (from ajv-errors) wrap the original error. Find keyword from original\n // to avoid issues like required-errors pointing at parent object.\n return getValidationRule(ajvError.params.errors[0])\n }\n return ajvError.keyword\n}\n\n/**\n * Retrieves the message values from an AJV error object.\n * @param ajvError The AJV error object.\n * @returns The message values extracted from the error object.\n */\nexport function getMessageValues(\n ajvError: ErrorObject\n): FormError['messageValues'] {\n const validationRule = getValidationRule(ajvError)\n\n switch (validationRule) {\n case 'minLength':\n case 'maxLength':\n case 'minimum':\n case 'maximum':\n case 'exclusiveMinimum':\n case 'exclusiveMaximum':\n return {\n [validationRule]: ajvError.params?.limit,\n }\n case 'multipleOf':\n return {\n [validationRule]: ajvError.params?.multipleOf,\n }\n case 'pattern':\n return {\n [validationRule]: ajvError.params?.pattern,\n }\n }\n}\n\n/**\n * Converts an AJV error object to a FormError object.\n *\n * @param ajvError - The AJV error object to convert.\n * @returns The converted FormError object.\n */\nexport function ajvErrorToFormError(ajvError: ErrorObject): FormError {\n return new FormError(ajvError.message ?? 'Unknown error', {\n validationRule: getValidationRule(ajvError),\n // Keep the message values in the error object instead of injecting them into the message\n // at once, since an error might be validated one place, and then get a new message before it is displayed.\n messageValues: getMessageValues(ajvError),\n })\n}\n\n/**\n * Converts an array of Ajv errors to a single FormError.\n * @param errors - An array of Ajv errors.\n * @returns A single FormError or undefined if there are no errors.\n */\nexport function ajvErrorsToOneFormError(\n errors?: ErrorObject[] | null,\n value?: unknown\n): FormError | undefined {\n if (!errors || errors.length === 0) {\n return\n }\n if (errors.length === 1) {\n const error = ajvErrorsTransformation(errors[0], value)\n if (!error) {\n return undefined\n }\n\n return ajvErrorToFormError(error)\n }\n\n const errorMessages = errors?.map((error) => error.message)\n return new FormError(errorMessages.join(' and '))\n}\n\n/**\n * Converts AJV validation errors to form errors.\n *\n * @param errors - The array of AJV validation errors.\n * @param data - The data object being validated.\n * @returns The converted form errors as a record of path and form error pairs.\n */\nexport const ajvErrorsToFormErrors = (\n errors?: ErrorObject[] | null,\n data?: Record<Path, unknown>\n): Record<string, FormError> => {\n return (errors ?? []).reduce((errors, ajvError) => {\n const path = getInstancePath(ajvError)\n const error = ajvErrorsTransformation(ajvError, data, path)\n\n if (error) {\n errors[path] = ajvErrorToFormError(error)\n }\n\n return errors\n }, {})\n}\n\n/**\n * Transforms AJV errors based on specific conditions.\n *\n * @param ajvError - The AJV error object.\n * @param data - The data object or value being validated.\n * @param path - The path to the data object property being validated.\n * @returns The transformed AJV error object or undefined if the error should be removed.\n */\nfunction ajvErrorsTransformation(\n ajvError: ErrorObject,\n data?: Record<Path, unknown> | unknown,\n path?: Path\n) {\n if (ajvError.keyword === 'type') {\n const value =\n data && typeof data === 'object' ? pointer.get(data, path) : data\n\n // Remove the error if the value is empty\n if (value === '' || value === null) {\n return undefined\n } else {\n // This extend the very limited error message with the value and the path\n const field = path ? `field at path=\"${path}\"` : 'field'\n ajvError.message = `The ${field} value (${value}) type ${ajvError.message}`\n\n // Warn about the issue\n console.error(ajvError.message)\n }\n }\n\n return ajvError\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,CAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,YAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAA0C,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAcnC,SAASG,eAAeA,CAACC,QAAc,EAAE;EAC9C,MAAMC,GAAG,GACPD,QAAQ,IACR,IAAIE,SAAW,CAAC;IAEdC,SAAS,EAAE;EACb,CAAC,CAAC;EAEJ,IAAI,CAACF,GAAG,CAAC,eAAe,CAAC,EAAE;IACzB,IAAAG,kBAAS,EAACH,GAAG,CAAC;IACdA,GAAG,CAAC,eAAe,CAAC,GAAG,IAAI;EAC7B;EAEA,OAAOA,GAAG;AACZ;AASO,SAASI,eAAeA,CAACC,QAAqB,EAAQ;EAC3D,QAAQA,QAAQ,CAACC,OAAO;IACtB,KAAK,UAAU;MAAE;QAGf,OAAQ,GAAED,QAAQ,CAACE,YAAa,IAAGF,QAAQ,CAACG,MAAM,CAACC,eAAgB,EAAC;MACtE;IACA,KAAK,cAAc;MAAE;QAGnB,IAAIJ,QAAQ,CAACG,MAAM,CAACE,MAAM,CAAC,CAAC,CAAC,EAAE;UAC7B,OAAON,eAAe,CAACC,QAAQ,CAACG,MAAM,CAACE,MAAM,CAAC,CAAC,CAAC,CAAC;QACnD;MACF;EACF;EACA,OAAOL,QAAQ,CAACE,YAAY;AAC9B;AASO,SAASI,iBAAiBA,CAACN,QAAqB,EAAU;EAC/D,IAAIA,QAAQ,CAACC,OAAO,KAAK,cAAc,IAAID,QAAQ,CAACG,MAAM,CAACE,MAAM,CAAC,CAAC,CAAC,EAAE;IAGpE,OAAOC,iBAAiB,CAACN,QAAQ,CAACG,MAAM,CAACE,MAAM,CAAC,CAAC,CAAC,CAAC;EACrD;EACA,OAAOL,QAAQ,CAACC,OAAO;AACzB;AAOO,SAASM,gBAAgBA,CAC9BP,QAAqB,EACO;EAAA,IAAAQ,gBAAA,EAAAC,iBAAA,EAAAC,iBAAA;EAC5B,MAAMC,cAAc,GAAGL,iBAAiB,CAACN,QAAQ,CAAC;EAElD,QAAQW,cAAc;IACpB,KAAK,WAAW;IAChB,KAAK,WAAW;IAChB,KAAK,SAAS;IACd,KAAK,SAAS;IACd,KAAK,kBAAkB;IACvB,KAAK,kBAAkB;MACrB,OAAO;QACL,CAACA,cAAc,IAAAH,gBAAA,GAAGR,QAAQ,CAACG,MAAM,cAAAK,gBAAA,uBAAfA,gBAAA,CAAiBI;MACrC,CAAC;IACH,KAAK,YAAY;MACf,OAAO;QACL,CAACD,cAAc,IAAAF,iBAAA,GAAGT,QAAQ,CAACG,MAAM,cAAAM,iBAAA,uBAAfA,iBAAA,CAAiBI;MACrC,CAAC;IACH,KAAK,SAAS;MACZ,OAAO;QACL,CAACF,cAAc,IAAAD,iBAAA,GAAGV,QAAQ,CAACG,MAAM,cAAAO,iBAAA,uBAAfA,iBAAA,CAAiBI;MACrC,CAAC;EACL;AACF;AAQO,SAASC,mBAAmBA,CAACf,QAAqB,EAAa;EAAA,IAAAgB,iBAAA;EACpE,OAAO,IAAIC,gBAAS,EAAAD,iBAAA,GAAChB,QAAQ,CAACkB,OAAO,cAAAF,iBAAA,cAAAA,iBAAA,GAAI,eAAe,EAAE;IACxDL,cAAc,EAAEL,iBAAiB,CAACN,QAAQ,CAAC;IAG3CmB,aAAa,EAAEZ,gBAAgB,CAACP,QAAQ;EAC1C,CAAC,CAAC;AACJ;AAOO,SAASoB,uBAAuBA,CACrCf,MAA6B,EAC7BgB,KAAe,EACQ;EACvB,IAAI,CAAChB,MAAM,IAAIA,MAAM,CAACiB,MAAM,KAAK,CAAC,EAAE;IAClC;EACF;EACA,IAAIjB,MAAM,CAACiB,MAAM,KAAK,CAAC,EAAE;IACvB,MAAMC,KAAK,GAAGC,uBAAuB,CAACnB,MAAM,CAAC,CAAC,CAAC,EAAEgB,KAAK,CAAC;IACvD,IAAI,CAACE,KAAK,EAAE;MACV,OAAOE,SAAS;IAClB;IAEA,OAAOV,mBAAmB,CAACQ,KAAK,CAAC;EACnC;EAEA,MAAMG,aAAa,GAAGrB,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEsB,GAAG,CAAEJ,KAAK,IAAKA,KAAK,CAACL,OAAO,CAAC;EAC3D,OAAO,IAAID,gBAAS,CAACS,aAAa,CAACE,IAAI,CAAC,OAAO,CAAC,CAAC;AACnD;AASO,MAAMC,qBAAqB,GAAGA,CACnCxB,MAA6B,EAC7ByB,IAA4B,KACE;EAC9B,OAAO,CAACzB,MAAM,aAANA,MAAM,cAANA,MAAM,GAAI,EAAE,EAAE0B,MAAM,CAAC,CAAC1B,MAAM,EAAEL,QAAQ,KAAK;IACjD,MAAMgC,IAAI,GAAGjC,eAAe,CAACC,QAAQ,CAAC;IACtC,MAAMuB,KAAK,GAAGC,uBAAuB,CAACxB,QAAQ,EAAE8B,IAAI,EAAEE,IAAI,CAAC;IAE3D,IAAIT,KAAK,EAAE;MACTlB,MAAM,CAAC2B,IAAI,CAAC,GAAGjB,mBAAmB,CAACQ,KAAK,CAAC;IAC3C;IAEA,OAAOlB,MAAM;EACf,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,CAAC;AAAA4B,OAAA,CAAAJ,qBAAA,GAAAA,qBAAA;AAUD,SAASL,uBAAuBA,CAC9BxB,QAAqB,EACrB8B,IAAsC,EACtCE,IAAW,EACX;EACA,IAAIhC,QAAQ,CAACC,OAAO,KAAK,MAAM,EAAE;IAC/B,MAAMoB,KAAK,GACTS,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,GAAGI,oBAAO,CAACC,GAAG,CAACL,IAAI,EAAEE,IAAI,CAAC,GAAGF,IAAI;IAGnE,IAAIT,KAAK,KAAK,EAAE,IAAIA,KAAK,KAAK,IAAI,EAAE;MAClC,OAAOI,SAAS;IAClB,CAAC,MAAM;MAEL,MAAMW,KAAK,GAAGJ,IAAI,GAAI,kBAAiBA,IAAK,GAAE,GAAG,OAAO;MACxDhC,QAAQ,CAACkB,OAAO,GAAI,OAAMkB,KAAM,WAAUf,KAAM,UAASrB,QAAQ,CAACkB,OAAQ,EAAC;MAG3EmB,OAAO,CAACd,KAAK,CAACvB,QAAQ,CAACkB,OAAO,CAAC;IACjC;EACF;EAEA,OAAOlB,QAAQ;AACjB"}
1
+ {"version":3,"file":"ajv.js","names":["_","_interopRequireDefault","require","_ajvErrors","_jsonPointer","_types","obj","__esModule","default","makeAjvInstance","instance","ajv","ajvInstance","allErrors","ajvErrors","getInstancePath","ajvError","keyword","instancePath","params","missingProperty","errors","getValidationRule","getMessageValues","_ajvError$params","_ajvError$params2","_ajvError$params3","validationRule","limit","multipleOf","pattern","ajvErrorToFormError","_ajvError$message2","_ajvError$message","Error","message","FormError","messageValues","ajvErrorsToOneFormError","value","length","error","ajvErrorsTransformation","undefined","errorMessages","map","join","ajvErrorsToFormErrors","data","reduce","path","exports","pointer","get","field","console"],"sources":["../../../../../src/extensions/forms/utils/ajv.ts"],"sourcesContent":["import ajvInstance, { ErrorObject } from 'ajv/dist/2020'\nimport ajvErrors from 'ajv-errors'\nimport pointer from 'json-pointer'\nimport { FormError, Path } from '../types'\nimport type Ajv from 'ajv/dist/2020'\n\nexport type AjvInstance = typeof ajvInstance\nexport { ajvInstance, Ajv }\n\n/**\n * Creates an instance of Ajv (Another JSON Schema Validator) with optional custom instance.\n * If no instance is provided, a new instance of Ajv is created with the specified options.\n * The created Ajv instance is enhanced with custom error handling.\n *\n * @param instance - Optional custom instance of Ajv.\n * @returns The created or provided instance of Ajv.\n */\nexport function makeAjvInstance(instance?: Ajv) {\n const ajv =\n instance ||\n new ajvInstance({\n // If allErrors is off, Ajv only give you the first error it finds\n allErrors: true,\n })\n\n if (!ajv['__ajvErrors__']) {\n ajvErrors(ajv)\n ajv['__ajvErrors__'] = true\n }\n\n return ajv\n}\n\n/**\n * Returns the instance path of the given Ajv error.\n * If the error is of type 'required', it is considered an object error and the missing property is shown under the relevant field.\n * If the error is of type 'errorMessage', it is a wrapped error and the instance path is found from the original error to avoid issues like required-errors pointing at the parent object.\n * @param ajvError - The Ajv error object.\n * @returns The instance path of the error.\n */\nexport function getInstancePath(ajvError: ErrorObject): Path {\n switch (ajvError.keyword) {\n case 'required': {\n // Required-errors are considered object errors by ajv, so they don't have instancePaths. We want to\n // show them under the relevant field\n return `${ajvError.instancePath}/${ajvError.params.missingProperty}`\n }\n case 'errorMessage': {\n // errorMessage structures (from ajv-errors) wrap the original error. Find instance path from original\n // to avoid issues like required-errors pointing at parent object.\n if (ajvError.params.errors[0]) {\n return getInstancePath(ajvError.params.errors[0])\n }\n }\n }\n return ajvError.instancePath\n}\n\n/**\n * Retrieves the validation rule from an AJV error object.\n * If the error object has an 'errorMessage' keyword, it unwraps the original error\n * to avoid issues like required-errors pointing at the parent object.\n * @param ajvError - The AJV error object.\n * @returns The validation rule.\n */\nexport function getValidationRule(ajvError: ErrorObject): string {\n if (ajvError.keyword === 'errorMessage' && ajvError.params.errors[0]) {\n // errorMessage structures (from ajv-errors) wrap the original error. Find keyword from original\n // to avoid issues like required-errors pointing at parent object.\n return getValidationRule(ajvError.params.errors[0])\n }\n return ajvError.keyword\n}\n\n/**\n * Retrieves the message values from an AJV error object.\n * @param ajvError The AJV error object.\n * @returns The message values extracted from the error object.\n */\nexport function getMessageValues(\n ajvError: ErrorObject\n): FormError['messageValues'] {\n const validationRule = getValidationRule(ajvError)\n\n switch (validationRule) {\n case 'minLength':\n case 'maxLength':\n case 'minimum':\n case 'maximum':\n case 'exclusiveMinimum':\n case 'exclusiveMaximum':\n return {\n [validationRule]: ajvError.params?.limit,\n }\n case 'multipleOf':\n return {\n [validationRule]: ajvError.params?.multipleOf,\n }\n case 'pattern':\n return {\n [validationRule]: ajvError.params?.pattern,\n }\n }\n}\n\n/**\n * Converts an AJV error object to a FormError object.\n *\n * @param ajvError - The AJV error object to convert.\n * @returns The converted FormError object.\n */\nexport function ajvErrorToFormError(ajvError: ErrorObject): FormError {\n if (ajvError.keyword === 'errorMessage') {\n return new Error(ajvError.message ?? 'Unknown error')\n }\n\n return new FormError(ajvError.message ?? 'Unknown error', {\n validationRule: getValidationRule(ajvError),\n // Keep the message values in the error object instead of injecting them into the message\n // at once, since an error might be validated one place, and then get a new message before it is displayed.\n messageValues: getMessageValues(ajvError),\n })\n}\n\n/**\n * Converts an array of Ajv errors to a single FormError.\n * @param errors - An array of Ajv errors.\n * @returns A single FormError or undefined if there are no errors.\n */\nexport function ajvErrorsToOneFormError(\n errors?: ErrorObject[] | null,\n value?: unknown\n): FormError | undefined {\n if (!errors || errors.length === 0) {\n return\n }\n if (errors.length === 1) {\n const error = ajvErrorsTransformation(errors[0], value)\n if (!error) {\n return undefined\n }\n\n return ajvErrorToFormError(error)\n }\n\n const errorMessages = errors?.map((error) => error.message)\n return new FormError(errorMessages.join(' and '))\n}\n\n/**\n * Converts AJV validation errors to form errors.\n *\n * @param errors - The array of AJV validation errors.\n * @param data - The data object being validated.\n * @returns The converted form errors as a record of path and form error pairs.\n */\nexport const ajvErrorsToFormErrors = (\n errors?: ErrorObject[] | null,\n data?: Record<Path, unknown>\n): Record<string, FormError> => {\n return (errors ?? []).reduce((errors, ajvError) => {\n const path = getInstancePath(ajvError)\n const error = ajvErrorsTransformation(ajvError, data, path)\n\n if (error) {\n errors[path] = ajvErrorToFormError(error)\n }\n\n return errors\n }, {})\n}\n\n/**\n * Transforms AJV errors based on specific conditions.\n *\n * @param ajvError - The AJV error object.\n * @param data - The data object or value being validated.\n * @param path - The path to the data object property being validated.\n * @returns The transformed AJV error object or undefined if the error should be removed.\n */\nfunction ajvErrorsTransformation(\n ajvError: ErrorObject,\n data?: Record<Path, unknown> | unknown,\n path?: Path\n) {\n if (ajvError.keyword === 'type') {\n const value =\n data && typeof data === 'object' ? pointer.get(data, path) : data\n\n // Remove the error if the value is empty\n if (value === '' || value === null) {\n return undefined\n } else {\n // This extend the very limited error message with the value and the path\n const field = path ? `field at path=\"${path}\"` : 'field'\n ajvError.message = `The ${field} value (${value}) type ${ajvError.message}`\n\n // Warn about the issue\n console.error(ajvError.message)\n }\n }\n\n return ajvError\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const version = "10.23.0";
1
+ export declare const version = "10.24.0";
2
2
  export declare function init(): void;
@@ -5,13 +5,13 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.init = init;
7
7
  exports.version = void 0;
8
- const version = '10.23.0';
8
+ const version = '10.24.0';
9
9
  exports.version = version;
10
10
  function init() {
11
11
  if (typeof window !== 'undefined') {
12
12
  class Eufemia {
13
13
  get version() {
14
- return '10.23.0';
14
+ return '10.24.0';
15
15
  }
16
16
  }
17
17
  window.Eufemia = new Eufemia();
@@ -1 +1 @@
1
- {"version":3,"file":"Eufemia.js","names":["version","exports","init","window","Eufemia"],"sources":["../../../src/shared/Eufemia.ts"],"sourcesContent":["export const version = '10.23.0'\n\nexport function init() {\n if (typeof window !== 'undefined') {\n class Eufemia {\n get version() {\n return '10.23.0'\n }\n }\n\n window.Eufemia = new Eufemia()\n }\n}\n"],"mappings":";;;;;;;AAAO,MAAMA,OAAO,GAAG,SAAS;AAAAC,OAAA,CAAAD,OAAA,GAAAA,OAAA;AAEzB,SAASE,IAAIA,CAAA,EAAG;EACrB,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjC,MAAMC,OAAO,CAAC;MACZ,IAAIJ,OAAOA,CAAA,EAAG;QACZ,OAAO,SAAS;MAClB;IACF;IAEAG,MAAM,CAACC,OAAO,GAAG,IAAIA,OAAO,CAAC,CAAC;EAChC;AACF"}
1
+ {"version":3,"file":"Eufemia.js","names":["version","exports","init","window","Eufemia"],"sources":["../../../src/shared/Eufemia.ts"],"sourcesContent":["export const version = '10.24.0'\n\nexport function init() {\n if (typeof window !== 'undefined') {\n class Eufemia {\n get version() {\n return '10.24.0'\n }\n }\n\n window.Eufemia = new Eufemia()\n }\n}\n"],"mappings":";;;;;;;AAAO,MAAMA,OAAO,GAAG,SAAS;AAAAC,OAAA,CAAAD,OAAA,GAAAA,OAAA;AAEzB,SAASE,IAAIA,CAAA,EAAG;EACrB,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjC,MAAMC,OAAO,CAAC;MACZ,IAAIJ,OAAOA,CAAA,EAAG;QACZ,OAAO,SAAS;MAClB;IACF;IAEAG,MAAM,CAACC,OAAO,GAAG,IAAIA,OAAO,CAAC,CAAC;EAChC;AACF"}
@@ -45,7 +45,7 @@
45
45
  word-break: break-word;
46
46
 
47
47
  // Will add this to the body tag – later we can test for a version mismatch
48
- --eufemia-version: '10.23.0';
48
+ --eufemia-version: '10.24.0';
49
49
 
50
50
  @content;
51
51
  }
@@ -252,7 +252,7 @@ body {
252
252
  /* stylelint-disable-next-line */
253
253
  -webkit-text-size-adjust: 100%;
254
254
  word-break: break-word;
255
- --eufemia-version: "10.23.0";
255
+ --eufemia-version: "10.24.0";
256
256
  }
257
257
  .dnb-core-style *,
258
258
  .dnb-core-style ::before,
@@ -1 +1 @@
1
- @charset "UTF-8";html{font-size:100%}html:not([data-visual-test]){scroll-behavior:smooth}@supports (-webkit-touch-callout:none){@supports (font:-apple-system-body){html{font:-apple-system-body}}}html[xmlns="http://www.w3.org/1999/xhtml"] a:hover{-webkit-text-decoration:none;text-decoration:none}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--active{color:var(--color-mint-green)!important}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--contrast:not(:hover){color:var(--color-white)!important}html[xmlns="http://www.w3.org/1999/xhtml"] a.dnb-button--primary{color:var(--color-white)}html[xmlns="http://www.w3.org/1999/xhtml"] ul{list-style:initial}html[xmlns="http://www.w3.org/1999/xhtml"] p{background-color:initial;overflow:initial;text-align:inherit}html[xmlns="http://www.w3.org/1999/xhtml"] i{font-style:italic}html[xmlns="http://www.w3.org/1999/xhtml"] #column_left,html[xmlns="http://www.w3.org/1999/xhtml"] #root{width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefault #wrapper,html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefaultStartPage #wrapper{max-width:60rem;width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] #column_content{box-shadow:none}body{margin:0}.dnb-core-style{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;--eufemia-version:"10.23.0";color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis);tab-size:4;-moz-tab-size:4;word-break:break-word}.dnb-core-style *,.dnb-core-style :after,.dnb-core-style :before{background-repeat:no-repeat;box-sizing:border-box}.dnb-core-style :after,.dnb-core-style :before{text-decoration:inherit;vertical-align:inherit}.dnb-core-style hr{height:0;overflow:visible}.dnb-core-style main{display:block}.dnb-core-style nav ol,.dnb-core-style nav ul{list-style:none}.dnb-core-style abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.dnb-core-style b,.dnb-core-style strong{font-weight:bolder}.dnb-core-style code,.dnb-core-style kbd,.dnb-core-style pre,.dnb-core-style samp{font-family:var(--font-family-monospace);font-size:var(--font-size-basis--em)}.dnb-core-style ::selection{background-color:#b3d4fc;color:#000;text-shadow:none}.dnb-core-style audio,.dnb-core-style canvas,.dnb-core-style iframe,.dnb-core-style img,.dnb-core-style svg,.dnb-core-style video{vertical-align:middle}.dnb-core-style audio,.dnb-core-style video{display:inline-block}.dnb-core-style audio:not([controls]){display:none;height:0}.dnb-core-style img{border-style:none}.dnb-core-style svg:not([fill]){fill:currentcolor}.dnb-core-style svg:not(:root){overflow:hidden}.dnb-core-style table{border-collapse:collapse}.dnb-core-style button,.dnb-core-style input,.dnb-core-style select,.dnb-core-style textarea{font-family:inherit;font-size:inherit;line-height:inherit}.dnb-core-style button,.dnb-core-style figure,.dnb-core-style input,.dnb-core-style select{margin:0}.dnb-core-style button{overflow:visible;text-transform:none}.dnb-core-style fieldset{padding:.35rem .75rem .625rem}.dnb-core-style input{overflow:visible;word-break:normal}.dnb-core-style legend{color:inherit;display:table;max-width:100%;white-space:normal}.dnb-core-style progress{display:inline-block;vertical-align:baseline}.dnb-core-style select{text-transform:none}.dnb-core-style textarea{overflow:auto;resize:vertical}.dnb-core-style [type=checkbox],.dnb-core-style [type=radio]{padding:0}.dnb-core-style input[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}.dnb-core-style ::-webkit-inner-spin-button,.dnb-core-style ::-webkit-outer-spin-button{height:auto}.dnb-core-style ::input-placeholder{color:inherit;opacity:.54}.dnb-core-style ::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.dnb-core-style ::-webkit-file-upload-button{background-color:transparent;border:none;font:inherit}.dnb-core-style ::-moz-focus-inner{border-style:none;padding:0}.dnb-core-style details{display:block}.dnb-core-style summary{display:list-item}.dnb-core-style canvas{display:inline-block}.dnb-core-style template{display:none}.dnb-core-style [tabindex],.dnb-core-style a,.dnb-core-style area,.dnb-core-style button,.dnb-core-style input,.dnb-core-style label,.dnb-core-style select,.dnb-core-style summary,.dnb-core-style textarea{touch-action:manipulation}.dnb-core-style [hidden]{display:none}.dnb-core-style [aria-busy=true]{cursor:progress}.dnb-core-style [aria-controls]:not(input){cursor:pointer}.dnb-core-style [aria-disabled=true],.dnb-core-style [disabled]{cursor:not-allowed}.dnb-core-style [aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);display:inherit;position:absolute}@media print{.dnb-core-style{background-color:#fff;color:#000}}.dnb-core-style .eufemia-theme{color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis)}.dnb-no-focus,.dnb-tab-focus,.dnb-tab-focus:focus{outline:none}html[data-whatinput=keyboard] .dnb-tab-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-mouse-focus,.dnb-mouse-focus:focus{outline:none}html[data-whatinput=mouse] .dnb-mouse-focus:focus{box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-focus-ring,html[data-whatinput=mouse] .dnb-mouse-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent}.dnb-focus-ring{box-shadow:0 0 0 var(--border-width) var(--border-color)!important}.dnb-scrollbar-appearance{-webkit-overflow-scrolling:touch;-ms-overflow-style:auto;scrollbar-color:var(--scrollbar-thumb-color,#888) transparent}@supports not (scrollbar-color:auto){.dnb-scrollbar-appearance::-webkit-scrollbar{background-color:var(--scrollbar-track-color,#eee);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:vertical{width:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:horizontal{height:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-color,#888);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover-color,#666)}}.dnb-skip-link{opacity:.3;position:absolute;top:-100vh;transition:opacity .3s ease-out;z-index:0}.dnb-skip-link--active,.dnb-skip-link:focus{background-color:transparent;border:none;border-radius:0;box-shadow:none;color:var(--skip-link-color);font-size:var(--font-size-basis);left:40%;margin:0;outline:none;padding:.5rem 1rem;position:fixed;text-align:center;-webkit-text-decoration:none;text-decoration:none;top:5%;user-select:none;-webkit-user-select:none;white-space:nowrap;z-index:9999}.dnb-skip-link--active:after,.dnb-skip-link:focus:after{background-color:hsla(0,0%,100%,.85);box-shadow:150vw 150vh 0 0 hsla(0,0%,100%,.85);content:"";height:150vh;left:-200vw;position:absolute;top:-200vh;width:150vw;z-index:-2}.dnb-skip-link--active:before,.dnb-skip-link:focus:before{background-color:var(--skip-link-background);border-radius:1.5rem;content:"";height:100%;left:0;outline:none;position:absolute;top:0;width:100%;z-index:-1}html[data-whatinput=mouse] .dnb-skip-link--active:before,html[data-whatinput=mouse] .dnb-skip-link:focus:before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:hover:before,.dnb-skip-link:focus:hover:before{background-color:var(--skip-link-background--hover)}.dnb-skip-link--active:active:before,.dnb-skip-link:focus:active:before{background-color:var(--skip-link-background--active)}.dnb-skip-link--active:focus:not(:active):before,.dnb-skip-link:focus:focus:not(:active):before{outline:none}html[data-whatinput=keyboard] .dnb-skip-link--active:focus:not(:active):before,html[data-whatinput=keyboard] .dnb-skip-link:focus:focus:not(:active):before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:focus,.dnb-skip-link:focus:focus{opacity:1}.dnb-skip-link--active:hover,.dnb-skip-link:focus:hover{background-color:transparent;box-shadow:none;color:var(--skip-link-color--hover)}.dnb-skip-link--active:focus:not(:hover):not(:active),.dnb-skip-link:focus:focus:not(:hover):not(:active){background-color:transparent;box-shadow:none;color:var(--skip-link-color)}.dnb-skip-link--active:active,.dnb-skip-link:focus:active{background-color:transparent;color:var(--skip-link-color--active)}html[data-whatintent=touch] .dnb-skip-link{display:none}.dnb-alignment-helper,.dnb-alignment-helper:before{speak:none;display:inline-block;font-size:var(--font-size-small);height:0;width:0}.dnb-alignment-helper:before{content:"‌"}.dnb-drop-shadow{box-shadow:var(--shadow-default)}.dnb-sr-only{-webkit-touch-callout:none!important;border:0!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;margin:0!important;max-height:1px!important;max-width:1px!important;overflow:hidden!important;padding:0!important;pointer-events:none!important;position:absolute!important;-webkit-user-select:none!important;user-select:none!important;white-space:nowrap!important}.dnb-suffix{font-size:var(--font-size-basis);line-height:var(--line-height-basis);padding-left:.5rem;word-break:normal}
1
+ @charset "UTF-8";html{font-size:100%}html:not([data-visual-test]){scroll-behavior:smooth}@supports (-webkit-touch-callout:none){@supports (font:-apple-system-body){html{font:-apple-system-body}}}html[xmlns="http://www.w3.org/1999/xhtml"] a:hover{-webkit-text-decoration:none;text-decoration:none}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--active{color:var(--color-mint-green)!important}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--contrast:not(:hover){color:var(--color-white)!important}html[xmlns="http://www.w3.org/1999/xhtml"] a.dnb-button--primary{color:var(--color-white)}html[xmlns="http://www.w3.org/1999/xhtml"] ul{list-style:initial}html[xmlns="http://www.w3.org/1999/xhtml"] p{background-color:initial;overflow:initial;text-align:inherit}html[xmlns="http://www.w3.org/1999/xhtml"] i{font-style:italic}html[xmlns="http://www.w3.org/1999/xhtml"] #column_left,html[xmlns="http://www.w3.org/1999/xhtml"] #root{width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefault #wrapper,html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefaultStartPage #wrapper{max-width:60rem;width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] #column_content{box-shadow:none}body{margin:0}.dnb-core-style{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;--eufemia-version:"10.24.0";color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis);tab-size:4;-moz-tab-size:4;word-break:break-word}.dnb-core-style *,.dnb-core-style :after,.dnb-core-style :before{background-repeat:no-repeat;box-sizing:border-box}.dnb-core-style :after,.dnb-core-style :before{text-decoration:inherit;vertical-align:inherit}.dnb-core-style hr{height:0;overflow:visible}.dnb-core-style main{display:block}.dnb-core-style nav ol,.dnb-core-style nav ul{list-style:none}.dnb-core-style abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.dnb-core-style b,.dnb-core-style strong{font-weight:bolder}.dnb-core-style code,.dnb-core-style kbd,.dnb-core-style pre,.dnb-core-style samp{font-family:var(--font-family-monospace);font-size:var(--font-size-basis--em)}.dnb-core-style ::selection{background-color:#b3d4fc;color:#000;text-shadow:none}.dnb-core-style audio,.dnb-core-style canvas,.dnb-core-style iframe,.dnb-core-style img,.dnb-core-style svg,.dnb-core-style video{vertical-align:middle}.dnb-core-style audio,.dnb-core-style video{display:inline-block}.dnb-core-style audio:not([controls]){display:none;height:0}.dnb-core-style img{border-style:none}.dnb-core-style svg:not([fill]){fill:currentcolor}.dnb-core-style svg:not(:root){overflow:hidden}.dnb-core-style table{border-collapse:collapse}.dnb-core-style button,.dnb-core-style input,.dnb-core-style select,.dnb-core-style textarea{font-family:inherit;font-size:inherit;line-height:inherit}.dnb-core-style button,.dnb-core-style figure,.dnb-core-style input,.dnb-core-style select{margin:0}.dnb-core-style button{overflow:visible;text-transform:none}.dnb-core-style fieldset{padding:.35rem .75rem .625rem}.dnb-core-style input{overflow:visible;word-break:normal}.dnb-core-style legend{color:inherit;display:table;max-width:100%;white-space:normal}.dnb-core-style progress{display:inline-block;vertical-align:baseline}.dnb-core-style select{text-transform:none}.dnb-core-style textarea{overflow:auto;resize:vertical}.dnb-core-style [type=checkbox],.dnb-core-style [type=radio]{padding:0}.dnb-core-style input[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}.dnb-core-style ::-webkit-inner-spin-button,.dnb-core-style ::-webkit-outer-spin-button{height:auto}.dnb-core-style ::input-placeholder{color:inherit;opacity:.54}.dnb-core-style ::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.dnb-core-style ::-webkit-file-upload-button{background-color:transparent;border:none;font:inherit}.dnb-core-style ::-moz-focus-inner{border-style:none;padding:0}.dnb-core-style details{display:block}.dnb-core-style summary{display:list-item}.dnb-core-style canvas{display:inline-block}.dnb-core-style template{display:none}.dnb-core-style [tabindex],.dnb-core-style a,.dnb-core-style area,.dnb-core-style button,.dnb-core-style input,.dnb-core-style label,.dnb-core-style select,.dnb-core-style summary,.dnb-core-style textarea{touch-action:manipulation}.dnb-core-style [hidden]{display:none}.dnb-core-style [aria-busy=true]{cursor:progress}.dnb-core-style [aria-controls]:not(input){cursor:pointer}.dnb-core-style [aria-disabled=true],.dnb-core-style [disabled]{cursor:not-allowed}.dnb-core-style [aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);display:inherit;position:absolute}@media print{.dnb-core-style{background-color:#fff;color:#000}}.dnb-core-style .eufemia-theme{color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis)}.dnb-no-focus,.dnb-tab-focus,.dnb-tab-focus:focus{outline:none}html[data-whatinput=keyboard] .dnb-tab-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-mouse-focus,.dnb-mouse-focus:focus{outline:none}html[data-whatinput=mouse] .dnb-mouse-focus:focus{box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-focus-ring,html[data-whatinput=mouse] .dnb-mouse-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent}.dnb-focus-ring{box-shadow:0 0 0 var(--border-width) var(--border-color)!important}.dnb-scrollbar-appearance{-webkit-overflow-scrolling:touch;-ms-overflow-style:auto;scrollbar-color:var(--scrollbar-thumb-color,#888) transparent}@supports not (scrollbar-color:auto){.dnb-scrollbar-appearance::-webkit-scrollbar{background-color:var(--scrollbar-track-color,#eee);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:vertical{width:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:horizontal{height:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-color,#888);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover-color,#666)}}.dnb-skip-link{opacity:.3;position:absolute;top:-100vh;transition:opacity .3s ease-out;z-index:0}.dnb-skip-link--active,.dnb-skip-link:focus{background-color:transparent;border:none;border-radius:0;box-shadow:none;color:var(--skip-link-color);font-size:var(--font-size-basis);left:40%;margin:0;outline:none;padding:.5rem 1rem;position:fixed;text-align:center;-webkit-text-decoration:none;text-decoration:none;top:5%;user-select:none;-webkit-user-select:none;white-space:nowrap;z-index:9999}.dnb-skip-link--active:after,.dnb-skip-link:focus:after{background-color:hsla(0,0%,100%,.85);box-shadow:150vw 150vh 0 0 hsla(0,0%,100%,.85);content:"";height:150vh;left:-200vw;position:absolute;top:-200vh;width:150vw;z-index:-2}.dnb-skip-link--active:before,.dnb-skip-link:focus:before{background-color:var(--skip-link-background);border-radius:1.5rem;content:"";height:100%;left:0;outline:none;position:absolute;top:0;width:100%;z-index:-1}html[data-whatinput=mouse] .dnb-skip-link--active:before,html[data-whatinput=mouse] .dnb-skip-link:focus:before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:hover:before,.dnb-skip-link:focus:hover:before{background-color:var(--skip-link-background--hover)}.dnb-skip-link--active:active:before,.dnb-skip-link:focus:active:before{background-color:var(--skip-link-background--active)}.dnb-skip-link--active:focus:not(:active):before,.dnb-skip-link:focus:focus:not(:active):before{outline:none}html[data-whatinput=keyboard] .dnb-skip-link--active:focus:not(:active):before,html[data-whatinput=keyboard] .dnb-skip-link:focus:focus:not(:active):before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:focus,.dnb-skip-link:focus:focus{opacity:1}.dnb-skip-link--active:hover,.dnb-skip-link:focus:hover{background-color:transparent;box-shadow:none;color:var(--skip-link-color--hover)}.dnb-skip-link--active:focus:not(:hover):not(:active),.dnb-skip-link:focus:focus:not(:hover):not(:active){background-color:transparent;box-shadow:none;color:var(--skip-link-color)}.dnb-skip-link--active:active,.dnb-skip-link:focus:active{background-color:transparent;color:var(--skip-link-color--active)}html[data-whatintent=touch] .dnb-skip-link{display:none}.dnb-alignment-helper,.dnb-alignment-helper:before{speak:none;display:inline-block;font-size:var(--font-size-small);height:0;width:0}.dnb-alignment-helper:before{content:"‌"}.dnb-drop-shadow{box-shadow:var(--shadow-default)}.dnb-sr-only{-webkit-touch-callout:none!important;border:0!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;margin:0!important;max-height:1px!important;max-width:1px!important;overflow:hidden!important;padding:0!important;pointer-events:none!important;position:absolute!important;-webkit-user-select:none!important;user-select:none!important;white-space:nowrap!important}.dnb-suffix{font-size:var(--font-size-basis);line-height:var(--line-height-basis);padding-left:.5rem;word-break:normal}
@@ -278,7 +278,7 @@ body {
278
278
  /* stylelint-disable-next-line */
279
279
  -webkit-text-size-adjust: 100%;
280
280
  word-break: break-word;
281
- --eufemia-version: "10.23.0";
281
+ --eufemia-version: "10.24.0";
282
282
  }
283
283
  body *,
284
284
  body ::before,
@@ -1 +1 @@
1
- html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;cursor:default;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:var(--line-height-basis);-moz-tab-size:4;tab-size:4;word-break:break-word}body{margin:0}html{font-size:100%}html:not([data-visual-test]){scroll-behavior:smooth}@supports (-webkit-touch-callout:none){@supports (font:-apple-system-body){html{font:-apple-system-body}}}html[xmlns="http://www.w3.org/1999/xhtml"] a:hover{-webkit-text-decoration:none;text-decoration:none}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--active{color:var(--color-mint-green)!important}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--contrast:not(:hover){color:var(--color-white)!important}html[xmlns="http://www.w3.org/1999/xhtml"] a.dnb-button--primary{color:var(--color-white)}html[xmlns="http://www.w3.org/1999/xhtml"] ul{list-style:initial}html[xmlns="http://www.w3.org/1999/xhtml"] p{background-color:initial;overflow:initial;text-align:inherit}html[xmlns="http://www.w3.org/1999/xhtml"] i{font-style:italic}html[xmlns="http://www.w3.org/1999/xhtml"] #column_left,html[xmlns="http://www.w3.org/1999/xhtml"] #root{width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefault #wrapper,html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefaultStartPage #wrapper{max-width:60rem;width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] #column_content{box-shadow:none}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;--eufemia-version:"10.23.0";color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis);tab-size:4;-moz-tab-size:4;word-break:break-word}body *,body :after,body :before{background-repeat:no-repeat;box-sizing:border-box}body :after,body :before{text-decoration:inherit;vertical-align:inherit}body hr{height:0;overflow:visible}body main{display:block}body nav ol,body nav ul{list-style:none}body abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}body b,body strong{font-weight:bolder}body code,body kbd,body pre,body samp{font-family:var(--font-family-monospace);font-size:var(--font-size-basis--em)}body ::selection{background-color:#b3d4fc;color:#000;text-shadow:none}body audio,body canvas,body iframe,body img,body svg,body video{vertical-align:middle}body audio,body video{display:inline-block}body audio:not([controls]){display:none;height:0}body img{border-style:none}body svg:not([fill]){fill:currentcolor}body svg:not(:root){overflow:hidden}body table{border-collapse:collapse}body button,body input,body select,body textarea{font-family:inherit;font-size:inherit;line-height:inherit}body button,body figure,body input,body select{margin:0}body button{overflow:visible;text-transform:none}body fieldset{padding:.35rem .75rem .625rem}body input{overflow:visible;word-break:normal}body legend{color:inherit;display:table;max-width:100%;white-space:normal}body progress{display:inline-block;vertical-align:baseline}body select{text-transform:none}body textarea{overflow:auto;resize:vertical}body [type=checkbox],body [type=radio]{padding:0}body input[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}body ::-webkit-inner-spin-button,body ::-webkit-outer-spin-button{height:auto}body ::input-placeholder{color:inherit;opacity:.54}body ::-webkit-search-decoration{-webkit-appearance:none;appearance:none}body ::-webkit-file-upload-button{background-color:transparent;border:none;font:inherit}body ::-moz-focus-inner{border-style:none;padding:0}body details{display:block}body summary{display:list-item}body canvas{display:inline-block}body template{display:none}body [tabindex],body a,body area,body button,body input,body label,body select,body summary,body textarea{touch-action:manipulation}body [hidden]{display:none}body [aria-busy=true]{cursor:progress}body [aria-controls]:not(input){cursor:pointer}body [aria-disabled=true],body [disabled]{cursor:not-allowed}body [aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);display:inherit;position:absolute}@media print{body{background-color:#fff;color:#000}}body .eufemia-theme{color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis)}
1
+ html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;cursor:default;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:var(--line-height-basis);-moz-tab-size:4;tab-size:4;word-break:break-word}body{margin:0}html{font-size:100%}html:not([data-visual-test]){scroll-behavior:smooth}@supports (-webkit-touch-callout:none){@supports (font:-apple-system-body){html{font:-apple-system-body}}}html[xmlns="http://www.w3.org/1999/xhtml"] a:hover{-webkit-text-decoration:none;text-decoration:none}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--active{color:var(--color-mint-green)!important}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--contrast:not(:hover){color:var(--color-white)!important}html[xmlns="http://www.w3.org/1999/xhtml"] a.dnb-button--primary{color:var(--color-white)}html[xmlns="http://www.w3.org/1999/xhtml"] ul{list-style:initial}html[xmlns="http://www.w3.org/1999/xhtml"] p{background-color:initial;overflow:initial;text-align:inherit}html[xmlns="http://www.w3.org/1999/xhtml"] i{font-style:italic}html[xmlns="http://www.w3.org/1999/xhtml"] #column_left,html[xmlns="http://www.w3.org/1999/xhtml"] #root{width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefault #wrapper,html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefaultStartPage #wrapper{max-width:60rem;width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] #column_content{box-shadow:none}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;--eufemia-version:"10.24.0";color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis);tab-size:4;-moz-tab-size:4;word-break:break-word}body *,body :after,body :before{background-repeat:no-repeat;box-sizing:border-box}body :after,body :before{text-decoration:inherit;vertical-align:inherit}body hr{height:0;overflow:visible}body main{display:block}body nav ol,body nav ul{list-style:none}body abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}body b,body strong{font-weight:bolder}body code,body kbd,body pre,body samp{font-family:var(--font-family-monospace);font-size:var(--font-size-basis--em)}body ::selection{background-color:#b3d4fc;color:#000;text-shadow:none}body audio,body canvas,body iframe,body img,body svg,body video{vertical-align:middle}body audio,body video{display:inline-block}body audio:not([controls]){display:none;height:0}body img{border-style:none}body svg:not([fill]){fill:currentcolor}body svg:not(:root){overflow:hidden}body table{border-collapse:collapse}body button,body input,body select,body textarea{font-family:inherit;font-size:inherit;line-height:inherit}body button,body figure,body input,body select{margin:0}body button{overflow:visible;text-transform:none}body fieldset{padding:.35rem .75rem .625rem}body input{overflow:visible;word-break:normal}body legend{color:inherit;display:table;max-width:100%;white-space:normal}body progress{display:inline-block;vertical-align:baseline}body select{text-transform:none}body textarea{overflow:auto;resize:vertical}body [type=checkbox],body [type=radio]{padding:0}body input[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}body ::-webkit-inner-spin-button,body ::-webkit-outer-spin-button{height:auto}body ::input-placeholder{color:inherit;opacity:.54}body ::-webkit-search-decoration{-webkit-appearance:none;appearance:none}body ::-webkit-file-upload-button{background-color:transparent;border:none;font:inherit}body ::-moz-focus-inner{border-style:none;padding:0}body details{display:block}body summary{display:list-item}body canvas{display:inline-block}body template{display:none}body [tabindex],body a,body area,body button,body input,body label,body select,body summary,body textarea{touch-action:manipulation}body [hidden]{display:none}body [aria-busy=true]{cursor:progress}body [aria-controls]:not(input){cursor:pointer}body [aria-disabled=true],body [disabled]{cursor:not-allowed}body [aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);display:inherit;position:absolute}@media print{body{background-color:#fff;color:#000}}body .eufemia-theme{color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis)}