@dnb/eufemia 10.19.0 → 10.21.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 (1308) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/cjs/components/accordion/AccordionContent.d.ts +1 -1
  3. package/cjs/components/accordion/AccordionContent.js.map +1 -1
  4. package/cjs/components/accordion/style/dnb-accordion.css +0 -3
  5. package/cjs/components/accordion/style/dnb-accordion.min.css +1 -1
  6. package/cjs/components/accordion/style/dnb-accordion.scss +0 -5
  7. package/cjs/components/breadcrumb/Breadcrumb.js +11 -2
  8. package/cjs/components/breadcrumb/Breadcrumb.js.map +1 -1
  9. package/cjs/components/breadcrumb/BreadcrumbItem.js +11 -8
  10. package/cjs/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  11. package/cjs/components/card/Card.d.ts +6 -4
  12. package/cjs/components/card/Card.js +11 -15
  13. package/cjs/components/card/Card.js.map +1 -1
  14. package/cjs/components/card/style/dnb-card.css +29 -0
  15. package/cjs/components/card/style/dnb-card.min.css +1 -1
  16. package/cjs/components/card/style/dnb-card.scss +41 -0
  17. package/cjs/components/card/style/themes/dnb-card-theme-ui.css +1 -19
  18. package/cjs/components/card/style/themes/dnb-card-theme-ui.min.css +1 -1
  19. package/cjs/components/card/style/themes/dnb-card-theme-ui.scss +1 -27
  20. package/cjs/components/date-picker/DatePicker.d.ts +10 -1
  21. package/cjs/components/date-picker/DatePicker.js +5 -2
  22. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  23. package/cjs/components/date-picker/DatePickerProvider.js +10 -10
  24. package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
  25. package/cjs/components/flex/Container.js +1 -1
  26. package/cjs/components/flex/Container.js.map +1 -1
  27. package/cjs/components/flex/Item.js +8 -13
  28. package/cjs/components/flex/Item.js.map +1 -1
  29. package/cjs/components/flex/style/dnb-flex.css +3 -0
  30. package/cjs/components/flex/style/dnb-flex.min.css +1 -1
  31. package/cjs/components/flex/style/flex-container.scss +3 -0
  32. package/cjs/components/flex/utils.d.ts +35 -7
  33. package/cjs/components/flex/utils.js +65 -33
  34. package/cjs/components/flex/utils.js.map +1 -1
  35. package/cjs/components/form-label/style/dnb-form-label.css +0 -7
  36. package/cjs/components/form-label/style/dnb-form-label.min.css +1 -1
  37. package/cjs/components/form-label/style/dnb-form-label.scss +0 -6
  38. package/cjs/components/form-status/FormStatus.d.ts +5 -1
  39. package/cjs/components/form-status/FormStatus.js +38 -44
  40. package/cjs/components/form-status/FormStatus.js.map +1 -1
  41. package/cjs/components/form-status/style/dnb-form-status.css +11 -18
  42. package/cjs/components/form-status/style/dnb-form-status.min.css +1 -1
  43. package/cjs/components/form-status/style/dnb-form-status.scss +11 -45
  44. package/cjs/components/global-status/GlobalStatus.js +52 -138
  45. package/cjs/components/global-status/GlobalStatus.js.map +1 -1
  46. package/cjs/components/global-status/style/dnb-global-status.css +6 -16
  47. package/cjs/components/global-status/style/dnb-global-status.min.css +1 -1
  48. package/cjs/components/global-status/style/dnb-global-status.scss +11 -23
  49. package/cjs/components/global-status/style/themes/dnb-global-status-theme-ui.css +0 -3
  50. package/cjs/components/global-status/style/themes/dnb-global-status-theme-ui.min.css +1 -1
  51. package/cjs/components/global-status/style/themes/dnb-global-status-theme-ui.scss +0 -10
  52. package/cjs/components/height-animation/HeightAnimation.d.ts +12 -4
  53. package/cjs/components/height-animation/HeightAnimation.js +31 -14
  54. package/cjs/components/height-animation/HeightAnimation.js.map +1 -1
  55. package/cjs/components/height-animation/HeightAnimationInstance.d.ts +35 -18
  56. package/cjs/components/height-animation/HeightAnimationInstance.js +186 -158
  57. package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
  58. package/cjs/components/height-animation/style/dnb-height-animation.css +16 -2
  59. package/cjs/components/height-animation/style/dnb-height-animation.min.css +1 -1
  60. package/cjs/components/height-animation/style/dnb-height-animation.scss +18 -2
  61. package/cjs/components/height-animation/useHeightAnimation.d.ts +6 -1
  62. package/cjs/components/height-animation/useHeightAnimation.js +125 -92
  63. package/cjs/components/height-animation/useHeightAnimation.js.map +1 -1
  64. package/cjs/components/info-card/InfoCard.d.ts +6 -0
  65. package/cjs/components/info-card/InfoCard.js +4 -2
  66. package/cjs/components/info-card/InfoCard.js.map +1 -1
  67. package/cjs/components/info-card/style/dnb-info-card.css +3 -1
  68. package/cjs/components/info-card/style/dnb-info-card.min.css +1 -1
  69. package/cjs/components/info-card/style/dnb-info-card.scss +4 -2
  70. package/cjs/components/input/Input.d.ts +8 -8
  71. package/cjs/components/input/InputDocs.d.ts +2 -0
  72. package/cjs/components/input/InputDocs.js +165 -0
  73. package/cjs/components/input/InputDocs.js.map +1 -0
  74. package/cjs/components/input/InputPassword.d.ts +6 -17
  75. package/cjs/components/input/InputPassword.js +4 -85
  76. package/cjs/components/input/InputPassword.js.map +1 -1
  77. package/cjs/components/input-masked/InputMasked.d.ts +6 -93
  78. package/cjs/components/input-masked/InputMasked.js +3 -1
  79. package/cjs/components/input-masked/InputMasked.js.map +1 -1
  80. package/cjs/components/input-masked/InputMaskedDocs.d.ts +2 -0
  81. package/cjs/components/input-masked/InputMaskedDocs.js +85 -0
  82. package/cjs/components/input-masked/InputMaskedDocs.js.map +1 -0
  83. package/cjs/components/input-masked/InputMaskedHooks.js +7 -4
  84. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  85. package/cjs/components/input-masked/MultiInputMask.js +2 -6
  86. package/cjs/components/input-masked/MultiInputMask.js.map +1 -1
  87. package/cjs/components/input-masked/style/dnb-input-masked.css +3 -0
  88. package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
  89. package/cjs/components/input-masked/style/dnb-input-masked.scss +5 -0
  90. package/cjs/components/number-format/NumberFormat.d.ts +8 -13
  91. package/cjs/components/number-format/NumberUtils.js +22 -14
  92. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  93. package/cjs/components/slider/Slider.d.ts +1 -0
  94. package/cjs/components/slider/Slider.js +10 -1
  95. package/cjs/components/slider/Slider.js.map +1 -1
  96. package/cjs/components/slider/SliderInstance.js +20 -6
  97. package/cjs/components/slider/SliderInstance.js.map +1 -1
  98. package/cjs/components/slider/SliderMarker.d.ts +7 -0
  99. package/cjs/components/slider/SliderMarker.js +62 -0
  100. package/cjs/components/slider/SliderMarker.js.map +1 -0
  101. package/cjs/components/slider/SliderProvider.js +2 -1
  102. package/cjs/components/slider/SliderProvider.js.map +1 -1
  103. package/cjs/components/slider/style/dnb-slider.css +43 -2
  104. package/cjs/components/slider/style/dnb-slider.min.css +1 -1
  105. package/cjs/components/slider/style/dnb-slider.scss +44 -1
  106. package/cjs/components/slider/style/themes/dnb-slider-theme-sbanken.css +3 -0
  107. package/cjs/components/slider/style/themes/dnb-slider-theme-sbanken.min.css +1 -1
  108. package/cjs/components/slider/style/themes/dnb-slider-theme-sbanken.scss +4 -0
  109. package/cjs/components/slider/style/themes/dnb-slider-theme-ui.css +3 -0
  110. package/cjs/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
  111. package/cjs/components/slider/style/themes/dnb-slider-theme-ui.scss +5 -0
  112. package/cjs/components/slider/types.d.ts +6 -0
  113. package/cjs/components/slider/types.js.map +1 -1
  114. package/cjs/components/step-indicator/StepIndicatorItem.js +3 -21
  115. package/cjs/components/step-indicator/StepIndicatorItem.js.map +1 -1
  116. package/cjs/components/step-indicator/StepIndicatorTriggerButton.js +2 -16
  117. package/cjs/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  118. package/cjs/components/step-indicator/style/dnb-step-indicator.css +0 -5
  119. package/cjs/components/step-indicator/style/dnb-step-indicator.min.css +1 -1
  120. package/cjs/components/step-indicator/style/dnb-step-indicator.scss +0 -7
  121. package/cjs/components/table/TableAccordion.js +3 -2
  122. package/cjs/components/table/TableAccordion.js.map +1 -1
  123. package/cjs/components/table/TableAccordionContent.js +54 -26
  124. package/cjs/components/table/TableAccordionContent.js.map +1 -1
  125. package/cjs/components/table/style/dnb-table.css +184 -114
  126. package/cjs/components/table/style/dnb-table.min.css +1 -1
  127. package/cjs/components/table/style/dnb-table.scss +60 -4
  128. package/cjs/components/table/style/table-accordion.scss +30 -60
  129. package/cjs/components/table/style/table-container.scss +9 -9
  130. package/cjs/components/table/style/table-mixins.scss +19 -2
  131. package/cjs/components/table/style/table-td.scss +82 -60
  132. package/cjs/components/table/style/table-th.scss +5 -30
  133. package/cjs/components/table/style/table-tr.scss +0 -20
  134. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.css +24 -7
  135. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  136. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.scss +17 -12
  137. package/cjs/components/table/style/themes/dnb-table-theme-ui.css +14 -9
  138. package/cjs/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  139. package/cjs/components/table/style/themes/dnb-table-theme-ui.scss +12 -22
  140. package/cjs/components/tabs/Tabs.js +2 -1
  141. package/cjs/components/tabs/Tabs.js.map +1 -1
  142. package/cjs/components/tabs/TabsContentWrapper.d.ts +1 -0
  143. package/cjs/components/tabs/TabsContentWrapper.js +8 -6
  144. package/cjs/components/tabs/TabsContentWrapper.js.map +1 -1
  145. package/cjs/components/textarea/Textarea.d.ts +4 -10
  146. package/cjs/components/textarea/TextareaDocs.d.ts +2 -0
  147. package/cjs/components/textarea/TextareaDocs.js +105 -0
  148. package/cjs/components/textarea/TextareaDocs.js.map +1 -0
  149. package/cjs/components/textarea/style/dnb-textarea.css +1 -0
  150. package/cjs/components/textarea/style/dnb-textarea.min.css +1 -1
  151. package/cjs/components/textarea/style/dnb-textarea.scss +3 -0
  152. package/cjs/components/upload/Upload.js +15 -18
  153. package/cjs/components/upload/Upload.js.map +1 -1
  154. package/cjs/components/upload/UploadFileInput.js +3 -1
  155. package/cjs/components/upload/UploadFileInput.js.map +1 -1
  156. package/cjs/components/upload/UploadFileList.js +1 -1
  157. package/cjs/components/upload/UploadFileList.js.map +1 -1
  158. package/cjs/components/upload/UploadInfo.js +1 -1
  159. package/cjs/components/upload/UploadInfo.js.map +1 -1
  160. package/cjs/components/upload/UploadStatus.js +6 -2
  161. package/cjs/components/upload/UploadStatus.js.map +1 -1
  162. package/cjs/components/upload/useUpload.js +5 -6
  163. package/cjs/components/upload/useUpload.js.map +1 -1
  164. package/cjs/core/jest/jestSetupScreenshots.css +7 -0
  165. package/cjs/elements/lib.d.ts +7 -1
  166. package/cjs/elements/lists/Dl.d.ts +5 -1
  167. package/cjs/elements/lists/Dl.js +5 -4
  168. package/cjs/elements/lists/Dl.js.map +1 -1
  169. package/cjs/elements/lists/style/lists-mixins.scss +24 -1
  170. package/cjs/elements/typography/H1.d.ts +1 -0
  171. package/cjs/elements/typography/H1.js +1 -1
  172. package/cjs/elements/typography/H1.js.map +1 -1
  173. package/cjs/elements/typography/H2.d.ts +1 -0
  174. package/cjs/elements/typography/H2.js +1 -1
  175. package/cjs/elements/typography/H2.js.map +1 -1
  176. package/cjs/elements/typography/H3.d.ts +1 -0
  177. package/cjs/elements/typography/H3.js +1 -1
  178. package/cjs/elements/typography/H3.js.map +1 -1
  179. package/cjs/elements/typography/H4.d.ts +1 -0
  180. package/cjs/elements/typography/H4.js +1 -1
  181. package/cjs/elements/typography/H4.js.map +1 -1
  182. package/cjs/elements/typography/H5.d.ts +1 -0
  183. package/cjs/elements/typography/H5.js +1 -1
  184. package/cjs/elements/typography/H5.js.map +1 -1
  185. package/cjs/elements/typography/H6.d.ts +1 -0
  186. package/cjs/elements/typography/H6.js +1 -1
  187. package/cjs/elements/typography/H6.js.map +1 -1
  188. package/cjs/extensions/forms/DataContext/Context.d.ts +19 -5
  189. package/cjs/extensions/forms/DataContext/Context.js +9 -0
  190. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  191. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +57 -19
  192. package/cjs/extensions/forms/DataContext/Provider/Provider.js +152 -64
  193. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  194. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +3 -2
  195. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  196. package/cjs/extensions/forms/Field/Currency/Currency.js +1 -1
  197. package/cjs/extensions/forms/Field/Currency/Currency.js.map +1 -1
  198. package/cjs/extensions/forms/Field/Date/Date.js +4 -3
  199. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  200. package/cjs/extensions/forms/Field/Email/Email.js +3 -2
  201. package/cjs/extensions/forms/Field/Email/Email.js.map +1 -1
  202. package/cjs/extensions/forms/Field/Expiry/Expiry.js +5 -3
  203. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  204. package/cjs/extensions/forms/Field/FieldDocs.d.ts +3 -0
  205. package/cjs/extensions/forms/Field/FieldDocs.js +18 -0
  206. package/cjs/extensions/forms/Field/FieldDocs.js.map +1 -0
  207. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +3 -2
  208. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  209. package/cjs/extensions/forms/Field/Number/Number.d.ts +3 -4
  210. package/cjs/extensions/forms/Field/Number/Number.js +25 -20
  211. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  212. package/cjs/extensions/forms/Field/Number/NumberDocs.d.ts +2 -0
  213. package/cjs/extensions/forms/Field/Number/NumberDocs.js +92 -0
  214. package/cjs/extensions/forms/Field/Number/NumberDocs.js.map +1 -0
  215. package/cjs/extensions/forms/Field/Number/style/dnb-number.css +3 -1
  216. package/cjs/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
  217. package/cjs/extensions/forms/Field/Number/style/dnb-number.scss +4 -1
  218. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +3 -2
  219. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  220. package/cjs/extensions/forms/Field/Password/Password.d.ts +45 -0
  221. package/cjs/extensions/forms/Field/Password/Password.js +111 -0
  222. package/cjs/extensions/forms/Field/Password/Password.js.map +1 -0
  223. package/cjs/extensions/forms/Field/Password/index.d.ts +2 -0
  224. package/cjs/extensions/forms/Field/Password/index.js +27 -0
  225. package/cjs/extensions/forms/Field/Password/index.js.map +1 -0
  226. package/cjs/extensions/forms/Field/Password/style/dnb-password.css +6 -0
  227. package/cjs/extensions/forms/Field/Password/style/dnb-password.min.css +1 -0
  228. package/cjs/extensions/forms/Field/Password/style/dnb-password.scss +10 -0
  229. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +3 -2
  230. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  231. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -5
  232. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  233. package/cjs/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +3 -6
  234. package/cjs/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
  235. package/cjs/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.scss +2 -6
  236. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +3 -2
  237. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  238. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +0 -1
  239. package/cjs/extensions/forms/Field/Selection/Selection.js +1 -9
  240. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  241. package/cjs/extensions/forms/Field/String/String.d.ts +22 -11
  242. package/cjs/extensions/forms/Field/String/String.js +55 -32
  243. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  244. package/cjs/extensions/forms/Field/String/StringDocs.d.ts +2 -0
  245. package/cjs/extensions/forms/Field/String/StringDocs.js +106 -0
  246. package/cjs/extensions/forms/Field/String/StringDocs.js.map +1 -0
  247. package/cjs/extensions/forms/Field/Toggle/Toggle.js +6 -3
  248. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  249. package/cjs/extensions/forms/Field/index.d.ts +1 -0
  250. package/cjs/extensions/forms/Field/index.js +7 -0
  251. package/cjs/extensions/forms/Field/index.js.map +1 -1
  252. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +8 -3
  253. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +204 -64
  254. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  255. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +40 -6
  256. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  257. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +2 -0
  258. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js +60 -0
  259. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -0
  260. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +46 -5
  261. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  262. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +51 -1
  263. package/cjs/extensions/forms/Form/Appearance/Appearance.d.ts +7 -0
  264. package/cjs/extensions/forms/Form/Appearance/Appearance.js +38 -0
  265. package/cjs/extensions/forms/Form/Appearance/Appearance.js.map +1 -0
  266. package/cjs/extensions/forms/Form/Appearance/AppearanceDocs.d.ts +2 -0
  267. package/cjs/extensions/forms/Form/Appearance/AppearanceDocs.js +15 -0
  268. package/cjs/extensions/forms/Form/Appearance/AppearanceDocs.js.map +1 -0
  269. package/cjs/extensions/forms/Form/Appearance/index.d.ts +2 -0
  270. package/cjs/extensions/forms/Form/Appearance/index.js +27 -0
  271. package/cjs/extensions/forms/Form/Appearance/index.js.map +1 -0
  272. package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  273. package/cjs/extensions/forms/Form/Handler/Handler.js +7 -1
  274. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  275. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +6 -1
  276. package/cjs/extensions/forms/Form/Visibility/Visibility.js +54 -39
  277. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  278. package/cjs/extensions/forms/Form/data-context/getData.d.ts +8 -0
  279. package/cjs/extensions/forms/Form/data-context/getData.js +21 -0
  280. package/cjs/extensions/forms/Form/data-context/getData.js.map +1 -0
  281. package/cjs/extensions/forms/Form/data-context/setData.d.ts +2 -0
  282. package/cjs/extensions/forms/Form/data-context/setData.js +12 -0
  283. package/cjs/extensions/forms/Form/data-context/setData.js.map +1 -0
  284. package/cjs/extensions/forms/Form/data-context/useData.d.ts +22 -0
  285. package/cjs/extensions/forms/Form/data-context/useData.js +65 -0
  286. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -0
  287. package/cjs/extensions/forms/Form/data-context/useError.d.ts +5 -0
  288. package/cjs/extensions/forms/Form/data-context/useError.js +18 -0
  289. package/cjs/extensions/forms/Form/data-context/useError.js.map +1 -0
  290. package/cjs/extensions/forms/Form/index.d.ts +5 -1
  291. package/cjs/extensions/forms/Form/index.js +29 -1
  292. package/cjs/extensions/forms/Form/index.js.map +1 -1
  293. package/cjs/extensions/forms/Iterate/Array/Array.d.ts +2 -2
  294. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  295. package/cjs/extensions/forms/StepsLayout/StepsLayout.d.ts +3 -0
  296. package/cjs/extensions/forms/StepsLayout/StepsLayout.js +30 -21
  297. package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  298. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.css +6 -0
  299. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  300. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +7 -0
  301. package/cjs/extensions/forms/Value/Currency/Currency.js +3 -4
  302. package/cjs/extensions/forms/Value/Currency/Currency.js.map +1 -1
  303. package/cjs/extensions/forms/Value/Number/Number.d.ts +6 -10
  304. package/cjs/extensions/forms/Value/Number/Number.js +25 -27
  305. package/cjs/extensions/forms/Value/Number/Number.js.map +1 -1
  306. package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.js +6 -4
  307. package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
  308. package/cjs/extensions/forms/Value/SummaryList/SummaryList.d.ts +7 -0
  309. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js +35 -0
  310. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -0
  311. package/cjs/extensions/forms/Value/SummaryList/SummaryListContext.d.ts +7 -0
  312. package/cjs/extensions/forms/Value/SummaryList/SummaryListContext.js +12 -0
  313. package/cjs/extensions/forms/Value/SummaryList/SummaryListContext.js.map +1 -0
  314. package/cjs/extensions/forms/Value/SummaryList/index.d.ts +2 -0
  315. package/cjs/extensions/forms/Value/SummaryList/index.js +27 -0
  316. package/cjs/extensions/forms/Value/SummaryList/index.js.map +1 -0
  317. package/cjs/extensions/forms/Value/ValueDocs.d.ts +2 -0
  318. package/cjs/extensions/forms/Value/ValueDocs.js +40 -0
  319. package/cjs/extensions/forms/Value/ValueDocs.js.map +1 -0
  320. package/cjs/extensions/forms/Value/index.d.ts +1 -0
  321. package/cjs/extensions/forms/Value/index.js +7 -0
  322. package/cjs/extensions/forms/Value/index.js.map +1 -1
  323. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +13 -3
  324. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  325. package/cjs/extensions/forms/hooks/DataValueDocs.d.ts +3 -0
  326. package/cjs/extensions/forms/hooks/DataValueDocs.js +118 -0
  327. package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -0
  328. package/cjs/extensions/forms/hooks/index.d.ts +1 -0
  329. package/cjs/extensions/forms/hooks/index.js +7 -0
  330. package/cjs/extensions/forms/hooks/index.js.map +1 -1
  331. package/cjs/extensions/forms/hooks/useDataValue.d.ts +12 -7
  332. package/cjs/extensions/forms/hooks/useDataValue.js +162 -38
  333. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  334. package/cjs/extensions/forms/hooks/useErrorMessage.d.ts +10 -0
  335. package/cjs/extensions/forms/hooks/useErrorMessage.js +23 -0
  336. package/cjs/extensions/forms/hooks/useErrorMessage.js.map +1 -0
  337. package/cjs/extensions/forms/hooks/useId.js +1 -1
  338. package/cjs/extensions/forms/hooks/useId.js.map +1 -1
  339. package/cjs/extensions/forms/hooks/useMountEffect.js +1 -1
  340. package/cjs/extensions/forms/hooks/useMountEffect.js.map +1 -1
  341. package/cjs/extensions/forms/hooks/useUnmountEffect.d.ts +4 -0
  342. package/cjs/extensions/forms/hooks/useUnmountEffect.js +14 -0
  343. package/cjs/extensions/forms/hooks/useUnmountEffect.js.map +1 -0
  344. package/cjs/extensions/forms/index.d.ts +1 -0
  345. package/cjs/extensions/forms/index.js +9 -1
  346. package/cjs/extensions/forms/index.js.map +1 -1
  347. package/cjs/extensions/forms/style/dnb-forms.css +65 -12
  348. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  349. package/cjs/extensions/forms/types.d.ts +25 -10
  350. package/cjs/extensions/forms/types.js.map +1 -1
  351. package/cjs/extensions/forms/utils/ajv.d.ts +47 -6
  352. package/cjs/extensions/forms/utils/ajv.js +29 -13
  353. package/cjs/extensions/forms/utils/ajv.js.map +1 -1
  354. package/cjs/extensions/forms/utils/index.d.ts +0 -1
  355. package/cjs/extensions/forms/utils/index.js +0 -12
  356. package/cjs/extensions/forms/utils/index.js.map +1 -1
  357. package/cjs/shared/Context.d.ts +2 -0
  358. package/cjs/shared/Context.js.map +1 -1
  359. package/cjs/shared/Eufemia.d.ts +1 -1
  360. package/cjs/shared/Eufemia.js +2 -2
  361. package/cjs/shared/Eufemia.js.map +1 -1
  362. package/cjs/shared/component-helper.d.ts +1 -0
  363. package/cjs/shared/component-helper.js +10 -3
  364. package/cjs/shared/component-helper.js.map +1 -1
  365. package/cjs/shared/helpers/filterValidProps.d.ts +2 -2
  366. package/cjs/shared/helpers/filterValidProps.js +2 -2
  367. package/cjs/shared/helpers/filterValidProps.js.map +1 -1
  368. package/cjs/shared/helpers/useSharedState.d.ts +28 -7
  369. package/cjs/shared/helpers/useSharedState.js +62 -43
  370. package/cjs/shared/helpers/useSharedState.js.map +1 -1
  371. package/cjs/shared/helpers/withCamelCaseProps.d.ts +7 -1
  372. package/cjs/shared/helpers/withCamelCaseProps.js.map +1 -1
  373. package/cjs/shared/locales/en-GB.d.ts +6 -3
  374. package/cjs/shared/locales/en-GB.js +8 -5
  375. package/cjs/shared/locales/en-GB.js.map +1 -1
  376. package/cjs/shared/locales/en-US.d.ts +6 -3
  377. package/cjs/shared/locales/index.d.ts +12 -6
  378. package/cjs/shared/locales/nb-NO.d.ts +6 -3
  379. package/cjs/shared/locales/nb-NO.js +8 -5
  380. package/cjs/shared/locales/nb-NO.js.map +1 -1
  381. package/cjs/shared/types.d.ts +5 -0
  382. package/cjs/shared/types.js.map +1 -1
  383. package/cjs/style/core/utilities.scss +1 -1
  384. package/cjs/style/dnb-ui-components.css +364 -180
  385. package/cjs/style/dnb-ui-components.min.css +3 -3
  386. package/cjs/style/dnb-ui-elements.css +25 -5
  387. package/cjs/style/dnb-ui-elements.min.css +1 -1
  388. package/cjs/style/dnb-ui-extensions.css +65 -12
  389. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  390. package/cjs/style/dnb-ui-forms.css +65 -12
  391. package/cjs/style/dnb-ui-forms.min.css +1 -1
  392. package/cjs/style/dnb-ui-forms.scss +1 -0
  393. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +25 -5
  394. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  395. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +447 -223
  396. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  397. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +25 -5
  398. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  399. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +65 -12
  400. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  401. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +65 -12
  402. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  403. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +25 -5
  404. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  405. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +457 -218
  406. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  407. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +25 -5
  408. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  409. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +65 -12
  410. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  411. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +65 -12
  412. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  413. package/cjs/style/themes/theme-ui/ui-theme-basis.css +25 -5
  414. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  415. package/cjs/style/themes/theme-ui/ui-theme-components.css +447 -223
  416. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +5 -5
  417. package/cjs/style/themes/theme-ui/ui-theme-elements.css +25 -5
  418. package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  419. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +65 -12
  420. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  421. package/cjs/style/themes/theme-ui/ui-theme-forms.css +65 -12
  422. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  423. package/cjs/style/themes/theme-ui/ui-theme-tags.css +25 -5
  424. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  425. package/components/accordion/AccordionContent.d.ts +1 -1
  426. package/components/accordion/AccordionContent.js.map +1 -1
  427. package/components/accordion/style/dnb-accordion.css +0 -3
  428. package/components/accordion/style/dnb-accordion.min.css +1 -1
  429. package/components/accordion/style/dnb-accordion.scss +0 -5
  430. package/components/breadcrumb/Breadcrumb.js +11 -2
  431. package/components/breadcrumb/Breadcrumb.js.map +1 -1
  432. package/components/breadcrumb/BreadcrumbItem.js +11 -8
  433. package/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  434. package/components/card/Card.d.ts +6 -4
  435. package/components/card/Card.js +11 -15
  436. package/components/card/Card.js.map +1 -1
  437. package/components/card/style/dnb-card.css +29 -0
  438. package/components/card/style/dnb-card.min.css +1 -1
  439. package/components/card/style/dnb-card.scss +41 -0
  440. package/components/card/style/themes/dnb-card-theme-ui.css +1 -19
  441. package/components/card/style/themes/dnb-card-theme-ui.min.css +1 -1
  442. package/components/card/style/themes/dnb-card-theme-ui.scss +1 -27
  443. package/components/date-picker/DatePicker.d.ts +10 -1
  444. package/components/date-picker/DatePicker.js +5 -2
  445. package/components/date-picker/DatePicker.js.map +1 -1
  446. package/components/date-picker/DatePickerProvider.js +10 -10
  447. package/components/date-picker/DatePickerProvider.js.map +1 -1
  448. package/components/flex/Container.js +1 -1
  449. package/components/flex/Container.js.map +1 -1
  450. package/components/flex/Item.js +8 -11
  451. package/components/flex/Item.js.map +1 -1
  452. package/components/flex/style/dnb-flex.css +3 -0
  453. package/components/flex/style/dnb-flex.min.css +1 -1
  454. package/components/flex/style/flex-container.scss +3 -0
  455. package/components/flex/utils.d.ts +35 -7
  456. package/components/flex/utils.js +56 -24
  457. package/components/flex/utils.js.map +1 -1
  458. package/components/form-label/style/dnb-form-label.css +0 -7
  459. package/components/form-label/style/dnb-form-label.min.css +1 -1
  460. package/components/form-label/style/dnb-form-label.scss +0 -6
  461. package/components/form-status/FormStatus.d.ts +5 -1
  462. package/components/form-status/FormStatus.js +38 -44
  463. package/components/form-status/FormStatus.js.map +1 -1
  464. package/components/form-status/style/dnb-form-status.css +11 -18
  465. package/components/form-status/style/dnb-form-status.min.css +1 -1
  466. package/components/form-status/style/dnb-form-status.scss +11 -45
  467. package/components/global-status/GlobalStatus.js +53 -139
  468. package/components/global-status/GlobalStatus.js.map +1 -1
  469. package/components/global-status/style/dnb-global-status.css +6 -16
  470. package/components/global-status/style/dnb-global-status.min.css +1 -1
  471. package/components/global-status/style/dnb-global-status.scss +11 -23
  472. package/components/global-status/style/themes/dnb-global-status-theme-ui.css +0 -3
  473. package/components/global-status/style/themes/dnb-global-status-theme-ui.min.css +1 -1
  474. package/components/global-status/style/themes/dnb-global-status-theme-ui.scss +0 -10
  475. package/components/height-animation/HeightAnimation.d.ts +12 -4
  476. package/components/height-animation/HeightAnimation.js +27 -14
  477. package/components/height-animation/HeightAnimation.js.map +1 -1
  478. package/components/height-animation/HeightAnimationInstance.d.ts +35 -18
  479. package/components/height-animation/HeightAnimationInstance.js +186 -158
  480. package/components/height-animation/HeightAnimationInstance.js.map +1 -1
  481. package/components/height-animation/style/dnb-height-animation.css +16 -2
  482. package/components/height-animation/style/dnb-height-animation.min.css +1 -1
  483. package/components/height-animation/style/dnb-height-animation.scss +18 -2
  484. package/components/height-animation/useHeightAnimation.d.ts +6 -1
  485. package/components/height-animation/useHeightAnimation.js +124 -92
  486. package/components/height-animation/useHeightAnimation.js.map +1 -1
  487. package/components/info-card/InfoCard.d.ts +6 -0
  488. package/components/info-card/InfoCard.js +4 -2
  489. package/components/info-card/InfoCard.js.map +1 -1
  490. package/components/info-card/style/dnb-info-card.css +3 -1
  491. package/components/info-card/style/dnb-info-card.min.css +1 -1
  492. package/components/info-card/style/dnb-info-card.scss +4 -2
  493. package/components/input/Input.d.ts +8 -8
  494. package/components/input/InputDocs.d.ts +2 -0
  495. package/components/input/InputDocs.js +158 -0
  496. package/components/input/InputDocs.js.map +1 -0
  497. package/components/input/InputPassword.d.ts +6 -17
  498. package/components/input/InputPassword.js +3 -81
  499. package/components/input/InputPassword.js.map +1 -1
  500. package/components/input-masked/InputMasked.d.ts +6 -93
  501. package/components/input-masked/InputMasked.js +3 -1
  502. package/components/input-masked/InputMasked.js.map +1 -1
  503. package/components/input-masked/InputMaskedDocs.d.ts +2 -0
  504. package/components/input-masked/InputMaskedDocs.js +78 -0
  505. package/components/input-masked/InputMaskedDocs.js.map +1 -0
  506. package/components/input-masked/InputMaskedHooks.js +7 -4
  507. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  508. package/components/input-masked/MultiInputMask.js +2 -6
  509. package/components/input-masked/MultiInputMask.js.map +1 -1
  510. package/components/input-masked/style/dnb-input-masked.css +3 -0
  511. package/components/input-masked/style/dnb-input-masked.min.css +1 -1
  512. package/components/input-masked/style/dnb-input-masked.scss +5 -0
  513. package/components/number-format/NumberFormat.d.ts +8 -13
  514. package/components/number-format/NumberUtils.js +22 -14
  515. package/components/number-format/NumberUtils.js.map +1 -1
  516. package/components/slider/Slider.d.ts +1 -0
  517. package/components/slider/Slider.js +1 -0
  518. package/components/slider/Slider.js.map +1 -1
  519. package/components/slider/SliderInstance.js +18 -5
  520. package/components/slider/SliderInstance.js.map +1 -1
  521. package/components/slider/SliderMarker.d.ts +7 -0
  522. package/components/slider/SliderMarker.js +53 -0
  523. package/components/slider/SliderMarker.js.map +1 -0
  524. package/components/slider/SliderProvider.js +2 -1
  525. package/components/slider/SliderProvider.js.map +1 -1
  526. package/components/slider/style/dnb-slider.css +43 -2
  527. package/components/slider/style/dnb-slider.min.css +1 -1
  528. package/components/slider/style/dnb-slider.scss +44 -1
  529. package/components/slider/style/themes/dnb-slider-theme-sbanken.css +3 -0
  530. package/components/slider/style/themes/dnb-slider-theme-sbanken.min.css +1 -1
  531. package/components/slider/style/themes/dnb-slider-theme-sbanken.scss +4 -0
  532. package/components/slider/style/themes/dnb-slider-theme-ui.css +3 -0
  533. package/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
  534. package/components/slider/style/themes/dnb-slider-theme-ui.scss +5 -0
  535. package/components/slider/types.d.ts +6 -0
  536. package/components/slider/types.js.map +1 -1
  537. package/components/step-indicator/StepIndicatorItem.js +4 -22
  538. package/components/step-indicator/StepIndicatorItem.js.map +1 -1
  539. package/components/step-indicator/StepIndicatorTriggerButton.js +3 -17
  540. package/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  541. package/components/step-indicator/style/dnb-step-indicator.css +0 -5
  542. package/components/step-indicator/style/dnb-step-indicator.min.css +1 -1
  543. package/components/step-indicator/style/dnb-step-indicator.scss +0 -7
  544. package/components/table/TableAccordion.js +3 -2
  545. package/components/table/TableAccordion.js.map +1 -1
  546. package/components/table/TableAccordionContent.js +51 -26
  547. package/components/table/TableAccordionContent.js.map +1 -1
  548. package/components/table/style/dnb-table.css +184 -114
  549. package/components/table/style/dnb-table.min.css +1 -1
  550. package/components/table/style/dnb-table.scss +60 -4
  551. package/components/table/style/table-accordion.scss +30 -60
  552. package/components/table/style/table-container.scss +9 -9
  553. package/components/table/style/table-mixins.scss +19 -2
  554. package/components/table/style/table-td.scss +82 -60
  555. package/components/table/style/table-th.scss +5 -30
  556. package/components/table/style/table-tr.scss +0 -20
  557. package/components/table/style/themes/dnb-table-theme-sbanken.css +24 -7
  558. package/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  559. package/components/table/style/themes/dnb-table-theme-sbanken.scss +17 -12
  560. package/components/table/style/themes/dnb-table-theme-ui.css +14 -9
  561. package/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  562. package/components/table/style/themes/dnb-table-theme-ui.scss +12 -22
  563. package/components/tabs/Tabs.js +2 -1
  564. package/components/tabs/Tabs.js.map +1 -1
  565. package/components/tabs/TabsContentWrapper.d.ts +1 -0
  566. package/components/tabs/TabsContentWrapper.js +8 -6
  567. package/components/tabs/TabsContentWrapper.js.map +1 -1
  568. package/components/textarea/Textarea.d.ts +4 -10
  569. package/components/textarea/TextareaDocs.d.ts +2 -0
  570. package/components/textarea/TextareaDocs.js +98 -0
  571. package/components/textarea/TextareaDocs.js.map +1 -0
  572. package/components/textarea/style/dnb-textarea.css +1 -0
  573. package/components/textarea/style/dnb-textarea.min.css +1 -1
  574. package/components/textarea/style/dnb-textarea.scss +3 -0
  575. package/components/upload/Upload.js +13 -18
  576. package/components/upload/Upload.js.map +1 -1
  577. package/components/upload/UploadFileInput.js +3 -1
  578. package/components/upload/UploadFileInput.js.map +1 -1
  579. package/components/upload/UploadFileList.js +1 -1
  580. package/components/upload/UploadFileList.js.map +1 -1
  581. package/components/upload/UploadInfo.js +1 -1
  582. package/components/upload/UploadInfo.js.map +1 -1
  583. package/components/upload/UploadStatus.js +6 -2
  584. package/components/upload/UploadStatus.js.map +1 -1
  585. package/components/upload/useUpload.js +5 -7
  586. package/components/upload/useUpload.js.map +1 -1
  587. package/core/jest/jestSetupScreenshots.css +7 -0
  588. package/elements/lib.d.ts +7 -1
  589. package/elements/lists/Dl.d.ts +5 -1
  590. package/elements/lists/Dl.js +5 -4
  591. package/elements/lists/Dl.js.map +1 -1
  592. package/elements/lists/style/lists-mixins.scss +24 -1
  593. package/elements/typography/H1.d.ts +1 -0
  594. package/elements/typography/H1.js +1 -1
  595. package/elements/typography/H1.js.map +1 -1
  596. package/elements/typography/H2.d.ts +1 -0
  597. package/elements/typography/H2.js +1 -1
  598. package/elements/typography/H2.js.map +1 -1
  599. package/elements/typography/H3.d.ts +1 -0
  600. package/elements/typography/H3.js +1 -1
  601. package/elements/typography/H3.js.map +1 -1
  602. package/elements/typography/H4.d.ts +1 -0
  603. package/elements/typography/H4.js +1 -1
  604. package/elements/typography/H4.js.map +1 -1
  605. package/elements/typography/H5.d.ts +1 -0
  606. package/elements/typography/H5.js +1 -1
  607. package/elements/typography/H5.js.map +1 -1
  608. package/elements/typography/H6.d.ts +1 -0
  609. package/elements/typography/H6.js +1 -1
  610. package/elements/typography/H6.js.map +1 -1
  611. package/es/components/accordion/AccordionContent.d.ts +1 -1
  612. package/es/components/accordion/AccordionContent.js.map +1 -1
  613. package/es/components/accordion/style/dnb-accordion.css +0 -3
  614. package/es/components/accordion/style/dnb-accordion.min.css +1 -1
  615. package/es/components/accordion/style/dnb-accordion.scss +0 -5
  616. package/es/components/breadcrumb/Breadcrumb.js +11 -2
  617. package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
  618. package/es/components/breadcrumb/BreadcrumbItem.js +11 -8
  619. package/es/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  620. package/es/components/card/Card.d.ts +6 -4
  621. package/es/components/card/Card.js +11 -15
  622. package/es/components/card/Card.js.map +1 -1
  623. package/es/components/card/style/dnb-card.css +29 -0
  624. package/es/components/card/style/dnb-card.min.css +1 -1
  625. package/es/components/card/style/dnb-card.scss +41 -0
  626. package/es/components/card/style/themes/dnb-card-theme-ui.css +1 -19
  627. package/es/components/card/style/themes/dnb-card-theme-ui.min.css +1 -1
  628. package/es/components/card/style/themes/dnb-card-theme-ui.scss +1 -27
  629. package/es/components/date-picker/DatePicker.d.ts +10 -1
  630. package/es/components/date-picker/DatePicker.js +5 -2
  631. package/es/components/date-picker/DatePicker.js.map +1 -1
  632. package/es/components/date-picker/DatePickerProvider.js +10 -10
  633. package/es/components/date-picker/DatePickerProvider.js.map +1 -1
  634. package/es/components/flex/Container.js +1 -1
  635. package/es/components/flex/Container.js.map +1 -1
  636. package/es/components/flex/Item.js +8 -11
  637. package/es/components/flex/Item.js.map +1 -1
  638. package/es/components/flex/style/dnb-flex.css +3 -0
  639. package/es/components/flex/style/dnb-flex.min.css +1 -1
  640. package/es/components/flex/style/flex-container.scss +3 -0
  641. package/es/components/flex/utils.d.ts +35 -7
  642. package/es/components/flex/utils.js +55 -24
  643. package/es/components/flex/utils.js.map +1 -1
  644. package/es/components/form-label/style/dnb-form-label.css +0 -7
  645. package/es/components/form-label/style/dnb-form-label.min.css +1 -1
  646. package/es/components/form-label/style/dnb-form-label.scss +0 -6
  647. package/es/components/form-status/FormStatus.d.ts +5 -1
  648. package/es/components/form-status/FormStatus.js +38 -44
  649. package/es/components/form-status/FormStatus.js.map +1 -1
  650. package/es/components/form-status/style/dnb-form-status.css +11 -18
  651. package/es/components/form-status/style/dnb-form-status.min.css +1 -1
  652. package/es/components/form-status/style/dnb-form-status.scss +11 -45
  653. package/es/components/global-status/GlobalStatus.js +51 -133
  654. package/es/components/global-status/GlobalStatus.js.map +1 -1
  655. package/es/components/global-status/style/dnb-global-status.css +6 -16
  656. package/es/components/global-status/style/dnb-global-status.min.css +1 -1
  657. package/es/components/global-status/style/dnb-global-status.scss +11 -23
  658. package/es/components/global-status/style/themes/dnb-global-status-theme-ui.css +0 -3
  659. package/es/components/global-status/style/themes/dnb-global-status-theme-ui.min.css +1 -1
  660. package/es/components/global-status/style/themes/dnb-global-status-theme-ui.scss +0 -10
  661. package/es/components/height-animation/HeightAnimation.d.ts +12 -4
  662. package/es/components/height-animation/HeightAnimation.js +27 -14
  663. package/es/components/height-animation/HeightAnimation.js.map +1 -1
  664. package/es/components/height-animation/HeightAnimationInstance.d.ts +35 -18
  665. package/es/components/height-animation/HeightAnimationInstance.js +188 -155
  666. package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
  667. package/es/components/height-animation/style/dnb-height-animation.css +16 -2
  668. package/es/components/height-animation/style/dnb-height-animation.min.css +1 -1
  669. package/es/components/height-animation/style/dnb-height-animation.scss +18 -2
  670. package/es/components/height-animation/useHeightAnimation.d.ts +6 -1
  671. package/es/components/height-animation/useHeightAnimation.js +124 -92
  672. package/es/components/height-animation/useHeightAnimation.js.map +1 -1
  673. package/es/components/info-card/InfoCard.d.ts +6 -0
  674. package/es/components/info-card/InfoCard.js +4 -2
  675. package/es/components/info-card/InfoCard.js.map +1 -1
  676. package/es/components/info-card/style/dnb-info-card.css +3 -1
  677. package/es/components/info-card/style/dnb-info-card.min.css +1 -1
  678. package/es/components/info-card/style/dnb-info-card.scss +4 -2
  679. package/es/components/input/Input.d.ts +8 -8
  680. package/es/components/input/InputDocs.d.ts +2 -0
  681. package/es/components/input/InputDocs.js +158 -0
  682. package/es/components/input/InputDocs.js.map +1 -0
  683. package/es/components/input/InputPassword.d.ts +6 -17
  684. package/es/components/input/InputPassword.js +3 -81
  685. package/es/components/input/InputPassword.js.map +1 -1
  686. package/es/components/input-masked/InputMasked.d.ts +6 -93
  687. package/es/components/input-masked/InputMasked.js +3 -1
  688. package/es/components/input-masked/InputMasked.js.map +1 -1
  689. package/es/components/input-masked/InputMaskedDocs.d.ts +2 -0
  690. package/es/components/input-masked/InputMaskedDocs.js +78 -0
  691. package/es/components/input-masked/InputMaskedDocs.js.map +1 -0
  692. package/es/components/input-masked/InputMaskedHooks.js +7 -4
  693. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  694. package/es/components/input-masked/MultiInputMask.js +2 -6
  695. package/es/components/input-masked/MultiInputMask.js.map +1 -1
  696. package/es/components/input-masked/style/dnb-input-masked.css +3 -0
  697. package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
  698. package/es/components/input-masked/style/dnb-input-masked.scss +5 -0
  699. package/es/components/number-format/NumberFormat.d.ts +8 -13
  700. package/es/components/number-format/NumberUtils.js +23 -14
  701. package/es/components/number-format/NumberUtils.js.map +1 -1
  702. package/es/components/slider/Slider.d.ts +1 -0
  703. package/es/components/slider/Slider.js +1 -0
  704. package/es/components/slider/Slider.js.map +1 -1
  705. package/es/components/slider/SliderInstance.js +17 -5
  706. package/es/components/slider/SliderInstance.js.map +1 -1
  707. package/es/components/slider/SliderMarker.d.ts +7 -0
  708. package/es/components/slider/SliderMarker.js +52 -0
  709. package/es/components/slider/SliderMarker.js.map +1 -0
  710. package/es/components/slider/SliderProvider.js +2 -1
  711. package/es/components/slider/SliderProvider.js.map +1 -1
  712. package/es/components/slider/style/dnb-slider.css +43 -2
  713. package/es/components/slider/style/dnb-slider.min.css +1 -1
  714. package/es/components/slider/style/dnb-slider.scss +44 -1
  715. package/es/components/slider/style/themes/dnb-slider-theme-sbanken.css +3 -0
  716. package/es/components/slider/style/themes/dnb-slider-theme-sbanken.min.css +1 -1
  717. package/es/components/slider/style/themes/dnb-slider-theme-sbanken.scss +4 -0
  718. package/es/components/slider/style/themes/dnb-slider-theme-ui.css +3 -0
  719. package/es/components/slider/style/themes/dnb-slider-theme-ui.min.css +1 -1
  720. package/es/components/slider/style/themes/dnb-slider-theme-ui.scss +5 -0
  721. package/es/components/slider/types.d.ts +6 -0
  722. package/es/components/slider/types.js.map +1 -1
  723. package/es/components/step-indicator/StepIndicatorItem.js +4 -22
  724. package/es/components/step-indicator/StepIndicatorItem.js.map +1 -1
  725. package/es/components/step-indicator/StepIndicatorTriggerButton.js +3 -17
  726. package/es/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  727. package/es/components/step-indicator/style/dnb-step-indicator.css +0 -5
  728. package/es/components/step-indicator/style/dnb-step-indicator.min.css +1 -1
  729. package/es/components/step-indicator/style/dnb-step-indicator.scss +0 -7
  730. package/es/components/table/TableAccordion.js +3 -3
  731. package/es/components/table/TableAccordion.js.map +1 -1
  732. package/es/components/table/TableAccordionContent.js +50 -26
  733. package/es/components/table/TableAccordionContent.js.map +1 -1
  734. package/es/components/table/style/dnb-table.css +184 -114
  735. package/es/components/table/style/dnb-table.min.css +1 -1
  736. package/es/components/table/style/dnb-table.scss +60 -4
  737. package/es/components/table/style/table-accordion.scss +30 -60
  738. package/es/components/table/style/table-container.scss +9 -9
  739. package/es/components/table/style/table-mixins.scss +19 -2
  740. package/es/components/table/style/table-td.scss +82 -60
  741. package/es/components/table/style/table-th.scss +5 -30
  742. package/es/components/table/style/table-tr.scss +0 -20
  743. package/es/components/table/style/themes/dnb-table-theme-sbanken.css +24 -7
  744. package/es/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  745. package/es/components/table/style/themes/dnb-table-theme-sbanken.scss +17 -12
  746. package/es/components/table/style/themes/dnb-table-theme-ui.css +14 -9
  747. package/es/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  748. package/es/components/table/style/themes/dnb-table-theme-ui.scss +12 -22
  749. package/es/components/tabs/Tabs.js +2 -1
  750. package/es/components/tabs/Tabs.js.map +1 -1
  751. package/es/components/tabs/TabsContentWrapper.d.ts +1 -0
  752. package/es/components/tabs/TabsContentWrapper.js +8 -6
  753. package/es/components/tabs/TabsContentWrapper.js.map +1 -1
  754. package/es/components/textarea/Textarea.d.ts +4 -10
  755. package/es/components/textarea/TextareaDocs.d.ts +2 -0
  756. package/es/components/textarea/TextareaDocs.js +98 -0
  757. package/es/components/textarea/TextareaDocs.js.map +1 -0
  758. package/es/components/textarea/style/dnb-textarea.css +1 -0
  759. package/es/components/textarea/style/dnb-textarea.min.css +1 -1
  760. package/es/components/textarea/style/dnb-textarea.scss +3 -0
  761. package/es/components/upload/Upload.js +13 -18
  762. package/es/components/upload/Upload.js.map +1 -1
  763. package/es/components/upload/UploadFileInput.js +3 -1
  764. package/es/components/upload/UploadFileInput.js.map +1 -1
  765. package/es/components/upload/UploadFileList.js +1 -1
  766. package/es/components/upload/UploadFileList.js.map +1 -1
  767. package/es/components/upload/UploadInfo.js +1 -1
  768. package/es/components/upload/UploadInfo.js.map +1 -1
  769. package/es/components/upload/UploadStatus.js +6 -2
  770. package/es/components/upload/UploadStatus.js.map +1 -1
  771. package/es/components/upload/useUpload.js +5 -7
  772. package/es/components/upload/useUpload.js.map +1 -1
  773. package/es/core/jest/jestSetupScreenshots.css +7 -0
  774. package/es/elements/lib.d.ts +7 -1
  775. package/es/elements/lists/Dl.d.ts +5 -1
  776. package/es/elements/lists/Dl.js +5 -4
  777. package/es/elements/lists/Dl.js.map +1 -1
  778. package/es/elements/lists/style/lists-mixins.scss +24 -1
  779. package/es/elements/typography/H1.d.ts +1 -0
  780. package/es/elements/typography/H1.js +1 -1
  781. package/es/elements/typography/H1.js.map +1 -1
  782. package/es/elements/typography/H2.d.ts +1 -0
  783. package/es/elements/typography/H2.js +1 -1
  784. package/es/elements/typography/H2.js.map +1 -1
  785. package/es/elements/typography/H3.d.ts +1 -0
  786. package/es/elements/typography/H3.js +1 -1
  787. package/es/elements/typography/H3.js.map +1 -1
  788. package/es/elements/typography/H4.d.ts +1 -0
  789. package/es/elements/typography/H4.js +1 -1
  790. package/es/elements/typography/H4.js.map +1 -1
  791. package/es/elements/typography/H5.d.ts +1 -0
  792. package/es/elements/typography/H5.js +1 -1
  793. package/es/elements/typography/H5.js.map +1 -1
  794. package/es/elements/typography/H6.d.ts +1 -0
  795. package/es/elements/typography/H6.js +1 -1
  796. package/es/elements/typography/H6.js.map +1 -1
  797. package/es/extensions/forms/DataContext/Context.d.ts +19 -5
  798. package/es/extensions/forms/DataContext/Context.js +9 -0
  799. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  800. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +57 -19
  801. package/es/extensions/forms/DataContext/Provider/Provider.js +151 -65
  802. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  803. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +3 -2
  804. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  805. package/es/extensions/forms/Field/Currency/Currency.js +1 -1
  806. package/es/extensions/forms/Field/Currency/Currency.js.map +1 -1
  807. package/es/extensions/forms/Field/Date/Date.js +4 -3
  808. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  809. package/es/extensions/forms/Field/Email/Email.js +4 -3
  810. package/es/extensions/forms/Field/Email/Email.js.map +1 -1
  811. package/es/extensions/forms/Field/Expiry/Expiry.js +6 -4
  812. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  813. package/es/extensions/forms/Field/FieldDocs.d.ts +3 -0
  814. package/es/extensions/forms/Field/FieldDocs.js +8 -0
  815. package/es/extensions/forms/Field/FieldDocs.js.map +1 -0
  816. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +3 -2
  817. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  818. package/es/extensions/forms/Field/Number/Number.d.ts +3 -4
  819. package/es/extensions/forms/Field/Number/Number.js +25 -20
  820. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  821. package/es/extensions/forms/Field/Number/NumberDocs.d.ts +2 -0
  822. package/es/extensions/forms/Field/Number/NumberDocs.js +85 -0
  823. package/es/extensions/forms/Field/Number/NumberDocs.js.map +1 -0
  824. package/es/extensions/forms/Field/Number/style/dnb-number.css +3 -1
  825. package/es/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
  826. package/es/extensions/forms/Field/Number/style/dnb-number.scss +4 -1
  827. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +3 -2
  828. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  829. package/es/extensions/forms/Field/Password/Password.d.ts +45 -0
  830. package/es/extensions/forms/Field/Password/Password.js +99 -0
  831. package/es/extensions/forms/Field/Password/Password.js.map +1 -0
  832. package/es/extensions/forms/Field/Password/index.d.ts +2 -0
  833. package/es/extensions/forms/Field/Password/index.js +3 -0
  834. package/es/extensions/forms/Field/Password/index.js.map +1 -0
  835. package/es/extensions/forms/Field/Password/style/dnb-password.css +6 -0
  836. package/es/extensions/forms/Field/Password/style/dnb-password.min.css +1 -0
  837. package/es/extensions/forms/Field/Password/style/dnb-password.scss +10 -0
  838. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +3 -2
  839. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  840. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -5
  841. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  842. package/es/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +3 -6
  843. package/es/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
  844. package/es/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.scss +2 -6
  845. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +3 -2
  846. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  847. package/es/extensions/forms/Field/Selection/Selection.d.ts +0 -1
  848. package/es/extensions/forms/Field/Selection/Selection.js +2 -11
  849. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  850. package/es/extensions/forms/Field/String/String.d.ts +22 -11
  851. package/es/extensions/forms/Field/String/String.js +55 -32
  852. package/es/extensions/forms/Field/String/String.js.map +1 -1
  853. package/es/extensions/forms/Field/String/StringDocs.d.ts +2 -0
  854. package/es/extensions/forms/Field/String/StringDocs.js +99 -0
  855. package/es/extensions/forms/Field/String/StringDocs.js.map +1 -0
  856. package/es/extensions/forms/Field/Toggle/Toggle.js +6 -3
  857. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  858. package/es/extensions/forms/Field/index.d.ts +1 -0
  859. package/es/extensions/forms/Field/index.js +1 -0
  860. package/es/extensions/forms/Field/index.js.map +1 -1
  861. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +8 -3
  862. package/es/extensions/forms/FieldBlock/FieldBlock.js +195 -60
  863. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  864. package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +40 -6
  865. package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  866. package/es/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +2 -0
  867. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js +53 -0
  868. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -0
  869. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +46 -5
  870. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  871. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +51 -1
  872. package/es/extensions/forms/Form/Appearance/Appearance.d.ts +7 -0
  873. package/es/extensions/forms/Form/Appearance/Appearance.js +30 -0
  874. package/es/extensions/forms/Form/Appearance/Appearance.js.map +1 -0
  875. package/es/extensions/forms/Form/Appearance/AppearanceDocs.d.ts +2 -0
  876. package/es/extensions/forms/Form/Appearance/AppearanceDocs.js +8 -0
  877. package/es/extensions/forms/Form/Appearance/AppearanceDocs.js.map +1 -0
  878. package/es/extensions/forms/Form/Appearance/index.d.ts +2 -0
  879. package/es/extensions/forms/Form/Appearance/index.js +3 -0
  880. package/es/extensions/forms/Form/Appearance/index.js.map +1 -0
  881. package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  882. package/es/extensions/forms/Form/Handler/Handler.js +7 -1
  883. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  884. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +6 -1
  885. package/es/extensions/forms/Form/Visibility/Visibility.js +55 -40
  886. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  887. package/es/extensions/forms/Form/data-context/getData.d.ts +8 -0
  888. package/es/extensions/forms/Form/data-context/getData.js +15 -0
  889. package/es/extensions/forms/Form/data-context/getData.js.map +1 -0
  890. package/es/extensions/forms/Form/data-context/setData.d.ts +2 -0
  891. package/es/extensions/forms/Form/data-context/setData.js +6 -0
  892. package/es/extensions/forms/Form/data-context/setData.js.map +1 -0
  893. package/es/extensions/forms/Form/data-context/useData.d.ts +22 -0
  894. package/es/extensions/forms/Form/data-context/useData.js +58 -0
  895. package/es/extensions/forms/Form/data-context/useData.js.map +1 -0
  896. package/es/extensions/forms/Form/data-context/useError.d.ts +5 -0
  897. package/es/extensions/forms/Form/data-context/useError.js +13 -0
  898. package/es/extensions/forms/Form/data-context/useError.js.map +1 -0
  899. package/es/extensions/forms/Form/index.d.ts +5 -1
  900. package/es/extensions/forms/Form/index.js +5 -1
  901. package/es/extensions/forms/Form/index.js.map +1 -1
  902. package/es/extensions/forms/Iterate/Array/Array.d.ts +2 -2
  903. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  904. package/es/extensions/forms/StepsLayout/StepsLayout.d.ts +3 -0
  905. package/es/extensions/forms/StepsLayout/StepsLayout.js +31 -22
  906. package/es/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  907. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.css +6 -0
  908. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  909. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +7 -0
  910. package/es/extensions/forms/Value/Currency/Currency.js +3 -4
  911. package/es/extensions/forms/Value/Currency/Currency.js.map +1 -1
  912. package/es/extensions/forms/Value/Number/Number.d.ts +6 -10
  913. package/es/extensions/forms/Value/Number/Number.js +22 -27
  914. package/es/extensions/forms/Value/Number/Number.js.map +1 -1
  915. package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js +6 -4
  916. package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
  917. package/es/extensions/forms/Value/SummaryList/SummaryList.d.ts +7 -0
  918. package/es/extensions/forms/Value/SummaryList/SummaryList.js +26 -0
  919. package/es/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -0
  920. package/es/extensions/forms/Value/SummaryList/SummaryListContext.d.ts +7 -0
  921. package/es/extensions/forms/Value/SummaryList/SummaryListContext.js +4 -0
  922. package/es/extensions/forms/Value/SummaryList/SummaryListContext.js.map +1 -0
  923. package/es/extensions/forms/Value/SummaryList/index.d.ts +2 -0
  924. package/es/extensions/forms/Value/SummaryList/index.js +3 -0
  925. package/es/extensions/forms/Value/SummaryList/index.js.map +1 -0
  926. package/es/extensions/forms/Value/ValueDocs.d.ts +2 -0
  927. package/es/extensions/forms/Value/ValueDocs.js +33 -0
  928. package/es/extensions/forms/Value/ValueDocs.js.map +1 -0
  929. package/es/extensions/forms/Value/index.d.ts +1 -0
  930. package/es/extensions/forms/Value/index.js +1 -0
  931. package/es/extensions/forms/Value/index.js.map +1 -1
  932. package/es/extensions/forms/ValueBlock/ValueBlock.js +12 -4
  933. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  934. package/es/extensions/forms/hooks/DataValueDocs.d.ts +3 -0
  935. package/es/extensions/forms/hooks/DataValueDocs.js +110 -0
  936. package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -0
  937. package/es/extensions/forms/hooks/index.d.ts +1 -0
  938. package/es/extensions/forms/hooks/index.js +1 -0
  939. package/es/extensions/forms/hooks/index.js.map +1 -1
  940. package/es/extensions/forms/hooks/useDataValue.d.ts +12 -7
  941. package/es/extensions/forms/hooks/useDataValue.js +158 -36
  942. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  943. package/es/extensions/forms/hooks/useErrorMessage.d.ts +10 -0
  944. package/es/extensions/forms/hooks/useErrorMessage.js +15 -0
  945. package/es/extensions/forms/hooks/useErrorMessage.js.map +1 -0
  946. package/es/extensions/forms/hooks/useId.js +1 -1
  947. package/es/extensions/forms/hooks/useId.js.map +1 -1
  948. package/es/extensions/forms/hooks/useMountEffect.js +1 -1
  949. package/es/extensions/forms/hooks/useMountEffect.js.map +1 -1
  950. package/es/extensions/forms/hooks/useUnmountEffect.d.ts +4 -0
  951. package/es/extensions/forms/hooks/useUnmountEffect.js +9 -0
  952. package/es/extensions/forms/hooks/useUnmountEffect.js.map +1 -0
  953. package/es/extensions/forms/index.d.ts +1 -0
  954. package/es/extensions/forms/index.js +1 -0
  955. package/es/extensions/forms/index.js.map +1 -1
  956. package/es/extensions/forms/style/dnb-forms.css +65 -12
  957. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  958. package/es/extensions/forms/types.d.ts +25 -10
  959. package/es/extensions/forms/types.js.map +1 -1
  960. package/es/extensions/forms/utils/ajv.d.ts +47 -6
  961. package/es/extensions/forms/utils/ajv.js +23 -15
  962. package/es/extensions/forms/utils/ajv.js.map +1 -1
  963. package/es/extensions/forms/utils/index.d.ts +0 -1
  964. package/es/extensions/forms/utils/index.js +0 -1
  965. package/es/extensions/forms/utils/index.js.map +1 -1
  966. package/es/shared/Context.d.ts +2 -0
  967. package/es/shared/Context.js.map +1 -1
  968. package/es/shared/Eufemia.d.ts +1 -1
  969. package/es/shared/Eufemia.js +2 -2
  970. package/es/shared/Eufemia.js.map +1 -1
  971. package/es/shared/component-helper.d.ts +1 -0
  972. package/es/shared/component-helper.js +6 -3
  973. package/es/shared/component-helper.js.map +1 -1
  974. package/es/shared/helpers/filterValidProps.d.ts +2 -2
  975. package/es/shared/helpers/filterValidProps.js +2 -2
  976. package/es/shared/helpers/filterValidProps.js.map +1 -1
  977. package/es/shared/helpers/useSharedState.d.ts +28 -7
  978. package/es/shared/helpers/useSharedState.js +62 -43
  979. package/es/shared/helpers/useSharedState.js.map +1 -1
  980. package/es/shared/helpers/withCamelCaseProps.d.ts +7 -1
  981. package/es/shared/helpers/withCamelCaseProps.js.map +1 -1
  982. package/es/shared/locales/en-GB.d.ts +6 -3
  983. package/es/shared/locales/en-GB.js +8 -5
  984. package/es/shared/locales/en-GB.js.map +1 -1
  985. package/es/shared/locales/en-US.d.ts +6 -3
  986. package/es/shared/locales/index.d.ts +12 -6
  987. package/es/shared/locales/nb-NO.d.ts +6 -3
  988. package/es/shared/locales/nb-NO.js +8 -5
  989. package/es/shared/locales/nb-NO.js.map +1 -1
  990. package/es/shared/types.d.ts +5 -0
  991. package/es/shared/types.js.map +1 -1
  992. package/es/style/core/utilities.scss +1 -1
  993. package/es/style/dnb-ui-components.css +364 -180
  994. package/es/style/dnb-ui-components.min.css +3 -3
  995. package/es/style/dnb-ui-elements.css +25 -5
  996. package/es/style/dnb-ui-elements.min.css +1 -1
  997. package/es/style/dnb-ui-extensions.css +65 -12
  998. package/es/style/dnb-ui-extensions.min.css +1 -1
  999. package/es/style/dnb-ui-forms.css +65 -12
  1000. package/es/style/dnb-ui-forms.min.css +1 -1
  1001. package/es/style/dnb-ui-forms.scss +1 -0
  1002. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +25 -5
  1003. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  1004. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +447 -223
  1005. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  1006. package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +25 -5
  1007. package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  1008. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +65 -12
  1009. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  1010. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +65 -12
  1011. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  1012. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +25 -5
  1013. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  1014. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +457 -218
  1015. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  1016. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +25 -5
  1017. package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  1018. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +65 -12
  1019. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  1020. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +65 -12
  1021. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  1022. package/es/style/themes/theme-ui/ui-theme-basis.css +25 -5
  1023. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  1024. package/es/style/themes/theme-ui/ui-theme-components.css +447 -223
  1025. package/es/style/themes/theme-ui/ui-theme-components.min.css +5 -5
  1026. package/es/style/themes/theme-ui/ui-theme-elements.css +25 -5
  1027. package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  1028. package/es/style/themes/theme-ui/ui-theme-extensions.css +65 -12
  1029. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  1030. package/es/style/themes/theme-ui/ui-theme-forms.css +65 -12
  1031. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  1032. package/es/style/themes/theme-ui/ui-theme-tags.css +25 -5
  1033. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  1034. package/esm/dnb-ui-basis.min.mjs +1 -1
  1035. package/esm/dnb-ui-components.min.mjs +1 -1
  1036. package/esm/dnb-ui-elements.min.mjs +1 -1
  1037. package/esm/dnb-ui-extensions.min.mjs +3 -3
  1038. package/esm/dnb-ui-lib.min.mjs +1 -1
  1039. package/extensions/forms/DataContext/Context.d.ts +19 -5
  1040. package/extensions/forms/DataContext/Context.js +9 -0
  1041. package/extensions/forms/DataContext/Context.js.map +1 -1
  1042. package/extensions/forms/DataContext/Provider/Provider.d.ts +57 -19
  1043. package/extensions/forms/DataContext/Provider/Provider.js +153 -65
  1044. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  1045. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +3 -2
  1046. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  1047. package/extensions/forms/Field/Currency/Currency.js +1 -1
  1048. package/extensions/forms/Field/Currency/Currency.js.map +1 -1
  1049. package/extensions/forms/Field/Date/Date.js +4 -3
  1050. package/extensions/forms/Field/Date/Date.js.map +1 -1
  1051. package/extensions/forms/Field/Email/Email.js +4 -3
  1052. package/extensions/forms/Field/Email/Email.js.map +1 -1
  1053. package/extensions/forms/Field/Expiry/Expiry.js +6 -4
  1054. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  1055. package/extensions/forms/Field/FieldDocs.d.ts +3 -0
  1056. package/extensions/forms/Field/FieldDocs.js +8 -0
  1057. package/extensions/forms/Field/FieldDocs.js.map +1 -0
  1058. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +3 -2
  1059. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  1060. package/extensions/forms/Field/Number/Number.d.ts +3 -4
  1061. package/extensions/forms/Field/Number/Number.js +25 -20
  1062. package/extensions/forms/Field/Number/Number.js.map +1 -1
  1063. package/extensions/forms/Field/Number/NumberDocs.d.ts +2 -0
  1064. package/extensions/forms/Field/Number/NumberDocs.js +85 -0
  1065. package/extensions/forms/Field/Number/NumberDocs.js.map +1 -0
  1066. package/extensions/forms/Field/Number/style/dnb-number.css +3 -1
  1067. package/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
  1068. package/extensions/forms/Field/Number/style/dnb-number.scss +4 -1
  1069. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +3 -2
  1070. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  1071. package/extensions/forms/Field/Password/Password.d.ts +45 -0
  1072. package/extensions/forms/Field/Password/Password.js +99 -0
  1073. package/extensions/forms/Field/Password/Password.js.map +1 -0
  1074. package/extensions/forms/Field/Password/index.d.ts +2 -0
  1075. package/extensions/forms/Field/Password/index.js +3 -0
  1076. package/extensions/forms/Field/Password/index.js.map +1 -0
  1077. package/extensions/forms/Field/Password/style/dnb-password.css +6 -0
  1078. package/extensions/forms/Field/Password/style/dnb-password.min.css +1 -0
  1079. package/extensions/forms/Field/Password/style/dnb-password.scss +10 -0
  1080. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +3 -2
  1081. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  1082. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -5
  1083. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  1084. package/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +3 -6
  1085. package/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
  1086. package/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.scss +2 -6
  1087. package/extensions/forms/Field/SelectCountry/SelectCountry.js +3 -2
  1088. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  1089. package/extensions/forms/Field/Selection/Selection.d.ts +0 -1
  1090. package/extensions/forms/Field/Selection/Selection.js +2 -11
  1091. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  1092. package/extensions/forms/Field/String/String.d.ts +22 -11
  1093. package/extensions/forms/Field/String/String.js +55 -32
  1094. package/extensions/forms/Field/String/String.js.map +1 -1
  1095. package/extensions/forms/Field/String/StringDocs.d.ts +2 -0
  1096. package/extensions/forms/Field/String/StringDocs.js +99 -0
  1097. package/extensions/forms/Field/String/StringDocs.js.map +1 -0
  1098. package/extensions/forms/Field/Toggle/Toggle.js +6 -3
  1099. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  1100. package/extensions/forms/Field/index.d.ts +1 -0
  1101. package/extensions/forms/Field/index.js +1 -0
  1102. package/extensions/forms/Field/index.js.map +1 -1
  1103. package/extensions/forms/FieldBlock/FieldBlock.d.ts +8 -3
  1104. package/extensions/forms/FieldBlock/FieldBlock.js +203 -66
  1105. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  1106. package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +40 -6
  1107. package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  1108. package/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +2 -0
  1109. package/extensions/forms/FieldBlock/FieldBlockDocs.js +53 -0
  1110. package/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -0
  1111. package/extensions/forms/FieldBlock/style/dnb-field-block.css +46 -5
  1112. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  1113. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +51 -1
  1114. package/extensions/forms/Form/Appearance/Appearance.d.ts +7 -0
  1115. package/extensions/forms/Form/Appearance/Appearance.js +30 -0
  1116. package/extensions/forms/Form/Appearance/Appearance.js.map +1 -0
  1117. package/extensions/forms/Form/Appearance/AppearanceDocs.d.ts +2 -0
  1118. package/extensions/forms/Form/Appearance/AppearanceDocs.js +8 -0
  1119. package/extensions/forms/Form/Appearance/AppearanceDocs.js.map +1 -0
  1120. package/extensions/forms/Form/Appearance/index.d.ts +2 -0
  1121. package/extensions/forms/Form/Appearance/index.js +3 -0
  1122. package/extensions/forms/Form/Appearance/index.js.map +1 -0
  1123. package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  1124. package/extensions/forms/Form/Handler/Handler.js +7 -1
  1125. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  1126. package/extensions/forms/Form/Visibility/Visibility.d.ts +6 -1
  1127. package/extensions/forms/Form/Visibility/Visibility.js +53 -39
  1128. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  1129. package/extensions/forms/Form/data-context/getData.d.ts +8 -0
  1130. package/extensions/forms/Form/data-context/getData.js +15 -0
  1131. package/extensions/forms/Form/data-context/getData.js.map +1 -0
  1132. package/extensions/forms/Form/data-context/setData.d.ts +2 -0
  1133. package/extensions/forms/Form/data-context/setData.js +6 -0
  1134. package/extensions/forms/Form/data-context/setData.js.map +1 -0
  1135. package/extensions/forms/Form/data-context/useData.d.ts +22 -0
  1136. package/extensions/forms/Form/data-context/useData.js +59 -0
  1137. package/extensions/forms/Form/data-context/useData.js.map +1 -0
  1138. package/extensions/forms/Form/data-context/useError.d.ts +5 -0
  1139. package/extensions/forms/Form/data-context/useError.js +13 -0
  1140. package/extensions/forms/Form/data-context/useError.js.map +1 -0
  1141. package/extensions/forms/Form/index.d.ts +5 -1
  1142. package/extensions/forms/Form/index.js +5 -1
  1143. package/extensions/forms/Form/index.js.map +1 -1
  1144. package/extensions/forms/Iterate/Array/Array.d.ts +2 -2
  1145. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  1146. package/extensions/forms/StepsLayout/StepsLayout.d.ts +3 -0
  1147. package/extensions/forms/StepsLayout/StepsLayout.js +31 -22
  1148. package/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  1149. package/extensions/forms/StepsLayout/style/dnb-steps-layout.css +6 -0
  1150. package/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  1151. package/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +7 -0
  1152. package/extensions/forms/Value/Currency/Currency.js +3 -4
  1153. package/extensions/forms/Value/Currency/Currency.js.map +1 -1
  1154. package/extensions/forms/Value/Number/Number.d.ts +6 -10
  1155. package/extensions/forms/Value/Number/Number.js +22 -27
  1156. package/extensions/forms/Value/Number/Number.js.map +1 -1
  1157. package/extensions/forms/Value/PhoneNumber/PhoneNumber.js +6 -4
  1158. package/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
  1159. package/extensions/forms/Value/SummaryList/SummaryList.d.ts +7 -0
  1160. package/extensions/forms/Value/SummaryList/SummaryList.js +26 -0
  1161. package/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -0
  1162. package/extensions/forms/Value/SummaryList/SummaryListContext.d.ts +7 -0
  1163. package/extensions/forms/Value/SummaryList/SummaryListContext.js +4 -0
  1164. package/extensions/forms/Value/SummaryList/SummaryListContext.js.map +1 -0
  1165. package/extensions/forms/Value/SummaryList/index.d.ts +2 -0
  1166. package/extensions/forms/Value/SummaryList/index.js +3 -0
  1167. package/extensions/forms/Value/SummaryList/index.js.map +1 -0
  1168. package/extensions/forms/Value/ValueDocs.d.ts +2 -0
  1169. package/extensions/forms/Value/ValueDocs.js +33 -0
  1170. package/extensions/forms/Value/ValueDocs.js.map +1 -0
  1171. package/extensions/forms/Value/index.d.ts +1 -0
  1172. package/extensions/forms/Value/index.js +1 -0
  1173. package/extensions/forms/Value/index.js.map +1 -1
  1174. package/extensions/forms/ValueBlock/ValueBlock.js +12 -4
  1175. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  1176. package/extensions/forms/hooks/DataValueDocs.d.ts +3 -0
  1177. package/extensions/forms/hooks/DataValueDocs.js +110 -0
  1178. package/extensions/forms/hooks/DataValueDocs.js.map +1 -0
  1179. package/extensions/forms/hooks/index.d.ts +1 -0
  1180. package/extensions/forms/hooks/index.js +1 -0
  1181. package/extensions/forms/hooks/index.js.map +1 -1
  1182. package/extensions/forms/hooks/useDataValue.d.ts +12 -7
  1183. package/extensions/forms/hooks/useDataValue.js +160 -36
  1184. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  1185. package/extensions/forms/hooks/useErrorMessage.d.ts +10 -0
  1186. package/extensions/forms/hooks/useErrorMessage.js +15 -0
  1187. package/extensions/forms/hooks/useErrorMessage.js.map +1 -0
  1188. package/extensions/forms/hooks/useId.js +1 -1
  1189. package/extensions/forms/hooks/useId.js.map +1 -1
  1190. package/extensions/forms/hooks/useMountEffect.js +1 -1
  1191. package/extensions/forms/hooks/useMountEffect.js.map +1 -1
  1192. package/extensions/forms/hooks/useUnmountEffect.d.ts +4 -0
  1193. package/extensions/forms/hooks/useUnmountEffect.js +9 -0
  1194. package/extensions/forms/hooks/useUnmountEffect.js.map +1 -0
  1195. package/extensions/forms/index.d.ts +1 -0
  1196. package/extensions/forms/index.js +1 -0
  1197. package/extensions/forms/index.js.map +1 -1
  1198. package/extensions/forms/style/dnb-forms.css +65 -12
  1199. package/extensions/forms/style/dnb-forms.min.css +1 -1
  1200. package/extensions/forms/types.d.ts +25 -10
  1201. package/extensions/forms/types.js.map +1 -1
  1202. package/extensions/forms/utils/ajv.d.ts +47 -6
  1203. package/extensions/forms/utils/ajv.js +23 -15
  1204. package/extensions/forms/utils/ajv.js.map +1 -1
  1205. package/extensions/forms/utils/index.d.ts +0 -1
  1206. package/extensions/forms/utils/index.js +0 -1
  1207. package/extensions/forms/utils/index.js.map +1 -1
  1208. package/package.json +1 -1
  1209. package/shared/Context.d.ts +2 -0
  1210. package/shared/Context.js.map +1 -1
  1211. package/shared/Eufemia.d.ts +1 -1
  1212. package/shared/Eufemia.js +2 -2
  1213. package/shared/Eufemia.js.map +1 -1
  1214. package/shared/component-helper.d.ts +1 -0
  1215. package/shared/component-helper.js +9 -3
  1216. package/shared/component-helper.js.map +1 -1
  1217. package/shared/helpers/filterValidProps.d.ts +2 -2
  1218. package/shared/helpers/filterValidProps.js +2 -2
  1219. package/shared/helpers/filterValidProps.js.map +1 -1
  1220. package/shared/helpers/useSharedState.d.ts +28 -7
  1221. package/shared/helpers/useSharedState.js +62 -43
  1222. package/shared/helpers/useSharedState.js.map +1 -1
  1223. package/shared/helpers/withCamelCaseProps.d.ts +7 -1
  1224. package/shared/helpers/withCamelCaseProps.js.map +1 -1
  1225. package/shared/locales/en-GB.d.ts +6 -3
  1226. package/shared/locales/en-GB.js +8 -5
  1227. package/shared/locales/en-GB.js.map +1 -1
  1228. package/shared/locales/en-US.d.ts +6 -3
  1229. package/shared/locales/index.d.ts +12 -6
  1230. package/shared/locales/nb-NO.d.ts +6 -3
  1231. package/shared/locales/nb-NO.js +8 -5
  1232. package/shared/locales/nb-NO.js.map +1 -1
  1233. package/shared/types.d.ts +5 -0
  1234. package/shared/types.js.map +1 -1
  1235. package/style/core/utilities.scss +1 -1
  1236. package/style/dnb-ui-components.css +364 -180
  1237. package/style/dnb-ui-components.min.css +3 -3
  1238. package/style/dnb-ui-elements.css +25 -5
  1239. package/style/dnb-ui-elements.min.css +1 -1
  1240. package/style/dnb-ui-extensions.css +65 -12
  1241. package/style/dnb-ui-extensions.min.css +1 -1
  1242. package/style/dnb-ui-forms.css +65 -12
  1243. package/style/dnb-ui-forms.min.css +1 -1
  1244. package/style/dnb-ui-forms.scss +1 -0
  1245. package/style/themes/theme-eiendom/eiendom-theme-basis.css +25 -5
  1246. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  1247. package/style/themes/theme-eiendom/eiendom-theme-components.css +447 -223
  1248. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  1249. package/style/themes/theme-eiendom/eiendom-theme-elements.css +25 -5
  1250. package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  1251. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +65 -12
  1252. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  1253. package/style/themes/theme-eiendom/eiendom-theme-forms.css +65 -12
  1254. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  1255. package/style/themes/theme-sbanken/sbanken-theme-basis.css +25 -5
  1256. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  1257. package/style/themes/theme-sbanken/sbanken-theme-components.css +457 -218
  1258. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  1259. package/style/themes/theme-sbanken/sbanken-theme-elements.css +25 -5
  1260. package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  1261. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +65 -12
  1262. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  1263. package/style/themes/theme-sbanken/sbanken-theme-forms.css +65 -12
  1264. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  1265. package/style/themes/theme-ui/ui-theme-basis.css +25 -5
  1266. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  1267. package/style/themes/theme-ui/ui-theme-components.css +447 -223
  1268. package/style/themes/theme-ui/ui-theme-components.min.css +5 -5
  1269. package/style/themes/theme-ui/ui-theme-elements.css +25 -5
  1270. package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  1271. package/style/themes/theme-ui/ui-theme-extensions.css +65 -12
  1272. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  1273. package/style/themes/theme-ui/ui-theme-forms.css +65 -12
  1274. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  1275. package/style/themes/theme-ui/ui-theme-tags.css +25 -5
  1276. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  1277. package/umd/dnb-ui-basis.min.js +1 -1
  1278. package/umd/dnb-ui-components.min.js +1 -1
  1279. package/umd/dnb-ui-elements.min.js +1 -1
  1280. package/umd/dnb-ui-extensions.min.js +3 -3
  1281. package/umd/dnb-ui-lib.min.js +1 -1
  1282. package/cjs/components/global-status/AnimationHelper.d.ts +0 -12
  1283. package/cjs/components/global-status/AnimationHelper.js +0 -109
  1284. package/cjs/components/global-status/AnimationHelper.js.map +0 -1
  1285. package/cjs/extensions/forms/Form/hooks/useData.d.ts +0 -10
  1286. package/cjs/extensions/forms/Form/hooks/useData.js +0 -39
  1287. package/cjs/extensions/forms/Form/hooks/useData.js.map +0 -1
  1288. package/cjs/extensions/forms/utils/numbers.d.ts +0 -17
  1289. package/cjs/extensions/forms/utils/numbers.js +0 -42
  1290. package/cjs/extensions/forms/utils/numbers.js.map +0 -1
  1291. package/components/global-status/AnimationHelper.d.ts +0 -12
  1292. package/components/global-status/AnimationHelper.js +0 -100
  1293. package/components/global-status/AnimationHelper.js.map +0 -1
  1294. package/es/components/global-status/AnimationHelper.d.ts +0 -12
  1295. package/es/components/global-status/AnimationHelper.js +0 -100
  1296. package/es/components/global-status/AnimationHelper.js.map +0 -1
  1297. package/es/extensions/forms/Form/hooks/useData.d.ts +0 -10
  1298. package/es/extensions/forms/Form/hooks/useData.js +0 -32
  1299. package/es/extensions/forms/Form/hooks/useData.js.map +0 -1
  1300. package/es/extensions/forms/utils/numbers.d.ts +0 -17
  1301. package/es/extensions/forms/utils/numbers.js +0 -35
  1302. package/es/extensions/forms/utils/numbers.js.map +0 -1
  1303. package/extensions/forms/Form/hooks/useData.d.ts +0 -10
  1304. package/extensions/forms/Form/hooks/useData.js +0 -33
  1305. package/extensions/forms/Form/hooks/useData.js.map +0 -1
  1306. package/extensions/forms/utils/numbers.d.ts +0 -17
  1307. package/extensions/forms/utils/numbers.js +0 -35
  1308. package/extensions/forms/utils/numbers.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputMaskedDocs.js","names":["inputMaskedProperties","as_number","doc","type","status","as_percent","as_currency","mask_options","number_mask","currency_mask","number_format","locale","mask","show_mask","show_guide","placeholder_char","keep_char_positions"],"sources":["../../../../src/components/input-masked/InputMaskedDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const inputMaskedProperties: PropertiesTableProps = {\n as_number: {\n doc: 'Set to `true` to automatically set a number mask based on the given or inherited locale.',\n type: 'boolean',\n status: 'optional',\n },\n as_percent: {\n doc: 'Set to `true` to automatically set a number mask with a percentage sign based on the given or inherited locale.',\n type: 'boolean',\n status: 'optional',\n },\n as_currency: {\n doc: 'Set to `true` to use `NOK` or give it a currency code e.g. `USD` to automatically set a currency mask based on the given or inherited locale.',\n type: 'boolean',\n status: 'optional',\n },\n mask_options: {\n doc: 'Use it to manipulate internal masks. You can use it instead of e.g. `number_mask` or `currency_mask`. All options are listed below.',\n type: 'object',\n status: 'optional',\n },\n number_mask: {\n doc: 'Set to `true` to enable the default numbers formatting – or give an `object` containing the number mask properties. More details below. Can be a JSON string as well, containing the number mask properties. Is disabled by default.',\n type: ['boolean', 'object'],\n status: 'optional',\n },\n currency_mask: {\n doc: 'Set to `true` or set the _valuta_ (currency_mask=\"kr\") to enable a custom currency mask – or give an `object` containing the number mask properties. More details below. Can be a JSON string as well, containing the number mask properties. Is disabled by default. Defaults to `kr`.',\n type: ['boolean', 'object'],\n status: 'optional',\n },\n number_format: {\n doc: 'Use an object with [NumberFormat](/uilib/components/number-format/properties) e.g. `{ omit_rounding: false }`.',\n type: 'object',\n status: 'optional',\n },\n locale: {\n doc: 'Define the locale to be used in the `as_number` or `as_currency` masked. It will be inherited from the [Eufemia Provider](/uilib/usage/customisation/provider) if not given. Defaults to `nb-NO`.',\n type: 'string',\n status: 'optional',\n },\n mask: {\n doc: 'A mask can be defined both as a [RegExp style of characters](https://github.com/text-mask/text-mask/blob/master/componentDocumentation.md#readme) or a callback function. Example below.',\n type: ['RegExp', 'function'],\n status: 'optional',\n },\n show_mask: {\n doc: 'Show mask when input is empty and has no focus. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n show_guide: {\n doc: \"When `false` is given, it doesn't print out placeholder characters and only adds mask characters when the user reaches them as they're typing. Defaults to `true`.\",\n type: 'boolean',\n status: 'optional',\n },\n placeholder_char: {\n doc: 'The placeholder character represents the fillable spot in the mask (e.g. `_`). Defaults to invisible space.',\n type: 'string',\n status: 'optional',\n },\n keep_char_positions: {\n doc: 'When `true`, adding or deleting characters will not affect the positions of existing characters. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n '[Input](/uilib/components/input/properties)': {\n doc: 'All `Input` properties are supported.',\n type: 'Various',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,qBAA2C,GAAG;EACzDC,SAAS,EAAE;IACTC,GAAG,EAAE,0FAA0F;IAC/FC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDC,UAAU,EAAE;IACVH,GAAG,EAAE,iHAAiH;IACtHC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDE,WAAW,EAAE;IACXJ,GAAG,EAAE,+IAA+I;IACpJC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDG,YAAY,EAAE;IACZL,GAAG,EAAE,qIAAqI;IAC1IC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,WAAW,EAAE;IACXN,GAAG,EAAE,sOAAsO;IAC3OC,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC3BC,MAAM,EAAE;EACV,CAAC;EACDK,aAAa,EAAE;IACbP,GAAG,EAAE,yRAAyR;IAC9RC,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC3BC,MAAM,EAAE;EACV,CAAC;EACDM,aAAa,EAAE;IACbR,GAAG,EAAE,gHAAgH;IACrHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,MAAM,EAAE;IACNT,GAAG,EAAE,mMAAmM;IACxMC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,IAAI,EAAE;IACJV,GAAG,EAAE,0LAA0L;IAC/LC,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC5BC,MAAM,EAAE;EACV,CAAC;EACDS,SAAS,EAAE;IACTX,GAAG,EAAE,sEAAsE;IAC3EC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDU,UAAU,EAAE;IACVZ,GAAG,EAAE,oKAAoK;IACzKC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDW,gBAAgB,EAAE;IAChBb,GAAG,EAAE,6GAA6G;IAClHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDY,mBAAmB,EAAE;IACnBd,GAAG,EAAE,uHAAuH;IAC5HC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV,CAAC;EACD,6CAA6C,EAAE;IAC7CF,GAAG,EAAE,uCAAuC;IAC5CC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV;AACF,CAAC"}
@@ -14,6 +14,7 @@ import createNumberMask from './addons/createNumberMask';
14
14
  import keycode from 'keycode';
15
15
  import InputMaskedContext from './InputMaskedContext';
16
16
  import { isRequestingLocaleSupport, isRequestingNumberMask, correctNumberValue, handlePercentMask, handleCurrencyMask, handleNumberMask, correctCaretPosition, getSoftKeyboardAttributes, handleThousandsSeparator, handleDecimalSeparator, fromJSON, invisibleSpace } from './InputMaskedUtils';
17
+ const useLayoutEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;
17
18
  export const useFilteredProps = () => {
18
19
  const {
19
20
  props
@@ -147,11 +148,11 @@ export const useInputElement = () => {
147
148
  const isFn = typeof inner_ref === 'function';
148
149
  const refHook = React.useRef();
149
150
  const ref = !isFn && inner_ref || refHook;
150
- React.useLayoutEffect(() => {
151
+ useLayoutEffect(() => {
151
152
  if (isFn) {
152
153
  inner_ref === null || inner_ref === void 0 ? void 0 : inner_ref(ref.current);
153
154
  }
154
- }, [ref.current]);
155
+ }, [inner_ref, isFn, ref]);
155
156
  const inputElementRef = React.useRef(React.createElement("input", {
156
157
  ref: ref
157
158
  }));
@@ -311,7 +312,8 @@ const useNumberMaskParams = () => {
311
312
  const {
312
313
  as_number,
313
314
  as_percent,
314
- as_currency
315
+ as_currency,
316
+ value
315
317
  } = props;
316
318
  mask_options = fromJSON(mask_options);
317
319
  number_mask = isTrue(number_mask) ? {} : fromJSON(number_mask);
@@ -330,10 +332,11 @@ const useNumberMaskParams = () => {
330
332
  thousandsSeparatorSymbol
331
333
  });
332
334
  } else if (as_currency) {
335
+ var _currency_mask2;
333
336
  currency_mask = extendPropsWithContext(currency_mask, null, {
334
337
  decimalSymbol,
335
338
  thousandsSeparatorSymbol,
336
- currency: getCurrencySymbol(locale, typeof as_currency === 'string' ? as_currency : null)
339
+ currency: getCurrencySymbol(locale, typeof as_currency === 'string' ? as_currency : null, (_currency_mask2 = currency_mask) === null || _currency_mask2 === void 0 ? void 0 : _currency_mask2.currencyDisplay, value)
337
340
  });
338
341
  }
339
342
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InputMaskedHooks.js","names":["React","classnames","cleanNumber","getCurrencySymbol","isTrue","dispatchCustomElementEvent","extendPropsWithContext","safeSetSelection","TextMask","createNumberMask","keycode","InputMaskedContext","isRequestingLocaleSupport","isRequestingNumberMask","correctNumberValue","handlePercentMask","handleCurrencyMask","handleNumberMask","correctCaretPosition","getSoftKeyboardAttributes","handleThousandsSeparator","handleDecimalSeparator","fromJSON","invisibleSpace","useFilteredProps","props","useContext","mask","number_mask","currency_mask","number_format","mask_options","as_currency","as_number","as_percent","locale","show_mask","show_guide","pipe","keep_char_positions","placeholder_char","attributes","_objectWithoutProperties","_excluded","htmlAttributes","Object","freeze","useLocale","context","useLocalValue","maskParams","useNumberMaskParams","localValue","setLocalValue","useState","useEffect","value","useNumberMask","useMask","numberMask","useMaskParams","placeholder","showMask","placeholderChar","showGuide","keepCharPositions","useInputElement","inner_ref","isFn","refHook","useRef","ref","useLayoutEffect","current","inputElementRef","createElement","InputElement","params","innerRef","_extends","inputRef","inputElement","guide","className","useEventMapping","callEvent","useCallEvent","onBeforeInput","event","onFocus","onBlur","onMouseUp","onMouseDown","onKeyDown","onSubmit","onChange","on_focus","undefined","on_blur","on_key_down","on_submit","on_change","isNumberMask","decimalSeparators","isUnidentified","name","target","selStart","selectionStart","keyCode","which","data","disallowLeadingZeroes","replace","test","testValue","slice","length","preventDefault","decimalSymbol","hasDecimalSymbol","includes","allowedDecimals","decimalLimit","allowDecimal","charAtSelection","index","indexOf","thousandsSeparatorSymbol","num","prefix","suffix","decimalSeparator","thousandsSeparator","numberValue","Number","cleanedValue","String","charAt","runCorrectCaretPosition","__getCorrectCaretPosition","result","_currency_mask","_objectSpread","currency"],"sources":["../../../../src/components/input-masked/InputMaskedHooks.js"],"sourcesContent":["/**\n * Web InputMasked Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport {\n cleanNumber,\n getCurrencySymbol,\n} from '../number-format/NumberUtils'\nimport {\n isTrue,\n dispatchCustomElementEvent,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport { safeSetSelection } from './text-mask/createTextMaskInputElement'\n\nimport TextMask from './TextMask'\nimport createNumberMask from './addons/createNumberMask'\nimport keycode from 'keycode'\nimport InputMaskedContext from './InputMaskedContext'\n\nimport {\n isRequestingLocaleSupport,\n isRequestingNumberMask,\n correctNumberValue,\n handlePercentMask,\n handleCurrencyMask,\n handleNumberMask,\n correctCaretPosition,\n getSoftKeyboardAttributes,\n handleThousandsSeparator,\n handleDecimalSeparator,\n fromJSON,\n invisibleSpace,\n} from './InputMaskedUtils'\n\n/**\n * Takes all component properties and filters out all internal used properties\n *\n * @returns object {props, htmlAttributes}\n */\nexport const useFilteredProps = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const {\n mask, // eslint-disable-line\n number_mask, // eslint-disable-line\n currency_mask, // eslint-disable-line\n number_format, // eslint-disable-line\n mask_options, // eslint-disable-line\n as_currency, // eslint-disable-line\n as_number, // eslint-disable-line\n as_percent, // eslint-disable-line\n locale, // eslint-disable-line\n show_mask, // eslint-disable-line\n show_guide, // eslint-disable-line\n pipe, // eslint-disable-line\n keep_char_positions, // eslint-disable-line\n placeholder_char, // eslint-disable-line\n\n // Get get rest of possible attributes\n ...attributes\n } = props\n\n return { props, htmlAttributes: Object.freeze(attributes) }\n}\n\n/**\n * Returns locale from either component or context\n *\n * @returns string\n */\nexport const useLocale = () => {\n const { props, context } = React.useContext(InputMaskedContext)\n\n let { locale } = props\n if (!locale && context?.locale) {\n locale = context.locale\n }\n\n return locale\n}\n\n/**\n * Handle internal value state\n *\n * It handles both the value state given as a prop form outside,\n * along with the current written and internal value.\n *\n * @returns object with internal value state and state setter\n */\nexport const useLocalValue = () => {\n const { props, context } = React.useContext(InputMaskedContext)\n const maskParams = useNumberMaskParams() || {}\n const locale = useLocale()\n\n const [localValue, setLocalValue] = React.useState(() =>\n correctNumberValue({\n locale,\n props,\n maskParams,\n })\n )\n\n /**\n * Use an effect here, just;\n * because when a property gets changed from outside\n */\n React.useEffect(() => {\n const value = correctNumberValue({\n localValue,\n locale,\n props,\n maskParams,\n })\n\n setLocalValue(value)\n\n // Do not set \"localValue\" and \"maskParams\" here\n }, [props, context, locale]) // eslint-disable-line\n\n return { localValue, setLocalValue }\n}\n\n/**\n * Create createNumberMask if number mask parameters exists\n *\n * @returns mask function\n */\nexport const useNumberMask = () => {\n const maskParams = useNumberMaskParams()\n const { props } = React.useContext(InputMaskedContext)\n\n if (!maskParams || !isRequestingNumberMask(props)) {\n return null\n }\n\n const mask = createNumberMask(maskParams)\n\n mask.maskParams = maskParams\n\n return mask\n}\n\n/**\n * Returns either internal mask or given property mask\n *\n * @returns mask function\n */\nexport const useMask = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const numberMask = useNumberMask()\n if (numberMask) {\n return numberMask\n }\n\n return props.mask\n}\n\n/**\n * Returns the final mask params\n *\n * @returns mask params\n */\nexport const useMaskParams = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const {\n keep_char_positions,\n show_guide,\n show_mask,\n placeholder_char,\n placeholder,\n } = props\n\n const mask = useMask()\n const maskParams = useNumberMaskParams() || {}\n\n maskParams.showMask = !placeholder && isTrue(show_mask)\n\n // Revalidated placeholder char to a zero width space\n maskParams.placeholderChar = placeholder_char\n if (typeof mask?.placeholderChar !== 'undefined') {\n maskParams.placeholderChar = mask.placeholderChar\n }\n if (maskParams.placeholderChar === null) {\n maskParams.placeholderChar = invisibleSpace\n }\n\n if (typeof mask?.showMask !== 'undefined') {\n maskParams.showMask = mask.showMask\n }\n\n maskParams.showGuide = isTrue(show_guide)\n maskParams.keepCharPositions = isTrue(keep_char_positions)\n\n return maskParams\n}\n\n/**\n * Handle the TextMask dependency\n *\n * @returns React Element\n */\nexport const useInputElement = () => {\n const { props } = React.useContext(InputMaskedContext)\n const { pipe, inner_ref } = props\n\n const mask = useMask()\n const { showMask, showGuide, placeholderChar, keepCharPositions } =\n useMaskParams()\n\n const isFn = typeof inner_ref === 'function'\n const refHook = React.useRef()\n const ref = (!isFn && inner_ref) || refHook\n\n React.useLayoutEffect(() => {\n if (isFn) {\n inner_ref?.(ref.current)\n }\n }, [ref.current])\n\n // Create the actual input element\n const inputElementRef = React.useRef(<input ref={ref} />)\n\n const InputElement = (params, innerRef) => {\n // Set ref for Eufemia input\n innerRef.current = ref.current\n\n return (\n <TextMask\n inputRef={ref}\n inputElement={inputElementRef.current}\n pipe={pipe}\n mask={mask || []}\n showMask={showMask}\n guide={showGuide}\n keepCharPositions={keepCharPositions}\n placeholderChar={placeholderChar}\n {...getSoftKeyboardAttributes(mask)}\n {...params}\n className={classnames(\n params.className,\n showMask &&\n showGuide &&\n placeholderChar &&\n placeholderChar !== invisibleSpace &&\n 'dnb-input-masked--guide' // will use --font-family-monospace\n )}\n />\n )\n }\n return InputElement\n}\n\n/**\n * Will map some events we need to map during typing\n *\n * @param {object} param0\n * @property {function} setLocalValue setState handler\n * @returns object of events to handle\n */\nexport const useEventMapping = ({ setLocalValue }) => {\n const callEvent = useCallEvent({ setLocalValue })\n\n return {\n onBeforeInput: (event) => callEvent({ event }, 'on_before_input'),\n onFocus: (params) => callEvent(params, 'on_focus'),\n onBlur: (params) => callEvent(params, 'on_blur'),\n onMouseUp: (event) => callEvent({ event }, 'on_mouse_up'),\n onMouseDown: (event) => callEvent({ event }, 'on_mouse_down'),\n onKeyDown: (params) => callEvent(params, 'on_key_down'),\n onSubmit: (params) => callEvent(params, 'on_submit'),\n onChange: (params) => callEvent(params, 'on_change'),\n\n on_focus: undefined,\n on_blur: undefined,\n on_key_down: undefined,\n on_submit: undefined,\n on_change: undefined,\n }\n}\n\n/**\n * Will map some events we need to map during typing\n *\n * @param {object} param0\n * @property {function} setLocalValue setState handler\n * @returns event handler function\n */\nconst useCallEvent = ({ setLocalValue }) => {\n const { props } = React.useContext(InputMaskedContext)\n const maskParams = useMaskParams()\n const isNumberMask = useNumberMask()\n\n // Source: https://en.wikipedia.org/wiki/Decimal_separator\n const decimalSeparators = /[,.'·]/\n let isUnidentified = false\n\n const callEvent = ({ event, value }, name) => {\n value = value || event.target.value\n const selStart = event.target.selectionStart\n let keyCode = keycode(event)\n\n // Android issue: https://bugs.chromium.org/p/chromium/issues/detail?id=118639\n if (\n name === 'on_key_down' &&\n (event.which === 229 || keyCode === undefined)\n ) {\n isUnidentified = true\n }\n\n // Android issue: https://bugs.chromium.org/p/chromium/issues/detail?id=118639\n // so we use this solution instead\n if (\n isUnidentified &&\n name === 'on_before_input' &&\n typeof event?.data !== 'undefined'\n ) {\n name = 'on_key_down'\n keyCode = event.data\n isUnidentified = false\n }\n\n // Prevent entering a leading zero\n if (\n name === 'on_key_down' &&\n !isUnidentified &&\n maskParams?.disallowLeadingZeroes &&\n (keyCode === '0' ||\n keyCode === 'numpad 0' ||\n (value.replace(/[^\\d]/g, '') === '' &&\n decimalSeparators.test(keyCode)))\n ) {\n const testValue = (\n value.slice(0, selStart) +\n '0' +\n value.slice(selStart + 1, value.length)\n ).replace(/[^\\d]/g, '')\n\n if (/^0/.test(testValue)) {\n event.preventDefault()\n }\n }\n\n if (\n name === 'on_key_down' &&\n isNumberMask &&\n !isUnidentified &&\n maskParams?.decimalSymbol\n ) {\n const hasDecimalSymbol = value.includes(maskParams.decimalSymbol)\n const allowedDecimals =\n maskParams.decimalLimit > 0 || maskParams.allowDecimal !== false\n\n if (!allowedDecimals && decimalSeparators.test(keyCode)) {\n event.preventDefault()\n }\n\n const charAtSelection = value.slice(selStart, selStart + 1)\n\n if (allowedDecimals) {\n // if we have already a decimal ...\n if (hasDecimalSymbol && decimalSeparators.test(keyCode)) {\n // ... we set the cursor on after the decimalSeparators\n if (decimalSeparators.test(charAtSelection)) {\n const index = value.indexOf(maskParams.decimalSymbol)\n if (index > -1) {\n safeSetSelection(event.target, index + 1)\n }\n }\n\n // ... we do not allow to type another\n event.preventDefault()\n }\n\n // replace other decimal\n else if (\n !hasDecimalSymbol &&\n keyCode !== maskParams.decimalSymbol &&\n decimalSeparators.test(keyCode)\n ) {\n value = value.slice(0, selStart)\n setLocalValue(value + maskParams.decimalSymbol)\n event.target.value = value + maskParams.decimalSymbol\n event.preventDefault()\n }\n }\n\n // move cursor to right if key is delete and char at selection is thousand separator\n if (\n keyCode === 'delete' &&\n charAtSelection === (maskParams.thousandsSeparatorSymbol || ' ')\n ) {\n safeSetSelection(event.target, selStart + 1)\n event.preventDefault()\n }\n }\n\n let num = cleanNumber(value, {\n prefix: maskParams.prefix,\n suffix: maskParams.suffix,\n decimalSeparator: maskParams.decimalSymbol || ',',\n thousandsSeparator: maskParams.thousandsSeparatorSymbol || ' ',\n })\n\n // We don't want to return NaN, so we set it to 0\n if (num === '-') {\n num = -0\n }\n\n const numberValue = Number(num)\n\n // Return '' (empty string) when the user has entered something invalid\n const cleanedValue =\n numberValue === 0 && String(num).charAt(0) !== '0' ? '' : num\n\n switch (name) {\n case 'on_focus':\n case 'on_key_down':\n case 'on_mouse_down':\n case 'on_mouse_up':\n event.target.runCorrectCaretPosition = () =>\n correctCaretPosition(event.target, maskParams, props)\n if (!event.target.__getCorrectCaretPosition) {\n event.target.runCorrectCaretPosition()\n }\n break\n }\n\n const result = dispatchCustomElementEvent(props, name, {\n event,\n value,\n numberValue,\n cleanedValue,\n })\n\n if (name === 'on_change') {\n setLocalValue(value)\n }\n\n return result\n }\n\n return callEvent\n}\n\n/**\n * Returns number mask parameters if requested by the component properties\n *\n * @returns object of number mask parameter\n */\nconst useNumberMaskParams = () => {\n const { props } = React.useContext(InputMaskedContext)\n const locale = useLocale()\n\n if (!isRequestingNumberMask(props)) {\n return { ...fromJSON(props.mask_options) }\n }\n\n let { number_mask, currency_mask, mask_options } = props\n\n const { as_number, as_percent, as_currency } = props\n\n mask_options = fromJSON(mask_options)\n number_mask = isTrue(number_mask) ? {} : fromJSON(number_mask)\n currency_mask = isTrue(currency_mask)\n ? {}\n : fromJSON(currency_mask, {\n currency: currency_mask,\n })\n if (!currency_mask?.currency) {\n delete currency_mask.currency\n }\n\n if (isRequestingLocaleSupport(props)) {\n const thousandsSeparatorSymbol = handleThousandsSeparator(locale)\n const decimalSymbol = handleDecimalSeparator(locale)\n\n if (isTrue(as_number) || isTrue(as_percent)) {\n number_mask = extendPropsWithContext(number_mask, null, {\n decimalSymbol,\n thousandsSeparatorSymbol,\n })\n } else if (as_currency) {\n currency_mask = extendPropsWithContext(currency_mask, null, {\n decimalSymbol,\n thousandsSeparatorSymbol,\n currency: getCurrencySymbol(\n locale,\n typeof as_currency === 'string' ? as_currency : null\n ),\n })\n }\n }\n\n let maskParams = null\n\n if (number_mask) {\n maskParams = handleNumberMask({\n mask_options,\n number_mask,\n })\n\n if (isTrue(as_percent)) {\n maskParams = handlePercentMask({ props, locale, maskParams })\n }\n } else if (currency_mask) {\n maskParams = handleCurrencyMask({\n mask_options,\n currency_mask,\n })\n }\n\n return maskParams\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"InputMaskedHooks.js","names":["React","classnames","cleanNumber","getCurrencySymbol","isTrue","dispatchCustomElementEvent","extendPropsWithContext","safeSetSelection","TextMask","createNumberMask","keycode","InputMaskedContext","isRequestingLocaleSupport","isRequestingNumberMask","correctNumberValue","handlePercentMask","handleCurrencyMask","handleNumberMask","correctCaretPosition","getSoftKeyboardAttributes","handleThousandsSeparator","handleDecimalSeparator","fromJSON","invisibleSpace","useLayoutEffect","window","useEffect","useFilteredProps","props","useContext","mask","number_mask","currency_mask","number_format","mask_options","as_currency","as_number","as_percent","locale","show_mask","show_guide","pipe","keep_char_positions","placeholder_char","attributes","_objectWithoutProperties","_excluded","htmlAttributes","Object","freeze","useLocale","context","useLocalValue","maskParams","useNumberMaskParams","localValue","setLocalValue","useState","value","useNumberMask","useMask","numberMask","useMaskParams","placeholder","showMask","placeholderChar","showGuide","keepCharPositions","useInputElement","inner_ref","isFn","refHook","useRef","ref","current","inputElementRef","createElement","InputElement","params","innerRef","_extends","inputRef","inputElement","guide","className","useEventMapping","callEvent","useCallEvent","onBeforeInput","event","onFocus","onBlur","onMouseUp","onMouseDown","onKeyDown","onSubmit","onChange","on_focus","undefined","on_blur","on_key_down","on_submit","on_change","isNumberMask","decimalSeparators","isUnidentified","name","target","selStart","selectionStart","keyCode","which","data","disallowLeadingZeroes","replace","test","testValue","slice","length","preventDefault","decimalSymbol","hasDecimalSymbol","includes","allowedDecimals","decimalLimit","allowDecimal","charAtSelection","index","indexOf","thousandsSeparatorSymbol","num","prefix","suffix","decimalSeparator","thousandsSeparator","numberValue","Number","cleanedValue","String","charAt","runCorrectCaretPosition","__getCorrectCaretPosition","result","_currency_mask","_objectSpread","currency","_currency_mask2","currencyDisplay"],"sources":["../../../../src/components/input-masked/InputMaskedHooks.js"],"sourcesContent":["/**\n * Web InputMasked Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport {\n cleanNumber,\n getCurrencySymbol,\n} from '../number-format/NumberUtils'\nimport {\n isTrue,\n dispatchCustomElementEvent,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport { safeSetSelection } from './text-mask/createTextMaskInputElement'\n\nimport TextMask from './TextMask'\nimport createNumberMask from './addons/createNumberMask'\nimport keycode from 'keycode'\nimport InputMaskedContext from './InputMaskedContext'\n\nimport {\n isRequestingLocaleSupport,\n isRequestingNumberMask,\n correctNumberValue,\n handlePercentMask,\n handleCurrencyMask,\n handleNumberMask,\n correctCaretPosition,\n getSoftKeyboardAttributes,\n handleThousandsSeparator,\n handleDecimalSeparator,\n fromJSON,\n invisibleSpace,\n} from './InputMaskedUtils'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\n/**\n * Takes all component properties and filters out all internal used properties\n *\n * @returns object {props, htmlAttributes}\n */\nexport const useFilteredProps = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const {\n mask, // eslint-disable-line\n number_mask, // eslint-disable-line\n currency_mask, // eslint-disable-line\n number_format, // eslint-disable-line\n mask_options, // eslint-disable-line\n as_currency, // eslint-disable-line\n as_number, // eslint-disable-line\n as_percent, // eslint-disable-line\n locale, // eslint-disable-line\n show_mask, // eslint-disable-line\n show_guide, // eslint-disable-line\n pipe, // eslint-disable-line\n keep_char_positions, // eslint-disable-line\n placeholder_char, // eslint-disable-line\n\n // Get get rest of possible attributes\n ...attributes\n } = props\n\n return { props, htmlAttributes: Object.freeze(attributes) }\n}\n\n/**\n * Returns locale from either component or context\n *\n * @returns string\n */\nexport const useLocale = () => {\n const { props, context } = React.useContext(InputMaskedContext)\n\n let { locale } = props\n if (!locale && context?.locale) {\n locale = context.locale\n }\n\n return locale\n}\n\n/**\n * Handle internal value state\n *\n * It handles both the value state given as a prop form outside,\n * along with the current written and internal value.\n *\n * @returns object with internal value state and state setter\n */\nexport const useLocalValue = () => {\n const { props, context } = React.useContext(InputMaskedContext)\n const maskParams = useNumberMaskParams() || {}\n const locale = useLocale()\n\n const [localValue, setLocalValue] = React.useState(() =>\n correctNumberValue({\n locale,\n props,\n maskParams,\n })\n )\n\n /**\n * Use an effect here, just;\n * because when a property gets changed from outside\n */\n React.useEffect(() => {\n const value = correctNumberValue({\n localValue,\n locale,\n props,\n maskParams,\n })\n\n setLocalValue(value)\n\n // Do not set \"localValue\" and \"maskParams\" here\n }, [props, context, locale]) // eslint-disable-line\n\n return { localValue, setLocalValue }\n}\n\n/**\n * Create createNumberMask if number mask parameters exists\n *\n * @returns mask function\n */\nexport const useNumberMask = () => {\n const maskParams = useNumberMaskParams()\n const { props } = React.useContext(InputMaskedContext)\n\n if (!maskParams || !isRequestingNumberMask(props)) {\n return null\n }\n\n const mask = createNumberMask(maskParams)\n\n mask.maskParams = maskParams\n\n return mask\n}\n\n/**\n * Returns either internal mask or given property mask\n *\n * @returns mask function\n */\nexport const useMask = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const numberMask = useNumberMask()\n if (numberMask) {\n return numberMask\n }\n\n return props.mask\n}\n\n/**\n * Returns the final mask params\n *\n * @returns mask params\n */\nexport const useMaskParams = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const {\n keep_char_positions,\n show_guide,\n show_mask,\n placeholder_char,\n placeholder,\n } = props\n\n const mask = useMask()\n const maskParams = useNumberMaskParams() || {}\n\n maskParams.showMask = !placeholder && isTrue(show_mask)\n\n // Revalidated placeholder char to a zero width space\n maskParams.placeholderChar = placeholder_char\n if (typeof mask?.placeholderChar !== 'undefined') {\n maskParams.placeholderChar = mask.placeholderChar\n }\n if (maskParams.placeholderChar === null) {\n maskParams.placeholderChar = invisibleSpace\n }\n\n if (typeof mask?.showMask !== 'undefined') {\n maskParams.showMask = mask.showMask\n }\n\n maskParams.showGuide = isTrue(show_guide)\n maskParams.keepCharPositions = isTrue(keep_char_positions)\n\n return maskParams\n}\n\n/**\n * Handle the TextMask dependency\n *\n * @returns React Element\n */\nexport const useInputElement = () => {\n const { props } = React.useContext(InputMaskedContext)\n const { pipe, inner_ref } = props\n\n const mask = useMask()\n const { showMask, showGuide, placeholderChar, keepCharPositions } =\n useMaskParams()\n\n const isFn = typeof inner_ref === 'function'\n const refHook = React.useRef()\n const ref = (!isFn && inner_ref) || refHook\n\n useLayoutEffect(() => {\n if (isFn) {\n inner_ref?.(ref.current)\n }\n }, [inner_ref, isFn, ref])\n\n // Create the actual input element\n const inputElementRef = React.useRef(<input ref={ref} />)\n\n const InputElement = (params, innerRef) => {\n // Set ref for Eufemia input\n innerRef.current = ref.current\n\n return (\n <TextMask\n inputRef={ref}\n inputElement={inputElementRef.current}\n pipe={pipe}\n mask={mask || []}\n showMask={showMask}\n guide={showGuide}\n keepCharPositions={keepCharPositions}\n placeholderChar={placeholderChar}\n {...getSoftKeyboardAttributes(mask)}\n {...params}\n className={classnames(\n params.className,\n showMask &&\n showGuide &&\n placeholderChar &&\n placeholderChar !== invisibleSpace &&\n 'dnb-input-masked--guide' // will use --font-family-monospace\n )}\n />\n )\n }\n return InputElement\n}\n\n/**\n * Will map some events we need to map during typing\n *\n * @param {object} param0\n * @property {function} setLocalValue setState handler\n * @returns object of events to handle\n */\nexport const useEventMapping = ({ setLocalValue }) => {\n const callEvent = useCallEvent({ setLocalValue })\n\n return {\n onBeforeInput: (event) => callEvent({ event }, 'on_before_input'),\n onFocus: (params) => callEvent(params, 'on_focus'),\n onBlur: (params) => callEvent(params, 'on_blur'),\n onMouseUp: (event) => callEvent({ event }, 'on_mouse_up'),\n onMouseDown: (event) => callEvent({ event }, 'on_mouse_down'),\n onKeyDown: (params) => callEvent(params, 'on_key_down'),\n onSubmit: (params) => callEvent(params, 'on_submit'),\n onChange: (params) => callEvent(params, 'on_change'),\n\n on_focus: undefined,\n on_blur: undefined,\n on_key_down: undefined,\n on_submit: undefined,\n on_change: undefined,\n }\n}\n\n/**\n * Will map some events we need to map during typing\n *\n * @param {object} param0\n * @property {function} setLocalValue setState handler\n * @returns event handler function\n */\nconst useCallEvent = ({ setLocalValue }) => {\n const { props } = React.useContext(InputMaskedContext)\n const maskParams = useMaskParams()\n const isNumberMask = useNumberMask()\n\n // Source: https://en.wikipedia.org/wiki/Decimal_separator\n const decimalSeparators = /[,.'·]/\n let isUnidentified = false\n\n const callEvent = ({ event, value }, name) => {\n value = value || event.target.value\n const selStart = event.target.selectionStart\n let keyCode = keycode(event)\n\n // Android issue: https://bugs.chromium.org/p/chromium/issues/detail?id=118639\n if (\n name === 'on_key_down' &&\n (event.which === 229 || keyCode === undefined)\n ) {\n isUnidentified = true\n }\n\n // Android issue: https://bugs.chromium.org/p/chromium/issues/detail?id=118639\n // so we use this solution instead\n if (\n isUnidentified &&\n name === 'on_before_input' &&\n typeof event?.data !== 'undefined'\n ) {\n name = 'on_key_down'\n keyCode = event.data\n isUnidentified = false\n }\n\n // Prevent entering a leading zero\n if (\n name === 'on_key_down' &&\n !isUnidentified &&\n maskParams?.disallowLeadingZeroes &&\n (keyCode === '0' ||\n keyCode === 'numpad 0' ||\n (value.replace(/[^\\d]/g, '') === '' &&\n decimalSeparators.test(keyCode)))\n ) {\n const testValue = (\n value.slice(0, selStart) +\n '0' +\n value.slice(selStart + 1, value.length)\n ).replace(/[^\\d]/g, '')\n\n if (/^0/.test(testValue)) {\n event.preventDefault()\n }\n }\n\n if (\n name === 'on_key_down' &&\n isNumberMask &&\n !isUnidentified &&\n maskParams?.decimalSymbol\n ) {\n const hasDecimalSymbol = value.includes(maskParams.decimalSymbol)\n const allowedDecimals =\n maskParams.decimalLimit > 0 || maskParams.allowDecimal !== false\n\n if (!allowedDecimals && decimalSeparators.test(keyCode)) {\n event.preventDefault()\n }\n\n const charAtSelection = value.slice(selStart, selStart + 1)\n\n if (allowedDecimals) {\n // if we have already a decimal ...\n if (hasDecimalSymbol && decimalSeparators.test(keyCode)) {\n // ... we set the cursor on after the decimalSeparators\n if (decimalSeparators.test(charAtSelection)) {\n const index = value.indexOf(maskParams.decimalSymbol)\n if (index > -1) {\n safeSetSelection(event.target, index + 1)\n }\n }\n\n // ... we do not allow to type another\n event.preventDefault()\n }\n\n // replace other decimal\n else if (\n !hasDecimalSymbol &&\n keyCode !== maskParams.decimalSymbol &&\n decimalSeparators.test(keyCode)\n ) {\n value = value.slice(0, selStart)\n setLocalValue(value + maskParams.decimalSymbol)\n event.target.value = value + maskParams.decimalSymbol\n event.preventDefault()\n }\n }\n\n // move cursor to right if key is delete and char at selection is thousand separator\n if (\n keyCode === 'delete' &&\n charAtSelection === (maskParams.thousandsSeparatorSymbol || ' ')\n ) {\n safeSetSelection(event.target, selStart + 1)\n event.preventDefault()\n }\n }\n\n let num = cleanNumber(value, {\n prefix: maskParams.prefix,\n suffix: maskParams.suffix,\n decimalSeparator: maskParams.decimalSymbol || ',',\n thousandsSeparator: maskParams.thousandsSeparatorSymbol || ' ',\n })\n\n // We don't want to return NaN, so we set it to 0\n if (num === '-') {\n num = -0\n }\n\n const numberValue = Number(num)\n\n // Return '' (empty string) when the user has entered something invalid\n const cleanedValue =\n numberValue === 0 && String(num).charAt(0) !== '0' ? '' : num\n\n switch (name) {\n case 'on_focus':\n case 'on_key_down':\n case 'on_mouse_down':\n case 'on_mouse_up':\n event.target.runCorrectCaretPosition = () =>\n correctCaretPosition(event.target, maskParams, props)\n if (!event.target.__getCorrectCaretPosition) {\n event.target.runCorrectCaretPosition()\n }\n break\n }\n\n const result = dispatchCustomElementEvent(props, name, {\n event,\n value,\n numberValue,\n cleanedValue,\n })\n\n if (name === 'on_change') {\n setLocalValue(value)\n }\n\n return result\n }\n\n return callEvent\n}\n\n/**\n * Returns number mask parameters if requested by the component properties\n *\n * @returns object of number mask parameter\n */\nconst useNumberMaskParams = () => {\n const { props } = React.useContext(InputMaskedContext)\n const locale = useLocale()\n\n if (!isRequestingNumberMask(props)) {\n return { ...fromJSON(props.mask_options) }\n }\n\n let { number_mask, currency_mask, mask_options } = props\n const { as_number, as_percent, as_currency, value } = props\n\n mask_options = fromJSON(mask_options)\n number_mask = isTrue(number_mask) ? {} : fromJSON(number_mask)\n currency_mask = isTrue(currency_mask)\n ? {}\n : fromJSON(currency_mask, {\n currency: currency_mask,\n })\n if (!currency_mask?.currency) {\n delete currency_mask.currency\n }\n\n if (isRequestingLocaleSupport(props)) {\n const thousandsSeparatorSymbol = handleThousandsSeparator(locale)\n const decimalSymbol = handleDecimalSeparator(locale)\n\n if (isTrue(as_number) || isTrue(as_percent)) {\n number_mask = extendPropsWithContext(number_mask, null, {\n decimalSymbol,\n thousandsSeparatorSymbol,\n })\n } else if (as_currency) {\n currency_mask = extendPropsWithContext(currency_mask, null, {\n decimalSymbol,\n thousandsSeparatorSymbol,\n currency: getCurrencySymbol(\n locale,\n typeof as_currency === 'string' ? as_currency : null,\n currency_mask?.currencyDisplay,\n value\n ),\n })\n }\n }\n\n let maskParams = null\n\n if (number_mask) {\n maskParams = handleNumberMask({\n mask_options,\n number_mask,\n })\n\n if (isTrue(as_percent)) {\n maskParams = handlePercentMask({ props, locale, maskParams })\n }\n } else if (currency_mask) {\n maskParams = handleCurrencyMask({\n mask_options,\n currency_mask,\n })\n }\n\n return maskParams\n}\n"],"mappings":"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"}
@@ -160,7 +160,7 @@ function MultiInputMaskInput(_ref3) {
160
160
  guide: true,
161
161
  showMask: true,
162
162
  keepCharPositions: false,
163
- "aria-labelledby": `${id}-${inputId}__label`,
163
+ "aria-label": label,
164
164
  ref: getInputRef,
165
165
  onKeyDown: onKeyDown,
166
166
  onBlur: onBlur,
@@ -180,11 +180,7 @@ function MultiInputMaskInput(_ref3) {
180
180
  onChange: event => {
181
181
  onChange(inputId, removePlaceholder(event.target.value, placeholderCharacter));
182
182
  }
183
- }, attributes)), React.createElement("label", {
184
- id: `${id}-${inputId}__label`,
185
- htmlFor: `${id}-${inputId}`,
186
- hidden: true
187
- }, label), delimiter && React.createElement("span", {
183
+ }, attributes)), delimiter && React.createElement("span", {
188
184
  "aria-hidden": true,
189
185
  className: 'dnb-multi-input-mask__delimiter' + (shouldHighlight ? " dnb-multi-input-mask__delimiter--highlight" : "")
190
186
  }, delimiter));
@@ -1 +1 @@
1
- {"version":3,"file":"MultiInputMask.js","names":["React","useRef","Input","TextMask","useHandleCursorPosition","classnames","FormLabel","createSpacingClasses","useMultiInputValue","makeUniqueId","MultiInputMask","_ref","id","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","_ref2","index","inputId","rest","_excluded2","MultiInputMaskInput","key","length","undefined","getInputRef","value","firstInput","focus","setSelectionRange","ref","inputRef","includes","push","uniqueMasks","getUniqueMasks","size","pattern","next","replace","RegExp","reduce","keys","mask","masks","Set","forEach","input","add","String","_ref3","placeholderCharacter","attributes","_excluded3","shouldHighlight","test","Fragment","placeholderChar","guide","showMask","keepCharPositions","_ref4","target","event","_excluded4","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 id = makeUniqueId(),\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(({ id: inputId, ...rest }, index) => {\n return (\n <MultiInputMaskInput\n key={inputId}\n id={id}\n inputId={inputId}\n delimiter={\n index !== inputs.length - 1 ? delimiter : undefined\n }\n disabled={disabled}\n inputMode={inputMode}\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 getInputRef={getInputRef}\n {...rest}\n value={values[inputId]}\n />\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?: {\n inputRef?: MutableRefObject<HTMLInputElement>\n }) {\n const inputRef = ref?.inputRef\n\n if (inputRef && !inputRefs.current.includes(inputRef)) {\n inputRefs.current.push(inputRef)\n }\n\n return inputRef\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 inputId: 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 getInputRef: () => MutableRefObject<HTMLInputElement>\n }\n\nfunction MultiInputMaskInput<T extends string>({\n id,\n inputId,\n label,\n value,\n mask,\n placeholderCharacter,\n delimiter,\n disabled,\n getInputRef,\n onKeyDown,\n onChange,\n onBlur,\n onFocus,\n ...attributes\n}: MultiInputMaskInputProps<T>) {\n const shouldHighlight = !disabled && /\\w+/.test(value)\n\n return (\n <>\n <TextMask\n id={`${id}-${inputId}`}\n data-mask-id={inputId}\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={`${id}-${inputId}__label`}\n ref={getInputRef}\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 inputId,\n removePlaceholder(event.target.value, placeholderCharacter)\n )\n }}\n {...attributes}\n />\n <label\n id={`${id}-${inputId}__label`}\n htmlFor={`${id}-${inputId}`}\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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"}
1
+ {"version":3,"file":"MultiInputMask.js","names":["React","useRef","Input","TextMask","useHandleCursorPosition","classnames","FormLabel","createSpacingClasses","useMultiInputValue","makeUniqueId","MultiInputMask","_ref","id","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","_ref2","index","inputId","rest","_excluded2","MultiInputMaskInput","key","length","undefined","getInputRef","value","firstInput","focus","setSelectionRange","ref","inputRef","includes","push","uniqueMasks","getUniqueMasks","size","pattern","next","replace","RegExp","reduce","keys","mask","masks","Set","forEach","input","add","String","_ref3","placeholderCharacter","attributes","_excluded3","shouldHighlight","test","Fragment","placeholderChar","guide","showMask","keepCharPositions","_ref4","target","event","_excluded4","select","_objectSpread","removePlaceholder","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 id = makeUniqueId(),\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(({ id: inputId, ...rest }, index) => {\n return (\n <MultiInputMaskInput\n key={inputId}\n id={id}\n inputId={inputId}\n delimiter={\n index !== inputs.length - 1 ? delimiter : undefined\n }\n disabled={disabled}\n inputMode={inputMode}\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 getInputRef={getInputRef}\n {...rest}\n value={values[inputId]}\n />\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?: {\n inputRef?: MutableRefObject<HTMLInputElement>\n }) {\n const inputRef = ref?.inputRef\n\n if (inputRef && !inputRefs.current.includes(inputRef)) {\n inputRefs.current.push(inputRef)\n }\n\n return inputRef\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 inputId: 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 getInputRef: () => MutableRefObject<HTMLInputElement>\n }\n\nfunction MultiInputMaskInput<T extends string>({\n id,\n inputId,\n label,\n value,\n mask,\n placeholderCharacter,\n delimiter,\n disabled,\n getInputRef,\n onKeyDown,\n onChange,\n onBlur,\n onFocus,\n ...attributes\n}: MultiInputMaskInputProps<T>) {\n const shouldHighlight = !disabled && /\\w+/.test(value)\n\n return (\n <>\n <TextMask\n id={`${id}-${inputId}`}\n data-mask-id={inputId}\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-label={label}\n ref={getInputRef}\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 inputId,\n removePlaceholder(event.target.value, placeholderCharacter)\n )\n }}\n {...attributes}\n />\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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"}
@@ -44,6 +44,9 @@
44
44
  .dnb-multi-input-mask__input.dnb-input__input:last-of-type {
45
45
  padding-right: 0.5rem;
46
46
  }
47
+ .dnb-input--medium .dnb-multi-input-mask__input.dnb-input__input, .dnb-input--large .dnb-multi-input-mask__input.dnb-input__input {
48
+ padding: 0 0.25rem;
49
+ }
47
50
 
48
51
  .dnb-multi-input-mask {
49
52
  width: -moz-fit-content;
@@ -1 +1 @@
1
- .dnb-input-masked--guide{font-family:var(--font-family-monospace)}.dnb-input-masked input::placeholder{color:inherit}.dnb-multi-input-mask__fieldset{border:none;margin:0;padding:0}.dnb-multi-input-mask__fieldset--horizontal{align-items:baseline;display:inline-flex;flex-flow:row wrap;gap:1rem}.dnb-multi-input-mask__input.dnb-input__input{background:transparent;border:none;display:inline-block;font-family:var(--font-family-monospace);margin:0;outline:none;overflow:visible;padding:0 .125rem;text-align:center;transform:translateY(0);white-space:nowrap;width:auto}.dnb-multi-input-mask__input.dnb-input__input:first-of-type{padding-left:.5rem}.dnb-multi-input-mask__input.dnb-input__input:last-of-type{padding-right:.5rem}.dnb-multi-input-mask{width:-moz-fit-content;width:fit-content}.dnb-multi-input-mask:not(.dnb-input__status--error) .dnb-multi-input-mask__delimiter,.dnb-multi-input-mask:not(.dnb-input__status--error) .dnb-multi-input-mask__input{color:var(--color-black-55)}.dnb-multi-input-mask:not(.dnb-input__status--error) .dnb-multi-input-mask__delimiter--highlight,.dnb-multi-input-mask:not(.dnb-input__status--error) .dnb-multi-input-mask__input--highlight{color:var(--color-black)}.dnb-multi-input-mask .dnb-input__shell:focus-within{box-shadow:0 0 0 var(--input-border-width--focus) var(--input-border-color--hover)}.dnb-multi-input-mask__legend--horizontal.dnb-form-label{display:contents}.dnb-multi-input-mask__legend:not([disabled]):hover~.dnb-multi-input-mask .dnb-input__shell{box-shadow:0 0 0 var(--input-border-width--focus) var(--input-border-color--hover)}
1
+ .dnb-input-masked--guide{font-family:var(--font-family-monospace)}.dnb-input-masked input::placeholder{color:inherit}.dnb-multi-input-mask__fieldset{border:none;margin:0;padding:0}.dnb-multi-input-mask__fieldset--horizontal{align-items:baseline;display:inline-flex;flex-flow:row wrap;gap:1rem}.dnb-multi-input-mask__input.dnb-input__input{background:transparent;border:none;display:inline-block;font-family:var(--font-family-monospace);margin:0;outline:none;overflow:visible;padding:0 .125rem;text-align:center;transform:translateY(0);white-space:nowrap;width:auto}.dnb-multi-input-mask__input.dnb-input__input:first-of-type{padding-left:.5rem}.dnb-multi-input-mask__input.dnb-input__input:last-of-type{padding-right:.5rem}.dnb-input--large .dnb-multi-input-mask__input.dnb-input__input,.dnb-input--medium .dnb-multi-input-mask__input.dnb-input__input{padding:0 .25rem}.dnb-multi-input-mask{width:-moz-fit-content;width:fit-content}.dnb-multi-input-mask:not(.dnb-input__status--error) .dnb-multi-input-mask__delimiter,.dnb-multi-input-mask:not(.dnb-input__status--error) .dnb-multi-input-mask__input{color:var(--color-black-55)}.dnb-multi-input-mask:not(.dnb-input__status--error) .dnb-multi-input-mask__delimiter--highlight,.dnb-multi-input-mask:not(.dnb-input__status--error) .dnb-multi-input-mask__input--highlight{color:var(--color-black)}.dnb-multi-input-mask .dnb-input__shell:focus-within{box-shadow:0 0 0 var(--input-border-width--focus) var(--input-border-color--hover)}.dnb-multi-input-mask__legend--horizontal.dnb-form-label{display:contents}.dnb-multi-input-mask__legend:not([disabled]):hover~.dnb-multi-input-mask .dnb-input__shell{box-shadow:0 0 0 var(--input-border-width--focus) var(--input-border-color--hover)}
@@ -56,6 +56,11 @@
56
56
  &:last-of-type {
57
57
  padding-right: 0.5rem;
58
58
  }
59
+
60
+ .dnb-input--medium &,
61
+ .dnb-input--large & {
62
+ padding: 0 0.25rem;
63
+ }
59
64
  }
60
65
 
61
66
  .dnb-multi-input-mask {
@@ -23,9 +23,7 @@ export type NumberFormatTooltip =
23
23
  export type NumberFormatChildren =
24
24
  | React.ReactNode
25
25
  | ((...args: any[]) => any);
26
- export interface NumberFormatProps
27
- extends React.HTMLProps<HTMLElement>,
28
- SpacingProps {
26
+ export type NumberFormatProps = {
29
27
  id?: string;
30
28
  /**
31
29
  * <em>(required)</em> a number.
@@ -48,7 +46,7 @@ export interface NumberFormatProps
48
46
  */
49
47
  currency?: NumberFormatCurrency;
50
48
  /**
51
- * Use either empty/false to hide the sign/name or use `code` (NOK), `name` (norske kroner) , `symbol` (kr) or `narrowSymbol` (for a shorter symbol variant). Defaults to `narrowSymbol` when the locale is `no` else we default to `code`.
49
+ * Use either empty/false to hide the sign/name or use `code` (NOK), `name` (kroner) , `symbol` (kr) or `narrowSymbol` (for a shorter symbol variant). Defaults to `narrowSymbol` when the locale is `no` else we default to `code`.
52
50
  */
53
51
  currency_display?:
54
52
  | 'code'
@@ -137,17 +135,14 @@ export interface NumberFormatProps
137
135
  * If set to `true`, an overlaying skeleton with animation will be shown.
138
136
  */
139
137
  skeleton?: SkeletonShow;
140
- class?: string;
141
- className?: string;
142
- /**
143
- * <em>(required)</em> a number.
144
- */
145
- children?: NumberFormatChildren;
146
- }
138
+ };
139
+ export type NumberFormatAllProps = NumberFormatProps &
140
+ Omit<React.HTMLProps<HTMLElement>, 'prefix'> &
141
+ SpacingProps;
147
142
  export default class NumberFormat extends React.Component<
148
- NumberFormatProps,
143
+ NumberFormatAllProps,
149
144
  any
150
145
  > {
151
- static defaultProps: NumberFormatProps;
146
+ static defaultProps: NumberFormatAllProps;
152
147
  render(): JSX.Element;
153
148
  }
@@ -141,7 +141,9 @@ export const format = (value, {
141
141
  if (currency_position) {
142
142
  formatter = currencyPositionFormatter(formatter, ({
143
143
  value
144
- }) => currencySuffix = value.trim(), currency_position);
144
+ }) => {
145
+ return currencySuffix = alignCurrencySymbol(value.trim(), currency_display);
146
+ }, currency_position);
145
147
  }
146
148
  display = formatNumber(cleanedNumber, locale, opts, formatter);
147
149
  display = prepareMinus(display, locale);
@@ -286,6 +288,12 @@ const prepareMinus = (display, locale) => {
286
288
  }
287
289
  return display;
288
290
  };
291
+ function alignCurrencySymbol(output, currencyDisplay) {
292
+ if (currencyDisplay === 'name') {
293
+ output = output.replace(/(nor[^\s]+?)\s(\w+)/i, '$2');
294
+ }
295
+ return output;
296
+ }
289
297
  const enhanceSR = (value, aria, locale) => {
290
298
  if (IS_MAC && Math.abs(parseFloat(value)) <= 99999) {
291
299
  aria = String(aria).replace(/\s([0-9])/g, '$1');
@@ -303,20 +311,20 @@ export const formatNumber = (number, locale, options = {}, formatter = null) =>
303
311
  formatter = getGroupFormatter(locale, null, formatter);
304
312
  }
305
313
  if (formatter) {
306
- return replaceNaNWithDash(formatToParts({
314
+ number = formatToParts({
307
315
  number,
308
316
  locale,
309
317
  options
310
318
  }).map(formatter).reduce((acc, {
311
319
  value
312
- }) => acc + value, ''));
320
+ }) => acc + value, '');
313
321
  } else if (typeof Number !== 'undefined' && typeof Number.toLocaleString === 'function') {
314
- return replaceNaNWithDash(parseFloat(number).toLocaleString(locale, options));
322
+ number = parseFloat(number).toLocaleString(locale, options);
315
323
  }
316
324
  } catch (e) {
317
325
  warn(`Number could not be formatted: ${JSON.stringify([number, locale, options])}`, e);
318
326
  }
319
- return replaceNaNWithDash(number);
327
+ return replaceNaNWithDash(alignCurrencySymbol(number, options.currencyDisplay));
320
328
  };
321
329
  function replaceNaNWithDash(number) {
322
330
  return String(number).replace(/NaN/, '–');
@@ -573,11 +581,11 @@ export function useCopyWithNotice() {
573
581
  copy
574
582
  };
575
583
  }
576
- export function getFallbackCurrencyDisplay(locale = null, currency_display = null) {
577
- if (!currency_display && (!locale || /(no|nb|nn)$/i.test(locale))) {
578
- currency_display = 'narrowSymbol';
584
+ export function getFallbackCurrencyDisplay(locale = null, currencyDisplay = null) {
585
+ if (!currencyDisplay && (!locale || /(no|nb|nn)$/i.test(locale))) {
586
+ currencyDisplay = 'narrowSymbol';
579
587
  }
580
- return currency_display || CURRENCY_DISPLAY;
588
+ return currencyDisplay || CURRENCY_DISPLAY;
581
589
  }
582
590
  export function getDecimalSeparator(locale = null) {
583
591
  var _formatToParts$find;
@@ -599,22 +607,23 @@ export function getThousandsSeparator(locale = null) {
599
607
  type
600
608
  }) => type === 'group')) === null || _formatToParts$map$fi === void 0 ? void 0 : _formatToParts$map$fi.value) || ' ';
601
609
  }
