@dnb/eufemia 10.10.0 → 10.12.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 (806) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/cjs/components/accordion/Accordion.d.ts +2 -3
  3. package/cjs/components/anchor/Anchor.d.ts +2 -1
  4. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +16 -16
  5. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  6. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +9 -9
  7. package/cjs/components/avatar/Avatar.d.ts +2 -1
  8. package/cjs/components/breadcrumb/BreadcrumbItem.js +3 -3
  9. package/cjs/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  10. package/cjs/components/button/Button.d.ts +4 -3
  11. package/cjs/components/date-picker/style/dnb-date-picker.css +0 -1
  12. package/cjs/components/date-picker/style/dnb-date-picker.min.css +1 -1
  13. package/cjs/components/dialog/parts/DialogBody.js +1 -1
  14. package/cjs/components/dialog/parts/DialogBody.js.map +1 -1
  15. package/cjs/components/drawer/parts/DrawerBody.js +1 -1
  16. package/cjs/components/drawer/parts/DrawerBody.js.map +1 -1
  17. package/cjs/components/dropdown/style/dnb-dropdown.css +39 -1
  18. package/cjs/components/dropdown/style/dnb-dropdown.min.css +1 -1
  19. package/cjs/components/dropdown/style/dnb-dropdown.scss +38 -1
  20. package/cjs/components/dropdown/style/themes/dnb-dropdown-theme-sbanken.css +95 -0
  21. package/cjs/components/dropdown/style/themes/dnb-dropdown-theme-sbanken.min.css +1 -0
  22. package/cjs/components/dropdown/style/themes/dnb-dropdown-theme-sbanken.scss +87 -0
  23. package/cjs/components/dropdown/style/themes/dnb-dropdown-theme-ui.css +11 -35
  24. package/cjs/components/dropdown/style/themes/dnb-dropdown-theme-ui.min.css +1 -1
  25. package/cjs/components/dropdown/style/themes/dnb-dropdown-theme-ui.scss +10 -32
  26. package/cjs/components/flex/Flex.d.ts +2 -1
  27. package/cjs/components/flex/Flex.js.map +1 -1
  28. package/cjs/components/flex/utils.d.ts +1 -1
  29. package/cjs/components/flex/utils.js +2 -14
  30. package/cjs/components/flex/utils.js.map +1 -1
  31. package/cjs/components/form-label/FormLabel.d.ts +31 -58
  32. package/cjs/components/form-label/FormLabel.js +34 -83
  33. package/cjs/components/form-label/FormLabel.js.map +1 -1
  34. package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.css +2 -2
  35. package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
  36. package/cjs/components/form-label/style/themes/dnb-form-label-theme-ui.scss +1 -1
  37. package/cjs/components/form-row/style/dnb-form-row.css +0 -1
  38. package/cjs/components/form-row/style/dnb-form-row.min.css +1 -1
  39. package/cjs/components/global-status/GlobalStatus.js +3 -2
  40. package/cjs/components/global-status/GlobalStatus.js.map +1 -1
  41. package/cjs/components/global-status/style/dnb-global-status.css +2 -4
  42. package/cjs/components/global-status/style/dnb-global-status.min.css +1 -1
  43. package/cjs/components/global-status/style/dnb-global-status.scss +9 -10
  44. package/cjs/components/grid/Grid.d.ts +2 -1
  45. package/cjs/components/grid/Grid.js.map +1 -1
  46. package/cjs/components/input/style/dnb-input.css +4 -2
  47. package/cjs/components/input/style/dnb-input.min.css +1 -1
  48. package/cjs/components/input/style/dnb-input.scss +9 -2
  49. package/cjs/components/input/style/themes/dnb-input-theme-sbanken.css +1 -1
  50. package/cjs/components/input/style/themes/dnb-input-theme-sbanken.min.css +1 -1
  51. package/cjs/components/input/style/themes/dnb-input-theme-sbanken.scss +1 -1
  52. package/cjs/components/input/style/themes/dnb-input-theme-ui.css +15 -8
  53. package/cjs/components/input/style/themes/dnb-input-theme-ui.min.css +1 -1
  54. package/cjs/components/input/style/themes/dnb-input-theme-ui.scss +24 -6
  55. package/cjs/components/input-masked/InputMasked.d.ts +0 -1
  56. package/cjs/components/input-masked/InputMasked.js +3 -3
  57. package/cjs/components/input-masked/InputMasked.js.map +1 -1
  58. package/cjs/components/input-masked/InputMaskedHooks.js +4 -4
  59. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  60. package/cjs/components/input-masked/MultiInputMask.d.ts +60 -0
  61. package/cjs/components/input-masked/MultiInputMask.js +159 -0
  62. package/cjs/components/input-masked/MultiInputMask.js.map +1 -0
  63. package/cjs/components/input-masked/TextMask.d.ts +1 -1
  64. package/cjs/components/input-masked/hooks/useHandleCursorPosition.d.ts +7 -0
  65. package/cjs/components/input-masked/hooks/useHandleCursorPosition.js +113 -0
  66. package/cjs/components/input-masked/hooks/useHandleCursorPosition.js.map +1 -0
  67. package/cjs/components/input-masked/hooks/useMultiInputValues.d.ts +8 -0
  68. package/cjs/components/input-masked/hooks/useMultiInputValues.js +37 -0
  69. package/cjs/components/input-masked/hooks/useMultiInputValues.js.map +1 -0
  70. package/cjs/components/input-masked/index.d.ts +2 -0
  71. package/cjs/components/input-masked/index.js +21 -1
  72. package/cjs/components/input-masked/index.js.map +1 -1
  73. package/cjs/components/input-masked/style/dnb-input-masked.css +57 -0
  74. package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
  75. package/cjs/components/input-masked/style/dnb-input-masked.scss +73 -0
  76. package/cjs/components/lib.d.ts +13 -7
  77. package/cjs/components/modal/parts/ModalInner.d.ts +1 -6
  78. package/cjs/components/modal/parts/ModalInner.js +6 -6
  79. package/cjs/components/modal/parts/ModalInner.js.map +1 -1
  80. package/cjs/components/number-format/NumberUtils.js +15 -5
  81. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  82. package/cjs/components/radio/style/dnb-radio.css +0 -1
  83. package/cjs/components/radio/style/dnb-radio.min.css +1 -1
  84. package/cjs/components/section/Section.d.ts +43 -17
  85. package/cjs/components/section/Section.js +47 -12
  86. package/cjs/components/section/Section.js.map +1 -1
  87. package/cjs/components/section/style/dnb-section.css +76 -14
  88. package/cjs/components/section/style/dnb-section.min.css +7 -1
  89. package/cjs/components/section/style/dnb-section.scss +78 -26
  90. package/cjs/components/section/style/themes/dnb-section-theme-sbanken.css +21 -26
  91. package/cjs/components/section/style/themes/dnb-section-theme-sbanken.min.css +3 -1
  92. package/cjs/components/section/style/themes/dnb-section-theme-sbanken.scss +19 -33
  93. package/cjs/components/section/style/themes/dnb-section-theme-ui.css +44 -57
  94. package/cjs/components/section/style/themes/dnb-section-theme-ui.min.css +3 -1
  95. package/cjs/components/section/style/themes/dnb-section-theme-ui.scss +48 -80
  96. package/cjs/components/space/Space.js +10 -11
  97. package/cjs/components/space/Space.js.map +1 -1
  98. package/cjs/components/space/SpacingHelper.d.ts +1 -3
  99. package/cjs/components/space/SpacingHelper.js +6 -0
  100. package/cjs/components/space/SpacingHelper.js.map +1 -1
  101. package/cjs/components/space/SpacingUtils.d.ts +9 -2
  102. package/cjs/components/space/SpacingUtils.js +73 -10
  103. package/cjs/components/space/SpacingUtils.js.map +1 -1
  104. package/cjs/components/space/style/dnb-space.css +36 -0
  105. package/cjs/components/space/style/dnb-space.min.css +1 -1
  106. package/cjs/components/space/style/dnb-space.scss +33 -0
  107. package/cjs/components/space/types.d.ts +8 -1
  108. package/cjs/components/space/types.js.map +1 -1
  109. package/cjs/components/tabs/Tabs.d.ts +4 -1
  110. package/cjs/components/tabs/TabsContentWrapper.js +7 -3
  111. package/cjs/components/tabs/TabsContentWrapper.js.map +1 -1
  112. package/cjs/components/tag/Tag.d.ts +2 -1
  113. package/cjs/components/textarea/style/dnb-textarea.css +4 -0
  114. package/cjs/components/textarea/style/dnb-textarea.min.css +1 -1
  115. package/cjs/components/textarea/style/dnb-textarea.scss +9 -0
  116. package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +2 -1
  117. package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -1
  118. package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +2 -1
  119. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.css +1 -1
  120. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  121. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.scss +1 -1
  122. package/cjs/components/toggle-button/ToggleButton.d.ts +1 -1
  123. package/cjs/components/toggle-button/style/dnb-toggle-button.css +0 -1
  124. package/cjs/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  125. package/cjs/components/upload/Upload.js +14 -3
  126. package/cjs/components/upload/Upload.js.map +1 -1
  127. package/cjs/elements/Element.d.ts +2 -1
  128. package/cjs/elements/Link.d.ts +2 -1
  129. package/cjs/elements/blockquote/Blockquote.d.ts +2 -1
  130. package/cjs/elements/code/Code.d.ts +2 -1
  131. package/cjs/elements/div/Div.d.ts +2 -1
  132. package/cjs/elements/hr/style/dnb-hr.scss +1 -1
  133. package/cjs/elements/img/Img.js.map +1 -1
  134. package/cjs/elements/lib.d.ts +26 -10
  135. package/cjs/elements/lists/Dd.d.ts +2 -1
  136. package/cjs/elements/lists/Dt.d.ts +2 -1
  137. package/cjs/elements/span/Span.d.ts +2 -1
  138. package/cjs/elements/typography/H.d.ts +2 -1
  139. package/cjs/elements/typography/H.js.map +1 -1
  140. package/cjs/extensions/forms/DataContext/Context.d.ts +2 -0
  141. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  142. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +1 -1
  143. package/cjs/extensions/forms/DataContext/Provider/Provider.js +35 -20
  144. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  145. package/cjs/extensions/forms/Field/Number/Number.js +5 -1
  146. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  147. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +10 -11
  148. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  149. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +6 -3
  150. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  151. package/cjs/extensions/forms/Field/Selection/Selection.js +10 -7
  152. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  153. package/cjs/extensions/forms/Field/String/String.d.ts +1 -0
  154. package/cjs/extensions/forms/Field/String/String.js +27 -50
  155. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  156. package/cjs/extensions/forms/Field/Toggle/Toggle.js +24 -26
  157. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  158. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -0
  159. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +4 -3
  160. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  161. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +0 -1
  162. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  163. package/cjs/extensions/forms/Form/Handler/Handler.d.ts +7 -2
  164. package/cjs/extensions/forms/Form/Handler/Handler.js +5 -3
  165. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  166. package/cjs/extensions/forms/constants/countries.d.ts +11 -2
  167. package/cjs/extensions/forms/constants/countries.js +1943 -959
  168. package/cjs/extensions/forms/constants/countries.js.map +1 -1
  169. package/cjs/extensions/forms/hooks/useDataValue.js +3 -0
  170. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  171. package/cjs/extensions/forms/style/dnb-forms.css +0 -1
  172. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  173. package/cjs/extensions/forms/types.d.ts +2 -0
  174. package/cjs/extensions/forms/types.js.map +1 -1
  175. package/cjs/extensions/payment-card/PaymentCard.d.ts +6 -3
  176. package/cjs/extensions/payment-card/PaymentCard.js +53 -36
  177. package/cjs/extensions/payment-card/PaymentCard.js.map +1 -1
  178. package/cjs/extensions/payment-card/icons/index.js +11 -7
  179. package/cjs/extensions/payment-card/icons/index.js.map +1 -1
  180. package/cjs/extensions/payment-card/style/dnb-payment-card.css +3 -0
  181. package/cjs/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  182. package/cjs/extensions/payment-card/style/dnb-payment-card.scss +4 -0
  183. package/cjs/fragments/drawer-list/style/dnb-drawer-list.scss +6 -3
  184. package/cjs/fragments/drawer-list/style/themes/dnb-drawer-list-theme-sbanken.scss +182 -0
  185. package/cjs/fragments/drawer-list/style/themes/dnb-drawer-list-theme-ui.scss +2 -5
  186. package/cjs/fragments/lib.d.ts +2 -1
  187. package/cjs/fragments/scroll-view/ScrollView.d.ts +2 -1
  188. package/cjs/shared/Context.d.ts +2 -0
  189. package/cjs/shared/Context.js.map +1 -1
  190. package/cjs/shared/Eufemia.d.ts +1 -1
  191. package/cjs/shared/Eufemia.js +2 -2
  192. package/cjs/shared/Eufemia.js.map +1 -1
  193. package/cjs/shared/component-helper.d.ts +1 -1
  194. package/cjs/shared/component-helper.js +10 -25
  195. package/cjs/shared/component-helper.js.map +1 -1
  196. package/cjs/shared/helpers/InteractionInvalidation.d.ts +1 -1
  197. package/cjs/shared/helpers/InteractionInvalidation.js +2 -2
  198. package/cjs/shared/helpers/InteractionInvalidation.js.map +1 -1
  199. package/cjs/shared/helpers/filterProps.d.ts +14 -0
  200. package/cjs/shared/helpers/filterProps.js +39 -0
  201. package/cjs/shared/helpers/filterProps.js.map +1 -0
  202. package/cjs/shared/locales/en-GB.d.ts +6 -0
  203. package/cjs/shared/locales/en-GB.js +8 -2
  204. package/cjs/shared/locales/en-GB.js.map +1 -1
  205. package/cjs/shared/locales/en-US.d.ts +6 -0
  206. package/cjs/shared/locales/index.d.ts +12 -0
  207. package/cjs/shared/locales/nb-NO.d.ts +6 -0
  208. package/cjs/shared/locales/nb-NO.js +8 -2
  209. package/cjs/shared/locales/nb-NO.js.map +1 -1
  210. package/cjs/shared/types.d.ts +7 -1
  211. package/cjs/shared/types.js.map +1 -1
  212. package/cjs/shared/useMedia.d.ts +5 -0
  213. package/cjs/shared/useMedia.js +16 -9
  214. package/cjs/shared/useMedia.js.map +1 -1
  215. package/cjs/shared/useTheme.d.ts +12 -1
  216. package/cjs/shared/useTheme.js +16 -1
  217. package/cjs/shared/useTheme.js.map +1 -1
  218. package/cjs/style/core/helper-classes/skip-link.scss +13 -7
  219. package/cjs/style/core/reset.scss +1 -1
  220. package/cjs/style/core/utilities.scss +16 -5
  221. package/cjs/style/dnb-ui-basis.css +14 -9
  222. package/cjs/style/dnb-ui-basis.min.css +1 -1
  223. package/cjs/style/dnb-ui-basis.scss +1 -1
  224. package/cjs/style/dnb-ui-body.css +1 -1
  225. package/cjs/style/dnb-ui-components.css +224 -28
  226. package/cjs/style/dnb-ui-components.min.css +7 -1
  227. package/cjs/style/dnb-ui-core.css +14 -9
  228. package/cjs/style/dnb-ui-core.min.css +1 -1
  229. package/cjs/style/dnb-ui-elements.css +1 -1
  230. package/cjs/style/dnb-ui-extensions.css +3 -1
  231. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  232. package/cjs/style/dnb-ui-fragments.css +6 -3
  233. package/cjs/style/dnb-ui-fragments.min.css +1 -1
  234. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +7 -1
  235. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  236. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +299 -135
  237. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +11 -3
  238. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
  239. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -1
  240. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  241. package/cjs/style/themes/theme-sbanken/fonts.scss +10 -0
  242. package/cjs/style/themes/theme-sbanken/globals.scss +8 -0
  243. package/cjs/style/themes/theme-sbanken/properties.scss +1 -1
  244. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +14 -1
  245. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  246. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +544 -353
  247. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +12 -4
  248. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
  249. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
  250. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -1
  251. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  252. package/cjs/style/themes/theme-ui/globals.scss +8 -0
  253. package/cjs/style/themes/theme-ui/ui-theme-basis.css +7 -1
  254. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  255. package/cjs/style/themes/theme-ui/ui-theme-components.css +299 -135
  256. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +11 -3
  257. package/cjs/style/themes/theme-ui/ui-theme-elements.css +1 -1
  258. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +3 -1
  259. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  260. package/components/accordion/Accordion.d.ts +2 -3
  261. package/components/anchor/Anchor.d.ts +2 -1
  262. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +16 -16
  263. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  264. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +9 -9
  265. package/components/avatar/Avatar.d.ts +2 -1
  266. package/components/breadcrumb/BreadcrumbItem.js +4 -4
  267. package/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  268. package/components/button/Button.d.ts +4 -3
  269. package/components/date-picker/style/dnb-date-picker.css +0 -1
  270. package/components/date-picker/style/dnb-date-picker.min.css +1 -1
  271. package/components/dialog/parts/DialogBody.js +1 -1
  272. package/components/dialog/parts/DialogBody.js.map +1 -1
  273. package/components/drawer/parts/DrawerBody.js +1 -1
  274. package/components/drawer/parts/DrawerBody.js.map +1 -1
  275. package/components/dropdown/style/dnb-dropdown.css +39 -1
  276. package/components/dropdown/style/dnb-dropdown.min.css +1 -1
  277. package/components/dropdown/style/dnb-dropdown.scss +38 -1
  278. package/components/dropdown/style/themes/dnb-dropdown-theme-sbanken.css +95 -0
  279. package/components/dropdown/style/themes/dnb-dropdown-theme-sbanken.min.css +1 -0
  280. package/components/dropdown/style/themes/dnb-dropdown-theme-sbanken.scss +87 -0
  281. package/components/dropdown/style/themes/dnb-dropdown-theme-ui.css +11 -35
  282. package/components/dropdown/style/themes/dnb-dropdown-theme-ui.min.css +1 -1
  283. package/components/dropdown/style/themes/dnb-dropdown-theme-ui.scss +10 -32
  284. package/components/flex/Flex.d.ts +2 -1
  285. package/components/flex/Flex.js.map +1 -1
  286. package/components/flex/utils.d.ts +1 -1
  287. package/components/flex/utils.js +2 -13
  288. package/components/flex/utils.js.map +1 -1
  289. package/components/form-label/FormLabel.d.ts +31 -58
  290. package/components/form-label/FormLabel.js +34 -82
  291. package/components/form-label/FormLabel.js.map +1 -1
  292. package/components/form-label/style/themes/dnb-form-label-theme-ui.css +2 -2
  293. package/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
  294. package/components/form-label/style/themes/dnb-form-label-theme-ui.scss +1 -1
  295. package/components/form-row/style/dnb-form-row.css +0 -1
  296. package/components/form-row/style/dnb-form-row.min.css +1 -1
  297. package/components/global-status/GlobalStatus.js +3 -2
  298. package/components/global-status/GlobalStatus.js.map +1 -1
  299. package/components/global-status/style/dnb-global-status.css +2 -4
  300. package/components/global-status/style/dnb-global-status.min.css +1 -1
  301. package/components/global-status/style/dnb-global-status.scss +9 -10
  302. package/components/grid/Grid.d.ts +2 -1
  303. package/components/grid/Grid.js.map +1 -1
  304. package/components/input/style/dnb-input.css +4 -2
  305. package/components/input/style/dnb-input.min.css +1 -1
  306. package/components/input/style/dnb-input.scss +9 -2
  307. package/components/input/style/themes/dnb-input-theme-sbanken.css +1 -1
  308. package/components/input/style/themes/dnb-input-theme-sbanken.min.css +1 -1
  309. package/components/input/style/themes/dnb-input-theme-sbanken.scss +1 -1
  310. package/components/input/style/themes/dnb-input-theme-ui.css +15 -8
  311. package/components/input/style/themes/dnb-input-theme-ui.min.css +1 -1
  312. package/components/input/style/themes/dnb-input-theme-ui.scss +24 -6
  313. package/components/input-masked/InputMasked.d.ts +0 -1
  314. package/components/input-masked/InputMasked.js +2 -2
  315. package/components/input-masked/InputMasked.js.map +1 -1
  316. package/components/input-masked/InputMaskedHooks.js +5 -5
  317. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  318. package/components/input-masked/MultiInputMask.d.ts +60 -0
  319. package/components/input-masked/MultiInputMask.js +148 -0
  320. package/components/input-masked/MultiInputMask.js.map +1 -0
  321. package/components/input-masked/TextMask.d.ts +1 -1
  322. package/components/input-masked/hooks/useHandleCursorPosition.d.ts +7 -0
  323. package/components/input-masked/hooks/useHandleCursorPosition.js +106 -0
  324. package/components/input-masked/hooks/useHandleCursorPosition.js.map +1 -0
  325. package/components/input-masked/hooks/useMultiInputValues.d.ts +8 -0
  326. package/components/input-masked/hooks/useMultiInputValues.js +29 -0
  327. package/components/input-masked/hooks/useMultiInputValues.js.map +1 -0
  328. package/components/input-masked/index.d.ts +2 -0
  329. package/components/input-masked/index.js +2 -0
  330. package/components/input-masked/index.js.map +1 -1
  331. package/components/input-masked/style/dnb-input-masked.css +57 -0
  332. package/components/input-masked/style/dnb-input-masked.min.css +1 -1
  333. package/components/input-masked/style/dnb-input-masked.scss +73 -0
  334. package/components/lib.d.ts +13 -7
  335. package/components/modal/parts/ModalInner.d.ts +1 -6
  336. package/components/modal/parts/ModalInner.js +6 -6
  337. package/components/modal/parts/ModalInner.js.map +1 -1
  338. package/components/number-format/NumberUtils.js +15 -5
  339. package/components/number-format/NumberUtils.js.map +1 -1
  340. package/components/radio/style/dnb-radio.css +0 -1
  341. package/components/radio/style/dnb-radio.min.css +1 -1
  342. package/components/section/Section.d.ts +43 -17
  343. package/components/section/Section.js +48 -13
  344. package/components/section/Section.js.map +1 -1
  345. package/components/section/style/dnb-section.css +76 -14
  346. package/components/section/style/dnb-section.min.css +7 -1
  347. package/components/section/style/dnb-section.scss +78 -26
  348. package/components/section/style/themes/dnb-section-theme-sbanken.css +21 -26
  349. package/components/section/style/themes/dnb-section-theme-sbanken.min.css +3 -1
  350. package/components/section/style/themes/dnb-section-theme-sbanken.scss +19 -33
  351. package/components/section/style/themes/dnb-section-theme-ui.css +44 -57
  352. package/components/section/style/themes/dnb-section-theme-ui.min.css +3 -1
  353. package/components/section/style/themes/dnb-section-theme-ui.scss +48 -80
  354. package/components/space/Space.js +11 -12
  355. package/components/space/Space.js.map +1 -1
  356. package/components/space/SpacingHelper.d.ts +1 -3
  357. package/components/space/SpacingHelper.js +1 -2
  358. package/components/space/SpacingHelper.js.map +1 -1
  359. package/components/space/SpacingUtils.d.ts +9 -2
  360. package/components/space/SpacingUtils.js +70 -9
  361. package/components/space/SpacingUtils.js.map +1 -1
  362. package/components/space/style/dnb-space.css +36 -0
  363. package/components/space/style/dnb-space.min.css +1 -1
  364. package/components/space/style/dnb-space.scss +33 -0
  365. package/components/space/types.d.ts +8 -1
  366. package/components/space/types.js.map +1 -1
  367. package/components/tabs/Tabs.d.ts +4 -1
  368. package/components/tabs/TabsContentWrapper.js +7 -3
  369. package/components/tabs/TabsContentWrapper.js.map +1 -1
  370. package/components/tag/Tag.d.ts +2 -1
  371. package/components/textarea/style/dnb-textarea.css +4 -0
  372. package/components/textarea/style/dnb-textarea.min.css +1 -1
  373. package/components/textarea/style/dnb-textarea.scss +9 -0
  374. package/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +2 -1
  375. package/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -1
  376. package/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +2 -1
  377. package/components/textarea/style/themes/dnb-textarea-theme-ui.css +1 -1
  378. package/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  379. package/components/textarea/style/themes/dnb-textarea-theme-ui.scss +1 -1
  380. package/components/toggle-button/ToggleButton.d.ts +1 -1
  381. package/components/toggle-button/style/dnb-toggle-button.css +0 -1
  382. package/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  383. package/components/upload/Upload.js +14 -3
  384. package/components/upload/Upload.js.map +1 -1
  385. package/elements/Element.d.ts +2 -1
  386. package/elements/Link.d.ts +2 -1
  387. package/elements/blockquote/Blockquote.d.ts +2 -1
  388. package/elements/code/Code.d.ts +2 -1
  389. package/elements/div/Div.d.ts +2 -1
  390. package/elements/hr/style/dnb-hr.scss +1 -1
  391. package/elements/img/Img.js.map +1 -1
  392. package/elements/lib.d.ts +26 -10
  393. package/elements/lists/Dd.d.ts +2 -1
  394. package/elements/lists/Dt.d.ts +2 -1
  395. package/elements/span/Span.d.ts +2 -1
  396. package/elements/typography/H.d.ts +2 -1
  397. package/elements/typography/H.js.map +1 -1
  398. package/es/components/accordion/Accordion.d.ts +2 -3
  399. package/es/components/anchor/Anchor.d.ts +2 -1
  400. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +16 -16
  401. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  402. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +9 -9
  403. package/es/components/avatar/Avatar.d.ts +2 -1
  404. package/es/components/breadcrumb/BreadcrumbItem.js +4 -4
  405. package/es/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  406. package/es/components/button/Button.d.ts +4 -3
  407. package/es/components/date-picker/style/dnb-date-picker.css +0 -1
  408. package/es/components/date-picker/style/dnb-date-picker.min.css +1 -1
  409. package/es/components/dialog/parts/DialogBody.js +1 -1
  410. package/es/components/dialog/parts/DialogBody.js.map +1 -1
  411. package/es/components/drawer/parts/DrawerBody.js +1 -1
  412. package/es/components/drawer/parts/DrawerBody.js.map +1 -1
  413. package/es/components/dropdown/style/dnb-dropdown.css +39 -1
  414. package/es/components/dropdown/style/dnb-dropdown.min.css +1 -1
  415. package/es/components/dropdown/style/dnb-dropdown.scss +38 -1
  416. package/es/components/dropdown/style/themes/dnb-dropdown-theme-sbanken.css +95 -0
  417. package/es/components/dropdown/style/themes/dnb-dropdown-theme-sbanken.min.css +1 -0
  418. package/es/components/dropdown/style/themes/dnb-dropdown-theme-sbanken.scss +87 -0
  419. package/es/components/dropdown/style/themes/dnb-dropdown-theme-ui.css +11 -35
  420. package/es/components/dropdown/style/themes/dnb-dropdown-theme-ui.min.css +1 -1
  421. package/es/components/dropdown/style/themes/dnb-dropdown-theme-ui.scss +10 -32
  422. package/es/components/flex/Flex.d.ts +2 -1
  423. package/es/components/flex/Flex.js +3 -1
  424. package/es/components/flex/Flex.js.map +1 -1
  425. package/es/components/flex/utils.d.ts +1 -1
  426. package/es/components/flex/utils.js +2 -13
  427. package/es/components/flex/utils.js.map +1 -1
  428. package/es/components/form-label/FormLabel.d.ts +31 -58
  429. package/es/components/form-label/FormLabel.js +34 -82
  430. package/es/components/form-label/FormLabel.js.map +1 -1
  431. package/es/components/form-label/style/themes/dnb-form-label-theme-ui.css +2 -2
  432. package/es/components/form-label/style/themes/dnb-form-label-theme-ui.min.css +1 -1
  433. package/es/components/form-label/style/themes/dnb-form-label-theme-ui.scss +1 -1
  434. package/es/components/form-row/style/dnb-form-row.css +0 -1
  435. package/es/components/form-row/style/dnb-form-row.min.css +1 -1
  436. package/es/components/global-status/GlobalStatus.js +3 -2
  437. package/es/components/global-status/GlobalStatus.js.map +1 -1
  438. package/es/components/global-status/style/dnb-global-status.css +2 -4
  439. package/es/components/global-status/style/dnb-global-status.min.css +1 -1
  440. package/es/components/global-status/style/dnb-global-status.scss +9 -10
  441. package/es/components/grid/Grid.d.ts +2 -1
  442. package/es/components/grid/Grid.js +3 -1
  443. package/es/components/grid/Grid.js.map +1 -1
  444. package/es/components/input/style/dnb-input.css +4 -2
  445. package/es/components/input/style/dnb-input.min.css +1 -1
  446. package/es/components/input/style/dnb-input.scss +9 -2
  447. package/es/components/input/style/themes/dnb-input-theme-sbanken.css +1 -1
  448. package/es/components/input/style/themes/dnb-input-theme-sbanken.min.css +1 -1
  449. package/es/components/input/style/themes/dnb-input-theme-sbanken.scss +1 -1
  450. package/es/components/input/style/themes/dnb-input-theme-ui.css +15 -8
  451. package/es/components/input/style/themes/dnb-input-theme-ui.min.css +1 -1
  452. package/es/components/input/style/themes/dnb-input-theme-ui.scss +24 -6
  453. package/es/components/input-masked/InputMasked.d.ts +0 -1
  454. package/es/components/input-masked/InputMasked.js +2 -2
  455. package/es/components/input-masked/InputMasked.js.map +1 -1
  456. package/es/components/input-masked/InputMaskedHooks.js +5 -5
  457. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  458. package/es/components/input-masked/MultiInputMask.d.ts +60 -0
  459. package/es/components/input-masked/MultiInputMask.js +145 -0
  460. package/es/components/input-masked/MultiInputMask.js.map +1 -0
  461. package/es/components/input-masked/TextMask.d.ts +1 -1
  462. package/es/components/input-masked/hooks/useHandleCursorPosition.d.ts +7 -0
  463. package/es/components/input-masked/hooks/useHandleCursorPosition.js +105 -0
  464. package/es/components/input-masked/hooks/useHandleCursorPosition.js.map +1 -0
  465. package/es/components/input-masked/hooks/useMultiInputValues.d.ts +8 -0
  466. package/es/components/input-masked/hooks/useMultiInputValues.js +28 -0
  467. package/es/components/input-masked/hooks/useMultiInputValues.js.map +1 -0
  468. package/es/components/input-masked/index.d.ts +2 -0
  469. package/es/components/input-masked/index.js +2 -0
  470. package/es/components/input-masked/index.js.map +1 -1
  471. package/es/components/input-masked/style/dnb-input-masked.css +57 -0
  472. package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
  473. package/es/components/input-masked/style/dnb-input-masked.scss +73 -0
  474. package/es/components/lib.d.ts +13 -7
  475. package/es/components/modal/parts/ModalInner.d.ts +1 -6
  476. package/es/components/modal/parts/ModalInner.js +6 -6
  477. package/es/components/modal/parts/ModalInner.js.map +1 -1
  478. package/es/components/number-format/NumberUtils.js +15 -5
  479. package/es/components/number-format/NumberUtils.js.map +1 -1
  480. package/es/components/radio/style/dnb-radio.css +0 -1
  481. package/es/components/radio/style/dnb-radio.min.css +1 -1
  482. package/es/components/section/Section.d.ts +43 -17
  483. package/es/components/section/Section.js +48 -13
  484. package/es/components/section/Section.js.map +1 -1
  485. package/es/components/section/style/dnb-section.css +76 -14
  486. package/es/components/section/style/dnb-section.min.css +7 -1
  487. package/es/components/section/style/dnb-section.scss +78 -26
  488. package/es/components/section/style/themes/dnb-section-theme-sbanken.css +21 -26
  489. package/es/components/section/style/themes/dnb-section-theme-sbanken.min.css +3 -1
  490. package/es/components/section/style/themes/dnb-section-theme-sbanken.scss +19 -33
  491. package/es/components/section/style/themes/dnb-section-theme-ui.css +44 -57
  492. package/es/components/section/style/themes/dnb-section-theme-ui.min.css +3 -1
  493. package/es/components/section/style/themes/dnb-section-theme-ui.scss +48 -80
  494. package/es/components/space/Space.js +11 -12
  495. package/es/components/space/Space.js.map +1 -1
  496. package/es/components/space/SpacingHelper.d.ts +1 -3
  497. package/es/components/space/SpacingHelper.js +1 -2
  498. package/es/components/space/SpacingHelper.js.map +1 -1
  499. package/es/components/space/SpacingUtils.d.ts +9 -2
  500. package/es/components/space/SpacingUtils.js +70 -9
  501. package/es/components/space/SpacingUtils.js.map +1 -1
  502. package/es/components/space/style/dnb-space.css +36 -0
  503. package/es/components/space/style/dnb-space.min.css +1 -1
  504. package/es/components/space/style/dnb-space.scss +33 -0
  505. package/es/components/space/types.d.ts +8 -1
  506. package/es/components/space/types.js.map +1 -1
  507. package/es/components/tabs/Tabs.d.ts +4 -1
  508. package/es/components/tabs/TabsContentWrapper.js +7 -3
  509. package/es/components/tabs/TabsContentWrapper.js.map +1 -1
  510. package/es/components/tag/Tag.d.ts +2 -1
  511. package/es/components/textarea/style/dnb-textarea.css +4 -0
  512. package/es/components/textarea/style/dnb-textarea.min.css +1 -1
  513. package/es/components/textarea/style/dnb-textarea.scss +9 -0
  514. package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +2 -1
  515. package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -1
  516. package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +2 -1
  517. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.css +1 -1
  518. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  519. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.scss +1 -1
  520. package/es/components/toggle-button/ToggleButton.d.ts +1 -1
  521. package/es/components/toggle-button/style/dnb-toggle-button.css +0 -1
  522. package/es/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  523. package/es/components/upload/Upload.js +14 -3
  524. package/es/components/upload/Upload.js.map +1 -1
  525. package/es/elements/Element.d.ts +2 -1
  526. package/es/elements/Link.d.ts +2 -1
  527. package/es/elements/blockquote/Blockquote.d.ts +2 -1
  528. package/es/elements/code/Code.d.ts +2 -1
  529. package/es/elements/div/Div.d.ts +2 -1
  530. package/es/elements/hr/style/dnb-hr.scss +1 -1
  531. package/es/elements/img/Img.js.map +1 -1
  532. package/es/elements/lib.d.ts +26 -10
  533. package/es/elements/lists/Dd.d.ts +2 -1
  534. package/es/elements/lists/Dt.d.ts +2 -1
  535. package/es/elements/span/Span.d.ts +2 -1
  536. package/es/elements/typography/H.d.ts +2 -1
  537. package/es/elements/typography/H.js.map +1 -1
  538. package/es/extensions/forms/DataContext/Context.d.ts +2 -0
  539. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  540. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +1 -1
  541. package/es/extensions/forms/DataContext/Provider/Provider.js +34 -21
  542. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  543. package/es/extensions/forms/Field/Number/Number.js +5 -1
  544. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  545. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +10 -11
  546. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  547. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +7 -4
  548. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  549. package/es/extensions/forms/Field/Selection/Selection.js +11 -8
  550. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  551. package/es/extensions/forms/Field/String/String.d.ts +1 -0
  552. package/es/extensions/forms/Field/String/String.js +27 -50
  553. package/es/extensions/forms/Field/String/String.js.map +1 -1
  554. package/es/extensions/forms/Field/Toggle/Toggle.js +24 -27
  555. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  556. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -0
  557. package/es/extensions/forms/FieldBlock/FieldBlock.js +4 -3
  558. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  559. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +0 -1
  560. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  561. package/es/extensions/forms/Form/Handler/Handler.d.ts +7 -2
  562. package/es/extensions/forms/Form/Handler/Handler.js +5 -3
  563. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  564. package/es/extensions/forms/constants/countries.d.ts +11 -2
  565. package/es/extensions/forms/constants/countries.js +1943 -959
  566. package/es/extensions/forms/constants/countries.js.map +1 -1
  567. package/es/extensions/forms/hooks/useDataValue.js +3 -0
  568. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  569. package/es/extensions/forms/style/dnb-forms.css +0 -1
  570. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  571. package/es/extensions/forms/types.d.ts +2 -0
  572. package/es/extensions/forms/types.js.map +1 -1
  573. package/es/extensions/payment-card/PaymentCard.d.ts +6 -3
  574. package/es/extensions/payment-card/PaymentCard.js +47 -31
  575. package/es/extensions/payment-card/PaymentCard.js.map +1 -1
  576. package/es/extensions/payment-card/icons/index.js +9 -5
  577. package/es/extensions/payment-card/icons/index.js.map +1 -1
  578. package/es/extensions/payment-card/style/dnb-payment-card.css +3 -0
  579. package/es/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  580. package/es/extensions/payment-card/style/dnb-payment-card.scss +4 -0
  581. package/es/fragments/drawer-list/style/dnb-drawer-list.scss +6 -3
  582. package/es/fragments/drawer-list/style/themes/dnb-drawer-list-theme-sbanken.scss +182 -0
  583. package/es/fragments/drawer-list/style/themes/dnb-drawer-list-theme-ui.scss +2 -5
  584. package/es/fragments/lib.d.ts +2 -1
  585. package/es/fragments/scroll-view/ScrollView.d.ts +2 -1
  586. package/es/shared/Context.d.ts +2 -0
  587. package/es/shared/Context.js.map +1 -1
  588. package/es/shared/Eufemia.d.ts +1 -1
  589. package/es/shared/Eufemia.js +2 -2
  590. package/es/shared/Eufemia.js.map +1 -1
  591. package/es/shared/component-helper.d.ts +1 -1
  592. package/es/shared/component-helper.js +4 -20
  593. package/es/shared/component-helper.js.map +1 -1
  594. package/es/shared/helpers/InteractionInvalidation.d.ts +1 -1
  595. package/es/shared/helpers/InteractionInvalidation.js +2 -2
  596. package/es/shared/helpers/InteractionInvalidation.js.map +1 -1
  597. package/es/shared/helpers/filterProps.d.ts +14 -0
  598. package/es/shared/helpers/filterProps.js +30 -0
  599. package/es/shared/helpers/filterProps.js.map +1 -0
  600. package/es/shared/locales/en-GB.d.ts +6 -0
  601. package/es/shared/locales/en-GB.js +8 -2
  602. package/es/shared/locales/en-GB.js.map +1 -1
  603. package/es/shared/locales/en-US.d.ts +6 -0
  604. package/es/shared/locales/index.d.ts +12 -0
  605. package/es/shared/locales/nb-NO.d.ts +6 -0
  606. package/es/shared/locales/nb-NO.js +8 -2
  607. package/es/shared/locales/nb-NO.js.map +1 -1
  608. package/es/shared/types.d.ts +7 -1
  609. package/es/shared/types.js.map +1 -1
  610. package/es/shared/useMedia.d.ts +5 -0
  611. package/es/shared/useMedia.js +16 -9
  612. package/es/shared/useMedia.js.map +1 -1
  613. package/es/shared/useTheme.d.ts +12 -1
  614. package/es/shared/useTheme.js +14 -1
  615. package/es/shared/useTheme.js.map +1 -1
  616. package/es/style/core/helper-classes/skip-link.scss +13 -7
  617. package/es/style/core/reset.scss +1 -1
  618. package/es/style/core/utilities.scss +16 -5
  619. package/es/style/dnb-ui-basis.css +14 -9
  620. package/es/style/dnb-ui-basis.min.css +1 -1
  621. package/es/style/dnb-ui-basis.scss +1 -1
  622. package/es/style/dnb-ui-body.css +1 -1
  623. package/es/style/dnb-ui-components.css +224 -28
  624. package/es/style/dnb-ui-components.min.css +7 -1
  625. package/es/style/dnb-ui-core.css +14 -9
  626. package/es/style/dnb-ui-core.min.css +1 -1
  627. package/es/style/dnb-ui-elements.css +1 -1
  628. package/es/style/dnb-ui-extensions.css +3 -1
  629. package/es/style/dnb-ui-extensions.min.css +1 -1
  630. package/es/style/dnb-ui-fragments.css +6 -3
  631. package/es/style/dnb-ui-fragments.min.css +1 -1
  632. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +7 -1
  633. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  634. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +299 -135
  635. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +11 -3
  636. package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
  637. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -1
  638. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  639. package/es/style/themes/theme-sbanken/fonts.scss +10 -0
  640. package/es/style/themes/theme-sbanken/globals.scss +8 -0
  641. package/es/style/themes/theme-sbanken/properties.scss +1 -1
  642. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +14 -1
  643. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  644. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +544 -353
  645. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +12 -4
  646. package/es/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
  647. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
  648. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -1
  649. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  650. package/es/style/themes/theme-ui/globals.scss +8 -0
  651. package/es/style/themes/theme-ui/ui-theme-basis.css +7 -1
  652. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  653. package/es/style/themes/theme-ui/ui-theme-components.css +299 -135
  654. package/es/style/themes/theme-ui/ui-theme-components.min.css +11 -3
  655. package/es/style/themes/theme-ui/ui-theme-elements.css +1 -1
  656. package/es/style/themes/theme-ui/ui-theme-extensions.css +3 -1
  657. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  658. package/esm/dnb-ui-basis.min.mjs +1 -1
  659. package/esm/dnb-ui-components.min.mjs +1 -1
  660. package/esm/dnb-ui-elements.min.mjs +1 -1
  661. package/esm/dnb-ui-extensions.min.mjs +3 -3
  662. package/esm/dnb-ui-lib.min.mjs +1 -1
  663. package/extensions/forms/DataContext/Context.d.ts +2 -0
  664. package/extensions/forms/DataContext/Context.js.map +1 -1
  665. package/extensions/forms/DataContext/Provider/Provider.d.ts +1 -1
  666. package/extensions/forms/DataContext/Provider/Provider.js +32 -20
  667. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  668. package/extensions/forms/Field/Number/Number.js +5 -1
  669. package/extensions/forms/Field/Number/Number.js.map +1 -1
  670. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +10 -11
  671. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  672. package/extensions/forms/Field/SelectCountry/SelectCountry.js +7 -4
  673. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  674. package/extensions/forms/Field/Selection/Selection.js +11 -8
  675. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  676. package/extensions/forms/Field/String/String.d.ts +1 -0
  677. package/extensions/forms/Field/String/String.js +27 -50
  678. package/extensions/forms/Field/String/String.js.map +1 -1
  679. package/extensions/forms/Field/Toggle/Toggle.js +25 -27
  680. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  681. package/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -0
  682. package/extensions/forms/FieldBlock/FieldBlock.js +4 -3
  683. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  684. package/extensions/forms/FieldBlock/style/dnb-field-block.css +0 -1
  685. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  686. package/extensions/forms/Form/Handler/Handler.d.ts +7 -2
  687. package/extensions/forms/Form/Handler/Handler.js +5 -3
  688. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  689. package/extensions/forms/constants/countries.d.ts +11 -2
  690. package/extensions/forms/constants/countries.js +1943 -959
  691. package/extensions/forms/constants/countries.js.map +1 -1
  692. package/extensions/forms/hooks/useDataValue.js +3 -0
  693. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  694. package/extensions/forms/style/dnb-forms.css +0 -1
  695. package/extensions/forms/style/dnb-forms.min.css +1 -1
  696. package/extensions/forms/types.d.ts +2 -0
  697. package/extensions/forms/types.js.map +1 -1
  698. package/extensions/payment-card/PaymentCard.d.ts +6 -3
  699. package/extensions/payment-card/PaymentCard.js +53 -36
  700. package/extensions/payment-card/PaymentCard.js.map +1 -1
  701. package/extensions/payment-card/icons/index.js +9 -5
  702. package/extensions/payment-card/icons/index.js.map +1 -1
  703. package/extensions/payment-card/style/dnb-payment-card.css +3 -0
  704. package/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  705. package/extensions/payment-card/style/dnb-payment-card.scss +4 -0
  706. package/fragments/drawer-list/style/dnb-drawer-list.scss +6 -3
  707. package/fragments/drawer-list/style/themes/dnb-drawer-list-theme-sbanken.scss +182 -0
  708. package/fragments/drawer-list/style/themes/dnb-drawer-list-theme-ui.scss +2 -5
  709. package/fragments/lib.d.ts +2 -1
  710. package/fragments/scroll-view/ScrollView.d.ts +2 -1
  711. package/package.json +1 -1
  712. package/shared/Context.d.ts +2 -0
  713. package/shared/Context.js.map +1 -1
  714. package/shared/Eufemia.d.ts +1 -1
  715. package/shared/Eufemia.js +2 -2
  716. package/shared/Eufemia.js.map +1 -1
  717. package/shared/component-helper.d.ts +1 -1
  718. package/shared/component-helper.js +4 -23
  719. package/shared/component-helper.js.map +1 -1
  720. package/shared/helpers/InteractionInvalidation.d.ts +1 -1
  721. package/shared/helpers/InteractionInvalidation.js +2 -2
  722. package/shared/helpers/InteractionInvalidation.js.map +1 -1
  723. package/shared/helpers/filterProps.d.ts +14 -0
  724. package/shared/helpers/filterProps.js +33 -0
  725. package/shared/helpers/filterProps.js.map +1 -0
  726. package/shared/locales/en-GB.d.ts +6 -0
  727. package/shared/locales/en-GB.js +8 -2
  728. package/shared/locales/en-GB.js.map +1 -1
  729. package/shared/locales/en-US.d.ts +6 -0
  730. package/shared/locales/index.d.ts +12 -0
  731. package/shared/locales/nb-NO.d.ts +6 -0
  732. package/shared/locales/nb-NO.js +8 -2
  733. package/shared/locales/nb-NO.js.map +1 -1
  734. package/shared/types.d.ts +7 -1
  735. package/shared/types.js.map +1 -1
  736. package/shared/useMedia.d.ts +5 -0
  737. package/shared/useMedia.js +16 -9
  738. package/shared/useMedia.js.map +1 -1
  739. package/shared/useTheme.d.ts +12 -1
  740. package/shared/useTheme.js +14 -1
  741. package/shared/useTheme.js.map +1 -1
  742. package/style/core/helper-classes/skip-link.scss +13 -7
  743. package/style/core/reset.scss +1 -1
  744. package/style/core/utilities.scss +16 -5
  745. package/style/dnb-ui-basis.css +14 -9
  746. package/style/dnb-ui-basis.min.css +1 -1
  747. package/style/dnb-ui-basis.scss +1 -1
  748. package/style/dnb-ui-body.css +1 -1
  749. package/style/dnb-ui-components.css +224 -28
  750. package/style/dnb-ui-components.min.css +7 -1
  751. package/style/dnb-ui-core.css +14 -9
  752. package/style/dnb-ui-core.min.css +1 -1
  753. package/style/dnb-ui-elements.css +1 -1
  754. package/style/dnb-ui-extensions.css +3 -1
  755. package/style/dnb-ui-extensions.min.css +1 -1
  756. package/style/dnb-ui-fragments.css +6 -3
  757. package/style/dnb-ui-fragments.min.css +1 -1
  758. package/style/themes/theme-eiendom/eiendom-theme-basis.css +7 -1
  759. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  760. package/style/themes/theme-eiendom/eiendom-theme-components.css +299 -135
  761. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +11 -3
  762. package/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
  763. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -1
  764. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  765. package/style/themes/theme-sbanken/fonts.scss +10 -0
  766. package/style/themes/theme-sbanken/globals.scss +8 -0
  767. package/style/themes/theme-sbanken/properties.scss +1 -1
  768. package/style/themes/theme-sbanken/sbanken-theme-basis.css +14 -1
  769. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  770. package/style/themes/theme-sbanken/sbanken-theme-components.css +544 -353
  771. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +12 -4
  772. package/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
  773. package/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
  774. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -1
  775. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  776. package/style/themes/theme-ui/globals.scss +8 -0
  777. package/style/themes/theme-ui/ui-theme-basis.css +7 -1
  778. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  779. package/style/themes/theme-ui/ui-theme-components.css +299 -135
  780. package/style/themes/theme-ui/ui-theme-components.min.css +11 -3
  781. package/style/themes/theme-ui/ui-theme-elements.css +1 -1
  782. package/style/themes/theme-ui/ui-theme-extensions.css +3 -1
  783. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  784. package/umd/dnb-ui-basis.min.js +1 -1
  785. package/umd/dnb-ui-components.min.js +1 -1
  786. package/umd/dnb-ui-elements.min.js +1 -1
  787. package/umd/dnb-ui-extensions.min.js +3 -3
  788. package/umd/dnb-ui-lib.min.js +1 -1
  789. package/cjs/extensions/payment-card/icons/CardIn.d.ts +0 -2
  790. package/cjs/extensions/payment-card/icons/CardIn.js +0 -26
  791. package/cjs/extensions/payment-card/icons/CardIn.js.map +0 -1
  792. package/cjs/extensions/payment-card/icons/Padlock.d.ts +0 -3
  793. package/cjs/extensions/payment-card/icons/Padlock.js +0 -26
  794. package/cjs/extensions/payment-card/icons/Padlock.js.map +0 -1
  795. package/es/extensions/payment-card/icons/CardIn.d.ts +0 -2
  796. package/es/extensions/payment-card/icons/CardIn.js +0 -18
  797. package/es/extensions/payment-card/icons/CardIn.js.map +0 -1
  798. package/es/extensions/payment-card/icons/Padlock.d.ts +0 -3
  799. package/es/extensions/payment-card/icons/Padlock.js +0 -18
  800. package/es/extensions/payment-card/icons/Padlock.js.map +0 -1
  801. package/extensions/payment-card/icons/CardIn.d.ts +0 -2
  802. package/extensions/payment-card/icons/CardIn.js +0 -18
  803. package/extensions/payment-card/icons/CardIn.js.map +0 -1
  804. package/extensions/payment-card/icons/Padlock.d.ts +0 -3
  805. package/extensions/payment-card/icons/Padlock.js +0 -18
  806. package/extensions/payment-card/icons/Padlock.js.map +0 -1
