@dnb/eufemia 10.11.0 → 10.13.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 (684) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/cjs/components/accordion/Accordion.js +1 -0
  3. package/cjs/components/accordion/Accordion.js.map +1 -1
  4. package/cjs/components/accordion/AccordionGroup.js +1 -0
  5. package/cjs/components/accordion/AccordionGroup.js.map +1 -1
  6. package/cjs/components/accordion/AccordionHeader.js +5 -15
  7. package/cjs/components/accordion/AccordionHeader.js.map +1 -1
  8. package/cjs/components/accordion/style/dnb-accordion.css +2 -2
  9. package/cjs/components/accordion/style/dnb-accordion.min.css +1 -1
  10. package/cjs/components/accordion/style/dnb-accordion.scss +3 -8
  11. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +1 -1
  12. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  13. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +1 -1
  14. package/cjs/components/anchor/Anchor.js.map +1 -1
  15. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +2 -2
  16. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  17. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +1 -2
  18. package/cjs/components/autocomplete/Autocomplete.d.ts +2 -2
  19. package/cjs/components/autocomplete/Autocomplete.js +41 -16
  20. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  21. package/cjs/components/breadcrumb/Breadcrumb.js +1 -0
  22. package/cjs/components/breadcrumb/Breadcrumb.js.map +1 -1
  23. package/cjs/components/button/Button.d.ts +3 -3
  24. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
  25. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.css +2 -2
  26. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.min.css +1 -1
  27. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.scss +2 -2
  28. package/cjs/components/card/Card.js +2 -2
  29. package/cjs/components/card/Card.js.map +1 -1
  30. package/cjs/components/dialog/Dialog.js +1 -0
  31. package/cjs/components/dialog/Dialog.js.map +1 -1
  32. package/cjs/components/dialog/DialogContent.js +1 -0
  33. package/cjs/components/dialog/DialogContent.js.map +1 -1
  34. package/cjs/components/dialog/parts/DialogAction.js +1 -0
  35. package/cjs/components/dialog/parts/DialogAction.js.map +1 -1
  36. package/cjs/components/drawer/Drawer.js +1 -0
  37. package/cjs/components/drawer/Drawer.js.map +1 -1
  38. package/cjs/components/drawer/DrawerContent.js +1 -0
  39. package/cjs/components/drawer/DrawerContent.js.map +1 -1
  40. package/cjs/components/drawer/parts/DrawerContentContext.js +1 -0
  41. package/cjs/components/drawer/parts/DrawerContentContext.js.map +1 -1
  42. package/cjs/components/flex/Container.js +6 -4
  43. package/cjs/components/flex/Container.js.map +1 -1
  44. package/cjs/components/flex/utils.js +2 -2
  45. package/cjs/components/flex/utils.js.map +1 -1
  46. package/cjs/components/form-label/FormLabel.js +2 -1
  47. package/cjs/components/form-label/FormLabel.js.map +1 -1
  48. package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.css +2 -2
  49. package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
  50. package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.scss +1 -1
  51. package/cjs/components/form-row/style/dnb-form-row.scss +1 -1
  52. package/cjs/components/icon/style/dnb-icon.scss +1 -1
  53. package/cjs/components/input-masked/InputMasked.d.ts +1 -2
  54. package/cjs/components/input-masked/InputMasked.js +3 -3
  55. package/cjs/components/input-masked/InputMasked.js.map +1 -1
  56. package/cjs/components/input-masked/MultiInputMask.d.ts +60 -0
  57. package/cjs/components/input-masked/MultiInputMask.js +160 -0
  58. package/cjs/components/input-masked/MultiInputMask.js.map +1 -0
  59. package/cjs/components/input-masked/TextMask.d.ts +1 -1
  60. package/cjs/components/input-masked/hooks/useHandleCursorPosition.d.ts +7 -0
  61. package/cjs/components/input-masked/hooks/useHandleCursorPosition.js +114 -0
  62. package/cjs/components/input-masked/hooks/useHandleCursorPosition.js.map +1 -0
  63. package/cjs/components/input-masked/hooks/useMultiInputValues.d.ts +8 -0
  64. package/cjs/components/input-masked/hooks/useMultiInputValues.js +38 -0
  65. package/cjs/components/input-masked/hooks/useMultiInputValues.js.map +1 -0
  66. package/cjs/components/input-masked/index.d.ts +2 -0
  67. package/cjs/components/input-masked/index.js +21 -1
  68. package/cjs/components/input-masked/index.js.map +1 -1
  69. package/cjs/components/input-masked/style/dnb-input-masked.css +57 -0
  70. package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
  71. package/cjs/components/input-masked/style/dnb-input-masked.scss +73 -0
  72. package/cjs/components/lib.d.ts +1 -1
  73. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  74. package/cjs/components/number-format/useNumberFormat.js +1 -0
  75. package/cjs/components/number-format/useNumberFormat.js.map +1 -1
  76. package/cjs/components/pagination/PaginationBar.js +1 -0
  77. package/cjs/components/pagination/PaginationBar.js.map +1 -1
  78. package/cjs/components/section/Section.d.ts +2 -2
  79. package/cjs/components/section/Section.js.map +1 -1
  80. package/cjs/components/step-indicator/StepIndicatorContext.js +1 -0
  81. package/cjs/components/step-indicator/StepIndicatorContext.js.map +1 -1
  82. package/cjs/components/step-indicator/StepIndicatorItem.js +3 -2
  83. package/cjs/components/step-indicator/StepIndicatorItem.js.map +1 -1
  84. package/cjs/components/step-indicator/StepIndicatorList.js +1 -0
  85. package/cjs/components/step-indicator/StepIndicatorList.js.map +1 -1
  86. package/cjs/components/step-indicator/StepIndicatorModal.js +1 -0
  87. package/cjs/components/step-indicator/StepIndicatorModal.js.map +1 -1
  88. package/cjs/components/step-indicator/StepIndicatorSidebar.js +1 -0
  89. package/cjs/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
  90. package/cjs/components/step-indicator/StepIndicatorTriggerButton.js +1 -0
  91. package/cjs/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  92. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.css +1 -0
  93. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  94. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.scss +1 -0
  95. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -1
  96. package/cjs/components/tooltip/TooltipWithEvents.js.map +1 -1
  97. package/cjs/components/upload/UploadContext.js +1 -0
  98. package/cjs/components/upload/UploadContext.js.map +1 -1
  99. package/cjs/components/upload/UploadFileInput.js +1 -0
  100. package/cjs/components/upload/UploadFileInput.js.map +1 -1
  101. package/cjs/components/upload/UploadFileListCell.js +1 -0
  102. package/cjs/components/upload/UploadFileListCell.js.map +1 -1
  103. package/cjs/elements/lists/Dl.d.ts +1 -1
  104. package/cjs/elements/lists/Dl.js.map +1 -1
  105. package/cjs/elements/typography/style/dnb-typography.scss +1 -1
  106. package/cjs/elements/typography/style/typography-mixins.scss +2 -2
  107. package/cjs/extensions/forms/DataContext/At/At.js +1 -0
  108. package/cjs/extensions/forms/DataContext/At/At.js.map +1 -1
  109. package/cjs/extensions/forms/DataContext/Provider/Provider.js +5 -3
  110. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  111. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +12 -9
  112. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  113. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +5 -3
  114. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  115. package/cjs/extensions/forms/Field/Boolean/Boolean.js +3 -2
  116. package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  117. package/cjs/extensions/forms/Field/Currency/Currency.js +3 -2
  118. package/cjs/extensions/forms/Field/Currency/Currency.js.map +1 -1
  119. package/cjs/extensions/forms/Field/Date/Date.js +2 -1
  120. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  121. package/cjs/extensions/forms/Field/Email/Email.js +5 -3
  122. package/cjs/extensions/forms/Field/Email/Email.js.map +1 -1
  123. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +5 -3
  124. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  125. package/cjs/extensions/forms/Field/Number/Number.js +3 -2
  126. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  127. package/cjs/extensions/forms/Field/Option/Option.js +1 -1
  128. package/cjs/extensions/forms/Field/Option/Option.js.map +1 -1
  129. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +5 -3
  130. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  131. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -0
  132. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +58 -18
  133. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  134. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +6 -4
  135. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  136. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +12 -8
  137. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  138. package/cjs/extensions/forms/Field/Selection/Selection.js +29 -20
  139. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  140. package/cjs/extensions/forms/Field/String/String.js +10 -9
  141. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  142. package/cjs/extensions/forms/Field/Toggle/Toggle.js +5 -4
  143. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  144. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +1 -0
  145. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  146. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js +1 -0
  147. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  148. package/cjs/extensions/forms/Iterate/Array/Array.js +2 -2
  149. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  150. package/cjs/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +3 -2
  151. package/cjs/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
  152. package/cjs/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +2 -1
  153. package/cjs/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
  154. package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js +1 -0
  155. package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  156. package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +1 -0
  157. package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  158. package/cjs/extensions/forms/StepsLayout/Step/Step.js +1 -0
  159. package/cjs/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
  160. package/cjs/extensions/forms/StepsLayout/StepsLayout.js +3 -1
  161. package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  162. package/cjs/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +3 -1
  163. package/cjs/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
  164. package/cjs/extensions/forms/Value/Boolean/Boolean.js +1 -0
  165. package/cjs/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  166. package/cjs/extensions/forms/Value/Currency/Currency.js +3 -2
  167. package/cjs/extensions/forms/Value/Currency/Currency.js.map +1 -1
  168. package/cjs/extensions/forms/Value/Date/Date.js +3 -1
  169. package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
  170. package/cjs/extensions/forms/Value/Email/Email.js +3 -1
  171. package/cjs/extensions/forms/Value/Email/Email.js.map +1 -1
  172. package/cjs/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +3 -1
  173. package/cjs/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  174. package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.js +3 -1
  175. package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
  176. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +1 -1
  177. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  178. package/cjs/extensions/forms/Visibility/Visibility.js +1 -0
  179. package/cjs/extensions/forms/Visibility/Visibility.js.map +1 -1
  180. package/cjs/extensions/forms/hooks/useDataValue.js +21 -17
  181. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  182. package/cjs/extensions/forms/types.js +6 -6
  183. package/cjs/extensions/forms/types.js.map +1 -1
  184. package/cjs/extensions/forms/utils/ajv.js +3 -2
  185. package/cjs/extensions/forms/utils/ajv.js.map +1 -1
  186. package/cjs/extensions/forms/utils/numbers.js +2 -2
  187. package/cjs/extensions/forms/utils/numbers.js.map +1 -1
  188. package/cjs/extensions/forms/utils/useWasChanged.js +8 -6
  189. package/cjs/extensions/forms/utils/useWasChanged.js.map +1 -1
  190. package/cjs/extensions/payment-card/style/dnb-payment-card.css +3 -0
  191. package/cjs/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  192. package/cjs/extensions/payment-card/style/dnb-payment-card.scss +4 -0
  193. package/cjs/fragments/drawer-list/DrawerListHelpers.js +1 -1
  194. package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  195. package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  196. package/cjs/fragments/drawer-list/style/themes/dnb-drawer-list-theme-sbanken.scss +5 -2
  197. package/cjs/fragments/drawer-list/style/themes/dnb-drawer-list-theme-ui.scss +2 -2
  198. package/cjs/shared/Eufemia.d.ts +1 -1
  199. package/cjs/shared/Eufemia.js +2 -2
  200. package/cjs/shared/Eufemia.js.map +1 -1
  201. package/cjs/shared/useTheme.d.ts +12 -1
  202. package/cjs/shared/useTheme.js +16 -1
  203. package/cjs/shared/useTheme.js.map +1 -1
  204. package/cjs/style/dnb-ui-components.css +59 -2
  205. package/cjs/style/dnb-ui-components.min.css +1 -1
  206. package/cjs/style/dnb-ui-extensions.css +3 -0
  207. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  208. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +61 -4
  209. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  210. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -0
  211. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  212. package/cjs/style/themes/theme-sbanken/fonts.scss +5 -4
  213. package/cjs/style/themes/theme-sbanken/properties.js +2 -2
  214. package/cjs/style/themes/theme-sbanken/properties.js.map +1 -1
  215. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +3 -2
  216. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  217. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +75 -13
  218. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  219. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -0
  220. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  221. package/cjs/style/themes/theme-sbanken/theme-mapping.scss +2 -1
  222. package/cjs/style/themes/theme-ui/ui-theme-components.css +61 -4
  223. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  224. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +3 -0
  225. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  226. package/components/accordion/Accordion.js +2 -0
  227. package/components/accordion/Accordion.js.map +1 -1
  228. package/components/accordion/AccordionGroup.js +2 -0
  229. package/components/accordion/AccordionGroup.js.map +1 -1
  230. package/components/accordion/AccordionHeader.js +6 -15
  231. package/components/accordion/AccordionHeader.js.map +1 -1
  232. package/components/accordion/style/dnb-accordion.css +2 -2
  233. package/components/accordion/style/dnb-accordion.min.css +1 -1
  234. package/components/accordion/style/dnb-accordion.scss +3 -8
  235. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +1 -1
  236. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  237. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +1 -1
  238. package/components/anchor/Anchor.js.map +1 -1
  239. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +2 -2
  240. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  241. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +1 -2
  242. package/components/autocomplete/Autocomplete.d.ts +2 -2
  243. package/components/autocomplete/Autocomplete.js +42 -17
  244. package/components/autocomplete/Autocomplete.js.map +1 -1
  245. package/components/breadcrumb/Breadcrumb.js +2 -0
  246. package/components/breadcrumb/Breadcrumb.js.map +1 -1
  247. package/components/button/Button.d.ts +3 -3
  248. package/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
  249. package/components/button/style/themes/dnb-button-theme-sbanken.css +2 -2
  250. package/components/button/style/themes/dnb-button-theme-sbanken.min.css +1 -1
  251. package/components/button/style/themes/dnb-button-theme-sbanken.scss +2 -2
  252. package/components/card/Card.js +2 -2
  253. package/components/card/Card.js.map +1 -1
  254. package/components/dialog/Dialog.js +2 -0
  255. package/components/dialog/Dialog.js.map +1 -1
  256. package/components/dialog/DialogContent.js +2 -0
  257. package/components/dialog/DialogContent.js.map +1 -1
  258. package/components/dialog/parts/DialogAction.js +2 -0
  259. package/components/dialog/parts/DialogAction.js.map +1 -1
  260. package/components/drawer/Drawer.js +2 -0
  261. package/components/drawer/Drawer.js.map +1 -1
  262. package/components/drawer/DrawerContent.js +2 -0
  263. package/components/drawer/DrawerContent.js.map +1 -1
  264. package/components/drawer/parts/DrawerContentContext.js +2 -0
  265. package/components/drawer/parts/DrawerContentContext.js.map +1 -1
  266. package/components/flex/Container.js +6 -4
  267. package/components/flex/Container.js.map +1 -1
  268. package/components/flex/utils.js +2 -2
  269. package/components/flex/utils.js.map +1 -1
  270. package/components/form-label/FormLabel.js +2 -1
  271. package/components/form-label/FormLabel.js.map +1 -1
  272. package/components/form-label/style/themes/dnb-form-label-theme-ui.css +2 -2
  273. package/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
  274. package/components/form-label/style/themes/dnb-form-label-theme-ui.scss +1 -1
  275. package/components/form-row/style/dnb-form-row.scss +1 -1
  276. package/components/icon/style/dnb-icon.scss +1 -1
  277. package/components/input-masked/InputMasked.d.ts +1 -2
  278. package/components/input-masked/InputMasked.js +2 -2
  279. package/components/input-masked/InputMasked.js.map +1 -1
  280. package/components/input-masked/MultiInputMask.d.ts +60 -0
  281. package/components/input-masked/MultiInputMask.js +150 -0
  282. package/components/input-masked/MultiInputMask.js.map +1 -0
  283. package/components/input-masked/TextMask.d.ts +1 -1
  284. package/components/input-masked/hooks/useHandleCursorPosition.d.ts +7 -0
  285. package/components/input-masked/hooks/useHandleCursorPosition.js +108 -0
  286. package/components/input-masked/hooks/useHandleCursorPosition.js.map +1 -0
  287. package/components/input-masked/hooks/useMultiInputValues.d.ts +8 -0
  288. package/components/input-masked/hooks/useMultiInputValues.js +31 -0
  289. package/components/input-masked/hooks/useMultiInputValues.js.map +1 -0
  290. package/components/input-masked/index.d.ts +2 -0
  291. package/components/input-masked/index.js +2 -0
  292. package/components/input-masked/index.js.map +1 -1
  293. package/components/input-masked/style/dnb-input-masked.css +57 -0
  294. package/components/input-masked/style/dnb-input-masked.min.css +1 -1
  295. package/components/input-masked/style/dnb-input-masked.scss +73 -0
  296. package/components/lib.d.ts +1 -1
  297. package/components/number-format/NumberUtils.js.map +1 -1
  298. package/components/number-format/useNumberFormat.js +2 -0
  299. package/components/number-format/useNumberFormat.js.map +1 -1
  300. package/components/pagination/PaginationBar.js +2 -0
  301. package/components/pagination/PaginationBar.js.map +1 -1
  302. package/components/section/Section.d.ts +2 -2
  303. package/components/section/Section.js.map +1 -1
  304. package/components/step-indicator/StepIndicatorContext.js +2 -0
  305. package/components/step-indicator/StepIndicatorContext.js.map +1 -1
  306. package/components/step-indicator/StepIndicatorItem.js +4 -2
  307. package/components/step-indicator/StepIndicatorItem.js.map +1 -1
  308. package/components/step-indicator/StepIndicatorList.js +2 -0
  309. package/components/step-indicator/StepIndicatorList.js.map +1 -1
  310. package/components/step-indicator/StepIndicatorModal.js +2 -0
  311. package/components/step-indicator/StepIndicatorModal.js.map +1 -1
  312. package/components/step-indicator/StepIndicatorSidebar.js +2 -0
  313. package/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
  314. package/components/step-indicator/StepIndicatorTriggerButton.js +2 -0
  315. package/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  316. package/components/table/style/themes/dnb-table-theme-sbanken.css +1 -0
  317. package/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  318. package/components/table/style/themes/dnb-table-theme-sbanken.scss +1 -0
  319. package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -1
  320. package/components/tooltip/TooltipWithEvents.js.map +1 -1
  321. package/components/upload/UploadContext.js +2 -0
  322. package/components/upload/UploadContext.js.map +1 -1
  323. package/components/upload/UploadFileInput.js +2 -0
  324. package/components/upload/UploadFileInput.js.map +1 -1
  325. package/components/upload/UploadFileListCell.js +2 -0
  326. package/components/upload/UploadFileListCell.js.map +1 -1
  327. package/elements/lists/Dl.d.ts +1 -1
  328. package/elements/lists/Dl.js.map +1 -1
  329. package/elements/typography/style/dnb-typography.scss +1 -1
  330. package/elements/typography/style/typography-mixins.scss +2 -2
  331. package/es/components/accordion/Accordion.js +2 -0
  332. package/es/components/accordion/Accordion.js.map +1 -1
  333. package/es/components/accordion/AccordionGroup.js +2 -0
  334. package/es/components/accordion/AccordionGroup.js.map +1 -1
  335. package/es/components/accordion/AccordionHeader.js +6 -15
  336. package/es/components/accordion/AccordionHeader.js.map +1 -1
  337. package/es/components/accordion/style/dnb-accordion.css +2 -2
  338. package/es/components/accordion/style/dnb-accordion.min.css +1 -1
  339. package/es/components/accordion/style/dnb-accordion.scss +3 -8
  340. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +1 -1
  341. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  342. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +1 -1
  343. package/es/components/anchor/Anchor.js.map +1 -1
  344. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +2 -2
  345. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  346. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +1 -2
  347. package/es/components/autocomplete/Autocomplete.d.ts +2 -2
  348. package/es/components/autocomplete/Autocomplete.js +42 -17
  349. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  350. package/es/components/breadcrumb/Breadcrumb.js +2 -0
  351. package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
  352. package/es/components/button/Button.d.ts +3 -3
  353. package/es/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
  354. package/es/components/button/style/themes/dnb-button-theme-sbanken.css +2 -2
  355. package/es/components/button/style/themes/dnb-button-theme-sbanken.min.css +1 -1
  356. package/es/components/button/style/themes/dnb-button-theme-sbanken.scss +2 -2
  357. package/es/components/card/Card.js +2 -2
  358. package/es/components/card/Card.js.map +1 -1
  359. package/es/components/dialog/Dialog.js +2 -0
  360. package/es/components/dialog/Dialog.js.map +1 -1
  361. package/es/components/dialog/DialogContent.js +2 -0
  362. package/es/components/dialog/DialogContent.js.map +1 -1
  363. package/es/components/dialog/parts/DialogAction.js +2 -0
  364. package/es/components/dialog/parts/DialogAction.js.map +1 -1
  365. package/es/components/drawer/Drawer.js +2 -0
  366. package/es/components/drawer/Drawer.js.map +1 -1
  367. package/es/components/drawer/DrawerContent.js +2 -0
  368. package/es/components/drawer/DrawerContent.js.map +1 -1
  369. package/es/components/drawer/parts/DrawerContentContext.js +2 -0
  370. package/es/components/drawer/parts/DrawerContentContext.js.map +1 -1
  371. package/es/components/flex/Container.js +6 -4
  372. package/es/components/flex/Container.js.map +1 -1
  373. package/es/components/flex/utils.js +2 -2
  374. package/es/components/flex/utils.js.map +1 -1
  375. package/es/components/form-label/FormLabel.js +2 -1
  376. package/es/components/form-label/FormLabel.js.map +1 -1
  377. package/es/components/form-label/style/themes/dnb-form-label-theme-ui.css +2 -2
  378. package/es/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
  379. package/es/components/form-label/style/themes/dnb-form-label-theme-ui.scss +1 -1
  380. package/es/components/form-row/style/dnb-form-row.scss +1 -1
  381. package/es/components/icon/style/dnb-icon.scss +1 -1
  382. package/es/components/input-masked/InputMasked.d.ts +1 -2
  383. package/es/components/input-masked/InputMasked.js +2 -2
  384. package/es/components/input-masked/InputMasked.js.map +1 -1
  385. package/es/components/input-masked/MultiInputMask.d.ts +60 -0
  386. package/es/components/input-masked/MultiInputMask.js +147 -0
  387. package/es/components/input-masked/MultiInputMask.js.map +1 -0
  388. package/es/components/input-masked/TextMask.d.ts +1 -1
  389. package/es/components/input-masked/hooks/useHandleCursorPosition.d.ts +7 -0
  390. package/es/components/input-masked/hooks/useHandleCursorPosition.js +107 -0
  391. package/es/components/input-masked/hooks/useHandleCursorPosition.js.map +1 -0
  392. package/es/components/input-masked/hooks/useMultiInputValues.d.ts +8 -0
  393. package/es/components/input-masked/hooks/useMultiInputValues.js +30 -0
  394. package/es/components/input-masked/hooks/useMultiInputValues.js.map +1 -0
  395. package/es/components/input-masked/index.d.ts +2 -0
  396. package/es/components/input-masked/index.js +2 -0
  397. package/es/components/input-masked/index.js.map +1 -1
  398. package/es/components/input-masked/style/dnb-input-masked.css +57 -0
  399. package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
  400. package/es/components/input-masked/style/dnb-input-masked.scss +73 -0
  401. package/es/components/lib.d.ts +1 -1
  402. package/es/components/number-format/NumberUtils.js.map +1 -1
  403. package/es/components/number-format/useNumberFormat.js +2 -0
  404. package/es/components/number-format/useNumberFormat.js.map +1 -1
  405. package/es/components/pagination/PaginationBar.js +2 -0
  406. package/es/components/pagination/PaginationBar.js.map +1 -1
  407. package/es/components/section/Section.d.ts +2 -2
  408. package/es/components/section/Section.js.map +1 -1
  409. package/es/components/step-indicator/StepIndicatorContext.js +2 -0
  410. package/es/components/step-indicator/StepIndicatorContext.js.map +1 -1
  411. package/es/components/step-indicator/StepIndicatorItem.js +4 -2
  412. package/es/components/step-indicator/StepIndicatorItem.js.map +1 -1
  413. package/es/components/step-indicator/StepIndicatorList.js +2 -0
  414. package/es/components/step-indicator/StepIndicatorList.js.map +1 -1
  415. package/es/components/step-indicator/StepIndicatorModal.js +2 -0
  416. package/es/components/step-indicator/StepIndicatorModal.js.map +1 -1
  417. package/es/components/step-indicator/StepIndicatorSidebar.js +2 -0
  418. package/es/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
  419. package/es/components/step-indicator/StepIndicatorTriggerButton.js +2 -0
  420. package/es/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  421. package/es/components/table/style/themes/dnb-table-theme-sbanken.css +1 -0
  422. package/es/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  423. package/es/components/table/style/themes/dnb-table-theme-sbanken.scss +1 -0
  424. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -1
  425. package/es/components/tooltip/TooltipWithEvents.js.map +1 -1
  426. package/es/components/upload/UploadContext.js +2 -0
  427. package/es/components/upload/UploadContext.js.map +1 -1
  428. package/es/components/upload/UploadFileInput.js +2 -0
  429. package/es/components/upload/UploadFileInput.js.map +1 -1
  430. package/es/components/upload/UploadFileListCell.js +2 -0
  431. package/es/components/upload/UploadFileListCell.js.map +1 -1
  432. package/es/elements/lists/Dl.d.ts +1 -1
  433. package/es/elements/lists/Dl.js.map +1 -1
  434. package/es/elements/typography/style/dnb-typography.scss +1 -1
  435. package/es/elements/typography/style/typography-mixins.scss +2 -2
  436. package/es/extensions/forms/DataContext/At/At.js +2 -0
  437. package/es/extensions/forms/DataContext/At/At.js.map +1 -1
  438. package/es/extensions/forms/DataContext/Provider/Provider.js +6 -3
  439. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  440. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +12 -9
  441. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  442. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -3
  443. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  444. package/es/extensions/forms/Field/Boolean/Boolean.js +4 -2
  445. package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  446. package/es/extensions/forms/Field/Currency/Currency.js +3 -2
  447. package/es/extensions/forms/Field/Currency/Currency.js.map +1 -1
  448. package/es/extensions/forms/Field/Date/Date.js +3 -1
  449. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  450. package/es/extensions/forms/Field/Email/Email.js +6 -3
  451. package/es/extensions/forms/Field/Email/Email.js.map +1 -1
  452. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +6 -3
  453. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  454. package/es/extensions/forms/Field/Number/Number.js +3 -2
  455. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  456. package/es/extensions/forms/Field/Option/Option.js +1 -1
  457. package/es/extensions/forms/Field/Option/Option.js.map +1 -1
  458. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +6 -3
  459. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  460. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -0
  461. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +48 -16
  462. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  463. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +7 -4
  464. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  465. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +13 -8
  466. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  467. package/es/extensions/forms/Field/Selection/Selection.js +30 -20
  468. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  469. package/es/extensions/forms/Field/String/String.js +11 -9
  470. package/es/extensions/forms/Field/String/String.js.map +1 -1
  471. package/es/extensions/forms/Field/Toggle/Toggle.js +6 -4
  472. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  473. package/es/extensions/forms/FieldBlock/FieldBlock.js +2 -0
  474. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  475. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js +2 -0
  476. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  477. package/es/extensions/forms/Iterate/Array/Array.js +2 -2
  478. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  479. package/es/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +4 -2
  480. package/es/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
  481. package/es/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +3 -1
  482. package/es/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
  483. package/es/extensions/forms/StepsLayout/NextButton/NextButton.js +2 -0
  484. package/es/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  485. package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +2 -0
  486. package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  487. package/es/extensions/forms/StepsLayout/Step/Step.js +2 -0
  488. package/es/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
  489. package/es/extensions/forms/StepsLayout/StepsLayout.js +4 -1
  490. package/es/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  491. package/es/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +4 -1
  492. package/es/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
  493. package/es/extensions/forms/Value/Boolean/Boolean.js +2 -0
  494. package/es/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  495. package/es/extensions/forms/Value/Currency/Currency.js +3 -2
  496. package/es/extensions/forms/Value/Currency/Currency.js.map +1 -1
  497. package/es/extensions/forms/Value/Date/Date.js +4 -1
  498. package/es/extensions/forms/Value/Date/Date.js.map +1 -1
  499. package/es/extensions/forms/Value/Email/Email.js +4 -1
  500. package/es/extensions/forms/Value/Email/Email.js.map +1 -1
  501. package/es/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +4 -1
  502. package/es/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  503. package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js +4 -1
  504. package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
  505. package/es/extensions/forms/ValueBlock/ValueBlock.js +1 -1
  506. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  507. package/es/extensions/forms/Visibility/Visibility.js +2 -0
  508. package/es/extensions/forms/Visibility/Visibility.js.map +1 -1
  509. package/es/extensions/forms/hooks/useDataValue.js +22 -17
  510. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  511. package/es/extensions/forms/types.js +6 -6
  512. package/es/extensions/forms/types.js.map +1 -1
  513. package/es/extensions/forms/utils/ajv.js +3 -2
  514. package/es/extensions/forms/utils/ajv.js.map +1 -1
  515. package/es/extensions/forms/utils/numbers.js +2 -2
  516. package/es/extensions/forms/utils/numbers.js.map +1 -1
  517. package/es/extensions/forms/utils/useWasChanged.js +9 -6
  518. package/es/extensions/forms/utils/useWasChanged.js.map +1 -1
  519. package/es/extensions/payment-card/style/dnb-payment-card.css +3 -0
  520. package/es/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  521. package/es/extensions/payment-card/style/dnb-payment-card.scss +4 -0
  522. package/es/fragments/drawer-list/DrawerListHelpers.js +1 -1
  523. package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  524. package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  525. package/es/fragments/drawer-list/style/themes/dnb-drawer-list-theme-sbanken.scss +5 -2
  526. package/es/fragments/drawer-list/style/themes/dnb-drawer-list-theme-ui.scss +2 -2
  527. package/es/shared/Eufemia.d.ts +1 -1
  528. package/es/shared/Eufemia.js +2 -2
  529. package/es/shared/Eufemia.js.map +1 -1
  530. package/es/shared/useTheme.d.ts +12 -1
  531. package/es/shared/useTheme.js +14 -1
  532. package/es/shared/useTheme.js.map +1 -1
  533. package/es/style/dnb-ui-components.css +59 -2
  534. package/es/style/dnb-ui-components.min.css +1 -1
  535. package/es/style/dnb-ui-extensions.css +3 -0
  536. package/es/style/dnb-ui-extensions.min.css +1 -1
  537. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +61 -4
  538. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  539. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -0
  540. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  541. package/es/style/themes/theme-sbanken/fonts.scss +5 -4
  542. package/es/style/themes/theme-sbanken/properties.js +2 -2
  543. package/es/style/themes/theme-sbanken/properties.js.map +1 -1
  544. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +3 -2
  545. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  546. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +75 -13
  547. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  548. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -0
  549. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  550. package/es/style/themes/theme-sbanken/theme-mapping.scss +2 -1
  551. package/es/style/themes/theme-ui/ui-theme-components.css +61 -4
  552. package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  553. package/es/style/themes/theme-ui/ui-theme-extensions.css +3 -0
  554. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  555. package/esm/dnb-ui-basis.min.mjs +1 -1
  556. package/esm/dnb-ui-components.min.mjs +1 -1
  557. package/esm/dnb-ui-elements.min.mjs +1 -1
  558. package/esm/dnb-ui-extensions.min.mjs +3 -3
  559. package/esm/dnb-ui-lib.min.mjs +1 -1
  560. package/extensions/forms/DataContext/At/At.js +2 -0
  561. package/extensions/forms/DataContext/At/At.js.map +1 -1
  562. package/extensions/forms/DataContext/Provider/Provider.js +6 -3
  563. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  564. package/extensions/forms/Field/ArraySelection/ArraySelection.js +12 -9
  565. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  566. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -3
  567. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  568. package/extensions/forms/Field/Boolean/Boolean.js +4 -2
  569. package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  570. package/extensions/forms/Field/Currency/Currency.js +3 -2
  571. package/extensions/forms/Field/Currency/Currency.js.map +1 -1
  572. package/extensions/forms/Field/Date/Date.js +3 -1
  573. package/extensions/forms/Field/Date/Date.js.map +1 -1
  574. package/extensions/forms/Field/Email/Email.js +6 -3
  575. package/extensions/forms/Field/Email/Email.js.map +1 -1
  576. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +6 -3
  577. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  578. package/extensions/forms/Field/Number/Number.js +3 -2
  579. package/extensions/forms/Field/Number/Number.js.map +1 -1
  580. package/extensions/forms/Field/Option/Option.js +1 -1
  581. package/extensions/forms/Field/Option/Option.js.map +1 -1
  582. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +6 -3
  583. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  584. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -0
  585. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +59 -18
  586. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  587. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +7 -4
  588. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  589. package/extensions/forms/Field/SelectCountry/SelectCountry.js +13 -8
  590. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  591. package/extensions/forms/Field/Selection/Selection.js +30 -20
  592. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  593. package/extensions/forms/Field/String/String.js +11 -9
  594. package/extensions/forms/Field/String/String.js.map +1 -1
  595. package/extensions/forms/Field/Toggle/Toggle.js +6 -4
  596. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  597. package/extensions/forms/FieldBlock/FieldBlock.js +2 -0
  598. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  599. package/extensions/forms/Form/SubmitButton/SubmitButton.js +2 -0
  600. package/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  601. package/extensions/forms/Iterate/Array/Array.js +2 -2
  602. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  603. package/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +4 -2
  604. package/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
  605. package/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +3 -1
  606. package/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
  607. package/extensions/forms/StepsLayout/NextButton/NextButton.js +2 -0
  608. package/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  609. package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +2 -0
  610. package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  611. package/extensions/forms/StepsLayout/Step/Step.js +2 -0
  612. package/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
  613. package/extensions/forms/StepsLayout/StepsLayout.js +4 -1
  614. package/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  615. package/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +4 -1
  616. package/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
  617. package/extensions/forms/Value/Boolean/Boolean.js +2 -0
  618. package/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  619. package/extensions/forms/Value/Currency/Currency.js +3 -2
  620. package/extensions/forms/Value/Currency/Currency.js.map +1 -1
  621. package/extensions/forms/Value/Date/Date.js +4 -1
  622. package/extensions/forms/Value/Date/Date.js.map +1 -1
  623. package/extensions/forms/Value/Email/Email.js +4 -1
  624. package/extensions/forms/Value/Email/Email.js.map +1 -1
  625. package/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +4 -1
  626. package/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  627. package/extensions/forms/Value/PhoneNumber/PhoneNumber.js +4 -1
  628. package/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
  629. package/extensions/forms/ValueBlock/ValueBlock.js +1 -1
  630. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  631. package/extensions/forms/Visibility/Visibility.js +2 -0
  632. package/extensions/forms/Visibility/Visibility.js.map +1 -1
  633. package/extensions/forms/hooks/useDataValue.js +22 -17
  634. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  635. package/extensions/forms/types.js +6 -6
  636. package/extensions/forms/types.js.map +1 -1
  637. package/extensions/forms/utils/ajv.js +3 -2
  638. package/extensions/forms/utils/ajv.js.map +1 -1
  639. package/extensions/forms/utils/numbers.js +2 -2
  640. package/extensions/forms/utils/numbers.js.map +1 -1
  641. package/extensions/forms/utils/useWasChanged.js +9 -6
  642. package/extensions/forms/utils/useWasChanged.js.map +1 -1
  643. package/extensions/payment-card/style/dnb-payment-card.css +3 -0
  644. package/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  645. package/extensions/payment-card/style/dnb-payment-card.scss +4 -0
  646. package/fragments/drawer-list/DrawerListHelpers.js +1 -1
  647. package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  648. package/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  649. package/fragments/drawer-list/style/themes/dnb-drawer-list-theme-sbanken.scss +5 -2
  650. package/fragments/drawer-list/style/themes/dnb-drawer-list-theme-ui.scss +2 -2
  651. package/package.json +11 -1
  652. package/shared/Eufemia.d.ts +1 -1
  653. package/shared/Eufemia.js +2 -2
  654. package/shared/Eufemia.js.map +1 -1
  655. package/shared/useTheme.d.ts +12 -1
  656. package/shared/useTheme.js +14 -1
  657. package/shared/useTheme.js.map +1 -1
  658. package/style/dnb-ui-components.css +59 -2
  659. package/style/dnb-ui-components.min.css +1 -1
  660. package/style/dnb-ui-extensions.css +3 -0
  661. package/style/dnb-ui-extensions.min.css +1 -1
  662. package/style/themes/theme-eiendom/eiendom-theme-components.css +61 -4
  663. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  664. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -0
  665. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  666. package/style/themes/theme-sbanken/fonts.scss +5 -4
  667. package/style/themes/theme-sbanken/properties.js +2 -2
  668. package/style/themes/theme-sbanken/properties.js.map +1 -1
  669. package/style/themes/theme-sbanken/sbanken-theme-basis.css +3 -2
  670. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  671. package/style/themes/theme-sbanken/sbanken-theme-components.css +75 -13
  672. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  673. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -0
  674. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  675. package/style/themes/theme-sbanken/theme-mapping.scss +2 -1
  676. package/style/themes/theme-ui/ui-theme-components.css +61 -4
  677. package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  678. package/style/themes/theme-ui/ui-theme-extensions.css +3 -0
  679. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  680. package/umd/dnb-ui-basis.min.js +1 -1
  681. package/umd/dnb-ui-components.min.js +1 -1
  682. package/umd/dnb-ui-elements.min.js +1 -1
  683. package/umd/dnb-ui-extensions.min.js +3 -3
  684. package/umd/dnb-ui-lib.min.js +1 -1
