@dnb/eufemia 10.17.0 → 10.18.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 (321) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/cjs/components/flex/Container.js +4 -0
  3. package/cjs/components/flex/Container.js.map +1 -1
  4. package/cjs/components/flex/utils.d.ts +1 -1
  5. package/cjs/components/flex/utils.js +11 -1
  6. package/cjs/components/flex/utils.js.map +1 -1
  7. package/cjs/components/input-masked/MultiInputMask.d.ts +10 -2
  8. package/cjs/components/input-masked/MultiInputMask.js +41 -14
  9. package/cjs/components/input-masked/MultiInputMask.js.map +1 -1
  10. package/cjs/components/input-masked/hooks/useMultiInputValues.d.ts +2 -2
  11. package/cjs/components/input-masked/hooks/useMultiInputValues.js.map +1 -1
  12. package/cjs/components/number-format/NumberFormat.js +1 -1
  13. package/cjs/components/number-format/NumberFormat.js.map +1 -1
  14. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.css +8 -1
  15. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.min.css +1 -1
  16. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.scss +6 -1
  17. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +4 -0
  18. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
  19. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +5 -0
  20. package/cjs/components/visually-hidden/VisuallyHidden.js +1 -1
  21. package/cjs/components/visually-hidden/VisuallyHidden.js.map +1 -1
  22. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +8 -4
  23. package/cjs/extensions/forms/DataContext/Provider/Provider.js +22 -4
  24. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  25. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +14 -14
  26. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  27. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +12 -2
  28. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  29. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +12 -2
  30. package/cjs/extensions/forms/Field/Date/Date.js +1 -5
  31. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  32. package/cjs/extensions/forms/Field/Expiry/Expiry.d.ts +1 -1
  33. package/cjs/extensions/forms/Field/Expiry/Expiry.js +20 -10
  34. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  35. package/cjs/extensions/forms/Field/Number/Number.js +0 -5
  36. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  37. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +4 -5
  38. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  39. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +7 -1
  40. package/cjs/extensions/forms/Field/Selection/Selection.js +4 -9
  41. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  42. package/cjs/extensions/forms/Field/String/String.d.ts +0 -1
  43. package/cjs/extensions/forms/Field/String/String.js +2 -8
  44. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  45. package/cjs/extensions/forms/Field/Toggle/Toggle.js +0 -4
  46. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  47. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
  48. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +2 -10
  49. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  50. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +0 -9
  51. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  52. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +0 -11
  53. package/cjs/extensions/forms/Form/Handler/Handler.js +1 -0
  54. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  55. package/cjs/extensions/forms/Form/Visibility/Visibility.js +0 -1
  56. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  57. package/cjs/extensions/forms/Form/hooks/useData.d.ts +10 -0
  58. package/cjs/extensions/forms/Form/hooks/useData.js +36 -0
  59. package/cjs/extensions/forms/Form/hooks/useData.js.map +1 -0
  60. package/cjs/extensions/forms/Form/index.d.ts +1 -0
  61. package/cjs/extensions/forms/Form/index.js +7 -0
  62. package/cjs/extensions/forms/Form/index.js.map +1 -1
  63. package/cjs/extensions/forms/Iterate/Array/Array.js +0 -4
  64. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  65. package/cjs/extensions/forms/hooks/useDataValue.js +2 -2
  66. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  67. package/cjs/extensions/forms/style/dnb-forms.css +12 -11
  68. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  69. package/cjs/extensions/forms/types.d.ts +4 -8
  70. package/cjs/extensions/forms/types.js.map +1 -1
  71. package/cjs/shared/Eufemia.d.ts +1 -1
  72. package/cjs/shared/Eufemia.js +2 -2
  73. package/cjs/shared/Eufemia.js.map +1 -1
  74. package/cjs/shared/helpers/EventEmitter.d.ts +5 -0
  75. package/cjs/shared/helpers/EventEmitter.js.map +1 -1
  76. package/cjs/shared/helpers/useEventEmitter.d.ts +2 -0
  77. package/cjs/shared/helpers/useEventEmitter.js.map +1 -1
  78. package/cjs/shared/helpers/useSharedState.d.ts +15 -0
  79. package/cjs/shared/helpers/useSharedState.js +71 -0
  80. package/cjs/shared/helpers/useSharedState.js.map +1 -0
  81. package/cjs/style/dnb-ui-components.css +12 -11
  82. package/cjs/style/dnb-ui-components.min.css +1 -1
  83. package/cjs/style/dnb-ui-extensions.css +12 -11
  84. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  85. package/cjs/style/dnb-ui-forms.css +12 -11
  86. package/cjs/style/dnb-ui-forms.min.css +1 -1
  87. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +28 -22
  88. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  89. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +12 -11
  90. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  91. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +12 -11
  92. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  93. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +32 -23
  94. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  95. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +12 -11
  96. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  97. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +12 -11
  98. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  99. package/cjs/style/themes/theme-ui/ui-theme-components.css +28 -22
  100. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  101. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +12 -11
  102. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  103. package/cjs/style/themes/theme-ui/ui-theme-forms.css +12 -11
  104. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  105. package/components/flex/Container.js +4 -0
  106. package/components/flex/Container.js.map +1 -1
  107. package/components/flex/utils.d.ts +1 -1
  108. package/components/flex/utils.js +11 -1
  109. package/components/flex/utils.js.map +1 -1
  110. package/components/input-masked/MultiInputMask.d.ts +10 -2
  111. package/components/input-masked/MultiInputMask.js +39 -14
  112. package/components/input-masked/MultiInputMask.js.map +1 -1
  113. package/components/input-masked/hooks/useMultiInputValues.d.ts +2 -2
  114. package/components/input-masked/hooks/useMultiInputValues.js.map +1 -1
  115. package/components/number-format/NumberFormat.js +1 -1
  116. package/components/number-format/NumberFormat.js.map +1 -1
  117. package/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.css +8 -1
  118. package/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.min.css +1 -1
  119. package/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.scss +6 -1
  120. package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +4 -0
  121. package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
  122. package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +5 -0
  123. package/components/visually-hidden/VisuallyHidden.js +1 -1
  124. package/components/visually-hidden/VisuallyHidden.js.map +1 -1
  125. package/es/components/flex/Container.js +4 -0
  126. package/es/components/flex/Container.js.map +1 -1
  127. package/es/components/flex/utils.d.ts +1 -1
  128. package/es/components/flex/utils.js +11 -1
  129. package/es/components/flex/utils.js.map +1 -1
  130. package/es/components/input-masked/MultiInputMask.d.ts +10 -2
  131. package/es/components/input-masked/MultiInputMask.js +39 -13
  132. package/es/components/input-masked/MultiInputMask.js.map +1 -1
  133. package/es/components/input-masked/hooks/useMultiInputValues.d.ts +2 -2
  134. package/es/components/input-masked/hooks/useMultiInputValues.js.map +1 -1
  135. package/es/components/number-format/NumberFormat.js +1 -1
  136. package/es/components/number-format/NumberFormat.js.map +1 -1
  137. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.css +8 -1
  138. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.min.css +1 -1
  139. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.scss +6 -1
  140. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +4 -0
  141. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
  142. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +5 -0
  143. package/es/components/visually-hidden/VisuallyHidden.js +1 -1
  144. package/es/components/visually-hidden/VisuallyHidden.js.map +1 -1
  145. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +8 -4
  146. package/es/extensions/forms/DataContext/Provider/Provider.js +22 -4
  147. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  148. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +15 -15
  149. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  150. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +12 -2
  151. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  152. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +12 -2
  153. package/es/extensions/forms/Field/Date/Date.js +1 -5
  154. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  155. package/es/extensions/forms/Field/Expiry/Expiry.d.ts +1 -1
  156. package/es/extensions/forms/Field/Expiry/Expiry.js +20 -11
  157. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  158. package/es/extensions/forms/Field/Number/Number.js +0 -5
  159. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  160. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +4 -5
  161. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  162. package/es/extensions/forms/Field/Selection/Selection.d.ts +7 -1
  163. package/es/extensions/forms/Field/Selection/Selection.js +4 -9
  164. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  165. package/es/extensions/forms/Field/String/String.d.ts +0 -1
  166. package/es/extensions/forms/Field/String/String.js +2 -8
  167. package/es/extensions/forms/Field/String/String.js.map +1 -1
  168. package/es/extensions/forms/Field/Toggle/Toggle.js +0 -4
  169. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  170. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
  171. package/es/extensions/forms/FieldBlock/FieldBlock.js +2 -10
  172. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  173. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +0 -9
  174. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  175. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +0 -11
  176. package/es/extensions/forms/Form/Handler/Handler.js +1 -0
  177. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  178. package/es/extensions/forms/Form/Visibility/Visibility.js +0 -1
  179. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  180. package/es/extensions/forms/Form/hooks/useData.d.ts +10 -0
  181. package/es/extensions/forms/Form/hooks/useData.js +29 -0
  182. package/es/extensions/forms/Form/hooks/useData.js.map +1 -0
  183. package/es/extensions/forms/Form/index.d.ts +1 -0
  184. package/es/extensions/forms/Form/index.js +1 -0
  185. package/es/extensions/forms/Form/index.js.map +1 -1
  186. package/es/extensions/forms/Iterate/Array/Array.js +0 -4
  187. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  188. package/es/extensions/forms/hooks/useDataValue.js +2 -2
  189. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  190. package/es/extensions/forms/style/dnb-forms.css +12 -11
  191. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  192. package/es/extensions/forms/types.d.ts +4 -8
  193. package/es/extensions/forms/types.js.map +1 -1
  194. package/es/shared/Eufemia.d.ts +1 -1
  195. package/es/shared/Eufemia.js +2 -2
  196. package/es/shared/Eufemia.js.map +1 -1
  197. package/es/shared/helpers/EventEmitter.d.ts +5 -0
  198. package/es/shared/helpers/EventEmitter.js.map +1 -1
  199. package/es/shared/helpers/useEventEmitter.d.ts +2 -0
  200. package/es/shared/helpers/useEventEmitter.js.map +1 -1
  201. package/es/shared/helpers/useSharedState.d.ts +15 -0
  202. package/es/shared/helpers/useSharedState.js +63 -0
  203. package/es/shared/helpers/useSharedState.js.map +1 -0
  204. package/es/style/dnb-ui-components.css +12 -11
  205. package/es/style/dnb-ui-components.min.css +1 -1
  206. package/es/style/dnb-ui-extensions.css +12 -11
  207. package/es/style/dnb-ui-extensions.min.css +1 -1
  208. package/es/style/dnb-ui-forms.css +12 -11
  209. package/es/style/dnb-ui-forms.min.css +1 -1
  210. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +28 -22
  211. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  212. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +12 -11
  213. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  214. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +12 -11
  215. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  216. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +32 -23
  217. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  218. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +12 -11
  219. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  220. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +12 -11
  221. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  222. package/es/style/themes/theme-ui/ui-theme-components.css +28 -22
  223. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  224. package/es/style/themes/theme-ui/ui-theme-extensions.css +12 -11
  225. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  226. package/es/style/themes/theme-ui/ui-theme-forms.css +12 -11
  227. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  228. package/esm/dnb-ui-basis.min.mjs +1 -1
  229. package/esm/dnb-ui-components.min.mjs +1 -1
  230. package/esm/dnb-ui-elements.min.mjs +1 -1
  231. package/esm/dnb-ui-extensions.min.mjs +3 -3
  232. package/esm/dnb-ui-lib.min.mjs +1 -1
  233. package/extensions/forms/DataContext/Provider/Provider.d.ts +8 -4
  234. package/extensions/forms/DataContext/Provider/Provider.js +22 -4
  235. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  236. package/extensions/forms/Field/ArraySelection/ArraySelection.js +15 -15
  237. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  238. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +12 -2
  239. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  240. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +12 -2
  241. package/extensions/forms/Field/Date/Date.js +1 -5
  242. package/extensions/forms/Field/Date/Date.js.map +1 -1
  243. package/extensions/forms/Field/Expiry/Expiry.d.ts +1 -1
  244. package/extensions/forms/Field/Expiry/Expiry.js +21 -11
  245. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  246. package/extensions/forms/Field/Number/Number.js +0 -5
  247. package/extensions/forms/Field/Number/Number.js.map +1 -1
  248. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +4 -5
  249. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  250. package/extensions/forms/Field/Selection/Selection.d.ts +7 -1
  251. package/extensions/forms/Field/Selection/Selection.js +4 -9
  252. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  253. package/extensions/forms/Field/String/String.d.ts +0 -1
  254. package/extensions/forms/Field/String/String.js +2 -8
  255. package/extensions/forms/Field/String/String.js.map +1 -1
  256. package/extensions/forms/Field/Toggle/Toggle.js +0 -4
  257. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  258. package/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
  259. package/extensions/forms/FieldBlock/FieldBlock.js +2 -10
  260. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  261. package/extensions/forms/FieldBlock/style/dnb-field-block.css +0 -9
  262. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  263. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +0 -11
  264. package/extensions/forms/Form/Handler/Handler.js +1 -0
  265. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  266. package/extensions/forms/Form/Visibility/Visibility.js +0 -1
  267. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  268. package/extensions/forms/Form/hooks/useData.d.ts +10 -0
  269. package/extensions/forms/Form/hooks/useData.js +30 -0
  270. package/extensions/forms/Form/hooks/useData.js.map +1 -0
  271. package/extensions/forms/Form/index.d.ts +1 -0
  272. package/extensions/forms/Form/index.js +1 -0
  273. package/extensions/forms/Form/index.js.map +1 -1
  274. package/extensions/forms/Iterate/Array/Array.js +0 -4
  275. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  276. package/extensions/forms/hooks/useDataValue.js +2 -2
  277. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  278. package/extensions/forms/style/dnb-forms.css +12 -11
  279. package/extensions/forms/style/dnb-forms.min.css +1 -1
  280. package/extensions/forms/types.d.ts +4 -8
  281. package/extensions/forms/types.js.map +1 -1
  282. package/package.json +1 -1
  283. package/shared/Eufemia.d.ts +1 -1
  284. package/shared/Eufemia.js +2 -2
  285. package/shared/Eufemia.js.map +1 -1
  286. package/shared/helpers/EventEmitter.d.ts +5 -0
  287. package/shared/helpers/EventEmitter.js.map +1 -1
  288. package/shared/helpers/useEventEmitter.d.ts +2 -0
  289. package/shared/helpers/useEventEmitter.js.map +1 -1
  290. package/shared/helpers/useSharedState.d.ts +15 -0
  291. package/shared/helpers/useSharedState.js +63 -0
  292. package/shared/helpers/useSharedState.js.map +1 -0
  293. package/style/dnb-ui-components.css +12 -11
  294. package/style/dnb-ui-components.min.css +1 -1
  295. package/style/dnb-ui-extensions.css +12 -11
  296. package/style/dnb-ui-extensions.min.css +1 -1
  297. package/style/dnb-ui-forms.css +12 -11
  298. package/style/dnb-ui-forms.min.css +1 -1
  299. package/style/themes/theme-eiendom/eiendom-theme-components.css +28 -22
  300. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  301. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +12 -11
  302. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  303. package/style/themes/theme-eiendom/eiendom-theme-forms.css +12 -11
  304. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  305. package/style/themes/theme-sbanken/sbanken-theme-components.css +32 -23
  306. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  307. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +12 -11
  308. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  309. package/style/themes/theme-sbanken/sbanken-theme-forms.css +12 -11
  310. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  311. package/style/themes/theme-ui/ui-theme-components.css +28 -22
  312. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  313. package/style/themes/theme-ui/ui-theme-extensions.css +12 -11
  314. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  315. package/style/themes/theme-ui/ui-theme-forms.css +12 -11
  316. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  317. package/umd/dnb-ui-basis.min.js +1 -1
  318. package/umd/dnb-ui-components.min.js +1 -1
  319. package/umd/dnb-ui-elements.min.js +1 -1
  320. package/umd/dnb-ui-extensions.min.js +2 -2
  321. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1,4 +1,4 @@
