@dnb/eufemia 10.75.4 → 10.76.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 (813) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/cjs/components/DateFormat.d.ts +12 -0
  3. package/cjs/components/DateFormat.js +24 -0
  4. package/cjs/components/DateFormat.js.map +1 -0
  5. package/cjs/components/PortalRoot.d.ts +12 -0
  6. package/cjs/components/PortalRoot.js +24 -0
  7. package/cjs/components/PortalRoot.js.map +1 -0
  8. package/cjs/components/breadcrumb/Breadcrumb.d.ts +4 -0
  9. package/cjs/components/breadcrumb/Breadcrumb.js +9 -4
  10. package/cjs/components/breadcrumb/Breadcrumb.js.map +1 -1
  11. package/cjs/components/breadcrumb/BreadcrumbDocs.js +5 -0
  12. package/cjs/components/breadcrumb/BreadcrumbDocs.js.map +1 -1
  13. package/cjs/components/card/Card.d.ts +4 -0
  14. package/cjs/components/card/Card.js +13 -4
  15. package/cjs/components/card/Card.js.map +1 -1
  16. package/cjs/components/card/CardDocs.js +1 -1
  17. package/cjs/components/card/CardDocs.js.map +1 -1
  18. package/cjs/components/checkbox/Checkbox.js.map +1 -1
  19. package/cjs/components/date-format/DateFormat.d.ts +30 -0
  20. package/cjs/components/date-format/DateFormat.js +86 -0
  21. package/cjs/components/date-format/DateFormat.js.map +1 -0
  22. package/cjs/components/date-format/DateFormatDocs.d.ts +2 -0
  23. package/cjs/components/date-format/DateFormatDocs.js +34 -0
  24. package/cjs/components/date-format/DateFormatDocs.js.map +1 -0
  25. package/cjs/components/date-format/DateFormatUtils.d.ts +11 -0
  26. package/cjs/components/date-format/DateFormatUtils.js +36 -0
  27. package/cjs/components/date-format/DateFormatUtils.js.map +1 -0
  28. package/cjs/components/date-format/index.d.ts +7 -0
  29. package/cjs/components/date-format/index.js +24 -0
  30. package/cjs/components/date-format/index.js.map +1 -0
  31. package/cjs/components/date-picker/DatePicker.js +5 -8
  32. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  33. package/cjs/components/date-picker/DatePickerCalc.d.ts +0 -13
  34. package/cjs/components/date-picker/DatePickerCalc.js +0 -44
  35. package/cjs/components/date-picker/DatePickerCalc.js.map +1 -1
  36. package/cjs/components/date-picker/DatePickerCalendar.js +11 -10
  37. package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
  38. package/cjs/components/date-picker/DatePickerCalendarNavigator.js +7 -7
  39. package/cjs/components/date-picker/DatePickerCalendarNavigator.js.map +1 -1
  40. package/cjs/components/date-picker/DatePickerInput.js +2 -1
  41. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  42. package/cjs/components/date-picker/DatePickerPortal.d.ts +1 -1
  43. package/cjs/components/date-picker/DatePickerPortal.js +4 -4
  44. package/cjs/components/date-picker/DatePickerPortal.js.map +1 -1
  45. package/cjs/components/form-status/FormStatus.js +1 -1
  46. package/cjs/components/form-status/FormStatus.js.map +1 -1
  47. package/cjs/components/form-status/style/dnb-form-status.css +1 -1
  48. package/cjs/components/form-status/style/dnb-form-status.min.css +1 -1
  49. package/cjs/components/form-status/style/dnb-form-status.scss +1 -1
  50. package/cjs/components/form-status/style/themes/dnb-form-status-theme-sbanken.css +11 -2
  51. package/cjs/components/form-status/style/themes/dnb-form-status-theme-sbanken.min.css +1 -1
  52. package/cjs/components/form-status/style/themes/dnb-form-status-theme-sbanken.scss +6 -2
  53. package/cjs/components/global-status/style/themes/dnb-global-status-theme-sbanken.css +1 -1
  54. package/cjs/components/global-status/style/themes/dnb-global-status-theme-sbanken.min.css +1 -1
  55. package/cjs/components/global-status/style/themes/dnb-global-status-theme-sbanken.scss +1 -1
  56. package/cjs/components/help-button/style/dnb-help-button-inline.css +1 -1
  57. package/cjs/components/help-button/style/dnb-help-button-inline.min.css +1 -1
  58. package/cjs/components/help-button/style/dnb-help-button-inline.scss +1 -1
  59. package/cjs/components/help-button/style/dnb-help-button.css +1 -1
  60. package/cjs/components/help-button/style/dnb-help-button.min.css +1 -1
  61. package/cjs/components/index.d.ts +3 -1
  62. package/cjs/components/index.js +14 -0
  63. package/cjs/components/index.js.map +1 -1
  64. package/cjs/components/info-card/style/dnb-info-card.css +1 -1
  65. package/cjs/components/info-card/style/dnb-info-card.min.css +1 -1
  66. package/cjs/components/info-card/style/dnb-info-card.scss +1 -1
  67. package/cjs/components/lib.d.ts +5 -1
  68. package/cjs/components/lib.js +16 -0
  69. package/cjs/components/lib.js.map +1 -1
  70. package/cjs/components/modal/ModalRoot.d.ts +2 -7
  71. package/cjs/components/modal/ModalRoot.js +9 -65
  72. package/cjs/components/modal/ModalRoot.js.map +1 -1
  73. package/cjs/components/portal-root/PortalRoot.d.ts +7 -0
  74. package/cjs/components/portal-root/PortalRoot.js +65 -0
  75. package/cjs/components/portal-root/PortalRoot.js.map +1 -0
  76. package/cjs/components/portal-root/PortalRootDocs.d.ts +2 -0
  77. package/cjs/components/portal-root/PortalRootDocs.js +19 -0
  78. package/cjs/components/portal-root/PortalRootDocs.js.map +1 -0
  79. package/cjs/components/portal-root/index.d.ts +7 -0
  80. package/cjs/components/portal-root/index.js +24 -0
  81. package/cjs/components/portal-root/index.js.map +1 -0
  82. package/cjs/components/section/style/themes/dnb-section-theme-sbanken.css +1 -1
  83. package/cjs/components/section/style/themes/dnb-section-theme-sbanken.min.css +1 -1
  84. package/cjs/components/section/style/themes/dnb-section-theme-sbanken.scss +1 -1
  85. package/cjs/components/step-indicator/StepIndicator.js +6 -2
  86. package/cjs/components/step-indicator/StepIndicator.js.map +1 -1
  87. package/cjs/components/step-indicator/StepIndicatorDocs.js +1 -1
  88. package/cjs/components/step-indicator/StepIndicatorDocs.js.map +1 -1
  89. package/cjs/components/step-indicator/StepIndicatorTriggerButton.d.ts +2 -1
  90. package/cjs/components/step-indicator/StepIndicatorTriggerButton.js +5 -3
  91. package/cjs/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  92. package/cjs/components/switch/Switch.d.ts +12 -3
  93. package/cjs/components/switch/Switch.js +39 -15
  94. package/cjs/components/switch/Switch.js.map +1 -1
  95. package/cjs/components/switch/SwitchDocs.js +5 -0
  96. package/cjs/components/switch/SwitchDocs.js.map +1 -1
  97. package/cjs/components/tooltip/TooltipPortal.js +28 -59
  98. package/cjs/components/tooltip/TooltipPortal.js.map +1 -1
  99. package/cjs/components/tooltip/style/dnb-tooltip.css +8 -1
  100. package/cjs/components/tooltip/style/dnb-tooltip.min.css +1 -1
  101. package/cjs/components/tooltip/style/dnb-tooltip.scss +8 -1
  102. package/cjs/components/upload/Upload.js +31 -7
  103. package/cjs/components/upload/Upload.js.map +1 -1
  104. package/cjs/components/upload/UploadContext.d.ts +1 -0
  105. package/cjs/components/upload/UploadContext.js +2 -1
  106. package/cjs/components/upload/UploadContext.js.map +1 -1
  107. package/cjs/components/upload/UploadDocs.js +11 -1
  108. package/cjs/components/upload/UploadDocs.js.map +1 -1
  109. package/cjs/components/upload/UploadDropzone.d.ts +3 -1
  110. package/cjs/components/upload/UploadDropzone.js +5 -4
  111. package/cjs/components/upload/UploadDropzone.js.map +1 -1
  112. package/cjs/components/upload/UploadFileInput.d.ts +3 -1
  113. package/cjs/components/upload/UploadFileInput.js +7 -5
  114. package/cjs/components/upload/UploadFileInput.js.map +1 -1
  115. package/cjs/components/upload/style/dnb-upload.css +10 -2
  116. package/cjs/components/upload/style/dnb-upload.min.css +1 -1
  117. package/cjs/components/upload/style/dnb-upload.scss +12 -2
  118. package/cjs/components/upload/types.d.ts +4 -0
  119. package/cjs/components/upload/types.js.map +1 -1
  120. package/cjs/elements/lists/style/lists-mixins.scss +1 -1
  121. package/cjs/extensions/forms/Connectors/Bring/address.d.ts +48 -0
  122. package/cjs/extensions/forms/Connectors/Bring/address.js +185 -0
  123. package/cjs/extensions/forms/Connectors/Bring/address.js.map +1 -0
  124. package/cjs/extensions/forms/Connectors/Bring/index.d.ts +1 -0
  125. package/cjs/extensions/forms/Connectors/Bring/index.js +3 -1
  126. package/cjs/extensions/forms/Connectors/Bring/index.js.map +1 -1
  127. package/cjs/extensions/forms/Connectors/Bring/postalCode.js +10 -1
  128. package/cjs/extensions/forms/Connectors/Bring/postalCode.js.map +1 -1
  129. package/cjs/extensions/forms/Connectors/createContext.js +3 -0
  130. package/cjs/extensions/forms/Connectors/createContext.js.map +1 -1
  131. package/cjs/extensions/forms/Field/Address/Address.d.ts +3 -0
  132. package/cjs/extensions/forms/Field/Address/Address.js.map +1 -1
  133. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js +1 -1
  134. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
  135. package/cjs/extensions/forms/Field/Date/Date.js +11 -8
  136. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  137. package/cjs/extensions/forms/Field/Indeterminate/Indeterminate.js +3 -3
  138. package/cjs/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -1
  139. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +15 -6
  140. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  141. package/cjs/extensions/forms/Field/Toggle/Toggle.d.ts +1 -1
  142. package/cjs/extensions/forms/Field/Toggle/Toggle.js +36 -0
  143. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  144. package/cjs/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  145. package/cjs/extensions/forms/Field/Upload/Upload.js +26 -7
  146. package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
  147. package/cjs/extensions/forms/Field/style/field-sizes.scss +1 -1
  148. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +2 -2
  149. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  150. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -1
  151. package/cjs/extensions/forms/Form/Card/Card.d.ts +3 -6
  152. package/cjs/extensions/forms/Form/Card/Card.js +1 -1
  153. package/cjs/extensions/forms/Form/Card/Card.js.map +1 -1
  154. package/cjs/extensions/forms/Form/Card/CardDocs.d.ts +1 -0
  155. package/cjs/extensions/forms/Form/Card/CardDocs.js +14 -11
  156. package/cjs/extensions/forms/Form/Card/CardDocs.js.map +1 -1
  157. package/cjs/extensions/forms/Value/Date/Date.js +22 -7
  158. package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
  159. package/cjs/extensions/forms/Value/style/value-sizes.scss +2 -2
  160. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +2 -2
  161. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  162. package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
  163. package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
  164. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +1 -0
  165. package/cjs/extensions/forms/constants/locales/en-GB.js +2 -1
  166. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  167. package/cjs/extensions/forms/constants/locales/en-US.d.ts +1 -0
  168. package/cjs/extensions/forms/constants/locales/index.d.ts +2 -0
  169. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +1 -0
  170. package/cjs/extensions/forms/constants/locales/nb-NO.js +2 -1
  171. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  172. package/cjs/extensions/forms/constants/locales/sv-SE.d.ts +1 -0
  173. package/cjs/extensions/forms/constants/locales/sv-SE.js +2 -1
  174. package/cjs/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  175. package/cjs/extensions/forms/style/dnb-forms.css +4 -4
  176. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  177. package/cjs/extensions/payment-card/style/dnb-payment-card.css +1 -0
  178. package/cjs/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  179. package/cjs/fragments/drawer-list/DrawerList.d.ts +4 -2
  180. package/cjs/fragments/drawer-list/DrawerList.js +6 -5
  181. package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
  182. package/cjs/fragments/drawer-list/DrawerListHelpers.js +1 -1
  183. package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  184. package/cjs/fragments/drawer-list/DrawerListPortal.d.ts +1 -0
  185. package/cjs/fragments/drawer-list/DrawerListPortal.js +31 -65
  186. package/cjs/fragments/drawer-list/DrawerListPortal.js.map +1 -1
  187. package/cjs/fragments/drawer-list/DrawerListProvider.d.ts +1 -1
  188. package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  189. package/cjs/fragments/drawer-list/style/dnb-drawer-list.scss +1 -1
  190. package/cjs/index.d.ts +3 -1
  191. package/cjs/index.js +14 -0
  192. package/cjs/index.js.map +1 -1
  193. package/cjs/shared/build-info/BuildInfoData.d.ts +2 -2
  194. package/cjs/shared/build-info/BuildInfoData.js +2 -2
  195. package/cjs/shared/build-info/BuildInfoData.js.map +1 -1
  196. package/cjs/shared/locales/en-GB.d.ts +3 -0
  197. package/cjs/shared/locales/en-GB.js +3 -0
  198. package/cjs/shared/locales/en-GB.js.map +1 -1
  199. package/cjs/shared/locales/en-US.d.ts +3 -0
  200. package/cjs/shared/locales/index.d.ts +6 -0
  201. package/cjs/shared/locales/nb-NO.d.ts +3 -0
  202. package/cjs/shared/locales/nb-NO.js +3 -0
  203. package/cjs/shared/locales/nb-NO.js.map +1 -1
  204. package/cjs/shared/locales/sv-SE.d.ts +3 -0
  205. package/cjs/shared/locales/sv-SE.js +3 -0
  206. package/cjs/shared/locales/sv-SE.js.map +1 -1
  207. package/cjs/style/core/scopes.scss +1 -1
  208. package/cjs/style/dnb-ui-basis.css +1 -1
  209. package/cjs/style/dnb-ui-basis.min.css +1 -1
  210. package/cjs/style/dnb-ui-body.css +1 -1
  211. package/cjs/style/dnb-ui-body.min.css +1 -1
  212. package/cjs/style/dnb-ui-components.css +27 -12
  213. package/cjs/style/dnb-ui-components.min.css +4 -4
  214. package/cjs/style/dnb-ui-core.css +1 -1
  215. package/cjs/style/dnb-ui-core.min.css +1 -1
  216. package/cjs/style/dnb-ui-elements.css +1 -1
  217. package/cjs/style/dnb-ui-elements.min.css +1 -1
  218. package/cjs/style/dnb-ui-extensions.css +5 -4
  219. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  220. package/cjs/style/dnb-ui-forms.css +4 -4
  221. package/cjs/style/dnb-ui-forms.min.css +1 -1
  222. package/cjs/style/dnb-ui-fragments.css +1 -1
  223. package/cjs/style/dnb-ui-fragments.min.css +1 -1
  224. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +2 -1
  225. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  226. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +31 -16
  227. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  228. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
  229. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  230. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +5 -4
  231. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  232. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +4 -4
  233. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  234. package/cjs/style/themes/theme-eiendom/properties.d.ts +2 -0
  235. package/cjs/style/themes/theme-eiendom/properties.js +3 -1
  236. package/cjs/style/themes/theme-eiendom/properties.js.map +1 -1
  237. package/cjs/style/themes/theme-sbanken/properties.d.ts +2 -0
  238. package/cjs/style/themes/theme-sbanken/properties.js +2 -0
  239. package/cjs/style/themes/theme-sbanken/properties.js.map +1 -1
  240. package/cjs/style/themes/theme-sbanken/properties.scss +3 -0
  241. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +3 -1
  242. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +2 -2
  243. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +44 -20
  244. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
  245. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
  246. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  247. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +5 -4
  248. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  249. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +4 -4
  250. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  251. package/cjs/style/themes/theme-ui/properties.d.ts +2 -0
  252. package/cjs/style/themes/theme-ui/properties.js +3 -1
  253. package/cjs/style/themes/theme-ui/properties.js.map +1 -1
  254. package/cjs/style/themes/theme-ui/properties.scss +3 -0
  255. package/cjs/style/themes/theme-ui/ui-theme-basis.css +2 -1
  256. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  257. package/cjs/style/themes/theme-ui/ui-theme-components.css +31 -16
  258. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  259. package/cjs/style/themes/theme-ui/ui-theme-elements.css +1 -1
  260. package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  261. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +5 -4
  262. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  263. package/cjs/style/themes/theme-ui/ui-theme-forms.css +4 -4
  264. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  265. package/cjs/style/themes/theme-ui/ui-theme-properties.css +1 -0
  266. package/cjs/style/themes/theme-ui/ui-theme-properties.min.css +1 -1
  267. package/cjs/style/themes/theme-ui/ui-theme-tags.css +1 -1
  268. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  269. package/components/DateFormat.d.ts +12 -0
  270. package/components/DateFormat.js +4 -0
  271. package/components/DateFormat.js.map +1 -0
  272. package/components/PortalRoot.d.ts +12 -0
  273. package/components/PortalRoot.js +4 -0
  274. package/components/PortalRoot.js.map +1 -0
  275. package/components/breadcrumb/Breadcrumb.d.ts +4 -0
  276. package/components/breadcrumb/Breadcrumb.js +9 -4
  277. package/components/breadcrumb/Breadcrumb.js.map +1 -1
  278. package/components/breadcrumb/BreadcrumbDocs.js +5 -0
  279. package/components/breadcrumb/BreadcrumbDocs.js.map +1 -1
  280. package/components/card/Card.d.ts +4 -0
  281. package/components/card/Card.js +13 -4
  282. package/components/card/Card.js.map +1 -1
  283. package/components/card/CardDocs.js +1 -1
  284. package/components/card/CardDocs.js.map +1 -1
  285. package/components/checkbox/Checkbox.js.map +1 -1
  286. package/components/date-format/DateFormat.d.ts +30 -0
  287. package/components/date-format/DateFormat.js +77 -0
  288. package/components/date-format/DateFormat.js.map +1 -0
  289. package/components/date-format/DateFormatDocs.d.ts +2 -0
  290. package/components/date-format/DateFormatDocs.js +28 -0
  291. package/components/date-format/DateFormatDocs.js.map +1 -0
  292. package/components/date-format/DateFormatUtils.d.ts +11 -0
  293. package/components/date-format/DateFormatUtils.js +29 -0
  294. package/components/date-format/DateFormatUtils.js.map +1 -0
  295. package/components/date-format/index.d.ts +7 -0
  296. package/components/date-format/index.js +4 -0
  297. package/components/date-format/index.js.map +1 -0
  298. package/components/date-picker/DatePicker.js +3 -6
  299. package/components/date-picker/DatePicker.js.map +1 -1
  300. package/components/date-picker/DatePickerCalc.d.ts +0 -13
  301. package/components/date-picker/DatePickerCalc.js +0 -41
  302. package/components/date-picker/DatePickerCalc.js.map +1 -1
  303. package/components/date-picker/DatePickerCalendar.js +7 -6
  304. package/components/date-picker/DatePickerCalendar.js.map +1 -1
  305. package/components/date-picker/DatePickerCalendarNavigator.js +4 -4
  306. package/components/date-picker/DatePickerCalendarNavigator.js.map +1 -1
  307. package/components/date-picker/DatePickerInput.js +2 -1
  308. package/components/date-picker/DatePickerInput.js.map +1 -1
  309. package/components/date-picker/DatePickerPortal.d.ts +1 -1
  310. package/components/date-picker/DatePickerPortal.js +4 -4
  311. package/components/date-picker/DatePickerPortal.js.map +1 -1
  312. package/components/form-status/FormStatus.js +1 -1
  313. package/components/form-status/FormStatus.js.map +1 -1
  314. package/components/form-status/style/dnb-form-status.css +1 -1
  315. package/components/form-status/style/dnb-form-status.min.css +1 -1
  316. package/components/form-status/style/dnb-form-status.scss +1 -1
  317. package/components/form-status/style/themes/dnb-form-status-theme-sbanken.css +11 -2
  318. package/components/form-status/style/themes/dnb-form-status-theme-sbanken.min.css +1 -1
  319. package/components/form-status/style/themes/dnb-form-status-theme-sbanken.scss +6 -2
  320. package/components/global-status/style/themes/dnb-global-status-theme-sbanken.css +1 -1
  321. package/components/global-status/style/themes/dnb-global-status-theme-sbanken.min.css +1 -1
  322. package/components/global-status/style/themes/dnb-global-status-theme-sbanken.scss +1 -1
  323. package/components/help-button/style/dnb-help-button-inline.css +1 -1
  324. package/components/help-button/style/dnb-help-button-inline.min.css +1 -1
  325. package/components/help-button/style/dnb-help-button-inline.scss +1 -1
  326. package/components/help-button/style/dnb-help-button.css +1 -1
  327. package/components/help-button/style/dnb-help-button.min.css +1 -1
  328. package/components/index.d.ts +3 -1
  329. package/components/index.js +3 -1
  330. package/components/index.js.map +1 -1
  331. package/components/info-card/style/dnb-info-card.css +1 -1
  332. package/components/info-card/style/dnb-info-card.min.css +1 -1
  333. package/components/info-card/style/dnb-info-card.scss +1 -1
  334. package/components/lib.d.ts +5 -1
  335. package/components/lib.js +5 -1
  336. package/components/lib.js.map +1 -1
  337. package/components/modal/ModalRoot.d.ts +2 -7
  338. package/components/modal/ModalRoot.js +9 -65
  339. package/components/modal/ModalRoot.js.map +1 -1
  340. package/components/portal-root/PortalRoot.d.ts +7 -0
  341. package/components/portal-root/PortalRoot.js +54 -0
  342. package/components/portal-root/PortalRoot.js.map +1 -0
  343. package/components/portal-root/PortalRootDocs.d.ts +2 -0
  344. package/components/portal-root/PortalRootDocs.js +13 -0
  345. package/components/portal-root/PortalRootDocs.js.map +1 -0
  346. package/components/portal-root/index.d.ts +7 -0
  347. package/components/portal-root/index.js +4 -0
  348. package/components/portal-root/index.js.map +1 -0
  349. package/components/section/style/themes/dnb-section-theme-sbanken.css +1 -1
  350. package/components/section/style/themes/dnb-section-theme-sbanken.min.css +1 -1
  351. package/components/section/style/themes/dnb-section-theme-sbanken.scss +1 -1
  352. package/components/step-indicator/StepIndicator.js +6 -2
  353. package/components/step-indicator/StepIndicator.js.map +1 -1
  354. package/components/step-indicator/StepIndicatorDocs.js +1 -1
  355. package/components/step-indicator/StepIndicatorDocs.js.map +1 -1
  356. package/components/step-indicator/StepIndicatorTriggerButton.d.ts +2 -1
  357. package/components/step-indicator/StepIndicatorTriggerButton.js +5 -3
  358. package/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  359. package/components/switch/Switch.d.ts +12 -3
  360. package/components/switch/Switch.js +40 -16
  361. package/components/switch/Switch.js.map +1 -1
  362. package/components/switch/SwitchDocs.js +5 -0
  363. package/components/switch/SwitchDocs.js.map +1 -1
  364. package/components/tooltip/TooltipPortal.js +27 -60
  365. package/components/tooltip/TooltipPortal.js.map +1 -1
  366. package/components/tooltip/style/dnb-tooltip.css +8 -1
  367. package/components/tooltip/style/dnb-tooltip.min.css +1 -1
  368. package/components/tooltip/style/dnb-tooltip.scss +8 -1
  369. package/components/upload/Upload.js +31 -7
  370. package/components/upload/Upload.js.map +1 -1
  371. package/components/upload/UploadContext.d.ts +1 -0
  372. package/components/upload/UploadContext.js +2 -1
  373. package/components/upload/UploadContext.js.map +1 -1
  374. package/components/upload/UploadDocs.js +11 -1
  375. package/components/upload/UploadDocs.js.map +1 -1
  376. package/components/upload/UploadDropzone.d.ts +3 -1
  377. package/components/upload/UploadDropzone.js +5 -4
  378. package/components/upload/UploadDropzone.js.map +1 -1
  379. package/components/upload/UploadFileInput.d.ts +3 -1
  380. package/components/upload/UploadFileInput.js +7 -5
  381. package/components/upload/UploadFileInput.js.map +1 -1
  382. package/components/upload/style/dnb-upload.css +10 -2
  383. package/components/upload/style/dnb-upload.min.css +1 -1
  384. package/components/upload/style/dnb-upload.scss +12 -2
  385. package/components/upload/types.d.ts +4 -0
  386. package/components/upload/types.js.map +1 -1
  387. package/elements/lists/style/lists-mixins.scss +1 -1
  388. package/es/components/DateFormat.d.ts +12 -0
  389. package/es/components/DateFormat.js +4 -0
  390. package/es/components/DateFormat.js.map +1 -0
  391. package/es/components/PortalRoot.d.ts +12 -0
  392. package/es/components/PortalRoot.js +4 -0
  393. package/es/components/PortalRoot.js.map +1 -0
  394. package/es/components/breadcrumb/Breadcrumb.d.ts +4 -0
  395. package/es/components/breadcrumb/Breadcrumb.js +9 -4
  396. package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
  397. package/es/components/breadcrumb/BreadcrumbDocs.js +5 -0
  398. package/es/components/breadcrumb/BreadcrumbDocs.js.map +1 -1
  399. package/es/components/card/Card.d.ts +4 -0
  400. package/es/components/card/Card.js +12 -4
  401. package/es/components/card/Card.js.map +1 -1
  402. package/es/components/card/CardDocs.js +1 -1
  403. package/es/components/card/CardDocs.js.map +1 -1
  404. package/es/components/checkbox/Checkbox.js.map +1 -1
  405. package/es/components/date-format/DateFormat.d.ts +30 -0
  406. package/es/components/date-format/DateFormat.js +74 -0
  407. package/es/components/date-format/DateFormat.js.map +1 -0
  408. package/es/components/date-format/DateFormatDocs.d.ts +2 -0
  409. package/es/components/date-format/DateFormatDocs.js +28 -0
  410. package/es/components/date-format/DateFormatDocs.js.map +1 -0
  411. package/es/components/date-format/DateFormatUtils.d.ts +11 -0
  412. package/es/components/date-format/DateFormatUtils.js +27 -0
  413. package/es/components/date-format/DateFormatUtils.js.map +1 -0
  414. package/es/components/date-format/index.d.ts +7 -0
  415. package/es/components/date-format/index.js +4 -0
  416. package/es/components/date-format/index.js.map +1 -0
  417. package/es/components/date-picker/DatePicker.js +3 -6
  418. package/es/components/date-picker/DatePicker.js.map +1 -1
  419. package/es/components/date-picker/DatePickerCalc.d.ts +0 -13
  420. package/es/components/date-picker/DatePickerCalc.js +0 -39
  421. package/es/components/date-picker/DatePickerCalc.js.map +1 -1
  422. package/es/components/date-picker/DatePickerCalendar.js +7 -6
  423. package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
  424. package/es/components/date-picker/DatePickerCalendarNavigator.js +4 -4
  425. package/es/components/date-picker/DatePickerCalendarNavigator.js.map +1 -1
  426. package/es/components/date-picker/DatePickerInput.js +2 -1
  427. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  428. package/es/components/date-picker/DatePickerPortal.d.ts +1 -1
  429. package/es/components/date-picker/DatePickerPortal.js +4 -4
  430. package/es/components/date-picker/DatePickerPortal.js.map +1 -1
  431. package/es/components/form-status/FormStatus.js +1 -1
  432. package/es/components/form-status/FormStatus.js.map +1 -1
  433. package/es/components/form-status/style/dnb-form-status.css +1 -1
  434. package/es/components/form-status/style/dnb-form-status.min.css +1 -1
  435. package/es/components/form-status/style/dnb-form-status.scss +1 -1
  436. package/es/components/form-status/style/themes/dnb-form-status-theme-sbanken.css +11 -2
  437. package/es/components/form-status/style/themes/dnb-form-status-theme-sbanken.min.css +1 -1
  438. package/es/components/form-status/style/themes/dnb-form-status-theme-sbanken.scss +6 -2
  439. package/es/components/global-status/style/themes/dnb-global-status-theme-sbanken.css +1 -1
  440. package/es/components/global-status/style/themes/dnb-global-status-theme-sbanken.min.css +1 -1
  441. package/es/components/global-status/style/themes/dnb-global-status-theme-sbanken.scss +1 -1
  442. package/es/components/help-button/style/dnb-help-button-inline.css +1 -1
  443. package/es/components/help-button/style/dnb-help-button-inline.min.css +1 -1
  444. package/es/components/help-button/style/dnb-help-button-inline.scss +1 -1
  445. package/es/components/help-button/style/dnb-help-button.css +1 -1
  446. package/es/components/help-button/style/dnb-help-button.min.css +1 -1
  447. package/es/components/index.d.ts +3 -1
  448. package/es/components/index.js +3 -1
  449. package/es/components/index.js.map +1 -1
  450. package/es/components/info-card/style/dnb-info-card.css +1 -1
  451. package/es/components/info-card/style/dnb-info-card.min.css +1 -1
  452. package/es/components/info-card/style/dnb-info-card.scss +1 -1
  453. package/es/components/lib.d.ts +5 -1
  454. package/es/components/lib.js +5 -1
  455. package/es/components/lib.js.map +1 -1
  456. package/es/components/modal/ModalRoot.d.ts +2 -7
  457. package/es/components/modal/ModalRoot.js +9 -61
  458. package/es/components/modal/ModalRoot.js.map +1 -1
  459. package/es/components/portal-root/PortalRoot.d.ts +7 -0
  460. package/es/components/portal-root/PortalRoot.js +54 -0
  461. package/es/components/portal-root/PortalRoot.js.map +1 -0
  462. package/es/components/portal-root/PortalRootDocs.d.ts +2 -0
  463. package/es/components/portal-root/PortalRootDocs.js +13 -0
  464. package/es/components/portal-root/PortalRootDocs.js.map +1 -0
  465. package/es/components/portal-root/index.d.ts +7 -0
  466. package/es/components/portal-root/index.js +4 -0
  467. package/es/components/portal-root/index.js.map +1 -0
  468. package/es/components/section/style/themes/dnb-section-theme-sbanken.css +1 -1
  469. package/es/components/section/style/themes/dnb-section-theme-sbanken.min.css +1 -1
  470. package/es/components/section/style/themes/dnb-section-theme-sbanken.scss +1 -1
  471. package/es/components/step-indicator/StepIndicator.js +6 -2
  472. package/es/components/step-indicator/StepIndicator.js.map +1 -1
  473. package/es/components/step-indicator/StepIndicatorDocs.js +1 -1
  474. package/es/components/step-indicator/StepIndicatorDocs.js.map +1 -1
  475. package/es/components/step-indicator/StepIndicatorTriggerButton.d.ts +2 -1
  476. package/es/components/step-indicator/StepIndicatorTriggerButton.js +5 -3
  477. package/es/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  478. package/es/components/switch/Switch.d.ts +12 -3
  479. package/es/components/switch/Switch.js +40 -16
  480. package/es/components/switch/Switch.js.map +1 -1
  481. package/es/components/switch/SwitchDocs.js +5 -0
  482. package/es/components/switch/SwitchDocs.js.map +1 -1
  483. package/es/components/tooltip/TooltipPortal.js +27 -59
  484. package/es/components/tooltip/TooltipPortal.js.map +1 -1
  485. package/es/components/tooltip/style/dnb-tooltip.css +8 -1
  486. package/es/components/tooltip/style/dnb-tooltip.min.css +1 -1
  487. package/es/components/tooltip/style/dnb-tooltip.scss +8 -1
  488. package/es/components/upload/Upload.js +31 -7
  489. package/es/components/upload/Upload.js.map +1 -1
  490. package/es/components/upload/UploadContext.d.ts +1 -0
  491. package/es/components/upload/UploadContext.js +2 -1
  492. package/es/components/upload/UploadContext.js.map +1 -1
  493. package/es/components/upload/UploadDocs.js +11 -1
  494. package/es/components/upload/UploadDocs.js.map +1 -1
  495. package/es/components/upload/UploadDropzone.d.ts +3 -1
  496. package/es/components/upload/UploadDropzone.js +5 -4
  497. package/es/components/upload/UploadDropzone.js.map +1 -1
  498. package/es/components/upload/UploadFileInput.d.ts +3 -1
  499. package/es/components/upload/UploadFileInput.js +7 -5
  500. package/es/components/upload/UploadFileInput.js.map +1 -1
  501. package/es/components/upload/style/dnb-upload.css +10 -2
  502. package/es/components/upload/style/dnb-upload.min.css +1 -1
  503. package/es/components/upload/style/dnb-upload.scss +12 -2
  504. package/es/components/upload/types.d.ts +4 -0
  505. package/es/components/upload/types.js.map +1 -1
  506. package/es/elements/lists/style/lists-mixins.scss +1 -1
  507. package/es/extensions/forms/Connectors/Bring/address.d.ts +48 -0
  508. package/es/extensions/forms/Connectors/Bring/address.js +169 -0
  509. package/es/extensions/forms/Connectors/Bring/address.js.map +1 -0
  510. package/es/extensions/forms/Connectors/Bring/index.d.ts +1 -0
  511. package/es/extensions/forms/Connectors/Bring/index.js +3 -1
  512. package/es/extensions/forms/Connectors/Bring/index.js.map +1 -1
  513. package/es/extensions/forms/Connectors/Bring/postalCode.js +9 -1
  514. package/es/extensions/forms/Connectors/Bring/postalCode.js.map +1 -1
  515. package/es/extensions/forms/Connectors/createContext.js +3 -0
  516. package/es/extensions/forms/Connectors/createContext.js.map +1 -1
  517. package/es/extensions/forms/Field/Address/Address.d.ts +3 -0
  518. package/es/extensions/forms/Field/Address/Address.js.map +1 -1
  519. package/es/extensions/forms/Field/Boolean/BooleanDocs.js +1 -1
  520. package/es/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
  521. package/es/extensions/forms/Field/Date/Date.js +5 -2
  522. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  523. package/es/extensions/forms/Field/Indeterminate/Indeterminate.js +3 -3
  524. package/es/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -1
  525. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +15 -6
  526. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  527. package/es/extensions/forms/Field/Toggle/Toggle.d.ts +1 -1
  528. package/es/extensions/forms/Field/Toggle/Toggle.js +37 -1
  529. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  530. package/es/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  531. package/es/extensions/forms/Field/Upload/Upload.js +26 -7
  532. package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
  533. package/es/extensions/forms/Field/style/field-sizes.scss +1 -1
  534. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +2 -2
  535. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  536. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -1
  537. package/es/extensions/forms/Form/Card/Card.d.ts +3 -6
  538. package/es/extensions/forms/Form/Card/Card.js +1 -1
  539. package/es/extensions/forms/Form/Card/Card.js.map +1 -1
  540. package/es/extensions/forms/Form/Card/CardDocs.d.ts +1 -0
  541. package/es/extensions/forms/Form/Card/CardDocs.js +12 -10
  542. package/es/extensions/forms/Form/Card/CardDocs.js.map +1 -1
  543. package/es/extensions/forms/Value/Date/Date.js +20 -5
  544. package/es/extensions/forms/Value/Date/Date.js.map +1 -1
  545. package/es/extensions/forms/Value/style/value-sizes.scss +2 -2
  546. package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +2 -2
  547. package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  548. package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
  549. package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
  550. package/es/extensions/forms/constants/locales/en-GB.d.ts +1 -0
  551. package/es/extensions/forms/constants/locales/en-GB.js +2 -1
  552. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  553. package/es/extensions/forms/constants/locales/en-US.d.ts +1 -0
  554. package/es/extensions/forms/constants/locales/index.d.ts +2 -0
  555. package/es/extensions/forms/constants/locales/nb-NO.d.ts +1 -0
  556. package/es/extensions/forms/constants/locales/nb-NO.js +2 -1
  557. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  558. package/es/extensions/forms/constants/locales/sv-SE.d.ts +1 -0
  559. package/es/extensions/forms/constants/locales/sv-SE.js +2 -1
  560. package/es/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  561. package/es/extensions/forms/style/dnb-forms.css +4 -4
  562. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  563. package/es/extensions/payment-card/style/dnb-payment-card.css +1 -0
  564. package/es/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  565. package/es/fragments/drawer-list/DrawerList.d.ts +4 -2
  566. package/es/fragments/drawer-list/DrawerList.js +6 -5
  567. package/es/fragments/drawer-list/DrawerList.js.map +1 -1
  568. package/es/fragments/drawer-list/DrawerListHelpers.js +1 -1
  569. package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  570. package/es/fragments/drawer-list/DrawerListPortal.d.ts +1 -0
  571. package/es/fragments/drawer-list/DrawerListPortal.js +32 -66
  572. package/es/fragments/drawer-list/DrawerListPortal.js.map +1 -1
  573. package/es/fragments/drawer-list/DrawerListProvider.d.ts +1 -1
  574. package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  575. package/es/fragments/drawer-list/style/dnb-drawer-list.scss +1 -1
  576. package/es/index.d.ts +3 -1
  577. package/es/index.js +3 -1
  578. package/es/index.js.map +1 -1
  579. package/es/shared/build-info/BuildInfoData.cjs +2 -2
  580. package/es/shared/build-info/BuildInfoData.d.ts +2 -2
  581. package/es/shared/build-info/BuildInfoData.js +2 -2
  582. package/es/shared/build-info/BuildInfoData.js.map +1 -1
  583. package/es/shared/locales/en-GB.d.ts +3 -0
  584. package/es/shared/locales/en-GB.js +3 -0
  585. package/es/shared/locales/en-GB.js.map +1 -1
  586. package/es/shared/locales/en-US.d.ts +3 -0
  587. package/es/shared/locales/index.d.ts +6 -0
  588. package/es/shared/locales/nb-NO.d.ts +3 -0
  589. package/es/shared/locales/nb-NO.js +3 -0
  590. package/es/shared/locales/nb-NO.js.map +1 -1
  591. package/es/shared/locales/sv-SE.d.ts +3 -0
  592. package/es/shared/locales/sv-SE.js +3 -0
  593. package/es/shared/locales/sv-SE.js.map +1 -1
  594. package/es/style/core/scopes.scss +1 -1
  595. package/es/style/dnb-ui-basis.css +1 -1
  596. package/es/style/dnb-ui-basis.min.css +1 -1
  597. package/es/style/dnb-ui-body.css +1 -1
  598. package/es/style/dnb-ui-body.min.css +1 -1
  599. package/es/style/dnb-ui-components.css +27 -12
  600. package/es/style/dnb-ui-components.min.css +4 -4
  601. package/es/style/dnb-ui-core.css +1 -1
  602. package/es/style/dnb-ui-core.min.css +1 -1
  603. package/es/style/dnb-ui-elements.css +1 -1
  604. package/es/style/dnb-ui-elements.min.css +1 -1
  605. package/es/style/dnb-ui-extensions.css +5 -4
  606. package/es/style/dnb-ui-extensions.min.css +1 -1
  607. package/es/style/dnb-ui-forms.css +4 -4
  608. package/es/style/dnb-ui-forms.min.css +1 -1
  609. package/es/style/dnb-ui-fragments.css +1 -1
  610. package/es/style/dnb-ui-fragments.min.css +1 -1
  611. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +2 -1
  612. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  613. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +31 -16
  614. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  615. package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
  616. package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  617. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +5 -4
  618. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  619. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +4 -4
  620. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  621. package/es/style/themes/theme-eiendom/properties.d.ts +2 -0
  622. package/es/style/themes/theme-eiendom/properties.js +3 -1
  623. package/es/style/themes/theme-eiendom/properties.js.map +1 -1
  624. package/es/style/themes/theme-sbanken/properties.d.ts +2 -0
  625. package/es/style/themes/theme-sbanken/properties.js +2 -0
  626. package/es/style/themes/theme-sbanken/properties.js.map +1 -1
  627. package/es/style/themes/theme-sbanken/properties.scss +3 -0
  628. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +3 -1
  629. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +2 -2
  630. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +44 -20
  631. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
  632. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
  633. package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  634. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +5 -4
  635. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  636. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +4 -4
  637. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  638. package/es/style/themes/theme-ui/properties.d.ts +2 -0
  639. package/es/style/themes/theme-ui/properties.js +3 -1
  640. package/es/style/themes/theme-ui/properties.js.map +1 -1
  641. package/es/style/themes/theme-ui/properties.scss +3 -0
  642. package/es/style/themes/theme-ui/ui-theme-basis.css +2 -1
  643. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  644. package/es/style/themes/theme-ui/ui-theme-components.css +31 -16
  645. package/es/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  646. package/es/style/themes/theme-ui/ui-theme-elements.css +1 -1
  647. package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  648. package/es/style/themes/theme-ui/ui-theme-extensions.css +5 -4
  649. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  650. package/es/style/themes/theme-ui/ui-theme-forms.css +4 -4
  651. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  652. package/es/style/themes/theme-ui/ui-theme-properties.css +1 -0
  653. package/es/style/themes/theme-ui/ui-theme-properties.min.css +1 -1
  654. package/es/style/themes/theme-ui/ui-theme-tags.css +1 -1
  655. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  656. package/esm/dnb-ui-components.min.mjs +1 -1
  657. package/esm/dnb-ui-elements.min.mjs +1 -1
  658. package/esm/dnb-ui-extensions.min.mjs +3 -3
  659. package/esm/dnb-ui-lib.min.mjs +1 -1
  660. package/extensions/forms/Connectors/Bring/address.d.ts +48 -0
  661. package/extensions/forms/Connectors/Bring/address.js +170 -0
  662. package/extensions/forms/Connectors/Bring/address.js.map +1 -0
  663. package/extensions/forms/Connectors/Bring/index.d.ts +1 -0
  664. package/extensions/forms/Connectors/Bring/index.js +2 -0
  665. package/extensions/forms/Connectors/Bring/index.js.map +1 -1
  666. package/extensions/forms/Connectors/Bring/postalCode.js +9 -1
  667. package/extensions/forms/Connectors/Bring/postalCode.js.map +1 -1
  668. package/extensions/forms/Connectors/createContext.js +3 -0
  669. package/extensions/forms/Connectors/createContext.js.map +1 -1
  670. package/extensions/forms/Field/Address/Address.d.ts +3 -0
  671. package/extensions/forms/Field/Address/Address.js.map +1 -1
  672. package/extensions/forms/Field/Boolean/BooleanDocs.js +1 -1
  673. package/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
  674. package/extensions/forms/Field/Date/Date.js +5 -2
  675. package/extensions/forms/Field/Date/Date.js.map +1 -1
  676. package/extensions/forms/Field/Indeterminate/Indeterminate.js +3 -3
  677. package/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -1
  678. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +15 -6
  679. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  680. package/extensions/forms/Field/Toggle/Toggle.d.ts +1 -1
  681. package/extensions/forms/Field/Toggle/Toggle.js +37 -1
  682. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  683. package/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  684. package/extensions/forms/Field/Upload/Upload.js +26 -7
  685. package/extensions/forms/Field/Upload/Upload.js.map +1 -1
  686. package/extensions/forms/Field/style/field-sizes.scss +1 -1
  687. package/extensions/forms/FieldBlock/style/dnb-field-block.css +2 -2
  688. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  689. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -1
  690. package/extensions/forms/Form/Card/Card.d.ts +3 -6
  691. package/extensions/forms/Form/Card/Card.js +1 -1
  692. package/extensions/forms/Form/Card/Card.js.map +1 -1
  693. package/extensions/forms/Form/Card/CardDocs.d.ts +1 -0
  694. package/extensions/forms/Form/Card/CardDocs.js +12 -10
  695. package/extensions/forms/Form/Card/CardDocs.js.map +1 -1
  696. package/extensions/forms/Value/Date/Date.js +20 -5
  697. package/extensions/forms/Value/Date/Date.js.map +1 -1
  698. package/extensions/forms/Value/style/value-sizes.scss +2 -2
  699. package/extensions/forms/ValueBlock/style/dnb-value-block.css +2 -2
  700. package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  701. package/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
  702. package/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
  703. package/extensions/forms/constants/locales/en-GB.d.ts +1 -0
  704. package/extensions/forms/constants/locales/en-GB.js +2 -1
  705. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  706. package/extensions/forms/constants/locales/en-US.d.ts +1 -0
  707. package/extensions/forms/constants/locales/index.d.ts +2 -0
  708. package/extensions/forms/constants/locales/nb-NO.d.ts +1 -0
  709. package/extensions/forms/constants/locales/nb-NO.js +2 -1
  710. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  711. package/extensions/forms/constants/locales/sv-SE.d.ts +1 -0
  712. package/extensions/forms/constants/locales/sv-SE.js +2 -1
  713. package/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  714. package/extensions/forms/style/dnb-forms.css +4 -4
  715. package/extensions/forms/style/dnb-forms.min.css +1 -1
  716. package/extensions/payment-card/style/dnb-payment-card.css +1 -0
  717. package/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  718. package/fragments/drawer-list/DrawerList.d.ts +4 -2
  719. package/fragments/drawer-list/DrawerList.js +6 -5
  720. package/fragments/drawer-list/DrawerList.js.map +1 -1
  721. package/fragments/drawer-list/DrawerListHelpers.js +1 -1
  722. package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  723. package/fragments/drawer-list/DrawerListPortal.d.ts +1 -0
  724. package/fragments/drawer-list/DrawerListPortal.js +32 -66
  725. package/fragments/drawer-list/DrawerListPortal.js.map +1 -1
  726. package/fragments/drawer-list/DrawerListProvider.d.ts +1 -1
  727. package/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  728. package/fragments/drawer-list/style/dnb-drawer-list.scss +1 -1
  729. package/index.d.ts +3 -1
  730. package/index.js +3 -1
  731. package/index.js.map +1 -1
  732. package/package.json +1 -1
  733. package/shared/build-info/BuildInfoData.cjs +2 -2
  734. package/shared/build-info/BuildInfoData.d.ts +2 -2
  735. package/shared/build-info/BuildInfoData.js +2 -2
  736. package/shared/build-info/BuildInfoData.js.map +1 -1
  737. package/shared/locales/en-GB.d.ts +3 -0
  738. package/shared/locales/en-GB.js +3 -0
  739. package/shared/locales/en-GB.js.map +1 -1
  740. package/shared/locales/en-US.d.ts +3 -0
  741. package/shared/locales/index.d.ts +6 -0
  742. package/shared/locales/nb-NO.d.ts +3 -0
  743. package/shared/locales/nb-NO.js +3 -0
  744. package/shared/locales/nb-NO.js.map +1 -1
  745. package/shared/locales/sv-SE.d.ts +3 -0
  746. package/shared/locales/sv-SE.js +3 -0
  747. package/shared/locales/sv-SE.js.map +1 -1
  748. package/style/core/scopes.scss +1 -1
  749. package/style/dnb-ui-basis.css +1 -1
  750. package/style/dnb-ui-basis.min.css +1 -1
  751. package/style/dnb-ui-body.css +1 -1
  752. package/style/dnb-ui-body.min.css +1 -1
  753. package/style/dnb-ui-components.css +27 -12
  754. package/style/dnb-ui-components.min.css +4 -4
  755. package/style/dnb-ui-core.css +1 -1
  756. package/style/dnb-ui-core.min.css +1 -1
  757. package/style/dnb-ui-elements.css +1 -1
  758. package/style/dnb-ui-elements.min.css +1 -1
  759. package/style/dnb-ui-extensions.css +5 -4
  760. package/style/dnb-ui-extensions.min.css +1 -1
  761. package/style/dnb-ui-forms.css +4 -4
  762. package/style/dnb-ui-forms.min.css +1 -1
  763. package/style/dnb-ui-fragments.css +1 -1
  764. package/style/dnb-ui-fragments.min.css +1 -1
  765. package/style/themes/theme-eiendom/eiendom-theme-basis.css +2 -1
  766. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  767. package/style/themes/theme-eiendom/eiendom-theme-components.css +31 -16
  768. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  769. package/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
  770. package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  771. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +5 -4
  772. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  773. package/style/themes/theme-eiendom/eiendom-theme-forms.css +4 -4
  774. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  775. package/style/themes/theme-eiendom/properties.d.ts +2 -0
  776. package/style/themes/theme-eiendom/properties.js +3 -1
  777. package/style/themes/theme-eiendom/properties.js.map +1 -1
  778. package/style/themes/theme-sbanken/properties.d.ts +2 -0
  779. package/style/themes/theme-sbanken/properties.js +2 -0
  780. package/style/themes/theme-sbanken/properties.js.map +1 -1
  781. package/style/themes/theme-sbanken/properties.scss +3 -0
  782. package/style/themes/theme-sbanken/sbanken-theme-basis.css +3 -1
  783. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +2 -2
  784. package/style/themes/theme-sbanken/sbanken-theme-components.css +44 -20
  785. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
  786. package/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
  787. package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  788. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +5 -4
  789. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  790. package/style/themes/theme-sbanken/sbanken-theme-forms.css +4 -4
  791. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  792. package/style/themes/theme-ui/properties.d.ts +2 -0
  793. package/style/themes/theme-ui/properties.js +3 -1
  794. package/style/themes/theme-ui/properties.js.map +1 -1
  795. package/style/themes/theme-ui/properties.scss +3 -0
  796. package/style/themes/theme-ui/ui-theme-basis.css +2 -1
  797. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  798. package/style/themes/theme-ui/ui-theme-components.css +31 -16
  799. package/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  800. package/style/themes/theme-ui/ui-theme-elements.css +1 -1
  801. package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  802. package/style/themes/theme-ui/ui-theme-extensions.css +5 -4
  803. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  804. package/style/themes/theme-ui/ui-theme-forms.css +4 -4
  805. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  806. package/style/themes/theme-ui/ui-theme-properties.css +1 -0
  807. package/style/themes/theme-ui/ui-theme-properties.min.css +1 -1
  808. package/style/themes/theme-ui/ui-theme-tags.css +1 -1
  809. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  810. package/umd/dnb-ui-components.min.js +1 -1
  811. package/umd/dnb-ui-elements.min.js +1 -1
  812. package/umd/dnb-ui-extensions.min.js +3 -3
  813. package/umd/dnb-ui-lib.min.js +1 -1