@@ -31,8 +31,9 @@ export default function FormLabel(localProps) {
31
31
  label_direction
32
32
  } = props,
33
33
  attributes = _objectWithoutProperties(props, _excluded);
34
+ const isInteractive = !props.disabled && !srOnly && (typeof props.onClick === 'function' || forId || for_id);
34
35
  const params = _objectSpread({
35
- className: classnames('dnb-form-label', (isTrue(vertical) || label_direction === 'vertical') && `dnb-form-label--vertical`, (srOnly || isTrue(sr_only)) && 'dnb-sr-only', createSkeletonClass('font', skeleton, context), createSpacingClasses(props), className, size && `dnb-h--${size}`),
36
+ className: classnames('dnb-form-label', (isTrue(vertical) || label_direction === 'vertical') && `dnb-form-label--vertical`, (srOnly || isTrue(sr_only)) && 'dnb-sr-only', createSkeletonClass('font', skeleton, context), createSpacingClasses(props), className, size && `dnb-h--${size}`, isInteractive && 'dnb-form-label--interactive'),
36
37
  htmlFor: forId || for_id
37
38
  }, attributes);
38
39
  params['ref'] = innerRef;
@@ -1 +1 @@
1
- {"version":3,"file":"FormLabel.js","names":["React","classnames","extendPropsWithContext","isTrue","validateDOMAttributes","createSpacingClasses","createSkeletonClass","skeletonDOMAttributes","pickFormElementProps","Context","FormLabel","localProps","context","useContext","props","skeleton","FormRow","formElement","forId","text","srOnly","vertical","size","element","Element","innerRef","className","children","for_id","sr_only","label_direction","attributes","_objectWithoutProperties","_excluded","params","_objectSpread","htmlFor","createElement","_supportsSpacingProps"],"sources":["../../../../src/components/form-label/FormLabel.tsx"],"sourcesContent":["/**\n * Web FormLabel Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport {\n extendPropsWithContext,\n isTrue,\n validateDOMAttributes,\n} from '../../shared/component-helper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport {\n createSkeletonClass,\n skeletonDOMAttributes,\n} from '../skeleton/SkeletonHelper'\nimport { pickFormElementProps } from '../../shared/helpers/filterValidProps'\nimport Context from '../../shared/Context'\nimport {\n DynamicElement,\n DynamicElementParams,\n SpacingProps,\n} from '../../shared/types'\n\nexport type FormLabelProps = {\n forId?: string\n element?: DynamicElement<HTMLLabelElement>\n text?: React.ReactNode\n size?: 'basis' | 'medium' | 'large'\n id?: string\n skeleton?: boolean\n label?: React.ReactNode\n vertical?: boolean\n srOnly?: boolean\n innerRef?: React.RefObject<HTMLElement>\n\n /** Is not a part of HTMLLabelElement and not documented as of now */\n disabled?: boolean\n\n /** @deprecated use forId instead */\n for_id?: string\n /** @deprecated use srOnly instead */\n sr_only?: boolean\n /** @deprecated use labelDirection instead (was not documented before) */\n label_direction?: 'vertical' | 'horizontal'\n}\n\nexport type FormLabelAllProps = FormLabelProps &\n React.HTMLAttributes<HTMLLabelElement> &\n SpacingProps\n\nexport default function FormLabel(localProps: FormLabelAllProps) {\n const context = React.useContext(Context)\n\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContext(\n localProps,\n null,\n { skeleton: context?.skeleton },\n pickFormElementProps(context?.FormRow), // Deprecated – can be removed in v11\n pickFormElementProps(context?.formElement),\n context?.FormLabel\n )\n\n const {\n forId,\n text,\n srOnly,\n vertical,\n size,\n skeleton,\n element: Element = 'label',\n innerRef,\n className,\n children,\n\n /** @deprecated can be removed in v11 */\n for_id,\n sr_only,\n label_direction,\n\n ...attributes\n } = props\n\n const params = {\n className: classnames(\n 'dnb-form-label',\n (isTrue(vertical) || label_direction === 'vertical') &&\n `dnb-form-label--vertical`,\n (srOnly || isTrue(sr_only)) && 'dnb-sr-only',\n size && `dnb-h--${size}`,\n createSkeletonClass('font', skeleton, context),\n createSpacingClasses(props),\n className\n ),\n htmlFor: forId || for_id,\n ...(attributes as DynamicElementParams),\n }\n\n params['ref'] = innerRef\n\n skeletonDOMAttributes(params, skeleton, context)\n validateDOMAttributes(localProps, params)\n\n return <Element {...params}>{text || children}</Element>\n}\n\nFormLabel._supportsSpacingProps = true\n"],"mappings":";;;;;AAKA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,SACEC,sBAAsB,EACtBC,MAAM,EACNC,qBAAqB,QAChB,+BAA+B;AACtC,SAASC,oBAAoB,QAAQ,wBAAwB;AAC7D,SACEC,mBAAmB,EACnBC,qBAAqB,QAChB,4BAA4B;AACnC,SAASC,oBAAoB,QAAQ,uCAAuC;AAC5E,OAAOC,OAAO,MAAM,sBAAsB;AAkC1C,eAAe,SAASC,SAASA,CAACC,UAA6B,EAAE;EAC/D,MAAMC,OAAO,GAAGZ,KAAK,CAACa,UAAU,CAACJ,OAAO,CAAC;EAGzC,MAAMK,KAAK,GAAGZ,sBAAsB,CAClCS,UAAU,EACV,IAAI,EACJ;IAAEI,QAAQ,EAAEH,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEG;EAAS,CAAC,EAC/BP,oBAAoB,CAACI,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEI,OAAO,CAAC,EACtCR,oBAAoB,CAACI,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEK,WAAW,CAAC,EAC1CL,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEF,SACX,CAAC;EAED,MAAM;MACJQ,KAAK;MACLC,IAAI;MACJC,MAAM;MACNC,QAAQ;MACRC,IAAI;MACJP,QAAQ;MACRQ,OAAO,EAAEC,OAAO,GAAG,OAAO;MAC1BC,QAAQ;MACRC,SAAS;MACTC,QAAQ;MAGRC,MAAM;MACNC,OAAO;MACPC;IAGF,CAAC,GAAGhB,KAAK;IADJiB,UAAU,GAAAC,wBAAA,CACXlB,KAAK,EAAAmB,SAAA;EAET,MAAMC,MAAM,GAAAC,aAAA;IACVT,SAAS,EAAEzB,UAAU,CACnB,gBAAgB,EAChB,CAACE,MAAM,CAACkB,QAAQ,CAAC,IAAIS,eAAe,KAAK,UAAU,KAChD,0BAAyB,EAC5B,CAACV,MAAM,IAAIjB,MAAM,CAAC0B,OAAO,CAAC,KAAK,aAAa,EAE5CvB,mBAAmB,CAAC,MAAM,EAAES,QAAQ,EAAEH,OAAO,CAAC,EAC9CP,oBAAoB,CAACS,KAAK,CAAC,EAC3BY,SAAS,EAHTJ,IAAI,IAAK,UAASA,IAAK,EAIzB,CAAC;IACDc,OAAO,EAAElB,KAAK,IAAIU;EAAM,GACpBG,UAAU,CACf;EAEDG,MAAM,CAAC,KAAK,CAAC,GAAGT,QAAQ;EAExBlB,qBAAqB,CAAC2B,MAAM,EAAEnB,QAAQ,EAAEH,OAAO,CAAC;EAChDR,qBAAqB,CAACO,UAAU,EAAEuB,MAAM,CAAC;EAEzC,OAAOlC,KAAA,CAAAqC,aAAA,CAACb,OAAO,EAAKU,MAAM,EAAGf,IAAI,IAAIQ,QAAkB,CAAC;AAC1D;AAEAjB,SAAS,CAAC4B,qBAAqB,GAAG,IAAI"}
1
+ {"version":3,"file":"FormLabel.js","names":["React","classnames","extendPropsWithContext","isTrue","validateDOMAttributes","createSpacingClasses","createSkeletonClass","skeletonDOMAttributes","pickFormElementProps","Context","FormLabel","localProps","context","useContext","props","skeleton","FormRow","formElement","forId","text","srOnly","vertical","size","element","Element","innerRef","className","children","for_id","sr_only","label_direction","attributes","_objectWithoutProperties","_excluded","isInteractive","disabled","onClick","params","_objectSpread","htmlFor","createElement","_supportsSpacingProps"],"sources":["../../../../src/components/form-label/FormLabel.tsx"],"sourcesContent":["/**\n * Web FormLabel Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport {\n extendPropsWithContext,\n isTrue,\n validateDOMAttributes,\n} from '../../shared/component-helper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport {\n createSkeletonClass,\n skeletonDOMAttributes,\n} from '../skeleton/SkeletonHelper'\nimport { pickFormElementProps } from '../../shared/helpers/filterValidProps'\nimport Context from '../../shared/Context'\nimport {\n DynamicElement,\n DynamicElementParams,\n SpacingProps,\n} from '../../shared/types'\n\nexport type FormLabelProps = {\n forId?: string\n element?: DynamicElement<HTMLLabelElement>\n text?: React.ReactNode\n size?: 'basis' | 'medium' | 'large'\n id?: string\n skeleton?: boolean\n label?: React.ReactNode\n vertical?: boolean\n srOnly?: boolean\n innerRef?: React.RefObject<HTMLElement>\n\n /** Is not a part of HTMLLabelElement and not documented as of now */\n disabled?: boolean\n\n /** @deprecated use forId instead */\n for_id?: string\n /** @deprecated use srOnly instead */\n sr_only?: boolean\n /** @deprecated use labelDirection instead (was not documented before) */\n label_direction?: 'vertical' | 'horizontal'\n}\n\nexport type FormLabelAllProps = FormLabelProps &\n React.HTMLAttributes<HTMLLabelElement> &\n SpacingProps\n\nexport default function FormLabel(localProps: FormLabelAllProps) {\n const context = React.useContext(Context)\n\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContext(\n localProps,\n null,\n { skeleton: context?.skeleton },\n pickFormElementProps(context?.FormRow), // Deprecated – can be removed in v11\n pickFormElementProps(context?.formElement),\n context?.FormLabel\n )\n\n const {\n forId,\n text,\n srOnly,\n vertical,\n size,\n skeleton,\n element: Element = 'label',\n innerRef,\n className,\n children,\n\n /** @deprecated can be removed in v11 */\n for_id,\n sr_only,\n label_direction,\n\n ...attributes\n } = props\n\n const isInteractive =\n !props.disabled &&\n !srOnly &&\n (typeof props.onClick === 'function' || forId || for_id)\n\n const params = {\n className: classnames(\n 'dnb-form-label',\n (isTrue(vertical) || label_direction === 'vertical') &&\n `dnb-form-label--vertical`,\n (srOnly || isTrue(sr_only)) && 'dnb-sr-only',\n size && `dnb-h--${size}`,\n isInteractive && 'dnb-form-label--interactive',\n createSkeletonClass('font', skeleton, context),\n createSpacingClasses(props),\n className\n ),\n htmlFor: forId || for_id,\n ...(attributes as DynamicElementParams),\n }\n\n params['ref'] = innerRef\n\n skeletonDOMAttributes(params, skeleton, context)\n validateDOMAttributes(localProps, params)\n\n return <Element {...params}>{text || children}</Element>\n}\n\nFormLabel._supportsSpacingProps = true\n"],"mappings":";;;;;AAKA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,SACEC,sBAAsB,EACtBC,MAAM,EACNC,qBAAqB,QAChB,+BAA+B;AACtC,SAASC,oBAAoB,QAAQ,wBAAwB;AAC7D,SACEC,mBAAmB,EACnBC,qBAAqB,QAChB,4BAA4B;AACnC,SAASC,oBAAoB,QAAQ,uCAAuC;AAC5E,OAAOC,OAAO,MAAM,sBAAsB;AAkC1C,eAAe,SAASC,SAASA,CAACC,UAA6B,EAAE;EAC/D,MAAMC,OAAO,GAAGZ,KAAK,CAACa,UAAU,CAACJ,OAAO,CAAC;EAGzC,MAAMK,KAAK,GAAGZ,sBAAsB,CAClCS,UAAU,EACV,IAAI,EACJ;IAAEI,QAAQ,EAAEH,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEG;EAAS,CAAC,EAC/BP,oBAAoB,CAACI,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEI,OAAO,CAAC,EACtCR,oBAAoB,CAACI,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEK,WAAW,CAAC,EAC1CL,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEF,SACX,CAAC;EAED,MAAM;MACJQ,KAAK;MACLC,IAAI;MACJC,MAAM;MACNC,QAAQ;MACRC,IAAI;MACJP,QAAQ;MACRQ,OAAO,EAAEC,OAAO,GAAG,OAAO;MAC1BC,QAAQ;MACRC,SAAS;MACTC,QAAQ;MAGRC,MAAM;MACNC,OAAO;MACPC;IAGF,CAAC,GAAGhB,KAAK;IADJiB,UAAU,GAAAC,wBAAA,CACXlB,KAAK,EAAAmB,SAAA;EAET,MAAMC,aAAa,GACjB,CAACpB,KAAK,CAACqB,QAAQ,IACf,CAACf,MAAM,KACN,OAAON,KAAK,CAACsB,OAAO,KAAK,UAAU,IAAIlB,KAAK,IAAIU,MAAM,CAAC;EAE1D,MAAMS,MAAM,GAAAC,aAAA;IACVZ,SAAS,EAAEzB,UAAU,CACnB,gBAAgB,EAChB,CAACE,MAAM,CAACkB,QAAQ,CAAC,IAAIS,eAAe,KAAK,UAAU,KAChD,0BAAyB,EAC5B,CAACV,MAAM,IAAIjB,MAAM,CAAC0B,OAAO,CAAC,KAAK,aAAa,EAG5CvB,mBAAmB,CAAC,MAAM,EAAES,QAAQ,EAAEH,OAAO,CAAC,EAC9CP,oBAAoB,CAACS,KAAK,CAAC,EAC3BY,SAAS,EAJTJ,IAAI,IAAK,UAASA,IAAK,EAAC,EACxBY,aAAa,IAAI,6BAInB,CAAC;IACDK,OAAO,EAAErB,KAAK,IAAIU;EAAM,GACpBG,UAAU,CACf;EAEDM,MAAM,CAAC,KAAK,CAAC,GAAGZ,QAAQ;EAExBlB,qBAAqB,CAAC8B,MAAM,EAAEtB,QAAQ,EAAEH,OAAO,CAAC;EAChDR,qBAAqB,CAACO,UAAU,EAAE0B,MAAM,CAAC;EAEzC,OAAOrC,KAAA,CAAAwC,aAAA,CAAChB,OAAO,EAAKa,MAAM,EAAGlB,IAAI,IAAIQ,QAAkB,CAAC;AAC1D;AAEAjB,SAAS,CAAC+B,qBAAqB,GAAG,IAAI"}
@@ -5,9 +5,9 @@
5
5
  .dnb-form-label {
6
6
  color: var(--color-black-80);
7
7
  }