1
- .dnb-forms-field-array-selection--options-layout-vertical .dnb-forms-field-array-selection__options{display:flex;flex-flow:column;row-gap:var(--spacing-x-small)}.dnb-forms-field-array-selection--options-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}.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{align-items:center;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__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-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__fields{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row}.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}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__grid{display:grid}@media screen and (max-width:40em){.dnb-forms-field-block__grid{flex-wrap:wrap}.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:30em){.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__label-description,.dnb-forms-field-block__label-secondary{color:var(--color-black-55);font-size:var(--font-size-small)}.dnb-forms-field-block__status{grid-area:status}.dnb-forms-field-block__contents{grid-area:contents}.dnb-forms-field-block__contents--width-stretch{width:100%}@media screen and (min-width:30em){.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-button-row{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row}@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-forms-steps-layout{-moz-column-gap:var(--spacing-medium);column-gap:var(--spacing-medium);display:flex;flex-flow:row wrap}.dnb-forms-steps-layout__sidebar{flex:0}.dnb-forms-steps-layout__contents{flex:1 0 25rem}.dnb-forms-steps-layout__contents .dnb-card{--border-color:var(--color-pistachio)}@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}.dnb-payment-card{--color-dark-cyan:#003b47;--dnb-payment-bg-default:linear-gradient(187.2deg,#008484 6.31%,var(--color-sea-green) 82.66%);--dnb-payment-bg-pluss:linear-gradient(187.2deg,var(--color-dark-cyan) 6.31%,var(--color-ocean-green) 82.66%),var(--color-emerald-green);--dnb-payment-bg-white:linear-gradient(184.55deg,var(--color-black-background) 4.63%,var(--color-white) 92.04%);--dnb-payment-bg-gold:linear-gradient(184.55deg,#bfa970 4.63%,#d3bd83 84.57%);--dnb-payment-bg-saga:linear-gradient(187.2deg,#1c1c1c 6.31%,#000 82.66%);--dnb-payment-bg-private:linear-gradient(187.2deg,#1c1c1c 6.31%,#000 82.66%);--dnb-payment-bg-business-no-visa:linear-gradient(187.2deg,var(--color-dark-cyan) 6.31%,var(--color-ocean-green) 82.66%),var(--color-emerald-green);--dnb-payment-bg-business-with-visa:linear-gradient(187.2deg,var(--color-dark-cyan) 6.31%,var(--color-ocean-green) 82.66%),var(--color-emerald-green);margin:0}.dnb-payment-card__card{border-color:currentcolor;border-color:hsla(0,0%,100%,.1) transparent rgba(0,0,0,.2);border-radius:12px;border-style:solid;border-width:1px;box-shadow:var(--shadow-default);color:var(--color-white);height:216px;padding:16px;position:relative;transition:all 225ms cubic-bezier(0,0,.2,1) 0ms;width:343px}.dnb-payment-card__card--design-default{background:var(--dnb-payment-bg-default);color:var(--color-white)}.dnb-payment-card__card--design-pluss{background:var(--dnb-payment-bg-pluss);color:var(--color-white)}.dnb-payment-card__card--design-my-first,.dnb-payment-card__card--design-ung,.dnb-payment-card__card--design-youth{color:var(--color-black-80)}.dnb-payment-card__card--design-gold{background:var(--dnb-payment-bg-gold);color:var(--color-white)}.dnb-payment-card__card--design-saga{background:var(--dnb-payment-bg-saga);color:var(--color-white)}.dnb-payment-card__card--design-private{background:var(--dnb-payment-bg-private);color:var(--color-white)}.dnb-payment-card__card--design-black{background:var(--color-black);color:var(--color-white)}.dnb-payment-card__card--design-business-no-visa{background:var(--dnb-payment-bg-business-no-visa);color:var(--color-white)}.dnb-payment-card__card--design-business-with-visa{background:var(--dnb-payment-bg-business-with-visa);color:var(--color-white)}.dnb-payment-card__card:after{background:radial-gradient(52.39% 52.39% at 50% 50%,hsla(56,52%,94%,.122) 0,rgba(6,6,6,0) 100%);border-radius:inherit;content:"";height:100%;left:0;position:absolute;top:0;width:100%}.dnb-payment-card__card__content{display:flex;height:100%;position:relative;width:100%}.dnb-payment-card__card__wrapper{bottom:0;left:0;position:absolute}.dnb-spacing .dnb-payment-card__card .dnb-p{margin-bottom:0!important}.dnb-payment-card__card__holder{font-weight:var(--font-weight-medium);text-align:left;text-transform:uppercase}.dnb-payment-card__card__holder.dnb-p{font-size:.625rem}.dnb-payment-card__card__numbers{font-size:1.5rem!important;font-weight:var(--font-weight-medium)}.dnb-payment-card__card__credit-type{bottom:0;position:absolute;right:0}.dnb-payment-card__card__bank-logo{left:0;position:absolute;top:0}.dnb-payment-card__card__product-type{height:38px;left:70px;position:absolute;top:0}.dnb-payment-card__card__bank-axept{height:45px;position:absolute;right:0;top:0}.dnb-payment-card__blocking__overlay{align-items:center;background:linear-gradient(184.55deg,hsla(0,0%,80%,.5) 4.63%,hsla(0,0%,91%,.5) 84.83%);border-radius:inherit;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}.dnb-payment-card__blocking__overlay svg path{stroke:currentcolor}.dnb-payment-card__blocking__center{align-items:center;background:var(--color-black-80);border-radius:4px;color:var(--color-sand-yellow);display:flex;flex-direction:column;justify-content:center;padding:1rem}.dnb-payment-card__blocking svg{shape-rendering:geometricprecision}.dnb-payment-card.dnb-skeleton .dnb-payment-card__card__holder{opacity:1}.dnb-payment-card--compact .dnb-payment-card__card{border-radius:12px 12px 0 0;box-shadow:var(--shadow-default);height:32.8mm;padding:0}.dnb-payment-card--compact .dnb-payment-card__card__top{left:6mm;position:absolute;right:6mm;top:4mm}.dnb-payment-card--compact .dnb-payment-card__card__bottom{background-color:var(--color-white);bottom:0;height:14mm;left:0;position:absolute;right:0}.dnb-payment-card--compact .dnb-payment-card__card__wrapper{color:var(--color-black-80);padding:6px 22px}.dnb-payment-card--compact .dnb-payment-card__card__numbers{font-size:var(--font-size-basis)}.dnb-payment-card--compact .dnb-payment-card__card__credit-type{bottom:auto;right:4px;top:10px}.dnb-payment-card--compact .dnb-payment-card__blocking__center{align-items:center;background:rgba(0,0,0,.739);border-radius:inherit;display:flex;flex-direction:row;gap:var(--spacing-x-small);height:100%;justify-content:center;width:100%}.dnb-forms-field-number{--number-control-button-border-color:var(--color-sea-green);--number-control-button-border-color--hover:var(--color-emerald-green);--number-control-button-border-color--focus:var(--color-emerald-green);--number-control-button-background-color--hover:var(
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{align-items:center;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__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-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__fields{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row}.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}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__grid{display:grid}@media screen and (max-width:40em){.dnb-forms-field-block__grid{flex-wrap:wrap}.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:30em){.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__status{grid-area:status}.dnb-forms-field-block__contents{grid-area:contents}.dnb-forms-field-block__contents--width-stretch{width:100%}@media screen and (min-width:30em){.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-button-row{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row}@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-forms-steps-layout{-moz-column-gap:var(--spacing-medium);column-gap:var(--spacing-medium);display:flex;flex-flow:row wrap}.dnb-forms-steps-layout__sidebar{flex:0}.dnb-forms-steps-layout__contents{flex:1 0 25rem}.dnb-forms-steps-layout__contents .dnb-card{--border-color:var(--color-pistachio)}@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}.dnb-payment-card{--color-dark-cyan:#003b47;--dnb-payment-bg-default:linear-gradient(187.2deg,#008484 6.31%,var(--color-sea-green) 82.66%);--dnb-payment-bg-pluss:linear-gradient(187.2deg,var(--color-dark-cyan) 6.31%,var(--color-ocean-green) 82.66%),var(--color-emerald-green);--dnb-payment-bg-white:linear-gradient(184.55deg,var(--color-black-background) 4.63%,var(--color-white) 92.04%);--dnb-payment-bg-gold:linear-gradient(184.55deg,#bfa970 4.63%,#d3bd83 84.57%);--dnb-payment-bg-saga:linear-gradient(187.2deg,#1c1c1c 6.31%,#000 82.66%);--dnb-payment-bg-private:linear-gradient(187.2deg,#1c1c1c 6.31%,#000 82.66%);--dnb-payment-bg-business-no-visa:linear-gradient(187.2deg,var(--color-dark-cyan) 6.31%,var(--color-ocean-green) 82.66%),var(--color-emerald-green);--dnb-payment-bg-business-with-visa:linear-gradient(187.2deg,var(--color-dark-cyan) 6.31%,var(--color-ocean-green) 82.66%),var(--color-emerald-green);margin:0}.dnb-payment-card__card{border-color:currentcolor;border-color:hsla(0,0%,100%,.1) transparent rgba(0,0,0,.2);border-radius:12px;border-style:solid;border-width:1px;box-shadow:var(--shadow-default);color:var(--color-white);height:216px;padding:16px;position:relative;transition:all 225ms cubic-bezier(0,0,.2,1) 0ms;width:343px}.dnb-payment-card__card--design-default{background:var(--dnb-payment-bg-default);color:var(--color-white)}.dnb-payment-card__card--design-pluss{background:var(--dnb-payment-bg-pluss);color:var(--color-white)}.dnb-payment-card__card--design-my-first,.dnb-payment-card__card--design-ung,.dnb-payment-card__card--design-youth{color:var(--color-black-80)}.dnb-payment-card__card--design-gold{background:var(--dnb-payment-bg-gold);color:var(--color-white)}.dnb-payment-card__card--design-saga{background:var(--dnb-payment-bg-saga);color:var(--color-white)}.dnb-payment-card__card--design-private{background:var(--dnb-payment-bg-private);color:var(--color-white)}.dnb-payment-card__card--design-black{background:var(--color-black);color:var(--color-white)}.dnb-payment-card__card--design-business-no-visa{background:var(--dnb-payment-bg-business-no-visa);color:var(--color-white)}.dnb-payment-card__card--design-business-with-visa{background:var(--dnb-payment-bg-business-with-visa);color:var(--color-white)}.dnb-payment-card__card:after{background:radial-gradient(52.39% 52.39% at 50% 50%,hsla(56,52%,94%,.122) 0,rgba(6,6,6,0) 100%);border-radius:inherit;content:"";height:100%;left:0;position:absolute;top:0;width:100%}.dnb-payment-card__card__content{display:flex;height:100%;position:relative;width:100%}.dnb-payment-card__card__wrapper{bottom:0;left:0;position:absolute}.dnb-spacing .dnb-payment-card__card .dnb-p{margin-bottom:0!important}.dnb-payment-card__card__holder{font-weight:var(--font-weight-medium);text-align:left;text-transform:uppercase}.dnb-payment-card__card__holder.dnb-p{font-size:.625rem}.dnb-payment-card__card__numbers{font-size:1.5rem!important;font-weight:var(--font-weight-medium)}.dnb-payment-card__card__credit-type{bottom:0;position:absolute;right:0}.dnb-payment-card__card__bank-logo{left:0;position:absolute;top:0}.dnb-payment-card__card__product-type{height:38px;left:70px;position:absolute;top:0}.dnb-payment-card__card__bank-axept{height:45px;position:absolute;right:0;top:0}.dnb-payment-card__blocking__overlay{align-items:center;background:linear-gradient(184.55deg,hsla(0,0%,80%,.5) 4.63%,hsla(0,0%,91%,.5) 84.83%);border-radius:inherit;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}.dnb-payment-card__blocking__overlay svg path{stroke:currentcolor}.dnb-payment-card__blocking__center{align-items:center;background:var(--color-black-80);border-radius:4px;color:var(--color-sand-yellow);display:flex;flex-direction:column;justify-content:center;padding:1rem}.dnb-payment-card__blocking svg{shape-rendering:geometricprecision}.dnb-payment-card.dnb-skeleton .dnb-payment-card__card__holder{opacity:1}.dnb-payment-card--compact .dnb-payment-card__card{border-radius:12px 12px 0 0;box-shadow:var(--shadow-default);height:32.8mm;padding:0}.dnb-payment-card--compact .dnb-payment-card__card__top{left:6mm;position:absolute;right:6mm;top:4mm}.dnb-payment-card--compact .dnb-payment-card__card__bottom{background-color:var(--color-white);bottom:0;height:14mm;left:0;position:absolute;right:0}.dnb-payment-card--compact .dnb-payment-card__card__wrapper{color:var(--color-black-80);padding:6px 22px}.dnb-payment-card--compact .dnb-payment-card__card__numbers{font-size:var(--font-size-basis)}.dnb-payment-card--compact .dnb-payment-card__card__credit-type{bottom:auto;right:4px;top:10px}.dnb-payment-card--compact .dnb-payment-card__blocking__center{align-items:center;background:rgba(0,0,0,.739);border-radius:inherit;display:flex;flex-direction:row;gap:var(--spacing-x-small);height:100%;justify-content:center;width:100%}.dnb-forms-field-number{--number-control-button-border-color:var(--color-sea-green);--number-control-button-border-color--hover:var(--color-emerald-green);--number-control-button-border-color--focus:var(--color-emerald-green);--number-control-button-background-color--hover:var(
2
2
  --color-mint-green-12
3
3
  );--number-control-button-color--hover:var(--color-emerald-green);--number-control-button-background-color--active:var(
4
4
  --color-mint-green-50
@@ -10,16 +10,26 @@
10
10
  /*
11
11
  * Utilities
12
12
  */
13
- .dnb-forms-field-array-selection--options-layout-vertical .dnb-forms-field-array-selection__options {
13
+ /*
14
+ * Utilities
15
+ */
16
+ .dnb-forms-field-array-selection--layout-vertical .dnb-forms-field-array-selection__options {
14
17
  display: flex;
15
18
  flex-flow: column;
16
19
  row-gap: var(--spacing-x-small);
17
20
  }
18
- .dnb-forms-field-array-selection--options-layout-horizontal .dnb-forms-field-array-selection__options {
21
+ .dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-array-selection__options {
19
22
  display: flex;
20
23
  flex-flow: row wrap;
21
24
  -moz-column-gap: var(--spacing-small);
22
25
  column-gap: var(--spacing-small);
26
+ row-gap: var(--spacing-x-small);
27
+ }
28
+ @media screen and (min-width: 40em) {
29
+ .dnb-forms-field-array-selection .dnb-forms-field-block--layout-horizontal .dnb-form-label {
30
+ line-height: 2.5rem;
31
+ margin-bottom: 0;
32
+ }
23
33
  }
24
34
 
25
35
  .dnb-forms-field-expiry .dnb-multi-input-mask {
@@ -325,15 +335,6 @@ fieldset.dnb-forms-field-block:not([class*=space__left]) {
325
335
  justify-content: space-between;
326
336
  align-items: center;
327
337
  }
328
- .dnb-forms-field-block__label-description {
329
- margin-left: 0.3em;
330
- color: var(--color-black-55);
331
- font-size: var(--font-size-small);
332
- }
333
- .dnb-forms-field-block__label-secondary {
334
- color: var(--color-black-55);
335
- font-size: var(--font-size-small);
336
- }
337
338
  .dnb-forms-field-block__status {
338
339
  grid-area: status;
339
340
  }
@@ -1,4 +1,4 @@
1
- .dnb-forms-field-array-selection--options-layout-vertical .dnb-forms-field-array-selection__options{display:flex;flex-flow:column;row-gap:var(--spacing-x-small)}.dnb-forms-field-array-selection--options-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}.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{align-items:center;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__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-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__fields{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row}.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}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__grid{display:grid}@media screen and (max-width:40em){.dnb-forms-field-block__grid{flex-wrap:wrap}.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:30em){.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__label-description,.dnb-forms-field-block__label-secondary{color:var(--color-black-55);font-size:var(--font-size-small)}.dnb-forms-field-block__status{grid-area:status}.dnb-forms-field-block__contents{grid-area:contents}.dnb-forms-field-block__contents--width-stretch{width:100%}@media screen and (min-width:30em){.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-button-row{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row}@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-forms-steps-layout{-moz-column-gap:var(--spacing-medium);column-gap:var(--spacing-medium);display:flex;flex-flow:row wrap}.dnb-forms-steps-layout__sidebar{flex:0}.dnb-forms-steps-layout__contents{flex:1 0 25rem}.dnb-forms-steps-layout__contents .dnb-card{--border-color:var(--color-pistachio)}@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}.dnb-forms-field-number{--number-control-button-border-color:var(--color-sea-green);--number-control-button-border-color--hover:var(--color-emerald-green);--number-control-button-border-color--focus:var(--color-emerald-green);--number-control-button-background-color--hover:var(
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{align-items:center;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__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-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__fields{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row}.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}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__grid{display:grid}@media screen and (max-width:40em){.dnb-forms-field-block__grid{flex-wrap:wrap}.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:30em){.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__status{grid-area:status}.dnb-forms-field-block__contents{grid-area:contents}.dnb-forms-field-block__contents--width-stretch{width:100%}@media screen and (min-width:30em){.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-button-row{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row}@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-forms-steps-layout{-moz-column-gap:var(--spacing-medium);column-gap:var(--spacing-medium);display:flex;flex-flow:row wrap}.dnb-forms-steps-layout__sidebar{flex:0}.dnb-forms-steps-layout__contents{flex:1 0 25rem}.dnb-forms-steps-layout__contents .dnb-card{--border-color:var(--color-pistachio)}@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}.dnb-forms-field-number{--number-control-button-border-color:var(--color-sea-green);--number-control-button-border-color--hover:var(--color-emerald-green);--number-control-button-border-color--focus:var(--color-emerald-green);--number-control-button-background-color--hover:var(
2
2
  --color-mint-green-12
3
3
  );--number-control-button-color--hover:var(--color-emerald-green);--number-control-button-background-color--active:var(
4
4
  --color-mint-green-50
@@ -58,6 +58,7 @@ function FlexContainer(props) {
58
58
  queries
59
59
  });
60
60
  const content = childrenArray.map((child, i) => {
61
+ var _previousChild$type;
61
62
  const isFirst = i === 0;
62
63
  const previousChild = childrenArray === null || childrenArray === void 0 ? void 0 : childrenArray[i - 1];
63
64
  const start = direction === 'horizontal' ? 'left' : 'top';
@@ -89,6 +90,9 @@ function FlexContainer(props) {
89
90
  var _ref2, _getSpaceValue3;
90
91
  startSpacing = (_ref2 = (_getSpaceValue3 = getSpaceValue(start, child)) !== null && _getSpaceValue3 !== void 0 ? _getSpaceValue3 : getSpaceValue(end, previousChild)) !== null && _ref2 !== void 0 ? _ref2 : spacing;
91
92
  }
93
+ if (React.isValidElement(previousChild) && (previousChild === null || previousChild === void 0 ? void 0 : (_previousChild$type = previousChild.type) === null || _previousChild$type === void 0 ? void 0 : _previousChild$type['_supportsSpacingProps']) === false) {
94
+ startSpacing = 0;
95
+ }
92
96
  const space = direction === 'horizontal' ? {
93
97
  [start]: endSpacing,
94
98
  [end]: startSpacing
@@ -1 +1 @@
1
- {"version":3,"file":"Container.js","names":["React","classnames","Space","Hr","useMedia","getSpaceValue","isHeadingElement","renderWithSpacing","propNames","pickFlexContainerProps","props","defaults","arguments","length","undefined","skip","_objectSpread","Object","fromEntries","entries","filter","_ref","key","includes","FlexContainer","className","style","children","element","direction","wrap","sizeCount","rowGap","justify","align","alignSelf","divider","spacing","breakpoints","queries","rest","_objectWithoutProperties","_excluded","childrenArray","wrapChildren","hasHeading","some","child","i","previousChild","hasSizeProp","_child$props","size","mediaKey","disabled","content","map","isFirst","start","end","endSpacing","startSpacing","isHeading","_getSpaceValue","_getSpaceValue2","spaceAboveLine","createElement","Fragment","top","_Hr","space","_ref2","_getSpaceValue3","n","cn","_extends","Children","toArray","isValidElement","type","cloneElement","_supportsSpacingProps"],"sources":["../../../../src/components/flex/Container.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport Space, { SpaceProps } from '../space/Space'\nimport { Hr } from '../../elements'\nimport useMedia from '../../shared/useMedia'\nimport {\n getSpaceValue,\n isHeadingElement,\n renderWithSpacing,\n} from './utils'\n\nimport type { MediaQueryBreakpoints } from '../../shared/MediaQueryUtils'\nimport type { SpaceType } from '../space/types'\nimport type { UseMediaQueries } from '../../shared/useMedia'\nimport type { End, Start } from './types'\n\nexport type BasicProps = {\n direction?: 'horizontal' | 'vertical'\n wrap?: boolean\n rowGap?: 'small' | 'medium' | 'large' | true\n sizeCount?: number\n justify?:\n | 'flex-start'\n | 'flex-end'\n | 'center'\n | 'space-between'\n | 'space-around'\n | 'space-evenly'\n align?: 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline'\n // For when used as a flex item in an outer container in addition to being a container:\n alignSelf?: 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch'\n divider?: 'space' | 'line'\n /** Spacing between items inside */\n spacing?:\n | false\n | 'xx-small'\n | 'x-small'\n | 'small'\n | 'medium'\n | 'large'\n | 'x-large'\n | 'xx-large'\n breakpoints?: MediaQueryBreakpoints\n queries?: UseMediaQueries\n}\n\nexport type Props = BasicProps &\n SpaceProps &\n Omit<React.HTMLProps<HTMLElement>, 'ref' | 'wrap'>\n\nconst propNames: Array<keyof Props> = [\n 'direction',\n 'wrap',\n 'justify',\n 'align',\n 'divider',\n 'spacing',\n]\n\nexport function pickFlexContainerProps<T extends Props>(\n props: T,\n defaults: Partial<Props> = {},\n skip: Array<keyof Props> = []\n): Omit<Props, 'children'> {\n return {\n ...defaults,\n ...Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) =>\n propNames.includes(key as keyof Props) &&\n !skip.includes(key as keyof Props)\n )\n ),\n }\n}\n\nfunction FlexContainer(props: Props) {\n const {\n className,\n style,\n children,\n element = 'div',\n direction = 'horizontal',\n wrap = true,\n sizeCount = 12,\n rowGap,\n justify = 'flex-start',\n align = 'flex-start',\n alignSelf,\n divider = 'space',\n spacing = 'small',\n breakpoints,\n queries,\n ...rest\n } = props\n\n const childrenArray = wrapChildren(props, children)\n const hasHeading = childrenArray.some((child, i) => {\n const previousChild = childrenArray?.[i - 1]\n return (\n isHeadingElement(child) || (i > 0 && isHeadingElement(previousChild))\n )\n })\n const hasSizeProp =\n !hasHeading &&\n direction === 'horizontal' &&\n childrenArray.some((child) => child['props']?.size)\n\n const { key: mediaKey } = useMedia({\n disabled: !hasSizeProp,\n breakpoints,\n queries,\n })\n\n const content = childrenArray.map((child, i) => {\n // Set spacing on child components by props (instead of CSS) to be able to dynamically override by props on each child. The default\n // is the spacing-props that controls space between children. Then override with props sent to the children, including both top\n // and bottom when th\n const isFirst = i === 0\n const previousChild = childrenArray?.[i - 1]\n\n // Always set spacing between elements in the vertical layout on the top props, and 0 on bottom, to avoid\n // having to divide spacing between both with smaller values.\n const start: Start = direction === 'horizontal' ? 'left' : 'top'\n const end: End = direction === 'horizontal' ? 'right' : 'bottom'\n // const start: Start | End = direction === 'horizontal' ? 'right' : 'top'\n // const end: Start | End = direction === 'horizontal' ? 'left' : 'bottom'\n const endSpacing = 0\n let startSpacing = null\n\n const isHeading = hasHeading && isHeadingElement(previousChild)\n if (\n divider === 'line' &&\n // No line above first element\n !isFirst &&\n // No line above heading\n !isHeading\n ) {\n const spaceAboveLine = getSpaceValue(end, previousChild) ?? spacing\n startSpacing = (getSpaceValue(start, child) ?? spacing) as SpaceType\n\n return (\n <React.Fragment key={`element-${i}`}>\n <Space top={spaceAboveLine} />\n <Hr space={0} className=\"dnb-flex-container__hr\" />\n {renderWithSpacing(child, {\n space: { [start]: startSpacing, [end]: endSpacing },\n })}\n </React.Fragment>\n )\n }\n\n // No space above first element.\n if (isFirst && direction !== 'horizontal') {\n startSpacing = 0\n } else {\n // Since top space of current and bottom space of previous component is the same\n startSpacing =\n getSpaceValue(start, child) ??\n getSpaceValue(end, previousChild) ??\n spacing\n }\n\n const space =\n direction === 'horizontal'\n ? { [start]: endSpacing, [end]: startSpacing }\n : { [start]: startSpacing, [end]: endSpacing }\n\n return renderWithSpacing(child, {\n key: `element-${i}`,\n space,\n })\n })\n\n const n = 'dnb-flex-container'\n const cn = classnames(\n 'dnb-flex-container',\n direction && `${n}--direction-${direction}`,\n justify && `${n}--justify-${justify}`,\n align && `${n}--align-${align}`,\n alignSelf && `${n}--align-self-${alignSelf}`,\n spacing && `${n}--spacing-${spacing}`,\n wrap && `${n}--wrap`,\n rowGap && `${n}--row-gap-${rowGap === true ? 'small' : rowGap}`,\n hasSizeProp && `${n}--has-size`,\n divider && `${n}--divider-${divider}`,\n className\n )\n\n return (\n <Space\n element={element}\n className={cn}\n data-media-key={mediaKey}\n style={\n hasSizeProp\n ? ({ '--sizeCount': sizeCount, ...style } as React.CSSProperties)\n : style\n }\n {...rest}\n >\n {content}\n </Space>\n )\n}\n\nfunction wrapChildren(props: Props, children: React.ReactNode) {\n return React.Children.toArray(children).map((child) => {\n if (\n React.isValidElement(child) &&\n child.type['_supportsSpacingProps'] === 'children'\n ) {\n return React.cloneElement(\n child,\n child.props,\n <FlexContainer {...props}>{child.props.children}</FlexContainer>\n )\n }\n\n return child\n })\n}\n\nFlexContainer._supportsSpacingProps = true\n\nexport default FlexContainer\n"],"mappings":"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"}
1
+ {"version":3,"file":"Container.js","names":["React","classnames","Space","Hr","useMedia","getSpaceValue","isHeadingElement","renderWithSpacing","propNames","pickFlexContainerProps","props","defaults","arguments","length","undefined","skip","_objectSpread","Object","fromEntries","entries","filter","_ref","key","includes","FlexContainer","className","style","children","element","direction","wrap","sizeCount","rowGap","justify","align","alignSelf","divider","spacing","breakpoints","queries","rest","_objectWithoutProperties","_excluded","childrenArray","wrapChildren","hasHeading","some","child","i","previousChild","hasSizeProp","_child$props","size","mediaKey","disabled","content","map","_previousChild$type","isFirst","start","end","endSpacing","startSpacing","isHeading","_getSpaceValue","_getSpaceValue2","spaceAboveLine","createElement","Fragment","top","_Hr","space","_ref2","_getSpaceValue3","isValidElement","type","n","cn","_extends","Children","toArray","cloneElement","_supportsSpacingProps"],"sources":["../../../../src/components/flex/Container.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport Space, { SpaceProps } from '../space/Space'\nimport { Hr } from '../../elements'\nimport useMedia from '../../shared/useMedia'\nimport {\n getSpaceValue,\n isHeadingElement,\n renderWithSpacing,\n} from './utils'\n\nimport type { MediaQueryBreakpoints } from '../../shared/MediaQueryUtils'\nimport type { SpaceType } from '../space/types'\nimport type { UseMediaQueries } from '../../shared/useMedia'\nimport type { End, Start } from './types'\n\nexport type BasicProps = {\n direction?: 'horizontal' | 'vertical'\n wrap?: boolean\n rowGap?: 'small' | 'medium' | 'large' | true\n sizeCount?: number\n justify?:\n | 'flex-start'\n | 'flex-end'\n | 'center'\n | 'space-between'\n | 'space-around'\n | 'space-evenly'\n align?: 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline'\n // For when used as a flex item in an outer container in addition to being a container:\n alignSelf?: 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch'\n divider?: 'space' | 'line'\n /** Spacing between items inside */\n spacing?:\n | false\n | 'xx-small'\n | 'x-small'\n | 'small'\n | 'medium'\n | 'large'\n | 'x-large'\n | 'xx-large'\n breakpoints?: MediaQueryBreakpoints\n queries?: UseMediaQueries\n}\n\nexport type Props = BasicProps &\n SpaceProps &\n Omit<React.HTMLProps<HTMLElement>, 'ref' | 'wrap'>\n\nconst propNames: Array<keyof Props> = [\n 'direction',\n 'wrap',\n 'justify',\n 'align',\n 'divider',\n 'spacing',\n]\n\nexport function pickFlexContainerProps<T extends Props>(\n props: T,\n defaults: Partial<Props> = {},\n skip: Array<keyof Props> = []\n): Omit<Props, 'children'> {\n return {\n ...defaults,\n ...Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) =>\n propNames.includes(key as keyof Props) &&\n !skip.includes(key as keyof Props)\n )\n ),\n }\n}\n\nfunction FlexContainer(props: Props) {\n const {\n className,\n style,\n children,\n element = 'div',\n direction = 'horizontal',\n wrap = true,\n sizeCount = 12,\n rowGap,\n justify = 'flex-start',\n align = 'flex-start',\n alignSelf,\n divider = 'space',\n spacing = 'small',\n breakpoints,\n queries,\n ...rest\n } = props\n\n const childrenArray = wrapChildren(props, children)\n const hasHeading = childrenArray.some((child, i) => {\n const previousChild = childrenArray?.[i - 1]\n return (\n isHeadingElement(child) || (i > 0 && isHeadingElement(previousChild))\n )\n })\n const hasSizeProp =\n !hasHeading &&\n direction === 'horizontal' &&\n childrenArray.some((child) => child['props']?.size)\n\n const { key: mediaKey } = useMedia({\n disabled: !hasSizeProp,\n breakpoints,\n queries,\n })\n\n const content = childrenArray.map((child, i) => {\n // Set spacing on child components by props (instead of CSS) to be able to dynamically override by props on each child. The default\n // is the spacing-props that controls space between children. Then override with props sent to the children, including both top\n // and bottom when th\n const isFirst = i === 0\n const previousChild = childrenArray?.[i - 1]\n\n // Always set spacing between elements in the vertical layout on the top props, and 0 on bottom, to avoid\n // having to divide spacing between both with smaller values.\n const start: Start = direction === 'horizontal' ? 'left' : 'top'\n const end: End = direction === 'horizontal' ? 'right' : 'bottom'\n // const start: Start | End = direction === 'horizontal' ? 'right' : 'top'\n // const end: Start | End = direction === 'horizontal' ? 'left' : 'bottom'\n const endSpacing = 0\n let startSpacing = null\n\n const isHeading = hasHeading && isHeadingElement(previousChild)\n if (\n divider === 'line' &&\n // No line above first element\n !isFirst &&\n // No line above heading\n !isHeading\n ) {\n const spaceAboveLine = getSpaceValue(end, previousChild) ?? spacing\n startSpacing = (getSpaceValue(start, child) ?? spacing) as SpaceType\n\n return (\n <React.Fragment key={`element-${i}`}>\n <Space top={spaceAboveLine} />\n <Hr space={0} className=\"dnb-flex-container__hr\" />\n {renderWithSpacing(child, {\n space: { [start]: startSpacing, [end]: endSpacing },\n })}\n </React.Fragment>\n )\n }\n\n // No space above first element.\n if (isFirst && direction !== 'horizontal') {\n startSpacing = 0\n } else {\n // Since top space of current and bottom space of previous component is the same\n startSpacing =\n getSpaceValue(start, child) ??\n getSpaceValue(end, previousChild) ??\n spacing\n }\n\n if (\n React.isValidElement(previousChild) &&\n previousChild?.type?.['_supportsSpacingProps'] === false\n ) {\n startSpacing = 0\n }\n\n const space =\n direction === 'horizontal'\n ? { [start]: endSpacing, [end]: startSpacing }\n : { [start]: startSpacing, [end]: endSpacing }\n\n return renderWithSpacing(child, {\n key: `element-${i}`,\n space,\n })\n })\n\n const n = 'dnb-flex-container'\n const cn = classnames(\n 'dnb-flex-container',\n direction && `${n}--direction-${direction}`,\n justify && `${n}--justify-${justify}`,\n align && `${n}--align-${align}`,\n alignSelf && `${n}--align-self-${alignSelf}`,\n spacing && `${n}--spacing-${spacing}`,\n wrap && `${n}--wrap`,\n rowGap && `${n}--row-gap-${rowGap === true ? 'small' : rowGap}`,\n hasSizeProp && `${n}--has-size`,\n divider && `${n}--divider-${divider}`,\n className\n )\n\n return (\n <Space\n element={element}\n className={cn}\n data-media-key={mediaKey}\n style={\n hasSizeProp\n ? ({ '--sizeCount': sizeCount, ...style } as React.CSSProperties)\n : style\n }\n {...rest}\n >\n {content}\n </Space>\n )\n}\n\nfunction wrapChildren(props: Props, children: React.ReactNode) {\n return React.Children.toArray(children).map((child) => {\n if (\n React.isValidElement(child) &&\n child.type['_supportsSpacingProps'] === 'children'\n ) {\n return React.cloneElement(\n child,\n child.props,\n <FlexContainer {...props}>{child.props.children}</FlexContainer>\n )\n }\n\n return child\n })\n}\n\nFlexContainer._supportsSpacingProps = true\n\nexport default FlexContainer\n"],"mappings":"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"}
@@ -15,4 +15,4 @@ export declare const isSpacePropsComponent: (element: React.ReactNode) => boolea
15
15
  export declare const renderWithSpacing: (element: React.ReactNode, props: SpacingProps & {
16
16
  key?: string;
17
17
  className?: string;
18
- }) => import("react/jsx-runtime").JSX.Element;
18
+ }) => string | number | boolean | import("react/jsx-runtime").JSX.Element | Iterable<React.ReactNode>;
@@ -28,10 +28,20 @@ export const isEufemiaElement = element => {
28
28
  };
29
29
  export const isSpacePropsComponent = element => {
30
30
  var _element$type2;
31
- return React.isValidElement(element) && (element === null || element === void 0 ? void 0 : (_element$type2 = element.type) === null || _element$type2 === void 0 ? void 0 : _element$type2['_supportsSpacingProps']) === true || isEufemiaElement(element);
31
+ if (React.isValidElement(element) && typeof (element === null || element === void 0 ? void 0 : (_element$type2 = element.type) === null || _element$type2 === void 0 ? void 0 : _element$type2['_supportsSpacingProps']) === 'boolean') {
32
+ var _element$type3;
33
+ return element === null || element === void 0 ? void 0 : (_element$type3 = element.type) === null || _element$type3 === void 0 ? void 0 : _element$type3['_supportsSpacingProps'];
34
+ }
35
+ if (isEufemiaElement(element)) {
36
+ return true;
37
+ }
38
+ return undefined;
32
39
  };
33
40
  export const renderWithSpacing = (element, props) => {
34
41
  const takesSpaceProps = isSpacePropsComponent(element);
42
+ if (takesSpaceProps === false) {
43
+ return element;
44
+ }
35
45
  return takesSpaceProps ? React.cloneElement(element, props) : React.createElement(Space, props, element);
36
46
  };
37
47
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["React","Space","removeSpaceProps","EufemiaElements","pickSpacingProps","props","space","top","bottom","left","right","omitSpacingProps","getSpaceValue","type","element","_element$props$type","_element$props","_element$props2","isValidElement","undefined","isHeadingElement","_element$type","isEufemiaElement","Object","values","some","eufemiaElement","isSpacePropsComponent","_element$type2","renderWithSpacing","takesSpaceProps","cloneElement","createElement"],"sources":["../../../../src/components/flex/utils.tsx"],"sourcesContent":["import React from 'react'\nimport { SpaceType, SpacingProps } from '../../shared/types'\nimport Space from '../space/Space'\nimport { removeSpaceProps } from '../space/SpacingUtils'\nimport * as EufemiaElements from '../../elements'\nimport { End, Start } from './types'\n\nexport const pickSpacingProps = <Props extends SpacingProps>(\n props: Props\n): SpacingProps => {\n return {\n space: props?.space,\n top: props?.top,\n bottom: props?.bottom,\n left: props?.left,\n right: props?.right,\n }\n}\n\nexport const omitSpacingProps = removeSpaceProps\n\nexport const getSpaceValue = (\n type: Start | End,\n element: React.ReactChild | React.ReactFragment | React.ReactPortal\n): SpaceType | undefined => {\n if (!React.isValidElement(element)) {\n return\n }\n\n return (\n element.props?.[type] ??\n (typeof element.props?.space === 'object'\n ? element.props.space[type]\n : undefined)\n )\n}\n\nexport function isHeadingElement(\n element: React.ReactNode & { _isHeadingElement?: boolean }\n): boolean {\n return (\n React.isValidElement(element) &&\n element?.type?.['_isHeadingElement'] === true\n )\n}\n\nexport const isEufemiaElement = (element): boolean => {\n return Object.values(EufemiaElements).some(\n (eufemiaElement) => element?.type === eufemiaElement\n )\n}\n\n/**\n * Is the requested element a component that can receive Eufemia space props (space, top, bottom, left and right)?\n */\nexport const isSpacePropsComponent = (\n element: React.ReactNode\n): boolean => {\n return (\n (React.isValidElement(element) &&\n element?.type?.['_supportsSpacingProps'] === true) ||\n isEufemiaElement(element)\n )\n}\n\nexport const renderWithSpacing = (\n element: React.ReactNode,\n props: SpacingProps & { key?: string; className?: string }\n) => {\n const takesSpaceProps = isSpacePropsComponent(element)\n\n return takesSpaceProps ? (\n React.cloneElement(element as React.ReactElement<unknown>, props)\n ) : (\n <Space {...props}>{element}</Space>\n )\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,OAAOC,KAAK,MAAM,gBAAgB;AAClC,SAASC,gBAAgB,QAAQ,uBAAuB;AACxD,OAAO,KAAKC,eAAe,MAAM,gBAAgB;AAGjD,OAAO,MAAMC,gBAAgB,GAC3BC,KAAY,IACK;EACjB,OAAO;IACLC,KAAK,EAAED,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEC,KAAK;IACnBC,GAAG,EAAEF,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEE,GAAG;IACfC,MAAM,EAAEH,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEG,MAAM;IACrBC,IAAI,EAAEJ,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEI,IAAI;IACjBC,KAAK,EAAEL,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEK;EAChB,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAGT,gBAAgB;AAEhD,OAAO,MAAMU,aAAa,GAAGA,CAC3BC,IAAiB,EACjBC,OAAmE,KACzC;EAAA,IAAAC,mBAAA,EAAAC,cAAA,EAAAC,eAAA;EAC1B,IAAI,CAACjB,KAAK,CAACkB,cAAc,CAACJ,OAAO,CAAC,EAAE;IAClC;EACF;EAEA,QAAAC,mBAAA,IAAAC,cAAA,GACEF,OAAO,CAACT,KAAK,cAAAW,cAAA,uBAAbA,cAAA,CAAgBH,IAAI,CAAC,cAAAE,mBAAA,cAAAA,mBAAA,GACpB,SAAAE,eAAA,GAAOH,OAAO,CAACT,KAAK,cAAAY,eAAA,uBAAbA,eAAA,CAAeX,KAAK,MAAK,QAAQ,GACrCQ,OAAO,CAACT,KAAK,CAACC,KAAK,CAACO,IAAI,CAAC,GACzBM,SAAS;AAEjB,CAAC;AAED,OAAO,SAASC,gBAAgBA,CAC9BN,OAA0D,EACjD;EAAA,IAAAO,aAAA;EACT,OACErB,KAAK,CAACkB,cAAc,CAACJ,OAAO,CAAC,IAC7B,CAAAA,OAAO,aAAPA,OAAO,wBAAAO,aAAA,GAAPP,OAAO,CAAED,IAAI,cAAAQ,aAAA,uBAAbA,aAAA,CAAgB,mBAAmB,CAAC,MAAK,IAAI;AAEjD;AAEA,OAAO,MAAMC,gBAAgB,GAAIR,OAAO,IAAc;EACpD,OAAOS,MAAM,CAACC,MAAM,CAACrB,eAAe,CAAC,CAACsB,IAAI,CACvCC,cAAc,IAAK,CAAAZ,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAED,IAAI,MAAKa,cACxC,CAAC;AACH,CAAC;AAKD,OAAO,MAAMC,qBAAqB,GAChCb,OAAwB,IACZ;EAAA,IAAAc,cAAA;EACZ,OACG5B,KAAK,CAACkB,cAAc,CAACJ,OAAO,CAAC,IAC5B,CAAAA,OAAO,aAAPA,OAAO,wBAAAc,cAAA,GAAPd,OAAO,CAAED,IAAI,cAAAe,cAAA,uBAAbA,cAAA,CAAgB,uBAAuB,CAAC,MAAK,IAAI,IACnDN,gBAAgB,CAACR,OAAO,CAAC;AAE7B,CAAC;AAED,OAAO,MAAMe,iBAAiB,GAAGA,CAC/Bf,OAAwB,EACxBT,KAA0D,KACvD;EACH,MAAMyB,eAAe,GAAGH,qBAAqB,CAACb,OAAO,CAAC;EAEtD,OAAOgB,eAAe,GACpB9B,KAAK,CAAC+B,YAAY,CAACjB,OAAO,EAAiCT,KAAK,CAAC,GAEjEL,KAAA,CAAAgC,aAAA,CAAC/B,KAAK,EAAKI,KAAK,EAAGS,OAAe,CACnC;AACH,CAAC"}
1
+ {"version":3,"file":"utils.js","names":["React","Space","removeSpaceProps","EufemiaElements","pickSpacingProps","props","space","top","bottom","left","right","omitSpacingProps","getSpaceValue","type","element","_element$props$type","_element$props","_element$props2","isValidElement","undefined","isHeadingElement","_element$type","isEufemiaElement","Object","values","some","eufemiaElement","isSpacePropsComponent","_element$type2","_element$type3","renderWithSpacing","takesSpaceProps","cloneElement","createElement"],"sources":["../../../../src/components/flex/utils.tsx"],"sourcesContent":["import React from 'react'\nimport { SpaceType, SpacingProps } from '../../shared/types'\nimport Space from '../space/Space'\nimport { removeSpaceProps } from '../space/SpacingUtils'\nimport * as EufemiaElements from '../../elements'\nimport { End, Start } from './types'\n\nexport const pickSpacingProps = <Props extends SpacingProps>(\n props: Props\n): SpacingProps => {\n return {\n space: props?.space,\n top: props?.top,\n bottom: props?.bottom,\n left: props?.left,\n right: props?.right,\n }\n}\n\nexport const omitSpacingProps = removeSpaceProps\n\nexport const getSpaceValue = (\n type: Start | End,\n element: React.ReactChild | React.ReactFragment | React.ReactPortal\n): SpaceType | undefined => {\n if (!React.isValidElement(element)) {\n return\n }\n\n return (\n element.props?.[type] ??\n (typeof element.props?.space === 'object'\n ? element.props.space[type]\n : undefined)\n )\n}\n\nexport function isHeadingElement(\n element: React.ReactNode & { _isHeadingElement?: boolean }\n): boolean {\n return (\n React.isValidElement(element) &&\n element?.type?.['_isHeadingElement'] === true\n )\n}\n\nexport const isEufemiaElement = (element): boolean => {\n return Object.values(EufemiaElements).some(\n (eufemiaElement) => element?.type === eufemiaElement\n )\n}\n\n/**\n * Is the requested element a component that can receive Eufemia space props (space, top, bottom, left and right)?\n */\nexport const isSpacePropsComponent = (\n element: React.ReactNode\n): boolean => {\n if (\n React.isValidElement(element) &&\n typeof element?.type?.['_supportsSpacingProps'] === 'boolean'\n ) {\n return element?.type?.['_supportsSpacingProps']\n }\n\n if (isEufemiaElement(element)) {\n return true\n }\n\n return undefined\n}\n\nexport const renderWithSpacing = (\n element: React.ReactNode,\n props: SpacingProps & { key?: string; className?: string }\n) => {\n const takesSpaceProps = isSpacePropsComponent(element)\n\n if (takesSpaceProps === false) {\n return element\n }\n\n return takesSpaceProps ? (\n React.cloneElement(element as React.ReactElement<unknown>, props)\n ) : (\n <Space {...props}>{element}</Space>\n )\n}\n"],"mappings":"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"}
@@ -47,6 +47,14 @@ export type MultiInputMaskProps<T extends string> = {
47
47
  * Runs when the input value changes. Has an object parameter with keys matching the id's defined in `inputs`. i.e. `{month: string, year: string}`
48
48
  */
49
49
  onChange?: (values: MultiInputMaskValue<T>) => void;
50
+ /**
51
+ * Runs when the input gains focus. Has an object parameter with keys matching the id's defined in `inputs`. i.e. `{month: string, year: string}`
52
+ */
53
+ onFocus?: (values: MultiInputMaskValue<T>) => void;
54
+ /**
55
+ * Runs when the input loses focus. Has an object parameter with keys matching the id's defined in `inputs`. i.e. `{month: string, year: string}`
56
+ */
57
+ onBlur?: (values: MultiInputMaskValue<T>) => void;
50
58
  /**
51
59
  * Text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message.
52
60
  */
@@ -63,8 +71,8 @@ export type MultiInputMaskProps<T extends string> = {
63
71
  * Text describing the content of the input more than the label. you can also send in a React component, so it gets wrapped inside the Input component.
64
72
  */
65
73
  suffix?: React.ReactNode;
66
- } & Omit<React.HTMLProps<HTMLInputElement>, 'onChange' | 'ref' | 'value' | 'label'> & SpacingProps;
67
- declare function MultiInputMask<T extends string>({ label, labelDirection, inputs, delimiter, onChange: onChangeExternal, disabled, status, statusState, values: defaultValues, className, stretch, inputMode, suffix, ...props }: MultiInputMaskProps<T>): import("react/jsx-runtime").JSX.Element;
74
+ } & Omit<React.HTMLProps<HTMLInputElement>, 'onChange' | 'onFocus' | 'onBlur' | 'ref' | 'value' | 'label'> & SpacingProps;
75
+ declare function MultiInputMask<T extends string>({ label, labelDirection, inputs, delimiter, onChange: onChangeExternal, disabled, status, statusState, values: defaultValues, className, stretch, inputMode, suffix, onBlur, onFocus, ...props }: MultiInputMaskProps<T>): import("react/jsx-runtime").JSX.Element;
68
76
  declare namespace MultiInputMask {
69
77
  var _formElement: boolean;
70
78
  var _supportsSpacingProps: boolean;
@@ -1,9 +1,13 @@
1
1
  "use client";
2
2
 
3
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
4
  import _extends from "@babel/runtime/helpers/esm/extends";
4
5
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
- const _excluded = ["label", "labelDirection", "inputs", "delimiter", "onChange", "disabled", "status", "statusState", "values", "className", "stretch", "inputMode", "suffix"],
6
- _excluded2 = ["id", "label", "value", "mask", "placeholderCharacter", "delimiter", "disabled", "inputRef", "onKeyDown", "onChange"];
6
+ const _excluded = ["label", "labelDirection", "inputs", "delimiter", "onChange", "disabled", "status", "statusState", "values", "className", "stretch", "inputMode", "suffix", "onBlur", "onFocus"],
7
+ _excluded2 = ["id", "label", "value", "mask", "placeholderCharacter", "delimiter", "disabled", "inputRef", "onKeyDown", "onChange", "onBlur", "onFocus"],
8
+ _excluded3 = ["target"];
9
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
10
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
11
  import React, { useRef } from 'react';
8
12
  import Input from '../Input';
9
13
  import TextMask from './TextMask';
@@ -27,7 +31,9 @@ function MultiInputMask(_ref) {
27
31
  className,
28
32
  stretch,
29
33
  inputMode,
30
- suffix
34
+ suffix,
35
+ onBlur,
36
+ onFocus
31
37
  } = _ref,
32
38
  props = _objectWithoutProperties(_ref, _excluded);
33
39
  const [values, onChange] = useMultiInputValue({
@@ -63,6 +69,16 @@ function MultiInputMask(_ref) {
63
69
  delimiter: index !== inputs.length - 1 ? delimiter : undefined,
64
70
  onKeyDown: onKeyDown,
65
71
  onChange: onChange,
72
+ onFocus: () => {
73
+ if (onFocus) {
74
+ onFocus(values);
75
+ }
76
+ },
77
+ onBlur: () => {
78
+ if (onBlur) {
79
+ onBlur(values);
80
+ }
81
+ },
66
82
  disabled: disabled,
67
83
  inputRef: getInputRef
68
84
  })))
@@ -115,14 +131,17 @@ function MultiInputMaskInput(_ref3) {
115
131
  disabled,
116
132
  inputRef,
117
133
  onKeyDown,
118
- onChange
134
+ onChange,
135
+ onBlur,
136
+ onFocus
119
137
  } = _ref3,
120
138
  attributes = _objectWithoutProperties(_ref3, _excluded2);
139
+ const shouldHighlight = !disabled && /\w+/.test(value);
121
140
  const markupId = `${id}-${makeUniqueId()}`;
122
141
  return React.createElement(React.Fragment, null, React.createElement(TextMask, _extends({
123
142
  id: `${markupId}__input`,
124
143
  "data-mask-id": id,
125
- className: "dnb-input__input dnb-multi-input-mask__input" + (/\d+/.test(value) ? " dnb-multi-input-mask__input--highlight" : ""),
144
+ className: "dnb-input__input dnb-multi-input-mask__input" + (shouldHighlight ? " dnb-multi-input-mask__input--highlight" : ""),
126
145
  disabled: disabled,
127
146
  size: mask.length,
128
147
  mask: mask,
@@ -134,7 +153,20 @@ function MultiInputMaskInput(_ref3) {
134
153
  "aria-labelledby": `${markupId}__label`,
135
154
  ref: inputRef,
136
155
  onKeyDown: onKeyDown,
137
- onFocus: onFocus,
156
+ onBlur: onBlur,
157
+ onFocus: _ref4 => {
158
+ let {
159
+ target
160
+ } = _ref4,
161
+ event = _objectWithoutProperties(_ref4, _excluded3);
162
+ target.focus();
163
+ target.select();
164
+ if (onFocus) {
165
+ onFocus(_objectSpread({
166
+ target
167
+ }, event));
168
+ }
169
+ },
138
170
  onChange: event => {
139
171
  onChange(id, removePlaceholder(event.target.value, placeholderCharacter));
140
172
  }
@@ -144,18 +176,11 @@ function MultiInputMaskInput(_ref3) {
144
176
  hidden: true
145
177
  }, label), delimiter && React.createElement("span", {
146
178
  "aria-hidden": true,
147
- className: 'dnb-multi-input-mask__delimiter' + (value ? " dnb-multi-input-mask__delimiter--highlight" : "")
179
+ className: 'dnb-multi-input-mask__delimiter' + (shouldHighlight ? " dnb-multi-input-mask__delimiter--highlight" : "")
148
180
  }, delimiter));
149
181
  function removePlaceholder(value, placeholder) {
150
182
  return value.replace(RegExp(placeholder, 'gm'), '');
151
183
  }
152
- function onFocus(_ref4) {
153
- let {
154
- target
155
- } = _ref4;
156
- target.focus();
157
- target.select();
158
- }
159
184
  }
160
185
  export default MultiInputMask;
161
186
  MultiInputMask._formElement = true;
@@ -1 +1 @@
1
- {"version":3,"file":"MultiInputMask.js","names":["React","useRef","Input","TextMask","useHandleCursorPosition","classnames","FormLabel","createSpacingClasses","useMultiInputValue","makeUniqueId","MultiInputMask","_ref","label","labelDirection","inputs","delimiter","onChange","onChangeExternal","disabled","status","statusState","values","defaultValues","className","stretch","inputMode","suffix","props","_objectWithoutProperties","_excluded","callback","inputRefs","onKeyDown","current","getKeysToHandle","WrapperElement","createElement","element","onClick","onLegendClick","vertical","_extends","status_state","input_element","map","input","index","MultiInputMaskInput","key","id","value","length","undefined","inputRef","getInputRef","firstInput","focus","setSelectionRange","ref","includes","push","uniqueMasks","getUniqueMasks","size","pattern","next","replace","RegExp","reduce","keys","_ref2","mask","masks","Set","forEach","add","String","_ref3","placeholderCharacter","attributes","_excluded2","markupId","Fragment","test","placeholderChar","guide","showMask","keepCharPositions","onFocus","event","removePlaceholder","target","htmlFor","hidden","placeholder","_ref4","select","_formElement","_supportsSpacingProps"],"sources":["../../../../src/components/input-masked/MultiInputMask.tsx"],"sourcesContent":["import React, { Fragment, MutableRefObject, useRef } from 'react'\nimport Input from '../Input'\nimport TextMask from './TextMask'\nimport useHandleCursorPosition from './hooks/useHandleCursorPosition'\nimport classnames from 'classnames'\nimport FormLabel from '../FormLabel'\nimport { SpacingProps } from '../space/types'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport { FormStatusState, FormStatusText } from '../FormStatus'\nimport { useMultiInputValue } from './hooks/useMultiInputValues'\nimport { makeUniqueId } from '../../shared/component-helper'\n\nexport type MultiInputMaskInput<T extends string> = {\n /**\n * Defines the id for the input. This id is also used to map the input value to the correct property on the objects used for `values` and `onChange` parameters.\n */\n id: T\n /**\n * Label used by the input. The label itself is hidden, but required to uphold accessibility standards for screen readers.\n */\n label: React.ReactNode\n /**\n * Each RegExp item in the array defines what the mask should be for each subsequent character in the input. The length sets the size of the input, so an array of two items would produce an input of two characters\n */\n mask: RegExp[]\n /**\n * Sets the placeholder character used for the input.\n */\n placeholderCharacter: string\n} & Omit<React.HTMLProps<HTMLInputElement>, 'onChange' | 'ref'>\n\nexport type MultiInputMaskValue<T extends string> = {\n // eslint-disable-next-line no-unused-vars\n [K in T]: string\n}\n\nexport type MultiInputMaskProps<T extends string> = {\n /**\n * The label describing the group of inputs inside the components.\n */\n label?: React.ReactNode\n /**\n * Use to change the label layout direction. Defaults to `horizontal`.\n */\n labelDirection?: 'vertical' | 'horizontal'\n /**\n * Used to define the different inputs representing the inputs in the component. The id's defined here is used to map input value to correct property in `values` parameters used in `onChange`\n */\n inputs: MultiInputMaskInput<T>[]\n /**\n * Values used for the inputs inside the component. Expects an object with keys matching the id's defined in `inputs`\n */\n values?: MultiInputMaskValue<T>\n /**\n * Defines the delimiter used to separate the inputs inside the component.\n */\n delimiter?: string\n /**\n * Runs when the input value changes. Has an object parameter with keys matching the id's defined in `inputs`. i.e. `{month: string, year: string}`\n */\n onChange?: (values: MultiInputMaskValue<T>) => void\n /**\n * Text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message.\n */\n status?: FormStatusText\n /**\n * Defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`.\n */\n statusState?: FormStatusState\n /**\n * Set it to `true` in order to stretch the input to the available space. Defaults to false.\n */\n stretch?: boolean\n /**\n * Text describing the content of the input more than the label. you can also send in a React component, so it gets wrapped inside the Input component.\n */\n suffix?: React.ReactNode\n} & Omit<\n React.HTMLProps<HTMLInputElement>,\n 'onChange' | 'ref' | 'value' | 'label'\n> &\n SpacingProps\n\nfunction MultiInputMask<T extends string>({\n label,\n labelDirection = 'horizontal',\n inputs,\n delimiter,\n onChange: onChangeExternal,\n disabled,\n status,\n statusState,\n values: defaultValues,\n className,\n stretch,\n inputMode,\n suffix,\n ...props\n}: MultiInputMaskProps<T>) {\n const [values, onChange] = useMultiInputValue({\n inputs,\n defaultValues,\n callback: onChangeExternal,\n })\n\n const inputRefs = useRef<Array<MutableRefObject<HTMLInputElement>>>([])\n\n const { onKeyDown } = useHandleCursorPosition(\n inputRefs.current,\n getKeysToHandle()\n )\n\n const WrapperElement = label ? 'fieldset' : 'div'\n\n return (\n <WrapperElement\n className={classnames(\n 'dnb-multi-input-mask__fieldset',\n labelDirection === 'horizontal' &&\n 'dnb-multi-input-mask__fieldset--horizontal',\n createSpacingClasses(props)\n )}\n >\n {label && (\n <FormLabel\n className={classnames(\n 'dnb-multi-input-mask__legend',\n labelDirection === 'horizontal' &&\n 'dnb-multi-input-mask__legend--horizontal'\n )}\n element=\"legend\"\n onClick={onLegendClick}\n disabled={disabled}\n vertical={labelDirection === 'vertical'}\n >\n {/* This <span/> wrapper is needed to make hover work in Safari Desktop */}\n <span>{label}</span>\n </FormLabel>\n )}\n <Input\n {...props}\n className={classnames('dnb-multi-input-mask', className)}\n disabled={disabled}\n status={status}\n status_state={statusState}\n suffix={suffix}\n stretch={stretch}\n input_element={inputs.map((input, index) => (\n <MultiInputMaskInput\n key={input.id}\n {...input}\n inputMode={inputMode}\n value={values[input.id]}\n delimiter={index !== inputs.length - 1 ? delimiter : undefined}\n onKeyDown={onKeyDown}\n onChange={onChange}\n disabled={disabled}\n inputRef={getInputRef}\n />\n ))}\n />\n </WrapperElement>\n )\n\n // Event handlers\n function onLegendClick() {\n if (disabled) {\n return\n }\n\n const firstInput = inputRefs.current[0].current\n\n firstInput.focus()\n firstInput.setSelectionRange(0, 0)\n }\n\n // Utilities\n function getInputRef(ref: any) {\n const inputRef = ref?.inputRef\n\n if (inputRef && !inputRefs.current.includes(inputRef)) {\n inputRefs.current.push(inputRef)\n }\n }\n\n function getKeysToHandle() {\n const uniqueMasks = getUniqueMasks()\n\n // Return the only one RegExp since all the inputs are using the same mask\n if (uniqueMasks.size === 1) {\n const pattern = uniqueMasks.values().next().value.replace(/\\//g, '')\n return new RegExp(pattern)\n }\n\n // If there are multiple types of masks used, then map the maps to an object based on input ids\n // So that useHandleCursorPosition can do a per character test to see if the pressed key should be handled or not\n return inputs.reduce(\n (keys, { id, mask }) => {\n keys[id] = mask\n\n return keys\n },\n {} as Record<T, RegExp[]>\n )\n }\n\n function getUniqueMasks() {\n const masks = new Set()\n\n inputs.forEach((input) => {\n input.mask.forEach((pattern) => masks.add(String(pattern)))\n })\n\n return masks\n }\n}\n\ntype MultiInputMaskInputProps<T extends string> =\n MultiInputMaskInput<T> & {\n id: MultiInputMaskInput<T>['id']\n label: MultiInputMaskInput<T>['label']\n value: string\n mask: MultiInputMaskInput<T>['mask']\n placeholderCharacter: MultiInputMaskInput<T>['placeholderCharacter']\n delimiter?: MultiInputMaskProps<T>['delimiter']\n disabled: boolean\n onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void\n onChange: (\n id: string,\n placeholderCharacter: MultiInputMaskInput<T>['placeholderCharacter']\n ) => void\n inputRef: any\n }\n\nfunction MultiInputMaskInput<T extends string>({\n id,\n label,\n value,\n mask,\n placeholderCharacter,\n delimiter,\n disabled,\n inputRef,\n onKeyDown,\n onChange,\n ...attributes\n}: MultiInputMaskInputProps<T>) {\n const markupId = `${id}-${makeUniqueId()}`\n\n return (\n <>\n <TextMask\n id={`${markupId}__input`}\n data-mask-id={id}\n className={classnames(\n 'dnb-input__input',\n 'dnb-multi-input-mask__input',\n /\\d+/.test(value) && 'dnb-multi-input-mask__input--highlight'\n )}\n disabled={disabled}\n size={mask.length}\n mask={mask}\n value={value ?? ''}\n placeholderChar={placeholderCharacter}\n guide={true}\n showMask={true}\n keepCharPositions={false} // so we can overwrite next value, if it already exists\n aria-labelledby={`${markupId}__label`}\n ref={inputRef}\n onKeyDown={onKeyDown}\n onFocus={onFocus}\n onChange={(event) => {\n onChange(\n id,\n removePlaceholder(event.target.value, placeholderCharacter)\n )\n }}\n {...attributes}\n />\n <label\n id={`${markupId}__label`}\n htmlFor={`${markupId}__input`}\n hidden\n >\n {label}\n </label>\n {delimiter && (\n <span\n aria-hidden\n className={classnames(\n 'dnb-multi-input-mask__delimiter',\n value && 'dnb-multi-input-mask__delimiter--highlight'\n )}\n >\n {delimiter}\n </span>\n )}\n </>\n )\n\n function removePlaceholder(value: string, placeholder: string) {\n return value.replace(RegExp(placeholder, 'gm'), '')\n }\n\n function onFocus({ target }: React.FocusEvent<HTMLInputElement>) {\n target.focus()\n target.select()\n }\n}\n\nexport default MultiInputMask\n\nMultiInputMask._formElement = true\nMultiInputMask._supportsSpacingProps = true\n"],"mappings":"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"}
1
+ {"version":3,"file":"MultiInputMask.js","names":["React","useRef","Input","TextMask","useHandleCursorPosition","classnames","FormLabel","createSpacingClasses","useMultiInputValue","makeUniqueId","MultiInputMask","_ref","label","labelDirection","inputs","delimiter","onChange","onChangeExternal","disabled","status","statusState","values","defaultValues","className","stretch","inputMode","suffix","onBlur","onFocus","props","_objectWithoutProperties","_excluded","callback","inputRefs","onKeyDown","current","getKeysToHandle","WrapperElement","createElement","element","onClick","onLegendClick","vertical","_extends","status_state","input_element","map","input","index","MultiInputMaskInput","key","id","value","length","undefined","inputRef","getInputRef","firstInput","focus","setSelectionRange","ref","includes","push","uniqueMasks","getUniqueMasks","size","pattern","next","replace","RegExp","reduce","keys","_ref2","mask","masks","Set","forEach","add","String","_ref3","placeholderCharacter","attributes","_excluded2","shouldHighlight","test","markupId","Fragment","placeholderChar","guide","showMask","keepCharPositions","_ref4","target","event","_excluded3","select","_objectSpread","removePlaceholder","htmlFor","hidden","placeholder","_formElement","_supportsSpacingProps"],"sources":["../../../../src/components/input-masked/MultiInputMask.tsx"],"sourcesContent":["import React, { Fragment, MutableRefObject, useRef } from 'react'\nimport Input from '../Input'\nimport TextMask from './TextMask'\nimport useHandleCursorPosition from './hooks/useHandleCursorPosition'\nimport classnames from 'classnames'\nimport FormLabel from '../FormLabel'\nimport { SpacingProps } from '../space/types'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport { FormStatusState, FormStatusText } from '../FormStatus'\nimport { useMultiInputValue } from './hooks/useMultiInputValues'\nimport { makeUniqueId } from '../../shared/component-helper'\n\nexport type MultiInputMaskInput<T extends string> = {\n /**\n * Defines the id for the input. This id is also used to map the input value to the correct property on the objects used for `values` and `onChange` parameters.\n */\n id: T\n /**\n * Label used by the input. The label itself is hidden, but required to uphold accessibility standards for screen readers.\n */\n label: React.ReactNode\n /**\n * Each RegExp item in the array defines what the mask should be for each subsequent character in the input. The length sets the size of the input, so an array of two items would produce an input of two characters\n */\n mask: RegExp[]\n /**\n * Sets the placeholder character used for the input.\n */\n placeholderCharacter: string\n} & Omit<React.HTMLProps<HTMLInputElement>, 'onChange' | 'ref'>\n\nexport type MultiInputMaskValue<T extends string> = {\n // eslint-disable-next-line no-unused-vars\n [K in T]: string\n}\n\nexport type MultiInputMaskProps<T extends string> = {\n /**\n * The label describing the group of inputs inside the components.\n */\n label?: React.ReactNode\n /**\n * Use to change the label layout direction. Defaults to `horizontal`.\n */\n labelDirection?: 'vertical' | 'horizontal'\n /**\n * Used to define the different inputs representing the inputs in the component. The id's defined here is used to map input value to correct property in `values` parameters used in `onChange`\n */\n inputs: MultiInputMaskInput<T>[]\n /**\n * Values used for the inputs inside the component. Expects an object with keys matching the id's defined in `inputs`\n */\n values?: MultiInputMaskValue<T>\n /**\n * Defines the delimiter used to separate the inputs inside the component.\n */\n delimiter?: string\n /**\n * Runs when the input value changes. Has an object parameter with keys matching the id's defined in `inputs`. i.e. `{month: string, year: string}`\n */\n onChange?: (values: MultiInputMaskValue<T>) => void\n /**\n * Runs when the input gains focus. Has an object parameter with keys matching the id's defined in `inputs`. i.e. `{month: string, year: string}`\n */\n onFocus?: (values: MultiInputMaskValue<T>) => void\n /**\n * Runs when the input loses focus. Has an object parameter with keys matching the id's defined in `inputs`. i.e. `{month: string, year: string}`\n */\n onBlur?: (values: MultiInputMaskValue<T>) => void\n /**\n * Text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message.\n */\n status?: FormStatusText\n /**\n * Defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`.\n */\n statusState?: FormStatusState\n /**\n * Set it to `true` in order to stretch the input to the available space. Defaults to false.\n */\n stretch?: boolean\n /**\n * Text describing the content of the input more than the label. you can also send in a React component, so it gets wrapped inside the Input component.\n */\n suffix?: React.ReactNode\n} & Omit<\n React.HTMLProps<HTMLInputElement>,\n 'onChange' | 'onFocus' | 'onBlur' | 'ref' | 'value' | 'label'\n> &\n SpacingProps\n\nfunction MultiInputMask<T extends string>({\n label,\n labelDirection = 'horizontal',\n inputs,\n delimiter,\n onChange: onChangeExternal,\n disabled,\n status,\n statusState,\n values: defaultValues,\n className,\n stretch,\n inputMode,\n suffix,\n onBlur,\n onFocus,\n ...props\n}: MultiInputMaskProps<T>) {\n const [values, onChange] = useMultiInputValue({\n inputs,\n defaultValues,\n callback: onChangeExternal,\n })\n\n const inputRefs = useRef<Array<MutableRefObject<HTMLInputElement>>>([])\n\n const { onKeyDown } = useHandleCursorPosition(\n inputRefs.current,\n getKeysToHandle()\n )\n\n const WrapperElement = label ? 'fieldset' : 'div'\n\n return (\n <WrapperElement\n className={classnames(\n 'dnb-multi-input-mask__fieldset',\n labelDirection === 'horizontal' &&\n 'dnb-multi-input-mask__fieldset--horizontal',\n createSpacingClasses(props)\n )}\n >\n {label && (\n <FormLabel\n className={classnames(\n 'dnb-multi-input-mask__legend',\n labelDirection === 'horizontal' &&\n 'dnb-multi-input-mask__legend--horizontal'\n )}\n element=\"legend\"\n onClick={onLegendClick}\n disabled={disabled}\n vertical={labelDirection === 'vertical'}\n >\n {/* This <span/> wrapper is needed to make hover work in Safari Desktop */}\n <span>{label}</span>\n </FormLabel>\n )}\n <Input\n {...props}\n className={classnames('dnb-multi-input-mask', className)}\n disabled={disabled}\n status={status}\n status_state={statusState}\n suffix={suffix}\n stretch={stretch}\n input_element={inputs.map((input, index) => (\n <MultiInputMaskInput\n key={input.id}\n {...input}\n inputMode={inputMode}\n value={values[input.id]}\n delimiter={index !== inputs.length - 1 ? delimiter : undefined}\n onKeyDown={onKeyDown}\n onChange={onChange}\n onFocus={() => {\n if (onFocus) {\n onFocus(values)\n }\n }}\n onBlur={() => {\n if (onBlur) {\n onBlur(values)\n }\n }}\n disabled={disabled}\n inputRef={getInputRef}\n />\n ))}\n />\n </WrapperElement>\n )\n\n // Event handlers\n function onLegendClick() {\n if (disabled) {\n return\n }\n\n const firstInput = inputRefs.current[0].current\n\n firstInput.focus()\n firstInput.setSelectionRange(0, 0)\n }\n\n // Utilities\n function getInputRef(ref: any) {\n const inputRef = ref?.inputRef\n\n if (inputRef && !inputRefs.current.includes(inputRef)) {\n inputRefs.current.push(inputRef)\n }\n }\n\n function getKeysToHandle() {\n const uniqueMasks = getUniqueMasks()\n\n // Return the only one RegExp since all the inputs are using the same mask\n if (uniqueMasks.size === 1) {\n const pattern = uniqueMasks.values().next().value.replace(/\\//g, '')\n return new RegExp(pattern)\n }\n\n // If there are multiple types of masks used, then map the maps to an object based on input ids\n // So that useHandleCursorPosition can do a per character test to see if the pressed key should be handled or not\n return inputs.reduce(\n (keys, { id, mask }) => {\n keys[id] = mask\n\n return keys\n },\n {} as Record<T, RegExp[]>\n )\n }\n\n function getUniqueMasks() {\n const masks = new Set()\n\n inputs.forEach((input) => {\n input.mask.forEach((pattern) => masks.add(String(pattern)))\n })\n\n return masks\n }\n}\n\ntype MultiInputMaskInputProps<T extends string> =\n MultiInputMaskInput<T> & {\n id: MultiInputMaskInput<T>['id']\n label: MultiInputMaskInput<T>['label']\n value: string\n mask: MultiInputMaskInput<T>['mask']\n placeholderCharacter: MultiInputMaskInput<T>['placeholderCharacter']\n delimiter?: MultiInputMaskProps<T>['delimiter']\n disabled: boolean\n onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void\n onChange: (\n id: string,\n placeholderCharacter: MultiInputMaskInput<T>['placeholderCharacter']\n ) => void\n inputRef: any\n }\n\nfunction MultiInputMaskInput<T extends string>({\n id,\n label,\n value,\n mask,\n placeholderCharacter,\n delimiter,\n disabled,\n inputRef,\n onKeyDown,\n onChange,\n onBlur,\n onFocus,\n ...attributes\n}: MultiInputMaskInputProps<T>) {\n const shouldHighlight = !disabled && /\\w+/.test(value)\n const markupId = `${id}-${makeUniqueId()}`\n\n return (\n <>\n <TextMask\n id={`${markupId}__input`}\n data-mask-id={id}\n className={classnames(\n 'dnb-input__input',\n 'dnb-multi-input-mask__input',\n shouldHighlight && 'dnb-multi-input-mask__input--highlight'\n )}\n disabled={disabled}\n size={mask.length}\n mask={mask}\n value={value ?? ''}\n placeholderChar={placeholderCharacter}\n guide={true}\n showMask={true}\n keepCharPositions={false} // so we can overwrite next value, if it already exists\n aria-labelledby={`${markupId}__label`}\n ref={inputRef}\n onKeyDown={onKeyDown}\n onBlur={onBlur}\n onFocus={({ target, ...event }) => {\n target.focus()\n target.select()\n\n if (onFocus) {\n onFocus({ target, ...event })\n }\n }}\n onChange={(event) => {\n onChange(\n id,\n removePlaceholder(event.target.value, placeholderCharacter)\n )\n }}\n {...attributes}\n />\n <label\n id={`${markupId}__label`}\n htmlFor={`${markupId}__input`}\n hidden\n >\n {label}\n </label>\n {delimiter && (\n <span\n aria-hidden\n className={classnames(\n 'dnb-multi-input-mask__delimiter',\n shouldHighlight && 'dnb-multi-input-mask__delimiter--highlight'\n )}\n >\n {delimiter}\n </span>\n )}\n </>\n )\n\n function removePlaceholder(value: string, placeholder: string) {\n return value.replace(RegExp(placeholder, 'gm'), '')\n }\n}\n\nexport default MultiInputMask\n\nMultiInputMask._formElement = true\nMultiInputMask._supportsSpacingProps = true\n"],"mappings":"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"}