@@ -18,7 +18,7 @@ const defaultCountryCode = '+47';
18
18
  const defaultPlaceholder = '00 00 00 00';
19
19
  const defaultMask = [/\d/, /\d/, ' ', /\d/, /\d/, ' ', /\d/, /\d/, ' ', /\d/, /\d/];
20
20
  function PhoneNumber(props) {
21
- var _sharedContext$locale, _props$inputRef, _countryCodeRef$curre;
21
+ var _sharedContext$locale, _props$inputRef, _countryCodeRef$curre2;
22
22
  const sharedContext = useContext(SharedContext);
23
23
  const {
24
24
  label: defaultLabel,
@@ -190,12 +190,21 @@ function PhoneNumber(props) {
190
190
  const handleCountryCodeChange = useCallback(({
191
191
  data
192
192
  }) => {
193
- var _data$selectedKey;
193
+ var _data$selectedKey, _countryCodeRef$curre, _numberRef$current;
194
194
  const countryCode = countryCodeRef.current = (data === null || data === void 0 ? void 0 : (_data$selectedKey = data.selectedKey) === null || _data$selectedKey === void 0 ? void 0 : _data$selectedKey.trim()) || emptyValue;
195
195
  currentCountryRef.current = data === null || data === void 0 ? void 0 : data.country;
196
- callOnChange({
197
- countryCode
198
- });
196
+ if (!numberMask && (_countryCodeRef$curre = countryCodeRef.current) !== null && _countryCodeRef$curre !== void 0 && _countryCodeRef$curre.includes(defaultCountryCode) && ((_numberRef$current = numberRef.current) === null || _numberRef$current === void 0 ? void 0 : _numberRef$current.length) > 8) {
197
+ const truncatedNumber = numberRef.current.substring(0, 8);
198
+ callOnChange({
199
+ countryCode,
200
+ phoneNumber: truncatedNumber
201
+ });
202
+ onNumberChange === null || onNumberChange === void 0 ? void 0 : onNumberChange(truncatedNumber);
203
+ } else {
204
+ callOnChange({
205
+ countryCode
206
+ });
207
+ }
199
208
  onCountryCodeChange === null || onCountryCodeChange === void 0 ? void 0 : onCountryCodeChange(countryCode);
200
209
  }, [emptyValue, callOnChange, onCountryCodeChange]);
201
210
  const handleNumberChange = useCallback(value => {
@@ -246,7 +255,7 @@ function PhoneNumber(props) {
246
255
  }
247
256
  }
248
257
  }, [callOnChange, countries, updateCurrentDataSet]);
249
- const isDefault = (_countryCodeRef$curre = countryCodeRef.current) === null || _countryCodeRef$curre === void 0 ? void 0 : _countryCodeRef$curre.includes(defaultCountryCode);
258
+ const isDefault = (_countryCodeRef$curre2 = countryCodeRef.current) === null || _countryCodeRef$curre2 === void 0 ? void 0 : _countryCodeRef$curre2.includes(defaultCountryCode);
250
259
  const fieldBlockProps = _objectSpread({
251
260
  id,
252
261
  className: classnames('dnb-forms-field-phone-number', className),
@@ -1 +1 @@
1
- {"version":3,"file":"PhoneNumber.js","names":["React","useMemo","useContext","useCallback","useEffect","useRef","Autocomplete","classnames","useCountries","StringField","CompositionField","useFieldProps","pickSpacingProps","SharedContext","countryFilter","getCountryData","useTranslation","defaultCountryCode","defaultPlaceholder","defaultMask","PhoneNumber","props","_sharedContext$locale","_props$inputRef","_countryCodeRef$curre","sharedContext","label","defaultLabel","countryCodeLabel","defaultCountryCodeLabel","errorRequired","lang","locale","split","countryCodeRef","emptyValue","prevCountryCodeRef","current","numberRef","dataRef","langRef","wasFilled","currentCountryRef","errorMessages","_objectSpread","validateRequired","value","required","isChanged","error","countryCode","phoneNumber","splitValue","undefined","fromExternal","external","omitCountryCodeField","toEvent","schema","_props$schema","type","pattern","defaultProps","ref","preparedProps","inputRef","id","path","itemPath","className","countryCodeFieldClassName","numberFieldClassName","countryCodePlaceholder","placeholder","labelSrOnly","numberMask","countries","ccFilter","info","warning","size","hasError","disabled","width","help","validateInitially","continuousValidation","validateContinuously","validateUnchanged","setHasFocus","handleChange","setDisplayValue","onCountryCodeChange","onNumberChange","filterCountries","_inputRef$current","number","length","joinValue","filter","country","updateCurrentDataSet","formatCountryCode","cdc","sort","makeObject","prepareEventValues","_currentCountryRef$cu","cdcVal","replace","item","find","_item$country","iso","callOnChange","data","eventValues","callOnBlurOrFocus","hasFocus","handleCountryCodeChange","_data$selectedKey","selectedKey","trim","handleNumberChange","handleOnBlur","handleOnFocus","handleCountryCodeFocus","updateData","onTypeHandler","revalidateInputValue","event","_event$nativeEvent","nativeEvent","test","window","requestAnimationFrame","isDefault","includes","fieldBlockProps","createElement","mode","label_direction","label_sr_only","status","on_focus","on_blur","on_change","on_type","independent_width","search_numbers","keep_selection","selectall","autoComplete","no_animation","noAnimation","layout","mask","Array","fill","onFocus","onBlur","onChange","innerRef","breakout","outset","inputMode","_country$i18n$lang","name","i18n","en","code","selected_value","search_content","content","match","slice","array","Boolean","join","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/PhoneNumber/PhoneNumber.tsx"],"sourcesContent":["import React, {\n useMemo,\n useContext,\n useCallback,\n useEffect,\n useRef,\n} from 'react'\nimport { Autocomplete } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport classnames from 'classnames'\nimport {\n CountryISO,\n type CountryLang,\n type CountryType,\n} from '../../constants/countries'\nimport useCountries from '../SelectCountry/useCountries'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport { Props as FieldBlockProps } from '../../FieldBlock'\nimport CompositionField from '../Composition'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldPropsWithExtraValue,\n AllJSONSchemaVersions,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport SharedContext from '../../../../shared/Context'\nimport {\n countryFilter,\n CountryFilterSet,\n getCountryData,\n} from '../SelectCountry'\nimport useTranslation from '../../hooks/useTranslation'\nimport { DrawerListDataArrayItem } from '../../../../fragments/DrawerList'\n\nexport type AdditionalArgs = {\n phoneNumber: string\n countryCode: string\n iso: string\n}\n\nexport type Props = Omit<\n FieldPropsWithExtraValue<string, AdditionalArgs, undefined | string>,\n | 'layout'\n | 'layoutOptions'\n | 'labelSize'\n | 'labelDescription'\n | 'labelDescriptionInline'\n> & {\n countryCodeFieldClassName?: string\n numberFieldClassName?: string\n countryCodePlaceholder?: string\n countryCodeLabel?: string\n numberMask?: InputMaskedProps['mask']\n pattern?: StringFieldProps['pattern']\n width?: 'large' | 'stretch'\n inputRef?: React.RefObject<HTMLInputElement>\n omitCountryCodeField?: boolean\n onCountryCodeChange?: (value: string | undefined) => void\n onNumberChange?: (value: string | undefined) => void\n\n /**\n * Defines the countries to filter. Can be `Scandinavia`, `Nordic`, `Europe` or `Prioritized`.\n * Defaults to `Prioritized`.\n */\n countries?: CountryFilterSet\n\n /**\n * Use this prop to filter out certain countries. The function receives the country object and should return a boolean. Returning `false` will omit the country.\n */\n filterCountries?: (country: CountryType) => boolean\n\n /**\n * For internal testing purposes\n */\n noAnimation?: boolean\n} & Pick<StringFieldProps, 'size'>\n\n// Important for the default value to be defined here, and not after the useFieldProps call, to avoid the UI jumping\n// back to +47 once the user empty the field so handleChange send out undefined.\nconst defaultCountryCode = '+47'\nconst defaultPlaceholder = '00 00 00 00'\nconst defaultMask = [\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n]\n\ntype EventValues = {\n countryCode?: string\n phoneNumber?: string\n}\n\nfunction PhoneNumber(props: Props) {\n const sharedContext = useContext(SharedContext)\n const {\n label: defaultLabel,\n countryCodeLabel: defaultCountryCodeLabel,\n errorRequired,\n } = useTranslation().PhoneNumber\n const lang = sharedContext.locale?.split('-')[0] as CountryLang\n\n const countryCodeRef = useRef<Props['value']>(props?.emptyValue)\n const prevCountryCodeRef = useRef(countryCodeRef.current)\n const numberRef = useRef<Props['value']>(props?.emptyValue)\n const dataRef = useRef<Array<DrawerListDataArrayItem>>(null)\n const langRef = useRef<string>(lang)\n const wasFilled = useRef<boolean>(false)\n const currentCountryRef = useRef<CountryType>()\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': errorRequired,\n 'Field.errorPattern': errorRequired,\n ...props.errorMessages,\n }),\n [errorRequired, props.errorMessages]\n )\n\n const validateRequired = useCallback(\n (value: string, { required, isChanged, error }) => {\n if (required) {\n const [countryCode, phoneNumber] = splitValue(value)\n\n if (countryCode !== prevCountryCodeRef.current) {\n if (countryCode) {\n prevCountryCodeRef.current = countryCode\n }\n return undefined\n }\n\n if (isChanged && !phoneNumber) {\n return error\n }\n }\n\n return undefined\n },\n []\n )\n\n const fromExternal = useCallback(\n (external: string) => {\n const [countryCode, phoneNumber] = splitValue(external)\n if (!countryCode && !phoneNumber && !props.omitCountryCodeField) {\n return countryCodeRef.current\n }\n return external\n },\n [props.omitCountryCodeField]\n )\n\n const toEvent = useCallback(\n (value: string) => {\n const [, phoneNumber] = splitValue(value)\n if (!phoneNumber) {\n return props.emptyValue\n }\n return value\n },\n [props.emptyValue]\n )\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'string',\n pattern: props.pattern,\n },\n [props.schema, props.pattern]\n )\n const defaultProps: Partial<Props> = {\n schema,\n errorMessages,\n }\n const ref = useRef<HTMLInputElement>()\n const preparedProps: Props = {\n ...props,\n ...defaultProps,\n validateRequired,\n fromExternal,\n toEvent,\n inputRef: props.inputRef ?? ref,\n }\n\n const {\n id,\n path,\n itemPath,\n value,\n className,\n inputRef,\n countryCodeFieldClassName,\n numberFieldClassName,\n countryCodePlaceholder,\n placeholder,\n countryCodeLabel,\n label = defaultLabel,\n labelSrOnly,\n numberMask,\n countries: ccFilter = 'Prioritized',\n emptyValue,\n info,\n warning,\n size,\n error,\n hasError,\n disabled,\n width = props.omitCountryCodeField ? 'medium' : 'large',\n help,\n required,\n validateInitially,\n continuousValidation,\n validateContinuously,\n validateUnchanged,\n omitCountryCodeField,\n setHasFocus,\n handleChange,\n setDisplayValue,\n onCountryCodeChange,\n onNumberChange,\n filterCountries,\n } = useFieldProps(preparedProps)\n\n useEffect(() => {\n if (path || itemPath) {\n const number = inputRef.current?.value\n setDisplayValue(\n number?.length > 0\n ? joinValue([countryCodeRef.current, number])\n : undefined\n )\n }\n }, [inputRef, itemPath, path, setDisplayValue, value])\n\n const filter = useCallback(\n (country: CountryType) => {\n return countryFilter(country, filterCountries, ccFilter)\n },\n [ccFilter, filterCountries]\n )\n\n const { countries } = useCountries()\n\n const updateCurrentDataSet = useCallback(() => {\n dataRef.current = getCountryData({\n countries,\n lang,\n filter:\n // Make sure the whole cc list is displayed when cc filter is set to specific region\n ccFilter === 'Prioritized' && !wasFilled.current\n ? (country) =>\n `${formatCountryCode(country.cdc)}` ===\n countryCodeRef.current\n : filter,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n makeObject,\n })\n }, [countries, lang, ccFilter, filter])\n\n const prepareEventValues = useCallback(\n ({\n countryCode = countryCodeRef.current || emptyValue,\n phoneNumber = numberRef.current || emptyValue,\n }: EventValues = {}) => {\n if (!currentCountryRef.current) {\n type Item = DrawerListDataArrayItem & { country: CountryType }\n\n const cdcVal = countryCode?.replace(/^\\+/, '')\n const item = dataRef.current.find((item: Item) => {\n const cdc = item?.country?.cdc\n return cdc === cdcVal\n }) as Item\n\n currentCountryRef.current = item?.country\n }\n\n return {\n ...(!omitCountryCodeField ? { countryCode } : {}),\n phoneNumber,\n iso: currentCountryRef.current?.iso as CountryISO,\n }\n },\n [emptyValue, omitCountryCodeField]\n )\n\n const callOnChange = useCallback(\n (data: EventValues) => {\n const eventValues = prepareEventValues(data)\n handleChange(\n joinValue([eventValues.countryCode, eventValues.phoneNumber]),\n eventValues\n )\n },\n [prepareEventValues, handleChange]\n )\n\n const callOnBlurOrFocus = useCallback(\n (hasFocus: boolean) => {\n setHasFocus(hasFocus, undefined, prepareEventValues())\n },\n [prepareEventValues, setHasFocus]\n )\n\n /**\n * We do not process the whole country list at the first render.\n * Only when the Autocomplete opens (focus).\n * To achieve this, we use memo instead of effect to update refs in sync.\n *\n * We set or update the data list depending on if the countrycode changes or lang changes.\n * We then update countryCode and phoneNumber when value changes.\n */\n useMemo(() => {\n const [countryCode, phoneNumber] = splitValue(props.value || value)\n numberRef.current = phoneNumber\n\n if (lang !== langRef.current || !wasFilled.current) {\n if (!countryCodeRef.current || countryCode) {\n countryCodeRef.current = countryCode || defaultCountryCode\n }\n langRef.current = lang\n\n updateCurrentDataSet()\n }\n }, [value, props.value, lang, updateCurrentDataSet])\n\n const handleCountryCodeChange = useCallback(\n ({\n data,\n }: {\n data: { selectedKey: string; country: CountryType }\n }) => {\n const countryCode = (countryCodeRef.current =\n data?.selectedKey?.trim() || emptyValue)\n currentCountryRef.current = data?.country\n\n callOnChange({ countryCode })\n onCountryCodeChange?.(countryCode)\n },\n [emptyValue, callOnChange, onCountryCodeChange]\n )\n\n const handleNumberChange = useCallback(\n (value: string) => {\n const phoneNumber = (numberRef.current = value || emptyValue)\n\n callOnChange({ phoneNumber })\n onNumberChange?.(phoneNumber)\n },\n [emptyValue, callOnChange, onNumberChange]\n )\n\n const handleOnBlur = useCallback(() => {\n callOnBlurOrFocus(false)\n }, [callOnBlurOrFocus])\n\n const handleOnFocus = useCallback(() => {\n callOnBlurOrFocus(true)\n }, [callOnBlurOrFocus])\n\n const handleCountryCodeFocus = useCallback(\n ({ updateData }) => {\n if (!wasFilled.current) {\n wasFilled.current = true\n updateCurrentDataSet()\n updateData(dataRef.current)\n }\n handleOnFocus()\n },\n [handleOnFocus, updateCurrentDataSet]\n )\n\n const onTypeHandler = useCallback(\n ({ value, updateData, revalidateInputValue, event }) => {\n // Handle browser autofill/autocomplete\n if (typeof event?.nativeEvent?.data === 'undefined') {\n const cdcVal = /\\+\\d{1,3}\\s{1}\\d+/.test(value)\n ? splitValue(value)[0]\n : value\n const country = countries.find(({ cdc }) => cdc === cdcVal)\n if (country?.cdc) {\n const countryCode = (countryCodeRef.current = formatCountryCode(\n country.cdc\n ))\n\n updateCurrentDataSet()\n updateData(dataRef.current)\n callOnChange({ countryCode })\n\n // To ensure correct input value,\n // regardless if there is changed data before or not.\n window.requestAnimationFrame(() => {\n revalidateInputValue()\n })\n }\n }\n },\n [callOnChange, countries, updateCurrentDataSet]\n )\n\n const isDefault = countryCodeRef.current?.includes(defaultCountryCode)\n\n const fieldBlockProps: FieldBlockProps = {\n id,\n className: classnames('dnb-forms-field-phone-number', className),\n width,\n label: undefined,\n help: undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <CompositionField {...fieldBlockProps}>\n {!omitCountryCodeField && (\n <Autocomplete\n className={classnames(\n 'dnb-forms-field-phone-number__country-code',\n countryCodeFieldClassName\n )}\n mode=\"async\"\n placeholder={countryCodePlaceholder}\n label_direction=\"vertical\"\n label={countryCodeLabel ?? defaultCountryCodeLabel}\n label_sr_only={labelSrOnly}\n data={dataRef.current}\n value={countryCodeRef.current}\n status={hasError ? 'error' : undefined}\n disabled={disabled}\n on_focus={handleCountryCodeFocus}\n on_blur={handleOnBlur}\n on_change={handleCountryCodeChange}\n on_type={onTypeHandler}\n independent_width\n search_numbers\n keep_selection\n selectall\n autoComplete=\"tel-country-code\"\n no_animation={props.noAnimation}\n size={size}\n />\n )}\n <StringField\n className={classnames(\n 'dnb-forms-field-phone-number__number',\n numberFieldClassName\n )}\n type=\"tel\"\n autoComplete=\"tel-national\"\n emptyValue={emptyValue}\n layout=\"vertical\"\n label={label}\n labelSrOnly={labelSrOnly}\n placeholder={\n placeholder ?? (isDefault ? defaultPlaceholder : undefined)\n }\n mask={\n numberMask ?? (isDefault ? defaultMask : Array(12).fill(/\\d/))\n }\n onFocus={handleOnFocus}\n onBlur={handleOnBlur}\n onChange={handleNumberChange}\n value={numberRef.current}\n innerRef={inputRef}\n info={info}\n warning={warning}\n error={error}\n disabled={disabled}\n width=\"stretch\"\n help={{ ...help, breakout: false, outset: false }}\n required={required}\n errorMessages={errorMessages}\n validateInitially={validateInitially}\n validateContinuously={continuousValidation || validateContinuously}\n validateUnchanged={validateUnchanged}\n inputMode=\"tel\"\n size={size}\n />\n </CompositionField>\n )\n}\n\nfunction makeObject(country: CountryType, lang: string) {\n const name = country.i18n[lang] ?? country.i18n.en\n const code = formatCountryCode(country.cdc)\n return {\n selectedKey: code,\n selected_value: `${country.iso} (${code})`,\n search_content: [code, name],\n content: [name, code],\n country,\n }\n}\n\nfunction formatCountryCode(value: string) {\n return `+${value}`\n}\n\nfunction splitValue(value: string) {\n return (\n typeof value === 'string'\n ? value.match(/^(\\+[^ ]+)? ?(.*)$/)\n : [undefined, '', '']\n ).slice(1)\n}\n\nfunction joinValue(array: Array<string>) {\n return array.filter(Boolean).join(' ')\n}\n\nPhoneNumber._supportsSpacingProps = true\nexport default PhoneNumber\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"PhoneNumber.js","names":["React","useMemo","useContext","useCallback","useEffect","useRef","Autocomplete","classnames","useCountries","StringField","CompositionField","useFieldProps","pickSpacingProps","SharedContext","countryFilter","getCountryData","useTranslation","defaultCountryCode","defaultPlaceholder","defaultMask","PhoneNumber","props","_sharedContext$locale","_props$inputRef","_countryCodeRef$curre2","sharedContext","label","defaultLabel","countryCodeLabel","defaultCountryCodeLabel","errorRequired","lang","locale","split","countryCodeRef","emptyValue","prevCountryCodeRef","current","numberRef","dataRef","langRef","wasFilled","currentCountryRef","errorMessages","_objectSpread","validateRequired","value","required","isChanged","error","countryCode","phoneNumber","splitValue","undefined","fromExternal","external","omitCountryCodeField","toEvent","schema","_props$schema","type","pattern","defaultProps","ref","preparedProps","inputRef","id","path","itemPath","className","countryCodeFieldClassName","numberFieldClassName","countryCodePlaceholder","placeholder","labelSrOnly","numberMask","countries","ccFilter","info","warning","size","hasError","disabled","width","help","validateInitially","continuousValidation","validateContinuously","validateUnchanged","setHasFocus","handleChange","setDisplayValue","onCountryCodeChange","onNumberChange","filterCountries","_inputRef$current","number","length","joinValue","filter","country","updateCurrentDataSet","formatCountryCode","cdc","sort","makeObject","prepareEventValues","_currentCountryRef$cu","cdcVal","replace","item","find","_item$country","iso","callOnChange","data","eventValues","callOnBlurOrFocus","hasFocus","handleCountryCodeChange","_data$selectedKey","_countryCodeRef$curre","_numberRef$current","selectedKey","trim","includes","truncatedNumber","substring","handleNumberChange","handleOnBlur","handleOnFocus","handleCountryCodeFocus","updateData","onTypeHandler","revalidateInputValue","event","_event$nativeEvent","nativeEvent","test","window","requestAnimationFrame","isDefault","fieldBlockProps","createElement","mode","label_direction","label_sr_only","status","on_focus","on_blur","on_change","on_type","independent_width","search_numbers","keep_selection","selectall","autoComplete","no_animation","noAnimation","layout","mask","Array","fill","onFocus","onBlur","onChange","innerRef","breakout","outset","inputMode","_country$i18n$lang","name","i18n","en","code","selected_value","search_content","content","match","slice","array","Boolean","join","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/PhoneNumber/PhoneNumber.tsx"],"sourcesContent":["import React, {\n useMemo,\n useContext,\n useCallback,\n useEffect,\n useRef,\n} from 'react'\nimport { Autocomplete } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport classnames from 'classnames'\nimport {\n CountryISO,\n type CountryLang,\n type CountryType,\n} from '../../constants/countries'\nimport useCountries from '../SelectCountry/useCountries'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport { Props as FieldBlockProps } from '../../FieldBlock'\nimport CompositionField from '../Composition'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldPropsWithExtraValue,\n AllJSONSchemaVersions,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport SharedContext from '../../../../shared/Context'\nimport {\n countryFilter,\n CountryFilterSet,\n getCountryData,\n} from '../SelectCountry'\nimport useTranslation from '../../hooks/useTranslation'\nimport { DrawerListDataArrayItem } from '../../../../fragments/DrawerList'\n\nexport type AdditionalArgs = {\n phoneNumber: string\n countryCode: string\n iso: string\n}\n\nexport type Props = Omit<\n FieldPropsWithExtraValue<string, AdditionalArgs, undefined | string>,\n | 'layout'\n | 'layoutOptions'\n | 'labelSize'\n | 'labelDescription'\n | 'labelDescriptionInline'\n> & {\n countryCodeFieldClassName?: string\n numberFieldClassName?: string\n countryCodePlaceholder?: string\n countryCodeLabel?: string\n numberMask?: InputMaskedProps['mask']\n pattern?: StringFieldProps['pattern']\n width?: 'large' | 'stretch'\n inputRef?: React.RefObject<HTMLInputElement>\n omitCountryCodeField?: boolean\n onCountryCodeChange?: (value: string | undefined) => void\n onNumberChange?: (value: string | undefined) => void\n\n /**\n * Defines the countries to filter. Can be `Scandinavia`, `Nordic`, `Europe` or `Prioritized`.\n * Defaults to `Prioritized`.\n */\n countries?: CountryFilterSet\n\n /**\n * Use this prop to filter out certain countries. The function receives the country object and should return a boolean. Returning `false` will omit the country.\n */\n filterCountries?: (country: CountryType) => boolean\n\n /**\n * For internal testing purposes\n */\n noAnimation?: boolean\n} & Pick<StringFieldProps, 'size'>\n\n// Important for the default value to be defined here, and not after the useFieldProps call, to avoid the UI jumping\n// back to +47 once the user empty the field so handleChange send out undefined.\nconst defaultCountryCode = '+47'\nconst defaultPlaceholder = '00 00 00 00'\nconst defaultMask = [\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n]\n\ntype EventValues = {\n countryCode?: string\n phoneNumber?: string\n}\n\nfunction PhoneNumber(props: Props) {\n const sharedContext = useContext(SharedContext)\n const {\n label: defaultLabel,\n countryCodeLabel: defaultCountryCodeLabel,\n errorRequired,\n } = useTranslation().PhoneNumber\n const lang = sharedContext.locale?.split('-')[0] as CountryLang\n\n const countryCodeRef = useRef<Props['value']>(props?.emptyValue)\n const prevCountryCodeRef = useRef(countryCodeRef.current)\n const numberRef = useRef<Props['value']>(props?.emptyValue)\n const dataRef = useRef<Array<DrawerListDataArrayItem>>(null)\n const langRef = useRef<string>(lang)\n const wasFilled = useRef<boolean>(false)\n const currentCountryRef = useRef<CountryType>()\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': errorRequired,\n 'Field.errorPattern': errorRequired,\n ...props.errorMessages,\n }),\n [errorRequired, props.errorMessages]\n )\n\n const validateRequired = useCallback(\n (value: string, { required, isChanged, error }) => {\n if (required) {\n const [countryCode, phoneNumber] = splitValue(value)\n\n if (countryCode !== prevCountryCodeRef.current) {\n if (countryCode) {\n prevCountryCodeRef.current = countryCode\n }\n return undefined\n }\n\n if (isChanged && !phoneNumber) {\n return error\n }\n }\n\n return undefined\n },\n []\n )\n\n const fromExternal = useCallback(\n (external: string) => {\n const [countryCode, phoneNumber] = splitValue(external)\n if (!countryCode && !phoneNumber && !props.omitCountryCodeField) {\n return countryCodeRef.current\n }\n return external\n },\n [props.omitCountryCodeField]\n )\n\n const toEvent = useCallback(\n (value: string) => {\n const [, phoneNumber] = splitValue(value)\n if (!phoneNumber) {\n return props.emptyValue\n }\n return value\n },\n [props.emptyValue]\n )\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'string',\n pattern: props.pattern,\n },\n [props.schema, props.pattern]\n )\n const defaultProps: Partial<Props> = {\n schema,\n errorMessages,\n }\n const ref = useRef<HTMLInputElement>()\n const preparedProps: Props = {\n ...props,\n ...defaultProps,\n validateRequired,\n fromExternal,\n toEvent,\n inputRef: props.inputRef ?? ref,\n }\n\n const {\n id,\n path,\n itemPath,\n value,\n className,\n inputRef,\n countryCodeFieldClassName,\n numberFieldClassName,\n countryCodePlaceholder,\n placeholder,\n countryCodeLabel,\n label = defaultLabel,\n labelSrOnly,\n numberMask,\n countries: ccFilter = 'Prioritized',\n emptyValue,\n info,\n warning,\n size,\n error,\n hasError,\n disabled,\n width = props.omitCountryCodeField ? 'medium' : 'large',\n help,\n required,\n validateInitially,\n continuousValidation,\n validateContinuously,\n validateUnchanged,\n omitCountryCodeField,\n setHasFocus,\n handleChange,\n setDisplayValue,\n onCountryCodeChange,\n onNumberChange,\n filterCountries,\n } = useFieldProps(preparedProps)\n\n useEffect(() => {\n if (path || itemPath) {\n const number = inputRef.current?.value\n setDisplayValue(\n number?.length > 0\n ? joinValue([countryCodeRef.current, number])\n : undefined\n )\n }\n }, [inputRef, itemPath, path, setDisplayValue, value])\n\n const filter = useCallback(\n (country: CountryType) => {\n return countryFilter(country, filterCountries, ccFilter)\n },\n [ccFilter, filterCountries]\n )\n\n const { countries } = useCountries()\n\n const updateCurrentDataSet = useCallback(() => {\n dataRef.current = getCountryData({\n countries,\n lang,\n filter:\n // Make sure the whole cc list is displayed when cc filter is set to specific region\n ccFilter === 'Prioritized' && !wasFilled.current\n ? (country) =>\n `${formatCountryCode(country.cdc)}` ===\n countryCodeRef.current\n : filter,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n makeObject,\n })\n }, [countries, lang, ccFilter, filter])\n\n const prepareEventValues = useCallback(\n ({\n countryCode = countryCodeRef.current || emptyValue,\n phoneNumber = numberRef.current || emptyValue,\n }: EventValues = {}) => {\n if (!currentCountryRef.current) {\n type Item = DrawerListDataArrayItem & { country: CountryType }\n\n const cdcVal = countryCode?.replace(/^\\+/, '')\n const item = dataRef.current.find((item: Item) => {\n const cdc = item?.country?.cdc\n return cdc === cdcVal\n }) as Item\n\n currentCountryRef.current = item?.country\n }\n\n return {\n ...(!omitCountryCodeField ? { countryCode } : {}),\n phoneNumber,\n iso: currentCountryRef.current?.iso as CountryISO,\n }\n },\n [emptyValue, omitCountryCodeField]\n )\n\n const callOnChange = useCallback(\n (data: EventValues) => {\n const eventValues = prepareEventValues(data)\n handleChange(\n joinValue([eventValues.countryCode, eventValues.phoneNumber]),\n eventValues\n )\n },\n [prepareEventValues, handleChange]\n )\n\n const callOnBlurOrFocus = useCallback(\n (hasFocus: boolean) => {\n setHasFocus(hasFocus, undefined, prepareEventValues())\n },\n [prepareEventValues, setHasFocus]\n )\n\n /**\n * We do not process the whole country list at the first render.\n * Only when the Autocomplete opens (focus).\n * To achieve this, we use memo instead of effect to update refs in sync.\n *\n * We set or update the data list depending on if the countrycode changes or lang changes.\n * We then update countryCode and phoneNumber when value changes.\n */\n useMemo(() => {\n const [countryCode, phoneNumber] = splitValue(props.value || value)\n numberRef.current = phoneNumber\n\n if (lang !== langRef.current || !wasFilled.current) {\n if (!countryCodeRef.current || countryCode) {\n countryCodeRef.current = countryCode || defaultCountryCode\n }\n langRef.current = lang\n\n updateCurrentDataSet()\n }\n }, [value, props.value, lang, updateCurrentDataSet])\n\n const handleCountryCodeChange = useCallback(\n ({\n data,\n }: {\n data: { selectedKey: string; country: CountryType }\n }) => {\n const countryCode = (countryCodeRef.current =\n data?.selectedKey?.trim() || emptyValue)\n currentCountryRef.current = data?.country\n\n // If the phone number is more than 8 digits, and the country code is the default one (+47),\n // we truncate the phone number to 8 digits.\n // This is to ensure that the phone number does not exceed the maximum length set by the mask.\n // TODO: This is a temporary solution, and should be removed once the mask is updated to handle this case.\n if (\n !numberMask &&\n countryCodeRef.current?.includes(defaultCountryCode) &&\n numberRef.current?.length > 8\n ) {\n const truncatedNumber = numberRef.current.substring(0, 8)\n callOnChange({\n countryCode,\n phoneNumber: truncatedNumber,\n })\n onNumberChange?.(truncatedNumber)\n } else {\n callOnChange({ countryCode })\n }\n onCountryCodeChange?.(countryCode)\n },\n [emptyValue, callOnChange, onCountryCodeChange]\n )\n\n const handleNumberChange = useCallback(\n (value: string) => {\n const phoneNumber = (numberRef.current = value || emptyValue)\n\n callOnChange({ phoneNumber })\n onNumberChange?.(phoneNumber)\n },\n [emptyValue, callOnChange, onNumberChange]\n )\n\n const handleOnBlur = useCallback(() => {\n callOnBlurOrFocus(false)\n }, [callOnBlurOrFocus])\n\n const handleOnFocus = useCallback(() => {\n callOnBlurOrFocus(true)\n }, [callOnBlurOrFocus])\n\n const handleCountryCodeFocus = useCallback(\n ({ updateData }) => {\n if (!wasFilled.current) {\n wasFilled.current = true\n updateCurrentDataSet()\n updateData(dataRef.current)\n }\n handleOnFocus()\n },\n [handleOnFocus, updateCurrentDataSet]\n )\n\n const onTypeHandler = useCallback(\n ({ value, updateData, revalidateInputValue, event }) => {\n // Handle browser autofill/autocomplete\n if (typeof event?.nativeEvent?.data === 'undefined') {\n const cdcVal = /\\+\\d{1,3}\\s{1}\\d+/.test(value)\n ? splitValue(value)[0]\n : value\n const country = countries.find(({ cdc }) => cdc === cdcVal)\n if (country?.cdc) {\n const countryCode = (countryCodeRef.current = formatCountryCode(\n country.cdc\n ))\n\n updateCurrentDataSet()\n updateData(dataRef.current)\n callOnChange({ countryCode })\n\n // To ensure correct input value,\n // regardless if there is changed data before or not.\n window.requestAnimationFrame(() => {\n revalidateInputValue()\n })\n }\n }\n },\n [callOnChange, countries, updateCurrentDataSet]\n )\n\n const isDefault = countryCodeRef.current?.includes(defaultCountryCode)\n\n const fieldBlockProps: FieldBlockProps = {\n id,\n className: classnames('dnb-forms-field-phone-number', className),\n width,\n label: undefined,\n help: undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <CompositionField {...fieldBlockProps}>\n {!omitCountryCodeField && (\n <Autocomplete\n className={classnames(\n 'dnb-forms-field-phone-number__country-code',\n countryCodeFieldClassName\n )}\n mode=\"async\"\n placeholder={countryCodePlaceholder}\n label_direction=\"vertical\"\n label={countryCodeLabel ?? defaultCountryCodeLabel}\n label_sr_only={labelSrOnly}\n data={dataRef.current}\n value={countryCodeRef.current}\n status={hasError ? 'error' : undefined}\n disabled={disabled}\n on_focus={handleCountryCodeFocus}\n on_blur={handleOnBlur}\n on_change={handleCountryCodeChange}\n on_type={onTypeHandler}\n independent_width\n search_numbers\n keep_selection\n selectall\n autoComplete=\"tel-country-code\"\n no_animation={props.noAnimation}\n size={size}\n />\n )}\n <StringField\n className={classnames(\n 'dnb-forms-field-phone-number__number',\n numberFieldClassName\n )}\n type=\"tel\"\n autoComplete=\"tel-national\"\n emptyValue={emptyValue}\n layout=\"vertical\"\n label={label}\n labelSrOnly={labelSrOnly}\n placeholder={\n placeholder ?? (isDefault ? defaultPlaceholder : undefined)\n }\n mask={\n numberMask ?? (isDefault ? defaultMask : Array(12).fill(/\\d/))\n }\n onFocus={handleOnFocus}\n onBlur={handleOnBlur}\n onChange={handleNumberChange}\n value={numberRef.current}\n innerRef={inputRef}\n info={info}\n warning={warning}\n error={error}\n disabled={disabled}\n width=\"stretch\"\n help={{ ...help, breakout: false, outset: false }}\n required={required}\n errorMessages={errorMessages}\n validateInitially={validateInitially}\n validateContinuously={continuousValidation || validateContinuously}\n validateUnchanged={validateUnchanged}\n inputMode=\"tel\"\n size={size}\n />\n </CompositionField>\n )\n}\n\nfunction makeObject(country: CountryType, lang: string) {\n const name = country.i18n[lang] ?? country.i18n.en\n const code = formatCountryCode(country.cdc)\n return {\n selectedKey: code,\n selected_value: `${country.iso} (${code})`,\n search_content: [code, name],\n content: [name, code],\n country,\n }\n}\n\nfunction formatCountryCode(value: string) {\n return `+${value}`\n}\n\nfunction splitValue(value: string) {\n return (\n typeof value === 'string'\n ? value.match(/^(\\+[^ ]+)? ?(.*)$/)\n : [undefined, '', '']\n ).slice(1)\n}\n\nfunction joinValue(array: Array<string>) {\n return array.filter(Boolean).join(' ')\n}\n\nPhoneNumber._supportsSpacingProps = true\nexport default PhoneNumber\n"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,7 @@ import type { ToggleButtonProps } from '../../../../components/ToggleButton';
5
5
  export type ToggleProps = {
6
6
  valueOn: unknown;
7
7
  valueOff: unknown;
8
- variant?: 'checkbox' | 'checkbox-button' | 'button' | 'buttons';
8
+ variant?: 'checkbox' | 'radio' | 'switch' | 'checkbox-button' | 'button' | 'buttons';
9
9
  textOn?: string;
10
10
  textOff?: string;
11
11
  size?: ToggleButtonProps['size'] | CheckboxProps['size'];
@@ -6,7 +6,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
6
6
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
7
  import React, { useCallback, useMemo, useRef } from 'react';
8
8
  import classnames from 'classnames';
9
- import { Checkbox, ToggleButton } from '../../../../components';
9
+ import { Checkbox, Switch, ToggleButton, Radio } from '../../../../components';
10
10
  import ButtonRow from '../../Form/ButtonRow';
11
11
  import FieldBlock from '../../FieldBlock';
12
12
  import { useFieldProps } from '../../hooks';
@@ -60,6 +60,9 @@ function Toggle(props) {
60
60
  }) => {
61
61
  handleChange === null || handleChange === void 0 ? void 0 : handleChange(value === 'on' ? valueOn : valueOff);
62
62
  }, [handleChange, valueOn, valueOff]);
63
+ const handleSwitchChange = useCallback(args => {
64
+ handleChange === null || handleChange === void 0 ? void 0 : handleChange(args.checked ? valueOn : valueOff, args);
65
+ }, [handleChange, valueOn, valueOff]);
63
66
  const cn = classnames('dnb-forms-field-toggle', className);
64
67
  const fieldBlockProps = _objectSpread({
65
68
  forId: id,
@@ -102,6 +105,21 @@ function Toggle(props) {
102
105
  onChange: handleCheckboxChange,
103
106
  onClick: handleClick
104
107
  }, htmlAttributes)));
108
+ case 'switch':
109
+ return React.createElement(FieldBlock, _extends({}, fieldBlockProps, {
110
+ label: undefined
111
+ }), React.createElement(Switch, _extends({
112
+ id: id,
113
+ className: cn,
114
+ label: labelWithItemNo !== null && labelWithItemNo !== void 0 ? labelWithItemNo : isOn ? textOn !== null && textOn !== void 0 ? textOn : translations.yes : textOff !== null && textOff !== void 0 ? textOff : translations.no,
115
+ labelSrOnly: labelSrOnly,
116
+ checked: isOn,
117
+ disabled: disabled,
118
+ size: size !== 'small' ? size : undefined,
119
+ status: hasError ? 'error' : undefined,
120
+ onChange: handleSwitchChange,
121
+ onClick: handleClick
122
+ }, htmlAttributes)));
105
123
  case 'button':
106
124
  return React.createElement(FieldBlock, fieldBlockProps, React.createElement(ToggleButton, _extends({
107
125
  id: id,
@@ -138,6 +156,24 @@ function Toggle(props) {
138
156
  value: "off",
139
157
  role: "radio"
140
158
  }, htmlAttributes))))));
159
+ case 'radio':
160
+ return React.createElement(FieldBlock, _extends({}, fieldBlockProps, {
161
+ asFieldset: true
162
+ }), React.createElement(Radio.Group, {
163
+ value: isOn ? 'on' : isOff ? 'off' : null,
164
+ on_change: handleToggleChange,
165
+ status: hasError ? 'error' : undefined,
166
+ disabled: disabled,
167
+ size: size !== 'small' ? size : 'default'
168
+ }, React.createElement(Radio, _extends({
169
+ label: textOn !== null && textOn !== void 0 ? textOn : translations.yes,
170
+ value: "on",
171
+ status: hasError ? 'error' : undefined
172
+ }, htmlAttributes)), React.createElement(Radio, _extends({
173
+ label: textOff !== null && textOff !== void 0 ? textOff : translations.no,
174
+ value: "off",
175
+ status: hasError ? 'error' : undefined
176
+ }, htmlAttributes))));
141
177
  case 'checkbox-button':
142
178
  return React.createElement(FieldBlock, fieldBlockProps, React.createElement(ToggleButton, _extends({
143
179
  id: id,
@@ -1 +1 @@
1
- {"version":3,"file":"Toggle.js","names":["React","useCallback","useMemo","useRef","classnames","Checkbox","ToggleButton","ButtonRow","FieldBlock","useFieldProps","pickSpacingProps","ToggleButtonGroupContext","useTranslation","useIterateItemNo","Toggle","props","translations","ToggleField","preparedProps","_objectSpread","errorMessages","id","className","valueOn","valueOff","variant","disabled","textOn","textOff","value","size","hasError","htmlAttributes","handleChange","setDisplayValue","preventChangeRef","onClick","handleClick","args","preventDefault","_args$preventDefault","current","call","checked","event","handleCheckboxChange","handleToggleChange","cn","fieldBlockProps","forId","isOn","isOff","text","label","labelSuffix","required","labelSrOnly","labelWithItemNo","createElement","_extends","undefined","yes","no","status","onChange","on_change","role","asFieldset","bottom","Group","Provider","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Toggle/Toggle.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport { Checkbox, ToggleButton } from '../../../../components'\nimport ButtonRow from '../../Form/ButtonRow'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\nimport useTranslation from '../../hooks/useTranslation'\nimport { useIterateItemNo } from '../../Iterate/ItemNo/useIterateItemNo'\nimport type {\n CheckboxProps,\n OnChangeParams,\n OnClickParams,\n} from '../../../../components/Checkbox'\nimport type { ToggleButtonProps } from '../../../../components/ToggleButton'\n\nexport type ToggleProps = {\n valueOn: unknown\n valueOff: unknown\n variant?: 'checkbox' | 'checkbox-button' | 'button' | 'buttons'\n textOn?: string\n textOff?: string\n size?: ToggleButtonProps['size'] | CheckboxProps['size']\n\n /**\n * Checkbox props\n */\n onClick?: (\n value: unknown,\n params: { event: React.MouseEvent<HTMLInputElement> }\n ) => void\n}\n\nexport type Props = Omit<FieldProps<unknown>, 'layout' | 'layoutOptions'> &\n ToggleProps\n\nfunction Toggle(props: Props) {\n const translations = useTranslation().ToggleField\n\n const preparedProps: Props = {\n ...props,\n errorMessages: props.errorMessages,\n }\n\n const {\n id,\n className,\n valueOn,\n valueOff,\n variant,\n disabled,\n textOn,\n textOff,\n value,\n size,\n hasError,\n htmlAttributes,\n handleChange,\n setDisplayValue,\n } = useFieldProps(preparedProps)\n\n const preventChangeRef = useRef(false)\n\n const onClick = preparedProps?.onClick\n const handleClick = useCallback(\n (args: OnClickParams) => {\n const preventDefault = () => {\n preventChangeRef.current = true\n args.preventDefault?.()\n }\n\n if (preventChangeRef.current) {\n args.checked = !args.checked\n preventChangeRef.current = false\n }\n\n const event = {\n ...args,\n preventDefault,\n }\n onClick?.(args.checked ? valueOn : valueOff, event)\n },\n [onClick, valueOff, valueOn]\n )\n const handleCheckboxChange = useCallback(\n (args: OnChangeParams) => {\n handleChange?.(args.checked ? valueOn : valueOff, args)\n },\n [handleChange, valueOn, valueOff]\n )\n const handleToggleChange = useCallback(\n ({ value }) => {\n handleChange?.(value === 'on' ? valueOn : valueOff)\n },\n [handleChange, valueOn, valueOff]\n )\n\n const cn = classnames('dnb-forms-field-toggle', className)\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: cn,\n disabled,\n ...pickSpacingProps(props),\n }\n\n const isOn = value === valueOn\n const isOff = value === valueOff\n\n useMemo(() => {\n const text = isOn ? textOn : textOff\n if (text) {\n setDisplayValue(text)\n }\n }, [isOn, setDisplayValue, textOff, textOn])\n\n const { label, labelSuffix, required, labelSrOnly } = props\n const labelWithItemNo = useIterateItemNo({\n label,\n labelSuffix,\n required,\n })\n\n switch (variant) {\n default:\n case 'checkbox':\n return (\n <FieldBlock {...fieldBlockProps} label={undefined}>\n <Checkbox\n id={id}\n className={cn}\n label={\n labelWithItemNo ??\n (isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no)\n }\n labelSrOnly={labelSrOnly}\n checked={isOn}\n disabled={disabled}\n size={size !== 'small' ? size : undefined}\n status={hasError ? 'error' : undefined}\n onChange={handleCheckboxChange}\n onClick={handleClick}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n case 'button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButton\n id={id}\n text={\n isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no\n }\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n value={value ? 'true' : 'false'}\n size={size}\n on_change={handleCheckboxChange}\n role=\"checkbox\"\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n case 'buttons':\n return (\n <FieldBlock {...fieldBlockProps} asFieldset>\n <ButtonRow bottom=\"x-small\">\n <ToggleButton.Group role=\"radiogroup\">\n <ToggleButtonGroupContext.Provider\n value={{\n value: isOn ? 'on' : isOff ? 'off' : null, // use \"null\" to reset the value\n onChange: handleToggleChange,\n status: hasError ? 'error' : undefined,\n disabled,\n size,\n }}\n >\n <ToggleButton\n text={textOn ?? translations.yes}\n value=\"on\"\n role=\"radio\"\n {...htmlAttributes}\n />\n <ToggleButton\n text={textOff ?? translations.no}\n value=\"off\"\n role=\"radio\"\n {...htmlAttributes}\n />\n </ToggleButtonGroupContext.Provider>\n </ToggleButton.Group>\n </ButtonRow>\n </FieldBlock>\n )\n case 'checkbox-button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButton\n id={id}\n variant=\"checkbox\"\n text={\n isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no\n }\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n value={value ? 'true' : 'false'}\n size={size}\n on_change={handleCheckboxChange}\n role=\"checkbox\"\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n }\n}\n\nToggle._supportsSpacingProps = true\nexport default Toggle\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Toggle.js","names":["React","useCallback","useMemo","useRef","classnames","Checkbox","Switch","ToggleButton","Radio","ButtonRow","FieldBlock","useFieldProps","pickSpacingProps","ToggleButtonGroupContext","useTranslation","useIterateItemNo","Toggle","props","translations","ToggleField","preparedProps","_objectSpread","errorMessages","id","className","valueOn","valueOff","variant","disabled","textOn","textOff","value","size","hasError","htmlAttributes","handleChange","setDisplayValue","preventChangeRef","onClick","handleClick","args","preventDefault","_args$preventDefault","current","call","checked","event","handleCheckboxChange","handleToggleChange","handleSwitchChange","cn","fieldBlockProps","forId","isOn","isOff","text","label","labelSuffix","required","labelSrOnly","labelWithItemNo","createElement","_extends","undefined","yes","no","status","onChange","on_change","role","asFieldset","bottom","Group","Provider","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Toggle/Toggle.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport {\n Checkbox,\n Switch,\n ToggleButton,\n Radio,\n} from '../../../../components'\nimport ButtonRow from '../../Form/ButtonRow'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\nimport useTranslation from '../../hooks/useTranslation'\nimport { useIterateItemNo } from '../../Iterate/ItemNo/useIterateItemNo'\nimport type {\n CheckboxProps,\n OnChangeParams,\n OnClickParams,\n} from '../../../../components/Checkbox'\nimport type { ToggleButtonProps } from '../../../../components/ToggleButton'\nimport { SwitchOnChangeParams } from '../../../../components/Switch'\n\nexport type ToggleProps = {\n valueOn: unknown\n valueOff: unknown\n variant?:\n | 'checkbox'\n | 'radio'\n | 'switch'\n | 'checkbox-button'\n | 'button'\n | 'buttons'\n textOn?: string\n textOff?: string\n size?: ToggleButtonProps['size'] | CheckboxProps['size']\n\n /**\n * Checkbox props\n */\n onClick?: (\n value: unknown,\n params: { event: React.MouseEvent<HTMLInputElement> }\n ) => void\n}\n\nexport type Props = Omit<FieldProps<unknown>, 'layout' | 'layoutOptions'> &\n ToggleProps\n\nfunction Toggle(props: Props) {\n const translations = useTranslation().ToggleField\n\n const preparedProps: Props = {\n ...props,\n errorMessages: props.errorMessages,\n }\n\n const {\n id,\n className,\n valueOn,\n valueOff,\n variant,\n disabled,\n textOn,\n textOff,\n value,\n size,\n hasError,\n htmlAttributes,\n handleChange,\n setDisplayValue,\n } = useFieldProps(preparedProps)\n\n const preventChangeRef = useRef(false)\n\n const onClick = preparedProps?.onClick\n const handleClick = useCallback(\n (args: OnClickParams) => {\n const preventDefault = () => {\n preventChangeRef.current = true\n args.preventDefault?.()\n }\n\n if (preventChangeRef.current) {\n args.checked = !args.checked\n preventChangeRef.current = false\n }\n\n const event = {\n ...args,\n preventDefault,\n }\n onClick?.(args.checked ? valueOn : valueOff, event)\n },\n [onClick, valueOff, valueOn]\n )\n const handleCheckboxChange = useCallback(\n (args: OnChangeParams) => {\n handleChange?.(args.checked ? valueOn : valueOff, args)\n },\n [handleChange, valueOn, valueOff]\n )\n const handleToggleChange = useCallback(\n ({ value }) => {\n handleChange?.(value === 'on' ? valueOn : valueOff)\n },\n [handleChange, valueOn, valueOff]\n )\n const handleSwitchChange = useCallback(\n (args: SwitchOnChangeParams) => {\n handleChange?.(args.checked ? valueOn : valueOff, args)\n },\n [handleChange, valueOn, valueOff]\n )\n\n const cn = classnames('dnb-forms-field-toggle', className)\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: cn,\n disabled,\n ...pickSpacingProps(props),\n }\n\n const isOn = value === valueOn\n const isOff = value === valueOff\n\n useMemo(() => {\n const text = isOn ? textOn : textOff\n if (text) {\n setDisplayValue(text)\n }\n }, [isOn, setDisplayValue, textOff, textOn])\n\n const { label, labelSuffix, required, labelSrOnly } = props\n const labelWithItemNo = useIterateItemNo({\n label,\n labelSuffix,\n required,\n })\n\n switch (variant) {\n default:\n case 'checkbox':\n return (\n <FieldBlock {...fieldBlockProps} label={undefined}>\n <Checkbox\n id={id}\n className={cn}\n label={\n labelWithItemNo ??\n (isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no)\n }\n labelSrOnly={labelSrOnly}\n checked={isOn}\n disabled={disabled}\n size={size !== 'small' ? size : undefined}\n status={hasError ? 'error' : undefined}\n onChange={handleCheckboxChange}\n onClick={handleClick}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n case 'switch':\n return (\n <FieldBlock {...fieldBlockProps} label={undefined}>\n <Switch\n id={id}\n className={cn}\n label={\n labelWithItemNo ??\n (isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no)\n }\n labelSrOnly={labelSrOnly}\n checked={isOn}\n disabled={disabled}\n size={size !== 'small' ? size : undefined}\n status={hasError ? 'error' : undefined}\n onChange={handleSwitchChange}\n onClick={handleClick}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n case 'button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButton\n id={id}\n text={\n isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no\n }\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n value={value ? 'true' : 'false'}\n size={size}\n on_change={handleCheckboxChange}\n role=\"checkbox\"\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n case 'buttons':\n return (\n <FieldBlock {...fieldBlockProps} asFieldset>\n <ButtonRow bottom=\"x-small\">\n <ToggleButton.Group role=\"radiogroup\">\n <ToggleButtonGroupContext.Provider\n value={{\n value: isOn ? 'on' : isOff ? 'off' : null, // use \"null\" to reset the value\n onChange: handleToggleChange,\n status: hasError ? 'error' : undefined,\n disabled,\n size,\n }}\n >\n <ToggleButton\n text={textOn ?? translations.yes}\n value=\"on\"\n role=\"radio\"\n {...htmlAttributes}\n />\n <ToggleButton\n text={textOff ?? translations.no}\n value=\"off\"\n role=\"radio\"\n {...htmlAttributes}\n />\n </ToggleButtonGroupContext.Provider>\n </ToggleButton.Group>\n </ButtonRow>\n </FieldBlock>\n )\n case 'radio':\n return (\n <FieldBlock {...fieldBlockProps} asFieldset>\n <Radio.Group\n value={isOn ? 'on' : isOff ? 'off' : null}\n on_change={handleToggleChange}\n status={hasError ? 'error' : undefined}\n disabled={disabled}\n size={size !== 'small' ? size : 'default'} // Radio does not support \"small\" size\n >\n <Radio\n label={textOn ?? translations.yes}\n value=\"on\"\n status={hasError ? 'error' : undefined}\n {...htmlAttributes}\n />\n <Radio\n label={textOff ?? translations.no}\n value=\"off\"\n status={hasError ? 'error' : undefined}\n {...htmlAttributes}\n />\n </Radio.Group>\n </FieldBlock>\n )\n case 'checkbox-button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButton\n id={id}\n variant=\"checkbox\"\n text={\n isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no\n }\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n value={value ? 'true' : 'false'}\n size={size}\n on_change={handleCheckboxChange}\n role=\"checkbox\"\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n }\n}\n\nToggle._supportsSpacingProps = true\nexport default Toggle\n"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@ import { UploadFile, UploadFileNative, UploadProps } from '../../../../component
3
3
  import { SpacingProps } from '../../../../shared/types';
4
4
  export type { UploadFile, UploadFileNative };
5
5
  export type UploadValue = Array<UploadFile | UploadFileNative>;
6
- export type Props = Omit<FieldProps<UploadValue, UploadValue | undefined>, 'layout' | 'layoutOptions' | 'onBlurValidator' | 'onChangeValidator' | 'contentWidth' | 'labelSize' | 'labelDescriptionInline' | 'labelSrOnly' | 'labelSize' | 'labelSuffix'> & SpacingProps & Pick<Partial<UploadProps>, 'title' | 'text' | 'acceptedFileTypes' | 'filesAmountLimit' | 'fileMaxSize' | 'onFileDelete' | 'onFileClick' | 'skeleton' | 'download' | 'allowDuplicates' | 'disableDragAndDrop'> & {
6
+ export type Props = Omit<FieldProps<UploadValue, UploadValue | undefined>, 'layout' | 'layoutOptions' | 'onBlurValidator' | 'onChangeValidator' | 'contentWidth' | 'labelSize' | 'labelDescriptionInline' | 'labelSrOnly' | 'labelSize' | 'labelSuffix'> & SpacingProps & Pick<Partial<UploadProps>, 'children' | 'title' | 'variant' | 'text' | 'acceptedFileTypes' | 'filesAmountLimit' | 'fileMaxSize' | 'onFileDelete' | 'onFileClick' | 'skeleton' | 'download' | 'allowDuplicates' | 'disableDragAndDrop'> & {
7
7
  fileHandler?: (newFiles: UploadValue) => UploadValue | Promise<UploadValue>;
8
8
  width?: 'large' | 'stretch';
9
9
  };
@@ -76,6 +76,7 @@ function UploadComponent(props) {
76
76
  const {
77
77
  title = sharedTr.title,
78
78
  text = sharedTr.text,
79
+ variant = 'normal',
79
80
  acceptedFileTypes = ['pdf', 'png', 'jpg', 'jpeg'],
80
81
  filesAmountLimit = 100,
81
82
  fileMaxSize = 5,
@@ -156,8 +157,10 @@ function UploadComponent(props) {
156
157
  width,
157
158
  help: undefined
158
159
  }, pickSpacingProps(props));
160
+ const usedLabelDescription = labelDescription !== null && labelDescription !== void 0 ? labelDescription : text;
159
161
  return React.createElement(FieldBlock, fieldBlockProps, React.createElement(Upload, _extends({
160
162
  id: id,
163
+ variant: variant,
161
164
  acceptedFileTypes: acceptedFileTypes,
162
165
  filesAmountLimit: filesAmountLimit,
163
166
  download: download,
@@ -169,17 +172,33 @@ function UploadComponent(props) {
169
172
  onChange: changeHandler,
170
173
  onFileDelete: onFileDelete,
171
174
  onFileClick: onFileClick,
172
- title: label !== null && label !== void 0 ? label : title,
173
- text: help ? React.createElement(React.Fragment, null, labelDescription !== null && labelDescription !== void 0 ? labelDescription : text, React.createElement(HelpButtonInline, {
174
- contentId: `${id}-help`,
175
- left: text ? 'x-small' : false,
175
+ title: help && labelDescription === false ? React.createElement(LabelWithHelpButton, {
176
+ label: label !== null && label !== void 0 ? label : title,
177
+ id: id,
176
178
  help: help
177
- })) : labelDescription !== null && labelDescription !== void 0 ? labelDescription : text
179
+ }) : label !== null && label !== void 0 ? label : title,
180
+ text: help && (labelDescription !== null && labelDescription !== void 0 ? labelDescription : text) ? React.createElement(LabelWithHelpButton, {
181
+ label: usedLabelDescription,
182
+ id: id,
183
+ help: help
184
+ }) : usedLabelDescription
178
185
  }, htmlAttributes), help && React.createElement(HelpButtonInlineContent, {
179
186
  contentId: `${id}-help`,
180
187
  help: help,
181
- roundedCorner: false
182
- })));
188
+ roundedCorner: variant === 'compact'
189
+ }), props.children));
190
+ }
191
+ function LabelWithHelpButton(props) {
192
+ const {
193
+ label,
194
+ id,
195
+ help
196
+ } = props;
197
+ return React.createElement(React.Fragment, null, label, React.createElement(HelpButtonInline, {
198
+ contentId: `${id}-help`,
199
+ left: label ? 'x-small' : false,
200
+ help: help
201
+ }));
183
202
  }
184
203
  export default UploadComponent;
185
204
  UploadComponent._supportsSpacingProps = true;
@@ -1 +1 @@
1
- {"version":3,"file":"Upload.js","names":["React","useCallback","useEffect","useMemo","useRef","classnames","FieldBlock","useFieldProps","useTranslation","useFormsTranslation","Upload","useUpload","pickSpacingProps","HelpButtonInline","HelpButtonInlineContent","useSharedTranslation","FormError","validateRequired","value","required","isChanged","error","hasError","some","file","errorMessage","hasFiles","length","undefined","UploadComponent","props","sharedTr","formsTr","errorMessages","errorRequired","fromInput","forEach","item","index","_item$file","name","preparedProps","_objectSpread","toInput","transformFiles","_useFieldProps","executeOnChangeRegardlessOfError","id","className","width","widthProp","label","labelDescription","help","htmlAttributes","disabled","handleChange","handleFocus","handleBlur","fileHandler","rest","_objectWithoutProperties","_excluded","title","text","acceptedFileTypes","filesAmountLimit","fileMaxSize","skeleton","onFileDelete","onFileClick","download","allowDuplicates","disableDragAndDrop","files","setFiles","filesRef","current","handleChangeAsync","_filesRef$current","existingFileIds","map","existingFiles","filter","includes","newFiles","newValidFiles","newFilesLoading","isLoading","incomingFiles","_incomingFiles$filter","incomingFileObj","foundIndex","findIndex","newFile","push","indexOfFirstNewFile","updatedFiles","slice","changeHandler","fieldBlockProps","forId","labelSrOnly","createElement","_extends","onChange","Fragment","contentId","left","roundedCorner","_supportsSpacingProps","Array","isArray","File","_lastModified","_item$file2","_type","_item$file3","lastModified","type"],"sources":["../../../../../../src/extensions/forms/Field/Upload/Upload.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport {\n useFieldProps,\n useTranslation as useFormsTranslation,\n} from '../../hooks'\nimport { FieldProps } from '../../types'\nimport Upload, {\n UploadFile,\n UploadFileNative,\n UploadProps,\n} from '../../../../components/Upload'\nimport useUpload from '../../../../components/upload/useUpload'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport HelpButtonInline, {\n HelpButtonInlineContent,\n} from '../../../../components/help-button/HelpButtonInline'\nimport { useTranslation as useSharedTranslation } from '../../../../shared'\nimport { SpacingProps } from '../../../../shared/types'\nimport { FormError } from '../../utils'\n\nexport type { UploadFile, UploadFileNative }\nexport type UploadValue = Array<UploadFile | UploadFileNative>\nexport type Props = Omit<\n FieldProps<UploadValue, UploadValue | undefined>,\n | 'layout'\n | 'layoutOptions'\n | 'onBlurValidator'\n | 'onChangeValidator'\n | 'contentWidth'\n | 'labelSize'\n | 'labelDescriptionInline'\n | 'labelSrOnly'\n | 'labelSize'\n | 'labelSuffix'\n> &\n SpacingProps &\n Pick<\n Partial<UploadProps>,\n | 'title'\n | 'text'\n | 'acceptedFileTypes'\n | 'filesAmountLimit'\n | 'fileMaxSize'\n | 'onFileDelete'\n | 'onFileClick'\n | 'skeleton'\n | 'download'\n | 'allowDuplicates'\n | 'disableDragAndDrop'\n > & {\n fileHandler?: (\n newFiles: UploadValue\n ) => UploadValue | Promise<UploadValue>\n width?: 'large' | 'stretch'\n }\n\nconst validateRequired = (\n value: UploadValue,\n { required, isChanged, error }\n) => {\n const hasError = value?.some((file) => file.errorMessage)\n if (hasError) {\n return new FormError('Upload.errorInvalidFiles')\n }\n\n const hasFiles = value?.length > 0\n if (required && ((!isChanged && !hasFiles) || !hasFiles)) {\n return error\n }\n\n return undefined\n}\n\nfunction UploadComponent(props: Props) {\n const sharedTr = useSharedTranslation().Upload\n const formsTr = useFormsTranslation().Upload\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': formsTr.errorRequired,\n }),\n [formsTr.errorRequired]\n )\n\n const fromInput = useCallback((value: UploadValue) => {\n value.forEach((item, index) => {\n if (!item) {\n return\n }\n\n value[index] = item\n\n // Store the name in the value, to support session storage (serialization)\n value[index]['name'] = item['name'] || item.file?.name\n })\n\n return value\n }, [])\n\n const preparedProps = {\n errorMessages,\n validateRequired,\n fromInput,\n toInput: transformFiles,\n ...props,\n }\n\n const {\n id,\n className,\n width: widthProp = 'stretch',\n value,\n label,\n labelDescription,\n help,\n htmlAttributes,\n disabled,\n handleChange,\n handleFocus,\n handleBlur,\n fileHandler,\n ...rest\n } = useFieldProps(preparedProps, {\n executeOnChangeRegardlessOfError: true,\n })\n\n // Upload props\n const {\n title = sharedTr.title,\n text = sharedTr.text,\n acceptedFileTypes = ['pdf', 'png', 'jpg', 'jpeg'],\n filesAmountLimit = 100,\n fileMaxSize = 5,\n skeleton,\n onFileDelete,\n onFileClick,\n download,\n allowDuplicates,\n disableDragAndDrop,\n } = rest\n\n const { files, setFiles } = useUpload(id)\n\n const filesRef = useRef<Array<UploadFile>>()\n\n useEffect(() => {\n filesRef.current = files\n }, [files])\n\n useEffect(() => {\n setFiles(value)\n }, [setFiles, value])\n\n const handleChangeAsync = useCallback(\n async (files: UploadValue) => {\n // Filter out existing files\n const existingFileIds =\n filesRef.current?.map((file) => file.id) || []\n const existingFiles = files.filter((file) =>\n existingFileIds.includes(file.id)\n )\n const newFiles = files.filter(\n (file) => !existingFileIds.includes(file.id)\n )\n const newValidFiles = newFiles.filter((file) => !file.errorMessage)\n\n if (newValidFiles.length > 0) {\n // Set loading\n const newFilesLoading = newFiles.map((file) => ({\n ...file,\n isLoading: !file.errorMessage,\n }))\n setFiles([...filesRef.current, ...newFilesLoading])\n\n const incomingFiles = await fileHandler(newValidFiles)\n\n if (!incomingFiles) {\n setFiles(existingFiles)\n handleChange(existingFiles)\n } else {\n // merge incoming files into existing order of newFiles.\n incomingFiles.forEach((file) => {\n const incomingFileObj = {\n ...file,\n isLoading: false,\n }\n const foundIndex = newFilesLoading.findIndex(\n (newFile) => newFile.isLoading\n )\n if (foundIndex >= 0) {\n newFilesLoading[foundIndex] = incomingFileObj\n } else {\n // if there's more files incoming than there's files loading (edge case), add them to end of array.\n newFilesLoading.push(incomingFileObj)\n }\n })\n\n const indexOfFirstNewFile = filesRef.current.findIndex(\n ({ id }) => id === newFiles[0].id\n )\n\n const updatedFiles = [\n ...filesRef.current.slice(0, indexOfFirstNewFile),\n ...(incomingFiles?.filter((file) => file != null) ?? []),\n ...filesRef.current.slice(\n indexOfFirstNewFile + incomingFiles.length\n ),\n ]\n setFiles(updatedFiles)\n handleChange(updatedFiles)\n }\n } else {\n handleChange(files)\n }\n },\n [setFiles, fileHandler, handleChange]\n )\n\n const changeHandler = useCallback(\n ({ files }: { files: UploadValue }) => {\n // Prevents the form-status from showing up\n handleBlur()\n handleFocus()\n\n if (fileHandler) {\n handleChangeAsync(files)\n } else {\n handleChange(files)\n }\n },\n [handleBlur, handleFocus, fileHandler, handleChangeAsync, handleChange]\n )\n\n const width = widthProp as FieldBlockWidth\n const fieldBlockProps: FieldBlockProps = {\n id,\n forId: `${id}-input`,\n labelSrOnly: true,\n className: classnames('dnb-forms-field-upload', className),\n width,\n help: undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Upload\n id={id}\n acceptedFileTypes={acceptedFileTypes}\n filesAmountLimit={filesAmountLimit}\n download={download}\n allowDuplicates={allowDuplicates}\n disableDragAndDrop={disableDragAndDrop}\n disabled={disabled}\n fileMaxSize={fileMaxSize}\n skeleton={skeleton}\n onChange={changeHandler}\n onFileDelete={onFileDelete}\n onFileClick={onFileClick}\n title={label ?? title}\n text={\n help ? (\n <>\n {labelDescription ?? text}\n <HelpButtonInline\n contentId={`${id}-help`}\n left={text ? 'x-small' : false}\n help={help}\n />\n </>\n ) : (\n labelDescription ?? text\n )\n }\n {...htmlAttributes}\n >\n {help && (\n <HelpButtonInlineContent\n contentId={`${id}-help`}\n help={help}\n roundedCorner={false}\n />\n )}\n </Upload>\n </FieldBlock>\n )\n}\n\nexport default UploadComponent\n\nUploadComponent._supportsSpacingProps = true\n\nexport function transformFiles(value: UploadValue) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return undefined\n }\n\n value.map((item) => {\n if (item?.file && !(item.file instanceof File)) {\n // To support session storage, we recreated the file blob.\n item['file'] = new File([], item['name'] || item?.file['name'], {\n lastModified: (item.file as File)?.lastModified ?? 0,\n type: (item.file as File)?.type ?? '',\n })\n }\n return item\n })\n }\n\n return value\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Upload.js","names":["React","useCallback","useEffect","useMemo","useRef","classnames","FieldBlock","useFieldProps","useTranslation","useFormsTranslation","Upload","useUpload","pickSpacingProps","HelpButtonInline","HelpButtonInlineContent","useSharedTranslation","FormError","validateRequired","value","required","isChanged","error","hasError","some","file","errorMessage","hasFiles","length","undefined","UploadComponent","props","sharedTr","formsTr","errorMessages","errorRequired","fromInput","forEach","item","index","_item$file","name","preparedProps","_objectSpread","toInput","transformFiles","_useFieldProps","executeOnChangeRegardlessOfError","id","className","width","widthProp","label","labelDescription","help","htmlAttributes","disabled","handleChange","handleFocus","handleBlur","fileHandler","rest","_objectWithoutProperties","_excluded","title","text","variant","acceptedFileTypes","filesAmountLimit","fileMaxSize","skeleton","onFileDelete","onFileClick","download","allowDuplicates","disableDragAndDrop","files","setFiles","filesRef","current","handleChangeAsync","_filesRef$current","existingFileIds","map","existingFiles","filter","includes","newFiles","newValidFiles","newFilesLoading","isLoading","incomingFiles","_incomingFiles$filter","incomingFileObj","foundIndex","findIndex","newFile","push","indexOfFirstNewFile","updatedFiles","slice","changeHandler","fieldBlockProps","forId","labelSrOnly","usedLabelDescription","createElement","_extends","onChange","LabelWithHelpButton","contentId","roundedCorner","children","Fragment","left","_supportsSpacingProps","Array","isArray","File","_lastModified","_item$file2","_type","_item$file3","lastModified","type"],"sources":["../../../../../../src/extensions/forms/Field/Upload/Upload.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport {\n useFieldProps,\n useTranslation as useFormsTranslation,\n} from '../../hooks'\nimport { FieldProps } from '../../types'\nimport Upload, {\n UploadFile,\n UploadFileNative,\n UploadProps,\n} from '../../../../components/Upload'\nimport useUpload from '../../../../components/upload/useUpload'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport HelpButtonInline, {\n HelpButtonInlineContent,\n HelpProps,\n} from '../../../../components/help-button/HelpButtonInline'\nimport { useTranslation as useSharedTranslation } from '../../../../shared'\nimport { SpacingProps } from '../../../../shared/types'\nimport { FormError } from '../../utils'\n\nexport type { UploadFile, UploadFileNative }\nexport type UploadValue = Array<UploadFile | UploadFileNative>\nexport type Props = Omit<\n FieldProps<UploadValue, UploadValue | undefined>,\n | 'layout'\n | 'layoutOptions'\n | 'onBlurValidator'\n | 'onChangeValidator'\n | 'contentWidth'\n | 'labelSize'\n | 'labelDescriptionInline'\n | 'labelSrOnly'\n | 'labelSize'\n | 'labelSuffix'\n> &\n SpacingProps &\n Pick<\n Partial<UploadProps>,\n | 'children'\n | 'title'\n | 'variant'\n | 'text'\n | 'acceptedFileTypes'\n | 'filesAmountLimit'\n | 'fileMaxSize'\n | 'onFileDelete'\n | 'onFileClick'\n | 'skeleton'\n | 'download'\n | 'allowDuplicates'\n | 'disableDragAndDrop'\n > & {\n fileHandler?: (\n newFiles: UploadValue\n ) => UploadValue | Promise<UploadValue>\n width?: 'large' | 'stretch'\n }\n\nconst validateRequired = (\n value: UploadValue,\n { required, isChanged, error }\n) => {\n const hasError = value?.some((file) => file.errorMessage)\n if (hasError) {\n return new FormError('Upload.errorInvalidFiles')\n }\n\n const hasFiles = value?.length > 0\n if (required && ((!isChanged && !hasFiles) || !hasFiles)) {\n return error\n }\n\n return undefined\n}\n\nfunction UploadComponent(props: Props) {\n const sharedTr = useSharedTranslation().Upload\n const formsTr = useFormsTranslation().Upload\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': formsTr.errorRequired,\n }),\n [formsTr.errorRequired]\n )\n\n const fromInput = useCallback((value: UploadValue) => {\n value.forEach((item, index) => {\n if (!item) {\n return\n }\n\n value[index] = item\n\n // Store the name in the value, to support session storage (serialization)\n value[index]['name'] = item['name'] || item.file?.name\n })\n\n return value\n }, [])\n\n const preparedProps = {\n errorMessages,\n validateRequired,\n fromInput,\n toInput: transformFiles,\n ...props,\n }\n\n const {\n id,\n className,\n width: widthProp = 'stretch',\n value,\n label,\n labelDescription,\n help,\n htmlAttributes,\n disabled,\n handleChange,\n handleFocus,\n handleBlur,\n fileHandler,\n ...rest\n } = useFieldProps(preparedProps, {\n executeOnChangeRegardlessOfError: true,\n })\n\n // Upload props\n const {\n title = sharedTr.title,\n text = sharedTr.text,\n variant = 'normal',\n acceptedFileTypes = ['pdf', 'png', 'jpg', 'jpeg'],\n filesAmountLimit = 100,\n fileMaxSize = 5,\n skeleton,\n onFileDelete,\n onFileClick,\n download,\n allowDuplicates,\n disableDragAndDrop,\n } = rest\n\n const { files, setFiles } = useUpload(id)\n\n const filesRef = useRef<Array<UploadFile>>()\n\n useEffect(() => {\n filesRef.current = files\n }, [files])\n\n useEffect(() => {\n setFiles(value)\n }, [setFiles, value])\n\n const handleChangeAsync = useCallback(\n async (files: UploadValue) => {\n // Filter out existing files\n const existingFileIds =\n filesRef.current?.map((file) => file.id) || []\n const existingFiles = files.filter((file) =>\n existingFileIds.includes(file.id)\n )\n const newFiles = files.filter(\n (file) => !existingFileIds.includes(file.id)\n )\n const newValidFiles = newFiles.filter((file) => !file.errorMessage)\n\n if (newValidFiles.length > 0) {\n // Set loading\n const newFilesLoading = newFiles.map((file) => ({\n ...file,\n isLoading: !file.errorMessage,\n }))\n setFiles([...filesRef.current, ...newFilesLoading])\n\n const incomingFiles = await fileHandler(newValidFiles)\n\n if (!incomingFiles) {\n setFiles(existingFiles)\n handleChange(existingFiles)\n } else {\n // merge incoming files into existing order of newFiles.\n incomingFiles.forEach((file) => {\n const incomingFileObj = {\n ...file,\n isLoading: false,\n }\n const foundIndex = newFilesLoading.findIndex(\n (newFile) => newFile.isLoading\n )\n if (foundIndex >= 0) {\n newFilesLoading[foundIndex] = incomingFileObj\n } else {\n // if there's more files incoming than there's files loading (edge case), add them to end of array.\n newFilesLoading.push(incomingFileObj)\n }\n })\n\n const indexOfFirstNewFile = filesRef.current.findIndex(\n ({ id }) => id === newFiles[0].id\n )\n\n const updatedFiles = [\n ...filesRef.current.slice(0, indexOfFirstNewFile),\n ...(incomingFiles?.filter((file) => file != null) ?? []),\n ...filesRef.current.slice(\n indexOfFirstNewFile + incomingFiles.length\n ),\n ]\n setFiles(updatedFiles)\n handleChange(updatedFiles)\n }\n } else {\n handleChange(files)\n }\n },\n [setFiles, fileHandler, handleChange]\n )\n\n const changeHandler = useCallback(\n ({ files }: { files: UploadValue }) => {\n // Prevents the form-status from showing up\n handleBlur()\n handleFocus()\n\n if (fileHandler) {\n handleChangeAsync(files)\n } else {\n handleChange(files)\n }\n },\n [handleBlur, handleFocus, fileHandler, handleChangeAsync, handleChange]\n )\n\n const width = widthProp as FieldBlockWidth\n const fieldBlockProps: FieldBlockProps = {\n id,\n forId: `${id}-input`,\n labelSrOnly: true,\n className: classnames('dnb-forms-field-upload', className),\n width,\n help: undefined,\n ...pickSpacingProps(props),\n }\n\n const usedLabelDescription = labelDescription ?? text\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Upload\n id={id}\n variant={variant}\n acceptedFileTypes={acceptedFileTypes}\n filesAmountLimit={filesAmountLimit}\n download={download}\n allowDuplicates={allowDuplicates}\n disableDragAndDrop={disableDragAndDrop}\n disabled={disabled}\n fileMaxSize={fileMaxSize}\n skeleton={skeleton}\n onChange={changeHandler}\n onFileDelete={onFileDelete}\n onFileClick={onFileClick}\n title={\n help && labelDescription === false ? (\n <LabelWithHelpButton\n label={label ?? title}\n id={id}\n help={help}\n />\n ) : (\n label ?? title\n )\n }\n text={\n help && (labelDescription ?? text) ? (\n <LabelWithHelpButton\n label={usedLabelDescription}\n id={id}\n help={help}\n />\n ) : (\n usedLabelDescription\n )\n }\n {...htmlAttributes}\n >\n {help && (\n <HelpButtonInlineContent\n contentId={`${id}-help`}\n help={help}\n roundedCorner={variant === 'compact'}\n />\n )}\n {props.children}\n </Upload>\n </FieldBlock>\n )\n}\n\nfunction LabelWithHelpButton(props: {\n label: React.ReactNode\n id: string\n help?: HelpProps\n}) {\n const { label, id, help } = props\n return (\n <>\n {label}\n <HelpButtonInline\n contentId={`${id}-help`}\n left={label ? 'x-small' : false}\n help={help}\n />\n </>\n )\n}\n\nexport default UploadComponent\n\nUploadComponent._supportsSpacingProps = true\n\nexport function transformFiles(value: UploadValue) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return undefined\n }\n\n value.map((item) => {\n if (item?.file && !(item.file instanceof File)) {\n // To support session storage, we recreated the file blob.\n item['file'] = new File([], item['name'] || item?.file['name'], {\n lastModified: (item.file as File)?.lastModified ?? 0,\n type: (item.file as File)?.type ?? '',\n })\n }\n return item\n })\n }\n\n return value\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,5 +2,5 @@
2
2
  --forms-field-width--small: 5rem;
3
3
  --forms-field-width--medium: 11rem;
4
4
  --forms-field-width--large: 21rem;
5
- --forms-field-label-max-width--large: 60ch;
5
+ --forms-field-label-max-width--large: var(--text-block-max-width);
6
6
  }
@@ -6,7 +6,7 @@
6
6
  --forms-field-width--small: 5rem;
7
7
  --forms-field-width--medium: 11rem;
8
8
  --forms-field-width--large: 21rem;
9
- --forms-field-label-max-width--large: 60ch;
9
+ --forms-field-label-max-width--large: var(--text-block-max-width);
10
10
  }
11
11
 
12
12
  fieldset.dnb-forms-field-block {
@@ -151,7 +151,7 @@ fieldset.dnb-forms-field-block:not([class*=space__right]) {
151
151
  }
152
152
  .dnb-forms-field-block__status .dnb-form-status__shell {
153
153
  margin-top: 0.5rem;
154
- max-width: 60ch;
154
+ max-width: var(--text-block-max-width);
155
155
  }
156
156
  @media screen and (max-width: 15em) {
157
157
  .dnb-forms-field-block__status {
@@ -1 +1 @@
1
- @charset "UTF-8";:root{--forms-field-width--small:5rem;--forms-field-width--medium:11rem;--forms-field-width--large:21rem;--forms-field-label-max-width--large:60ch}fieldset.dnb-forms-field-block{border:none;padding:0}fieldset.dnb-forms-field-block:not([class*=space__top]){margin-top:0}fieldset.dnb-forms-field-block:not([class*=space__bottom]){margin-bottom:0}fieldset.dnb-forms-field-block:not([class*=space__left]){margin-left:0}fieldset.dnb-forms-field-block:not([class*=space__right]){margin-right:0}.dnb-forms-field-block{--label-margin:0.25rem}.dnb-forms-field-block__grid{display:grid;grid-template-areas:"label" "help" "contents" "indicator" "status";grid-template-columns:minmax(-webkit-min-content,var(--block-content-width,auto));grid-template-columns:minmax(min-content,var(--block-content-width,auto))}.dnb-forms-field-block--label-height-small{--label-margin:0}.dnb-forms-field-block--label-height-medium{--label-margin:0.5rem}.dnb-forms-field-block--label-height-large{--label-margin:0.7rem}.dnb-forms-field-block--width-stretch{flex-grow:1}.dnb-forms-field-block--width-stretch label.dnb-form-label{max-width:none}@media screen and (min-width:25.00625em){.dnb-forms-field-block--width-custom{width:calc(var(--dnb-forms-field-block-width))}.dnb-forms-field-block--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block--width-large{width:var(--forms-field-width--large)}}.dnb-forms-field-block:not([class*="--content-width"]){--max-width:var(--forms-field-label-max-width--large)}.dnb-forms-field-block__label,.dnb-forms-field-block__label.dnb-form-label{align-items:center;display:flex;grid-area:label;margin-right:0;max-width:var(--forms-field-label-max-width--large)}.dnb-forms-field-block__label.dnb-form-label__content:has(+.dnb-help-button),.dnb-forms-field-block__label.dnb-form-label__description:has(+.dnb-help-button),.dnb-forms-field-block__label__content:has(+.dnb-help-button),.dnb-forms-field-block__label__description:has(+.dnb-help-button){margin-right:.5rem}.dnb-forms-field-block__label.dnb-form-label:has(.dnb-forms-field-block__label__description,.dnb-forms-field-block__label.dnb-form-label__description) .dnb-help-button,.dnb-forms-field-block__label.dnb-form-label:has(.dnb-forms-field-block__label__description,.dnb-forms-field-block__label.dnb-form-label__description):not(.dnb-forms-field-block__label:has(+.dnb-help-button),.dnb-forms-field-block__label.dnb-form-label:has(+.dnb-help-button)) .dnb-forms-field-block__label.dnb-form-label__content,.dnb-forms-field-block__label.dnb-form-label:has(.dnb-forms-field-block__label__description,.dnb-forms-field-block__label.dnb-form-label__description):not(.dnb-forms-field-block__label:has(+.dnb-help-button),.dnb-forms-field-block__label.dnb-form-label:has(+.dnb-help-button)) .dnb-forms-field-block__label__content,.dnb-forms-field-block__label:has(.dnb-forms-field-block__label__description,.dnb-forms-field-block__label.dnb-form-label__description) .dnb-help-button,.dnb-forms-field-block__label:has(.dnb-forms-field-block__label__description,.dnb-forms-field-block__label.dnb-form-label__description):not(.dnb-forms-field-block__label:has(+.dnb-help-button),.dnb-forms-field-block__label.dnb-form-label:has(+.dnb-help-button)) .dnb-forms-field-block__label.dnb-form-label__content,.dnb-forms-field-block__label:has(.dnb-forms-field-block__label__description,.dnb-forms-field-block__label.dnb-form-label__description):not(.dnb-forms-field-block__label:has(+.dnb-help-button),.dnb-forms-field-block__label.dnb-form-label:has(+.dnb-help-button)) .dnb-forms-field-block__label__content{margin-right:.3em}.dnb-forms-field-block__label .dnb-help-button__word-joiner,.dnb-forms-field-block__label.dnb-form-label .dnb-help-button__word-joiner{margin-left:.45em;white-space:nowrap}.dnb-forms-field-block__label .dnb-help-button__word-joiner:before,.dnb-forms-field-block__label.dnb-form-label .dnb-help-button__word-joiner:before{content:"⁠"}.dnb-forms-field-block__grid.dnb-forms-field-block--layout-vertical{flex-wrap:wrap}.dnb-forms-field-block__grid.dnb-forms-field-block--layout-vertical>.dnb-form-label{margin-bottom:.5rem}.dnb-forms-field-block__grid.dnb-forms-field-block--layout-horizontal .dnb-forms-field-block__label{margin-right:1rem}.dnb-forms-field-block__grid.dnb-forms-field-block--layout-horizontal>.dnb-form-label{margin-bottom:var(--label-margin);margin-top:var(--label-margin)}@media screen and (max-width:40em){.dnb-forms-field-block__grid.dnb-forms-field-block--layout-horizontal>.dnb-form-label{margin-bottom:calc(var(--label-margin) + .5rem)}}@media screen and (min-width:40.00625em){.dnb-forms-field-block__grid.dnb-forms-field-block--layout-horizontal{grid-template-areas:"label contents" ". help" ". indicator" ". status";grid-template-columns:minmax(var(--dnb-forms-field-block-layout-width-min,-webkit-min-content),var(--dnb-forms-field-block-layout-width-max,-webkit-max-content)) auto;grid-template-columns:minmax(var(--dnb-forms-field-block-layout-width-min,min-content),var(--dnb-forms-field-block-layout-width-max,max-content)) auto}.dnb-forms-field-block__grid.dnb-forms-field-block--layout-horizontal .dnb-help-button__content{--help-button-indent-width:0}.dnb-forms-field-block__grid.dnb-forms-field-block--layout-horizontal .dnb-help-button__content .dnb-section{--rounded-corner:0.25rem;align-self:flex-start}.dnb-forms-field-block__grid.dnb-forms-field-block--layout-horizontal .dnb-forms-field-block__contents{align-self:end}}.dnb-forms-field-block__indicator{grid-area:indicator;position:relative}.dnb-forms-field-block__indicator .dnb-forms-submit-indicator__content{position:absolute}.dnb-forms-field-block__help{display:flex;flex-flow:column;grid-area:help}.dnb-forms-field-block__help .dnb-section{margin-bottom:1rem}.dnb-forms-field-block__help .dnb-section>.dnb-p--lead{margin-bottom:.5rem}@media screen and (min-width:40.00625em){.dnb-forms-field-block__grid.dnb-forms-field-block--layout-horizontal .dnb-forms-field-block__help .dnb-section{margin-bottom:0;margin-top:.5rem}}.dnb-forms-field-block__status{grid-area:status}.dnb-forms-field-block__status .dnb-form-status__shell{margin-top:.5rem;max-width:60ch}@media screen and (max-width:15em){.dnb-forms-field-block__status{width:90%}}.dnb-forms-field-block__contents{display:flex;grid-area:contents;width:100%}.dnb-forms-field-block__contents--width-stretch{width:100%}.dnb-forms-field-block__contents--width-custom{--field-block-content-width:calc(var(--dnb-forms-field-block-content-width))}.dnb-forms-field-block__contents--width-small{--field-block-content-width:var(--forms-field-width--small)}.dnb-forms-field-block__contents--width-medium{--field-block-content-width:var(--forms-field-width--medium)}.dnb-forms-field-block__contents--width-large{--field-block-content-width:var(--forms-field-width--large)}@media screen and (min-width:25.00625em){.dnb-forms-field-block__contents--width-custom,.dnb-forms-field-block__contents--width-large,.dnb-forms-field-block__contents--width-medium,.dnb-forms-field-block__contents--width-small{max-width:var(--field-block-content-width,none)}}@media screen and (min-width:40.00625em){.dnb-forms-field-block__contents--width-custom,.dnb-forms-field-block__contents--width-large,.dnb-forms-field-block__contents--width-medium,.dnb-forms-field-block__contents--width-small{width:var(--field-block-content-width,-webkit-max-content);width:var(--field-block-content-width,max-content)}}.dnb-forms-field-block__composition--vertical .dnb-forms-field-block__contents{display:flex;flex-flow:column;row-gap:var(--spacing-x-small)}.dnb-forms-field-block__composition--horizontal .dnb-forms-field-block__contents{column-gap:var(--spacing-small);display:flex;flex-flow:row;flex-wrap:wrap;row-gap:var(--spacing-small)}.dnb-forms-field-block__composition--horizontal .dnb-forms-field-block__contents>.dnb-forms-field-block--width-stretch{flex:1}@media screen and (min-width:25.00625em){.dnb-forms-field-block__composition--horizontal .dnb-forms-field-block__contents{align-items:flex-end}.dnb-forms-field-block__composition--horizontal .dnb-forms-field-block__contents[class*=align-center]{align-items:center}}@media screen and (max-width:25em){.dnb-forms-field-block__composition--horizontal .dnb-forms-field-block__contents{flex-flow:column;row-gap:var(--spacing-x-small)}.dnb-forms-field-block__composition>.dnb-forms-field-block__grid>.dnb-forms-submit-indicator{display:none}}@media screen and (min-width:25.00625em){.dnb-forms-field-block__composition>.dnb-forms-field-block__grid>.dnb-forms-field-block__contents .dnb-forms-submit-indicator{display:none}}
1
+ @charset "UTF-8";:root{--forms-field-width--small:5rem;--forms-field-width--medium:11rem;--forms-field-width--large:21rem;--forms-field-label-max-width--large:var(--text-block-max-width)}fieldset.dnb-forms-field-block{border:none;padding:0}fieldset.dnb-forms-field-block:not([class*=space__top]){margin-top:0}fieldset.dnb-forms-field-block:not([class*=space__bottom]){margin-bottom:0}fieldset.dnb-forms-field-block:not([class*=space__left]){margin-left:0}fieldset.dnb-forms-field-block:not([class*=space__right]){margin-right:0}.dnb-forms-field-block{--label-margin:0.25rem}.dnb-forms-field-block__grid{display:grid;grid-template-areas:"label" "help" "contents" "indicator" "status";grid-template-columns:minmax(-webkit-min-content,var(--block-content-width,auto));grid-template-columns:minmax(min-content,var(--block-content-width,auto))}.dnb-forms-field-block--label-height-small{--label-margin:0}.dnb-forms-field-block--label-height-medium{--label-margin:0.5rem}.dnb-forms-field-block--label-height-large{--label-margin:0.7rem}.dnb-forms-field-block--width-stretch{flex-grow:1}.dnb-forms-field-block--width-stretch label.dnb-form-label{max-width:none}@media screen and (min-width:25.00625em){.dnb-forms-field-block--width-custom{width:calc(var(--dnb-forms-field-block-width))}.dnb-forms-field-block--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block--width-large{width:var(--forms-field-width--large)}}.dnb-forms-field-block:not([class*="--content-width"]){--max-width:var(--forms-field-label-max-width--large)}.dnb-forms-field-block__label,.dnb-forms-field-block__label.dnb-form-label{align-items:center;display:flex;grid-area:label;margin-right:0;max-width:var(--forms-field-label-max-width--large)}.dnb-forms-field-block__label.dnb-form-label__content:has(+.dnb-help-button),.dnb-forms-field-block__label.dnb-form-label__description:has(+.dnb-help-button),.dnb-forms-field-block__label__content:has(+.dnb-help-button),.dnb-forms-field-block__label__description:has(+.dnb-help-button){margin-right:.5rem}.dnb-forms-field-block__label.dnb-form-label:has(.dnb-forms-field-block__label__description,.dnb-forms-field-block__label.dnb-form-label__description) .dnb-help-button,.dnb-forms-field-block__label.dnb-form-label:has(.dnb-forms-field-block__label__description,.dnb-forms-field-block__label.dnb-form-label__description):not(.dnb-forms-field-block__label:has(+.dnb-help-button),.dnb-forms-field-block__label.dnb-form-label:has(+.dnb-help-button)) .dnb-forms-field-block__label.dnb-form-label__content,.dnb-forms-field-block__label.dnb-form-label:has(.dnb-forms-field-block__label__description,.dnb-forms-field-block__label.dnb-form-label__description):not(.dnb-forms-field-block__label:has(+.dnb-help-button),.dnb-forms-field-block__label.dnb-form-label:has(+.dnb-help-button)) .dnb-forms-field-block__label__content,.dnb-forms-field-block__label:has(.dnb-forms-field-block__label__description,.dnb-forms-field-block__label.dnb-form-label__description) .dnb-help-button,.dnb-forms-field-block__label:has(.dnb-forms-field-block__label__description,.dnb-forms-field-block__label.dnb-form-label__description):not(.dnb-forms-field-block__label:has(+.dnb-help-button),.dnb-forms-field-block__label.dnb-form-label:has(+.dnb-help-button)) .dnb-forms-field-block__label.dnb-form-label__content,.dnb-forms-field-block__label:has(.dnb-forms-field-block__label__description,.dnb-forms-field-block__label.dnb-form-label__description):not(.dnb-forms-field-block__label:has(+.dnb-help-button),.dnb-forms-field-block__label.dnb-form-label:has(+.dnb-help-button)) .dnb-forms-field-block__label__content{margin-right:.3em}.dnb-forms-field-block__label .dnb-help-button__word-joiner,.dnb-forms-field-block__label.dnb-form-label .dnb-help-button__word-joiner{margin-left:.45em;white-space:nowrap}.dnb-forms-field-block__label .dnb-help-button__word-joiner:before,.dnb-forms-field-block__label.dnb-form-label .dnb-help-button__word-joiner:before{content:"⁠"}.dnb-forms-field-block__grid.dnb-forms-field-block--layout-vertical{flex-wrap:wrap}.dnb-forms-field-block__grid.dnb-forms-field-block--layout-vertical>.dnb-form-label{margin-bottom:.5rem}.dnb-forms-field-block__grid.dnb-forms-field-block--layout-horizontal .dnb-forms-field-block__label{margin-right:1rem}.dnb-forms-field-block__grid.dnb-forms-field-block--layout-horizontal>.dnb-form-label{margin-bottom:var(--label-margin);margin-top:var(--label-margin)}@media screen and (max-width:40em){.dnb-forms-field-block__grid.dnb-forms-field-block--layout-horizontal>.dnb-form-label{margin-bottom:calc(var(--label-margin) + .5rem)}}@media screen and (min-width:40.00625em){.dnb-forms-field-block__grid.dnb-forms-field-block--layout-horizontal{grid-template-areas:"label contents" ". help" ". indicator" ". status";grid-template-columns:minmax(var(--dnb-forms-field-block-layout-width-min,-webkit-min-content),var(--dnb-forms-field-block-layout-width-max,-webkit-max-content)) auto;grid-template-columns:minmax(var(--dnb-forms-field-block-layout-width-min,min-content),var(--dnb-forms-field-block-layout-width-max,max-content)) auto}.dnb-forms-field-block__grid.dnb-forms-field-block--layout-horizontal .dnb-help-button__content{--help-button-indent-width:0}.dnb-forms-field-block__grid.dnb-forms-field-block--layout-horizontal .dnb-help-button__content .dnb-section{--rounded-corner:0.25rem;align-self:flex-start}.dnb-forms-field-block__grid.dnb-forms-field-block--layout-horizontal .dnb-forms-field-block__contents{align-self:end}}.dnb-forms-field-block__indicator{grid-area:indicator;position:relative}.dnb-forms-field-block__indicator .dnb-forms-submit-indicator__content{position:absolute}.dnb-forms-field-block__help{display:flex;flex-flow:column;grid-area:help}.dnb-forms-field-block__help .dnb-section{margin-bottom:1rem}.dnb-forms-field-block__help .dnb-section>.dnb-p--lead{margin-bottom:.5rem}@media screen and (min-width:40.00625em){.dnb-forms-field-block__grid.dnb-forms-field-block--layout-horizontal .dnb-forms-field-block__help .dnb-section{margin-bottom:0;margin-top:.5rem}}.dnb-forms-field-block__status{grid-area:status}.dnb-forms-field-block__status .dnb-form-status__shell{margin-top:.5rem;max-width:var(--text-block-max-width)}@media screen and (max-width:15em){.dnb-forms-field-block__status{width:90%}}.dnb-forms-field-block__contents{display:flex;grid-area:contents;width:100%}.dnb-forms-field-block__contents--width-stretch{width:100%}.dnb-forms-field-block__contents--width-custom{--field-block-content-width:calc(var(--dnb-forms-field-block-content-width))}.dnb-forms-field-block__contents--width-small{--field-block-content-width:var(--forms-field-width--small)}.dnb-forms-field-block__contents--width-medium{--field-block-content-width:var(--forms-field-width--medium)}.dnb-forms-field-block__contents--width-large{--field-block-content-width:var(--forms-field-width--large)}@media screen and (min-width:25.00625em){.dnb-forms-field-block__contents--width-custom,.dnb-forms-field-block__contents--width-large,.dnb-forms-field-block__contents--width-medium,.dnb-forms-field-block__contents--width-small{max-width:var(--field-block-content-width,none)}}@media screen and (min-width:40.00625em){.dnb-forms-field-block__contents--width-custom,.dnb-forms-field-block__contents--width-large,.dnb-forms-field-block__contents--width-medium,.dnb-forms-field-block__contents--width-small{width:var(--field-block-content-width,-webkit-max-content);width:var(--field-block-content-width,max-content)}}.dnb-forms-field-block__composition--vertical .dnb-forms-field-block__contents{display:flex;flex-flow:column;row-gap:var(--spacing-x-small)}.dnb-forms-field-block__composition--horizontal .dnb-forms-field-block__contents{column-gap:var(--spacing-small);display:flex;flex-flow:row;flex-wrap:wrap;row-gap:var(--spacing-small)}.dnb-forms-field-block__composition--horizontal .dnb-forms-field-block__contents>.dnb-forms-field-block--width-stretch{flex:1}@media screen and (min-width:25.00625em){.dnb-forms-field-block__composition--horizontal .dnb-forms-field-block__contents{align-items:flex-end}.dnb-forms-field-block__composition--horizontal .dnb-forms-field-block__contents[class*=align-center]{align-items:center}}@media screen and (max-width:25em){.dnb-forms-field-block__composition--horizontal .dnb-forms-field-block__contents{flex-flow:column;row-gap:var(--spacing-x-small)}.dnb-forms-field-block__composition>.dnb-forms-field-block__grid>.dnb-forms-submit-indicator{display:none}}@media screen and (min-width:25.00625em){.dnb-forms-field-block__composition>.dnb-forms-field-block__grid>.dnb-forms-field-block__contents .dnb-forms-submit-indicator{display:none}}
@@ -189,7 +189,7 @@ fieldset.dnb-forms-field-block {
189
189
 
190
190
  .dnb-form-status__shell {
191
191
  margin-top: 0.5rem; // set margin-top on shell, so we can animate the height
192
- max-width: 60ch; // to enhance readability
192
+ max-width: var(--text-block-max-width); // to enhance readability
193
193
  }
194
194
 
195
195
  @include allBelow(xx-small) {
@@ -1,6 +1,3 @@
1
- import { Props as CardProps } from '../../../../components/card/Card';
2
- declare function Card(props: CardProps): import("react/jsx-runtime").JSX.Element;
3
- declare namespace Card {
4
- var _supportsSpacingProps: boolean;
5
- }
6
- export default Card;
1
+ import CardInstance from '../../../../components/card/Card';
2
+ declare const _default: typeof CardInstance;
3
+ export default _default;