8
- .dnb-form-label[for]:not([disabled]) {
8
+ .dnb-form-label--interactive {
9
9
  cursor: pointer;
10
10
  }
11
- .dnb-form-label[for]:not([disabled]):hover {
11
+ .dnb-form-label--interactive:hover {
12
12
  color: var(--color-sea-green);
13
13
  }
@@ -1 +1 @@
1
- .dnb-form-label{color:var(--color-black-80)}.dnb-form-label[for]:not([disabled]){cursor:pointer}.dnb-form-label[for]:not([disabled]):hover{color:var(--color-sea-green)}
1
+ .dnb-form-label{color:var(--color-black-80)}.dnb-form-label--interactive{cursor:pointer}.dnb-form-label--interactive:hover{color:var(--color-sea-green)}
@@ -6,7 +6,7 @@
6
6
  .dnb-form-label {
7
7
  color: var(--color-black-80);
8
8
 
9
- &[for]:not([disabled]) {
9
+ &--interactive {
10
10
  cursor: pointer;
11
11
 
12
12
  &:hover {
@@ -18,7 +18,7 @@
18
18
  width: 100%; // to help #input stretch
19
19
  }
20
20
 
21
- // for hoizontal direction
21
+ // for horizontal direction
22
22
  &:not(#{&}--vertical) {
23
23
  & > .dnb-form-row__content {
24
24
  align-items: baseline;
@@ -10,7 +10,7 @@
10
10
 
11
11
  // sine we use vertical-align: top on the SVG
12
12
  // we have to move center the alignment here again
13
- // else basic text aferwars will get aligned on top
13
+ // else basic text afterwards will get aligned on top
14
14
  vertical-align: middle;
15
15
 
16
16
  font-size: 1rem; // to make sure we have always the same starting point
@@ -63,7 +63,7 @@ export interface InputMaskedProps
63
63
  */
64
64
  currency_mask?: InputMaskedCurrencyMask;
65
65
  /**
66
- * Use it to manipulate internal masks. You can use it instead of e.g. `number_mask` or `curreny_mask`. All options are listed below.
66
+ * Use it to manipulate internal masks. You can use it instead of e.g. `number_mask` or `currency_mask`. All options are listed below.
67
67
  */
68
68
  mask_options?: InputMaskedMaskOptions;
69
69
  /**
@@ -254,5 +254,4 @@ export interface InputMaskedProps
254
254
  children?: InputMaskedChildren;
255
255
  on_state_update?: (...args: any[]) => any;
256
256
  }
257
- declare const InputMasked: React.FC<InputMaskedProps>;
258
257
  export default InputMasked;
@@ -27,8 +27,6 @@ const InputMasked = props => {
27
27
  }
28
28
  }, _InputMaskedElement || (_InputMaskedElement = React.createElement(InputMaskedElement, null)));
29
29
  };
30
- InputMasked._supportsSpacingProps = true;
31
- export default InputMasked;
32
30
  process.env.NODE_ENV !== "production" ? InputMasked.propTypes = _objectSpread({
33
31
  mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.func]),
34
32
  number_mask: PropTypes.oneOfType([PropTypes.string, PropTypes.bool, PropTypes.object]),
@@ -75,4 +73,6 @@ InputMasked.defaultProps = _objectSpread(_objectSpread({}, Input.defaultProps),
75
73
  on_submit_focus: null,
76
74
  on_submit_blur: null
77
75
  });
76
+ InputMasked._supportsSpacingProps = true;
77
+ export default InputMasked;
78
78
  //# sourceMappingURL=InputMasked.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputMasked.js","names":["React","PropTypes","extendPropsWithContext","InputMaskedContext","InputMaskedElement","Input","inputPropTypes","Context","InputMasked","props","context","useContext","mask","alias","key","test","contextAndProps","useCallback","defaultProps","createElement","Provider","value","_InputMaskedElement","_supportsSpacingProps","process","env","NODE_ENV","propTypes","_objectSpread","oneOfType","object","array","func","number_mask","string","bool","currency_mask","mask_options","number_format","locale","as_currency","as_number","as_percent","show_mask","show_guide","pipe","keep_char_positions","placeholder_char","inner_ref","on_change","on_submit","on_focus","on_blur","on_submit_focus","on_submit_blur"],"sources":["../../../../src/components/input-masked/InputMasked.js"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\n/**\n * Web InputMasked Component\n *\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { extendPropsWithContext } from '../../shared/component-helper'\nimport InputMaskedContext from './InputMaskedContext'\nimport InputMaskedElement from './InputMaskedElement'\nimport Input, { inputPropTypes } from '../input/Input'\nimport Context from '../../shared/Context'\n\nconst InputMasked = (props) => {\n const context = React.useContext(Context)\n\n // Remove masks defined in Provider/Context, because it overwrites a custom mask\n if (props?.mask) {\n const alias = context?.InputMasked\n for (const key in alias) {\n if (/^as[_A-Z]|number_mask|currency_mask/.test(key)) {\n delete alias[key]\n }\n }\n }\n\n const contextAndProps = React.useCallback(\n extendPropsWithContext(\n props,\n InputMasked.defaultProps,\n context?.InputMasked\n ),\n [props, InputMasked.defaultProps, context?.InputMasked]\n )\n\n return (\n <InputMaskedContext.Provider\n value={{\n props: contextAndProps,\n context,\n }}\n >\n <InputMaskedElement />\n </InputMaskedContext.Provider>\n )\n}\n\nInputMasked._supportsSpacingProps = true\n\nexport default InputMasked\n\nInputMasked.propTypes = {\n mask: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.array,\n PropTypes.func,\n ]),\n number_mask: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n PropTypes.object,\n ]),\n currency_mask: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n PropTypes.object,\n ]),\n mask_options: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n number_format: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n locale: PropTypes.string,\n as_currency: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n as_number: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n as_percent: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n show_mask: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n show_guide: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n pipe: PropTypes.func,\n keep_char_positions: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n placeholder_char: PropTypes.string,\n inner_ref: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n\n on_change: PropTypes.func,\n on_submit: PropTypes.func,\n on_focus: PropTypes.func,\n on_blur: PropTypes.func,\n on_submit_focus: PropTypes.func,\n on_submit_blur: PropTypes.func,\n\n ...inputPropTypes,\n}\n\nInputMasked.defaultProps = {\n ...Input.defaultProps,\n\n mask: null,\n number_mask: null,\n currency_mask: null,\n mask_options: null,\n number_format: null,\n as_currency: null,\n as_number: null,\n as_percent: null,\n locale: null,\n show_mask: false,\n show_guide: true,\n pipe: null,\n keep_char_positions: false,\n placeholder_char: null,\n inner_ref: null,\n\n on_change: null,\n on_submit: null,\n on_focus: null,\n on_blur: null,\n on_submit_focus: null,\n on_submit_blur: null,\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"InputMasked.js","names":["React","PropTypes","extendPropsWithContext","InputMaskedContext","InputMaskedElement","Input","inputPropTypes","Context","InputMasked","props","context","useContext","mask","alias","key","test","contextAndProps","useCallback","defaultProps","createElement","Provider","value","_InputMaskedElement","process","env","NODE_ENV","propTypes","_objectSpread","oneOfType","object","array","func","number_mask","string","bool","currency_mask","mask_options","number_format","locale","as_currency","as_number","as_percent","show_mask","show_guide","pipe","keep_char_positions","placeholder_char","inner_ref","on_change","on_submit","on_focus","on_blur","on_submit_focus","on_submit_blur","_supportsSpacingProps"],"sources":["../../../../src/components/input-masked/InputMasked.js"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\n/**\n * Web InputMasked Component\n *\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { extendPropsWithContext } from '../../shared/component-helper'\nimport InputMaskedContext from './InputMaskedContext'\nimport InputMaskedElement from './InputMaskedElement'\nimport Input, { inputPropTypes } from '../input/Input'\nimport Context from '../../shared/Context'\n\nconst InputMasked = (props) => {\n const context = React.useContext(Context)\n\n // Remove masks defined in Provider/Context, because it overwrites a custom mask\n if (props?.mask) {\n const alias = context?.InputMasked\n for (const key in alias) {\n if (/^as[_A-Z]|number_mask|currency_mask/.test(key)) {\n delete alias[key]\n }\n }\n }\n\n const contextAndProps = React.useCallback(\n extendPropsWithContext(\n props,\n InputMasked.defaultProps,\n context?.InputMasked\n ),\n [props, InputMasked.defaultProps, context?.InputMasked]\n )\n\n return (\n <InputMaskedContext.Provider\n value={{\n props: contextAndProps,\n context,\n }}\n >\n <InputMaskedElement />\n </InputMaskedContext.Provider>\n )\n}\n\nInputMasked.propTypes = {\n mask: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.array,\n PropTypes.func,\n ]),\n number_mask: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n PropTypes.object,\n ]),\n currency_mask: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n PropTypes.object,\n ]),\n mask_options: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n number_format: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n locale: PropTypes.string,\n as_currency: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n as_number: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n as_percent: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n show_mask: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n show_guide: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n pipe: PropTypes.func,\n keep_char_positions: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n placeholder_char: PropTypes.string,\n inner_ref: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n\n on_change: PropTypes.func,\n on_submit: PropTypes.func,\n on_focus: PropTypes.func,\n on_blur: PropTypes.func,\n on_submit_focus: PropTypes.func,\n on_submit_blur: PropTypes.func,\n\n ...inputPropTypes,\n}\n\nInputMasked.defaultProps = {\n ...Input.defaultProps,\n\n mask: null,\n number_mask: null,\n currency_mask: null,\n mask_options: null,\n number_format: null,\n as_currency: null,\n as_number: null,\n as_percent: null,\n locale: null,\n show_mask: false,\n show_guide: true,\n pipe: null,\n keep_char_positions: false,\n placeholder_char: null,\n inner_ref: null,\n\n on_change: null,\n on_submit: null,\n on_focus: null,\n on_blur: null,\n on_submit_focus: null,\n on_submit_blur: null,\n}\n\nInputMasked._supportsSpacingProps = true\n\nexport default InputMasked\n"],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import React from 'react';
2
+ import { SpacingProps } from '../space/types';
3
+ import { FormStatusState, FormStatusText } from '../FormStatus';
4
+ export type MultiInputMaskInput<T extends string> = {
5
+ /**
6
+ * 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.
7
+ */
8
+ id: T;
9
+ /**
10
+ * Label used by the input. The label itself is hidden, but required to uphold accessibility standards for screen readers.
11
+ */
12
+ label: React.ReactNode;
13
+ /**
14
+ * 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
15
+ */
16
+ mask: RegExp[];
17
+ /**
18
+ * Sets the placeholder character used for the input.
19
+ */
20
+ placeholderCharacter: string;
21
+ };
22
+ export type MultiInputMaskValue<T extends string> = {
23
+ [K in T]: string;
24
+ };
25
+ export type MultiInputMaskProps<T extends string> = {
26
+ /**
27
+ * The label describing the group of inputs inside the components.
28
+ */
29
+ label?: React.ReactNode;
30
+ /**
31
+ * Use to change the label layout direction. Defaults to `horizontal`.
32
+ */
33
+ labelDirection?: 'vertical' | 'horizontal';
34
+ /**
35
+ * 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`
36
+ */
37
+ inputs: MultiInputMaskInput<T>[];
38
+ /**
39
+ * Values used for the inputs inside the component. Expects an object with keys matching the id's defined in `inputs`
40
+ */
41
+ values?: MultiInputMaskValue<T>;
42
+ /**
43
+ * Defines the delimiter used to separate the inputs inside the component.
44
+ */
45
+ delimiter?: string;
46
+ /**
47
+ * Runs when the input value changes. Has an object parameter with keys matching the id's defined in `inputs`. i.e. `{month: string, year: string}`
48
+ */
49
+ onChange?: (values: MultiInputMaskValue<T>) => void;
50
+ /**
51
+ * Text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message.
52
+ */
53
+ status?: FormStatusText;
54
+ /**
55
+ * Defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`.
56
+ */
57
+ statusState?: FormStatusState;
58
+ } & Omit<React.HTMLProps<HTMLInputElement>, 'onChange' | 'ref' | 'value' | 'label'> & SpacingProps;
59
+ declare function MultiInputMask<T extends string>({ label, labelDirection, inputs, delimiter, onChange: onChangeExternal, disabled, status, statusState, values: defaultValues, className, ...props }: MultiInputMaskProps<T>): import("react/jsx-runtime").JSX.Element;
60
+ export default MultiInputMask;
@@ -0,0 +1,150 @@
1
+ "use client";
2
+
3
+ import _extends from "@babel/runtime/helpers/esm/extends";
4
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
+ const _excluded = ["label", "labelDirection", "inputs", "delimiter", "onChange", "disabled", "status", "statusState", "values", "className"];
6
+ import React, { Fragment, useRef } from 'react';
7
+ import Input from '../Input';
8
+ import TextMask from './TextMask';
9
+ import useHandleCursorPosition from './hooks/useHandleCursorPosition';
10
+ import classnames from 'classnames';
11
+ import FormLabel from '../FormLabel';
12
+ import { createSpacingClasses } from '../space/SpacingHelper';
13
+ import { useMultiInputValue } from './hooks/useMultiInputValues';
14
+ function MultiInputMask(_ref) {
15
+ let {
16
+ label,
17
+ labelDirection = 'horizontal',
18
+ inputs,
19
+ delimiter,
20
+ onChange: onChangeExternal,
21
+ disabled,
22
+ status,
23
+ statusState,
24
+ values: defaultValues,
25
+ className
26
+ } = _ref,
27
+ props = _objectWithoutProperties(_ref, _excluded);
28
+ const [values, onChange] = useMultiInputValue({
29
+ inputs,
30
+ defaultValues,
31
+ callback: onChangeExternal
32
+ });
33
+ const inputRefs = useRef([]);
34
+ const {
35
+ onKeyDown
36
+ } = useHandleCursorPosition(inputRefs.current, getKeysToHandle());
37
+ const WrapperElement = label ? 'fieldset' : 'div';
38
+ return React.createElement(WrapperElement, {
39
+ className: classnames('dnb-multi-input-mask__fieldset', createSpacingClasses(props), labelDirection === 'horizontal' && 'dnb-multi-input-mask__fieldset--horizontal')
40
+ }, label && React.createElement(FormLabel, {
41
+ className: 'dnb-multi-input-mask__legend' + (labelDirection === 'horizontal' ? " dnb-multi-input-mask__legend--horizontal" : ""),
42
+ element: "legend",
43
+ onClick: onLegendClick,
44
+ disabled: disabled,
45
+ vertical: labelDirection === 'vertical'
46
+ }, React.createElement("span", null, label)), React.createElement(Input, _extends({}, props, {
47
+ className: classnames('dnb-multi-input-mask', className),
48
+ disabled: disabled,
49
+ status: status,
50
+ status_state: statusState,
51
+ input_element: inputs.map((input, index) => React.createElement(Fragment, {
52
+ key: input.id
53
+ }, React.createElement(MultiInputMaskInput, _extends({}, input, {
54
+ value: values[input.id],
55
+ delimiter: index !== inputs.length - 1 ? delimiter : undefined,
56
+ onKeyDown: onKeyDown,
57
+ onChange: onChange,
58
+ disabled: disabled,
59
+ inputRef: getInputRef
60
+ }))))
61
+ })));
62
+ function onLegendClick() {
63
+ if (disabled) {
64
+ return;
65
+ }
66
+ const firstInput = inputRefs.current[0].current;
67
+ firstInput.focus();
68
+ firstInput.setSelectionRange(0, 0);
69
+ }
70
+ function getInputRef(ref) {
71
+ const inputRef = ref === null || ref === void 0 ? void 0 : ref.inputRef;
72
+ if (inputRef && !inputRefs.current.includes(inputRef)) {
73
+ inputRefs.current.push(inputRef);
74
+ }
75
+ }
76
+ function getKeysToHandle() {
77
+ const uniqueMasks = getUniqueMasks();
78
+ if (uniqueMasks.size === 1) {
79
+ const pattern = uniqueMasks.values().next().value.replace(/\//g, '');
80
+ return new RegExp(pattern);
81
+ }
82
+ return inputs.reduce((keys, _ref2) => {
83
+ let {
84
+ id,
85
+ mask
86
+ } = _ref2;
87
+ keys[`${id}__input`] = mask;
88
+ return keys;
89
+ }, {});
90
+ }
91
+ function getUniqueMasks() {
92
+ const masks = new Set();
93
+ inputs.forEach(input => {
94
+ input.mask.forEach(pattern => masks.add(String(pattern)));
95
+ });
96
+ return masks;
97
+ }
98
+ }
99
+ function MultiInputMaskInput(_ref3) {
100
+ let {
101
+ id,
102
+ label,
103
+ value,
104
+ mask,
105
+ placeholderCharacter,
106
+ delimiter,
107
+ disabled,
108
+ inputRef,
109
+ onKeyDown,
110
+ onChange
111
+ } = _ref3;
112
+ return React.createElement(React.Fragment, null, React.createElement(TextMask, {
113
+ id: `${id}__input`,
114
+ className: "dnb-input__input dnb-multi-input-mask__input" + (value ? " dnb-multi-input-mask__input--highlight" : ""),
115
+ disabled: disabled,
116
+ size: mask.length,
117
+ mask: mask,
118
+ value: value !== null && value !== void 0 ? value : '',
119
+ placeholderChar: placeholderCharacter,
120
+ guide: true,
121
+ showMask: true,
122
+ keepCharPositions: false,
123
+ "aria-labelledby": `${id}__label`,
124
+ ref: inputRef,
125
+ onKeyDown: onKeyDown,
126
+ onFocus: onFocus,
127
+ onChange: event => {
128
+ onChange(id, removePlaceholder(event.target.value, placeholderCharacter));
129
+ }
130
+ }), React.createElement("label", {
131
+ id: `${id}__label`,
132
+ htmlFor: `${id}__input`,
133
+ hidden: true
134
+ }, label), delimiter && React.createElement("span", {
135
+ "aria-hidden": true,
136
+ className: 'dnb-multi-input-mask__delimiter' + (value ? " dnb-multi-input-mask__delimiter--highlight" : "")
137
+ }, delimiter));
138
+ function removePlaceholder(value, placeholder) {
139
+ return value.replace(RegExp(placeholder, 'gm'), '');
140
+ }
141
+ function onFocus(_ref4) {
142
+ let {
143
+ target
144
+ } = _ref4;
145
+ target.focus();
146
+ target.select();
147
+ }
148
+ }
149
+ export default MultiInputMask;
150
+ //# sourceMappingURL=MultiInputMask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiInputMask.js","names":["React","Fragment","useRef","Input","TextMask","useHandleCursorPosition","classnames","FormLabel","createSpacingClasses","useMultiInputValue","MultiInputMask","_ref","label","labelDirection","inputs","delimiter","onChange","onChangeExternal","disabled","status","statusState","values","defaultValues","className","props","_objectWithoutProperties","_excluded","callback","inputRefs","onKeyDown","current","getKeysToHandle","WrapperElement","createElement","element","onClick","onLegendClick","vertical","_extends","status_state","input_element","map","input","index","key","id","MultiInputMaskInput","value","length","undefined","inputRef","getInputRef","firstInput","focus","setSelectionRange","ref","includes","push","uniqueMasks","getUniqueMasks","size","pattern","next","replace","RegExp","reduce","keys","_ref2","mask","masks","Set","forEach","add","String","_ref3","placeholderCharacter","placeholderChar","guide","showMask","keepCharPositions","onFocus","event","removePlaceholder","target","htmlFor","hidden","placeholder","_ref4","select"],"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'\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}\n\nexport type MultiInputMaskValue<T extends string> = {\n // eslint-disable-next-line no-unused-vars\n [K in T]: string\n}\n\nexport type MultiInputMaskProps<T extends string> = {\n /**\n * The label describing the group of inputs inside the components.\n */\n label?: React.ReactNode\n /**\n * Use to change the label layout direction. Defaults to `horizontal`.\n */\n labelDirection?: 'vertical' | 'horizontal'\n /**\n * Used to define the different inputs representing the inputs in the component. The id's defined here is used to map input value to correct property in `values` parameters used in `onChange`\n */\n inputs: MultiInputMaskInput<T>[]\n /**\n * Values used for the inputs inside the component. Expects an object with keys matching the id's defined in `inputs`\n */\n values?: MultiInputMaskValue<T>\n /**\n * Defines the delimiter used to separate the inputs inside the component.\n */\n delimiter?: string\n /**\n * Runs when the input value changes. Has an object parameter with keys matching the id's defined in `inputs`. i.e. `{month: string, year: string}`\n */\n onChange?: (values: MultiInputMaskValue<T>) => void\n /**\n * Text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message.\n */\n status?: FormStatusText\n /**\n * Defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`.\n */\n statusState?: FormStatusState\n} & Omit<\n React.HTMLProps<HTMLInputElement>,\n 'onChange' | 'ref' | 'value' | 'label'\n> &\n SpacingProps\n\nfunction MultiInputMask<T extends string>({\n label,\n labelDirection = 'horizontal',\n inputs,\n delimiter,\n onChange: onChangeExternal,\n disabled,\n status,\n statusState,\n values: defaultValues,\n className,\n ...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 input_element={inputs.map((input, index) => (\n <Fragment key={input.id}>\n <MultiInputMaskInput\n {...input}\n value={values[input.id]}\n delimiter={\n index !== inputs.length - 1 ? delimiter : undefined\n }\n onKeyDown={onKeyDown}\n onChange={onChange}\n disabled={disabled}\n inputRef={getInputRef}\n />\n </Fragment>\n ))}\n />\n </WrapperElement>\n )\n\n // Event handlers\n function onLegendClick() {\n if (disabled) {\n return\n }\n\n const firstInput = inputRefs.current[0].current\n\n firstInput.focus()\n firstInput.setSelectionRange(0, 0)\n }\n\n // Utilities\n function getInputRef(ref: any) {\n const inputRef = ref?.inputRef\n\n if (inputRef && !inputRefs.current.includes(inputRef)) {\n inputRefs.current.push(inputRef)\n }\n }\n\n function getKeysToHandle() {\n const uniqueMasks = getUniqueMasks()\n\n // Return the only one RegExp since all the inputs are using the same mask\n if (uniqueMasks.size === 1) {\n const pattern = uniqueMasks.values().next().value.replace(/\\//g, '')\n return new RegExp(pattern)\n }\n\n // If there are multiple types of masks used, then map the maps to an object based on input ids\n // So that useHandleCursorPosition can do a per character test to see if the pressed key should be handled or not\n return inputs.reduce(\n (keys, { id, mask }) => {\n keys[`${id}__input`] = mask\n\n return keys\n },\n {} as Record<`${T}__input`, RegExp[]>\n )\n }\n\n function getUniqueMasks() {\n const masks = new Set()\n\n inputs.forEach((input) => {\n input.mask.forEach((pattern) => masks.add(String(pattern)))\n })\n\n return masks\n }\n}\n\ntype MultiInputMaskInputProps<T extends string> =\n MultiInputMaskInput<T> & {\n id: MultiInputMaskInput<T>['id']\n label: MultiInputMaskInput<T>['label']\n value: string\n mask: MultiInputMaskInput<T>['mask']\n placeholderCharacter: MultiInputMaskInput<T>['placeholderCharacter']\n delimiter?: MultiInputMaskProps<T>['delimiter']\n disabled: boolean\n onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void\n onChange: (\n id: string,\n placeholderCharacter: MultiInputMaskInput<T>['placeholderCharacter']\n ) => void\n inputRef: any\n }\n\nfunction MultiInputMaskInput<T extends string>({\n id,\n label,\n value,\n mask,\n placeholderCharacter,\n delimiter,\n disabled,\n inputRef,\n onKeyDown,\n onChange,\n}: MultiInputMaskInputProps<T>) {\n return (\n <>\n <TextMask\n id={`${id}__input`}\n className={classnames(\n 'dnb-input__input',\n 'dnb-multi-input-mask__input',\n value && 'dnb-multi-input-mask__input--highlight'\n )}\n disabled={disabled}\n size={mask.length}\n mask={mask}\n value={value ?? ''}\n placeholderChar={placeholderCharacter}\n guide={true}\n showMask={true}\n keepCharPositions={false} // so we can overwrite next value, if it already exists\n aria-labelledby={`${id}__label`}\n ref={inputRef}\n onKeyDown={onKeyDown}\n onFocus={onFocus}\n onChange={(event) => {\n onChange(\n id,\n removePlaceholder(event.target.value, placeholderCharacter)\n )\n }}\n />\n <label id={`${id}__label`} htmlFor={`${id}__input`} hidden>\n {label}\n </label>\n {delimiter && (\n <span\n aria-hidden\n className={classnames(\n 'dnb-multi-input-mask__delimiter',\n value && 'dnb-multi-input-mask__delimiter--highlight'\n )}\n >\n {delimiter}\n </span>\n )}\n </>\n )\n\n function removePlaceholder(value: string, placeholder: string) {\n return value.replace(RegExp(placeholder, 'gm'), '')\n }\n\n function onFocus({ target }: React.FocusEvent<HTMLInputElement>) {\n target.focus()\n target.select()\n }\n}\n\nexport default MultiInputMask\n"],"mappings":"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"}
@@ -13,7 +13,7 @@ export type TextMaskInputElement =
13
13
  export type TextMaskValue = string | number;
14
14
  export interface TextMaskProps extends React.HTMLProps<HTMLElement> {
15
15
  mask: TextMaskMask;
16
- inputRef?: Record<string, unknown>;
16
+ inputRef?: React.MutableRefObject<HTMLInputElement>;
17
17
  inputElement?: TextMaskInputElement;
18
18
  onChange?: (...args: any[]) => any;
19
19
  guide?: boolean;
@@ -0,0 +1,7 @@
1
+ import { MutableRefObject } from 'react';
2
+ declare function useHandleCursorPosition(inputRefs: MutableRefObject<HTMLInputElement>[], keysToHandle?: RegExp | {
3
+ [inputId: string]: RegExp[];
4
+ }): {
5
+ onKeyDown: (event: React.KeyboardEvent) => void;
6
+ };
7
+ export default useHandleCursorPosition;
@@ -0,0 +1,108 @@
1
+ "use client";
2
+
3
+ import { useEffect, useRef } from 'react';
4
+ function useHandleCursorPosition(inputRefs, keysToHandle) {
5
+ const inputList = useRef(refsToInputList(inputRefs));
6
+ useEffect(() => {
7
+ inputList.current = refsToInputList(inputRefs);
8
+ }, [inputRefs]);
9
+ function onKeyDown(event) {
10
+ var _getKeysToHandle;
11
+ const inputs = inputList.current;
12
+ const input = event.target;
13
+ const pressedKey = event.key;
14
+ const hasPressedKeysToHandle = ((_getKeysToHandle = getKeysToHandle({
15
+ keysToHandle,
16
+ input
17
+ })) === null || _getKeysToHandle === void 0 ? void 0 : _getKeysToHandle.test(pressedKey)) || /(ArrowRight|ArrowLeft|Backspace)/.test(pressedKey);
18
+ const initialSelectionStart = input.selectionStart;
19
+ const inputPosition = getInputPosition(input, inputs);
20
+ window.requestAnimationFrame(() => {
21
+ const caretPosition = getCaretPosition(input);
22
+ if (!hasPressedKeysToHandle) {
23
+ return;
24
+ }
25
+ if (caretPosition === 'last' && inputPosition !== 'last' && !(initialSelectionStart === 1 && pressedKey === 'ArrowRight')) {
26
+ return goToInput('next', input, inputs);
27
+ }
28
+ if (caretPosition === 'first' && inputPosition !== 'first' && !(initialSelectionStart === 1 && (pressedKey === 'ArrowLeft' || pressedKey === 'Backspace'))) {
29
+ return goToInput('previous', input, inputs);
30
+ }
31
+ });
32
+ }
33
+ return {
34
+ onKeyDown
35
+ };
36
+ }
37
+ function refsToInputList(inputRefs) {
38
+ return inputRefs.map(ref => ref.current).filter(Boolean);
39
+ }
40
+ function getKeysToHandle(_ref) {
41
+ let {
42
+ keysToHandle,
43
+ input
44
+ } = _ref;
45
+ if (!keysToHandle) {
46
+ return undefined;
47
+ }
48
+ if (keysToHandle instanceof RegExp) {
49
+ return keysToHandle;
50
+ }
51
+ const masks = keysToHandle[input.id];
52
+ const selection = input.selectionStart === input.selectionEnd ? input.selectionStart : undefined;
53
+ if (!selection) {
54
+ return undefined;
55
+ }
56
+ const maskIndex = selection === input.size ? masks.length - 1 : selection;
57
+ return masks[maskIndex];
58
+ }
59
+ function getInputPosition(input, inputs) {
60
+ const firstInput = inputs[0];
61
+ const lastInput = inputs[inputs.length - 1];
62
+ if (input === firstInput) {
63
+ return 'first';
64
+ }
65
+ if (input === lastInput) {
66
+ return 'last';
67
+ }
68
+ return 'non-initial';
69
+ }
70
+ function getSelectionPositions(input) {
71
+ return {
72
+ start: 0,
73
+ end: Number(input.size)
74
+ };
75
+ }
76
+ function getCaretPosition(input) {
77
+ const {
78
+ start,
79
+ end
80
+ } = getSelectionPositions(input);
81
+ const selectionStart = input.selectionStart;
82
+ const selectionEnd = input.selectionEnd;
83
+ if (selectionStart === start && selectionEnd === start) {
84
+ return 'first';
85
+ }
86
+ if (selectionStart === end && selectionEnd === end) {
87
+ return 'last';
88
+ }
89
+ return 'non-initial';
90
+ }
91
+ function goToInput(to, input, inputs) {
92
+ const currentInputIndex = inputs.indexOf(input);
93
+ const siblingIndex = to === 'next' ? currentInputIndex + 1 : to === 'previous' ? currentInputIndex - 1 : 0;
94
+ const siblingInput = inputs[siblingIndex];
95
+ const {
96
+ start,
97
+ end
98
+ } = getSelectionPositions(siblingInput);
99
+ siblingInput.focus();
100
+ if (to === 'next') {
101
+ return siblingInput.setSelectionRange(start, start);
102
+ }
103
+ if (to === 'previous') {
104
+ return siblingInput.setSelectionRange(end, end);
105
+ }
106
+ }
107
+ export default useHandleCursorPosition;
108
+ //# sourceMappingURL=useHandleCursorPosition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHandleCursorPosition.js","names":["useEffect","useRef","useHandleCursorPosition","inputRefs","keysToHandle","inputList","refsToInputList","current","onKeyDown","event","_getKeysToHandle","inputs","input","target","pressedKey","key","hasPressedKeysToHandle","getKeysToHandle","test","initialSelectionStart","selectionStart","inputPosition","getInputPosition","window","requestAnimationFrame","caretPosition","getCaretPosition","goToInput","map","ref","filter","Boolean","_ref","undefined","RegExp","masks","id","selection","selectionEnd","maskIndex","size","length","firstInput","lastInput","getSelectionPositions","start","end","Number","to","currentInputIndex","indexOf","siblingIndex","siblingInput","focus","setSelectionRange"],"sources":["../../../../../src/components/input-masked/hooks/useHandleCursorPosition.ts"],"sourcesContent":["import { MutableRefObject, useEffect, useRef } from 'react'\n\nfunction useHandleCursorPosition(\n inputRefs: MutableRefObject<HTMLInputElement>[],\n keysToHandle?: RegExp | { [inputId: string]: RegExp[] }\n) {\n const inputList = useRef(refsToInputList(inputRefs))\n\n // To keep the refs.current in synch with component of use, or else it wont be possible to navigate to the next input, without triggering a re-render first.\n useEffect(() => {\n inputList.current = refsToInputList(inputRefs)\n }, [inputRefs])\n\n function onKeyDown(event: React.KeyboardEvent) {\n const inputs = inputList.current\n const input = event.target as HTMLInputElement\n\n const pressedKey = event.key\n\n const hasPressedKeysToHandle =\n getKeysToHandle({ keysToHandle, input })?.test(pressedKey) ||\n /(ArrowRight|ArrowLeft|Backspace)/.test(pressedKey)\n\n const initialSelectionStart = input.selectionStart\n\n const inputPosition = getInputPosition(input, inputs)\n\n window.requestAnimationFrame(() => {\n const caretPosition = getCaretPosition(input)\n\n if (!hasPressedKeysToHandle) {\n return // stop here\n }\n\n if (\n caretPosition === 'last' &&\n inputPosition !== 'last' &&\n !(initialSelectionStart === 1 && pressedKey === 'ArrowRight')\n ) {\n return goToInput('next', input, inputs)\n }\n\n if (\n caretPosition === 'first' &&\n inputPosition !== 'first' &&\n !(\n initialSelectionStart === 1 &&\n (pressedKey === 'ArrowLeft' || pressedKey === 'Backspace')\n )\n ) {\n return goToInput('previous', input, inputs)\n }\n })\n }\n\n return { onKeyDown }\n}\n\n// Helpers\nfunction refsToInputList(inputRefs: MutableRefObject<HTMLInputElement>[]) {\n return inputRefs.map((ref) => ref.current).filter(Boolean)\n}\n\ntype GetKeysToHandleParams = {\n keysToHandle: RegExp | { [inputId: string]: RegExp[] }\n input: HTMLInputElement\n}\n\nfunction getKeysToHandle({ keysToHandle, input }: GetKeysToHandleParams) {\n if (!keysToHandle) {\n return undefined\n }\n\n if (keysToHandle instanceof RegExp) {\n return keysToHandle\n }\n\n const masks = keysToHandle[input.id]\n\n const selection =\n input.selectionStart === input.selectionEnd\n ? input.selectionStart\n : undefined\n\n if (!selection) {\n return undefined\n }\n\n const maskIndex = selection === input.size ? masks.length - 1 : selection\n\n return masks[maskIndex]\n}\n\nfunction getInputPosition(\n input: HTMLInputElement,\n inputs: HTMLInputElement[]\n) {\n const firstInput = inputs[0]\n const lastInput = inputs[inputs.length - 1]\n\n if (input === firstInput) {\n return 'first'\n }\n\n if (input === lastInput) {\n return 'last'\n }\n\n return 'non-initial'\n}\n\nfunction getSelectionPositions(input: HTMLInputElement) {\n return { start: 0, end: Number(input.size) }\n}\n\nfunction getCaretPosition(input: HTMLInputElement) {\n const { start, end } = getSelectionPositions(input)\n\n const selectionStart = input.selectionStart\n const selectionEnd = input.selectionEnd\n\n if (selectionStart === start && selectionEnd === start) {\n return 'first'\n }\n\n if (selectionStart === end && selectionEnd === end) {\n return 'last'\n }\n\n return 'non-initial'\n}\n\nfunction goToInput(\n to: 'next' | 'previous',\n input: HTMLInputElement,\n inputs: HTMLInputElement[]\n) {\n const currentInputIndex = inputs.indexOf(input)\n\n const siblingIndex =\n to === 'next'\n ? currentInputIndex + 1\n : to === 'previous'\n ? currentInputIndex - 1\n : 0\n\n const siblingInput = inputs[siblingIndex]\n\n const { start, end } = getSelectionPositions(siblingInput)\n\n siblingInput.focus()\n\n if (to === 'next') {\n return siblingInput.setSelectionRange(start, start)\n }\n\n if (to === 'previous') {\n return siblingInput.setSelectionRange(end, end)\n }\n}\n\nexport default useHandleCursorPosition\n"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { MultiInputMaskProps, MultiInputMaskValue } from '../MultiInputMask';
2
+ type SteppedValuesHook<T extends string> = {
3
+ inputs: MultiInputMaskProps<T>['inputs'];
4
+ defaultValues?: MultiInputMaskProps<T>['values'];
5
+ callback?: (values: MultiInputMaskProps<T>['values']) => void;
6
+ };
7
+ export declare function useMultiInputValue<T extends string>({ inputs, defaultValues, callback, }: SteppedValuesHook<T>): readonly [MultiInputMaskValue<T>, (id: string, value: string) => void];
8
+ export {};
@@ -0,0 +1,31 @@
1
+ "use client";
2
+
3
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
+ import { useState } from 'react';
7
+ export function useMultiInputValue(_ref) {
8
+ let {
9
+ inputs,
10
+ defaultValues,
11
+ callback
12
+ } = _ref;
13
+ const [values, setValues] = useState(defaultValues ? defaultValues : createDefaultValues());
14
+ function createDefaultValues() {
15
+ return inputs.reduce((values, input) => {
16
+ values[input.id] = '';
17
+ return values;
18
+ }, {});
19
+ }
20
+ function onChange(id, value) {
21
+ const updatedValues = _objectSpread(_objectSpread({}, values), {}, {
22
+ [id]: value
23
+ });
24
+ setValues(updatedValues);
25
+ if (callback) {
26
+ callback(updatedValues);
27
+ }
28
+ }
29
+ return [values, onChange];
30
+ }
31
+ //# sourceMappingURL=useMultiInputValues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMultiInputValues.js","names":["useState","useMultiInputValue","_ref","inputs","defaultValues","callback","values","setValues","createDefaultValues","reduce","input","id","onChange","value","updatedValues","_objectSpread"],"sources":["../../../../../src/components/input-masked/hooks/useMultiInputValues.ts"],"sourcesContent":["import { useState } from 'react'\nimport {\n MultiInputMaskProps,\n MultiInputMaskValue,\n} from '../MultiInputMask'\n\ntype SteppedValuesHook<T extends string> = {\n inputs: MultiInputMaskProps<T>['inputs']\n defaultValues?: MultiInputMaskProps<T>['values']\n callback?: (values: MultiInputMaskProps<T>['values']) => void\n}\n\nexport function useMultiInputValue<T extends string>({\n inputs,\n defaultValues,\n callback,\n}: SteppedValuesHook<T>) {\n const [values, setValues] = useState<MultiInputMaskValue<T>>(\n defaultValues ? defaultValues : createDefaultValues()\n )\n\n function createDefaultValues() {\n return inputs.reduce((values, input) => {\n values[input.id] = ''\n\n return values\n }, {} as MultiInputMaskValue<T>)\n }\n\n function onChange(id: string, value: string) {\n const updatedValues = { ...values, [id]: value }\n\n setValues(updatedValues)\n if (callback) {\n callback(updatedValues)\n }\n }\n\n return [values, onChange] as const\n}\n"],"mappings":";;;;;AAAA,SAASA,QAAQ,QAAQ,OAAO;AAYhC,OAAO,SAASC,kBAAkBA,CAAAC,IAAA,EAIT;EAAA,IAJ4B;IACnDC,MAAM;IACNC,aAAa;IACbC;EACoB,CAAC,GAAAH,IAAA;EACrB,MAAM,CAACI,MAAM,EAAEC,SAAS,CAAC,GAAGP,QAAQ,CAClCI,aAAa,GAAGA,aAAa,GAAGI,mBAAmB,CAAC,CACtD,CAAC;EAED,SAASA,mBAAmBA,CAAA,EAAG;IAC7B,OAAOL,MAAM,CAACM,MAAM,CAAC,CAACH,MAAM,EAAEI,KAAK,KAAK;MACtCJ,MAAM,CAACI,KAAK,CAACC,EAAE,CAAC,GAAG,EAAE;MAErB,OAAOL,MAAM;IACf,CAAC,EAAE,CAAC,CAA2B,CAAC;EAClC;EAEA,SAASM,QAAQA,CAACD,EAAU,EAAEE,KAAa,EAAE;IAC3C,MAAMC,aAAa,GAAAC,aAAA,CAAAA,aAAA,KAAQT,MAAM;MAAE,CAACK,EAAE,GAAGE;IAAK,EAAE;IAEhDN,SAAS,CAACO,aAAa,CAAC;IACxB,IAAIT,QAAQ,EAAE;MACZA,QAAQ,CAACS,aAAa,CAAC;IACzB;EACF;EAEA,OAAO,CAACR,MAAM,EAAEM,QAAQ,CAAC;AAC3B"}
@@ -5,3 +5,5 @@
5
5
  import InputMasked from './InputMasked';
6
6
  export default InputMasked;
7
7
  export * from './InputMasked';
8
+ export { default as MultiInputMask } from './MultiInputMask';
9
+ export * from './MultiInputMask';
@@ -1,4 +1,6 @@
1
1
  import InputMasked from './InputMasked';
2
2
  export default InputMasked;
3
3
  export * from './InputMasked';
4
+ export { default as MultiInputMask } from './MultiInputMask';
5
+ export * from './MultiInputMask';
4
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["InputMasked"],"sources":["../../../../src/components/input-masked/index.ts"],"sourcesContent":["/**\n * Component Entry\n *\n */\n\nimport InputMasked from './InputMasked'\nexport default InputMasked\nexport * from './InputMasked'\n"],"mappings":"AAKA,OAAOA,WAAW,MAAM,eAAe;AACvC,eAAeA,WAAW;AAC1B,cAAc,eAAe"}
1
+ {"version":3,"file":"index.js","names":["InputMasked","default","MultiInputMask"],"sources":["../../../../src/components/input-masked/index.ts"],"sourcesContent":["/**\n * Component Entry\n *\n */\n\nimport InputMasked from './InputMasked'\nexport default InputMasked\nexport * from './InputMasked'\n\nexport { default as MultiInputMask } from './MultiInputMask'\nexport * from './MultiInputMask'\n"],"mappings":"AAKA,OAAOA,WAAW,MAAM,eAAe;AACvC,eAAeA,WAAW;AAC1B,cAAc,eAAe;AAE7B,SAASC,OAAO,IAAIC,cAAc,QAAQ,kBAAkB;AAC5D,cAAc,kBAAkB"}