@dnb/eufemia 10.4.2 → 10.6.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 (1473) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/cjs/components/accordion/Accordion.d.ts +240 -136
  3. package/cjs/components/accordion/Accordion.js +217 -252
  4. package/cjs/components/accordion/Accordion.js.map +1 -1
  5. package/cjs/components/accordion/AccordionContent.d.ts +12 -14
  6. package/cjs/components/accordion/AccordionContent.js +3 -15
  7. package/cjs/components/accordion/AccordionContent.js.map +1 -1
  8. package/cjs/components/accordion/AccordionContext.d.ts +17 -2
  9. package/cjs/components/accordion/AccordionContext.js.map +1 -1
  10. package/cjs/components/accordion/AccordionGroup.d.ts +10 -12
  11. package/cjs/components/accordion/AccordionGroup.js +63 -72
  12. package/cjs/components/accordion/AccordionGroup.js.map +1 -1
  13. package/cjs/components/accordion/AccordionHeader.d.ts +62 -92
  14. package/cjs/components/accordion/AccordionHeader.js +178 -251
  15. package/cjs/components/accordion/AccordionHeader.js.map +1 -1
  16. package/cjs/components/accordion/AccordionProviderContext.d.ts +16 -2
  17. package/cjs/components/accordion/AccordionProviderContext.js.map +1 -1
  18. package/cjs/components/accordion/AccordionStore.d.ts +7 -6
  19. package/cjs/components/accordion/AccordionStore.js +1 -1
  20. package/cjs/components/accordion/AccordionStore.js.map +1 -1
  21. package/cjs/components/accordion/defaultProps.d.ts +2 -0
  22. package/cjs/components/accordion/defaultProps.js +12 -0
  23. package/cjs/components/accordion/defaultProps.js.map +1 -0
  24. package/cjs/components/anchor/style/anchor-mixins.scss +26 -27
  25. package/cjs/components/anchor/style/dnb-anchor.css +27 -16
  26. package/cjs/components/anchor/style/dnb-anchor.min.css +1 -1
  27. package/cjs/components/anchor/style/dnb-anchor.scss +1 -1
  28. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +97 -44
  29. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  30. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +48 -22
  31. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.css +20 -10
  32. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  33. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.scss +4 -9
  34. package/cjs/components/autocomplete/Autocomplete.js +2 -2
  35. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  36. package/cjs/components/button/style/themes/button-mixins.scss +23 -4
  37. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.css +80 -82
  38. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -1
  39. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.scss +82 -54
  40. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  41. package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
  42. package/cjs/components/dialog/Dialog.d.ts +1 -1
  43. package/cjs/components/dialog/DialogContent.d.ts +1 -1
  44. package/cjs/components/dialog/DialogContent.js +4 -2
  45. package/cjs/components/dialog/DialogContent.js.map +1 -1
  46. package/cjs/components/dialog/parts/DialogAction.d.ts +5 -1
  47. package/cjs/components/dialog/parts/DialogAction.js +3 -2
  48. package/cjs/components/dialog/parts/DialogAction.js.map +1 -1
  49. package/cjs/components/form-row/FormRow.js.map +1 -1
  50. package/cjs/components/form-row/style/dnb-form-row.scss +2 -2
  51. package/cjs/components/form-set/FormSet.js.map +1 -1
  52. package/cjs/components/height-animation/HeightAnimation.d.ts +1 -1
  53. package/cjs/components/height-animation/HeightAnimation.js.map +1 -1
  54. package/cjs/components/height-animation/useHeightAnimation.js.map +1 -1
  55. package/cjs/components/icon/lib/SvgComparison.js.map +1 -1
  56. package/cjs/components/input/style/dnb-input.css +5 -0
  57. package/cjs/components/input/style/dnb-input.min.css +1 -1
  58. package/cjs/components/input/style/dnb-input.scss +7 -1
  59. package/cjs/components/input/style/themes/dnb-input-theme-sbanken.css +104 -0
  60. package/cjs/components/input/style/themes/dnb-input-theme-sbanken.min.css +1 -0
  61. package/cjs/components/input/style/themes/dnb-input-theme-sbanken.scss +126 -0
  62. package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
  63. package/cjs/components/input-masked/TextMask.js.map +1 -1
  64. package/cjs/components/modal/Modal.js +0 -2
  65. package/cjs/components/modal/Modal.js.map +1 -1
  66. package/cjs/components/modal/bodyScrollLock.js.map +1 -1
  67. package/cjs/components/number-format/NumberUtils.js +8 -6
  68. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  69. package/cjs/components/number-format/style/dnb-number-format.css +0 -7
  70. package/cjs/components/number-format/style/dnb-number-format.scss +0 -1
  71. package/cjs/components/pagination/PaginationInfinity.js.map +1 -1
  72. package/cjs/components/radio/Radio.js.map +1 -1
  73. package/cjs/components/section/style/themes/dnb-section-theme-ui.css +14 -7
  74. package/cjs/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  75. package/cjs/components/slider/hooks/useSliderEvents.js.map +1 -1
  76. package/cjs/components/slider/types.d.ts +1 -1
  77. package/cjs/components/slider/types.js.map +1 -1
  78. package/cjs/components/space/Space.d.ts +2 -2
  79. package/cjs/components/space/SpacingHelper.js.map +1 -1
  80. package/cjs/components/step-indicator/StepIndicatorProps.d.ts +1 -1
  81. package/cjs/components/table/TableAccordion.js.map +1 -1
  82. package/cjs/components/table/TableTr.js.map +1 -1
  83. package/cjs/components/textarea/Textarea.js.map +1 -1
  84. package/cjs/components/textarea/style/dnb-textarea.css +39 -1
  85. package/cjs/components/textarea/style/dnb-textarea.min.css +1 -1
  86. package/cjs/components/textarea/style/dnb-textarea.scss +20 -1
  87. package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +61 -0
  88. package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -0
  89. package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +72 -0
  90. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.css +0 -41
  91. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  92. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.scss +0 -22
  93. package/cjs/components/toggle-button/ToggleButton.js.map +1 -1
  94. package/cjs/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  95. package/cjs/components/tooltip/TooltipContainer.js.map +1 -1
  96. package/cjs/components/upload/Upload.js +2 -2
  97. package/cjs/components/upload/Upload.js.map +1 -1
  98. package/cjs/components/upload/useUpload.d.ts +1 -1
  99. package/cjs/components/upload/useUpload.js +2 -2
  100. package/cjs/components/upload/useUpload.js.map +1 -1
  101. package/cjs/elements/blockquote/Blockquote.d.ts +1 -1
  102. package/cjs/elements/blockquote/Blockquote.js.map +1 -1
  103. package/cjs/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +0 -2
  104. package/cjs/extensions/forms/DataContext/At.d.ts +13 -0
  105. package/cjs/extensions/forms/DataContext/At.js +60 -0
  106. package/cjs/extensions/forms/DataContext/At.js.map +1 -0
  107. package/cjs/extensions/forms/DataContext/Context.d.ts +19 -0
  108. package/cjs/extensions/forms/DataContext/Context.js +25 -0
  109. package/cjs/extensions/forms/DataContext/Context.js.map +1 -0
  110. package/cjs/extensions/forms/DataContext/Provider.d.ts +19 -0
  111. package/cjs/extensions/forms/DataContext/Provider.js +112 -0
  112. package/cjs/extensions/forms/DataContext/Provider.js.map +1 -0
  113. package/cjs/extensions/forms/DataContext/SubmitButton.d.ts +9 -0
  114. package/cjs/extensions/forms/DataContext/SubmitButton.js +30 -0
  115. package/cjs/extensions/forms/DataContext/SubmitButton.js.map +1 -0
  116. package/cjs/extensions/forms/DataContext/index.d.ts +13 -0
  117. package/cjs/extensions/forms/DataContext/index.js +20 -0
  118. package/cjs/extensions/forms/DataContext/index.js.map +1 -0
  119. package/cjs/extensions/forms/Field/ArraySelection.d.ts +12 -0
  120. package/cjs/extensions/forms/Field/ArraySelection.js +68 -0
  121. package/cjs/extensions/forms/Field/ArraySelection.js.map +1 -0
  122. package/cjs/extensions/forms/Field/BankAccountNumber.d.ts +10 -0
  123. package/cjs/extensions/forms/Field/BankAccountNumber.js +40 -0
  124. package/cjs/extensions/forms/Field/BankAccountNumber.js.map +1 -0
  125. package/cjs/extensions/forms/Field/Boolean.d.ts +10 -0
  126. package/cjs/extensions/forms/Field/Boolean.js +34 -0
  127. package/cjs/extensions/forms/Field/Boolean.js.map +1 -0
  128. package/cjs/extensions/forms/Field/Currency.d.ts +10 -0
  129. package/cjs/extensions/forms/Field/Currency.js +61 -0
  130. package/cjs/extensions/forms/Field/Currency.js.map +1 -0
  131. package/cjs/extensions/forms/Field/Date.d.ts +8 -0
  132. package/cjs/extensions/forms/Field/Date.js +59 -0
  133. package/cjs/extensions/forms/Field/Date.js.map +1 -0
  134. package/cjs/extensions/forms/Field/Email.d.ts +7 -0
  135. package/cjs/extensions/forms/Field/Email.js +34 -0
  136. package/cjs/extensions/forms/Field/Email.js.map +1 -0
  137. package/cjs/extensions/forms/Field/FirstName.d.ts +7 -0
  138. package/cjs/extensions/forms/Field/FirstName.js +31 -0
  139. package/cjs/extensions/forms/Field/FirstName.js.map +1 -0
  140. package/cjs/extensions/forms/Field/LastName.d.ts +7 -0
  141. package/cjs/extensions/forms/Field/LastName.js +31 -0
  142. package/cjs/extensions/forms/Field/LastName.js.map +1 -0
  143. package/cjs/extensions/forms/Field/NationalIdentityNumber.d.ts +10 -0
  144. package/cjs/extensions/forms/Field/NationalIdentityNumber.js +39 -0
  145. package/cjs/extensions/forms/Field/NationalIdentityNumber.js.map +1 -0
  146. package/cjs/extensions/forms/Field/Number.d.ts +31 -0
  147. package/cjs/extensions/forms/Field/Number.js +111 -0
  148. package/cjs/extensions/forms/Field/Number.js.map +1 -0
  149. package/cjs/extensions/forms/Field/Option.d.ts +9 -0
  150. package/cjs/extensions/forms/Field/Option.js +22 -0
  151. package/cjs/extensions/forms/Field/Option.js.map +1 -0
  152. package/cjs/extensions/forms/Field/OrganizationNumber.d.ts +10 -0
  153. package/cjs/extensions/forms/Field/OrganizationNumber.js +40 -0
  154. package/cjs/extensions/forms/Field/OrganizationNumber.js.map +1 -0
  155. package/cjs/extensions/forms/Field/PhoneNumber.d.ts +12 -0
  156. package/cjs/extensions/forms/Field/PhoneNumber.js +101 -0
  157. package/cjs/extensions/forms/Field/PhoneNumber.js.map +1 -0
  158. package/cjs/extensions/forms/Field/PostalCodeAndCity.d.ts +10 -0
  159. package/cjs/extensions/forms/Field/PostalCodeAndCity.js +59 -0
  160. package/cjs/extensions/forms/Field/PostalCodeAndCity.js.map +1 -0
  161. package/cjs/extensions/forms/Field/SelectCountry.d.ts +7 -0
  162. package/cjs/extensions/forms/Field/SelectCountry.js +38 -0
  163. package/cjs/extensions/forms/Field/SelectCountry.js.map +1 -0
  164. package/cjs/extensions/forms/Field/Selection.d.ts +13 -0
  165. package/cjs/extensions/forms/Field/Selection.js +120 -0
  166. package/cjs/extensions/forms/Field/Selection.js.map +1 -0
  167. package/cjs/extensions/forms/Field/String.d.ts +32 -0
  168. package/cjs/extensions/forms/Field/String.js +135 -0
  169. package/cjs/extensions/forms/Field/String.js.map +1 -0
  170. package/cjs/extensions/forms/Field/Toggle.d.ts +14 -0
  171. package/cjs/extensions/forms/Field/Toggle.js +129 -0
  172. package/cjs/extensions/forms/Field/Toggle.js.map +1 -0
  173. package/cjs/extensions/forms/Field/fields.scss +2 -0
  174. package/cjs/extensions/forms/Field/hooks/index.d.ts +1 -0
  175. package/cjs/extensions/forms/Field/hooks/index.js +14 -0
  176. package/cjs/extensions/forms/Field/hooks/index.js.map +1 -0
  177. package/cjs/extensions/forms/Field/hooks/useField.d.ts +11 -0
  178. package/cjs/extensions/forms/Field/hooks/useField.js +163 -0
  179. package/cjs/extensions/forms/Field/hooks/useField.js.map +1 -0
  180. package/cjs/extensions/forms/Field/index.d.ts +39 -0
  181. package/cjs/extensions/forms/Field/index.js +48 -0
  182. package/cjs/extensions/forms/Field/index.js.map +1 -0
  183. package/cjs/extensions/forms/Field/style/dnb-number.css +11 -0
  184. package/cjs/extensions/forms/Field/style/dnb-number.min.css +1 -0
  185. package/cjs/extensions/forms/Field/style/dnb-number.scss +19 -0
  186. package/cjs/extensions/forms/Field/style/dnb-phone-number.css +23 -0
  187. package/cjs/extensions/forms/Field/style/dnb-phone-number.min.css +1 -0
  188. package/cjs/extensions/forms/Field/style/dnb-phone-number.scss +28 -0
  189. package/cjs/extensions/forms/Field/style/dnb-postal-code-and-city.css +19 -0
  190. package/cjs/extensions/forms/Field/style/dnb-postal-code-and-city.min.css +1 -0
  191. package/cjs/extensions/forms/Field/style/dnb-postal-code-and-city.scss +25 -0
  192. package/cjs/extensions/forms/Field/style/dnb-selection.css +6 -0
  193. package/cjs/extensions/forms/Field/style/dnb-selection.min.css +1 -0
  194. package/cjs/extensions/forms/Field/style/dnb-selection.scss +15 -0
  195. package/cjs/extensions/forms/Field/style/dnb-string.css +11 -0
  196. package/cjs/extensions/forms/Field/style/dnb-string.min.css +1 -0
  197. package/cjs/extensions/forms/Field/style/dnb-string.scss +19 -0
  198. package/cjs/extensions/forms/Field/style/index.d.ts +6 -0
  199. package/cjs/extensions/forms/Field/style/index.js +5 -0
  200. package/cjs/extensions/forms/Field/style/index.js.map +1 -0
  201. package/cjs/extensions/forms/Field/style/index.scss +5 -0
  202. package/cjs/extensions/forms/Field/style.d.ts +5 -0
  203. package/cjs/extensions/forms/Field/style.js +4 -0
  204. package/cjs/extensions/forms/Field/style.js.map +1 -0
  205. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +12 -0
  206. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +77 -0
  207. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -0
  208. package/cjs/extensions/forms/FieldBlock/index.d.ts +1 -0
  209. package/cjs/extensions/forms/FieldBlock/index.js +14 -0
  210. package/cjs/extensions/forms/FieldBlock/index.js.map +1 -0
  211. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +15 -0
  212. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -0
  213. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +19 -0
  214. package/cjs/extensions/forms/FieldBlock/style/index.d.ts +5 -0
  215. package/cjs/extensions/forms/FieldBlock/style/index.js +4 -0
  216. package/cjs/extensions/forms/FieldBlock/style/index.js.map +1 -0
  217. package/cjs/extensions/forms/FieldBlock/style.d.ts +5 -0
  218. package/cjs/extensions/forms/FieldBlock/style.js +4 -0
  219. package/cjs/extensions/forms/FieldBlock/style.js.map +1 -0
  220. package/cjs/extensions/forms/FieldGroup/FieldGroup.d.ts +17 -0
  221. package/cjs/extensions/forms/FieldGroup/FieldGroup.js +95 -0
  222. package/cjs/extensions/forms/FieldGroup/FieldGroup.js.map +1 -0
  223. package/cjs/extensions/forms/FieldGroup/index.d.ts +2 -0
  224. package/cjs/extensions/forms/FieldGroup/index.js +27 -0
  225. package/cjs/extensions/forms/FieldGroup/index.js.map +1 -0
  226. package/cjs/extensions/forms/Forms.d.ts +3 -0
  227. package/cjs/extensions/forms/Forms.js +22 -0
  228. package/cjs/extensions/forms/Forms.js.map +1 -0
  229. package/cjs/extensions/forms/Layout/ButtonRow.d.ts +10 -0
  230. package/cjs/extensions/forms/Layout/ButtonRow.js +25 -0
  231. package/cjs/extensions/forms/Layout/ButtonRow.js.map +1 -0
  232. package/cjs/extensions/forms/Layout/Card.d.ts +14 -0
  233. package/cjs/extensions/forms/Layout/Card.js +45 -0
  234. package/cjs/extensions/forms/Layout/Card.js.map +1 -0
  235. package/cjs/extensions/forms/Layout/Column.d.ts +7 -0
  236. package/cjs/extensions/forms/Layout/Column.js +26 -0
  237. package/cjs/extensions/forms/Layout/Column.js.map +1 -0
  238. package/cjs/extensions/forms/Layout/FlexContainer.d.ts +23 -0
  239. package/cjs/extensions/forms/Layout/FlexContainer.js +104 -0
  240. package/cjs/extensions/forms/Layout/FlexContainer.js.map +1 -0
  241. package/cjs/extensions/forms/Layout/FlexItem.d.ts +12 -0
  242. package/cjs/extensions/forms/Layout/FlexItem.js +28 -0
  243. package/cjs/extensions/forms/Layout/FlexItem.js.map +1 -0
  244. package/cjs/extensions/forms/Layout/InfoCardSection.d.ts +8 -0
  245. package/cjs/extensions/forms/Layout/InfoCardSection.js +25 -0
  246. package/cjs/extensions/forms/Layout/InfoCardSection.js.map +1 -0
  247. package/cjs/extensions/forms/Layout/MainHeading.d.ts +10 -0
  248. package/cjs/extensions/forms/Layout/MainHeading.js +27 -0
  249. package/cjs/extensions/forms/Layout/MainHeading.js.map +1 -0
  250. package/cjs/extensions/forms/Layout/Row.d.ts +7 -0
  251. package/cjs/extensions/forms/Layout/Row.js +26 -0
  252. package/cjs/extensions/forms/Layout/Row.js.map +1 -0
  253. package/cjs/extensions/forms/Layout/Section.d.ts +13 -0
  254. package/cjs/extensions/forms/Layout/Section.js +29 -0
  255. package/cjs/extensions/forms/Layout/Section.js.map +1 -0
  256. package/cjs/extensions/forms/Layout/SubHeading.d.ts +10 -0
  257. package/cjs/extensions/forms/Layout/SubHeading.js +26 -0
  258. package/cjs/extensions/forms/Layout/SubHeading.js.map +1 -0
  259. package/cjs/extensions/forms/Layout/index.d.ts +23 -0
  260. package/cjs/extensions/forms/Layout/index.js +32 -0
  261. package/cjs/extensions/forms/Layout/index.js.map +1 -0
  262. package/cjs/extensions/forms/Layout/style/dnb-button-row.css +7 -0
  263. package/cjs/extensions/forms/Layout/style/dnb-button-row.min.css +1 -0
  264. package/cjs/extensions/forms/Layout/style/dnb-button-row.scss +5 -0
  265. package/cjs/extensions/forms/Layout/style/dnb-card.css +13 -0
  266. package/cjs/extensions/forms/Layout/style/dnb-card.min.css +1 -0
  267. package/cjs/extensions/forms/Layout/style/dnb-card.scss +15 -0
  268. package/cjs/extensions/forms/Layout/style/dnb-flex-container.css +63 -0
  269. package/cjs/extensions/forms/Layout/style/dnb-flex-container.min.css +1 -0
  270. package/cjs/extensions/forms/Layout/style/dnb-flex-container.scss +84 -0
  271. package/cjs/extensions/forms/Layout/style/dnb-flex-item.css +6 -0
  272. package/cjs/extensions/forms/Layout/style/dnb-flex-item.min.css +1 -0
  273. package/cjs/extensions/forms/Layout/style/dnb-flex-item.scss +9 -0
  274. package/cjs/extensions/forms/Layout/style/dnb-section.css +3 -0
  275. package/cjs/extensions/forms/Layout/style/dnb-section.min.css +1 -0
  276. package/cjs/extensions/forms/Layout/style/dnb-section.scss +3 -0
  277. package/cjs/extensions/forms/Layout/style/index.d.ts +9 -0
  278. package/cjs/extensions/forms/Layout/style/index.js +8 -0
  279. package/cjs/extensions/forms/Layout/style/index.js.map +1 -0
  280. package/cjs/extensions/forms/Layout/style/index.scss +5 -0
  281. package/cjs/extensions/forms/Layout/style.d.ts +5 -0
  282. package/cjs/extensions/forms/Layout/style.js +4 -0
  283. package/cjs/extensions/forms/Layout/style.js.map +1 -0
  284. package/cjs/extensions/forms/StepsLayout/Buttons.d.ts +9 -0
  285. package/cjs/extensions/forms/StepsLayout/Buttons.js +27 -0
  286. package/cjs/extensions/forms/StepsLayout/Buttons.js.map +1 -0
  287. package/cjs/extensions/forms/StepsLayout/NextButton.d.ts +10 -0
  288. package/cjs/extensions/forms/StepsLayout/NextButton.js +37 -0
  289. package/cjs/extensions/forms/StepsLayout/NextButton.js.map +1 -0
  290. package/cjs/extensions/forms/StepsLayout/PreviousButton.d.ts +10 -0
  291. package/cjs/extensions/forms/StepsLayout/PreviousButton.js +37 -0
  292. package/cjs/extensions/forms/StepsLayout/PreviousButton.js.map +1 -0
  293. package/cjs/extensions/forms/StepsLayout/Step.d.ts +15 -0
  294. package/cjs/extensions/forms/StepsLayout/Step.js +37 -0
  295. package/cjs/extensions/forms/StepsLayout/Step.js.map +1 -0
  296. package/cjs/extensions/forms/StepsLayout/StepsContext.d.ts +8 -0
  297. package/cjs/extensions/forms/StepsLayout/StepsContext.js +12 -0
  298. package/cjs/extensions/forms/StepsLayout/StepsContext.js.map +1 -0
  299. package/cjs/extensions/forms/StepsLayout/StepsLayout.d.ts +19 -0
  300. package/cjs/extensions/forms/StepsLayout/StepsLayout.js +116 -0
  301. package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +1 -0
  302. package/cjs/extensions/forms/StepsLayout/index.d.ts +3 -0
  303. package/cjs/extensions/forms/StepsLayout/index.js +18 -0
  304. package/cjs/extensions/forms/StepsLayout/index.js.map +1 -0
  305. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.css +25 -0
  306. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -0
  307. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +23 -0
  308. package/cjs/extensions/forms/StepsLayout/style/index.d.ts +5 -0
  309. package/cjs/extensions/forms/StepsLayout/style/index.js +4 -0
  310. package/cjs/extensions/forms/StepsLayout/style/index.js.map +1 -0
  311. package/cjs/extensions/forms/StepsLayout/style/index.scss +1 -0
  312. package/cjs/extensions/forms/StepsLayout/style.d.ts +5 -0
  313. package/cjs/extensions/forms/StepsLayout/style.js +4 -0
  314. package/cjs/extensions/forms/StepsLayout/style.js.map +1 -0
  315. package/cjs/extensions/forms/Value/BankAccountNumber.d.ts +7 -0
  316. package/cjs/extensions/forms/Value/BankAccountNumber.js +32 -0
  317. package/cjs/extensions/forms/Value/BankAccountNumber.js.map +1 -0
  318. package/cjs/extensions/forms/Value/Boolean.d.ts +8 -0
  319. package/cjs/extensions/forms/Value/Boolean.js +37 -0
  320. package/cjs/extensions/forms/Value/Boolean.js.map +1 -0
  321. package/cjs/extensions/forms/Value/Currency.d.ts +7 -0
  322. package/cjs/extensions/forms/Value/Currency.js +26 -0
  323. package/cjs/extensions/forms/Value/Currency.js.map +1 -0
  324. package/cjs/extensions/forms/Value/Date.d.ts +7 -0
  325. package/cjs/extensions/forms/Value/Date.js +28 -0
  326. package/cjs/extensions/forms/Value/Date.js.map +1 -0
  327. package/cjs/extensions/forms/Value/Email.d.ts +7 -0
  328. package/cjs/extensions/forms/Value/Email.js +28 -0
  329. package/cjs/extensions/forms/Value/Email.js.map +1 -0
  330. package/cjs/extensions/forms/Value/FirstName.d.ts +7 -0
  331. package/cjs/extensions/forms/Value/FirstName.js +28 -0
  332. package/cjs/extensions/forms/Value/FirstName.js.map +1 -0
  333. package/cjs/extensions/forms/Value/LastName.d.ts +7 -0
  334. package/cjs/extensions/forms/Value/LastName.js +28 -0
  335. package/cjs/extensions/forms/Value/LastName.js.map +1 -0
  336. package/cjs/extensions/forms/Value/NationalIdentityNumber.d.ts +7 -0
  337. package/cjs/extensions/forms/Value/NationalIdentityNumber.js +32 -0
  338. package/cjs/extensions/forms/Value/NationalIdentityNumber.js.map +1 -0
  339. package/cjs/extensions/forms/Value/Number.d.ts +14 -0
  340. package/cjs/extensions/forms/Value/Number.js +44 -0
  341. package/cjs/extensions/forms/Value/Number.js.map +1 -0
  342. package/cjs/extensions/forms/Value/PhoneNumber.d.ts +7 -0
  343. package/cjs/extensions/forms/Value/PhoneNumber.js +32 -0
  344. package/cjs/extensions/forms/Value/PhoneNumber.js.map +1 -0
  345. package/cjs/extensions/forms/Value/String.d.ts +8 -0
  346. package/cjs/extensions/forms/Value/String.js +34 -0
  347. package/cjs/extensions/forms/Value/String.js.map +1 -0
  348. package/cjs/extensions/forms/Value/hooks/index.d.ts +1 -0
  349. package/cjs/extensions/forms/Value/hooks/index.js +14 -0
  350. package/cjs/extensions/forms/Value/hooks/index.js.map +1 -0
  351. package/cjs/extensions/forms/Value/hooks/useValue.d.ts +2 -0
  352. package/cjs/extensions/forms/Value/hooks/useValue.js +31 -0
  353. package/cjs/extensions/forms/Value/hooks/useValue.js.map +1 -0
  354. package/cjs/extensions/forms/Value/index.d.ts +25 -0
  355. package/cjs/extensions/forms/Value/index.js +34 -0
  356. package/cjs/extensions/forms/Value/index.js.map +1 -0
  357. package/cjs/extensions/forms/ValueBlock/ValueBlock.d.ts +11 -0
  358. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +38 -0
  359. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -0
  360. package/cjs/extensions/forms/ValueBlock/index.d.ts +1 -0
  361. package/cjs/extensions/forms/ValueBlock/index.js +14 -0
  362. package/cjs/extensions/forms/ValueBlock/index.js.map +1 -0
  363. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +16 -0
  364. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -0
  365. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.scss +19 -0
  366. package/cjs/extensions/forms/ValueBlock/style/index.d.ts +5 -0
  367. package/cjs/extensions/forms/ValueBlock/style/index.js +4 -0
  368. package/cjs/extensions/forms/ValueBlock/style/index.js.map +1 -0
  369. package/cjs/extensions/forms/ValueBlock/style/index.scss +1 -0
  370. package/cjs/extensions/forms/ValueBlock/style.d.ts +5 -0
  371. package/cjs/extensions/forms/ValueBlock/style.js +4 -0
  372. package/cjs/extensions/forms/ValueBlock/style.js.map +1 -0
  373. package/cjs/extensions/forms/Visibility/Visibility.d.ts +24 -0
  374. package/cjs/extensions/forms/Visibility/Visibility.js +55 -0
  375. package/cjs/extensions/forms/Visibility/Visibility.js.map +1 -0
  376. package/cjs/extensions/forms/Visibility/index.d.ts +1 -0
  377. package/cjs/extensions/forms/Visibility/index.js +14 -0
  378. package/cjs/extensions/forms/Visibility/index.js.map +1 -0
  379. package/cjs/extensions/forms/component-types.d.ts +4 -0
  380. package/cjs/extensions/forms/component-types.js +1 -0
  381. package/cjs/extensions/forms/component-types.js.map +1 -0
  382. package/cjs/extensions/forms/constants/countries.d.ts +6 -0
  383. package/cjs/extensions/forms/constants/countries.js +969 -0
  384. package/cjs/extensions/forms/constants/countries.js.map +1 -0
  385. package/cjs/extensions/forms/field-types.d.ts +52 -0
  386. package/cjs/extensions/forms/field-types.js +1 -0
  387. package/cjs/extensions/forms/field-types.js.map +1 -0
  388. package/cjs/extensions/forms/index.d.ts +13 -0
  389. package/cjs/extensions/forms/index.js +110 -0
  390. package/cjs/extensions/forms/index.js.map +1 -0
  391. package/cjs/extensions/forms/style/dnb-forms.css +237 -0
  392. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -0
  393. package/cjs/extensions/forms/style/dnb-forms.scss +6 -0
  394. package/cjs/extensions/forms/style.d.ts +5 -0
  395. package/cjs/extensions/forms/style.js +4 -0
  396. package/cjs/extensions/forms/style.js.map +1 -0
  397. package/cjs/extensions/forms/types.d.ts +11 -0
  398. package/cjs/extensions/forms/types.js +20 -0
  399. package/cjs/extensions/forms/types.js.map +1 -0
  400. package/cjs/extensions/forms/utils/TestElement/TestElement.d.ts +6 -0
  401. package/cjs/extensions/forms/utils/TestElement/TestElement.js +17 -0
  402. package/cjs/extensions/forms/utils/TestElement/TestElement.js.map +1 -0
  403. package/cjs/extensions/forms/utils/TestElement/style/dnb-test-element.css +6 -0
  404. package/cjs/extensions/forms/utils/TestElement/style/dnb-test-element.min.css +1 -0
  405. package/cjs/extensions/forms/utils/TestElement/style/dnb-test-element.scss +6 -0
  406. package/cjs/extensions/forms/utils/TestElement/style/index.d.ts +5 -0
  407. package/cjs/extensions/forms/utils/TestElement/style/index.js +4 -0
  408. package/cjs/extensions/forms/utils/TestElement/style/index.js.map +1 -0
  409. package/cjs/extensions/forms/utils/TestElement/style.d.ts +5 -0
  410. package/cjs/extensions/forms/utils/TestElement/style.js +4 -0
  411. package/cjs/extensions/forms/utils/TestElement/style.js.map +1 -0
  412. package/cjs/extensions/forms/utils/ajv.d.ts +14 -0
  413. package/cjs/extensions/forms/utils/ajv.js +69 -0
  414. package/cjs/extensions/forms/utils/ajv.js.map +1 -0
  415. package/cjs/extensions/forms/utils/components.d.ts +3 -0
  416. package/cjs/extensions/forms/utils/components.js +32 -0
  417. package/cjs/extensions/forms/utils/components.js.map +1 -0
  418. package/cjs/extensions/forms/utils/index.d.ts +3 -0
  419. package/cjs/extensions/forms/utils/index.js +41 -0
  420. package/cjs/extensions/forms/utils/index.js.map +1 -0
  421. package/cjs/extensions/forms/utils/numbers.d.ts +17 -0
  422. package/cjs/extensions/forms/utils/numbers.js +42 -0
  423. package/cjs/extensions/forms/utils/numbers.js.map +1 -0
  424. package/cjs/extensions/forms/value-types.d.ts +15 -0
  425. package/cjs/extensions/forms/value-types.js +1 -0
  426. package/cjs/extensions/forms/value-types.js.map +1 -0
  427. package/cjs/extensions/index.d.ts +2 -1
  428. package/cjs/extensions/index.js +7 -0
  429. package/cjs/extensions/index.js.map +1 -1
  430. package/cjs/extensions/lib.d.ts +22 -1
  431. package/cjs/extensions/lib.js +8 -0
  432. package/cjs/extensions/lib.js.map +1 -1
  433. package/cjs/extensions/payment-card/utils/Types.js.map +1 -1
  434. package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
  435. package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  436. package/cjs/shared/Context.d.ts +2 -0
  437. package/cjs/shared/Context.js.map +1 -1
  438. package/cjs/shared/Eufemia.d.ts +1 -1
  439. package/cjs/shared/Eufemia.js +2 -2
  440. package/cjs/shared/Eufemia.js.map +1 -1
  441. package/cjs/shared/VisibilityByTheme.d.ts +1 -1
  442. package/cjs/shared/VisibilityByTheme.js.map +1 -1
  443. package/cjs/shared/helpers.d.ts +2 -2
  444. package/cjs/shared/helpers.js.map +1 -1
  445. package/cjs/shared/locales/en-GB.d.ts +39 -0
  446. package/cjs/shared/locales/en-GB.js +39 -0
  447. package/cjs/shared/locales/en-GB.js.map +1 -1
  448. package/cjs/shared/locales/en-US.d.ts +39 -0
  449. package/cjs/shared/locales/index.d.ts +78 -0
  450. package/cjs/shared/locales/nb-NO.d.ts +39 -0
  451. package/cjs/shared/locales/nb-NO.js +39 -0
  452. package/cjs/shared/locales/nb-NO.js.map +1 -1
  453. package/cjs/style/core/utilities.scss +40 -8
  454. package/cjs/style/dnb-ui-components.css +71 -24
  455. package/cjs/style/dnb-ui-components.min.css +1 -1
  456. package/cjs/style/dnb-ui-extensions.css +238 -0
  457. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  458. package/cjs/style/dnb-ui-extensions.scss +1 -0
  459. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +17 -11
  460. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  461. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +105 -82
  462. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  463. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +238 -0
  464. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  465. package/cjs/style/themes/theme-sbanken/properties.js +4 -4
  466. package/cjs/style/themes/theme-sbanken/properties.js.map +1 -1
  467. package/cjs/style/themes/theme-sbanken/properties.scss +4 -4
  468. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +4 -11
  469. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  470. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +429 -333
  471. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -1
  472. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
  473. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +0 -7
  474. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +238 -0
  475. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  476. package/cjs/style/themes/theme-ui/ui-theme-basis.css +17 -11
  477. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  478. package/cjs/style/themes/theme-ui/ui-theme-components.css +105 -82
  479. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  480. package/cjs/style/themes/theme-ui/ui-theme-elements.css +17 -11
  481. package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  482. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +238 -0
  483. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  484. package/cjs/style/themes/theme-ui/ui-theme-tags.css +24 -12
  485. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  486. package/components/accordion/Accordion.d.ts +240 -136
  487. package/components/accordion/Accordion.js +214 -251
  488. package/components/accordion/Accordion.js.map +1 -1
  489. package/components/accordion/AccordionContent.d.ts +12 -14
  490. package/components/accordion/AccordionContent.js +5 -17
  491. package/components/accordion/AccordionContent.js.map +1 -1
  492. package/components/accordion/AccordionContext.d.ts +17 -2
  493. package/components/accordion/AccordionContext.js.map +1 -1
  494. package/components/accordion/AccordionGroup.d.ts +10 -12
  495. package/components/accordion/AccordionGroup.js +60 -71
  496. package/components/accordion/AccordionGroup.js.map +1 -1
  497. package/components/accordion/AccordionHeader.d.ts +62 -92
  498. package/components/accordion/AccordionHeader.js +175 -251
  499. package/components/accordion/AccordionHeader.js.map +1 -1
  500. package/components/accordion/AccordionProviderContext.d.ts +16 -2
  501. package/components/accordion/AccordionProviderContext.js.map +1 -1
  502. package/components/accordion/AccordionStore.d.ts +7 -6
  503. package/components/accordion/AccordionStore.js +2 -2
  504. package/components/accordion/AccordionStore.js.map +1 -1
  505. package/components/accordion/defaultProps.d.ts +2 -0
  506. package/components/accordion/defaultProps.js +5 -0
  507. package/components/accordion/defaultProps.js.map +1 -0
  508. package/components/anchor/style/anchor-mixins.scss +26 -27
  509. package/components/anchor/style/dnb-anchor.css +27 -16
  510. package/components/anchor/style/dnb-anchor.min.css +1 -1
  511. package/components/anchor/style/dnb-anchor.scss +1 -1
  512. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +97 -44
  513. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  514. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +48 -22
  515. package/components/anchor/style/themes/dnb-anchor-theme-ui.css +20 -10
  516. package/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  517. package/components/anchor/style/themes/dnb-anchor-theme-ui.scss +4 -9
  518. package/components/autocomplete/Autocomplete.js +2 -2
  519. package/components/autocomplete/Autocomplete.js.map +1 -1
  520. package/components/button/style/themes/button-mixins.scss +23 -4
  521. package/components/button/style/themes/dnb-button-theme-sbanken.css +80 -82
  522. package/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -1
  523. package/components/button/style/themes/dnb-button-theme-sbanken.scss +82 -54
  524. package/components/date-picker/DatePicker.js.map +1 -1
  525. package/components/date-picker/DatePickerCalendar.js.map +1 -1
  526. package/components/dialog/Dialog.d.ts +1 -1
  527. package/components/dialog/DialogContent.d.ts +1 -1
  528. package/components/dialog/DialogContent.js +4 -2
  529. package/components/dialog/DialogContent.js.map +1 -1
  530. package/components/dialog/parts/DialogAction.d.ts +5 -1
  531. package/components/dialog/parts/DialogAction.js +3 -2
  532. package/components/dialog/parts/DialogAction.js.map +1 -1
  533. package/components/form-row/FormRow.js.map +1 -1
  534. package/components/form-row/style/dnb-form-row.scss +2 -2
  535. package/components/form-set/FormSet.js.map +1 -1
  536. package/components/height-animation/HeightAnimation.d.ts +1 -1
  537. package/components/height-animation/HeightAnimation.js.map +1 -1
  538. package/components/height-animation/useHeightAnimation.js.map +1 -1
  539. package/components/icon/lib/SvgComparison.js.map +1 -1
  540. package/components/input/style/dnb-input.css +5 -0
  541. package/components/input/style/dnb-input.min.css +1 -1
  542. package/components/input/style/dnb-input.scss +7 -1
  543. package/components/input/style/themes/dnb-input-theme-sbanken.css +104 -0
  544. package/components/input/style/themes/dnb-input-theme-sbanken.min.css +1 -0
  545. package/components/input/style/themes/dnb-input-theme-sbanken.scss +126 -0
  546. package/components/input-masked/InputMaskedUtils.js.map +1 -1
  547. package/components/input-masked/TextMask.js.map +1 -1
  548. package/components/modal/Modal.js +0 -2
  549. package/components/modal/Modal.js.map +1 -1
  550. package/components/modal/bodyScrollLock.js.map +1 -1
  551. package/components/number-format/NumberUtils.js +8 -6
  552. package/components/number-format/NumberUtils.js.map +1 -1
  553. package/components/number-format/style/dnb-number-format.css +0 -7
  554. package/components/number-format/style/dnb-number-format.scss +0 -1
  555. package/components/pagination/PaginationInfinity.js.map +1 -1
  556. package/components/radio/Radio.js.map +1 -1
  557. package/components/section/style/themes/dnb-section-theme-ui.css +14 -7
  558. package/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  559. package/components/slider/hooks/useSliderEvents.js.map +1 -1
  560. package/components/slider/types.d.ts +1 -1
  561. package/components/slider/types.js.map +1 -1
  562. package/components/space/Space.d.ts +2 -2
  563. package/components/space/SpacingHelper.js.map +1 -1
  564. package/components/step-indicator/StepIndicatorProps.d.ts +1 -1
  565. package/components/table/TableAccordion.js.map +1 -1
  566. package/components/table/TableTr.js.map +1 -1
  567. package/components/textarea/Textarea.js.map +1 -1
  568. package/components/textarea/style/dnb-textarea.css +39 -1
  569. package/components/textarea/style/dnb-textarea.min.css +1 -1
  570. package/components/textarea/style/dnb-textarea.scss +20 -1
  571. package/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +61 -0
  572. package/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -0
  573. package/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +72 -0
  574. package/components/textarea/style/themes/dnb-textarea-theme-ui.css +0 -41
  575. package/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  576. package/components/textarea/style/themes/dnb-textarea-theme-ui.scss +0 -22
  577. package/components/toggle-button/ToggleButton.js.map +1 -1
  578. package/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  579. package/components/tooltip/TooltipContainer.js.map +1 -1
  580. package/components/upload/Upload.js +2 -2
  581. package/components/upload/Upload.js.map +1 -1
  582. package/components/upload/useUpload.d.ts +1 -1
  583. package/components/upload/useUpload.js +2 -2
  584. package/components/upload/useUpload.js.map +1 -1
  585. package/elements/blockquote/Blockquote.d.ts +1 -1
  586. package/elements/blockquote/Blockquote.js.map +1 -1
  587. package/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +0 -2
  588. package/es/components/accordion/Accordion.d.ts +240 -136
  589. package/es/components/accordion/Accordion.js +210 -244
  590. package/es/components/accordion/Accordion.js.map +1 -1
  591. package/es/components/accordion/AccordionContent.d.ts +12 -14
  592. package/es/components/accordion/AccordionContent.js +5 -17
  593. package/es/components/accordion/AccordionContent.js.map +1 -1
  594. package/es/components/accordion/AccordionContext.d.ts +17 -2
  595. package/es/components/accordion/AccordionContext.js.map +1 -1
  596. package/es/components/accordion/AccordionGroup.d.ts +10 -12
  597. package/es/components/accordion/AccordionGroup.js +60 -71
  598. package/es/components/accordion/AccordionGroup.js.map +1 -1
  599. package/es/components/accordion/AccordionHeader.d.ts +62 -92
  600. package/es/components/accordion/AccordionHeader.js +176 -253
  601. package/es/components/accordion/AccordionHeader.js.map +1 -1
  602. package/es/components/accordion/AccordionProviderContext.d.ts +16 -2
  603. package/es/components/accordion/AccordionProviderContext.js.map +1 -1
  604. package/es/components/accordion/AccordionStore.d.ts +7 -6
  605. package/es/components/accordion/AccordionStore.js +2 -2
  606. package/es/components/accordion/AccordionStore.js.map +1 -1
  607. package/es/components/accordion/defaultProps.d.ts +2 -0
  608. package/es/components/accordion/defaultProps.js +5 -0
  609. package/es/components/accordion/defaultProps.js.map +1 -0
  610. package/es/components/anchor/style/anchor-mixins.scss +26 -27
  611. package/es/components/anchor/style/dnb-anchor.css +27 -16
  612. package/es/components/anchor/style/dnb-anchor.min.css +1 -1
  613. package/es/components/anchor/style/dnb-anchor.scss +1 -1
  614. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +97 -44
  615. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  616. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +48 -22
  617. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.css +20 -10
  618. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  619. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.scss +4 -9
  620. package/es/components/autocomplete/Autocomplete.js +2 -2
  621. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  622. package/es/components/button/style/themes/button-mixins.scss +23 -4
  623. package/es/components/button/style/themes/dnb-button-theme-sbanken.css +80 -82
  624. package/es/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -1
  625. package/es/components/button/style/themes/dnb-button-theme-sbanken.scss +82 -54
  626. package/es/components/date-picker/DatePicker.js.map +1 -1
  627. package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
  628. package/es/components/dialog/Dialog.d.ts +1 -1
  629. package/es/components/dialog/DialogContent.d.ts +1 -1
  630. package/es/components/dialog/DialogContent.js +4 -2
  631. package/es/components/dialog/DialogContent.js.map +1 -1
  632. package/es/components/dialog/parts/DialogAction.d.ts +5 -1
  633. package/es/components/dialog/parts/DialogAction.js +3 -2
  634. package/es/components/dialog/parts/DialogAction.js.map +1 -1
  635. package/es/components/form-row/FormRow.js.map +1 -1
  636. package/es/components/form-row/style/dnb-form-row.scss +2 -2
  637. package/es/components/form-set/FormSet.js.map +1 -1
  638. package/es/components/height-animation/HeightAnimation.d.ts +1 -1
  639. package/es/components/height-animation/HeightAnimation.js.map +1 -1
  640. package/es/components/height-animation/useHeightAnimation.js.map +1 -1
  641. package/es/components/icon/lib/SvgComparison.js.map +1 -1
  642. package/es/components/input/style/dnb-input.css +5 -0
  643. package/es/components/input/style/dnb-input.min.css +1 -1
  644. package/es/components/input/style/dnb-input.scss +7 -1
  645. package/es/components/input/style/themes/dnb-input-theme-sbanken.css +104 -0
  646. package/es/components/input/style/themes/dnb-input-theme-sbanken.min.css +1 -0
  647. package/es/components/input/style/themes/dnb-input-theme-sbanken.scss +126 -0
  648. package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
  649. package/es/components/input-masked/TextMask.js.map +1 -1
  650. package/es/components/modal/Modal.js +0 -2
  651. package/es/components/modal/Modal.js.map +1 -1
  652. package/es/components/modal/bodyScrollLock.js.map +1 -1
  653. package/es/components/number-format/NumberUtils.js +8 -6
  654. package/es/components/number-format/NumberUtils.js.map +1 -1
  655. package/es/components/number-format/style/dnb-number-format.css +0 -7
  656. package/es/components/number-format/style/dnb-number-format.scss +0 -1
  657. package/es/components/pagination/PaginationInfinity.js.map +1 -1
  658. package/es/components/radio/Radio.js.map +1 -1
  659. package/es/components/section/style/themes/dnb-section-theme-ui.css +14 -7
  660. package/es/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  661. package/es/components/slider/hooks/useSliderEvents.js.map +1 -1
  662. package/es/components/slider/types.d.ts +1 -1
  663. package/es/components/slider/types.js.map +1 -1
  664. package/es/components/space/Space.d.ts +2 -2
  665. package/es/components/space/SpacingHelper.js.map +1 -1
  666. package/es/components/step-indicator/StepIndicatorProps.d.ts +1 -1
  667. package/es/components/table/TableAccordion.js.map +1 -1
  668. package/es/components/table/TableTr.js.map +1 -1
  669. package/es/components/textarea/Textarea.js.map +1 -1
  670. package/es/components/textarea/style/dnb-textarea.css +39 -1
  671. package/es/components/textarea/style/dnb-textarea.min.css +1 -1
  672. package/es/components/textarea/style/dnb-textarea.scss +20 -1
  673. package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +61 -0
  674. package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -0
  675. package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +72 -0
  676. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.css +0 -41
  677. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  678. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.scss +0 -22
  679. package/es/components/toggle-button/ToggleButton.js.map +1 -1
  680. package/es/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  681. package/es/components/tooltip/TooltipContainer.js.map +1 -1
  682. package/es/components/upload/Upload.js +2 -2
  683. package/es/components/upload/Upload.js.map +1 -1
  684. package/es/components/upload/useUpload.d.ts +1 -1
  685. package/es/components/upload/useUpload.js +2 -2
  686. package/es/components/upload/useUpload.js.map +1 -1
  687. package/es/elements/blockquote/Blockquote.d.ts +1 -1
  688. package/es/elements/blockquote/Blockquote.js.map +1 -1
  689. package/es/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +0 -2
  690. package/es/extensions/forms/DataContext/At.d.ts +13 -0
  691. package/es/extensions/forms/DataContext/At.js +48 -0
  692. package/es/extensions/forms/DataContext/At.js.map +1 -0
  693. package/es/extensions/forms/DataContext/Context.d.ts +19 -0
  694. package/es/extensions/forms/DataContext/Context.js +16 -0
  695. package/es/extensions/forms/DataContext/Context.js.map +1 -0
  696. package/es/extensions/forms/DataContext/Provider.d.ts +19 -0
  697. package/es/extensions/forms/DataContext/Provider.js +102 -0
  698. package/es/extensions/forms/DataContext/Provider.js.map +1 -0
  699. package/es/extensions/forms/DataContext/SubmitButton.d.ts +9 -0
  700. package/es/extensions/forms/DataContext/SubmitButton.js +20 -0
  701. package/es/extensions/forms/DataContext/SubmitButton.js.map +1 -0
  702. package/es/extensions/forms/DataContext/index.d.ts +13 -0
  703. package/es/extensions/forms/DataContext/index.js +12 -0
  704. package/es/extensions/forms/DataContext/index.js.map +1 -0
  705. package/es/extensions/forms/Field/ArraySelection.d.ts +12 -0
  706. package/es/extensions/forms/Field/ArraySelection.js +60 -0
  707. package/es/extensions/forms/Field/ArraySelection.js.map +1 -0
  708. package/es/extensions/forms/Field/BankAccountNumber.d.ts +10 -0
  709. package/es/extensions/forms/Field/BankAccountNumber.js +28 -0
  710. package/es/extensions/forms/Field/BankAccountNumber.js.map +1 -0
  711. package/es/extensions/forms/Field/Boolean.d.ts +10 -0
  712. package/es/extensions/forms/Field/Boolean.js +23 -0
  713. package/es/extensions/forms/Field/Boolean.js.map +1 -0
  714. package/es/extensions/forms/Field/Currency.d.ts +10 -0
  715. package/es/extensions/forms/Field/Currency.js +50 -0
  716. package/es/extensions/forms/Field/Currency.js.map +1 -0
  717. package/es/extensions/forms/Field/Date.d.ts +8 -0
  718. package/es/extensions/forms/Field/Date.js +46 -0
  719. package/es/extensions/forms/Field/Date.js.map +1 -0
  720. package/es/extensions/forms/Field/Email.d.ts +7 -0
  721. package/es/extensions/forms/Field/Email.js +22 -0
  722. package/es/extensions/forms/Field/Email.js.map +1 -0
  723. package/es/extensions/forms/Field/FirstName.d.ts +7 -0
  724. package/es/extensions/forms/Field/FirstName.js +19 -0
  725. package/es/extensions/forms/Field/FirstName.js.map +1 -0
  726. package/es/extensions/forms/Field/LastName.d.ts +7 -0
  727. package/es/extensions/forms/Field/LastName.js +19 -0
  728. package/es/extensions/forms/Field/LastName.js.map +1 -0
  729. package/es/extensions/forms/Field/NationalIdentityNumber.d.ts +10 -0
  730. package/es/extensions/forms/Field/NationalIdentityNumber.js +27 -0
  731. package/es/extensions/forms/Field/NationalIdentityNumber.js.map +1 -0
  732. package/es/extensions/forms/Field/Number.d.ts +31 -0
  733. package/es/extensions/forms/Field/Number.js +100 -0
  734. package/es/extensions/forms/Field/Number.js.map +1 -0
  735. package/es/extensions/forms/Field/Option.d.ts +9 -0
  736. package/es/extensions/forms/Field/Option.js +14 -0
  737. package/es/extensions/forms/Field/Option.js.map +1 -0
  738. package/es/extensions/forms/Field/OrganizationNumber.d.ts +10 -0
  739. package/es/extensions/forms/Field/OrganizationNumber.js +28 -0
  740. package/es/extensions/forms/Field/OrganizationNumber.js.map +1 -0
  741. package/es/extensions/forms/Field/PhoneNumber.d.ts +12 -0
  742. package/es/extensions/forms/Field/PhoneNumber.js +87 -0
  743. package/es/extensions/forms/Field/PhoneNumber.js.map +1 -0
  744. package/es/extensions/forms/Field/PostalCodeAndCity.d.ts +10 -0
  745. package/es/extensions/forms/Field/PostalCodeAndCity.js +46 -0
  746. package/es/extensions/forms/Field/PostalCodeAndCity.js.map +1 -0
  747. package/es/extensions/forms/Field/SelectCountry.d.ts +7 -0
  748. package/es/extensions/forms/Field/SelectCountry.js +26 -0
  749. package/es/extensions/forms/Field/SelectCountry.js.map +1 -0
  750. package/es/extensions/forms/Field/Selection.d.ts +13 -0
  751. package/es/extensions/forms/Field/Selection.js +107 -0
  752. package/es/extensions/forms/Field/Selection.js.map +1 -0
  753. package/es/extensions/forms/Field/String.d.ts +32 -0
  754. package/es/extensions/forms/Field/String.js +122 -0
  755. package/es/extensions/forms/Field/String.js.map +1 -0
  756. package/es/extensions/forms/Field/Toggle.d.ts +14 -0
  757. package/es/extensions/forms/Field/Toggle.js +116 -0
  758. package/es/extensions/forms/Field/Toggle.js.map +1 -0
  759. package/es/extensions/forms/Field/fields.scss +2 -0
  760. package/es/extensions/forms/Field/hooks/index.d.ts +1 -0
  761. package/es/extensions/forms/Field/hooks/index.js +1 -0
  762. package/es/extensions/forms/Field/hooks/index.js.map +1 -0
  763. package/es/extensions/forms/Field/hooks/useField.d.ts +11 -0
  764. package/es/extensions/forms/Field/hooks/useField.js +150 -0
  765. package/es/extensions/forms/Field/hooks/useField.js.map +1 -0
  766. package/es/extensions/forms/Field/index.d.ts +39 -0
  767. package/es/extensions/forms/Field/index.js +40 -0
  768. package/es/extensions/forms/Field/index.js.map +1 -0
  769. package/es/extensions/forms/Field/style/dnb-number.css +11 -0
  770. package/es/extensions/forms/Field/style/dnb-number.min.css +1 -0
  771. package/es/extensions/forms/Field/style/dnb-number.scss +19 -0
  772. package/es/extensions/forms/Field/style/dnb-phone-number.css +23 -0
  773. package/es/extensions/forms/Field/style/dnb-phone-number.min.css +1 -0
  774. package/es/extensions/forms/Field/style/dnb-phone-number.scss +28 -0
  775. package/es/extensions/forms/Field/style/dnb-postal-code-and-city.css +19 -0
  776. package/es/extensions/forms/Field/style/dnb-postal-code-and-city.min.css +1 -0
  777. package/es/extensions/forms/Field/style/dnb-postal-code-and-city.scss +25 -0
  778. package/es/extensions/forms/Field/style/dnb-selection.css +6 -0
  779. package/es/extensions/forms/Field/style/dnb-selection.min.css +1 -0
  780. package/es/extensions/forms/Field/style/dnb-selection.scss +15 -0
  781. package/es/extensions/forms/Field/style/dnb-string.css +11 -0
  782. package/es/extensions/forms/Field/style/dnb-string.min.css +1 -0
  783. package/es/extensions/forms/Field/style/dnb-string.scss +19 -0
  784. package/es/extensions/forms/Field/style/index.d.ts +6 -0
  785. package/es/extensions/forms/Field/style/index.js +3 -0
  786. package/es/extensions/forms/Field/style/index.js.map +1 -0
  787. package/es/extensions/forms/Field/style/index.scss +5 -0
  788. package/es/extensions/forms/Field/style.d.ts +5 -0
  789. package/es/extensions/forms/Field/style.js +1 -0
  790. package/es/extensions/forms/Field/style.js.map +1 -0
  791. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +12 -0
  792. package/es/extensions/forms/FieldBlock/FieldBlock.js +69 -0
  793. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -0
  794. package/es/extensions/forms/FieldBlock/index.d.ts +1 -0
  795. package/es/extensions/forms/FieldBlock/index.js +1 -0
  796. package/es/extensions/forms/FieldBlock/index.js.map +1 -0
  797. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +15 -0
  798. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -0
  799. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +19 -0
  800. package/es/extensions/forms/FieldBlock/style/index.d.ts +5 -0
  801. package/es/extensions/forms/FieldBlock/style/index.js +1 -0
  802. package/es/extensions/forms/FieldBlock/style/index.js.map +1 -0
  803. package/es/extensions/forms/FieldBlock/style.d.ts +5 -0
  804. package/es/extensions/forms/FieldBlock/style.js +1 -0
  805. package/es/extensions/forms/FieldBlock/style.js.map +1 -0
  806. package/es/extensions/forms/FieldGroup/FieldGroup.d.ts +17 -0
  807. package/es/extensions/forms/FieldGroup/FieldGroup.js +77 -0
  808. package/es/extensions/forms/FieldGroup/FieldGroup.js.map +1 -0
  809. package/es/extensions/forms/FieldGroup/index.d.ts +2 -0
  810. package/es/extensions/forms/FieldGroup/index.js +3 -0
  811. package/es/extensions/forms/FieldGroup/index.js.map +1 -0
  812. package/es/extensions/forms/Forms.d.ts +3 -0
  813. package/es/extensions/forms/Forms.js +4 -0
  814. package/es/extensions/forms/Forms.js.map +1 -0
  815. package/es/extensions/forms/Layout/ButtonRow.d.ts +10 -0
  816. package/es/extensions/forms/Layout/ButtonRow.js +17 -0
  817. package/es/extensions/forms/Layout/ButtonRow.js.map +1 -0
  818. package/es/extensions/forms/Layout/Card.d.ts +14 -0
  819. package/es/extensions/forms/Layout/Card.js +37 -0
  820. package/es/extensions/forms/Layout/Card.js.map +1 -0
  821. package/es/extensions/forms/Layout/Column.d.ts +7 -0
  822. package/es/extensions/forms/Layout/Column.js +17 -0
  823. package/es/extensions/forms/Layout/Column.js.map +1 -0
  824. package/es/extensions/forms/Layout/FlexContainer.d.ts +23 -0
  825. package/es/extensions/forms/Layout/FlexContainer.js +91 -0
  826. package/es/extensions/forms/Layout/FlexContainer.js.map +1 -0
  827. package/es/extensions/forms/Layout/FlexItem.d.ts +12 -0
  828. package/es/extensions/forms/Layout/FlexItem.js +20 -0
  829. package/es/extensions/forms/Layout/FlexItem.js.map +1 -0
  830. package/es/extensions/forms/Layout/InfoCardSection.d.ts +8 -0
  831. package/es/extensions/forms/Layout/InfoCardSection.js +17 -0
  832. package/es/extensions/forms/Layout/InfoCardSection.js.map +1 -0
  833. package/es/extensions/forms/Layout/MainHeading.d.ts +10 -0
  834. package/es/extensions/forms/Layout/MainHeading.js +19 -0
  835. package/es/extensions/forms/Layout/MainHeading.js.map +1 -0
  836. package/es/extensions/forms/Layout/Row.d.ts +7 -0
  837. package/es/extensions/forms/Layout/Row.js +17 -0
  838. package/es/extensions/forms/Layout/Row.js.map +1 -0
  839. package/es/extensions/forms/Layout/Section.d.ts +13 -0
  840. package/es/extensions/forms/Layout/Section.js +21 -0
  841. package/es/extensions/forms/Layout/Section.js.map +1 -0
  842. package/es/extensions/forms/Layout/SubHeading.d.ts +10 -0
  843. package/es/extensions/forms/Layout/SubHeading.js +18 -0
  844. package/es/extensions/forms/Layout/SubHeading.js.map +1 -0
  845. package/es/extensions/forms/Layout/index.d.ts +23 -0
  846. package/es/extensions/forms/Layout/index.js +24 -0
  847. package/es/extensions/forms/Layout/index.js.map +1 -0
  848. package/es/extensions/forms/Layout/style/dnb-button-row.css +7 -0
  849. package/es/extensions/forms/Layout/style/dnb-button-row.min.css +1 -0
  850. package/es/extensions/forms/Layout/style/dnb-button-row.scss +5 -0
  851. package/es/extensions/forms/Layout/style/dnb-card.css +13 -0
  852. package/es/extensions/forms/Layout/style/dnb-card.min.css +1 -0
  853. package/es/extensions/forms/Layout/style/dnb-card.scss +15 -0
  854. package/es/extensions/forms/Layout/style/dnb-flex-container.css +63 -0
  855. package/es/extensions/forms/Layout/style/dnb-flex-container.min.css +1 -0
  856. package/es/extensions/forms/Layout/style/dnb-flex-container.scss +84 -0
  857. package/es/extensions/forms/Layout/style/dnb-flex-item.css +6 -0
  858. package/es/extensions/forms/Layout/style/dnb-flex-item.min.css +1 -0
  859. package/es/extensions/forms/Layout/style/dnb-flex-item.scss +9 -0
  860. package/es/extensions/forms/Layout/style/dnb-section.css +3 -0
  861. package/es/extensions/forms/Layout/style/dnb-section.min.css +1 -0
  862. package/es/extensions/forms/Layout/style/dnb-section.scss +3 -0
  863. package/es/extensions/forms/Layout/style/index.d.ts +9 -0
  864. package/es/extensions/forms/Layout/style/index.js +6 -0
  865. package/es/extensions/forms/Layout/style/index.js.map +1 -0
  866. package/es/extensions/forms/Layout/style/index.scss +5 -0
  867. package/es/extensions/forms/Layout/style.d.ts +5 -0
  868. package/es/extensions/forms/Layout/style.js +1 -0
  869. package/es/extensions/forms/Layout/style.js.map +1 -0
  870. package/es/extensions/forms/StepsLayout/Buttons.d.ts +9 -0
  871. package/es/extensions/forms/StepsLayout/Buttons.js +19 -0
  872. package/es/extensions/forms/StepsLayout/Buttons.js.map +1 -0
  873. package/es/extensions/forms/StepsLayout/NextButton.d.ts +10 -0
  874. package/es/extensions/forms/StepsLayout/NextButton.js +27 -0
  875. package/es/extensions/forms/StepsLayout/NextButton.js.map +1 -0
  876. package/es/extensions/forms/StepsLayout/PreviousButton.d.ts +10 -0
  877. package/es/extensions/forms/StepsLayout/PreviousButton.js +27 -0
  878. package/es/extensions/forms/StepsLayout/PreviousButton.js.map +1 -0
  879. package/es/extensions/forms/StepsLayout/Step.d.ts +15 -0
  880. package/es/extensions/forms/StepsLayout/Step.js +27 -0
  881. package/es/extensions/forms/StepsLayout/Step.js.map +1 -0
  882. package/es/extensions/forms/StepsLayout/StepsContext.d.ts +8 -0
  883. package/es/extensions/forms/StepsLayout/StepsContext.js +4 -0
  884. package/es/extensions/forms/StepsLayout/StepsContext.js.map +1 -0
  885. package/es/extensions/forms/StepsLayout/StepsLayout.d.ts +19 -0
  886. package/es/extensions/forms/StepsLayout/StepsLayout.js +105 -0
  887. package/es/extensions/forms/StepsLayout/StepsLayout.js.map +1 -0
  888. package/es/extensions/forms/StepsLayout/index.d.ts +3 -0
  889. package/es/extensions/forms/StepsLayout/index.js +4 -0
  890. package/es/extensions/forms/StepsLayout/index.js.map +1 -0
  891. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.css +25 -0
  892. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -0
  893. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +23 -0
  894. package/es/extensions/forms/StepsLayout/style/index.d.ts +5 -0
  895. package/es/extensions/forms/StepsLayout/style/index.js +1 -0
  896. package/es/extensions/forms/StepsLayout/style/index.js.map +1 -0
  897. package/es/extensions/forms/StepsLayout/style/index.scss +1 -0
  898. package/es/extensions/forms/StepsLayout/style.d.ts +5 -0
  899. package/es/extensions/forms/StepsLayout/style.js +1 -0
  900. package/es/extensions/forms/StepsLayout/style.js.map +1 -0
  901. package/es/extensions/forms/Value/BankAccountNumber.d.ts +7 -0
  902. package/es/extensions/forms/Value/BankAccountNumber.js +20 -0
  903. package/es/extensions/forms/Value/BankAccountNumber.js.map +1 -0
  904. package/es/extensions/forms/Value/Boolean.d.ts +8 -0
  905. package/es/extensions/forms/Value/Boolean.js +27 -0
  906. package/es/extensions/forms/Value/Boolean.js.map +1 -0
  907. package/es/extensions/forms/Value/Currency.d.ts +7 -0
  908. package/es/extensions/forms/Value/Currency.js +16 -0
  909. package/es/extensions/forms/Value/Currency.js.map +1 -0
  910. package/es/extensions/forms/Value/Date.d.ts +7 -0
  911. package/es/extensions/forms/Value/Date.js +16 -0
  912. package/es/extensions/forms/Value/Date.js.map +1 -0
  913. package/es/extensions/forms/Value/Email.d.ts +7 -0
  914. package/es/extensions/forms/Value/Email.js +16 -0
  915. package/es/extensions/forms/Value/Email.js.map +1 -0
  916. package/es/extensions/forms/Value/FirstName.d.ts +7 -0
  917. package/es/extensions/forms/Value/FirstName.js +16 -0
  918. package/es/extensions/forms/Value/FirstName.js.map +1 -0
  919. package/es/extensions/forms/Value/LastName.d.ts +7 -0
  920. package/es/extensions/forms/Value/LastName.js +16 -0
  921. package/es/extensions/forms/Value/LastName.js.map +1 -0
  922. package/es/extensions/forms/Value/NationalIdentityNumber.d.ts +7 -0
  923. package/es/extensions/forms/Value/NationalIdentityNumber.js +20 -0
  924. package/es/extensions/forms/Value/NationalIdentityNumber.js.map +1 -0
  925. package/es/extensions/forms/Value/Number.d.ts +14 -0
  926. package/es/extensions/forms/Value/Number.js +36 -0
  927. package/es/extensions/forms/Value/Number.js.map +1 -0
  928. package/es/extensions/forms/Value/PhoneNumber.d.ts +7 -0
  929. package/es/extensions/forms/Value/PhoneNumber.js +20 -0
  930. package/es/extensions/forms/Value/PhoneNumber.js.map +1 -0
  931. package/es/extensions/forms/Value/String.d.ts +8 -0
  932. package/es/extensions/forms/Value/String.js +26 -0
  933. package/es/extensions/forms/Value/String.js.map +1 -0
  934. package/es/extensions/forms/Value/hooks/index.d.ts +1 -0
  935. package/es/extensions/forms/Value/hooks/index.js +1 -0
  936. package/es/extensions/forms/Value/hooks/index.js.map +1 -0
  937. package/es/extensions/forms/Value/hooks/useValue.d.ts +2 -0
  938. package/es/extensions/forms/Value/hooks/useValue.js +22 -0
  939. package/es/extensions/forms/Value/hooks/useValue.js.map +1 -0
  940. package/es/extensions/forms/Value/index.d.ts +25 -0
  941. package/es/extensions/forms/Value/index.js +26 -0
  942. package/es/extensions/forms/Value/index.js.map +1 -0
  943. package/es/extensions/forms/ValueBlock/ValueBlock.d.ts +11 -0
  944. package/es/extensions/forms/ValueBlock/ValueBlock.js +30 -0
  945. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -0
  946. package/es/extensions/forms/ValueBlock/index.d.ts +1 -0
  947. package/es/extensions/forms/ValueBlock/index.js +1 -0
  948. package/es/extensions/forms/ValueBlock/index.js.map +1 -0
  949. package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +16 -0
  950. package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -0
  951. package/es/extensions/forms/ValueBlock/style/dnb-value-block.scss +19 -0
  952. package/es/extensions/forms/ValueBlock/style/index.d.ts +5 -0
  953. package/es/extensions/forms/ValueBlock/style/index.js +1 -0
  954. package/es/extensions/forms/ValueBlock/style/index.js.map +1 -0
  955. package/es/extensions/forms/ValueBlock/style/index.scss +1 -0
  956. package/es/extensions/forms/ValueBlock/style.d.ts +5 -0
  957. package/es/extensions/forms/ValueBlock/style.js +1 -0
  958. package/es/extensions/forms/ValueBlock/style.js.map +1 -0
  959. package/es/extensions/forms/Visibility/Visibility.d.ts +24 -0
  960. package/es/extensions/forms/Visibility/Visibility.js +44 -0
  961. package/es/extensions/forms/Visibility/Visibility.js.map +1 -0
  962. package/es/extensions/forms/Visibility/index.d.ts +1 -0
  963. package/es/extensions/forms/Visibility/index.js +1 -0
  964. package/es/extensions/forms/Visibility/index.js.map +1 -0
  965. package/es/extensions/forms/component-types.d.ts +4 -0
  966. package/es/extensions/forms/component-types.js +1 -0
  967. package/es/extensions/forms/component-types.js.map +1 -0
  968. package/es/extensions/forms/constants/countries.d.ts +6 -0
  969. package/es/extensions/forms/constants/countries.js +962 -0
  970. package/es/extensions/forms/constants/countries.js.map +1 -0
  971. package/es/extensions/forms/field-types.d.ts +52 -0
  972. package/es/extensions/forms/field-types.js +1 -0
  973. package/es/extensions/forms/field-types.js.map +1 -0
  974. package/es/extensions/forms/index.d.ts +13 -0
  975. package/es/extensions/forms/index.js +12 -0
  976. package/es/extensions/forms/index.js.map +1 -0
  977. package/es/extensions/forms/style/dnb-forms.css +237 -0
  978. package/es/extensions/forms/style/dnb-forms.min.css +1 -0
  979. package/es/extensions/forms/style/dnb-forms.scss +6 -0
  980. package/es/extensions/forms/style.d.ts +5 -0
  981. package/es/extensions/forms/style.js +1 -0
  982. package/es/extensions/forms/style.js.map +1 -0
  983. package/es/extensions/forms/types.d.ts +11 -0
  984. package/es/extensions/forms/types.js +11 -0
  985. package/es/extensions/forms/types.js.map +1 -0
  986. package/es/extensions/forms/utils/TestElement/TestElement.d.ts +6 -0
  987. package/es/extensions/forms/utils/TestElement/TestElement.js +9 -0
  988. package/es/extensions/forms/utils/TestElement/TestElement.js.map +1 -0
  989. package/es/extensions/forms/utils/TestElement/style/dnb-test-element.css +6 -0
  990. package/es/extensions/forms/utils/TestElement/style/dnb-test-element.min.css +1 -0
  991. package/es/extensions/forms/utils/TestElement/style/dnb-test-element.scss +6 -0
  992. package/es/extensions/forms/utils/TestElement/style/index.d.ts +5 -0
  993. package/es/extensions/forms/utils/TestElement/style/index.js +1 -0
  994. package/es/extensions/forms/utils/TestElement/style/index.js.map +1 -0
  995. package/es/extensions/forms/utils/TestElement/style.d.ts +5 -0
  996. package/es/extensions/forms/utils/TestElement/style.js +1 -0
  997. package/es/extensions/forms/utils/TestElement/style.js.map +1 -0
  998. package/es/extensions/forms/utils/ajv.d.ts +14 -0
  999. package/es/extensions/forms/utils/ajv.js +56 -0
  1000. package/es/extensions/forms/utils/ajv.js.map +1 -0
  1001. package/es/extensions/forms/utils/components.d.ts +3 -0
  1002. package/es/extensions/forms/utils/components.js +23 -0
  1003. package/es/extensions/forms/utils/components.js.map +1 -0
  1004. package/es/extensions/forms/utils/index.d.ts +3 -0
  1005. package/es/extensions/forms/utils/index.js +4 -0
  1006. package/es/extensions/forms/utils/index.js.map +1 -0
  1007. package/es/extensions/forms/utils/numbers.d.ts +17 -0
  1008. package/es/extensions/forms/utils/numbers.js +35 -0
  1009. package/es/extensions/forms/utils/numbers.js.map +1 -0
  1010. package/es/extensions/forms/value-types.d.ts +15 -0
  1011. package/es/extensions/forms/value-types.js +1 -0
  1012. package/es/extensions/forms/value-types.js.map +1 -0
  1013. package/es/extensions/index.d.ts +2 -1
  1014. package/es/extensions/index.js +2 -1
  1015. package/es/extensions/index.js.map +1 -1
  1016. package/es/extensions/lib.d.ts +22 -1
  1017. package/es/extensions/lib.js +3 -1
  1018. package/es/extensions/lib.js.map +1 -1
  1019. package/es/extensions/payment-card/utils/Types.js.map +1 -1
  1020. package/es/fragments/drawer-list/DrawerList.js.map +1 -1
  1021. package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  1022. package/es/shared/Context.d.ts +2 -0
  1023. package/es/shared/Context.js.map +1 -1
  1024. package/es/shared/Eufemia.d.ts +1 -1
  1025. package/es/shared/Eufemia.js +2 -2
  1026. package/es/shared/Eufemia.js.map +1 -1
  1027. package/es/shared/VisibilityByTheme.d.ts +1 -1
  1028. package/es/shared/VisibilityByTheme.js.map +1 -1
  1029. package/es/shared/helpers.d.ts +2 -2
  1030. package/es/shared/helpers.js.map +1 -1
  1031. package/es/shared/locales/en-GB.d.ts +39 -0
  1032. package/es/shared/locales/en-GB.js +39 -0
  1033. package/es/shared/locales/en-GB.js.map +1 -1
  1034. package/es/shared/locales/en-US.d.ts +39 -0
  1035. package/es/shared/locales/index.d.ts +78 -0
  1036. package/es/shared/locales/nb-NO.d.ts +39 -0
  1037. package/es/shared/locales/nb-NO.js +39 -0
  1038. package/es/shared/locales/nb-NO.js.map +1 -1
  1039. package/es/style/core/utilities.scss +40 -8
  1040. package/es/style/dnb-ui-components.css +71 -24
  1041. package/es/style/dnb-ui-components.min.css +1 -1
  1042. package/es/style/dnb-ui-extensions.css +238 -0
  1043. package/es/style/dnb-ui-extensions.min.css +1 -1
  1044. package/es/style/dnb-ui-extensions.scss +1 -0
  1045. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +17 -11
  1046. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  1047. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +105 -82
  1048. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  1049. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +238 -0
  1050. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  1051. package/es/style/themes/theme-sbanken/properties.js +4 -4
  1052. package/es/style/themes/theme-sbanken/properties.js.map +1 -1
  1053. package/es/style/themes/theme-sbanken/properties.scss +4 -4
  1054. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +4 -11
  1055. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  1056. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +429 -333
  1057. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -1
  1058. package/es/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
  1059. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +0 -7
  1060. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +238 -0
  1061. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  1062. package/es/style/themes/theme-ui/ui-theme-basis.css +17 -11
  1063. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  1064. package/es/style/themes/theme-ui/ui-theme-components.css +105 -82
  1065. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  1066. package/es/style/themes/theme-ui/ui-theme-elements.css +17 -11
  1067. package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  1068. package/es/style/themes/theme-ui/ui-theme-extensions.css +238 -0
  1069. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  1070. package/es/style/themes/theme-ui/ui-theme-tags.css +24 -12
  1071. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  1072. package/esm/dnb-ui-basis.min.mjs +1 -1
  1073. package/esm/dnb-ui-components.min.mjs +1 -1
  1074. package/esm/dnb-ui-elements.min.mjs +1 -1
  1075. package/esm/dnb-ui-extensions.min.mjs +7 -1
  1076. package/esm/dnb-ui-lib.min.mjs +1 -1
  1077. package/extensions/forms/DataContext/At.d.ts +13 -0
  1078. package/extensions/forms/DataContext/At.js +48 -0
  1079. package/extensions/forms/DataContext/At.js.map +1 -0
  1080. package/extensions/forms/DataContext/Context.d.ts +19 -0
  1081. package/extensions/forms/DataContext/Context.js +16 -0
  1082. package/extensions/forms/DataContext/Context.js.map +1 -0
  1083. package/extensions/forms/DataContext/Provider.d.ts +19 -0
  1084. package/extensions/forms/DataContext/Provider.js +103 -0
  1085. package/extensions/forms/DataContext/Provider.js.map +1 -0
  1086. package/extensions/forms/DataContext/SubmitButton.d.ts +9 -0
  1087. package/extensions/forms/DataContext/SubmitButton.js +20 -0
  1088. package/extensions/forms/DataContext/SubmitButton.js.map +1 -0
  1089. package/extensions/forms/DataContext/index.d.ts +13 -0
  1090. package/extensions/forms/DataContext/index.js +12 -0
  1091. package/extensions/forms/DataContext/index.js.map +1 -0
  1092. package/extensions/forms/Field/ArraySelection.d.ts +12 -0
  1093. package/extensions/forms/Field/ArraySelection.js +60 -0
  1094. package/extensions/forms/Field/ArraySelection.js.map +1 -0
  1095. package/extensions/forms/Field/BankAccountNumber.d.ts +10 -0
  1096. package/extensions/forms/Field/BankAccountNumber.js +28 -0
  1097. package/extensions/forms/Field/BankAccountNumber.js.map +1 -0
  1098. package/extensions/forms/Field/Boolean.d.ts +10 -0
  1099. package/extensions/forms/Field/Boolean.js +23 -0
  1100. package/extensions/forms/Field/Boolean.js.map +1 -0
  1101. package/extensions/forms/Field/Currency.d.ts +10 -0
  1102. package/extensions/forms/Field/Currency.js +51 -0
  1103. package/extensions/forms/Field/Currency.js.map +1 -0
  1104. package/extensions/forms/Field/Date.d.ts +8 -0
  1105. package/extensions/forms/Field/Date.js +47 -0
  1106. package/extensions/forms/Field/Date.js.map +1 -0
  1107. package/extensions/forms/Field/Email.d.ts +7 -0
  1108. package/extensions/forms/Field/Email.js +22 -0
  1109. package/extensions/forms/Field/Email.js.map +1 -0
  1110. package/extensions/forms/Field/FirstName.d.ts +7 -0
  1111. package/extensions/forms/Field/FirstName.js +19 -0
  1112. package/extensions/forms/Field/FirstName.js.map +1 -0
  1113. package/extensions/forms/Field/LastName.d.ts +7 -0
  1114. package/extensions/forms/Field/LastName.js +19 -0
  1115. package/extensions/forms/Field/LastName.js.map +1 -0
  1116. package/extensions/forms/Field/NationalIdentityNumber.d.ts +10 -0
  1117. package/extensions/forms/Field/NationalIdentityNumber.js +27 -0
  1118. package/extensions/forms/Field/NationalIdentityNumber.js.map +1 -0
  1119. package/extensions/forms/Field/Number.d.ts +31 -0
  1120. package/extensions/forms/Field/Number.js +101 -0
  1121. package/extensions/forms/Field/Number.js.map +1 -0
  1122. package/extensions/forms/Field/Option.d.ts +9 -0
  1123. package/extensions/forms/Field/Option.js +15 -0
  1124. package/extensions/forms/Field/Option.js.map +1 -0
  1125. package/extensions/forms/Field/OrganizationNumber.d.ts +10 -0
  1126. package/extensions/forms/Field/OrganizationNumber.js +28 -0
  1127. package/extensions/forms/Field/OrganizationNumber.js.map +1 -0
  1128. package/extensions/forms/Field/PhoneNumber.d.ts +12 -0
  1129. package/extensions/forms/Field/PhoneNumber.js +89 -0
  1130. package/extensions/forms/Field/PhoneNumber.js.map +1 -0
  1131. package/extensions/forms/Field/PostalCodeAndCity.d.ts +10 -0
  1132. package/extensions/forms/Field/PostalCodeAndCity.js +46 -0
  1133. package/extensions/forms/Field/PostalCodeAndCity.js.map +1 -0
  1134. package/extensions/forms/Field/SelectCountry.d.ts +7 -0
  1135. package/extensions/forms/Field/SelectCountry.js +26 -0
  1136. package/extensions/forms/Field/SelectCountry.js.map +1 -0
  1137. package/extensions/forms/Field/Selection.d.ts +13 -0
  1138. package/extensions/forms/Field/Selection.js +110 -0
  1139. package/extensions/forms/Field/Selection.js.map +1 -0
  1140. package/extensions/forms/Field/String.d.ts +32 -0
  1141. package/extensions/forms/Field/String.js +123 -0
  1142. package/extensions/forms/Field/String.js.map +1 -0
  1143. package/extensions/forms/Field/Toggle.d.ts +14 -0
  1144. package/extensions/forms/Field/Toggle.js +117 -0
  1145. package/extensions/forms/Field/Toggle.js.map +1 -0
  1146. package/extensions/forms/Field/fields.scss +2 -0
  1147. package/extensions/forms/Field/hooks/index.d.ts +1 -0
  1148. package/extensions/forms/Field/hooks/index.js +1 -0
  1149. package/extensions/forms/Field/hooks/index.js.map +1 -0
  1150. package/extensions/forms/Field/hooks/useField.d.ts +11 -0
  1151. package/extensions/forms/Field/hooks/useField.js +152 -0
  1152. package/extensions/forms/Field/hooks/useField.js.map +1 -0
  1153. package/extensions/forms/Field/index.d.ts +39 -0
  1154. package/extensions/forms/Field/index.js +40 -0
  1155. package/extensions/forms/Field/index.js.map +1 -0
  1156. package/extensions/forms/Field/style/dnb-number.css +11 -0
  1157. package/extensions/forms/Field/style/dnb-number.min.css +1 -0
  1158. package/extensions/forms/Field/style/dnb-number.scss +19 -0
  1159. package/extensions/forms/Field/style/dnb-phone-number.css +23 -0
  1160. package/extensions/forms/Field/style/dnb-phone-number.min.css +1 -0
  1161. package/extensions/forms/Field/style/dnb-phone-number.scss +28 -0
  1162. package/extensions/forms/Field/style/dnb-postal-code-and-city.css +19 -0
  1163. package/extensions/forms/Field/style/dnb-postal-code-and-city.min.css +1 -0
  1164. package/extensions/forms/Field/style/dnb-postal-code-and-city.scss +25 -0
  1165. package/extensions/forms/Field/style/dnb-selection.css +6 -0
  1166. package/extensions/forms/Field/style/dnb-selection.min.css +1 -0
  1167. package/extensions/forms/Field/style/dnb-selection.scss +15 -0
  1168. package/extensions/forms/Field/style/dnb-string.css +11 -0
  1169. package/extensions/forms/Field/style/dnb-string.min.css +1 -0
  1170. package/extensions/forms/Field/style/dnb-string.scss +19 -0
  1171. package/extensions/forms/Field/style/index.d.ts +6 -0
  1172. package/extensions/forms/Field/style/index.js +3 -0
  1173. package/extensions/forms/Field/style/index.js.map +1 -0
  1174. package/extensions/forms/Field/style/index.scss +5 -0
  1175. package/extensions/forms/Field/style.d.ts +5 -0
  1176. package/extensions/forms/Field/style.js +1 -0
  1177. package/extensions/forms/Field/style.js.map +1 -0
  1178. package/extensions/forms/FieldBlock/FieldBlock.d.ts +12 -0
  1179. package/extensions/forms/FieldBlock/FieldBlock.js +69 -0
  1180. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -0
  1181. package/extensions/forms/FieldBlock/index.d.ts +1 -0
  1182. package/extensions/forms/FieldBlock/index.js +1 -0
  1183. package/extensions/forms/FieldBlock/index.js.map +1 -0
  1184. package/extensions/forms/FieldBlock/style/dnb-field-block.css +15 -0
  1185. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -0
  1186. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +19 -0
  1187. package/extensions/forms/FieldBlock/style/index.d.ts +5 -0
  1188. package/extensions/forms/FieldBlock/style/index.js +1 -0
  1189. package/extensions/forms/FieldBlock/style/index.js.map +1 -0
  1190. package/extensions/forms/FieldBlock/style.d.ts +5 -0
  1191. package/extensions/forms/FieldBlock/style.js +1 -0
  1192. package/extensions/forms/FieldBlock/style.js.map +1 -0
  1193. package/extensions/forms/FieldGroup/FieldGroup.d.ts +17 -0
  1194. package/extensions/forms/FieldGroup/FieldGroup.js +83 -0
  1195. package/extensions/forms/FieldGroup/FieldGroup.js.map +1 -0
  1196. package/extensions/forms/FieldGroup/index.d.ts +2 -0
  1197. package/extensions/forms/FieldGroup/index.js +3 -0
  1198. package/extensions/forms/FieldGroup/index.js.map +1 -0
  1199. package/extensions/forms/Forms.d.ts +3 -0
  1200. package/extensions/forms/Forms.js +4 -0
  1201. package/extensions/forms/Forms.js.map +1 -0
  1202. package/extensions/forms/Layout/ButtonRow.d.ts +10 -0
  1203. package/extensions/forms/Layout/ButtonRow.js +17 -0
  1204. package/extensions/forms/Layout/ButtonRow.js.map +1 -0
  1205. package/extensions/forms/Layout/Card.d.ts +14 -0
  1206. package/extensions/forms/Layout/Card.js +37 -0
  1207. package/extensions/forms/Layout/Card.js.map +1 -0
  1208. package/extensions/forms/Layout/Column.d.ts +7 -0
  1209. package/extensions/forms/Layout/Column.js +17 -0
  1210. package/extensions/forms/Layout/Column.js.map +1 -0
  1211. package/extensions/forms/Layout/FlexContainer.d.ts +23 -0
  1212. package/extensions/forms/Layout/FlexContainer.js +91 -0
  1213. package/extensions/forms/Layout/FlexContainer.js.map +1 -0
  1214. package/extensions/forms/Layout/FlexItem.d.ts +12 -0
  1215. package/extensions/forms/Layout/FlexItem.js +20 -0
  1216. package/extensions/forms/Layout/FlexItem.js.map +1 -0
  1217. package/extensions/forms/Layout/InfoCardSection.d.ts +8 -0
  1218. package/extensions/forms/Layout/InfoCardSection.js +17 -0
  1219. package/extensions/forms/Layout/InfoCardSection.js.map +1 -0
  1220. package/extensions/forms/Layout/MainHeading.d.ts +10 -0
  1221. package/extensions/forms/Layout/MainHeading.js +19 -0
  1222. package/extensions/forms/Layout/MainHeading.js.map +1 -0
  1223. package/extensions/forms/Layout/Row.d.ts +7 -0
  1224. package/extensions/forms/Layout/Row.js +17 -0
  1225. package/extensions/forms/Layout/Row.js.map +1 -0
  1226. package/extensions/forms/Layout/Section.d.ts +13 -0
  1227. package/extensions/forms/Layout/Section.js +21 -0
  1228. package/extensions/forms/Layout/Section.js.map +1 -0
  1229. package/extensions/forms/Layout/SubHeading.d.ts +10 -0
  1230. package/extensions/forms/Layout/SubHeading.js +18 -0
  1231. package/extensions/forms/Layout/SubHeading.js.map +1 -0
  1232. package/extensions/forms/Layout/index.d.ts +23 -0
  1233. package/extensions/forms/Layout/index.js +24 -0
  1234. package/extensions/forms/Layout/index.js.map +1 -0
  1235. package/extensions/forms/Layout/style/dnb-button-row.css +7 -0
  1236. package/extensions/forms/Layout/style/dnb-button-row.min.css +1 -0
  1237. package/extensions/forms/Layout/style/dnb-button-row.scss +5 -0
  1238. package/extensions/forms/Layout/style/dnb-card.css +13 -0
  1239. package/extensions/forms/Layout/style/dnb-card.min.css +1 -0
  1240. package/extensions/forms/Layout/style/dnb-card.scss +15 -0
  1241. package/extensions/forms/Layout/style/dnb-flex-container.css +63 -0
  1242. package/extensions/forms/Layout/style/dnb-flex-container.min.css +1 -0
  1243. package/extensions/forms/Layout/style/dnb-flex-container.scss +84 -0
  1244. package/extensions/forms/Layout/style/dnb-flex-item.css +6 -0
  1245. package/extensions/forms/Layout/style/dnb-flex-item.min.css +1 -0
  1246. package/extensions/forms/Layout/style/dnb-flex-item.scss +9 -0
  1247. package/extensions/forms/Layout/style/dnb-section.css +3 -0
  1248. package/extensions/forms/Layout/style/dnb-section.min.css +1 -0
  1249. package/extensions/forms/Layout/style/dnb-section.scss +3 -0
  1250. package/extensions/forms/Layout/style/index.d.ts +9 -0
  1251. package/extensions/forms/Layout/style/index.js +6 -0
  1252. package/extensions/forms/Layout/style/index.js.map +1 -0
  1253. package/extensions/forms/Layout/style/index.scss +5 -0
  1254. package/extensions/forms/Layout/style.d.ts +5 -0
  1255. package/extensions/forms/Layout/style.js +1 -0
  1256. package/extensions/forms/Layout/style.js.map +1 -0
  1257. package/extensions/forms/StepsLayout/Buttons.d.ts +9 -0
  1258. package/extensions/forms/StepsLayout/Buttons.js +19 -0
  1259. package/extensions/forms/StepsLayout/Buttons.js.map +1 -0
  1260. package/extensions/forms/StepsLayout/NextButton.d.ts +10 -0
  1261. package/extensions/forms/StepsLayout/NextButton.js +27 -0
  1262. package/extensions/forms/StepsLayout/NextButton.js.map +1 -0
  1263. package/extensions/forms/StepsLayout/PreviousButton.d.ts +10 -0
  1264. package/extensions/forms/StepsLayout/PreviousButton.js +27 -0
  1265. package/extensions/forms/StepsLayout/PreviousButton.js.map +1 -0
  1266. package/extensions/forms/StepsLayout/Step.d.ts +15 -0
  1267. package/extensions/forms/StepsLayout/Step.js +27 -0
  1268. package/extensions/forms/StepsLayout/Step.js.map +1 -0
  1269. package/extensions/forms/StepsLayout/StepsContext.d.ts +8 -0
  1270. package/extensions/forms/StepsLayout/StepsContext.js +4 -0
  1271. package/extensions/forms/StepsLayout/StepsContext.js.map +1 -0
  1272. package/extensions/forms/StepsLayout/StepsLayout.d.ts +19 -0
  1273. package/extensions/forms/StepsLayout/StepsLayout.js +106 -0
  1274. package/extensions/forms/StepsLayout/StepsLayout.js.map +1 -0
  1275. package/extensions/forms/StepsLayout/index.d.ts +3 -0
  1276. package/extensions/forms/StepsLayout/index.js +4 -0
  1277. package/extensions/forms/StepsLayout/index.js.map +1 -0
  1278. package/extensions/forms/StepsLayout/style/dnb-steps-layout.css +25 -0
  1279. package/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -0
  1280. package/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +23 -0
  1281. package/extensions/forms/StepsLayout/style/index.d.ts +5 -0
  1282. package/extensions/forms/StepsLayout/style/index.js +1 -0
  1283. package/extensions/forms/StepsLayout/style/index.js.map +1 -0
  1284. package/extensions/forms/StepsLayout/style/index.scss +1 -0
  1285. package/extensions/forms/StepsLayout/style.d.ts +5 -0
  1286. package/extensions/forms/StepsLayout/style.js +1 -0
  1287. package/extensions/forms/StepsLayout/style.js.map +1 -0
  1288. package/extensions/forms/Value/BankAccountNumber.d.ts +7 -0
  1289. package/extensions/forms/Value/BankAccountNumber.js +20 -0
  1290. package/extensions/forms/Value/BankAccountNumber.js.map +1 -0
  1291. package/extensions/forms/Value/Boolean.d.ts +8 -0
  1292. package/extensions/forms/Value/Boolean.js +27 -0
  1293. package/extensions/forms/Value/Boolean.js.map +1 -0
  1294. package/extensions/forms/Value/Currency.d.ts +7 -0
  1295. package/extensions/forms/Value/Currency.js +16 -0
  1296. package/extensions/forms/Value/Currency.js.map +1 -0
  1297. package/extensions/forms/Value/Date.d.ts +7 -0
  1298. package/extensions/forms/Value/Date.js +16 -0
  1299. package/extensions/forms/Value/Date.js.map +1 -0
  1300. package/extensions/forms/Value/Email.d.ts +7 -0
  1301. package/extensions/forms/Value/Email.js +16 -0
  1302. package/extensions/forms/Value/Email.js.map +1 -0
  1303. package/extensions/forms/Value/FirstName.d.ts +7 -0
  1304. package/extensions/forms/Value/FirstName.js +16 -0
  1305. package/extensions/forms/Value/FirstName.js.map +1 -0
  1306. package/extensions/forms/Value/LastName.d.ts +7 -0
  1307. package/extensions/forms/Value/LastName.js +16 -0
  1308. package/extensions/forms/Value/LastName.js.map +1 -0
  1309. package/extensions/forms/Value/NationalIdentityNumber.d.ts +7 -0
  1310. package/extensions/forms/Value/NationalIdentityNumber.js +20 -0
  1311. package/extensions/forms/Value/NationalIdentityNumber.js.map +1 -0
  1312. package/extensions/forms/Value/Number.d.ts +14 -0
  1313. package/extensions/forms/Value/Number.js +36 -0
  1314. package/extensions/forms/Value/Number.js.map +1 -0
  1315. package/extensions/forms/Value/PhoneNumber.d.ts +7 -0
  1316. package/extensions/forms/Value/PhoneNumber.js +20 -0
  1317. package/extensions/forms/Value/PhoneNumber.js.map +1 -0
  1318. package/extensions/forms/Value/String.d.ts +8 -0
  1319. package/extensions/forms/Value/String.js +26 -0
  1320. package/extensions/forms/Value/String.js.map +1 -0
  1321. package/extensions/forms/Value/hooks/index.d.ts +1 -0
  1322. package/extensions/forms/Value/hooks/index.js +1 -0
  1323. package/extensions/forms/Value/hooks/index.js.map +1 -0
  1324. package/extensions/forms/Value/hooks/useValue.d.ts +2 -0
  1325. package/extensions/forms/Value/hooks/useValue.js +22 -0
  1326. package/extensions/forms/Value/hooks/useValue.js.map +1 -0
  1327. package/extensions/forms/Value/index.d.ts +25 -0
  1328. package/extensions/forms/Value/index.js +26 -0
  1329. package/extensions/forms/Value/index.js.map +1 -0
  1330. package/extensions/forms/ValueBlock/ValueBlock.d.ts +11 -0
  1331. package/extensions/forms/ValueBlock/ValueBlock.js +30 -0
  1332. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -0
  1333. package/extensions/forms/ValueBlock/index.d.ts +1 -0
  1334. package/extensions/forms/ValueBlock/index.js +1 -0
  1335. package/extensions/forms/ValueBlock/index.js.map +1 -0
  1336. package/extensions/forms/ValueBlock/style/dnb-value-block.css +16 -0
  1337. package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -0
  1338. package/extensions/forms/ValueBlock/style/dnb-value-block.scss +19 -0
  1339. package/extensions/forms/ValueBlock/style/index.d.ts +5 -0
  1340. package/extensions/forms/ValueBlock/style/index.js +1 -0
  1341. package/extensions/forms/ValueBlock/style/index.js.map +1 -0
  1342. package/extensions/forms/ValueBlock/style/index.scss +1 -0
  1343. package/extensions/forms/ValueBlock/style.d.ts +5 -0
  1344. package/extensions/forms/ValueBlock/style.js +1 -0
  1345. package/extensions/forms/ValueBlock/style.js.map +1 -0
  1346. package/extensions/forms/Visibility/Visibility.d.ts +24 -0
  1347. package/extensions/forms/Visibility/Visibility.js +45 -0
  1348. package/extensions/forms/Visibility/Visibility.js.map +1 -0
  1349. package/extensions/forms/Visibility/index.d.ts +1 -0
  1350. package/extensions/forms/Visibility/index.js +1 -0
  1351. package/extensions/forms/Visibility/index.js.map +1 -0
  1352. package/extensions/forms/component-types.d.ts +4 -0
  1353. package/extensions/forms/component-types.js +1 -0
  1354. package/extensions/forms/component-types.js.map +1 -0
  1355. package/extensions/forms/constants/countries.d.ts +6 -0
  1356. package/extensions/forms/constants/countries.js +962 -0
  1357. package/extensions/forms/constants/countries.js.map +1 -0
  1358. package/extensions/forms/field-types.d.ts +52 -0
  1359. package/extensions/forms/field-types.js +1 -0
  1360. package/extensions/forms/field-types.js.map +1 -0
  1361. package/extensions/forms/index.d.ts +13 -0
  1362. package/extensions/forms/index.js +12 -0
  1363. package/extensions/forms/index.js.map +1 -0
  1364. package/extensions/forms/style/dnb-forms.css +237 -0
  1365. package/extensions/forms/style/dnb-forms.min.css +1 -0
  1366. package/extensions/forms/style/dnb-forms.scss +6 -0
  1367. package/extensions/forms/style.d.ts +5 -0
  1368. package/extensions/forms/style.js +1 -0
  1369. package/extensions/forms/style.js.map +1 -0
  1370. package/extensions/forms/types.d.ts +11 -0
  1371. package/extensions/forms/types.js +11 -0
  1372. package/extensions/forms/types.js.map +1 -0
  1373. package/extensions/forms/utils/TestElement/TestElement.d.ts +6 -0
  1374. package/extensions/forms/utils/TestElement/TestElement.js +10 -0
  1375. package/extensions/forms/utils/TestElement/TestElement.js.map +1 -0
  1376. package/extensions/forms/utils/TestElement/style/dnb-test-element.css +6 -0
  1377. package/extensions/forms/utils/TestElement/style/dnb-test-element.min.css +1 -0
  1378. package/extensions/forms/utils/TestElement/style/dnb-test-element.scss +6 -0
  1379. package/extensions/forms/utils/TestElement/style/index.d.ts +5 -0
  1380. package/extensions/forms/utils/TestElement/style/index.js +1 -0
  1381. package/extensions/forms/utils/TestElement/style/index.js.map +1 -0
  1382. package/extensions/forms/utils/TestElement/style.d.ts +5 -0
  1383. package/extensions/forms/utils/TestElement/style.js +1 -0
  1384. package/extensions/forms/utils/TestElement/style.js.map +1 -0
  1385. package/extensions/forms/utils/ajv.d.ts +14 -0
  1386. package/extensions/forms/utils/ajv.js +56 -0
  1387. package/extensions/forms/utils/ajv.js.map +1 -0
  1388. package/extensions/forms/utils/components.d.ts +3 -0
  1389. package/extensions/forms/utils/components.js +23 -0
  1390. package/extensions/forms/utils/components.js.map +1 -0
  1391. package/extensions/forms/utils/index.d.ts +3 -0
  1392. package/extensions/forms/utils/index.js +4 -0
  1393. package/extensions/forms/utils/index.js.map +1 -0
  1394. package/extensions/forms/utils/numbers.d.ts +17 -0
  1395. package/extensions/forms/utils/numbers.js +35 -0
  1396. package/extensions/forms/utils/numbers.js.map +1 -0
  1397. package/extensions/forms/value-types.d.ts +15 -0
  1398. package/extensions/forms/value-types.js +1 -0
  1399. package/extensions/forms/value-types.js.map +1 -0
  1400. package/extensions/index.d.ts +2 -1
  1401. package/extensions/index.js +2 -1
  1402. package/extensions/index.js.map +1 -1
  1403. package/extensions/lib.d.ts +22 -1
  1404. package/extensions/lib.js +3 -1
  1405. package/extensions/lib.js.map +1 -1
  1406. package/extensions/payment-card/utils/Types.js.map +1 -1
  1407. package/fragments/drawer-list/DrawerList.js.map +1 -1
  1408. package/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  1409. package/package.json +4 -1
  1410. package/shared/Context.d.ts +2 -0
  1411. package/shared/Context.js.map +1 -1
  1412. package/shared/Eufemia.d.ts +1 -1
  1413. package/shared/Eufemia.js +2 -2
  1414. package/shared/Eufemia.js.map +1 -1
  1415. package/shared/VisibilityByTheme.d.ts +1 -1
  1416. package/shared/VisibilityByTheme.js.map +1 -1
  1417. package/shared/helpers.d.ts +2 -2
  1418. package/shared/helpers.js.map +1 -1
  1419. package/shared/locales/en-GB.d.ts +39 -0
  1420. package/shared/locales/en-GB.js +39 -0
  1421. package/shared/locales/en-GB.js.map +1 -1
  1422. package/shared/locales/en-US.d.ts +39 -0
  1423. package/shared/locales/index.d.ts +78 -0
  1424. package/shared/locales/nb-NO.d.ts +39 -0
  1425. package/shared/locales/nb-NO.js +39 -0
  1426. package/shared/locales/nb-NO.js.map +1 -1
  1427. package/style/core/utilities.scss +40 -8
  1428. package/style/dnb-ui-components.css +71 -24
  1429. package/style/dnb-ui-components.min.css +1 -1
  1430. package/style/dnb-ui-extensions.css +238 -0
  1431. package/style/dnb-ui-extensions.min.css +1 -1
  1432. package/style/dnb-ui-extensions.scss +1 -0
  1433. package/style/themes/theme-eiendom/eiendom-theme-basis.css +17 -11
  1434. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  1435. package/style/themes/theme-eiendom/eiendom-theme-components.css +105 -82
  1436. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  1437. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +238 -0
  1438. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  1439. package/style/themes/theme-sbanken/properties.js +4 -4
  1440. package/style/themes/theme-sbanken/properties.js.map +1 -1
  1441. package/style/themes/theme-sbanken/properties.scss +4 -4
  1442. package/style/themes/theme-sbanken/sbanken-theme-basis.css +4 -11
  1443. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  1444. package/style/themes/theme-sbanken/sbanken-theme-components.css +429 -333
  1445. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -1
  1446. package/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
  1447. package/style/themes/theme-sbanken/sbanken-theme-elements.css +0 -7
  1448. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +238 -0
  1449. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  1450. package/style/themes/theme-ui/ui-theme-basis.css +17 -11
  1451. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  1452. package/style/themes/theme-ui/ui-theme-components.css +105 -82
  1453. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  1454. package/style/themes/theme-ui/ui-theme-elements.css +17 -11
  1455. package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  1456. package/style/themes/theme-ui/ui-theme-extensions.css +238 -0
  1457. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  1458. package/style/themes/theme-ui/ui-theme-tags.css +24 -12
  1459. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  1460. package/umd/dnb-ui-basis.min.js +1 -1
  1461. package/umd/dnb-ui-components.min.js +1 -1
  1462. package/umd/dnb-ui-elements.min.js +1 -1
  1463. package/umd/dnb-ui-extensions.min.js +7 -1
  1464. package/umd/dnb-ui-lib.min.js +1 -1
  1465. package/cjs/components/accordion/AccordionPropTypes.d.ts +0 -79
  1466. package/cjs/components/accordion/AccordionPropTypes.js +0 -85
  1467. package/cjs/components/accordion/AccordionPropTypes.js.map +0 -1
  1468. package/components/accordion/AccordionPropTypes.d.ts +0 -79
  1469. package/components/accordion/AccordionPropTypes.js +0 -74
  1470. package/components/accordion/AccordionPropTypes.js.map +0 -1
  1471. package/es/components/accordion/AccordionPropTypes.d.ts +0 -79
  1472. package/es/components/accordion/AccordionPropTypes.js +0 -74
  1473. package/es/components/accordion/AccordionPropTypes.js.map +0 -1