@@ -7,7 +7,7 @@
7
7
  */
8
8
  .dnb-textarea__textarea {
9
9
  color: var(--color-black);
10
- background-color: var(--color-white);
10
+ background-color: var(--textarea-background-color);
11
11
  }
12
12
  .dnb-textarea__textarea ::selection {
13
13
  background-color: var(--color-mint-green);
@@ -1 +1 @@
1
- .dnb-textarea__textarea{background-color:var(--color-white);color:var(--color-black)}.dnb-textarea__textarea ::selection{background-color:var(--color-mint-green);color:var(--color-black);text-shadow:none}.dnb-textarea__placeholder{color:var(--color-black-55)}.dnb-textarea__textarea:not([disabled]):not(.dnb-textarea--disabled):focus~.dnb-textarea__state,.dnb-textarea__textarea:not([disabled]):not(.dnb-textarea--disabled):hover~.dnb-textarea__state{box-shadow:0 0 0 .125rem var(--color-emerald-green)}.dnb-textarea--disabled .dnb-textarea__textarea,.dnb-textarea__textarea[disabled]{background-color:var(--color-black-3);color:var(--color-black-55)}.dnb-textarea--disabled .dnb-textarea__state,.dnb-textarea__textarea[disabled]~.dnb-textarea__state{background-color:var(--color-black-3);box-shadow:0 0 0 .0625rem var(--color-black-55)}.dnb-textarea__status--error:not(.dnb-textarea--focus) .dnb-textarea__textarea:not([disabled]):not(.dnb-textarea--disabled),.dnb-textarea__status--error:not(.dnb-textarea--focus) .dnb-textarea__textarea:not([disabled]):not(.dnb-textarea--disabled):hover{color:var(--color-fire-red)}.dnb-textarea__status--error:not(.dnb-textarea--focus) .dnb-textarea__textarea:not([disabled]):not(.dnb-textarea--disabled)~.dnb-textarea__state{--border-color:var(--color-fire-red);--border-width:0.0625rem;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-textarea__status--error:not(.dnb-textarea--focus) .dnb-textarea__textarea:not([disabled]):not(.dnb-textarea--disabled):hover~.dnb-textarea__state{--border-color:var(--color-fire-red);--border-width:0.125rem;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}
1
+ .dnb-textarea__textarea{background-color:var(--textarea-background-color);color:var(--color-black)}.dnb-textarea__textarea ::selection{background-color:var(--color-mint-green);color:var(--color-black);text-shadow:none}.dnb-textarea__placeholder{color:var(--color-black-55)}.dnb-textarea__textarea:not([disabled]):not(.dnb-textarea--disabled):focus~.dnb-textarea__state,.dnb-textarea__textarea:not([disabled]):not(.dnb-textarea--disabled):hover~.dnb-textarea__state{box-shadow:0 0 0 .125rem var(--color-emerald-green)}.dnb-textarea--disabled .dnb-textarea__textarea,.dnb-textarea__textarea[disabled]{background-color:var(--color-black-3);color:var(--color-black-55)}.dnb-textarea--disabled .dnb-textarea__state,.dnb-textarea__textarea[disabled]~.dnb-textarea__state{background-color:var(--color-black-3);box-shadow:0 0 0 .0625rem var(--color-black-55)}.dnb-textarea__status--error:not(.dnb-textarea--focus) .dnb-textarea__textarea:not([disabled]):not(.dnb-textarea--disabled),.dnb-textarea__status--error:not(.dnb-textarea--focus) .dnb-textarea__textarea:not([disabled]):not(.dnb-textarea--disabled):hover{color:var(--color-fire-red)}.dnb-textarea__status--error:not(.dnb-textarea--focus) .dnb-textarea__textarea:not([disabled]):not(.dnb-textarea--disabled)~.dnb-textarea__state{--border-color:var(--color-fire-red);--border-width:0.0625rem;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-textarea__status--error:not(.dnb-textarea--focus) .dnb-textarea__textarea:not([disabled]):not(.dnb-textarea--disabled):hover~.dnb-textarea__state{--border-color:var(--color-fire-red);--border-width:0.125rem;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}
@@ -8,7 +8,7 @@
8
8
  .dnb-textarea {
9
9
  &__textarea {
10
10
  color: var(--color-black);
11
- background-color: var(--color-white);
11
+ background-color: var(--textarea-background-color);
12
12
 
13
13
  ::selection {
14
14
  background-color: var(--color-mint-green);
@@ -29,7 +29,7 @@ export interface ToggleButtonProps
29
29
  /**
30
30
  * <em>(required)</em> the text shown in the ToggleButton.
31
31
  */
32
- text?: string;
32
+ text?: React.ReactNode;
33
33
  /**
34
34
  * Use either the `label` property or provide a custom one.
35
35
  */
@@ -97,7 +97,6 @@
97
97
  margin: 0;
98
98
  padding: 0;
99
99
  border: none;
100
- line-height: var(--font-size-basis--em);
101
100
  }
102
101
  .dnb-toggle-button-group .dnb-toggle-button {
103
102
  margin-right: var(--toggle-button-group-margin-right);
@@ -1 +1 @@
1
- .dnb-toggle-button{align-items:center;display:inline-flex;font-size:var(--font-size-small);line-height:var(--line-height-basis)}.dnb-toggle-button__inner{display:inline-flex;flex-direction:column}.dnb-toggle-button__shell{left:0;position:relative;-webkit-user-select:none;user-select:none}.dnb-toggle-button--vertical{align-items:flex-start;flex-direction:column}.dnb-toggle-button__component{align-items:center;display:inline-flex;padding-right:.5rem}.dnb-toggle-button__button.dnb-button--has-text{padding-left:1.5rem;padding-right:1.5rem}.dnb-toggle-button__button .dnb-checkbox{margin-left:-.5rem}.dnb-toggle-button__button .dnb-checkbox__input{pointer-events:none}.dnb-toggle-button__button .dnb-checkbox__button{display:unset}.dnb-toggle-button__button .dnb-checkbox__button,.dnb-toggle-button__button .dnb-checkbox__focus{border-width:.0625rem;height:calc(var(--checkbox-height--medium) - .5rem);width:calc(var(--checkbox-width--medium) - .5rem)}.dnb-toggle-button__button .dnb-checkbox__dot{height:calc(var(--checkbox-height--medium) - 1rem);width:calc(var(--checkbox-width--medium) - 1rem)}.dnb-toggle-button__button .dnb-checkbox__gfx{height:calc(var(--checkbox-height--medium) - .75rem);width:calc(var(--checkbox-width--medium) - .75rem)}.dnb-toggle-button__button .dnb-radio{margin-left:-.5rem}.dnb-toggle-button__button .dnb-radio__input{pointer-events:none}.dnb-toggle-button__button .dnb-radio__button,.dnb-toggle-button__button .dnb-radio__focus{border-width:.0625rem;height:calc(var(--radio-height--medium) - .5rem);width:calc(var(--radio-width--medium) - .5rem)}.dnb-toggle-button__button .dnb-radio__dot{height:calc(var(--radio-height--medium) - 1rem);width:calc(var(--radio-width--medium) - 1rem)}.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):not(:active).dnb-button--secondary,.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):not(:active).dnb-button--secondary:hover{background-color:var(--color-emerald-green);color:var(--color-mint-green)}:not(.dnb-toggle-button-group)>.dnb-form-label+.dnb-toggle-button{vertical-align:top}.dnb-toggle-button-group__suffix{font-size:var(--font-size-basis)}.dnb-toggle-button .dnb-form-status{margin-top:.5rem;order:2}.dnb-toggle-button .dnb-form-label{margin-right:1rem}.dnb-toggle-button-group{--toggle-button-group-margin-right:1rem;--toggle-button-group-margin-bottom:1rem;display:inline-flex}.dnb-toggle-button-group fieldset{border:none;line-height:var(--font-size-basis--em);margin:0;padding:0}.dnb-toggle-button-group .dnb-toggle-button{margin-bottom:var(--toggle-button-group-margin-bottom);margin-right:var(--toggle-button-group-margin-right)}.dnb-toggle-button-group--column .dnb-toggle-button{display:flex;margin-right:0}.dnb-toggle-button-group .dnb-toggle-button:last-of-type{margin-right:0}.dnb-toggle-button-group__shell{display:flex;flex-direction:column}.dnb-toggle-button-group__shell__children{order:1}.dnb-toggle-button-group__shell>.dnb-form-status{order:2;transform:translateY(-.5rem)}.dnb-toggle-button-group .dnb-flex-container{margin-bottom:calc(0px - var(--toggle-button-group-margin-bottom))}.dnb-toggle-button-group .dnb-flex-container--vertical-label{align-items:flex-start}.dnb-toggle-button-group .dnb-flex-container:before{font-size:var(--font-size-basis)}.dnb-toggle-button-group .dnb-alignment-helper{line-height:2.5rem}@media screen and (min-width:40em){.dnb-form-label+.dnb-toggle-button{transform:translateY(-.5rem)}}
1
+ .dnb-toggle-button{align-items:center;display:inline-flex;font-size:var(--font-size-small);line-height:var(--line-height-basis)}.dnb-toggle-button__inner{display:inline-flex;flex-direction:column}.dnb-toggle-button__shell{left:0;position:relative;-webkit-user-select:none;user-select:none}.dnb-toggle-button--vertical{align-items:flex-start;flex-direction:column}.dnb-toggle-button__component{align-items:center;display:inline-flex;padding-right:.5rem}.dnb-toggle-button__button.dnb-button--has-text{padding-left:1.5rem;padding-right:1.5rem}.dnb-toggle-button__button .dnb-checkbox{margin-left:-.5rem}.dnb-toggle-button__button .dnb-checkbox__input{pointer-events:none}.dnb-toggle-button__button .dnb-checkbox__button{display:unset}.dnb-toggle-button__button .dnb-checkbox__button,.dnb-toggle-button__button .dnb-checkbox__focus{border-width:.0625rem;height:calc(var(--checkbox-height--medium) - .5rem);width:calc(var(--checkbox-width--medium) - .5rem)}.dnb-toggle-button__button .dnb-checkbox__dot{height:calc(var(--checkbox-height--medium) - 1rem);width:calc(var(--checkbox-width--medium) - 1rem)}.dnb-toggle-button__button .dnb-checkbox__gfx{height:calc(var(--checkbox-height--medium) - .75rem);width:calc(var(--checkbox-width--medium) - .75rem)}.dnb-toggle-button__button .dnb-radio{margin-left:-.5rem}.dnb-toggle-button__button .dnb-radio__input{pointer-events:none}.dnb-toggle-button__button .dnb-radio__button,.dnb-toggle-button__button .dnb-radio__focus{border-width:.0625rem;height:calc(var(--radio-height--medium) - .5rem);width:calc(var(--radio-width--medium) - .5rem)}.dnb-toggle-button__button .dnb-radio__dot{height:calc(var(--radio-height--medium) - 1rem);width:calc(var(--radio-width--medium) - 1rem)}.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):not(:active).dnb-button--secondary,.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):not(:active).dnb-button--secondary:hover{background-color:var(--color-emerald-green);color:var(--color-mint-green)}:not(.dnb-toggle-button-group)>.dnb-form-label+.dnb-toggle-button{vertical-align:top}.dnb-toggle-button-group__suffix{font-size:var(--font-size-basis)}.dnb-toggle-button .dnb-form-status{margin-top:.5rem;order:2}.dnb-toggle-button .dnb-form-label{margin-right:1rem}.dnb-toggle-button-group{--toggle-button-group-margin-right:1rem;--toggle-button-group-margin-bottom:1rem;display:inline-flex}.dnb-toggle-button-group fieldset{border:none;margin:0;padding:0}.dnb-toggle-button-group .dnb-toggle-button{margin-bottom:var(--toggle-button-group-margin-bottom);margin-right:var(--toggle-button-group-margin-right)}.dnb-toggle-button-group--column .dnb-toggle-button{display:flex;margin-right:0}.dnb-toggle-button-group .dnb-toggle-button:last-of-type{margin-right:0}.dnb-toggle-button-group__shell{display:flex;flex-direction:column}.dnb-toggle-button-group__shell__children{order:1}.dnb-toggle-button-group__shell>.dnb-form-status{order:2;transform:translateY(-.5rem)}.dnb-toggle-button-group .dnb-flex-container{margin-bottom:calc(0px - var(--toggle-button-group-margin-bottom))}.dnb-toggle-button-group .dnb-flex-container--vertical-label{align-items:flex-start}.dnb-toggle-button-group .dnb-flex-container:before{font-size:var(--font-size-basis)}.dnb-toggle-button-group .dnb-alignment-helper{line-height:2.5rem}@media screen and (min-width:40em){.dnb-form-label+.dnb-toggle-button{transform:translateY(-.5rem)}}
@@ -2,7 +2,8 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
4
  var _UploadInfo, _UploadFileInput, _UploadFileList;
5
- const _excluded = ["id", "skeleton", "className", "acceptedFileTypes", "filesAmountLimit", "fileMaxSize", "onChange", "onFileDelete", "title", "text", "fileTypeDescription", "fileSizeDescription", "fileAmountDescription", "fileSizeContent", "buttonText", "loadingText", "errorLargeFile", "errorUnsupportedFile", "errorAmountLimit", "deleteButton", "fileListAriaLabel"];
5
+ const _excluded = ["buttonTextSingular", "textSingular"],
6
+ _excluded2 = ["id", "skeleton", "className", "acceptedFileTypes", "filesAmountLimit", "fileMaxSize", "onChange", "onFileDelete", "title", "text", "fileTypeDescription", "fileSizeDescription", "fileAmountDescription", "fileSizeContent", "buttonText", "loadingText", "errorLargeFile", "errorUnsupportedFile", "errorAmountLimit", "deleteButton", "fileListAriaLabel"];
6
7
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7
8
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
9
  import React from 'react';
@@ -21,9 +22,19 @@ import UploadInfo from './UploadInfo';
21
22
  export { defaultProps };
22
23
  const Upload = localProps => {
23
24
  const context = React.useContext(Context);
25
+ const _context$getTranslati = context.getTranslation(localProps).Upload,
26
+ {
27
+ buttonTextSingular,
28
+ textSingular
29
+ } = _context$getTranslati,
30
+ translations = _objectWithoutProperties(_context$getTranslati, _excluded);
31
+ if ((localProps === null || localProps === void 0 ? void 0 : localProps.filesAmountLimit) === 1) {
32
+ translations.buttonText = buttonTextSingular;
33
+ translations.text = textSingular;
34
+ }
24
35
  const extendedProps = extendPropsWithContext(localProps, defaultProps, {
25
36
  skeleton: context === null || context === void 0 ? void 0 : context.skeleton
26
- }, context.getTranslation(localProps).Upload, context.Upload);
37
+ }, translations, context.Upload);
27
38
  const {
28
39
  id,
29
40
  skeleton,
@@ -47,7 +58,7 @@ const Upload = localProps => {
47
58
  deleteButton,
48
59
  fileListAriaLabel
49
60
  } = extendedProps,
50
- props = _objectWithoutProperties(extendedProps, _excluded);
61
+ props = _objectWithoutProperties(extendedProps, _excluded2);
51
62
  const spacingClasses = createSpacingClasses(props);
52
63
  const {
53
64
  files,
@@ -1 +1 @@
1
- {"version":3,"file":"Upload.js","names":["React","classnames","createSpacingClasses","Provider","Context","extendPropsWithContext","makeUniqueId","UploadFileInput","useUpload","UploadDropzone","UploadContext","defaultProps","verifyFiles","UploadFileList","UploadInfo","Upload","localProps","context","useContext","extendedProps","skeleton","getTranslation","id","className","acceptedFileTypes","filesAmountLimit","fileMaxSize","onChange","onFileDelete","title","text","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","buttonText","loadingText","errorLargeFile","errorUnsupportedFile","errorAmountLimit","deleteButton","fileListAriaLabel","props","_objectWithoutProperties","_excluded","spacingClasses","files","setFiles","setInternalFiles","getExistingFile","filesRef","useRef","useEffect","current","createElement","value","_objectSpread","onInputUpload","_extends","_UploadInfo","_UploadFileInput","_UploadFileList","newFiles","mergedFiles","map","fileItem","file","existingFile","exists","Boolean","verifiedFiles","filter","validFiles","slice","_supportsSpacingProps"],"sources":["../../../../src/components/upload/Upload.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\n\n// Shared\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport Provider from '../../shared/Provider'\nimport Context from '../../shared/Context'\nimport {\n extendPropsWithContext,\n makeUniqueId,\n} from '../../shared/component-helper'\n\n// Internal\nimport UploadFileInput from './UploadFileInput'\nimport useUpload from './useUpload'\nimport UploadDropzone from './UploadDropzone'\nimport { UploadContext, defaultProps } from './UploadContext'\nimport { verifyFiles } from './UploadVerify'\n\nimport type { UploadFile, UploadAllProps } from './types'\nimport UploadFileList from './UploadFileList'\nimport UploadInfo from './UploadInfo'\n\nexport { defaultProps }\n\nconst Upload = (localProps: UploadAllProps) => {\n const context = React.useContext(Context)\n\n const extendedProps = extendPropsWithContext(\n localProps,\n defaultProps,\n { skeleton: context?.skeleton },\n context.getTranslation(localProps).Upload,\n context.Upload\n )\n\n const {\n id,\n skeleton,\n className,\n acceptedFileTypes,\n filesAmountLimit,\n fileMaxSize,\n onChange,\n onFileDelete, // eslint-disable-line\n title, // eslint-disable-line\n text, // eslint-disable-line\n fileTypeDescription, // eslint-disable-line\n fileSizeDescription, // eslint-disable-line\n fileAmountDescription, // eslint-disable-line\n fileSizeContent, // eslint-disable-line\n buttonText, // eslint-disable-line\n loadingText, // eslint-disable-line\n errorLargeFile,\n errorUnsupportedFile,\n errorAmountLimit, // eslint-disable-line\n deleteButton, // eslint-disable-line\n fileListAriaLabel, // eslint-disable-line\n ...props\n } = extendedProps\n\n const spacingClasses = createSpacingClasses(props)\n\n const { files, setFiles, setInternalFiles, getExistingFile } =\n useUpload(id)\n\n const filesRef = React.useRef<UploadFile[]>(files)\n React.useEffect(() => {\n filesRef.current = files\n }) // keep our ref updated on every re-render\n\n return (\n <UploadContext.Provider\n value={{\n ...extendedProps,\n id,\n onInputUpload,\n }}\n >\n <Provider skeleton={skeleton}>\n <UploadDropzone\n className={classnames('dnb-upload', spacingClasses, className)}\n {...props}\n >\n <UploadInfo />\n\n <UploadFileInput />\n\n <UploadFileList />\n </UploadDropzone>\n </Provider>\n </UploadContext.Provider>\n )\n\n function onInputUpload(newFiles: UploadFile[]) {\n const files = filesRef.current\n const mergedFiles = [\n ...files,\n ...newFiles.map((fileItem) => {\n const { file } = fileItem\n\n const existingFile = getExistingFile(file, files)\n\n fileItem.exists = Boolean(existingFile)\n fileItem.id = fileItem.exists ? existingFile.id : makeUniqueId()\n\n return fileItem\n }),\n ]\n\n const verifiedFiles = verifyFiles(\n mergedFiles.filter(({ exists }) => !exists),\n {\n fileMaxSize,\n acceptedFileTypes,\n errorUnsupportedFile,\n errorLargeFile,\n }\n )\n\n const validFiles = [...verifiedFiles].slice(0, filesAmountLimit)\n\n setFiles(validFiles)\n setInternalFiles(mergedFiles)\n\n if (typeof onChange === 'function') {\n onChange({ files: validFiles })\n }\n\n return validFiles\n }\n}\n\nUpload.useUpload = useUpload\n\nUpload._supportsSpacingProps = true\n\nexport default Upload\n"],"mappings":"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"}
1
+ {"version":3,"file":"Upload.js","names":["React","classnames","createSpacingClasses","Provider","Context","extendPropsWithContext","makeUniqueId","UploadFileInput","useUpload","UploadDropzone","UploadContext","defaultProps","verifyFiles","UploadFileList","UploadInfo","Upload","localProps","context","useContext","_context$getTranslati","getTranslation","buttonTextSingular","textSingular","translations","_objectWithoutProperties","_excluded","filesAmountLimit","buttonText","text","extendedProps","skeleton","id","className","acceptedFileTypes","fileMaxSize","onChange","onFileDelete","title","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","loadingText","errorLargeFile","errorUnsupportedFile","errorAmountLimit","deleteButton","fileListAriaLabel","props","_excluded2","spacingClasses","files","setFiles","setInternalFiles","getExistingFile","filesRef","useRef","useEffect","current","createElement","value","_objectSpread","onInputUpload","_extends","_UploadInfo","_UploadFileInput","_UploadFileList","newFiles","mergedFiles","map","fileItem","file","existingFile","exists","Boolean","verifiedFiles","filter","validFiles","slice","_supportsSpacingProps"],"sources":["../../../../src/components/upload/Upload.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\n\n// Shared\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport Provider from '../../shared/Provider'\nimport Context from '../../shared/Context'\nimport {\n extendPropsWithContext,\n makeUniqueId,\n} from '../../shared/component-helper'\n\n// Internal\nimport UploadFileInput from './UploadFileInput'\nimport useUpload from './useUpload'\nimport UploadDropzone from './UploadDropzone'\nimport { UploadContext, defaultProps } from './UploadContext'\nimport { verifyFiles } from './UploadVerify'\n\nimport type { UploadFile, UploadAllProps } from './types'\nimport UploadFileList from './UploadFileList'\nimport UploadInfo from './UploadInfo'\n\nexport { defaultProps }\n\nconst Upload = (localProps: UploadAllProps) => {\n const context = React.useContext(Context)\n\n const { buttonTextSingular, textSingular, ...translations } =\n context.getTranslation(localProps).Upload\n\n if (localProps?.filesAmountLimit === 1) {\n translations.buttonText = buttonTextSingular\n translations.text = textSingular\n }\n\n const extendedProps = extendPropsWithContext(\n localProps,\n defaultProps,\n { skeleton: context?.skeleton },\n translations,\n context.Upload\n )\n\n const {\n id,\n skeleton,\n className,\n acceptedFileTypes,\n filesAmountLimit,\n fileMaxSize,\n onChange,\n onFileDelete, // eslint-disable-line\n title, // eslint-disable-line\n text, // eslint-disable-line\n fileTypeDescription, // eslint-disable-line\n fileSizeDescription, // eslint-disable-line\n fileAmountDescription, // eslint-disable-line\n fileSizeContent, // eslint-disable-line\n buttonText, // eslint-disable-line\n loadingText, // eslint-disable-line\n errorLargeFile,\n errorUnsupportedFile,\n errorAmountLimit, // eslint-disable-line\n deleteButton, // eslint-disable-line\n fileListAriaLabel, // eslint-disable-line\n ...props\n } = extendedProps\n\n const spacingClasses = createSpacingClasses(props)\n\n const { files, setFiles, setInternalFiles, getExistingFile } =\n useUpload(id)\n\n const filesRef = React.useRef<UploadFile[]>(files)\n React.useEffect(() => {\n filesRef.current = files\n }) // keep our ref updated on every re-render\n\n return (\n <UploadContext.Provider\n value={{\n ...extendedProps,\n id,\n onInputUpload,\n }}\n >\n <Provider skeleton={skeleton}>\n <UploadDropzone\n className={classnames('dnb-upload', spacingClasses, className)}\n {...props}\n >\n <UploadInfo />\n\n <UploadFileInput />\n\n <UploadFileList />\n </UploadDropzone>\n </Provider>\n </UploadContext.Provider>\n )\n\n function onInputUpload(newFiles: UploadFile[]) {\n const files = filesRef.current\n const mergedFiles = [\n ...files,\n ...newFiles.map((fileItem) => {\n const { file } = fileItem\n\n const existingFile = getExistingFile(file, files)\n\n fileItem.exists = Boolean(existingFile)\n fileItem.id = fileItem.exists ? existingFile.id : makeUniqueId()\n\n return fileItem\n }),\n ]\n\n const verifiedFiles = verifyFiles(\n mergedFiles.filter(({ exists }) => !exists),\n {\n fileMaxSize,\n acceptedFileTypes,\n errorUnsupportedFile,\n errorLargeFile,\n }\n )\n\n const validFiles = [...verifiedFiles].slice(0, filesAmountLimit)\n\n setFiles(validFiles)\n setInternalFiles(mergedFiles)\n\n if (typeof onChange === 'function') {\n onChange({ files: validFiles })\n }\n\n return validFiles\n }\n}\n\nUpload.useUpload = useUpload\n\nUpload._supportsSpacingProps = true\n\nexport default Upload\n"],"mappings":"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"}
@@ -31,6 +31,7 @@ declare const Element: React.ForwardRefExoticComponent<{
31
31
  innerRef?: React.RefObject<HTMLElement> | React.ForwardedRef<unknown>;
32
32
  children?: React.ReactNode;
33
33
  } & import("../shared/types").SpacingElementProps & {
34
- space?: import("../shared/types").SpaceType | import("../shared/types").SpacingElementProps;
34
+ space?: import("../shared/types").SpaceTypeAll;
35
+ innerSpace?: import("../shared/types").SpaceTypeAll | import("../shared/types").SpaceTypeMedia;
35
36
  } & ElementInternalProps & Omit<React.HTMLProps<HTMLElement>, "ref"> & React.RefAttributes<unknown>>;
36
37
  export default Element;
@@ -4,6 +4,7 @@
4
4
  */
5
5
  /// <reference types="react" />
6
6
  declare const Link: import("react").ForwardRefExoticComponent<import("../components/Anchor").AnchorProps & Omit<import("react").HTMLProps<HTMLAnchorElement>, "ref"> & import("../shared/types").SpacingElementProps & {
7
- space?: import("../shared/types").SpaceType | import("../shared/types").SpacingElementProps;
7
+ space?: import("../shared/types").SpaceTypeAll;
8
+ innerSpace?: import("../shared/types").SpaceTypeAll | import("../shared/types").SpaceTypeMedia;
8
9
  } & import("react").RefAttributes<HTMLAnchorElement>>;
9
10
  export default Link;
@@ -4,7 +4,8 @@
4
4
  */
5
5
  import React from 'react';
6
6
  declare const Blockquote: React.ForwardRefExoticComponent<import("../../components/space/types").SpacingElementProps & {
7
- space?: import("../../components/space/types").SpaceType | import("../../components/space/types").SpacingElementProps;
7
+ space?: import("../../components/space/types").SpaceTypeAll;
8
+ innerSpace?: import("../../components/space/types").SpaceTypeAll | import("../../components/space/types").SpaceTypeMedia;
8
9
  } & React.HTMLAttributes<HTMLElement> & {
9
10
  /**
10
11
  * Hides the blockquote background by making it transparent
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import React from 'react';
6
6
  declare const Code: React.ForwardRefExoticComponent<import("../../components/space/types").SpacingElementProps & {
7
- space?: import("../../components/space/types").SpaceType | import("../../components/space/types").SpacingElementProps;
7
+ space?: import("../../components/space/types").SpaceTypeAll;
8
+ innerSpace?: import("../../components/space/types").SpaceTypeAll | import("../../components/space/types").SpaceTypeMedia;
8
9
  } & React.HTMLAttributes<HTMLElement> & React.RefAttributes<unknown>>;
9
10
  export default Code;
@@ -6,6 +6,7 @@ import React from 'react';
6
6
  import { SpacingProps } from '../../components/space/types';
7
7
  export type DivProps = SpacingProps & React.HTMLAttributes<HTMLElement>;
8
8
  declare const Div: React.ForwardRefExoticComponent<import("../../components/space/types").SpacingElementProps & {
9
- space?: import("../../components/space/types").SpaceType | import("../../components/space/types").SpacingElementProps;
9
+ space?: import("../../components/space/types").SpaceTypeAll;
10
+ innerSpace?: import("../../components/space/types").SpaceTypeAll | import("../../components/space/types").SpaceTypeMedia;
10
11
  } & React.HTMLAttributes<HTMLElement> & React.RefAttributes<unknown>>;
11
12
  export default Div;
@@ -19,7 +19,7 @@
19
19
 
20
20
  /*
21
21
  * 60% and 65% for best result on low res screens, like on Chromebook (Acer)
22
- * Else the line will dissapear!
22
+ * Else the line will disappear!
23
23
  */
24
24
  background-image: linear-gradient(
25
25
  to bottom,
@@ -1 +1 @@
1
- {"version":3,"file":"Img.js","names":["React","E","createSpacingClasses","removeSpaceProps","classnames","Img","_ref","caption","alt","element","skeleton","imgClass","className","p","_objectWithoutProperties","_excluded","hasError","setError","useState","createElement","as","internalClass","is","skeletonMethod","_extends","onError","_supportsSpacingProps"],"sources":["../../../../src/elements/img/Img.tsx"],"sourcesContent":["/**\n * HTML Element\n *\n */\n\nimport React from 'react'\nimport E from '../Element'\nimport {\n createSpacingClasses,\n removeSpaceProps,\n} from '../../components/space/SpacingHelper'\nimport { SpacingProps } from '../../components/space/types'\nimport { SkeletonShow } from '../../components/skeleton/Skeleton'\nimport classnames from 'classnames'\nimport type { DynamicElement } from '../../shared/types'\n\nexport type ImgProps = SpacingProps &\n React.HTMLProps<HTMLImageElement> & {\n src: string\n alt: string\n skeleton?: SkeletonShow\n imgClass?: string\n element?: DynamicElement & 'figure'\n caption?: string\n }\n\nconst Img = ({\n caption,\n alt,\n element = 'figure',\n skeleton,\n imgClass,\n className,\n ...p\n}: ImgProps) => {\n const [hasError, setError] = React.useState(false)\n\n return (\n <E\n as={element}\n internalClass=\"dnb-img\"\n className={classnames(className, createSpacingClasses(p, p.is))}\n skeleton={skeleton}\n skeletonMethod=\"shape\"\n >\n <E\n as=\"img\"\n alt={alt}\n internalClass={classnames('dnb-img', hasError && 'dnb-img--error')}\n className={imgClass}\n skeleton={skeleton}\n onError={() => setError(true)}\n {...removeSpaceProps(p)}\n />\n {caption && <figcaption>{caption}</figcaption>}\n </E>\n )\n}\n\nImg._supportsSpacingProps = true\n\nexport default Img\n"],"mappings":";;;AAKA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,CAAC,MAAM,YAAY;AAC1B,SACEC,oBAAoB,EACpBC,gBAAgB,QACX,sCAAsC;AAG7C,OAAOC,UAAU,MAAM,YAAY;AAanC,MAAMC,GAAG,GAAGC,IAAA,IAQI;EAAA,IARH;MACXC,OAAO;MACPC,GAAG;MACHC,OAAO,GAAG,QAAQ;MAClBC,QAAQ;MACRC,QAAQ;MACRC;IAEQ,CAAC,GAAAN,IAAA;IADNO,CAAC,GAAAC,wBAAA,CAAAR,IAAA,EAAAS,SAAA;EAEJ,MAAM,CAACC,QAAQ,EAAEC,QAAQ,CAAC,GAAGjB,KAAK,CAACkB,QAAQ,CAAC,KAAK,CAAC;EAElD,OACElB,KAAA,CAAAmB,aAAA,CAAClB,CAAC;IACAmB,EAAE,EAAEX,OAAQ;IACZY,aAAa,EAAC,SAAS;IACvBT,SAAS,EAAER,UAAU,CAACQ,SAAS,EAAEV,oBAAoB,CAACW,CAAC,EAAEA,CAAC,CAACS,EAAE,CAAC,CAAE;IAChEZ,QAAQ,EAAEA,QAAS;IACnBa,cAAc,EAAC;EAAO,GAEtBvB,KAAA,CAAAmB,aAAA,CAAClB,CAAC,EAAAuB,QAAA;IACAJ,EAAE,EAAC,KAAK;IACRZ,GAAG,EAAEA,GAAI;IACTa,aAAa,EAAa,SAAS,IAAEL,QAAQ,0BAAsB;IACnEJ,SAAS,EAAED,QAAS;IACpBD,QAAQ,EAAEA,QAAS;IACnBe,OAAO,EAAEA,CAAA,KAAMR,QAAQ,CAAC,IAAI;EAAE,GAC1Bd,gBAAgB,CAACU,CAAC,CAAC,CACxB,CAAC,EACDN,OAAO,IAAIP,KAAA,CAAAmB,aAAA,qBAAaZ,OAAoB,CAC5C,CAAC;AAER,CAAC;AAEDF,GAAG,CAACqB,qBAAqB,GAAG,IAAI;AAEhC,eAAerB,GAAG"}
1
+ {"version":3,"file":"Img.js","names":["React","E","createSpacingClasses","removeSpaceProps","classnames","Img","_ref","caption","alt","element","skeleton","imgClass","className","p","_objectWithoutProperties","_excluded","hasError","setError","useState","createElement","as","internalClass","is","skeletonMethod","_extends","onError","_supportsSpacingProps"],"sources":["../../../../src/elements/img/Img.tsx"],"sourcesContent":["/**\n * HTML Element\n *\n */\n\nimport React from 'react'\nimport E from '../Element'\nimport {\n createSpacingClasses,\n removeSpaceProps,\n} from '../../components/space/SpacingHelper'\nimport { SpacingProps } from '../../components/space/types'\nimport { SkeletonShow } from '../../components/skeleton/Skeleton'\nimport classnames from 'classnames'\nimport type { DynamicElement } from '../../shared/types'\n\nexport type ImgProps = SpacingProps &\n React.HTMLProps<HTMLImageElement> & {\n src: string\n alt: string\n skeleton?: SkeletonShow\n imgClass?: string\n element?: DynamicElement & 'figure'\n caption?: string\n }\n\nconst Img = ({\n caption,\n alt,\n element = 'figure',\n skeleton,\n imgClass,\n className,\n ...p\n}: ImgProps) => {\n const [hasError, setError] = React.useState(false)\n\n return (\n <E\n as={element}\n internalClass=\"dnb-img\"\n className={classnames(className, createSpacingClasses(p, p.is))}\n skeleton={skeleton}\n skeletonMethod=\"shape\"\n >\n <E\n as=\"img\"\n alt={alt}\n internalClass={classnames('dnb-img', hasError && 'dnb-img--error')}\n className={imgClass}\n skeleton={skeleton}\n onError={() => setError(true)}\n {...removeSpaceProps(p as Omit<ImgProps, 'ref'>)}\n />\n {caption && <figcaption>{caption}</figcaption>}\n </E>\n )\n}\n\nImg._supportsSpacingProps = true\n\nexport default Img\n"],"mappings":";;;AAKA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,CAAC,MAAM,YAAY;AAC1B,SACEC,oBAAoB,EACpBC,gBAAgB,QACX,sCAAsC;AAG7C,OAAOC,UAAU,MAAM,YAAY;AAanC,MAAMC,GAAG,GAAGC,IAAA,IAQI;EAAA,IARH;MACXC,OAAO;MACPC,GAAG;MACHC,OAAO,GAAG,QAAQ;MAClBC,QAAQ;MACRC,QAAQ;MACRC;IAEQ,CAAC,GAAAN,IAAA;IADNO,CAAC,GAAAC,wBAAA,CAAAR,IAAA,EAAAS,SAAA;EAEJ,MAAM,CAACC,QAAQ,EAAEC,QAAQ,CAAC,GAAGjB,KAAK,CAACkB,QAAQ,CAAC,KAAK,CAAC;EAElD,OACElB,KAAA,CAAAmB,aAAA,CAAClB,CAAC;IACAmB,EAAE,EAAEX,OAAQ;IACZY,aAAa,EAAC,SAAS;IACvBT,SAAS,EAAER,UAAU,CAACQ,SAAS,EAAEV,oBAAoB,CAACW,CAAC,EAAEA,CAAC,CAACS,EAAE,CAAC,CAAE;IAChEZ,QAAQ,EAAEA,QAAS;IACnBa,cAAc,EAAC;EAAO,GAEtBvB,KAAA,CAAAmB,aAAA,CAAClB,CAAC,EAAAuB,QAAA;IACAJ,EAAE,EAAC,KAAK;IACRZ,GAAG,EAAEA,GAAI;IACTa,aAAa,EAAa,SAAS,IAAEL,QAAQ,0BAAsB;IACnEJ,SAAS,EAAED,QAAS;IACpBD,QAAQ,EAAEA,QAAS;IACnBe,OAAO,EAAEA,CAAA,KAAMR,QAAQ,CAAC,IAAI;EAAE,GAC1Bd,gBAAgB,CAACU,CAA0B,CAAC,CACjD,CAAC,EACDN,OAAO,IAAIP,KAAA,CAAAmB,aAAA,qBAAaZ,OAAoB,CAC5C,CAAC;AAER,CAAC;AAEDF,GAAG,CAACqB,qBAAqB,GAAG,IAAI;AAEhC,eAAerB,GAAG"}
@@ -38,37 +38,50 @@ import Ul from './Ul';
38
38
  export { Blockquote, Code, Dd, Div, Dl, Dt, H, H1, H2, H3, H4, H5, H6, Hr, Img, Ingress, Lead, Li, Link, Ol, P, Paragraph, Span, Td, Th, Tr, Ul, };
39
39
  export declare const getElements: () => {
40
40
  Blockquote: import("react").ForwardRefExoticComponent<import("../shared/types").SpacingElementProps & {
41
- space?: import("../shared/types").SpaceType | import("../shared/types").SpacingElementProps;
41
+ space?: import("../shared/types").SpaceTypeAll;
42
+ innerSpace?: import("../shared/types").SpaceTypeAll | import("../shared/types").SpaceTypeMedia;
42
43
  } & import("react").HTMLAttributes<HTMLElement> & {
43
44
  noBackground?: boolean;
44
45
  direction?: "horizontal" | "vertical";
45
46
  } & import("react").RefAttributes<unknown>>;
46
47
  Code: import("react").ForwardRefExoticComponent<import("../shared/types").SpacingElementProps & {
47
- space?: import("../shared/types").SpaceType | import("../shared/types").SpacingElementProps;
48
+ space?: import("../shared/types").SpaceTypeAll;
49
+ innerSpace?: import("../shared/types").SpaceTypeAll | import("../shared/types").SpaceTypeMedia;
48
50
  } & import("react").HTMLAttributes<HTMLElement> & import("react").RefAttributes<unknown>>;
49
51
  Dd: import("react").ForwardRefExoticComponent<import("./Dd").DdProps & import("../shared/types").SpacingElementProps & {
50
- space?: import("../shared/types").SpaceType | import("../shared/types").SpacingElementProps;
52
+ space?: import("../shared/types").SpaceTypeAll;
53
+ innerSpace?: import("../shared/types").SpaceTypeAll | import("../shared/types").SpaceTypeMedia;
51
54
  } & import("react").RefAttributes<unknown>>;
52
55
  Div: import("react").ForwardRefExoticComponent<import("../shared/types").SpacingElementProps & {
53
- space?: import("../shared/types").SpaceType | import("../shared/types").SpacingElementProps;
56
+ space?: import("../shared/types").SpaceTypeAll;
57
+ innerSpace?: import("../shared/types").SpaceTypeAll | import("../shared/types").SpaceTypeMedia;
54
58
  } & import("react").HTMLAttributes<HTMLElement> & import("react").RefAttributes<unknown>>;
55
59
  Dl: {
56
60
  ({ direction, ...props }: import("./Dl").DlAllProps): import("react/jsx-runtime").JSX.Element;
57
61
  Item({ className, children, ...props }: import("react").AllHTMLAttributes<HTMLSpanElement> & import("../shared/types").SpacingElementProps & {
58
- space?: import("../shared/types").SpaceType | import("../shared/types").SpacingElementProps;
62
+ space?: import("../shared/types").SpaceTypeAll;
63
+ innerSpace?: import("../shared/types").SpaceTypeAll | import("../shared/types").SpaceTypeMedia;
59
64
  }): import("react/jsx-runtime").JSX.Element;
60
65
  _supportsSpacingProps: boolean;
61
66
  };
62
67
  Dt: import("react").ForwardRefExoticComponent<import("./Dt").DtProps & import("../shared/types").SpacingElementProps & {
63
- space?: import("../shared/types").SpaceType | import("../shared/types").SpacingElementProps;
68
+ space?: import("../shared/types").SpaceTypeAll;
69
+ innerSpace?: import("../shared/types").SpaceTypeAll | import("../shared/types").SpaceTypeMedia;
64
70
  } & import("react").RefAttributes<unknown>>;
65
71
  H: {
66
72
  ({ as, is, level, size, className, ...props }: import("../shared/types").SpacingElementProps & {
67
- space?: import("../shared/types").SpaceType | import("../shared/types").SpacingElementProps;
73
+ space?: import("../shared/types").SpaceTypeAll;
74
+ innerSpace?: import("../shared/types").SpaceTypeAll | import("../shared/types").SpaceTypeMedia;
68
75
  } & import("react").HTMLAttributes<HTMLHeadingElement> & {
69
76
  as?: string;
70
77
  level?: "use";
71
78
  size?: "auto" | import("../components/Heading").HeadingSize;
79
+ } & {
80
+ skeleton?: boolean;
81
+ skeletonMethod?: import("../components/skeleton/SkeletonHelper").SkeletonMethods;
82
+ internalClass?: string;
83
+ innerRef?: import("react").ForwardedRef<unknown> | import("react").RefObject<HTMLElement>;
84
+ children?: import("react").ReactNode;
72
85
  }): import("react/jsx-runtime").JSX.Element;
73
86
  _isHeadingElement: boolean;
74
87
  _supportsSpacingProps: boolean;
@@ -99,7 +112,8 @@ export declare const getElements: () => {
99
112
  };
100
113
  Hr: {
101
114
  ({ fullscreen, light, medium, className, ...props }?: import("../shared/types").SpacingElementProps & {
102
- space?: import("../shared/types").SpaceType | import("../shared/types").SpacingElementProps;
115
+ space?: import("../shared/types").SpaceTypeAll;
116
+ innerSpace?: import("../shared/types").SpaceTypeAll | import("../shared/types").SpaceTypeMedia;
103
117
  } & import("react").HTMLAttributes<HTMLHRElement> & {
104
118
  light?: boolean;
105
119
  medium?: boolean;
@@ -121,7 +135,8 @@ export declare const getElements: () => {
121
135
  };
122
136
  Li: ({ className, ...p }?: import("./Li").LiAllProps) => import("react/jsx-runtime").JSX.Element;
123
137
  Link: import("react").ForwardRefExoticComponent<import("../components/Anchor").AnchorProps & Omit<import("react").HTMLProps<HTMLAnchorElement>, "ref"> & import("../shared/types").SpacingElementProps & {
124
- space?: import("../shared/types").SpaceType | import("../shared/types").SpacingElementProps;
138
+ space?: import("../shared/types").SpaceTypeAll;
139
+ innerSpace?: import("../shared/types").SpaceTypeAll | import("../shared/types").SpaceTypeMedia;
125
140
  } & import("react").RefAttributes<HTMLAnchorElement>>;
126
141
  Ol: {
127
142
  ({ nested, inside, outside, ...p }?: import("./Ol").OlAllProps): import("react/jsx-runtime").JSX.Element;
@@ -136,7 +151,8 @@ export declare const getElements: () => {
136
151
  _supportsSpacingProps: boolean;
137
152
  };
138
153
  Span: import("react").ForwardRefExoticComponent<import("../shared/types").SpacingElementProps & {
139
- space?: import("../shared/types").SpaceType | import("../shared/types").SpacingElementProps;
154
+ space?: import("../shared/types").SpaceTypeAll;
155
+ innerSpace?: import("../shared/types").SpaceTypeAll | import("../shared/types").SpaceTypeMedia;
140
156
  } & import("react").HTMLAttributes<HTMLElement> & import("react").RefAttributes<unknown>>;
141
157
  Td: typeof Td;
142
158
  Th: typeof Th;
@@ -8,6 +8,7 @@ export type DdProps = {
8
8
  children: React.ReactNode;
9
9
  };
10
10
  declare const Dd: React.ForwardRefExoticComponent<DdProps & import("../../shared/types").SpacingElementProps & {
11
- space?: import("../../shared/types").SpaceType | import("../../shared/types").SpacingElementProps;
11
+ space?: import("../../shared/types").SpaceTypeAll;
12
+ innerSpace?: import("../../shared/types").SpaceTypeAll | import("../../shared/types").SpaceTypeMedia;
12
13
  } & React.RefAttributes<unknown>>;
13
14
  export default Dd;
@@ -5,6 +5,7 @@
5
5
  import React from 'react';
6
6
  export type DtProps = React.AllHTMLAttributes<HTMLDListElement>;
7
7
  declare const Dt: React.ForwardRefExoticComponent<DtProps & import("../../shared/types").SpacingElementProps & {
8
- space?: import("../../shared/types").SpaceType | import("../../shared/types").SpacingElementProps;
8
+ space?: import("../../shared/types").SpaceTypeAll;
9
+ innerSpace?: import("../../shared/types").SpaceTypeAll | import("../../shared/types").SpaceTypeMedia;
9
10
  } & React.RefAttributes<unknown>>;
10
11
  export default Dt;
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import React from 'react';
6
6
  declare const Span: React.ForwardRefExoticComponent<import("../../components/space/types").SpacingElementProps & {
7
- space?: import("../../components/space/types").SpaceType | import("../../components/space/types").SpacingElementProps;
7
+ space?: import("../../components/space/types").SpaceTypeAll;
8
+ innerSpace?: import("../../components/space/types").SpaceTypeAll | import("../../components/space/types").SpaceTypeMedia;
8
9
  } & React.HTMLAttributes<HTMLElement> & React.RefAttributes<unknown>>;
9
10
  export default Span;
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import React from 'react';
6
6
  import { SpacingProps } from '../../components/space/types';
7
+ import { ElementProps } from '../Element';
7
8
  import { HeadingSize } from '../../components/heading/Heading';
8
9
  export type HSize = HeadingSize;
9
10
  type HProps = SpacingProps & React.HTMLAttributes<HTMLHeadingElement> & {
@@ -22,7 +23,7 @@ type HProps = SpacingProps & React.HTMLAttributes<HTMLHeadingElement> & {
22
23
  * Default: xx-large
23
24
  */
24
25
  size?: HSize | 'auto';
25
- };
26
+ } & ElementProps;
26
27
  export type SharedHProps = Omit<HProps, 'as'>;
27
28
  declare const H: {
28
29
  ({ as, is, level, size, className, ...props }: HProps): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"H.js","names":["React","classnames","E","setNextLevel","getHeadingSize","useTheme","H","_ref","as","is","level","size","className","props","_objectWithoutProperties","_excluded","numSiz","parseFloat","String","substring","theme","targetSize","name","createElement","_extends","internalClass","_isHeadingElement","_supportsSpacingProps"],"sources":["../../../../src/elements/typography/H.tsx"],"sourcesContent":["/**\n * HTML Element\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport { SpacingProps } from '../../components/space/types'\nimport E from '../Element'\nimport { HeadingSize } from '../../components/heading/Heading'\nimport {\n setNextLevel,\n getHeadingSize,\n} from '../../components/heading/HeadingHelpers'\nimport { useTheme } from '../../shared'\n\nexport type HSize = HeadingSize\n\ntype HProps = SpacingProps &\n React.HTMLAttributes<HTMLHeadingElement> & {\n /**\n * Defines the Element Type, like \"h1\"\n * Default: h1\n */\n as?: string\n /**\n * Makes the component use the elements heading level. e.g. h3 will make the component use level 3\n */\n level?: 'use'\n /**\n * Sets the font size based on headingSize_#{HEADING_SIZE} mixins found in typography-mixins.scss. For more detailed information go here: https://eufemia.dnb.no/uilib/typography/font-size/.\n * Use value 'auto' to base size on heading level\n * Default: xx-large\n */\n size?: HSize | 'auto'\n }\n\nexport type SharedHProps = Omit<HProps, 'as'>\n\nconst H = ({\n as = 'h1',\n is,\n level,\n size,\n className,\n ...props\n}: HProps) => {\n const numSiz = parseFloat(String(as || is).substring(1))\n\n if (level === 'use') {\n setNextLevel(numSiz)\n }\n\n const theme = useTheme()\n const targetSize =\n (size === 'auto' && getHeadingSize(theme?.name)[numSiz]) ||\n size ||\n 'xx-large'\n\n return (\n <E\n as={as || is}\n internalClass={classnames(\n targetSize && `dnb-h--${targetSize}`,\n className\n )}\n {...props}\n />\n )\n}\n\nH._isHeadingElement = true\nH._supportsSpacingProps = true\n\nexport default H\n"],"mappings":";;;AAKA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AAEnC,OAAOC,CAAC,MAAM,YAAY;AAE1B,SACEC,YAAY,EACZC,cAAc,QACT,yCAAyC;AAChD,SAASC,QAAQ,QAAQ,cAAc;AAyBvC,MAAMC,CAAC,GAAGC,IAAA,IAOI;EAAA,IAPH;MACTC,EAAE,GAAG,IAAI;MACTC,EAAE;MACFC,KAAK;MACLC,IAAI;MACJC;IAEM,CAAC,GAAAL,IAAA;IADJM,KAAK,GAAAC,wBAAA,CAAAP,IAAA,EAAAQ,SAAA;EAER,MAAMC,MAAM,GAAGC,UAAU,CAACC,MAAM,CAACV,EAAE,IAAIC,EAAE,CAAC,CAACU,SAAS,CAAC,CAAC,CAAC,CAAC;EAExD,IAAIT,KAAK,KAAK,KAAK,EAAE;IACnBP,YAAY,CAACa,MAAM,CAAC;EACtB;EAEA,MAAMI,KAAK,GAAGf,QAAQ,CAAC,CAAC;EACxB,MAAMgB,UAAU,GACbV,IAAI,KAAK,MAAM,IAAIP,cAAc,CAACgB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEE,IAAI,CAAC,CAACN,MAAM,CAAC,IACvDL,IAAI,IACJ,UAAU;EAEZ,OACEX,KAAA,CAAAuB,aAAA,CAACrB,CAAC,EAAAsB,QAAA;IACAhB,EAAE,EAAEA,EAAE,IAAIC,EAAG;IACbgB,aAAa,EAAExB,UAAU,CAEvBW,SAAS,EADTS,UAAU,IAAK,UAASA,UAAW,EAErC;EAAE,GACER,KAAK,CACV,CAAC;AAEN,CAAC;AAEDP,CAAC,CAACoB,iBAAiB,GAAG,IAAI;AAC1BpB,CAAC,CAACqB,qBAAqB,GAAG,IAAI;AAE9B,eAAerB,CAAC"}
1
+ {"version":3,"file":"H.js","names":["React","classnames","E","setNextLevel","getHeadingSize","useTheme","H","_ref","as","is","level","size","className","props","_objectWithoutProperties","_excluded","numSiz","parseFloat","String","substring","theme","targetSize","name","createElement","_extends","internalClass","_isHeadingElement","_supportsSpacingProps"],"sources":["../../../../src/elements/typography/H.tsx"],"sourcesContent":["/**\n * HTML Element\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport { SpacingProps } from '../../components/space/types'\nimport E, { ElementProps } from '../Element'\nimport { HeadingSize } from '../../components/heading/Heading'\nimport {\n setNextLevel,\n getHeadingSize,\n} from '../../components/heading/HeadingHelpers'\nimport { useTheme } from '../../shared'\n\nexport type HSize = HeadingSize\n\ntype HProps = SpacingProps &\n React.HTMLAttributes<HTMLHeadingElement> & {\n /**\n * Defines the Element Type, like \"h1\"\n * Default: h1\n */\n as?: string\n /**\n * Makes the component use the elements heading level. e.g. h3 will make the component use level 3\n */\n level?: 'use'\n /**\n * Sets the font size based on headingSize_#{HEADING_SIZE} mixins found in typography-mixins.scss. For more detailed information go here: https://eufemia.dnb.no/uilib/typography/font-size/.\n * Use value 'auto' to base size on heading level\n * Default: xx-large\n */\n size?: HSize | 'auto'\n } & ElementProps\n\nexport type SharedHProps = Omit<HProps, 'as'>\n\nconst H = ({\n as = 'h1',\n is,\n level,\n size,\n className,\n ...props\n}: HProps) => {\n const numSiz = parseFloat(String(as || is).substring(1))\n\n if (level === 'use') {\n setNextLevel(numSiz)\n }\n\n const theme = useTheme()\n const targetSize =\n (size === 'auto' && getHeadingSize(theme?.name)[numSiz]) ||\n size ||\n 'xx-large'\n\n return (\n <E\n as={as || is}\n internalClass={classnames(\n targetSize && `dnb-h--${targetSize}`,\n className\n )}\n {...props}\n />\n )\n}\n\nH._isHeadingElement = true\nH._supportsSpacingProps = true\n\nexport default H\n"],"mappings":";;;AAKA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AAEnC,OAAOC,CAAC,MAAwB,YAAY;AAE5C,SACEC,YAAY,EACZC,cAAc,QACT,yCAAyC;AAChD,SAASC,QAAQ,QAAQ,cAAc;AAyBvC,MAAMC,CAAC,GAAGC,IAAA,IAOI;EAAA,IAPH;MACTC,EAAE,GAAG,IAAI;MACTC,EAAE;MACFC,KAAK;MACLC,IAAI;MACJC;IAEM,CAAC,GAAAL,IAAA;IADJM,KAAK,GAAAC,wBAAA,CAAAP,IAAA,EAAAQ,SAAA;EAER,MAAMC,MAAM,GAAGC,UAAU,CAACC,MAAM,CAACV,EAAE,IAAIC,EAAE,CAAC,CAACU,SAAS,CAAC,CAAC,CAAC,CAAC;EAExD,IAAIT,KAAK,KAAK,KAAK,EAAE;IACnBP,YAAY,CAACa,MAAM,CAAC;EACtB;EAEA,MAAMI,KAAK,GAAGf,QAAQ,CAAC,CAAC;EACxB,MAAMgB,UAAU,GACbV,IAAI,KAAK,MAAM,IAAIP,cAAc,CAACgB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEE,IAAI,CAAC,CAACN,MAAM,CAAC,IACvDL,IAAI,IACJ,UAAU;EAEZ,OACEX,KAAA,CAAAuB,aAAA,CAACrB,CAAC,EAAAsB,QAAA;IACAhB,EAAE,EAAEA,EAAE,IAAIC,EAAG;IACbgB,aAAa,EAAExB,UAAU,CAEvBW,SAAS,EADTS,UAAU,IAAK,UAASA,UAAW,EAErC;EAAE,GACER,KAAK,CACV,CAAC;AAEN,CAAC;AAEDP,CAAC,CAACoB,iBAAiB,GAAG,IAAI;AAC1BpB,CAAC,CAACqB,qBAAqB,GAAG,IAAI;AAE9B,eAAerB,CAAC"}
@@ -7,6 +7,8 @@ export interface ContextState {
7
7
  data: any;
8
8
  /** Should the form validate data before submitting? */
9
9
  errors?: Record<string, Error>;
10
+ /** Will set autoComplete="on" on each nested Field.String and Field.Number */
11
+ autoComplete?: boolean;
10
12
  handlePathChange: (path: string, value: any) => void;
11
13
  handleSubmit: (props?: HandleSubmitProps) => any;
12
14
  showAllErrors: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","names":["React","defaultContextState","data","undefined","handlePathChange","handleSubmit","showAllErrors","setShowAllErrors","mountedFieldPaths","handleMountField","handleUnMountField","hasErrors","setPathWithError","_isInsideFormElement","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\n\ntype HandleSubmitProps = {\n formElement?: HTMLFormElement\n}\n\nexport interface ContextState {\n /** The dataset for the form / form steps */\n data: any\n /** Should the form validate data before submitting? */\n errors?: Record<string, Error>\n handlePathChange: (path: string, value: any) => void\n handleSubmit: (props?: HandleSubmitProps) => any\n // Error status\n showAllErrors: boolean\n setShowAllErrors: (showAllErrors: boolean) => void\n // Mounted fields - Components telling the provider what fields is on screen at any time\n mountedFieldPaths: string[]\n handleMountField: (path: string) => void\n handleUnMountField: (path: string) => void\n setPathWithError: (path: string, hasError: boolean) => void\n hasErrors: () => boolean\n _isInsideFormElement?: boolean\n}\n\nexport const defaultContextState: ContextState = {\n data: undefined,\n handlePathChange: () => null,\n handleSubmit: () => null,\n showAllErrors: false,\n setShowAllErrors: () => null,\n mountedFieldPaths: [],\n handleMountField: () => null,\n handleUnMountField: () => null,\n hasErrors: () => false,\n setPathWithError: () => null,\n _isInsideFormElement: false,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAyBzB,OAAO,MAAMC,mBAAiC,GAAG;EAC/CC,IAAI,EAAEC,SAAS;EACfC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,aAAa,EAAE,KAAK;EACpBC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,iBAAiB,EAAE,EAAE;EACrBC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,kBAAkB,EAAEA,CAAA,KAAM,IAAI;EAC9BC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,oBAAoB,EAAE;AACxB,CAAC;AAED,MAAMC,OAAO,GAAGd,KAAK,CAACe,aAAa,CAAed,mBAAmB,CAAC;AAEtE,eAAea,OAAO"}
1
+ {"version":3,"file":"Context.js","names":["React","defaultContextState","data","undefined","handlePathChange","handleSubmit","showAllErrors","setShowAllErrors","mountedFieldPaths","handleMountField","handleUnMountField","hasErrors","setPathWithError","_isInsideFormElement","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\n\ntype HandleSubmitProps = {\n formElement?: HTMLFormElement\n}\n\nexport interface ContextState {\n /** The dataset for the form / form steps */\n data: any\n /** Should the form validate data before submitting? */\n errors?: Record<string, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (path: string, value: any) => void\n handleSubmit: (props?: HandleSubmitProps) => any\n // Error status\n showAllErrors: boolean\n setShowAllErrors: (showAllErrors: boolean) => void\n // Mounted fields - Components telling the provider what fields is on screen at any time\n mountedFieldPaths: string[]\n handleMountField: (path: string) => void\n handleUnMountField: (path: string) => void\n setPathWithError: (path: string, hasError: boolean) => void\n hasErrors: () => boolean\n _isInsideFormElement?: boolean\n}\n\nexport const defaultContextState: ContextState = {\n data: undefined,\n handlePathChange: () => null,\n handleSubmit: () => null,\n showAllErrors: false,\n setShowAllErrors: () => null,\n mountedFieldPaths: [],\n handleMountField: () => null,\n handleUnMountField: () => null,\n hasErrors: () => false,\n setPathWithError: () => null,\n _isInsideFormElement: false,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AA2BzB,OAAO,MAAMC,mBAAiC,GAAG;EAC/CC,IAAI,EAAEC,SAAS;EACfC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,aAAa,EAAE,KAAK;EACpBC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,iBAAiB,EAAE,EAAE;EACrBC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,kBAAkB,EAAEA,CAAA,KAAM,IAAI;EAC9BC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,oBAAoB,EAAE;AACxB,CAAC;AAED,MAAMC,OAAO,GAAGd,KAAK,CAACe,aAAa,CAAed,mBAAmB,CAAC;AAEtE,eAAea,OAAO"}
@@ -21,4 +21,4 @@ export interface Props<Data extends JsonObject> {
21
21
  sessionStorageId?: string;
22
22
  children: React.ReactNode;
23
23
  }
24
- export default function Provider<Data extends JsonObject>({ defaultData, data, schema, onChange, onPathChange, onSubmit, onSubmitRequest, scrollTopOnSubmit, sessionStorageId, children, }: Props<Data>): import("react/jsx-runtime").JSX.Element;
24
+ export default function Provider<Data extends JsonObject>({ defaultData, data, schema, onChange, onPathChange, onSubmit, onSubmitRequest, scrollTopOnSubmit, sessionStorageId, children, ...rest }: Props<Data>): import("react/jsx-runtime").JSX.Element;
@@ -1,3 +1,8 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
+ const _excluded = ["defaultData", "data", "schema", "onChange", "onPathChange", "onSubmit", "onSubmitRequest", "scrollTopOnSubmit", "sessionStorageId", "children"];
4
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1
6
  import React, { useEffect, useRef, useMemo, useCallback, useState } from 'react';
2
7
  import pointer from 'json-pointer';
3
8
  import ajv, { ajvErrorsToFormErrors } from '../../utils/ajv';
@@ -10,18 +15,20 @@ function removeListPath(paths, path) {
10
15
  return paths.filter(thisPath => thisPath !== path);
11
16
  }
12
17
  const isArrayJsonPointer = /^\/\d+(\/|$)/;
13
- export default function Provider({
14
- defaultData,
15
- data,
16
- schema,
17
- onChange,
18
- onPathChange,
19
- onSubmit,
20
- onSubmitRequest,
21
- scrollTopOnSubmit,
22
- sessionStorageId,
23
- children
24
- }) {
18
+ export default function Provider(_ref) {
19
+ let {
20
+ defaultData,
21
+ data,
22
+ schema,
23
+ onChange,
24
+ onPathChange,
25
+ onSubmit,
26
+ onSubmitRequest,
27
+ scrollTopOnSubmit,
28
+ sessionStorageId,
29
+ children
30
+ } = _ref,
31
+ rest = _objectWithoutProperties(_ref, _excluded);
25
32
  if (data !== undefined && sessionStorageId !== undefined) {
26
33
  console.error('Providing both data and sessionStorageId could lead to competing data sources. To provide default data to use only before anything is changed in the interface, use defaultData.');
27
34
  }
@@ -98,12 +105,17 @@ export default function Provider({
98
105
  var _formElement$reset;
99
106
  onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(internalData);
100
107
  formElement === null || formElement === void 0 ? void 0 : (_formElement$reset = formElement.reset) === null || _formElement$reset === void 0 ? void 0 : _formElement$reset.call(formElement);
101
- if (scrollTopOnSubmit) {
102
- var _window;
103
- typeof window !== 'undefined' && ((_window = window) === null || _window === void 0 ? void 0 : _window.scrollTo({
104
- top: 0,
105
- behavior: 'smooth'
106
- }));
108
+ if (typeof window !== 'undefined') {
109
+ if (sessionStorageId) {
110
+ window.sessionStorage.removeItem(sessionStorageId);
111
+ }
112
+ if (scrollTopOnSubmit) {
113
+ var _window;
114
+ (_window = window) === null || _window === void 0 ? void 0 : _window.scrollTo({
115
+ top: 0,
116
+ behavior: 'smooth'
117
+ });
118
+ }
107
119
  }
108
120
  } else {
109
121
  setShowAllErrors(true);
@@ -117,8 +129,9 @@ export default function Provider({
117
129
  }
118
130
  }, []);
119
131
  return React.createElement(Context.Provider, {
120
- value: {
121
- data: internalData,
132
+ value: _objectSpread(_objectSpread({
133
+ data: internalData
134
+ }, rest), {}, {
122
135
  handlePathChange,
123
136
  handleSubmit,
124
137
  errors: errorsRef.current,
@@ -129,7 +142,7 @@ export default function Provider({
129
142
  handleUnMountField,
130
143
  hasErrors,
131
144
  setPathWithError
132
- }
145
+ })
133
146
  }, children);
134
147
  }
135
148
  //# sourceMappingURL=Provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","names":["React","useEffect","useRef","useMemo","useCallback","useState","pointer","ajv","ajvErrorsToFormErrors","Context","structuredClone","addListPath","paths","path","includes","concat","removeListPath","filter","thisPath","isArrayJsonPointer","Provider","defaultData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","scrollTopOnSubmit","sessionStorageId","children","undefined","console","error","wasMounted","initialData","window","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","ajvSchemaValidator","compile","internalData","setInternalData","mountedFieldPathsRef","errorsRef","showAllErrors","setShowAllErrors","pathsWithErrorRef","hasErrors","Boolean","current","find","mountedFieldPath","validateBySchema","errors","validateBySchemaAndUpdateState","setPathWithError","hasError","handlePathChange","value","newData","match","set","_window$sessionStorag2","setItem","stringify","handleMountField","handleUnMountField","handleSubmit","formElement","_formElement$reset","reset","call","_window","scrollTo","top","behavior","createElement","mountedFieldPaths"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useEffect,\n useRef,\n useMemo,\n useCallback,\n useState,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { JSONSchema7 } from 'json-schema'\nimport ajv, { ajvErrorsToFormErrors } from '../../utils/ajv'\nimport { FormError } from '../../types'\nimport Context, { ContextState } from '../Context'\n\n/**\n * Deprecated, as it is supported my all mihor browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\nexport interface Props<Data extends JsonObject> {\n /** Default source data, only used if no other source is available, and not leading to updates if changed after mount */\n defaultData?: Partial<Data>\n /** Dynamic source data used as both initial data, and updates internal data if changed after mount */\n data?: Partial<Data>\n /** JSON Schema for validating the data, like during input or after attempting submit */\n schema?: JSONSchema7\n /** Change handler for the whole data set */\n onChange?: (data: Data) => void\n /** Change handler for each value */\n onPathChange?: (path: string, value: any) => void\n /** Submit called, data was valid (if validation available) */\n onSubmit?: (data: Data) => void\n /** Submit was requested, but data was invalid */\n onSubmitRequest?: () => void\n scrollTopOnSubmit?: boolean\n /** Key for caching the data in session storage */\n sessionStorageId?: string\n children: React.ReactNode\n}\n\ntype PathList = string[]\n\nfunction addListPath(paths: PathList, path: string): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nfunction removeListPath(paths: PathList, path: string): PathList {\n return paths.filter((thisPath) => thisPath !== path)\n}\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>({\n defaultData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n scrollTopOnSubmit,\n sessionStorageId,\n children,\n}: Props<Data>) {\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n console.error(\n 'Providing both data and sessionStorageId could lead to competing data sources. To provide default data to use only before anything is changed in the interface, use defaultData.'\n )\n }\n\n // State\n const wasMounted = useRef(false)\n const initialData = useMemo(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n return data ?? defaultData\n }, [data, defaultData, sessionStorageId])\n const ajvSchemaValidator = useMemo(\n () => (schema ? ajv.compile(schema) : undefined),\n [schema]\n )\n const [internalData, setInternalData] =\n useState<Partial<Data>>(initialData)\n const mountedFieldPathsRef = useRef<string[]>([])\n\n // Errors from provider validation (the whole data set)\n const errorsRef = useRef<Record<string, FormError>>({})\n const [showAllErrors, setShowAllErrors] = useState<boolean>(false)\n // Errors reported by fields, based on their direct validation rules\n const pathsWithErrorRef = useRef<string[]>([])\n\n const hasErrors = useCallback(\n () =>\n Boolean(\n mountedFieldPathsRef.current.find(\n (mountedFieldPath) =>\n errorsRef.current[mountedFieldPath] !== undefined ||\n pathsWithErrorRef.current.includes(mountedFieldPath)\n )\n ),\n []\n )\n\n useEffect(() => {\n if (!wasMounted.current) {\n wasMounted.current = true\n return\n }\n // When receivint the initial data, or receiving updated data by props, update the internal data (controlled state)\n setInternalData(data)\n }, [data])\n\n const validateBySchema = useCallback(\n (data: Partial<Data>): Record<string, Error> | undefined => {\n if (!ajvSchemaValidator) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvSchemaValidator(data)) {\n // Errors found\n const errors = ajvErrorsToFormErrors(ajvSchemaValidator.errors)\n return errors\n } else {\n return\n }\n },\n [ajvSchemaValidator]\n )\n\n const validateBySchemaAndUpdateState = useCallback(\n (data: Partial<Data>) => {\n errorsRef.current = validateBySchema(data) ?? {}\n },\n [validateBySchema]\n )\n\n const setPathWithError = useCallback(\n (path: string, hasError: boolean) => {\n pathsWithErrorRef.current = hasError\n ? addListPath(pathsWithErrorRef.current, path)\n : removeListPath(pathsWithErrorRef.current, path)\n },\n []\n )\n\n const handlePathChange = useCallback(\n (path, value) => {\n if (!path) {\n return\n }\n onPathChange?.(path, value)\n\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n const newData = structuredClone(\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalData ?? (path.match(isArrayJsonPointer) ? [] : {})\n )\n if (path !== '/') {\n pointer.set(newData as Data, path, value)\n }\n\n onChange?.(newData)\n\n if (sessionStorageId && typeof window !== 'undefined') {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(newData)\n )\n }\n\n validateBySchemaAndUpdateState(newData)\n\n setInternalData(newData)\n\n setShowAllErrors(false)\n },\n [internalData, onChange, onPathChange, validateBySchemaAndUpdateState]\n )\n\n // Mounted fields\n const handleMountField = useCallback((path: string) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: string) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<ContextState['handleSubmit']>(\n ({ formElement = null } = {}) => {\n if (!hasErrors()) {\n onSubmit?.(internalData as Data)\n formElement?.reset?.()\n if (scrollTopOnSubmit) {\n typeof window !== 'undefined' &&\n window?.scrollTo({ top: 0, behavior: 'smooth' })\n }\n } else {\n setShowAllErrors(true)\n onSubmitRequest?.()\n }\n return internalData\n },\n [internalData, scrollTopOnSubmit, hasErrors, onSubmit, onSubmitRequest]\n )\n\n useEffect(() => {\n // Mount procedure\n if (initialData) {\n // Validate the initial data to know if the user can submit, and to show errors if inputs are requested to with props\n validateBySchemaAndUpdateState(initialData)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Only run for mount and unmount\n }, [])\n\n return (\n <Context.Provider\n value={{\n data: internalData,\n handlePathChange,\n handleSubmit,\n errors: errorsRef.current,\n showAllErrors,\n setShowAllErrors,\n mountedFieldPaths: mountedFieldPathsRef.current,\n handleMountField,\n handleUnMountField,\n hasErrors,\n setPathWithError,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Provider.js","names":["React","useEffect","useRef","useMemo","useCallback","useState","pointer","ajv","ajvErrorsToFormErrors","Context","structuredClone","addListPath","paths","path","includes","concat","removeListPath","filter","thisPath","isArrayJsonPointer","Provider","_ref","defaultData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","scrollTopOnSubmit","sessionStorageId","children","rest","_objectWithoutProperties","_excluded","undefined","console","error","wasMounted","initialData","window","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","ajvSchemaValidator","compile","internalData","setInternalData","mountedFieldPathsRef","errorsRef","showAllErrors","setShowAllErrors","pathsWithErrorRef","hasErrors","Boolean","current","find","mountedFieldPath","validateBySchema","errors","validateBySchemaAndUpdateState","setPathWithError","hasError","handlePathChange","value","newData","match","set","_window$sessionStorag2","setItem","stringify","handleMountField","handleUnMountField","handleSubmit","formElement","_formElement$reset","reset","call","removeItem","_window","scrollTo","top","behavior","createElement","_objectSpread","mountedFieldPaths"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useEffect,\n useRef,\n useMemo,\n useCallback,\n useState,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { JSONSchema7 } from 'json-schema'\nimport ajv, { ajvErrorsToFormErrors } from '../../utils/ajv'\nimport { FormError } from '../../types'\nimport Context, { ContextState } from '../Context'\n\n/**\n * Deprecated, as it is supported my all mihor browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\nexport interface Props<Data extends JsonObject> {\n /** Default source data, only used if no other source is available, and not leading to updates if changed after mount */\n defaultData?: Partial<Data>\n /** Dynamic source data used as both initial data, and updates internal data if changed after mount */\n data?: Partial<Data>\n /** JSON Schema for validating the data, like during input or after attempting submit */\n schema?: JSONSchema7\n /** Change handler for the whole data set */\n onChange?: (data: Data) => void\n /** Change handler for each value */\n onPathChange?: (path: string, value: any) => void\n /** Submit called, data was valid (if validation available) */\n onSubmit?: (data: Data) => void\n /** Submit was requested, but data was invalid */\n onSubmitRequest?: () => void\n scrollTopOnSubmit?: boolean\n /** Key for caching the data in session storage */\n sessionStorageId?: string\n children: React.ReactNode\n}\n\ntype PathList = string[]\n\nfunction addListPath(paths: PathList, path: string): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nfunction removeListPath(paths: PathList, path: string): PathList {\n return paths.filter((thisPath) => thisPath !== path)\n}\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>({\n defaultData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n scrollTopOnSubmit,\n sessionStorageId,\n children,\n ...rest\n}: Props<Data>) {\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n console.error(\n 'Providing both data and sessionStorageId could lead to competing data sources. To provide default data to use only before anything is changed in the interface, use defaultData.'\n )\n }\n\n // State\n const wasMounted = useRef(false)\n const initialData = useMemo(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n return data ?? defaultData\n }, [data, defaultData, sessionStorageId])\n const ajvSchemaValidator = useMemo(\n () => (schema ? ajv.compile(schema) : undefined),\n [schema]\n )\n const [internalData, setInternalData] =\n useState<Partial<Data>>(initialData)\n const mountedFieldPathsRef = useRef<string[]>([])\n\n // Errors from provider validation (the whole data set)\n const errorsRef = useRef<Record<string, FormError>>({})\n const [showAllErrors, setShowAllErrors] = useState<boolean>(false)\n // Errors reported by fields, based on their direct validation rules\n const pathsWithErrorRef = useRef<string[]>([])\n\n const hasErrors = useCallback(\n () =>\n Boolean(\n mountedFieldPathsRef.current.find(\n (mountedFieldPath) =>\n errorsRef.current[mountedFieldPath] !== undefined ||\n pathsWithErrorRef.current.includes(mountedFieldPath)\n )\n ),\n []\n )\n\n useEffect(() => {\n if (!wasMounted.current) {\n wasMounted.current = true\n return\n }\n // When receivint the initial data, or receiving updated data by props, update the internal data (controlled state)\n setInternalData(data)\n }, [data])\n\n const validateBySchema = useCallback(\n (data: Partial<Data>): Record<string, Error> | undefined => {\n if (!ajvSchemaValidator) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvSchemaValidator(data)) {\n // Errors found\n const errors = ajvErrorsToFormErrors(ajvSchemaValidator.errors)\n return errors\n } else {\n return\n }\n },\n [ajvSchemaValidator]\n )\n\n const validateBySchemaAndUpdateState = useCallback(\n (data: Partial<Data>) => {\n errorsRef.current = validateBySchema(data) ?? {}\n },\n [validateBySchema]\n )\n\n const setPathWithError = useCallback(\n (path: string, hasError: boolean) => {\n pathsWithErrorRef.current = hasError\n ? addListPath(pathsWithErrorRef.current, path)\n : removeListPath(pathsWithErrorRef.current, path)\n },\n []\n )\n\n const handlePathChange = useCallback(\n (path, value) => {\n if (!path) {\n return\n }\n onPathChange?.(path, value)\n\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n const newData = structuredClone(\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalData ?? (path.match(isArrayJsonPointer) ? [] : {})\n )\n if (path !== '/') {\n pointer.set(newData as Data, path, value)\n }\n\n onChange?.(newData as Data)\n\n if (sessionStorageId && typeof window !== 'undefined') {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(newData)\n )\n }\n\n validateBySchemaAndUpdateState(newData)\n\n setInternalData(newData)\n\n setShowAllErrors(false)\n },\n [internalData, onChange, onPathChange, validateBySchemaAndUpdateState]\n )\n\n // Mounted fields\n const handleMountField = useCallback((path: string) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: string) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<ContextState['handleSubmit']>(\n ({ formElement = null } = {}) => {\n if (!hasErrors()) {\n onSubmit?.(internalData as Data)\n\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n\n if (scrollTopOnSubmit) {\n window?.scrollTo({ top: 0, behavior: 'smooth' })\n }\n }\n } else {\n setShowAllErrors(true)\n onSubmitRequest?.()\n }\n return internalData\n },\n [internalData, scrollTopOnSubmit, hasErrors, onSubmit, onSubmitRequest]\n )\n\n useEffect(() => {\n // Mount procedure\n if (initialData) {\n // Validate the initial data to know if the user can submit, and to show errors if inputs are requested to with props\n validateBySchemaAndUpdateState(initialData)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Only run for mount and unmount\n }, [])\n\n return (\n <Context.Provider\n value={{\n data: internalData,\n ...rest,\n handlePathChange,\n handleSubmit,\n errors: errorsRef.current,\n showAllErrors,\n setShowAllErrors,\n mountedFieldPaths: mountedFieldPathsRef.current,\n handleMountField,\n handleUnMountField,\n hasErrors,\n setPathWithError,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n"],"mappings":"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"}