602
- export function getCurrencySymbol(locale = null, currency = null, currencyDisplay = null) {
610
+ export function getCurrencySymbol(locale = null, currency = null, display = null, number = 2) {
603
611
  var _formatToParts$find2;
604
612
  if (!currency) {
605
613
  currency = CURRENCY;
606
614
  }
607
- return ((_formatToParts$find2 = formatToParts({
608
- number: 1,
615
+ const currencyDisplay = getFallbackCurrencyDisplay(locale, display);
616
+ return alignCurrencySymbol(((_formatToParts$find2 = formatToParts({
617
+ number,
609
618
  locale,
610
619
  options: {
611
620
  style: 'currency',
612
621
  currency,
613
- currencyDisplay: getFallbackCurrencyDisplay(locale, currencyDisplay)
622
+ currencyDisplay
614
623
  }
615
624
  }).find(({
616
625
  type
617
- }) => type === 'currency')) === null || _formatToParts$find2 === void 0 ? void 0 : _formatToParts$find2.value) || currency;
626
+ }) => type === 'currency')) === null || _formatToParts$find2 === void 0 ? void 0 : _formatToParts$find2.value) || currency, currencyDisplay);
618
627
  }
619
628
  function getGroupFormatter(locale = null, separatorSymbol = null, existingFormatter = null) {
620
629
  if (locale && /(en|gb)$/i.test(locale)) {