@@ -0,0 +1,126 @@
1
+ /*
2
+ * Input theme
3
+ *
4
+ */
5
+
6
+ @import '../../../../style/core/utilities.scss';
7
+
8
+ .dnb-input {
9
+ --input-height: 2.5rem;
10
+ --input-button-border-color: var(--input-border-color);
11
+ --input-button-border-width: var(--input-border-width);
12
+ --input-border-radius: 0.5rem;
13
+ --input-border-width: 0.0625rem;
14
+
15
+ // Text
16
+ --input-color: var(--input-color--default);
17
+ --input-color--default: var(--sb-color-text);
18
+ --input-color--active: var(--sb-color-text);
19
+
20
+ // Border
21
+ --input-border-color: var(--sb-color-gray-dark-2);
22
+ --input-border-color--hover: var(--sb-color-violet);
23
+ --input-border-color--active: var(--sb-color-violet);
24
+ --input-border-color--focus: var(--focus-ring-color);
25
+
26
+ &__shell {
27
+ background-color: var(--color-white);
28
+ transition: border-radius 0.25s ease-out;
29
+ border: none;
30
+ color: var(--input-color);
31
+ @include fakeBorder(
32
+ var(--input-border-color),
33
+ var(--input-border-width),
34
+ inset
35
+ );
36
+ }
37
+
38
+ &__submit-button__button {
39
+ --button-secondary-color: var(--sb-color-violet);
40
+ }
41
+
42
+ &__placeholder {
43
+ color: var(--sb-color-gray-dark-3);
44
+ }
45
+
46
+ &[data-input-state='disabled'] {
47
+ --input-border-color: var(--sb-color-gray);
48
+
49
+ .dnb-input__shell {
50
+ &,
51
+ .dnb-icon,
52
+ .dnb-input__placeholder {
53
+ color: var(--sb-color-gray-dark-2);
54
+ }
55
+
56
+ -webkit-text-fill-color: currentcolor;
57
+
58
+ background-color: var(--sb-color-gray-light);
59
+ }
60
+ }
61
+
62
+ &:not([data-input-state='disabled']) {
63
+ // Focus
64
+ &[data-input-state='focus'] {
65
+ --input-color: var(--input-color--active);
66
+ --input-border-radius: 1.5rem;
67
+ --input-border-color: var(--input-border-color--active);
68
+
69
+ html[data-whatinput='keyboard'] & {
70
+ --input-button-border-color: var(--input-border-color--focus);
71
+ --input-button-border-width: var(--focus-ring-width);
72
+ }
73
+ .dnb-input__shell {
74
+ @include focusRing(
75
+ null,
76
+ var(--input-border-color--focus),
77
+ inset
78
+ ); // keyboard only
79
+ }
80
+ }
81
+
82
+ // Hover
83
+ .dnb-input__shell:hover,
84
+ .dnb-form-label:hover + .dnb-input__inner .dnb-input__shell {
85
+ --input-border-color: var(--input-border-color--hover);
86
+ --input-border-width: 0.125rem;
87
+ }
88
+
89
+ // Button
90
+ .dnb-input__submit-button__button {
91
+ transition: border-radius 0.25s ease-out;
92
+ background-color: transparent;
93
+ box-shadow: none;
94
+
95
+ &:hover,
96
+ &:active {
97
+ border: var(--input-button-border-width) solid
98
+ var(--input-button-border-color);
99
+ border-left: none;
100
+ padding-left: var(--input-button-border-width);
101
+ }
102
+
103
+ &:focus-visible {
104
+ border: none;
105
+ padding-left: none;
106
+ }
107
+ }
108
+
109
+ &.dnb-input__status--error {
110
+ --input-border-color: var(--sb-color-red);
111
+ --input-color--default: var(--sb-color-red);
112
+ --input-color--active: var(--sb-color-text);
113
+ --input-border-color--hover: var(--sb-color-red);
114
+ --input-border-color--active: var(--sb-color-red);
115
+ --input-border-color--focus: var(--sb-color-red);
116
+
117
+ .dnb-input__submit-button__button {
118
+ --button-secondary-background--hover: var(--sb-color-red);
119
+
120
+ &:hover:not(:active) {
121
+ --button-secondary-color: var(--sb-color-white);
122
+ }
123
+ }
124
+ }
125
+ }
126
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"InputMaskedUtils.js","names":["format","getDecimalSeparator","getThousandsSeparator","warn","IS_ANDROID","IS_IOS","safeSetSelection","enableLocaleSupportWhen","enableNumberMaskWhen","invisibleSpace","isRequestingLocaleSupport","props","Object","entries","some","_ref","k","v","includes","isRequestingNumberMask","_ref2","correctNumberValue","_ref3","localValue","locale","maskParams","value","String","isNaN","parseFloat","decimalPos","indexOf","integerLimit","limit","integers","split","isNegative","length","decimals","slice","shouldHaveDecimals","allowDecimal","decimalLimit","number_format","options","_objectSpread","decimalSymbol","replace","localNumberValue","numberValue","endsWithDecimal","endsWith","endsWithZeroAndDecimal","startsWith","test","correctCaretPosition","element","correction","suffix","prefix","start","selectionStart","end","selectionEnd","suffixStart","suffixEnd","pos","undefined","placeholderChar","prefixStart","prefixEnd","char","mask","chars","l","i","RegExp","n","_mask$test","call","e","window","requestAnimationFrame","handlePercentMask","_ref4","_String","_String$match","percent","match","handleCurrencyMask","_ref5","mask_options","currency_mask","showMask","fix","currency","handleNumberMask","_ref6","number_mask","getInputModeFromMask","allowNegative","instanceOf","handleThousandsSeparator","handleDecimalSeparator","fromJSON","str","fallback","arguments","JSON","parse"],"sources":["../../../../src/components/input-masked/InputMaskedUtils.js"],"sourcesContent":["/**\n * Web InputMasked Component\n *\n */\n\nimport {\n format,\n getDecimalSeparator,\n getThousandsSeparator,\n} from '../number-format/NumberUtils'\nimport { warn } from '../../shared/component-helper'\nimport { IS_ANDROID, IS_IOS } from '../../shared/helpers'\nimport { safeSetSelection } from './text-mask/createTextMaskInputElement'\n\nconst enableLocaleSupportWhen = ['as_number', 'as_percent', 'as_currency']\nconst enableNumberMaskWhen = [\n 'as_number',\n 'as_percent',\n 'as_currency',\n 'number_mask',\n 'currency_mask',\n]\n\nexport const invisibleSpace = '\\u200B'\n\n/**\n * Will return true if a prop needs Locale support\n *\n * @param {object} props object with given component props\n * @returns boolean\n */\nexport const isRequestingLocaleSupport = (props) => {\n return Object.entries(props).some(\n ([k, v]) => v && enableLocaleSupportWhen.includes(k)\n )\n}\n\n/**\n * Will return true if a prop will enable the internal NumberMask\n *\n * @param {object} props object with given component props\n * @returns boolean\n */\nexport const isRequestingNumberMask = (props) => {\n return Object.entries(props).some(\n ([k, v]) => v && enableNumberMaskWhen.includes(k)\n )\n}\n\n/**\n * Probably the most complex part of this component\n * It will modify a given value based on certain criteria's\n *\n * @param {object} param0 object with properties\n * @property {string} localValue optional – if given, it will uses its ending to determine of what to return\n * @property {number|string} value component property value\n * @property {object} context Eufemia Context\n * @property {string} locale Eufemia locale (either from component or context)\n * @property {object} maskParams predefined mask parameters\n * @returns string Value\n */\nexport const correctNumberValue = ({\n localValue = null,\n props,\n locale,\n maskParams,\n}) => {\n let value = String(props.value)\n\n if (isNaN(parseFloat(value))) {\n return value\n }\n\n const decimalPos = value.indexOf('.')\n\n if (\n maskParams.integerLimit &&\n typeof maskParams.integerLimit === 'number'\n ) {\n const limit = maskParams.integerLimit\n const integers = value.split('.')[0]\n const isNegative = parseFloat(integers) < 0\n if (integers.length - (isNegative ? 1 : 0) > limit) {\n const decimals = decimalPos > 0 ? value.slice(decimalPos) : ''\n value = integers.slice(0, limit + (isNegative ? 1 : 0)) + decimals\n }\n }\n\n const shouldHaveDecimals =\n maskParams.allowDecimal ||\n (maskParams.decimalLimit > 0 && maskParams.allowDecimal !== false)\n\n if (!shouldHaveDecimals) {\n if (decimalPos > -1) {\n value = value.slice(0, decimalPos)\n }\n }\n\n /**\n * This only runs IF \"number_format\" is set – we do not use it else\n */\n if (props.number_format) {\n const options = {\n locale,\n decimals: 0,\n ...props.number_format,\n }\n if (shouldHaveDecimals) {\n options.decimals = maskParams.decimalLimit\n }\n value = format(value, options)\n }\n\n const decimalSymbol = maskParams.decimalSymbol\n value = value.replace('.', decimalSymbol)\n\n if (localValue !== null) {\n const localNumberValue = localValue.replace(/[^\\d,.-]/g, '')\n const numberValue = value.replace(/[^\\d,.-]/g, '')\n\n const endsWithDecimal = localNumberValue.endsWith(decimalSymbol)\n const endsWithZeroAndDecimal = localNumberValue.endsWith(\n `${decimalSymbol}0`\n )\n\n if (endsWithDecimal) {\n value = `${value}${decimalSymbol}`\n } else if (\n endsWithZeroAndDecimal &&\n !numberValue.endsWith(`${decimalSymbol}0`)\n ) {\n /**\n * When the users has 20,02, then hits \"backspace\",\n * the returned {numberValue} in the onChange event would then be \"20\",\n * but we want it to be 20,0\n */\n value = `${value}${decimalSymbol}0`\n }\n\n /**\n * If the user removes a leading digit and we have left a leading zero.\n *\n * The users enters these steps:\n * Step 1. 1012\n * Step 2. 012 -> user removes 1, now use \"localValue\"\n * Step 3. 2012\n *\n * If a dev listens on_change and sends the number value back in,\n * for this, we also ensure that \"numberValue\" and \"localNumberValue\" is the same.\n */\n if (\n localNumberValue !== '0' &&\n localNumberValue.startsWith('0') &&\n parseFloat(numberValue.replace(decimalSymbol, '.')) ===\n parseFloat(localNumberValue.replace(decimalSymbol, '.'))\n ) {\n value = localValue\n }\n\n /**\n * While typing;\n * If the local value is - or -0 we use it.\n * Also, because of invisible whitespace we remove everyting else\n */\n if (/^(-|-0)$/.test(localValue.replace(/[^\\d-0]/g, ''))) {\n value = localValue\n } else if (localNumberValue === '' && numberValue === '0') {\n value = ''\n }\n }\n\n return value\n}\n\n/**\n * This is a helper for setting the cursor position,\n * when it is on a not allowed position\n *\n * @param {Element} element Input Element\n * @param {Object} maskParams Mask parameters, containing eventually suffix or prefix\n */\nexport const correctCaretPosition = (element, maskParams, props) => {\n const correction = () => {\n try {\n const suffix = maskParams?.suffix\n const prefix = maskParams?.prefix\n\n const start = element.selectionStart\n const end = element.selectionEnd\n\n if (start !== end) {\n return // stop here\n }\n\n if (suffix || prefix) {\n const suffixStart = element.value.indexOf(suffix)\n const suffixEnd = suffixStart + suffix?.length\n let pos = undefined\n\n if (start >= suffixStart && start <= suffixEnd) {\n pos = suffixStart\n\n // If there is a placeholder,\n // and the user clicks after the suffix\n // we want the position to be \"before\" the placeholderChar\n if (\n maskParams.placeholderChar !== invisibleSpace &&\n element.value.length - 1 === String(suffix + prefix).length\n ) {\n pos = pos - 1\n }\n } else {\n const prefixStart = element.value.indexOf(prefix)\n const prefixEnd = prefixStart + prefix?.length || 0\n\n if (start >= prefixStart && start <= prefixEnd) {\n pos = prefixEnd\n }\n }\n\n const char = element.value.slice(pos - 1, pos)\n if (char === invisibleSpace) {\n pos = suffixStart - 1\n }\n\n if (!isNaN(parseFloat(pos))) {\n safeSetSelection(element, pos)\n }\n } else if (props?.mask && element.value.length === end) {\n const chars = element.value.split('')\n\n for (let l = chars.length, i = l - 1; i >= 0; i--) {\n const char = chars[i]\n const mask = props.mask[i]\n if (\n char &&\n char !== invisibleSpace &&\n mask instanceof RegExp &&\n mask.test(char)\n ) {\n for (let n = i + 1; n < l; n++) {\n const mask = props.mask[n]\n if (mask?.test?.(mask) === false) {\n safeSetSelection(element, n)\n break\n }\n }\n\n break\n }\n }\n }\n } catch (e) {\n warn(e)\n }\n }\n\n if (typeof window !== 'undefined') {\n window.requestAnimationFrame(correction)\n }\n}\n\n/**\n * Manipulate needed mask for handle: percent\n *\n * @param {object} param0 object with properties\n * @property {object} props Component property\n * @property {string} locale Eufemia locale (either from component or context)\n * @property {object} maskParams predefined mask parameters\n * @returns object maskParams\n */\nexport const handlePercentMask = ({ props, locale, maskParams }) => {\n const value = format(props.value, { locale, percent: true })\n maskParams.suffix = String(value)?.match(/((\\s|)%)$/g, '$1')?.[0] || ' %'\n\n return maskParams\n}\n\n/**\n * Return needed mask for handle: currency\n *\n * @param {object} param0 object with properties\n * @property {object} context Eufemia context\n * @property {object} mask_options Component property for change the mask parameters\n * @property {object} currency_mask Component property for change the currency parameters\n * @returns object maskParams\n */\nexport const handleCurrencyMask = ({ mask_options, currency_mask }) => {\n const maskParams = {\n showMask: true,\n placeholderChar: null,\n allowDecimal: true,\n decimalLimit: 2,\n decimalSymbol: ',',\n ...mask_options,\n ...currency_mask,\n }\n\n const fix =\n typeof currency_mask === 'string'\n ? currency_mask\n : typeof maskParams.currency === 'string'\n ? maskParams.currency\n : 'kr'\n\n maskParams.suffix = ` ${fix}`\n\n return maskParams\n}\n\n/**\n * Return needed mask for handle: number\n *\n * @param {object} param0 object with properties\n * @property {object} context Eufemia context\n * @property {object} mask_options Component property for change the mask parameters\n * @property {object} number_mask Component property for change the number parameters\n * @returns object maskParams\n */\nexport const handleNumberMask = ({ mask_options, number_mask }) => {\n const maskParams = {\n decimalSymbol: ',',\n ...mask_options,\n ...number_mask,\n }\n\n if (typeof maskParams.allowDecimal === 'undefined') {\n maskParams.allowDecimal = maskParams.decimalLimit > 0\n }\n\n return maskParams\n}\n\n/**\n * Returns the type of what inputMode should be used\n *\n * @param {function} mask mask function\n * @returns undefined|decimal|numeric\n */\nexport function getInputModeFromMask(mask) {\n const maskParams = mask?.maskParams\n\n // because of the missing minus key, we still have to use text on Android and iOS\n if ((IS_ANDROID || IS_IOS) && maskParams?.allowNegative !== false) {\n return undefined\n }\n\n if (maskParams && mask?.instanceOf === 'createNumberMask') {\n return maskParams.allowDecimal && maskParams.decimalLimit !== 0\n ? 'decimal'\n : 'numeric'\n }\n return undefined\n}\n\n/**\n * Returns the thousands separator character\n *\n * @param {string} locale Component or context locale\n * @returns string\n */\nexport function handleThousandsSeparator(locale) {\n return getThousandsSeparator(locale).replace(' ', ' ') // replace non-breaking space with a regular space\n}\n\n/**\n * Returns the decimal separator character\n *\n * @param {string} locale Component or context locale\n * @returns string\n */\nexport function handleDecimalSeparator(locale) {\n let decimalSymbol = getDecimalSeparator(locale)\n\n return decimalSymbol\n}\n\n/**\n * Will take a JSON and return it parsed\n *\n * @param {string} str\n * @param {*} fallback optional fallback\n * @returns parsed json\n */\nexport function fromJSON(str, fallback = null) {\n if (typeof str === 'string' && str[0] === '{') {\n return JSON.parse(str)\n }\n\n return str || fallback\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"InputMaskedUtils.js","names":["format","getDecimalSeparator","getThousandsSeparator","warn","IS_ANDROID","IS_IOS","safeSetSelection","enableLocaleSupportWhen","enableNumberMaskWhen","invisibleSpace","isRequestingLocaleSupport","props","Object","entries","some","_ref","k","v","includes","isRequestingNumberMask","_ref2","correctNumberValue","_ref3","localValue","locale","maskParams","value","String","isNaN","parseFloat","decimalPos","indexOf","integerLimit","limit","integers","split","isNegative","length","decimals","slice","shouldHaveDecimals","allowDecimal","decimalLimit","number_format","options","_objectSpread","decimalSymbol","replace","localNumberValue","numberValue","endsWithDecimal","endsWith","endsWithZeroAndDecimal","startsWith","test","correctCaretPosition","element","correction","suffix","prefix","start","selectionStart","end","selectionEnd","suffixStart","suffixEnd","pos","undefined","placeholderChar","prefixStart","prefixEnd","char","mask","chars","l","i","RegExp","n","_mask$test","call","e","window","requestAnimationFrame","handlePercentMask","_ref4","_String","_String$match","percent","match","handleCurrencyMask","_ref5","mask_options","currency_mask","showMask","fix","currency","handleNumberMask","_ref6","number_mask","getInputModeFromMask","allowNegative","instanceOf","handleThousandsSeparator","handleDecimalSeparator","fromJSON","str","fallback","arguments","JSON","parse"],"sources":["../../../../src/components/input-masked/InputMaskedUtils.js"],"sourcesContent":["/**\n * Web InputMasked Component\n *\n */\n\nimport {\n format,\n getDecimalSeparator,\n getThousandsSeparator,\n} from '../number-format/NumberUtils'\nimport { warn } from '../../shared/component-helper'\nimport { IS_ANDROID, IS_IOS } from '../../shared/helpers'\nimport { safeSetSelection } from './text-mask/createTextMaskInputElement'\n\nconst enableLocaleSupportWhen = ['as_number', 'as_percent', 'as_currency']\nconst enableNumberMaskWhen = [\n 'as_number',\n 'as_percent',\n 'as_currency',\n 'number_mask',\n 'currency_mask',\n]\n\nexport const invisibleSpace = '\\u200B'\n\n/**\n * Will return true if a prop needs Locale support\n *\n * @param {object} props object with given component props\n * @returns boolean\n */\nexport const isRequestingLocaleSupport = (props) => {\n return Object.entries(props).some(\n ([k, v]) => v && enableLocaleSupportWhen.includes(k)\n )\n}\n\n/**\n * Will return true if a prop will enable the internal NumberMask\n *\n * @param {object} props object with given component props\n * @returns boolean\n */\nexport const isRequestingNumberMask = (props) => {\n return Object.entries(props).some(\n ([k, v]) => v && enableNumberMaskWhen.includes(k)\n )\n}\n\n/**\n * Probably the most complex part of this component\n * It will modify a given value based on certain criteria's\n *\n * @param {object} param0 object with properties\n * @property {string} localValue optional – if given, it will uses its ending to determine of what to return\n * @property {number|string} value component property value\n * @property {object} context Eufemia Context\n * @property {string} locale Eufemia locale (either from component or context)\n * @property {object} maskParams predefined mask parameters\n * @returns string Value\n */\nexport const correctNumberValue = ({\n localValue = null,\n props,\n locale,\n maskParams,\n}) => {\n let value = String(props.value)\n\n if (isNaN(parseFloat(value))) {\n return value\n }\n\n const decimalPos = value.indexOf('.')\n\n if (\n maskParams.integerLimit &&\n typeof maskParams.integerLimit === 'number'\n ) {\n const limit = maskParams.integerLimit\n const integers = value.split('.')[0]\n const isNegative = parseFloat(integers) < 0\n if (integers.length - (isNegative ? 1 : 0) > limit) {\n const decimals = decimalPos > 0 ? value.slice(decimalPos) : ''\n value = integers.slice(0, limit + (isNegative ? 1 : 0)) + decimals\n }\n }\n\n const shouldHaveDecimals =\n maskParams.allowDecimal ||\n (maskParams.decimalLimit > 0 && maskParams.allowDecimal !== false)\n\n if (!shouldHaveDecimals) {\n if (decimalPos > -1) {\n value = value.slice(0, decimalPos)\n }\n }\n\n /**\n * This only runs IF \"number_format\" is set – we do not use it else\n */\n if (props.number_format) {\n const options = {\n locale,\n decimals: 0,\n ...props.number_format,\n }\n if (shouldHaveDecimals) {\n options.decimals = maskParams.decimalLimit\n }\n value = format(value, options)\n }\n\n const decimalSymbol = maskParams.decimalSymbol\n value = value.replace('.', decimalSymbol)\n\n if (localValue !== null) {\n const localNumberValue = localValue.replace(/[^\\d,.-]/g, '')\n const numberValue = value.replace(/[^\\d,.-]/g, '')\n\n const endsWithDecimal = localNumberValue.endsWith(decimalSymbol)\n const endsWithZeroAndDecimal = localNumberValue.endsWith(\n `${decimalSymbol}0`\n )\n\n if (endsWithDecimal) {\n value = `${value}${decimalSymbol}`\n } else if (\n endsWithZeroAndDecimal &&\n !numberValue.endsWith(`${decimalSymbol}0`)\n ) {\n /**\n * When the users has 20,02, then hits \"backspace\",\n * the returned {numberValue} in the onChange event would then be \"20\",\n * but we want it to be 20,0\n */\n value = `${value}${decimalSymbol}0`\n }\n\n /**\n * If the user removes a leading digit and we have left a leading zero.\n *\n * The users enters these steps:\n * Step 1. 1012\n * Step 2. 012 -> user removes 1, now use \"localValue\"\n * Step 3. 2012\n *\n * If a dev listens on_change and sends the number value back in,\n * for this, we also ensure that \"numberValue\" and \"localNumberValue\" is the same.\n */\n if (\n localNumberValue !== '0' &&\n localNumberValue.startsWith('0') &&\n parseFloat(numberValue.replace(decimalSymbol, '.')) ===\n parseFloat(localNumberValue.replace(decimalSymbol, '.'))\n ) {\n value = localValue\n }\n\n /**\n * While typing;\n * If the local value is - or -0 we use it.\n * Also, because of invisible whitespace we remove everything else\n */\n if (/^(-|-0)$/.test(localValue.replace(/[^\\d-0]/g, ''))) {\n value = localValue\n } else if (localNumberValue === '' && numberValue === '0') {\n value = ''\n }\n }\n\n return value\n}\n\n/**\n * This is a helper for setting the cursor position,\n * when it is on a not allowed position\n *\n * @param {Element} element Input Element\n * @param {Object} maskParams Mask parameters, containing eventually suffix or prefix\n */\nexport const correctCaretPosition = (element, maskParams, props) => {\n const correction = () => {\n try {\n const suffix = maskParams?.suffix\n const prefix = maskParams?.prefix\n\n const start = element.selectionStart\n const end = element.selectionEnd\n\n if (start !== end) {\n return // stop here\n }\n\n if (suffix || prefix) {\n const suffixStart = element.value.indexOf(suffix)\n const suffixEnd = suffixStart + suffix?.length\n let pos = undefined\n\n if (start >= suffixStart && start <= suffixEnd) {\n pos = suffixStart\n\n // If there is a placeholder,\n // and the user clicks after the suffix\n // we want the position to be \"before\" the placeholderChar\n if (\n maskParams.placeholderChar !== invisibleSpace &&\n element.value.length - 1 === String(suffix + prefix).length\n ) {\n pos = pos - 1\n }\n } else {\n const prefixStart = element.value.indexOf(prefix)\n const prefixEnd = prefixStart + prefix?.length || 0\n\n if (start >= prefixStart && start <= prefixEnd) {\n pos = prefixEnd\n }\n }\n\n const char = element.value.slice(pos - 1, pos)\n if (char === invisibleSpace) {\n pos = suffixStart - 1\n }\n\n if (!isNaN(parseFloat(pos))) {\n safeSetSelection(element, pos)\n }\n } else if (props?.mask && element.value.length === end) {\n const chars = element.value.split('')\n\n for (let l = chars.length, i = l - 1; i >= 0; i--) {\n const char = chars[i]\n const mask = props.mask[i]\n if (\n char &&\n char !== invisibleSpace &&\n mask instanceof RegExp &&\n mask.test(char)\n ) {\n for (let n = i + 1; n < l; n++) {\n const mask = props.mask[n]\n if (mask?.test?.(mask) === false) {\n safeSetSelection(element, n)\n break\n }\n }\n\n break\n }\n }\n }\n } catch (e) {\n warn(e)\n }\n }\n\n if (typeof window !== 'undefined') {\n window.requestAnimationFrame(correction)\n }\n}\n\n/**\n * Manipulate needed mask for handle: percent\n *\n * @param {object} param0 object with properties\n * @property {object} props Component property\n * @property {string} locale Eufemia locale (either from component or context)\n * @property {object} maskParams predefined mask parameters\n * @returns object maskParams\n */\nexport const handlePercentMask = ({ props, locale, maskParams }) => {\n const value = format(props.value, { locale, percent: true })\n maskParams.suffix = String(value)?.match(/((\\s|)%)$/g, '$1')?.[0] || ' %'\n\n return maskParams\n}\n\n/**\n * Return needed mask for handle: currency\n *\n * @param {object} param0 object with properties\n * @property {object} context Eufemia context\n * @property {object} mask_options Component property for change the mask parameters\n * @property {object} currency_mask Component property for change the currency parameters\n * @returns object maskParams\n */\nexport const handleCurrencyMask = ({ mask_options, currency_mask }) => {\n const maskParams = {\n showMask: true,\n placeholderChar: null,\n allowDecimal: true,\n decimalLimit: 2,\n decimalSymbol: ',',\n ...mask_options,\n ...currency_mask,\n }\n\n const fix =\n typeof currency_mask === 'string'\n ? currency_mask\n : typeof maskParams.currency === 'string'\n ? maskParams.currency\n : 'kr'\n\n maskParams.suffix = ` ${fix}`\n\n return maskParams\n}\n\n/**\n * Return needed mask for handle: number\n *\n * @param {object} param0 object with properties\n * @property {object} context Eufemia context\n * @property {object} mask_options Component property for change the mask parameters\n * @property {object} number_mask Component property for change the number parameters\n * @returns object maskParams\n */\nexport const handleNumberMask = ({ mask_options, number_mask }) => {\n const maskParams = {\n decimalSymbol: ',',\n ...mask_options,\n ...number_mask,\n }\n\n if (typeof maskParams.allowDecimal === 'undefined') {\n maskParams.allowDecimal = maskParams.decimalLimit > 0\n }\n\n return maskParams\n}\n\n/**\n * Returns the type of what inputMode should be used\n *\n * @param {function} mask mask function\n * @returns undefined|decimal|numeric\n */\nexport function getInputModeFromMask(mask) {\n const maskParams = mask?.maskParams\n\n // because of the missing minus key, we still have to use text on Android and iOS\n if ((IS_ANDROID || IS_IOS) && maskParams?.allowNegative !== false) {\n return undefined\n }\n\n if (maskParams && mask?.instanceOf === 'createNumberMask') {\n return maskParams.allowDecimal && maskParams.decimalLimit !== 0\n ? 'decimal'\n : 'numeric'\n }\n return undefined\n}\n\n/**\n * Returns the thousands separator character\n *\n * @param {string} locale Component or context locale\n * @returns string\n */\nexport function handleThousandsSeparator(locale) {\n return getThousandsSeparator(locale).replace(' ', ' ') // replace non-breaking space with a regular space\n}\n\n/**\n * Returns the decimal separator character\n *\n * @param {string} locale Component or context locale\n * @returns string\n */\nexport function handleDecimalSeparator(locale) {\n let decimalSymbol = getDecimalSeparator(locale)\n\n return decimalSymbol\n}\n\n/**\n * Will take a JSON and return it parsed\n *\n * @param {string} str\n * @param {*} fallback optional fallback\n * @returns parsed json\n */\nexport function fromJSON(str, fallback = null) {\n if (typeof str === 'string' && str[0] === '{') {\n return JSON.parse(str)\n }\n\n return str || fallback\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TextMask.js","names":["React","PropTypes","createTextMaskInputElement","isNil","TextMask","PureComponent","constructor","props","_defineProperty","event","textMaskInputElement","update","onChange","inputRef","createRef","componentDidMount","initTextMask","value","_objectSpread","inputElement","current","componentDidUpdate","prevProps","pipe","mask","guide","placeholderChar","showMask","settings","isPipeChanged","toString","isMaskChanged","isSettingChanged","Object","keys","some","prop","isValueChanged","render","_this$props","keepCharPositions","_objectWithoutProperties","_excluded","params","defaultValue","cloneElement","createElement","_extends","ref","process","env","NODE_ENV","propTypes","oneOfType","array","func","bool","shape","isRequired","object","node","string","number"],"sources":["../../../../src/components/input-masked/TextMask.js"],"sourcesContent":["import React from 'react'\nimport PropTypes from 'prop-types'\nimport createTextMaskInputElement from './text-mask/createTextMaskInputElement'\nimport { isNil } from './text-mask/utilities'\n\nexport default class TextMask extends React.PureComponent {\n static propTypes = {\n mask: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.func,\n PropTypes.bool,\n PropTypes.shape({\n mask: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),\n pipe: PropTypes.func,\n }),\n ]).isRequired,\n inputRef: PropTypes.object,\n inputElement: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n onChange: PropTypes.func,\n guide: PropTypes.bool,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n pipe: PropTypes.func,\n placeholderChar: PropTypes.string,\n keepCharPositions: PropTypes.bool,\n showMask: PropTypes.bool,\n }\n\n static defaultProps = {\n inputElement: null,\n inputRef: null,\n onChange: null,\n guide: null,\n value: null,\n pipe: null,\n placeholderChar: null,\n keepCharPositions: null,\n showMask: null,\n }\n\n constructor(props) {\n super(props)\n\n this.inputRef = props.inputRef || React.createRef()\n }\n\n componentDidMount() {\n this.initTextMask()\n }\n\n initTextMask() {\n const {\n props,\n props: { value },\n } = this\n\n this.textMaskInputElement = createTextMaskInputElement({\n ...props,\n inputElement: this.inputRef.current,\n })\n this.textMaskInputElement.update(value)\n }\n\n onChange = (event) => {\n this.textMaskInputElement.update()\n\n if (typeof this.props.onChange === 'function') {\n return this.props.onChange(event)\n }\n }\n\n componentDidUpdate(prevProps) {\n // Getting props affecting value\n const { value, pipe, mask, guide, placeholderChar, showMask } =\n this.props\n\n // Сalculate that settings was changed:\n // - `pipe` converting to string, to compare function content\n // - `mask` converting to string, to compare values or function content\n // - `keepCharPositions` exludes, because it affect only cursor position\n const settings = { guide, placeholderChar, showMask }\n const isPipeChanged =\n typeof pipe === 'function' && typeof prevProps.pipe === 'function'\n ? pipe.toString() !== prevProps.pipe.toString()\n : (isNil(pipe) && !isNil(prevProps.pipe)) ||\n (!isNil(pipe) && isNil(prevProps.pipe))\n const isMaskChanged = mask.toString() !== prevProps.mask.toString()\n const isSettingChanged =\n Object.keys(settings).some(\n (prop) => settings[prop] !== prevProps[prop]\n ) ||\n isMaskChanged ||\n isPipeChanged\n\n // Сalculate that value was changed\n const isValueChanged =\n value !== this.inputRef.current.value || prevProps.value !== value\n\n // Check value and settings to prevent duplicating update() call\n if (isValueChanged || isSettingChanged) {\n this.initTextMask()\n }\n }\n\n render() {\n const {\n inputElement,\n inputRef, // eslint-disable-line\n mask, // eslint-disable-line\n guide, // eslint-disable-line\n pipe, // eslint-disable-line\n placeholderChar, // eslint-disable-line\n keepCharPositions, // eslint-disable-line\n value, // eslint-disable-line\n onChange, // eslint-disable-line\n showMask, // eslint-disable-line\n\n ...props\n } = this.props\n\n const params = {\n onChange: this.onChange,\n defaultValue: this.props.value,\n ...props,\n }\n\n return inputElement ? (\n React.cloneElement(inputElement, params)\n ) : (\n <input ref={this.inputRef} {...params} />\n )\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"TextMask.js","names":["React","PropTypes","createTextMaskInputElement","isNil","TextMask","PureComponent","constructor","props","_defineProperty","event","textMaskInputElement","update","onChange","inputRef","createRef","componentDidMount","initTextMask","value","_objectSpread","inputElement","current","componentDidUpdate","prevProps","pipe","mask","guide","placeholderChar","showMask","settings","isPipeChanged","toString","isMaskChanged","isSettingChanged","Object","keys","some","prop","isValueChanged","render","_this$props","keepCharPositions","_objectWithoutProperties","_excluded","params","defaultValue","cloneElement","createElement","_extends","ref","process","env","NODE_ENV","propTypes","oneOfType","array","func","bool","shape","isRequired","object","node","string","number"],"sources":["../../../../src/components/input-masked/TextMask.js"],"sourcesContent":["import React from 'react'\nimport PropTypes from 'prop-types'\nimport createTextMaskInputElement from './text-mask/createTextMaskInputElement'\nimport { isNil } from './text-mask/utilities'\n\nexport default class TextMask extends React.PureComponent {\n static propTypes = {\n mask: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.func,\n PropTypes.bool,\n PropTypes.shape({\n mask: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),\n pipe: PropTypes.func,\n }),\n ]).isRequired,\n inputRef: PropTypes.object,\n inputElement: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n onChange: PropTypes.func,\n guide: PropTypes.bool,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n pipe: PropTypes.func,\n placeholderChar: PropTypes.string,\n keepCharPositions: PropTypes.bool,\n showMask: PropTypes.bool,\n }\n\n static defaultProps = {\n inputElement: null,\n inputRef: null,\n onChange: null,\n guide: null,\n value: null,\n pipe: null,\n placeholderChar: null,\n keepCharPositions: null,\n showMask: null,\n }\n\n constructor(props) {\n super(props)\n\n this.inputRef = props.inputRef || React.createRef()\n }\n\n componentDidMount() {\n this.initTextMask()\n }\n\n initTextMask() {\n const {\n props,\n props: { value },\n } = this\n\n this.textMaskInputElement = createTextMaskInputElement({\n ...props,\n inputElement: this.inputRef.current,\n })\n this.textMaskInputElement.update(value)\n }\n\n onChange = (event) => {\n this.textMaskInputElement.update()\n\n if (typeof this.props.onChange === 'function') {\n return this.props.onChange(event)\n }\n }\n\n componentDidUpdate(prevProps) {\n // Getting props affecting value\n const { value, pipe, mask, guide, placeholderChar, showMask } =\n this.props\n\n // Сalculate that settings was changed:\n // - `pipe` converting to string, to compare function content\n // - `mask` converting to string, to compare values or function content\n // - `keepCharPositions` excludes, because it affect only cursor position\n const settings = { guide, placeholderChar, showMask }\n const isPipeChanged =\n typeof pipe === 'function' && typeof prevProps.pipe === 'function'\n ? pipe.toString() !== prevProps.pipe.toString()\n : (isNil(pipe) && !isNil(prevProps.pipe)) ||\n (!isNil(pipe) && isNil(prevProps.pipe))\n const isMaskChanged = mask.toString() !== prevProps.mask.toString()\n const isSettingChanged =\n Object.keys(settings).some(\n (prop) => settings[prop] !== prevProps[prop]\n ) ||\n isMaskChanged ||\n isPipeChanged\n\n // Сalculate that value was changed\n const isValueChanged =\n value !== this.inputRef.current.value || prevProps.value !== value\n\n // Check value and settings to prevent duplicating update() call\n if (isValueChanged || isSettingChanged) {\n this.initTextMask()\n }\n }\n\n render() {\n const {\n inputElement,\n inputRef, // eslint-disable-line\n mask, // eslint-disable-line\n guide, // eslint-disable-line\n pipe, // eslint-disable-line\n placeholderChar, // eslint-disable-line\n keepCharPositions, // eslint-disable-line\n value, // eslint-disable-line\n onChange, // eslint-disable-line\n showMask, // eslint-disable-line\n\n ...props\n } = this.props\n\n const params = {\n onChange: this.onChange,\n defaultValue: this.props.value,\n ...props,\n }\n\n return inputElement ? (\n React.cloneElement(inputElement, params)\n ) : (\n <input ref={this.inputRef} {...params} />\n )\n }\n}\n"],"mappings":"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"}
@@ -253,7 +253,6 @@ class Modal extends React.PureComponent {
253
253
  }
254
254
  try {
255
255
  document.documentElement.removeAttribute('data-dnb-modal-active');
256
- document.body.setAttribute('data-dnb-modal-active', 'false');
257
256
  } catch (e) {
258
257
  warn('Modal: Error on remove "data-dnb-modal-active"', e);
259
258
  }
@@ -265,7 +264,6 @@ class Modal extends React.PureComponent {
265
264
  if (typeof document !== 'undefined') {
266
265
  try {
267
266
  document.documentElement.setAttribute('data-dnb-modal-active', modalId);
268
- document.body.setAttribute('data-dnb-modal-active', 'true');
269
267
  } catch (e) {
270
268
  warn('Modal: Error on set "data-dnb-modal-active"', e);
271
269
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","names":["React","classnames","SuffixContext","Context","warn","isTrue","makeUniqueId","extendPropsWithContextInClassComponent","processChildren","dispatchCustomElementEvent","createSpacingClasses","HelpButtonInstance","getListOfModalRoots","getModalRoot","ModalInner","ModalHeader","ModalHeaderBar","CloseButton","ModalRoot","classWithCamelCaseProps","ANIMATION_DURATION","Modal","PureComponent","getContent","props","modal_content","getDerivedStateFromProps","state","open_state","_open_state","hide","no_animation","modalActive","constructor","_this","this","_defineProperty","event","arguments","length","undefined","showModal","preventDefault","toggleNow","animation_duration","timeoutDuration","parseFloat","isInTransition","doItNow","setState","handleSideEffects","_closeTimeout","setTimeout","waitBeforeOpen","open_delay","delay","_openTimeout","clearTimeout","open_modal","fn","_onUnmount","push","close_modal","toggleOpenClose","setActiveState","_id","_this$_triggerRef","focus","elem","setAttribute","preventScroll","Promise","resolve","removeAttribute","String","_triggerRef","current","activeElement","HTMLElement","then","e","removeActiveState","ifIsLatest","triggeredBy","prevent_close","id","close","list","last","createRef","componentDidMount","openBasedOnStateUpdate","componentWillUnmount","forEach","componentDidUpdate","prevProps","document","documentElement","body","modalId","render","defaultProps","context","getTranslation","root_id","content_id","disabled","labelled_by","focus_selector","header_content","bar_content","bypass_invalidation_selectors","omit_trigger_button","trigger","trigger_attributes","rest","_objectWithoutProperties","_excluded","children","Object","freeze","_objectSpread","suffixProps","triggerAttributes","hidden","variant","icon_position","fallbackTitle","title","translation","HelpButton","TriggerButton","text","createElement","Fragment","_extends","onClick","innerRef","className","class","Consumer","spacing","dialog_title","close_title","hide_close_button","close_button_attributes","prevent_core_style","no_animation_on_mobile","fullscreen","min_width","max_width","align_content","container_placement","direct_dom_return","on_open","on_close","on_close_prevent","overlay_class","content_class","OriginalComponent"],"sources":["../../../../src/components/modal/Modal.tsx"],"sourcesContent":["/**\n * Web Modal Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport { SuffixContext } from '../../shared/helpers/Suffix'\nimport Context, { ContextProps } from '../../shared/Context'\nimport {\n warn,\n isTrue,\n makeUniqueId,\n extendPropsWithContextInClassComponent,\n processChildren,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport HelpButtonInstance from '../help-button/HelpButtonInstance'\nimport { getListOfModalRoots, getModalRoot } from './helpers'\nimport ModalInner from './parts/ModalInner'\nimport { ModalProps } from './types'\n\nimport ModalHeader from './parts/ModalHeader'\nimport ModalHeaderBar from './parts/ModalHeaderBar'\nimport { ScrollViewAllProps } from '../../fragments/scroll-view/ScrollView'\nimport CloseButton from './parts/CloseButton'\nimport ModalRoot from './ModalRoot'\nimport type { SpacingProps } from '../../shared/types'\nimport {\n classWithCamelCaseProps,\n ToCamelCasePartial,\n} from '../../shared/helpers/withCamelCaseProps'\nimport type { ButtonProps } from '../button/Button'\n\nexport const ANIMATION_DURATION = 300\n\ninterface ModalState {\n hide: boolean\n modalActive: boolean\n}\n\nexport type ModalPropTypes = ModalProps &\n SpacingProps &\n Omit<ScrollViewAllProps, 'children'>\n\nclass Modal extends React.PureComponent<\n ModalPropTypes & ToCamelCasePartial<ModalPropTypes>,\n ModalState\n> {\n static contextType = Context\n\n context!: ContextProps\n\n static Bar = ModalHeaderBar\n static Header = ModalHeader\n static Content = ModalInner\n\n static getContent(props) {\n if (typeof props.modal_content === 'string') {\n return props.modal_content\n } else if (typeof props.modal_content === 'function') {\n return props.modal_content(props)\n }\n return processChildren(props)\n }\n\n _id: string\n _triggerRef: React.RefObject<any>\n _onUnmount: Array<() => void>\n _openTimeout: NodeJS.Timeout\n _closeTimeout: NodeJS.Timeout\n _sideEffectsTimeout: NodeJS.Timeout\n _tryToOpenTimeout: NodeJS.Timeout\n activeElement: Element\n isInTransition: boolean\n\n state = {\n hide: false,\n modalActive: false,\n }\n\n static defaultProps = {\n id: null,\n focus_selector: null,\n labelled_by: null,\n title: null,\n disabled: null,\n spacing: true,\n open_delay: null,\n content_id: null,\n dialog_title: 'Vindu',\n close_title: 'Lukk', // Close Modal Window\n hide_close_button: false,\n close_button_attributes: null,\n prevent_close: false,\n prevent_core_style: false,\n animation_duration: ANIMATION_DURATION,\n no_animation: false,\n no_animation_on_mobile: false,\n fullscreen: 'auto',\n min_width: null,\n max_width: null,\n align_content: 'left',\n container_placement: null,\n open_state: null,\n direct_dom_return: false,\n class: null,\n root_id: 'root',\n omit_trigger_button: false,\n\n className: null,\n children: null,\n\n on_open: null,\n on_close: null,\n on_close_prevent: null,\n open_modal: null,\n close_modal: null,\n\n trigger: null,\n trigger_attributes: null,\n\n overlay_class: null,\n content_class: null,\n\n modal_content: null,\n header_content: null,\n bar_content: null,\n }\n\n static getDerivedStateFromProps(props, state) {\n if (props.open_state !== state._open_state) {\n switch (props.open_state) {\n case 'opened':\n case true:\n state.hide = false\n if (isTrue(props.no_animation)) {\n state.modalActive = true\n }\n break\n case 'closed':\n case false:\n state.hide = true\n if (isTrue(props.no_animation)) {\n state.modalActive = false\n }\n break\n }\n }\n state._open_state = props.open_state\n\n return state\n }\n\n constructor(props) {\n super(props)\n this._id = props.id || makeUniqueId('modal-')\n\n this._triggerRef = React.createRef()\n\n this._onUnmount = []\n }\n\n componentDidMount() {\n this.openBasedOnStateUpdate()\n }\n\n componentWillUnmount() {\n clearTimeout(this._openTimeout)\n clearTimeout(this._closeTimeout)\n\n this.removeActiveState()\n\n this._onUnmount.forEach((fn) => {\n if (typeof fn === 'function') {\n fn()\n }\n })\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps !== this.props) {\n this.openBasedOnStateUpdate()\n }\n }\n\n openBasedOnStateUpdate() {\n const { hide } = this.state\n const { open_state } = this.props\n\n if (!this.activeElement && typeof document !== 'undefined') {\n this.activeElement = document.activeElement\n }\n\n if (!hide && (open_state === 'opened' || open_state === true)) {\n this.toggleOpenClose(null, true)\n } else if (hide && (open_state === 'closed' || open_state === false)) {\n this.toggleOpenClose(null, false)\n }\n }\n\n toggleOpenClose = (event = null, showModal = null) => {\n if (event && event.preventDefault) {\n event.preventDefault()\n }\n\n const toggleNow = () => {\n const {\n animation_duration = ANIMATION_DURATION,\n no_animation = false,\n } = this.props\n const timeoutDuration =\n typeof animation_duration === 'string'\n ? parseFloat(animation_duration)\n : animation_duration\n\n const modalActive =\n typeof showModal === 'boolean'\n ? showModal\n : !this.state.modalActive\n\n this.isInTransition = true\n\n const doItNow = () => {\n this.setState(\n {\n hide: false,\n modalActive,\n },\n () => {\n this.isInTransition = false\n this.handleSideEffects()\n }\n )\n }\n\n if (modalActive === false && !isTrue(no_animation)) {\n this.setState({\n hide: true,\n })\n\n this._closeTimeout = setTimeout(doItNow, timeoutDuration) // delay because of the animation\n } else {\n doItNow()\n }\n }\n\n const waitBeforeOpen = () => {\n const { open_delay, no_animation } = this.props\n const delay =\n typeof open_delay === 'string'\n ? parseFloat(open_delay)\n : open_delay\n if (delay > 0 && !isTrue(no_animation)) {\n this._openTimeout = setTimeout(toggleNow, delay) // custom delay\n } else {\n toggleNow()\n }\n }\n\n clearTimeout(this._closeTimeout)\n clearTimeout(this._openTimeout)\n\n const { open_modal } = this.props\n if (typeof open_modal === 'function') {\n const fn = open_modal(waitBeforeOpen, this)\n if (fn) {\n this._onUnmount.push(fn)\n }\n } else {\n waitBeforeOpen()\n }\n }\n\n handleSideEffects = () => {\n const { modalActive } = this.state\n const { close_modal, open_state, animation_duration } = this.props\n\n if (modalActive) {\n if (typeof close_modal === 'function') {\n const fn = close_modal(() => {\n this.toggleOpenClose(null, false)\n }, this)\n if (fn) {\n this._onUnmount.push(fn)\n }\n }\n\n this.setActiveState(this._id)\n } else if (modalActive === false) {\n const focus = (elem: HTMLElement) => {\n // So we can omit showing a Tooltip on the trigger button\n elem.setAttribute('data-autofocus', 'true')\n\n elem.focus({ preventScroll: true })\n\n return new Promise<void>((resolve) => {\n setTimeout(() => {\n elem?.removeAttribute('data-autofocus')\n resolve()\n }, parseFloat(String(animation_duration)) / 3)\n })\n }\n\n if (this._triggerRef?.current) {\n focus(this._triggerRef.current)\n }\n\n // because the open_state was set to opened, we force\n if (\n (open_state === 'opened' || open_state === true) &&\n this.activeElement instanceof HTMLElement\n ) {\n try {\n focus(this.activeElement).then(() => {\n this.activeElement = null\n })\n } catch (e) {\n //\n }\n }\n\n this.removeActiveState()\n }\n }\n\n open = (e: Event) => {\n this.toggleOpenClose(e, true)\n }\n\n close = (\n event: Event,\n { ifIsLatest, triggeredBy = null } = { ifIsLatest: true }\n ) => {\n const { prevent_close = false } = this.props\n\n if (isTrue(prevent_close)) {\n const id = this._id\n dispatchCustomElementEvent(this, 'on_close_prevent', {\n id,\n event,\n triggeredBy,\n close: (e) => {\n this.toggleOpenClose(e, false)\n },\n })\n } else {\n if (ifIsLatest) {\n const list = getListOfModalRoots()\n if (list.length > 1) {\n const last = getModalRoot(-1)\n if (last !== this) {\n return // stop here\n }\n }\n }\n\n this.toggleOpenClose(event, false)\n }\n }\n\n removeActiveState() {\n const last = getModalRoot(-1)\n\n // If this instance is not the last one,\n // make the current one to as the active one\n if (last?._id && last._id !== this._id) {\n return this.setActiveState(last._id)\n }\n\n try {\n document.documentElement.removeAttribute('data-dnb-modal-active')\n\n // Deprecated\n document.body.setAttribute('data-dnb-modal-active', 'false')\n } catch (e) {\n warn('Modal: Error on remove \"data-dnb-modal-active\"', e)\n }\n }\n\n /**\n * Prevent scrolling on the background\n * But checks if this instance was the last one or not\n *\n * @param {string} modalId Will remove the attribute if false is given\n */\n setActiveState(modalId: string) {\n if (!modalId) {\n warn('Modal: A valid modalId is required')\n }\n // prevent scrolling on the background\n if (typeof document !== 'undefined') {\n try {\n document.documentElement.setAttribute(\n 'data-dnb-modal-active',\n modalId\n )\n\n // Deprecated\n document.body.setAttribute('data-dnb-modal-active', 'true')\n } catch (e) {\n warn('Modal: Error on set \"data-dnb-modal-active\"', e)\n }\n }\n }\n\n render() {\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContextInClassComponent(\n this.props,\n Modal.defaultProps,\n this.context.getTranslation(this.props).Modal,\n this.context.Modal\n )\n\n const {\n root_id = 'root',\n content_id = null,\n disabled = null,\n labelled_by = null,\n focus_selector = null,\n header_content = null,\n bar_content = null,\n bypass_invalidation_selectors = null,\n\n id, // eslint-disable-line\n open_state, // eslint-disable-line\n open_delay, // eslint-disable-line\n\n omit_trigger_button = false,\n trigger = null,\n trigger_attributes = null,\n ...rest\n } = props\n\n const { hide, modalActive } = this.state\n const modal_content = Modal.getContent(\n typeof this.props.children === 'function'\n ? Object.freeze({ ...this.props, close: this.close })\n : this.props\n )\n\n const render = (suffixProps) => {\n const triggerAttributes = {\n hidden: false,\n variant: 'secondary',\n icon_position: 'left',\n ...trigger_attributes,\n } as ButtonProps\n\n if (isTrue(disabled)) {\n triggerAttributes.disabled = true\n }\n\n if (triggerAttributes.id) {\n this._id = triggerAttributes.id\n }\n\n let fallbackTitle: string\n if (triggerAttributes.title) {\n fallbackTitle = triggerAttributes.title\n }\n // in case the modal is used in suffix and no title is given\n // suffixProps.label is also available, so we could use that too\n else if (suffixProps) {\n fallbackTitle = this.context.translation.HelpButton.title\n }\n\n const TriggerButton = trigger\n ? (trigger as React.FC)\n : HelpButtonInstance\n\n const title = (\n !triggerAttributes.text ? rest.title || fallbackTitle : null\n ) as string\n\n return (\n <>\n {TriggerButton && !isTrue(omit_trigger_button) && (\n <TriggerButton\n {...triggerAttributes}\n id={this._id}\n title={title}\n onClick={this.toggleOpenClose}\n innerRef={this._triggerRef}\n className={classnames(\n 'dnb-modal__trigger',\n createSpacingClasses(props),\n triggerAttributes.class,\n triggerAttributes.className\n )}\n />\n )}\n\n {modalActive && modal_content && (\n <ModalRoot\n {...rest}\n id={this._id}\n root_id={root_id}\n content_id={content_id || `dnb-modal-${this._id}`}\n labelled_by={labelled_by}\n focus_selector={focus_selector}\n modal_content={modal_content}\n header_content={header_content}\n bar_content={bar_content}\n bypass_invalidation_selectors={bypass_invalidation_selectors}\n close={this.close}\n hide={hide}\n title={rest.title || fallbackTitle}\n />\n )}\n </>\n )\n }\n\n return <SuffixContext.Consumer>{render}</SuffixContext.Consumer>\n }\n}\n\nexport { CloseButton, Modal as OriginalComponent }\n\nexport default classWithCamelCaseProps(Modal)\n"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.js","names":["React","classnames","SuffixContext","Context","warn","isTrue","makeUniqueId","extendPropsWithContextInClassComponent","processChildren","dispatchCustomElementEvent","createSpacingClasses","HelpButtonInstance","getListOfModalRoots","getModalRoot","ModalInner","ModalHeader","ModalHeaderBar","CloseButton","ModalRoot","classWithCamelCaseProps","ANIMATION_DURATION","Modal","PureComponent","getContent","props","modal_content","getDerivedStateFromProps","state","open_state","_open_state","hide","no_animation","modalActive","constructor","_this","this","_defineProperty","event","arguments","length","undefined","showModal","preventDefault","toggleNow","animation_duration","timeoutDuration","parseFloat","isInTransition","doItNow","setState","handleSideEffects","_closeTimeout","setTimeout","waitBeforeOpen","open_delay","delay","_openTimeout","clearTimeout","open_modal","fn","_onUnmount","push","close_modal","toggleOpenClose","setActiveState","_id","_this$_triggerRef","focus","elem","setAttribute","preventScroll","Promise","resolve","removeAttribute","String","_triggerRef","current","activeElement","HTMLElement","then","e","removeActiveState","ifIsLatest","triggeredBy","prevent_close","id","close","list","last","createRef","componentDidMount","openBasedOnStateUpdate","componentWillUnmount","forEach","componentDidUpdate","prevProps","document","documentElement","modalId","render","defaultProps","context","getTranslation","root_id","content_id","disabled","labelled_by","focus_selector","header_content","bar_content","bypass_invalidation_selectors","omit_trigger_button","trigger","trigger_attributes","rest","_objectWithoutProperties","_excluded","children","Object","freeze","_objectSpread","suffixProps","triggerAttributes","hidden","variant","icon_position","fallbackTitle","title","translation","HelpButton","TriggerButton","text","createElement","Fragment","_extends","onClick","innerRef","className","class","Consumer","spacing","dialog_title","close_title","hide_close_button","close_button_attributes","prevent_core_style","no_animation_on_mobile","fullscreen","min_width","max_width","align_content","container_placement","direct_dom_return","on_open","on_close","on_close_prevent","overlay_class","content_class","OriginalComponent"],"sources":["../../../../src/components/modal/Modal.tsx"],"sourcesContent":["/**\n * Web Modal Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport { SuffixContext } from '../../shared/helpers/Suffix'\nimport Context, { ContextProps } from '../../shared/Context'\nimport {\n warn,\n isTrue,\n makeUniqueId,\n extendPropsWithContextInClassComponent,\n processChildren,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport HelpButtonInstance from '../help-button/HelpButtonInstance'\nimport { getListOfModalRoots, getModalRoot } from './helpers'\nimport ModalInner from './parts/ModalInner'\nimport { ModalProps } from './types'\n\nimport ModalHeader from './parts/ModalHeader'\nimport ModalHeaderBar from './parts/ModalHeaderBar'\nimport { ScrollViewAllProps } from '../../fragments/scroll-view/ScrollView'\nimport CloseButton from './parts/CloseButton'\nimport ModalRoot from './ModalRoot'\nimport type { SpacingProps } from '../../shared/types'\nimport {\n classWithCamelCaseProps,\n ToCamelCasePartial,\n} from '../../shared/helpers/withCamelCaseProps'\nimport type { ButtonProps } from '../button/Button'\n\nexport const ANIMATION_DURATION = 300\n\ninterface ModalState {\n hide: boolean\n modalActive: boolean\n}\n\nexport type ModalPropTypes = ModalProps &\n SpacingProps &\n Omit<ScrollViewAllProps, 'children'>\n\nclass Modal extends React.PureComponent<\n ModalPropTypes & ToCamelCasePartial<ModalPropTypes>,\n ModalState\n> {\n static contextType = Context\n\n context!: ContextProps\n\n static Bar = ModalHeaderBar\n static Header = ModalHeader\n static Content = ModalInner\n\n static getContent(props) {\n if (typeof props.modal_content === 'string') {\n return props.modal_content\n } else if (typeof props.modal_content === 'function') {\n return props.modal_content(props)\n }\n return processChildren(props)\n }\n\n _id: string\n _triggerRef: React.RefObject<any>\n _onUnmount: Array<() => void>\n _openTimeout: NodeJS.Timeout\n _closeTimeout: NodeJS.Timeout\n _sideEffectsTimeout: NodeJS.Timeout\n _tryToOpenTimeout: NodeJS.Timeout\n activeElement: Element\n isInTransition: boolean\n\n state = {\n hide: false,\n modalActive: false,\n }\n\n static defaultProps = {\n id: null,\n focus_selector: null,\n labelled_by: null,\n title: null,\n disabled: null,\n spacing: true,\n open_delay: null,\n content_id: null,\n dialog_title: 'Vindu',\n close_title: 'Lukk', // Close Modal Window\n hide_close_button: false,\n close_button_attributes: null,\n prevent_close: false,\n prevent_core_style: false,\n animation_duration: ANIMATION_DURATION,\n no_animation: false,\n no_animation_on_mobile: false,\n fullscreen: 'auto',\n min_width: null,\n max_width: null,\n align_content: 'left',\n container_placement: null,\n open_state: null,\n direct_dom_return: false,\n class: null,\n root_id: 'root',\n omit_trigger_button: false,\n\n className: null,\n children: null,\n\n on_open: null,\n on_close: null,\n on_close_prevent: null,\n open_modal: null,\n close_modal: null,\n\n trigger: null,\n trigger_attributes: null,\n\n overlay_class: null,\n content_class: null,\n\n modal_content: null,\n header_content: null,\n bar_content: null,\n }\n\n static getDerivedStateFromProps(props, state) {\n if (props.open_state !== state._open_state) {\n switch (props.open_state) {\n case 'opened':\n case true:\n state.hide = false\n if (isTrue(props.no_animation)) {\n state.modalActive = true\n }\n break\n case 'closed':\n case false:\n state.hide = true\n if (isTrue(props.no_animation)) {\n state.modalActive = false\n }\n break\n }\n }\n state._open_state = props.open_state\n\n return state\n }\n\n constructor(props) {\n super(props)\n this._id = props.id || makeUniqueId('modal-')\n\n this._triggerRef = React.createRef()\n\n this._onUnmount = []\n }\n\n componentDidMount() {\n this.openBasedOnStateUpdate()\n }\n\n componentWillUnmount() {\n clearTimeout(this._openTimeout)\n clearTimeout(this._closeTimeout)\n\n this.removeActiveState()\n\n this._onUnmount.forEach((fn) => {\n if (typeof fn === 'function') {\n fn()\n }\n })\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps !== this.props) {\n this.openBasedOnStateUpdate()\n }\n }\n\n openBasedOnStateUpdate() {\n const { hide } = this.state\n const { open_state } = this.props\n\n if (!this.activeElement && typeof document !== 'undefined') {\n this.activeElement = document.activeElement\n }\n\n if (!hide && (open_state === 'opened' || open_state === true)) {\n this.toggleOpenClose(null, true)\n } else if (hide && (open_state === 'closed' || open_state === false)) {\n this.toggleOpenClose(null, false)\n }\n }\n\n toggleOpenClose = (event = null, showModal = null) => {\n if (event && event.preventDefault) {\n event.preventDefault()\n }\n\n const toggleNow = () => {\n const {\n animation_duration = ANIMATION_DURATION,\n no_animation = false,\n } = this.props\n const timeoutDuration =\n typeof animation_duration === 'string'\n ? parseFloat(animation_duration)\n : animation_duration\n\n const modalActive =\n typeof showModal === 'boolean'\n ? showModal\n : !this.state.modalActive\n\n this.isInTransition = true\n\n const doItNow = () => {\n this.setState(\n {\n hide: false,\n modalActive,\n },\n () => {\n this.isInTransition = false\n this.handleSideEffects()\n }\n )\n }\n\n if (modalActive === false && !isTrue(no_animation)) {\n this.setState({\n hide: true,\n })\n\n this._closeTimeout = setTimeout(doItNow, timeoutDuration) // delay because of the animation\n } else {\n doItNow()\n }\n }\n\n const waitBeforeOpen = () => {\n const { open_delay, no_animation } = this.props\n const delay =\n typeof open_delay === 'string'\n ? parseFloat(open_delay)\n : open_delay\n if (delay > 0 && !isTrue(no_animation)) {\n this._openTimeout = setTimeout(toggleNow, delay) // custom delay\n } else {\n toggleNow()\n }\n }\n\n clearTimeout(this._closeTimeout)\n clearTimeout(this._openTimeout)\n\n const { open_modal } = this.props\n if (typeof open_modal === 'function') {\n const fn = open_modal(waitBeforeOpen, this)\n if (fn) {\n this._onUnmount.push(fn)\n }\n } else {\n waitBeforeOpen()\n }\n }\n\n handleSideEffects = () => {\n const { modalActive } = this.state\n const { close_modal, open_state, animation_duration } = this.props\n\n if (modalActive) {\n if (typeof close_modal === 'function') {\n const fn = close_modal(() => {\n this.toggleOpenClose(null, false)\n }, this)\n if (fn) {\n this._onUnmount.push(fn)\n }\n }\n\n this.setActiveState(this._id)\n } else if (modalActive === false) {\n const focus = (elem: HTMLElement) => {\n // So we can omit showing a Tooltip on the trigger button\n elem.setAttribute('data-autofocus', 'true')\n\n elem.focus({ preventScroll: true })\n\n return new Promise<void>((resolve) => {\n setTimeout(() => {\n elem?.removeAttribute('data-autofocus')\n resolve()\n }, parseFloat(String(animation_duration)) / 3)\n })\n }\n\n if (this._triggerRef?.current) {\n focus(this._triggerRef.current)\n }\n\n // because the open_state was set to opened, we force\n if (\n (open_state === 'opened' || open_state === true) &&\n this.activeElement instanceof HTMLElement\n ) {\n try {\n focus(this.activeElement).then(() => {\n this.activeElement = null\n })\n } catch (e) {\n //\n }\n }\n\n this.removeActiveState()\n }\n }\n\n open = (e: Event) => {\n this.toggleOpenClose(e, true)\n }\n\n close = (\n event: Event,\n { ifIsLatest, triggeredBy = null } = { ifIsLatest: true }\n ) => {\n const { prevent_close = false } = this.props\n\n if (isTrue(prevent_close)) {\n const id = this._id\n dispatchCustomElementEvent(this, 'on_close_prevent', {\n id,\n event,\n triggeredBy,\n close: (e) => {\n this.toggleOpenClose(e, false)\n },\n })\n } else {\n if (ifIsLatest) {\n const list = getListOfModalRoots()\n if (list.length > 1) {\n const last = getModalRoot(-1)\n if (last !== this) {\n return // stop here\n }\n }\n }\n\n this.toggleOpenClose(event, false)\n }\n }\n\n removeActiveState() {\n const last = getModalRoot(-1)\n\n // If this instance is not the last one,\n // make the current one to as the active one\n if (last?._id && last._id !== this._id) {\n return this.setActiveState(last._id)\n }\n\n try {\n document.documentElement.removeAttribute('data-dnb-modal-active')\n } catch (e) {\n warn('Modal: Error on remove \"data-dnb-modal-active\"', e)\n }\n }\n\n /**\n * Prevent scrolling on the background\n * But checks if this instance was the last one or not\n *\n * @param {string} modalId Will remove the attribute if false is given\n */\n setActiveState(modalId: string) {\n if (!modalId) {\n warn('Modal: A valid modalId is required')\n }\n // prevent scrolling on the background\n if (typeof document !== 'undefined') {\n try {\n document.documentElement.setAttribute(\n 'data-dnb-modal-active',\n modalId\n )\n } catch (e) {\n warn('Modal: Error on set \"data-dnb-modal-active\"', e)\n }\n }\n }\n\n render() {\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContextInClassComponent(\n this.props,\n Modal.defaultProps,\n this.context.getTranslation(this.props).Modal,\n this.context.Modal\n )\n\n const {\n root_id = 'root',\n content_id = null,\n disabled = null,\n labelled_by = null,\n focus_selector = null,\n header_content = null,\n bar_content = null,\n bypass_invalidation_selectors = null,\n\n id, // eslint-disable-line\n open_state, // eslint-disable-line\n open_delay, // eslint-disable-line\n\n omit_trigger_button = false,\n trigger = null,\n trigger_attributes = null,\n ...rest\n } = props\n\n const { hide, modalActive } = this.state\n const modal_content = Modal.getContent(\n typeof this.props.children === 'function'\n ? Object.freeze({ ...this.props, close: this.close })\n : this.props\n )\n\n const render = (suffixProps) => {\n const triggerAttributes = {\n hidden: false,\n variant: 'secondary',\n icon_position: 'left',\n ...trigger_attributes,\n } as ButtonProps\n\n if (isTrue(disabled)) {\n triggerAttributes.disabled = true\n }\n\n if (triggerAttributes.id) {\n this._id = triggerAttributes.id\n }\n\n let fallbackTitle: string\n if (triggerAttributes.title) {\n fallbackTitle = triggerAttributes.title\n }\n // in case the modal is used in suffix and no title is given\n // suffixProps.label is also available, so we could use that too\n else if (suffixProps) {\n fallbackTitle = this.context.translation.HelpButton.title\n }\n\n const TriggerButton = trigger\n ? (trigger as React.FC)\n : HelpButtonInstance\n\n const title = (\n !triggerAttributes.text ? rest.title || fallbackTitle : null\n ) as string\n\n return (\n <>\n {TriggerButton && !isTrue(omit_trigger_button) && (\n <TriggerButton\n {...triggerAttributes}\n id={this._id}\n title={title}\n onClick={this.toggleOpenClose}\n innerRef={this._triggerRef}\n className={classnames(\n 'dnb-modal__trigger',\n createSpacingClasses(props),\n triggerAttributes.class,\n triggerAttributes.className\n )}\n />\n )}\n\n {modalActive && modal_content && (\n <ModalRoot\n {...rest}\n id={this._id}\n root_id={root_id}\n content_id={content_id || `dnb-modal-${this._id}`}\n labelled_by={labelled_by}\n focus_selector={focus_selector}\n modal_content={modal_content}\n header_content={header_content}\n bar_content={bar_content}\n bypass_invalidation_selectors={bypass_invalidation_selectors}\n close={this.close}\n hide={hide}\n title={rest.title || fallbackTitle}\n />\n )}\n </>\n )\n }\n\n return <SuffixContext.Consumer>{render}</SuffixContext.Consumer>\n }\n}\n\nexport { CloseButton, Modal as OriginalComponent }\n\nexport default classWithCamelCaseProps(Modal)\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bodyScrollLock.js","names":["warn","isChildOfElement","checkIfHasScrollbar","isServer","window","detectOS","ua","navigator","userAgent","ipad","test","iphone","android","ios","lockedNum","initialClientY","initialClientX","callbackUnlock","documentListenerAdded","lockedElements","eventListenerOptions","getEventListenerOptions","passive","options","isSupportOptions","capture","setOverflowHidden","htmlElement","document","documentElement","bodyElement","body","htmlStyle","Object","assign","style","bodyStyle","scrollBarWidth","innerWidth","clientWidth","overflow","height","setProperty","boxSizing","marginRight","forEach","x","removeProperty","e","setOverflowHiddenIOS","targetElement","elementArray","Array","isArray","element","indexOf","ontouchstart","event","targetTouches","clientY","clientX","ontouchmove","length","handleScroll","push","addEventListener","preventDefault","index","splice","removeEventListener","setOverflowHiddenAndroid","unbind","scrollTop","position","top","left","right","scrollBehavior","getComputedStyle","found","find","target","cancelable","scrollLeft","scrollWidth","scrollHeight","clientHeight","isVertical","Math","abs","isOnTop","isOnLeft","isOnRight","isOnBottom","hasScrollbar","stopPropagation","checkTargetElement","disableBodyScroll","enableBodyScroll","clearAllBodyScrollLocks","pop"],"sources":["../../../../src/components/modal/bodyScrollLock.js"],"sourcesContent":["import {\n warn,\n isChildOfElement,\n checkIfHasScrollbar,\n} from '../../shared/component-helper'\n\nconst isServer = () => typeof window === 'undefined'\nconst detectOS = (ua) => {\n ua = ua || navigator.userAgent\n const ipad = /(iPad).*OS\\s([\\d_]+)/.test(ua)\n const iphone = !ipad && /(iPhone\\sOS)\\s([\\d_]+)/.test(ua)\n const android = /(Android);?[\\s/]+([\\d.]+)?/.test(ua)\n const ios = iphone || ipad\n return { ios, android }\n}\n\nlet lockedNum = 0\nlet initialClientY = 0\nlet initialClientX = 0\nlet callbackUnlock = null\nlet documentListenerAdded = false\n\nconst lockedElements = []\nconst eventListenerOptions = getEventListenerOptions({ passive: false })\nfunction getEventListenerOptions(options) {\n if (isServer()) {\n return // stop here\n }\n\n let isSupportOptions = true\n const { capture } = options\n return isSupportOptions\n ? options\n : typeof capture !== 'undefined'\n ? capture\n : false\n}\n\nconst setOverflowHidden = () => {\n try {\n const htmlElement = document.documentElement\n const bodyElement = document.body\n const htmlStyle = Object.assign({}, htmlElement.style)\n const bodyStyle = Object.assign({}, bodyElement.style)\n const scrollBarWidth =\n window.innerWidth - (bodyElement.clientWidth || window.innerWidth)\n\n htmlElement.style.overflow = 'hidden'\n htmlElement.style.height = '100%'\n htmlElement.style.setProperty(\n '--scrollbar-width',\n `${scrollBarWidth}px`\n )\n\n bodyElement.style.overflow = 'hidden'\n bodyElement.style.height = 'auto'\n bodyElement.style.boxSizing = 'border-box'\n bodyElement.style.marginRight = `${scrollBarWidth}px`\n\n return () => {\n try {\n // eslint-disable-next-line\n ;['overflow', 'height'].forEach((x) => {\n htmlElement.style[x] = htmlStyle[x] || ''\n })\n ;['overflow', 'height', 'boxSizing', 'margin'].forEach((x) => {\n bodyElement.style[x] = bodyStyle[x] || ''\n })\n htmlElement.style.removeProperty('--scrollbar-width')\n } catch (e) {\n warn(e)\n }\n }\n } catch (e) {\n warn(e)\n }\n}\n\nconst setOverflowHiddenIOS = (targetElement) => {\n if (targetElement) {\n const elementArray = Array.isArray(targetElement)\n ? targetElement\n : [targetElement]\n elementArray.forEach((element) => {\n if (element && lockedElements.indexOf(element) === -1) {\n element.ontouchstart = (event) => {\n initialClientY = event.targetTouches[0].clientY\n initialClientX = event.targetTouches[0].clientX\n }\n element.ontouchmove = (event) => {\n if (event.targetTouches.length !== 1) {\n return // stop here\n }\n handleScroll(event, element)\n }\n lockedElements.push(element)\n }\n })\n }\n\n if (!documentListenerAdded) {\n document.addEventListener(\n 'touchmove',\n preventDefault,\n eventListenerOptions\n )\n documentListenerAdded = true\n }\n\n return () => {\n if (targetElement) {\n const elementArray = Array.isArray(targetElement)\n ? targetElement\n : [targetElement]\n elementArray.forEach((element) => {\n const index = lockedElements.indexOf(element)\n if (index !== -1) {\n element.ontouchmove = null\n element.ontouchstart = null\n lockedElements.splice(index, 1)\n }\n })\n }\n\n if (documentListenerAdded) {\n document.removeEventListener(\n 'touchmove',\n preventDefault,\n eventListenerOptions\n )\n documentListenerAdded = false\n }\n }\n}\n\nconst setOverflowHiddenAndroid = () => {\n try {\n const unbind = setOverflowHidden()\n\n const htmlElement = document.documentElement\n const bodyElement = document.body\n const scrollTop = htmlElement.scrollTop || bodyElement.scrollTop\n const bodyStyle = Object.assign({}, bodyElement.style)\n\n bodyElement.style.position = 'fixed'\n bodyElement.style.top = `-${scrollTop}px`\n bodyElement.style.left = '0'\n bodyElement.style.right = '0'\n\n return () => {\n unbind()\n\n try {\n // eslint-disable-next-line\n ;['position', 'top', 'right', 'left'].forEach((x) => {\n bodyElement.style[x] = bodyStyle[x] || ''\n })\n\n const scrollBehavior =\n window.getComputedStyle(htmlElement).scrollBehavior\n htmlElement.style.scrollBehavior = 'auto'\n htmlElement.scrollTop = scrollTop\n htmlElement.style.scrollBehavior = scrollBehavior\n } catch (e) {\n warn(e)\n }\n }\n } catch (e) {\n warn(e)\n }\n}\n\nconst preventDefault = (event) => {\n const found = lockedElements.find((targetElement) => {\n return isChildOfElement(event.target, targetElement)\n })\n\n if (found || !event.cancelable) {\n return // stop here\n }\n\n event.preventDefault()\n}\n\n// Depreciated – this function can be removed as soon as we do not need to support iOS < 14\nconst handleScroll = (event, targetElement) => {\n try {\n if (targetElement) {\n const {\n scrollTop,\n scrollLeft,\n scrollWidth,\n scrollHeight,\n clientWidth,\n clientHeight,\n } = targetElement\n const clientX = event.targetTouches[0].clientX - initialClientX\n const clientY = event.targetTouches[0].clientY - initialClientY\n const isVertical = Math.abs(clientY) > Math.abs(clientX)\n const isOnTop = clientY > 0 && scrollTop === 0\n const isOnLeft = clientX > 0 && scrollLeft === 0\n const isOnRight =\n clientX < 0 && scrollLeft + clientWidth + 1 >= scrollWidth\n const isOnBottom =\n clientY < 0 && scrollTop + clientHeight + 1 >= scrollHeight\n if (\n (isVertical && (isOnTop || isOnBottom)) ||\n (!isVertical && (isOnLeft || isOnRight))\n ) {\n const hasScrollbar = isChildOfElement(\n event.target,\n targetElement,\n checkIfHasScrollbar\n )\n\n if (hasScrollbar && hasScrollbar !== targetElement) {\n return true\n }\n\n return event.cancelable && event.preventDefault()\n }\n }\n\n event.stopPropagation()\n\n return true\n } catch (e) {\n warn(e)\n }\n}\n\nconst checkTargetElement = (targetElement) => {\n if (targetElement) return\n if (targetElement === null) return\n warn(\n `If scrolling is also required in the floating layer, ` +\n `the target element must be provided.`\n )\n}\n\nexport const disableBodyScroll = (targetElement) => {\n if (isServer()) {\n return // stop here\n }\n\n checkTargetElement(targetElement)\n\n try {\n // iOS\n if (detectOS().ios) {\n callbackUnlock = setOverflowHiddenIOS(targetElement)\n\n // Android or Desktop\n } else if (lockedNum <= 0) {\n if (detectOS().android) {\n callbackUnlock = setOverflowHiddenAndroid()\n } else {\n callbackUnlock = setOverflowHidden()\n }\n }\n\n lockedNum += 1\n } catch (e) {\n warn(e)\n }\n}\n\nexport const enableBodyScroll = (targetElement) => {\n if (isServer()) {\n return\n }\n\n checkTargetElement(targetElement)\n\n try {\n lockedNum -= 1\n\n if (lockedNum > 0) {\n return // stop here\n }\n\n if (typeof callbackUnlock === 'function') {\n callbackUnlock()\n }\n } catch (e) {\n warn(e)\n }\n}\n\nexport const clearAllBodyScrollLocks = () => {\n if (isServer()) {\n return // stop here\n }\n\n try {\n lockedNum = 0\n\n if (typeof callbackUnlock === 'function') {\n callbackUnlock()\n }\n\n // iOS\n if (detectOS().ios) {\n if (lockedElements && lockedElements.length) {\n // clear events\n let element = lockedElements.pop()\n while (element) {\n element.ontouchmove = null\n element.ontouchstart = null\n element = lockedElements.pop()\n }\n }\n }\n } catch (e) {\n warn(e)\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"bodyScrollLock.js","names":["warn","isChildOfElement","checkIfHasScrollbar","isServer","window","detectOS","ua","navigator","userAgent","ipad","test","iphone","android","ios","lockedNum","initialClientY","initialClientX","callbackUnlock","documentListenerAdded","lockedElements","eventListenerOptions","getEventListenerOptions","passive","options","isSupportOptions","capture","setOverflowHidden","htmlElement","document","documentElement","bodyElement","body","htmlStyle","Object","assign","style","bodyStyle","scrollBarWidth","innerWidth","clientWidth","overflow","height","setProperty","boxSizing","marginRight","forEach","x","removeProperty","e","setOverflowHiddenIOS","targetElement","elementArray","Array","isArray","element","indexOf","ontouchstart","event","targetTouches","clientY","clientX","ontouchmove","length","handleScroll","push","addEventListener","preventDefault","index","splice","removeEventListener","setOverflowHiddenAndroid","unbind","scrollTop","position","top","left","right","scrollBehavior","getComputedStyle","found","find","target","cancelable","scrollLeft","scrollWidth","scrollHeight","clientHeight","isVertical","Math","abs","isOnTop","isOnLeft","isOnRight","isOnBottom","hasScrollbar","stopPropagation","checkTargetElement","disableBodyScroll","enableBodyScroll","clearAllBodyScrollLocks","pop"],"sources":["../../../../src/components/modal/bodyScrollLock.js"],"sourcesContent":["import {\n warn,\n isChildOfElement,\n checkIfHasScrollbar,\n} from '../../shared/component-helper'\n\nconst isServer = () => typeof window === 'undefined'\nconst detectOS = (ua) => {\n ua = ua || navigator.userAgent\n const ipad = /(iPad).*OS\\s([\\d_]+)/.test(ua)\n const iphone = !ipad && /(iPhone\\sOS)\\s([\\d_]+)/.test(ua)\n const android = /(Android);?[\\s/]+([\\d.]+)?/.test(ua)\n const ios = iphone || ipad\n return { ios, android }\n}\n\nlet lockedNum = 0\nlet initialClientY = 0\nlet initialClientX = 0\nlet callbackUnlock = null\nlet documentListenerAdded = false\n\nconst lockedElements = []\nconst eventListenerOptions = getEventListenerOptions({ passive: false })\nfunction getEventListenerOptions(options) {\n if (isServer()) {\n return // stop here\n }\n\n let isSupportOptions = true\n const { capture } = options\n return isSupportOptions\n ? options\n : typeof capture !== 'undefined'\n ? capture\n : false\n}\n\nconst setOverflowHidden = () => {\n try {\n const htmlElement = document.documentElement\n const bodyElement = document.body\n const htmlStyle = Object.assign({}, htmlElement.style)\n const bodyStyle = Object.assign({}, bodyElement.style)\n const scrollBarWidth =\n window.innerWidth - (bodyElement.clientWidth || window.innerWidth)\n\n htmlElement.style.overflow = 'hidden'\n htmlElement.style.height = '100%'\n htmlElement.style.setProperty(\n '--scrollbar-width',\n `${scrollBarWidth}px`\n )\n\n bodyElement.style.overflow = 'hidden'\n bodyElement.style.height = 'auto'\n bodyElement.style.boxSizing = 'border-box'\n bodyElement.style.marginRight = `${scrollBarWidth}px`\n\n return () => {\n try {\n // eslint-disable-next-line\n ;['overflow', 'height'].forEach((x) => {\n htmlElement.style[x] = htmlStyle[x] || ''\n })\n ;['overflow', 'height', 'boxSizing', 'margin'].forEach((x) => {\n bodyElement.style[x] = bodyStyle[x] || ''\n })\n htmlElement.style.removeProperty('--scrollbar-width')\n } catch (e) {\n warn(e)\n }\n }\n } catch (e) {\n warn(e)\n }\n}\n\nconst setOverflowHiddenIOS = (targetElement) => {\n if (targetElement) {\n const elementArray = Array.isArray(targetElement)\n ? targetElement\n : [targetElement]\n elementArray.forEach((element) => {\n if (element && lockedElements.indexOf(element) === -1) {\n element.ontouchstart = (event) => {\n initialClientY = event.targetTouches[0].clientY\n initialClientX = event.targetTouches[0].clientX\n }\n element.ontouchmove = (event) => {\n if (event.targetTouches.length !== 1) {\n return // stop here\n }\n handleScroll(event, element)\n }\n lockedElements.push(element)\n }\n })\n }\n\n if (!documentListenerAdded) {\n document.addEventListener(\n 'touchmove',\n preventDefault,\n eventListenerOptions\n )\n documentListenerAdded = true\n }\n\n return () => {\n if (targetElement) {\n const elementArray = Array.isArray(targetElement)\n ? targetElement\n : [targetElement]\n elementArray.forEach((element) => {\n const index = lockedElements.indexOf(element)\n if (index !== -1) {\n element.ontouchmove = null\n element.ontouchstart = null\n lockedElements.splice(index, 1)\n }\n })\n }\n\n if (documentListenerAdded) {\n document.removeEventListener(\n 'touchmove',\n preventDefault,\n eventListenerOptions\n )\n documentListenerAdded = false\n }\n }\n}\n\nconst setOverflowHiddenAndroid = () => {\n try {\n const unbind = setOverflowHidden()\n\n const htmlElement = document.documentElement\n const bodyElement = document.body\n const scrollTop = htmlElement.scrollTop || bodyElement.scrollTop\n const bodyStyle = Object.assign({}, bodyElement.style)\n\n bodyElement.style.position = 'fixed'\n bodyElement.style.top = `-${scrollTop}px`\n bodyElement.style.left = '0'\n bodyElement.style.right = '0'\n\n return () => {\n unbind()\n\n try {\n // eslint-disable-next-line\n ;['position', 'top', 'right', 'left'].forEach((x) => {\n bodyElement.style[x] = bodyStyle[x] || ''\n })\n\n const scrollBehavior =\n window.getComputedStyle(htmlElement).scrollBehavior\n htmlElement.style.scrollBehavior = 'auto'\n htmlElement.scrollTop = scrollTop\n htmlElement.style.scrollBehavior = scrollBehavior\n } catch (e) {\n warn(e)\n }\n }\n } catch (e) {\n warn(e)\n }\n}\n\nconst preventDefault = (event) => {\n const found = lockedElements.find((targetElement) => {\n return isChildOfElement(event.target, targetElement)\n })\n\n if (found || !event.cancelable) {\n return // stop here\n }\n\n event.preventDefault()\n}\n\n// Deprecated – this function can be removed as soon as we do not need to support iOS < 14\nconst handleScroll = (event, targetElement) => {\n try {\n if (targetElement) {\n const {\n scrollTop,\n scrollLeft,\n scrollWidth,\n scrollHeight,\n clientWidth,\n clientHeight,\n } = targetElement\n const clientX = event.targetTouches[0].clientX - initialClientX\n const clientY = event.targetTouches[0].clientY - initialClientY\n const isVertical = Math.abs(clientY) > Math.abs(clientX)\n const isOnTop = clientY > 0 && scrollTop === 0\n const isOnLeft = clientX > 0 && scrollLeft === 0\n const isOnRight =\n clientX < 0 && scrollLeft + clientWidth + 1 >= scrollWidth\n const isOnBottom =\n clientY < 0 && scrollTop + clientHeight + 1 >= scrollHeight\n if (\n (isVertical && (isOnTop || isOnBottom)) ||\n (!isVertical && (isOnLeft || isOnRight))\n ) {\n const hasScrollbar = isChildOfElement(\n event.target,\n targetElement,\n checkIfHasScrollbar\n )\n\n if (hasScrollbar && hasScrollbar !== targetElement) {\n return true\n }\n\n return event.cancelable && event.preventDefault()\n }\n }\n\n event.stopPropagation()\n\n return true\n } catch (e) {\n warn(e)\n }\n}\n\nconst checkTargetElement = (targetElement) => {\n if (targetElement) return\n if (targetElement === null) return\n warn(\n `If scrolling is also required in the floating layer, ` +\n `the target element must be provided.`\n )\n}\n\nexport const disableBodyScroll = (targetElement) => {\n if (isServer()) {\n return // stop here\n }\n\n checkTargetElement(targetElement)\n\n try {\n // iOS\n if (detectOS().ios) {\n callbackUnlock = setOverflowHiddenIOS(targetElement)\n\n // Android or Desktop\n } else if (lockedNum <= 0) {\n if (detectOS().android) {\n callbackUnlock = setOverflowHiddenAndroid()\n } else {\n callbackUnlock = setOverflowHidden()\n }\n }\n\n lockedNum += 1\n } catch (e) {\n warn(e)\n }\n}\n\nexport const enableBodyScroll = (targetElement) => {\n if (isServer()) {\n return\n }\n\n checkTargetElement(targetElement)\n\n try {\n lockedNum -= 1\n\n if (lockedNum > 0) {\n return // stop here\n }\n\n if (typeof callbackUnlock === 'function') {\n callbackUnlock()\n }\n } catch (e) {\n warn(e)\n }\n}\n\nexport const clearAllBodyScrollLocks = () => {\n if (isServer()) {\n return // stop here\n }\n\n try {\n lockedNum = 0\n\n if (typeof callbackUnlock === 'function') {\n callbackUnlock()\n }\n\n // iOS\n if (detectOS().ios) {\n if (lockedElements && lockedElements.length) {\n // clear events\n let element = lockedElements.pop()\n while (element) {\n element.ontouchmove = null\n element.ontouchstart = null\n element = lockedElements.pop()\n }\n }\n }\n } catch (e) {\n warn(e)\n }\n}\n"],"mappings":"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"}
@@ -45,7 +45,7 @@ export const format = function (value) {
45
45
  const opts = (typeof options === 'string' && options[0] === '{' ? JSON.parse(options) : options) || {};
46
46
  if (parseFloat(decimals) >= 0) {
47
47
  value = formatDecimals(value, decimals, omit_rounding, opts);
48
- } else if (typeof opts.maximumFractionDigits === 'undefined') {
48
+ } else if (typeof opts.maximumFractionDigits === 'undefined' && !isTrue(percent) && !isTrue(currency)) {
49
49
  opts.maximumFractionDigits = 20;
50
50
  }
51
51
  if (isTrue(phone)) {
@@ -85,7 +85,9 @@ export const format = function (value) {
85
85
  aria = _aria;
86
86
  } else if (isTrue(percent)) {
87
87
  if (decimals === null) {
88
- decimals = countDecimals(value);
88
+ if (typeof opts.maximumFractionDigits === 'undefined') {
89
+ decimals = countDecimals(value);
90
+ }
89
91
  value = formatDecimals(value, decimals, omit_rounding, opts);
90
92
  }
91
93
  if (!opts.style) {
@@ -221,10 +223,10 @@ export const formatDecimals = function (value, decimals) {
221
223
  if (decimals >= 0) {
222
224
  opts.minimumFractionDigits = decimals;
223
225
  opts.maximumFractionDigits = decimals;
224
- const pos = String(value).indexOf('.');
225
- if (pos > 0 && omit_rounding === true) {
226
- value = String(value).substr(0, pos + 1 + decimals);
227
- }
226
+ }
227
+ const pos = String(value).indexOf('.');
228
+ if (pos > 0 && omit_rounding === true) {
229
+ value = String(value).substring(0, pos + 1 + (decimals || opts.maximumFractionDigits));
228
230
  }
229
231
  return value;
230
232
  };