@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
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerListProvider.js","names":["React","PropTypes","keycode","Context","warn","isTrue","roundToNearest","getClosestScrollViewElement","detectOutsideClick","dispatchCustomElementEvent","getPreviousSibling","getOffsetTop","getOffsetLeft","hasSelectedText","getSelectedElement","getData","normalizeData","findClosest","getSelectedItemValue","parseContentTitle","getEventData","prepareStartupState","prepareDerivedState","drawerListPropTypes","drawerListDefaultProps","drawerListProviderPropTypes","drawerListProviderDefaultProps","DrawerListContext","disableBodyScroll","enableBodyScroll","DrawerListProvider","PureComponent","getDerivedStateFromProps","props","state","constructor","_defineProperty","_refUl","current","_bodyLockIsEnabled","_refShell","spaceToLeft","spaceToRight","window","innerWidth","offsetWidth","triangleStyle","_refTriangle","style","shellStyle","transform","Math","abs","right","left","e","active_item","scrollTo","element","clearTimeout","_scrollTimeout","setTimeout","parseFloat","ulElement","liElement","getActiveElement","top","offsetTop","IS_TEST","scrollBehavior","behavior","scrollTop","prevent_focus","focus","fireSelectEvent","event","setState","_document$activeEleme","document","activeElement","tagName","_this$_refUl$current","preventScroll","selected_item","attributes","ret","value","data","no_animation","scrollToItem","wrapper_element","querySelector","we","meta","cmd","metaKey","ctrl","ctrlKey","shift","shiftKey","alt","altKey","setMetaKey","key","test","prevent_close","isSameDrawer","ulElem","getAttribute","id","isOpen","ignore_events","isNaN","total","length","preventDefault","direction","getFirstItem","getPrevActiveItem","getLastItem","getNextActiveItem","target","dispatchEvent","MouseEvent","setHidden","getCurrentActiveItem","skip_keysearch","result","selectItemAndClose","hasFocusOnElement","Boolean","getAnchorElem","stopPropagation","currentActiveElement","createTabElem","elem","createElement","prevActiveElement","removeEventListener","removeChild","after","before","addEventListener","insertElem","appendChild","insertBefore","firstChild","requestAnimationFrame","findItemByValue","showFocusRing","setActiveItemAndScrollToIt","_this$_refUl$current2","_this$_refUl$current3","nextSibling","previousSibling","_this$_refUl$current4","_this$_refUl$current5","removeOutsideClickObserver","outsideClick","_refRoot","preventHideFocus","includedKeys","onKeyDownHandler","onKeyUpHandler","setDirectionObserver","setScrollObserver","setOutsideClickObserver","removeDirectionObserver","removeScrollObserver","args","opened","setVisible","onStateComplete","hidden","_showTimeout","_hideTimeout","searchCache","handleSingleComponentCheck","animationDelayHandler","setActiveState","_process","process","env","NODE_ENV","blurDelay","_objectSpread","res","delayHandler","removeObservers","cb","overwriteOriginalData","original_data","refreshScrollObserver","itemToSelect","closeOnSelection","selectItem","persist","attr","isInput","keep_open","prevent_selection","doCallOnChange","onSelectionIsComplete","cache_hash","createRef","componentDidMount","componentDidUpdate","prevProps","_document$activeEleme2","_this$_refUl$current6","componentWillUnmount","_directionTimeout","itemSpots","reduce","acc","cur","i","_this$_refUl$current7","itemSpotsCount","Object","keys","closestToTop","closestToBottom","tmpToTop","tmpToBottom","setOnScroll","counts","offsetHeight","enable_body_lock","scrollable","min_height","max_height","on_resize","page_offset","observer_element","useBodyLock","isScrollable","customMinHeight","customMaxHeight","customElem","directionOffset","spaceToTopOffset","spaceToBottomOffset","renderDirection","_window","_window$requestAnimat","rootElem","documentElement","pageYOffset","spaceToTop","spaceToBottom","clientHeight","max","vh","visualViewport","height","innerHeight","call","correctHiddenView","setDirection","_rootElem","enableBodyLock","index","String","toLowerCase","changedOrderFor","itemData","str","separator","removeNumericOnlyValues","firstLetter","push","found","disableBodyLock","_this$_rootElem","remove","active","setAttribute","removeAttribute","render","Provider","context","drawerList","setData","setDataHandler","setStateHandler","setWrapperElement","addObservers","toggleVisible","children","propTypes","node","isRequired"],"sources":["../../../../src/fragments/drawer-list/DrawerListProvider.js"],"sourcesContent":["/**\n * Web DrawerList Provider\n *\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport keycode from 'keycode'\nimport Context from '../../shared/Context'\nimport {\n warn,\n isTrue,\n roundToNearest,\n getClosestScrollViewElement,\n detectOutsideClick,\n dispatchCustomElementEvent,\n getPreviousSibling,\n} from '../../shared/component-helper'\nimport {\n getOffsetTop,\n getOffsetLeft,\n hasSelectedText,\n getSelectedElement,\n} from '../../shared/helpers'\nimport {\n getData,\n normalizeData,\n findClosest,\n getSelectedItemValue,\n parseContentTitle,\n getEventData,\n prepareStartupState,\n prepareDerivedState,\n drawerListPropTypes,\n drawerListDefaultProps,\n drawerListProviderPropTypes,\n drawerListProviderDefaultProps,\n} from './DrawerListHelpers'\nimport DrawerListContext from './DrawerListContext'\nimport {\n disableBodyScroll,\n enableBodyScroll,\n} from '../../components/modal/bodyScrollLock'\n\nexport default class DrawerListProvider extends React.PureComponent {\n static contextType = Context\n\n static propTypes = {\n ...drawerListPropTypes,\n ...drawerListProviderPropTypes,\n children: PropTypes.node.isRequired,\n }\n\n static defaultProps = {\n ...drawerListDefaultProps,\n ...drawerListProviderDefaultProps,\n }\n\n static blurDelay = 201 // some ms more than \"DrawerListSlideDown 200ms\"\n\n static getDerivedStateFromProps(props, state) {\n return prepareDerivedState(props, state)\n }\n\n constructor(props) {\n super(props)\n\n this.attributes = {}\n this.state = {\n tagName: 'dnb-drawer-list',\n cache_hash: '',\n active_item: null,\n selected_item: null,\n ignore_events: false,\n ...prepareStartupState(props),\n }\n\n this._refRoot = React.createRef()\n this._refShell = React.createRef()\n this._refUl = React.createRef()\n this._refTriangle = React.createRef()\n }\n\n componentDidMount() {\n if (isTrue(this.props.opened)) {\n this.setVisible()\n }\n }\n\n componentDidUpdate(prevProps) {\n if (\n this.props.opened !== null &&\n this.props.opened !== prevProps.opened\n ) {\n if (isTrue(this.props.opened)) {\n this.setVisible()\n } else if (isTrue(this.props.opened) === false) {\n this.setHidden()\n }\n }\n\n if (this.state.opened) {\n if (\n this.props.data !== prevProps.data &&\n typeof document !== 'undefined' &&\n document.activeElement?.tagName === 'BODY'\n ) {\n this._refUl.current?.focus()\n }\n }\n }\n\n componentWillUnmount() {\n clearTimeout(this._showTimeout)\n clearTimeout(this._hideTimeout)\n clearTimeout(this._scrollTimeout)\n clearTimeout(this._directionTimeout)\n\n this.removeObservers()\n this.setActiveState(false)\n }\n\n refreshScrollObserver() {\n if (typeof window === 'undefined' || !this._refUl.current) {\n return\n }\n\n this.itemSpots = this.state.data.reduce((acc, cur, i) => {\n const element = this._refUl.current?.querySelector(\n `li.dnb-drawer-list__option:nth-of-type(${i + 1})`\n )\n if (element) {\n acc[element.offsetTop] = {\n i,\n }\n }\n return acc\n }, {})\n\n this.itemSpotsCount = Object.keys(this.itemSpots).length\n }\n\n setScrollObserver() {\n if (typeof window === 'undefined' || !this._refUl.current) {\n return\n }\n\n this.removeScrollObserver()\n this.itemSpotsCount = 1 // to make sure we recalculate the spots\n\n try {\n let closestToTop = null,\n closestToBottom = null,\n tmpToTop,\n tmpToBottom\n\n this.setOnScroll = () => {\n if (!this._refUl.current) {\n return // stop here\n }\n\n // recalculate the spots\n if (this.itemSpotsCount <= 1) {\n this.refreshScrollObserver()\n }\n\n const counts = Object.keys(this.itemSpots)\n closestToBottom = findClosest(\n counts,\n this._refUl.current.scrollTop + this._refUl.current.offsetHeight\n )\n closestToTop = findClosest(counts, this._refUl.current.scrollTop)\n if (this.itemSpots[closestToTop] && closestToTop !== tmpToTop) {\n this.setState({\n closestToTop: this.itemSpots[closestToTop].i,\n })\n }\n // we do this because we want the arrow\n // to change visually\n if (\n closestToBottom !== tmpToBottom &&\n this.itemSpots[closestToBottom]\n ) {\n this.setState({\n closestToBottom: this.itemSpots[closestToBottom].i,\n })\n }\n tmpToTop = closestToTop\n tmpToBottom = closestToBottom\n }\n\n this._refUl.current.addEventListener('scroll', this.setOnScroll)\n this.setOnScroll()\n } catch (e) {\n warn('List could not set onScroll:', e)\n }\n }\n\n removeScrollObserver() {\n if (typeof window !== 'undefined' && this.setOnScroll) {\n window.removeEventListener('resize', this.setOnScroll)\n this.setOnScroll = null\n }\n }\n\n enableBodyLock = () => {\n if (this._refUl.current) {\n this._bodyLockIsEnabled = true\n disableBodyScroll(this._refUl.current)\n }\n }\n\n disableBodyLock = () => {\n if (this._bodyLockIsEnabled && this._refUl.current) {\n this._bodyLockIsEnabled = null\n enableBodyScroll(this._refUl.current)\n }\n }\n\n setDirectionObserver() {\n if (\n typeof window === 'undefined' ||\n typeof document === 'undefined' ||\n !(this.state.wrapper_element || this._refRoot.current)\n ) {\n return\n }\n\n const {\n enable_body_lock,\n scrollable,\n min_height,\n max_height,\n on_resize,\n page_offset,\n observer_element,\n } = this.props\n\n // const skipPortal = isTrue(skip_portal)\n const useBodyLock = isTrue(enable_body_lock)\n const isScrollable = isTrue(scrollable)\n const customMinHeight = parseFloat(min_height) * 16\n const customMaxHeight = parseFloat(max_height) || 0\n\n let customElem =\n typeof observer_element === 'string'\n ? document.querySelector(observer_element)\n : null\n\n if (!customElem) {\n customElem = getClosestScrollViewElement(this._refRoot.current)\n }\n\n // In case we have one before hand\n this.removeDirectionObserver()\n\n const directionOffset = 96\n const spaceToTopOffset = 2 * 16\n const spaceToBottomOffset = 2 * 16\n const elem = this.state.wrapper_element || this._refRoot.current\n\n const renderDirection = () => {\n try {\n // make calculation for both direction and height\n const rootElem = customElem || document.documentElement\n\n const pageYOffset = !isNaN(parseFloat(page_offset))\n ? parseFloat(page_offset)\n : rootElem.scrollTop /* pageYOffset */\n const spaceToTop =\n getOffsetTop(elem) + elem.offsetHeight - pageYOffset\n const spaceToBottom =\n rootElem.clientHeight /* innerHeight */ -\n (getOffsetTop(elem) + elem.offsetHeight) +\n pageYOffset\n\n const direction =\n Math.max(spaceToBottom - directionOffset, directionOffset) <\n customMinHeight && spaceToTop > customMinHeight\n ? 'top'\n : 'bottom'\n\n // make sure we never get higher than we have defined in CSS\n let max_height = customMaxHeight\n if (!(max_height > 0)) {\n max_height =\n direction === 'top'\n ? spaceToTop -\n ((this.state.wrapper_element || this._refRoot.current)\n .offsetHeight || 0) -\n spaceToTopOffset\n : spaceToBottom - spaceToBottomOffset\n\n // get the view port height, like in CSS\n let vh = 0\n if (typeof window.visualViewport !== 'undefined') {\n vh = window.visualViewport.height\n } else {\n vh = Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n )\n }\n\n // like defined in CSS\n vh = vh * (isScrollable ? 0.7 : 0.9)\n\n if (max_height > vh) {\n max_height = vh\n }\n\n // convert px to rem\n max_height = roundToNearest(max_height, 8) / 16\n }\n\n // update the states\n if (this.props.direction === 'auto') {\n this.setState({\n direction,\n })\n }\n this.setState({\n max_height,\n })\n\n // call the event, if set\n if (on_resize) {\n dispatchCustomElementEvent(this.state, 'on_resize', {\n direction,\n max_height,\n })\n }\n } catch (e) {\n warn('List could not set onResize:', e)\n }\n\n // React v18 needs a delay to make the calculation during first render\n window?.requestAnimationFrame?.(this.correctHiddenView) ||\n this.correctHiddenView()\n }\n\n // debounce\n this.setDirection = () => {\n clearTimeout(this._directionTimeout)\n this._directionTimeout = setTimeout(renderDirection, 50)\n }\n\n // customElem can be a dnb-scroll-view\n this._rootElem = customElem || window\n this._rootElem.addEventListener('scroll', this.setDirection)\n\n // this fixes iOS softkeyboard\n if (typeof window.visualViewport !== 'undefined') {\n window.visualViewport.addEventListener('scroll', this.setDirection)\n window.visualViewport.addEventListener('resize', this.setDirection)\n } else {\n window.addEventListener('resize', this.setDirection)\n }\n\n if (useBodyLock) {\n this.enableBodyLock()\n }\n\n this.refreshScrollObserver()\n\n renderDirection()\n }\n\n /**\n * Deprecated\n * We should replace all the logic of handling left/right aligned\n * and setting the position, with a PopupMenu component,\n * which uses the logic form Tooltip.\n *\n * EDS-246\n */\n correctHiddenView = () => {\n // console.log('this._refShell.current', this._refShell.current)\n // console.log('this._refUl.current', this._refUl.current)\n // We use \"style.transform\", because it is a independent \"and quick\" solution\n // we could send down spaceToLeft and spaceToRight and set it with React's \"style\" prop in future\n if (!this._refShell.current || !this._refUl.current) {\n return // stop here\n }\n\n try {\n const spaceToLeft = getOffsetLeft(this._refUl.current)\n const spaceToRight =\n window.innerWidth -\n (getOffsetLeft(this._refUl.current) +\n this._refUl.current.offsetWidth)\n\n const triangleStyle = this._refTriangle.current.style\n const shellStyle = this._refShell.current.style\n\n // correct left side\n if (spaceToLeft < 0) {\n shellStyle.transform = `translateX(${Math.abs(\n spaceToLeft / 16\n )}rem)`\n triangleStyle.right = `${Math.abs(spaceToLeft / 16)}rem`\n\n // correct right side\n } else if (spaceToRight < 0) {\n shellStyle.transform = `translateX(${spaceToRight / 16}rem)`\n triangleStyle.left = `${Math.abs(spaceToRight / 16)}rem`\n } else {\n if (shellStyle.transform) {\n shellStyle.transform = ''\n triangleStyle.left = 'auto'\n triangleStyle.right = 'auto'\n }\n }\n } catch (e) {\n //\n }\n }\n\n // this gives us the possibility to quickly search for an item\n // by simply pressing any alfabetic key\n findItemByValue(value) {\n if (isTrue(this.props.skip_keysearch)) {\n return\n }\n\n let index = -1\n\n try {\n value = String(value).toLowerCase()\n\n // delete the cache\n // if there are several of the same type\n if (this.changedOrderFor !== value) {\n this.searchCache = null\n this.changedOrderFor = null\n }\n\n this.searchCache =\n this.searchCache ||\n this.state.data.reduce((acc, itemData, i) => {\n const str = String(\n parseContentTitle(itemData, {\n separator: ' ',\n removeNumericOnlyValues: true,\n })\n )\n\n // take the first letter\n const firstLetter = String(str[0]).toLowerCase()\n acc[firstLetter] = acc[firstLetter] || []\n acc[firstLetter].push({\n i,\n })\n\n return acc\n }, {})\n\n const found = this.searchCache[value]\n index = found && found[0] && found[0].i > -1 ? found[0].i : -1\n\n // if there are several of the same type\n if (found && found.length > 1) {\n found.push(found.shift())\n this.changedOrderFor = value\n }\n } catch (e) {\n warn('List could not findItemByValue:', e)\n }\n\n return index\n }\n\n scrollToItem = (\n active_item,\n { scrollTo = true, element = null } = {}\n ) => {\n clearTimeout(this._scrollTimeout)\n this._scrollTimeout = setTimeout(() => {\n // try to scroll to item\n if (this._refUl.current && parseFloat(active_item) > -1) {\n try {\n const ulElement = this._refUl.current\n const liElement = element || this.getActiveElement()\n if (liElement) {\n const top = liElement.offsetTop\n if (ulElement.scrollTo) {\n if (scrollTo === false || window.IS_TEST) {\n ulElement.style.scrollBehavior = 'auto'\n }\n ulElement.scrollTo({\n top,\n behavior: scrollTo ? 'smooth' : 'auto',\n })\n if (scrollTo === false) {\n ulElement.style.scrollBehavior = 'smooth'\n }\n } else if (ulElement.scrollTop) {\n ulElement.scrollTop = top\n }\n\n if (!isTrue(this.props.prevent_focus) && liElement) {\n liElement.focus()\n dispatchCustomElementEvent(this, 'on_show_focus', {\n element: liElement,\n })\n }\n } else {\n warn('The DrawerList item was not a DOM Element')\n }\n } catch (e) {\n warn('List could not scroll into element:', e)\n }\n }\n }, 1) // to make sure we are after all DOM updates, else we don't get this scrolling\n }\n\n /**\n * During opening (Dropdown, Autocomplete),\n * and if noting is selected,\n * set scroll to item.\n *\n * @param {number} active_item The item to set as active\n * @param {object} param1\n * @property {boolean} fireSelectEvent Wheter the onSelect event should get emitted\n * @property {boolean} scrollTo Wheter the list should scroll to the new active item nor not\n * @property {event} event The event object to forward to the emitted events\n */\n setActiveItemAndScrollToIt = (\n active_item,\n { fireSelectEvent = false, scrollTo = true, event = null } = {}\n ) => {\n this.setState({ active_item }, () => {\n if (parseFloat(active_item) === -1) {\n // Select the first item to NVDA is more easily navigateable,\n // without using the alt + arrow key\n // else we set the focus on the \"ul\" element\n if (document.activeElement?.tagName !== 'INPUT') {\n this._refUl.current?.focus({ preventScroll: true })\n }\n\n dispatchCustomElementEvent(this, 'on_show_focus', {\n element: this._refUl.current,\n })\n } else if (parseFloat(active_item) > -1) {\n const { selected_item } = this.state\n\n if (fireSelectEvent) {\n const attributes = this.attributes\n const ret = dispatchCustomElementEvent(this.state, 'on_select', {\n active_item,\n value: getSelectedItemValue(selected_item, this.state),\n data: getEventData(active_item, this.state.data),\n event,\n attributes,\n })\n if (ret === false) {\n return // stop here!\n }\n }\n\n if (isTrue(this.props.no_animation)) {\n scrollTo = false\n }\n\n this.scrollToItem(active_item, { scrollTo })\n }\n })\n }\n\n removeDirectionObserver() {\n this.disableBodyLock()\n\n clearTimeout(this._directionTimeout)\n if (typeof window !== 'undefined' && this.setDirection) {\n this._rootElem?.removeEventListener('scroll', this.setDirection)\n\n // this fixes iOS softkeyboard\n if (typeof window.visualViewport !== 'undefined') {\n window.visualViewport.removeEventListener(\n 'scroll',\n this.setDirection\n )\n window.visualViewport.removeEventListener(\n 'resize',\n this.setDirection\n )\n } else {\n window.removeEventListener('resize', this.setDirection)\n }\n\n this.setDirection = null\n }\n }\n\n setWrapperElement = (wrapper_element = this.props.wrapper_element) => {\n if (\n typeof wrapper_element === 'string' &&\n typeof document !== 'undefined'\n ) {\n wrapper_element = document.querySelector(wrapper_element)\n }\n\n if (wrapper_element !== this.state.wrapper_element) {\n this.setState({\n wrapper_element,\n })\n }\n\n return this\n }\n\n getAnchorElem(activeElement) {\n try {\n return activeElement.querySelector('a:first-of-type')\n } catch (e) {\n return null\n }\n }\n\n setMetaKey = (e) => {\n const we =\n typeof window !== 'undefined' && window.event ? window.event : e\n this.meta = {\n cmd: we.metaKey,\n ctrl: we.ctrlKey,\n shift: we.shiftKey,\n alt: we.altKey,\n }\n }\n\n onKeyUpHandler = (e) => {\n this.setMetaKey(e)\n }\n\n onKeyDownHandler = (e) => {\n const key = keycode(e)\n\n if (/command|alt|shift|ctrl/.test(key)) {\n this.setMetaKey(e)\n }\n\n dispatchCustomElementEvent(this.state, 'on_key_down', {\n event: e,\n key,\n })\n\n // To allow copy\n // But makes VO not reading our list items once command key is pressed\n // if (this.meta.cmd || this.meta.ctrl || this.meta.shift || this.meta.alt) {\n // return // stop here\n // }\n\n // stop here if the focus is not set\n // and the drawer is opened by default\n if (\n isTrue(this.props.prevent_close)\n // TODO: Has to be worked on better!\n // !isTrue(this.props.prevent_focus)\n ) {\n let isSameDrawer = false\n try {\n const ulElem = getPreviousSibling(\n 'dnb-drawer-list__options',\n document.activeElement\n )\n\n isSameDrawer =\n ulElem === this._refUl.current ||\n ulElem?.getAttribute('id') === this.props.id\n } catch (e) {\n warn(e)\n }\n if (!isSameDrawer && key !== 'tab') {\n return // stop here\n }\n }\n\n if (!this.state.isOpen) {\n return // stop here\n }\n\n if (isTrue(this.state.ignore_events) && key !== 'tab') {\n return // stop here\n }\n\n let active_item = parseFloat(this.state.active_item)\n\n if (isNaN(active_item)) {\n active_item = -1\n }\n\n const total = this.state.data && this.state.data.length - 1\n\n switch (key) {\n case 'up':\n {\n e.preventDefault()\n\n if (\n this.state.direction === 'bottom' &&\n this.state.active_item === this.getFirstItem()\n ) {\n active_item = -1\n } else {\n active_item = this.getPrevActiveItem()\n if (isNaN(active_item)) {\n active_item = this.getLastItem()\n }\n }\n }\n break\n\n case 'down':\n {\n e.preventDefault()\n\n if (\n this.state.direction === 'top' &&\n this.state.active_item === this.getLastItem()\n ) {\n active_item = -1\n } else {\n active_item = this.getNextActiveItem()\n\n if (isNaN(active_item)) {\n active_item = this.getFirstItem()\n }\n }\n }\n break\n\n case 'page up':\n case 'home':\n {\n e.preventDefault()\n active_item = this.getFirstItem() || 0\n }\n break\n\n case 'page down':\n case 'end':\n {\n e.preventDefault()\n active_item = this.getLastItem()\n if (isNaN(active_item)) {\n active_item = total\n }\n }\n break\n\n case 'enter':\n case 'space':\n {\n if (e.target.tagName === 'A') {\n e.target.dispatchEvent(new MouseEvent('click'))\n this.setHidden()\n return // stop here, and let the browser + anchor do the rest\n }\n\n active_item = this.getCurrentActiveItem()\n\n if (\n isTrue(this.props.skip_keysearch)\n ? active_item > -1 && key !== 'space'\n : true\n ) {\n e.preventDefault()\n const result = this.selectItemAndClose(active_item, {\n fireSelectEvent: true,\n event: e,\n })\n if (result === false) {\n return // stop here if the data actually does not exit\n }\n }\n }\n break\n\n case 'esc':\n {\n this.setHidden({ event: e })\n e.preventDefault()\n }\n break\n\n case 'tab':\n {\n if (active_item > -1) {\n // If there is an active item\n // we make it possible to tab inside it (to an anchor) instead of closing the list\n const activeElement = this.getActiveElement()\n const hasFocusOnElement = Boolean(\n this.getAnchorElem(activeElement)\n )\n\n this.setState({ hasFocusOnElement })\n\n // And if there is an anchor inside our active element\n if (hasFocusOnElement) {\n e.stopPropagation()\n\n // Also, set the focus actively into the active element, if it is not from beforehand\n const currentActiveElement = getPreviousSibling(\n 'dnb-drawer-list__option',\n document.activeElement\n )\n\n if (currentActiveElement !== activeElement) {\n /**\n * Create an fake element,\n * so it's the last one we focus, within our active element.\n *\n * When the users tabs to it,\n * we return the focus the the users prev focus element, e.g. autocomplete input\n *\n * Why is this needed? Because we have our list in a portal, outside of the tab order\n */\n const createTabElem = () => {\n try {\n const elem = document.createElement('BUTTON')\n elem.style = 'opacity:0;position:absolute;'\n const focus = () => {\n prevActiveElement.focus()\n elem.removeEventListener('focus', focus)\n activeElement.removeChild(after)\n activeElement.removeChild(before)\n }\n elem.addEventListener('focus', focus)\n return elem\n } catch (e) {\n //\n }\n }\n\n const prevActiveElement = document.activeElement\n const after = createTabElem()\n const before = createTabElem()\n\n // Now, focus our active element\n activeElement.focus()\n\n const insertElem = () => {\n try {\n // Insert our fake elements\n activeElement.appendChild(after)\n activeElement.insertBefore(\n before,\n activeElement.firstChild\n )\n } catch (e) {\n //\n }\n }\n\n // check because of test\n if (typeof window.requestAnimationFrame === 'function') {\n // requestAnimationFrame is need by chromium browsers\n window.requestAnimationFrame(insertElem)\n } else {\n insertElem()\n }\n }\n\n return // stop here\n }\n\n // We may considder to close the list and set the focus it the handler\n // but also, in portal mode, we want to prevent to start the focus from the top of the page\n else if (isTrue(this.props.prevent_close)) {\n active_item = -1\n }\n }\n\n this.setHidden({ event: e })\n }\n break\n\n default:\n active_item = this.findItemByValue(keycode(e))\n break\n }\n\n if (\n active_item === -1 &&\n this._refUl.current &&\n typeof document !== 'undefined'\n ) {\n const ulElem = getPreviousSibling(\n 'dnb-drawer-list__options',\n document.activeElement\n )\n\n if (ulElem === this._refUl.current) {\n this.setState({\n showFocusRing: true,\n active_item,\n })\n\n this._refUl.current.focus({ preventScroll: true })\n dispatchCustomElementEvent(this.state, 'handle_dismiss_focus')\n }\n } else if (\n parseFloat(active_item) > -1 &&\n active_item !== this.state.active_item\n ) {\n this.setState({\n showFocusRing: false,\n })\n this.setActiveItemAndScrollToIt(active_item, {\n fireSelectEvent: true,\n event: e,\n })\n }\n }\n\n getSelectedElement = () => {\n return (\n this._refUl.current?.querySelector(\n 'li.dnb-drawer-list__option--selected'\n ) ||\n this._refUl.current || {\n getAttribute: () => null,\n }\n )\n }\n\n getCurrentSelectedItem = () => {\n const elem = this.getSelectedElement()\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getActiveElement = () => {\n return (\n this._refUl.current?.querySelector(\n 'li.dnb-drawer-list__option--focus'\n ) || this.getSelectedElement()\n )\n }\n\n getCurrentActiveItem = () => {\n const elem = this.getActiveElement()\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getNextActiveItem = () => {\n const elem = this.getActiveElement().nextSibling\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getPrevActiveItem = () => {\n const elem = this.getActiveElement().previousSibling\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getFirstItem = () => {\n const elem = this._refUl.current?.querySelector(\n 'li.dnb-drawer-list__option.first-of-type' // because of the triangle element\n )\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getLastItem = () => {\n const elem = this._refUl.current?.querySelector(\n 'li.dnb-drawer-list__option.last-of-type' // because of the triangle element\n )\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n setOutsideClickObserver = () => {\n this.removeOutsideClickObserver()\n\n this.outsideClick = detectOutsideClick(\n [\n this.state.wrapper_element,\n this._refRoot.current,\n this._refUl.current,\n ],\n () => this.setHidden({ preventHideFocus: true }),\n { includedKeys: ['tab'] }\n )\n\n if (typeof document !== 'undefined') {\n document.addEventListener('keydown', this.onKeyDownHandler)\n document.addEventListener('keyup', this.onKeyUpHandler)\n }\n }\n\n removeOutsideClickObserver() {\n if (this.outsideClick) {\n this.outsideClick.remove()\n }\n if (typeof document !== 'undefined') {\n document.removeEventListener('keydown', this.onKeyDownHandler)\n document.removeEventListener('keyup', this.onKeyUpHandler)\n }\n }\n\n addObservers = () => {\n this.setDirectionObserver()\n this.setScrollObserver()\n this.setOutsideClickObserver()\n }\n removeObservers = () => {\n this.removeDirectionObserver()\n this.removeScrollObserver()\n this.removeOutsideClickObserver()\n }\n\n toggleVisible = (...args) => {\n return this.state.opened\n ? this.setHidden(...args)\n : this.setVisible(...args)\n }\n\n setVisible = (args = {}, onStateComplete = null) => {\n if (this.state.opened && this.state.hidden === false) {\n if (typeof onStateComplete === 'function') {\n onStateComplete(true)\n }\n return // stop\n }\n\n clearTimeout(this._showTimeout)\n clearTimeout(this._hideTimeout)\n\n this.searchCache = null\n\n const handleSingleComponentCheck = () => {\n this.setState({\n hidden: false,\n opened: true,\n })\n\n const animationDelayHandler = () => {\n DrawerListProvider.isOpen = true\n this.setState({\n isOpen: true,\n })\n\n if (typeof onStateComplete === 'function') {\n onStateComplete(true)\n }\n\n this.setActiveState(true)\n }\n\n if (isTrue(this.props.no_animation)) {\n // our tests want no delay!\n if (process?.env.NODE_ENV === 'test') {\n animationDelayHandler()\n } else {\n // We have to have still a delay, to ensure the user can press enter to toggle the open state\n clearTimeout(this._showTimeout)\n this._showTimeout = setTimeout(animationDelayHandler, 0) // ensure we do not set isOpen true before the keydown handler has run\n }\n } else {\n clearTimeout(this._showTimeout)\n this._showTimeout = setTimeout(\n animationDelayHandler,\n DrawerListProvider.blurDelay\n ) // wait until animation is over\n }\n\n const { selected_item, active_item } = this.state\n dispatchCustomElementEvent(this.state, 'on_show', {\n ...args,\n data: getEventData(\n parseFloat(selected_item) > -1 ? selected_item : active_item,\n this.state.data\n ),\n attributes: this.attributes,\n ulElement: this._refUl.current,\n })\n\n this.setActiveItemAndScrollToIt(\n parseFloat(active_item) > -1 ? active_item : -1,\n { scrollTo: false }\n )\n }\n\n // If a user clicks on a second drawer list\n // we ensure we first close it, before we open it\n if (DrawerListProvider.isOpen && !isTrue(this.props.no_animation)) {\n clearTimeout(this._hideTimeout)\n this._hideTimeout = setTimeout(\n handleSingleComponentCheck,\n DrawerListProvider.blurDelay\n )\n } else {\n handleSingleComponentCheck()\n }\n }\n\n setHidden = (args = {}, onStateComplete = null) => {\n if (!this.state.opened || isTrue(this.props.prevent_close)) {\n if (typeof onStateComplete === 'function') {\n onStateComplete(false)\n }\n return // stop here\n }\n\n clearTimeout(this._showTimeout)\n clearTimeout(this._hideTimeout)\n\n const { selected_item, active_item } = this.state\n const res = dispatchCustomElementEvent(this.state, 'on_hide', {\n ...args,\n data: getEventData(\n parseFloat(selected_item) > -1 ? selected_item : active_item,\n this.state.data\n ),\n attributes: this.attributes,\n })\n\n if (res !== false) {\n this.setState({\n opened: false,\n })\n\n const delayHandler = () => {\n this.removeObservers()\n\n this.setState({\n hidden: true,\n isOpen: false,\n })\n if (typeof onStateComplete === 'function') {\n onStateComplete(false)\n }\n DrawerListProvider.isOpen = false\n\n this.setActiveState(false)\n }\n\n if (isTrue(this.props.no_animation)) {\n delayHandler()\n } else {\n clearTimeout(this._hideTimeout)\n this._hideTimeout = setTimeout(\n delayHandler,\n DrawerListProvider.blurDelay\n ) // wait until animation is over\n }\n }\n }\n\n setActiveState(active) {\n if (typeof document !== 'undefined') {\n try {\n if (active) {\n document.documentElement.setAttribute(\n 'data-dnb-drawer-list-active',\n String(this.props.id)\n )\n } else {\n document.documentElement.removeAttribute(\n 'data-dnb-drawer-list-active'\n )\n }\n } catch (e) {\n warn(\n 'DrawerList: Error on set \"data-dnb-drawer-list-active\" by using element.setAttribute()',\n e\n )\n }\n }\n }\n\n setDataHandler = (\n data,\n cb = null,\n { overwriteOriginalData = false } = {}\n ) => {\n if (!data) {\n return\n }\n\n if (typeof data === 'function') {\n data = getData(data)\n }\n\n data = normalizeData(data)\n\n this.setState(\n {\n data,\n original_data: overwriteOriginalData\n ? data\n : this.state.original_data,\n },\n () => {\n this.refreshScrollObserver()\n typeof cb === 'function' && cb(data)\n }\n )\n\n return this\n }\n\n setStateHandler = (state, cb = null) => {\n this.setState(\n {\n ...state,\n },\n cb\n )\n\n return this\n }\n\n selectItemAndClose = (itemToSelect, args = {}) => {\n args.closeOnSelection = true\n return this.selectItem(itemToSelect, args)\n }\n\n selectItem = (\n itemToSelect,\n {\n fireSelectEvent = false,\n event = null,\n closeOnSelection = false,\n } = {}\n ) => {\n // because of our delay on dispatching the event\n // make a copy of it, so we don't break the synthetic event\n if (event && typeof event.persist === 'function') {\n event.persist()\n }\n\n // if no value is set on start and we confirm, we get -1\n if (itemToSelect === -1) {\n itemToSelect = null\n }\n\n const data = getEventData(itemToSelect, this.state.data) || null\n const value = getSelectedItemValue(itemToSelect, this.state)\n const attributes = this.attributes\n const attr = {\n selected_item: itemToSelect,\n value,\n data,\n event,\n attributes,\n }\n\n const res = dispatchCustomElementEvent(\n this.state,\n 'on_pre_change',\n attr\n )\n\n if (res === false) {\n return res // stop here\n }\n\n if (hasSelectedText()) {\n const elem = getSelectedElement()\n const isInput = getPreviousSibling('dnb-input', elem)\n if (!isInput) {\n return // stop here\n }\n }\n\n const { keep_open, prevent_selection } = this.props\n\n const doCallOnChange =\n parseFloat(itemToSelect) > -1 &&\n itemToSelect !== this.state.selected_item\n const onSelectionIsComplete = () => {\n if (doCallOnChange) {\n dispatchCustomElementEvent(this.state, 'on_change', attr)\n }\n if (fireSelectEvent) {\n dispatchCustomElementEvent(this.state, 'on_select', {\n ...attr,\n active_item: itemToSelect,\n })\n }\n\n if (closeOnSelection && !isTrue(keep_open)) {\n this.setHidden()\n }\n }\n\n if (isTrue(prevent_selection)) {\n onSelectionIsComplete()\n } else {\n this.setState(\n {\n selected_item: itemToSelect,\n active_item: itemToSelect,\n },\n onSelectionIsComplete\n )\n }\n }\n\n render() {\n return (\n <DrawerListContext.Provider\n value={{\n ...this.context,\n drawerList: {\n attributes: this.attributes,\n _refRoot: this._refRoot,\n _refShell: this._refShell,\n _refUl: this._refUl,\n _refTriangle: this._refTriangle,\n _rootElem: this._rootElem,\n getActiveElement: this.getActiveElement,\n setData: this.setDataHandler,\n setState: this.setStateHandler,\n setWrapperElement: this.setWrapperElement,\n addObservers: this.addObservers,\n removeObservers: this.removeObservers,\n setVisible: this.setVisible,\n setHidden: this.setHidden,\n toggleVisible: this.toggleVisible,\n selectItem: this.selectItem,\n selectItemAndClose: this.selectItemAndClose,\n scrollToItem: this.scrollToItem,\n setActiveItemAndScrollToIt: this.setActiveItemAndScrollToIt,\n ...this.state,\n },\n }}\n >\n {this.props.children}\n </DrawerListContext.Provider>\n )\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"DrawerListProvider.js","names":["React","PropTypes","keycode","Context","warn","isTrue","roundToNearest","getClosestScrollViewElement","detectOutsideClick","dispatchCustomElementEvent","getPreviousSibling","getOffsetTop","getOffsetLeft","hasSelectedText","getSelectedElement","getData","normalizeData","findClosest","getSelectedItemValue","parseContentTitle","getEventData","prepareStartupState","prepareDerivedState","drawerListPropTypes","drawerListDefaultProps","drawerListProviderPropTypes","drawerListProviderDefaultProps","DrawerListContext","disableBodyScroll","enableBodyScroll","DrawerListProvider","PureComponent","getDerivedStateFromProps","props","state","constructor","_defineProperty","_refUl","current","_bodyLockIsEnabled","_refShell","spaceToLeft","spaceToRight","window","innerWidth","offsetWidth","triangleStyle","_refTriangle","style","shellStyle","transform","Math","abs","right","left","e","active_item","scrollTo","element","clearTimeout","_scrollTimeout","setTimeout","parseFloat","ulElement","liElement","getActiveElement","top","offsetTop","IS_TEST","scrollBehavior","behavior","scrollTop","prevent_focus","focus","fireSelectEvent","event","setState","_document$activeEleme","document","activeElement","tagName","_this$_refUl$current","preventScroll","selected_item","attributes","ret","value","data","no_animation","scrollToItem","wrapper_element","querySelector","we","meta","cmd","metaKey","ctrl","ctrlKey","shift","shiftKey","alt","altKey","setMetaKey","key","test","prevent_close","isSameDrawer","ulElem","getAttribute","id","isOpen","ignore_events","isNaN","total","length","preventDefault","direction","getFirstItem","getPrevActiveItem","getLastItem","getNextActiveItem","target","dispatchEvent","MouseEvent","setHidden","getCurrentActiveItem","skip_keysearch","result","selectItemAndClose","hasFocusOnElement","Boolean","getAnchorElem","stopPropagation","currentActiveElement","createTabElem","elem","createElement","prevActiveElement","removeEventListener","removeChild","after","before","addEventListener","insertElem","appendChild","insertBefore","firstChild","requestAnimationFrame","findItemByValue","showFocusRing","setActiveItemAndScrollToIt","_this$_refUl$current2","_this$_refUl$current3","nextSibling","previousSibling","_this$_refUl$current4","_this$_refUl$current5","removeOutsideClickObserver","outsideClick","_refRoot","preventHideFocus","includedKeys","onKeyDownHandler","onKeyUpHandler","setDirectionObserver","setScrollObserver","setOutsideClickObserver","removeDirectionObserver","removeScrollObserver","args","opened","setVisible","onStateComplete","hidden","_showTimeout","_hideTimeout","searchCache","handleSingleComponentCheck","animationDelayHandler","setActiveState","_process","process","env","NODE_ENV","blurDelay","_objectSpread","res","delayHandler","removeObservers","cb","overwriteOriginalData","original_data","refreshScrollObserver","itemToSelect","closeOnSelection","selectItem","persist","attr","isInput","keep_open","prevent_selection","doCallOnChange","onSelectionIsComplete","cache_hash","createRef","componentDidMount","componentDidUpdate","prevProps","_document$activeEleme2","_this$_refUl$current6","componentWillUnmount","_directionTimeout","itemSpots","reduce","acc","cur","i","_this$_refUl$current7","itemSpotsCount","Object","keys","closestToTop","closestToBottom","tmpToTop","tmpToBottom","setOnScroll","counts","offsetHeight","enable_body_lock","scrollable","min_height","max_height","on_resize","page_offset","observer_element","useBodyLock","isScrollable","customMinHeight","customMaxHeight","customElem","directionOffset","spaceToTopOffset","spaceToBottomOffset","renderDirection","_window","_window$requestAnimat","rootElem","documentElement","pageYOffset","spaceToTop","spaceToBottom","clientHeight","max","vh","visualViewport","height","innerHeight","call","correctHiddenView","setDirection","_rootElem","enableBodyLock","index","String","toLowerCase","changedOrderFor","itemData","str","separator","removeNumericOnlyValues","firstLetter","push","found","disableBodyLock","_this$_rootElem","remove","active","setAttribute","removeAttribute","render","Provider","context","drawerList","setData","setDataHandler","setStateHandler","setWrapperElement","addObservers","toggleVisible","children","propTypes","node","isRequired"],"sources":["../../../../src/fragments/drawer-list/DrawerListProvider.js"],"sourcesContent":["/**\n * Web DrawerList Provider\n *\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport keycode from 'keycode'\nimport Context from '../../shared/Context'\nimport {\n warn,\n isTrue,\n roundToNearest,\n getClosestScrollViewElement,\n detectOutsideClick,\n dispatchCustomElementEvent,\n getPreviousSibling,\n} from '../../shared/component-helper'\nimport {\n getOffsetTop,\n getOffsetLeft,\n hasSelectedText,\n getSelectedElement,\n} from '../../shared/helpers'\nimport {\n getData,\n normalizeData,\n findClosest,\n getSelectedItemValue,\n parseContentTitle,\n getEventData,\n prepareStartupState,\n prepareDerivedState,\n drawerListPropTypes,\n drawerListDefaultProps,\n drawerListProviderPropTypes,\n drawerListProviderDefaultProps,\n} from './DrawerListHelpers'\nimport DrawerListContext from './DrawerListContext'\nimport {\n disableBodyScroll,\n enableBodyScroll,\n} from '../../components/modal/bodyScrollLock'\n\nexport default class DrawerListProvider extends React.PureComponent {\n static contextType = Context\n\n static propTypes = {\n ...drawerListPropTypes,\n ...drawerListProviderPropTypes,\n children: PropTypes.node.isRequired,\n }\n\n static defaultProps = {\n ...drawerListDefaultProps,\n ...drawerListProviderDefaultProps,\n }\n\n static blurDelay = 201 // some ms more than \"DrawerListSlideDown 200ms\"\n\n static getDerivedStateFromProps(props, state) {\n return prepareDerivedState(props, state)\n }\n\n constructor(props) {\n super(props)\n\n this.attributes = {}\n this.state = {\n tagName: 'dnb-drawer-list',\n cache_hash: '',\n active_item: null,\n selected_item: null,\n ignore_events: false,\n ...prepareStartupState(props),\n }\n\n this._refRoot = React.createRef()\n this._refShell = React.createRef()\n this._refUl = React.createRef()\n this._refTriangle = React.createRef()\n }\n\n componentDidMount() {\n if (isTrue(this.props.opened)) {\n this.setVisible()\n }\n }\n\n componentDidUpdate(prevProps) {\n if (\n this.props.opened !== null &&\n this.props.opened !== prevProps.opened\n ) {\n if (isTrue(this.props.opened)) {\n this.setVisible()\n } else if (isTrue(this.props.opened) === false) {\n this.setHidden()\n }\n }\n\n if (this.state.opened) {\n if (\n this.props.data !== prevProps.data &&\n typeof document !== 'undefined' &&\n document.activeElement?.tagName === 'BODY'\n ) {\n this._refUl.current?.focus()\n }\n }\n }\n\n componentWillUnmount() {\n clearTimeout(this._showTimeout)\n clearTimeout(this._hideTimeout)\n clearTimeout(this._scrollTimeout)\n clearTimeout(this._directionTimeout)\n\n this.removeObservers()\n this.setActiveState(false)\n }\n\n refreshScrollObserver() {\n if (typeof window === 'undefined' || !this._refUl.current) {\n return\n }\n\n this.itemSpots = this.state.data.reduce((acc, cur, i) => {\n const element = this._refUl.current?.querySelector(\n `li.dnb-drawer-list__option:nth-of-type(${i + 1})`\n )\n if (element) {\n acc[element.offsetTop] = {\n i,\n }\n }\n return acc\n }, {})\n\n this.itemSpotsCount = Object.keys(this.itemSpots).length\n }\n\n setScrollObserver() {\n if (typeof window === 'undefined' || !this._refUl.current) {\n return\n }\n\n this.removeScrollObserver()\n this.itemSpotsCount = 1 // to make sure we recalculate the spots\n\n try {\n let closestToTop = null,\n closestToBottom = null,\n tmpToTop,\n tmpToBottom\n\n this.setOnScroll = () => {\n if (!this._refUl.current) {\n return // stop here\n }\n\n // recalculate the spots\n if (this.itemSpotsCount <= 1) {\n this.refreshScrollObserver()\n }\n\n const counts = Object.keys(this.itemSpots)\n closestToBottom = findClosest(\n counts,\n this._refUl.current.scrollTop + this._refUl.current.offsetHeight\n )\n closestToTop = findClosest(counts, this._refUl.current.scrollTop)\n if (this.itemSpots[closestToTop] && closestToTop !== tmpToTop) {\n this.setState({\n closestToTop: this.itemSpots[closestToTop].i,\n })\n }\n // we do this because we want the arrow\n // to change visually\n if (\n closestToBottom !== tmpToBottom &&\n this.itemSpots[closestToBottom]\n ) {\n this.setState({\n closestToBottom: this.itemSpots[closestToBottom].i,\n })\n }\n tmpToTop = closestToTop\n tmpToBottom = closestToBottom\n }\n\n this._refUl.current.addEventListener('scroll', this.setOnScroll)\n this.setOnScroll()\n } catch (e) {\n warn('List could not set onScroll:', e)\n }\n }\n\n removeScrollObserver() {\n if (typeof window !== 'undefined' && this.setOnScroll) {\n window.removeEventListener('resize', this.setOnScroll)\n this.setOnScroll = null\n }\n }\n\n enableBodyLock = () => {\n if (this._refUl.current) {\n this._bodyLockIsEnabled = true\n disableBodyScroll(this._refUl.current)\n }\n }\n\n disableBodyLock = () => {\n if (this._bodyLockIsEnabled && this._refUl.current) {\n this._bodyLockIsEnabled = null\n enableBodyScroll(this._refUl.current)\n }\n }\n\n setDirectionObserver() {\n if (\n typeof window === 'undefined' ||\n typeof document === 'undefined' ||\n !(this.state.wrapper_element || this._refRoot.current)\n ) {\n return\n }\n\n const {\n enable_body_lock,\n scrollable,\n min_height,\n max_height,\n on_resize,\n page_offset,\n observer_element,\n } = this.props\n\n // const skipPortal = isTrue(skip_portal)\n const useBodyLock = isTrue(enable_body_lock)\n const isScrollable = isTrue(scrollable)\n const customMinHeight = parseFloat(min_height) * 16\n const customMaxHeight = parseFloat(max_height) || 0\n\n let customElem =\n typeof observer_element === 'string'\n ? document.querySelector(observer_element)\n : null\n\n if (!customElem) {\n customElem = getClosestScrollViewElement(this._refRoot.current)\n }\n\n // In case we have one before hand\n this.removeDirectionObserver()\n\n const directionOffset = 96\n const spaceToTopOffset = 2 * 16\n const spaceToBottomOffset = 2 * 16\n const elem = this.state.wrapper_element || this._refRoot.current\n\n const renderDirection = () => {\n try {\n // make calculation for both direction and height\n const rootElem = customElem || document.documentElement\n\n const pageYOffset = !isNaN(parseFloat(page_offset))\n ? parseFloat(page_offset)\n : rootElem.scrollTop /* pageYOffset */\n const spaceToTop =\n getOffsetTop(elem) + elem.offsetHeight - pageYOffset\n const spaceToBottom =\n rootElem.clientHeight /* innerHeight */ -\n (getOffsetTop(elem) + elem.offsetHeight) +\n pageYOffset\n\n const direction =\n Math.max(spaceToBottom - directionOffset, directionOffset) <\n customMinHeight && spaceToTop > customMinHeight\n ? 'top'\n : 'bottom'\n\n // make sure we never get higher than we have defined in CSS\n let max_height = customMaxHeight\n if (!(max_height > 0)) {\n max_height =\n direction === 'top'\n ? spaceToTop -\n ((this.state.wrapper_element || this._refRoot.current)\n .offsetHeight || 0) -\n spaceToTopOffset\n : spaceToBottom - spaceToBottomOffset\n\n // get the view port height, like in CSS\n let vh = 0\n if (typeof window.visualViewport !== 'undefined') {\n vh = window.visualViewport.height\n } else {\n vh = Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n )\n }\n\n // like defined in CSS\n vh = vh * (isScrollable ? 0.7 : 0.9)\n\n if (max_height > vh) {\n max_height = vh\n }\n\n // convert px to rem\n max_height = roundToNearest(max_height, 8) / 16\n }\n\n // update the states\n if (this.props.direction === 'auto') {\n this.setState({\n direction,\n })\n }\n this.setState({\n max_height,\n })\n\n // call the event, if set\n if (on_resize) {\n dispatchCustomElementEvent(this.state, 'on_resize', {\n direction,\n max_height,\n })\n }\n } catch (e) {\n warn('List could not set onResize:', e)\n }\n\n // React v18 needs a delay to make the calculation during first render\n window?.requestAnimationFrame?.(this.correctHiddenView) ||\n this.correctHiddenView()\n }\n\n // debounce\n this.setDirection = () => {\n clearTimeout(this._directionTimeout)\n this._directionTimeout = setTimeout(renderDirection, 50)\n }\n\n // customElem can be a dnb-scroll-view\n this._rootElem = customElem || window\n this._rootElem.addEventListener('scroll', this.setDirection)\n\n // this fixes iOS softkeyboard\n if (typeof window.visualViewport !== 'undefined') {\n window.visualViewport.addEventListener('scroll', this.setDirection)\n window.visualViewport.addEventListener('resize', this.setDirection)\n } else {\n window.addEventListener('resize', this.setDirection)\n }\n\n if (useBodyLock) {\n this.enableBodyLock()\n }\n\n this.refreshScrollObserver()\n\n renderDirection()\n }\n\n /**\n * Deprecated\n * We should replace all the logic of handling left/right aligned\n * and setting the position, with a PopupMenu component,\n * which uses the logic form Tooltip.\n *\n * EDS-246\n */\n correctHiddenView = () => {\n // console.log('this._refShell.current', this._refShell.current)\n // console.log('this._refUl.current', this._refUl.current)\n // We use \"style.transform\", because it is a independent \"and quick\" solution\n // we could send down spaceToLeft and spaceToRight and set it with React's \"style\" prop in future\n if (!this._refShell.current || !this._refUl.current) {\n return // stop here\n }\n\n try {\n const spaceToLeft = getOffsetLeft(this._refUl.current)\n const spaceToRight =\n window.innerWidth -\n (getOffsetLeft(this._refUl.current) +\n this._refUl.current.offsetWidth)\n\n const triangleStyle = this._refTriangle.current.style\n const shellStyle = this._refShell.current.style\n\n // correct left side\n if (spaceToLeft < 0) {\n shellStyle.transform = `translateX(${Math.abs(\n spaceToLeft / 16\n )}rem)`\n triangleStyle.right = `${Math.abs(spaceToLeft / 16)}rem`\n\n // correct right side\n } else if (spaceToRight < 0) {\n shellStyle.transform = `translateX(${spaceToRight / 16}rem)`\n triangleStyle.left = `${Math.abs(spaceToRight / 16)}rem`\n } else {\n if (shellStyle.transform) {\n shellStyle.transform = ''\n triangleStyle.left = 'auto'\n triangleStyle.right = 'auto'\n }\n }\n } catch (e) {\n //\n }\n }\n\n // this gives us the possibility to quickly search for an item\n // by simply pressing any alfabetic key\n findItemByValue(value) {\n if (isTrue(this.props.skip_keysearch)) {\n return\n }\n\n let index = -1\n\n try {\n value = String(value).toLowerCase()\n\n // delete the cache\n // if there are several of the same type\n if (this.changedOrderFor !== value) {\n this.searchCache = null\n this.changedOrderFor = null\n }\n\n this.searchCache =\n this.searchCache ||\n this.state.data.reduce((acc, itemData, i) => {\n const str = String(\n parseContentTitle(itemData, {\n separator: ' ',\n removeNumericOnlyValues: true,\n })\n )\n\n // take the first letter\n const firstLetter = String(str[0]).toLowerCase()\n acc[firstLetter] = acc[firstLetter] || []\n acc[firstLetter].push({\n i,\n })\n\n return acc\n }, {})\n\n const found = this.searchCache[value]\n index = found && found[0] && found[0].i > -1 ? found[0].i : -1\n\n // if there are several of the same type\n if (found && found.length > 1) {\n found.push(found.shift())\n this.changedOrderFor = value\n }\n } catch (e) {\n warn('List could not findItemByValue:', e)\n }\n\n return index\n }\n\n scrollToItem = (\n active_item,\n { scrollTo = true, element = null } = {}\n ) => {\n clearTimeout(this._scrollTimeout)\n this._scrollTimeout = setTimeout(() => {\n // try to scroll to item\n if (this._refUl.current && parseFloat(active_item) > -1) {\n try {\n const ulElement = this._refUl.current\n const liElement = element || this.getActiveElement()\n if (liElement) {\n const top = liElement.offsetTop\n if (ulElement.scrollTo) {\n if (scrollTo === false || window.IS_TEST) {\n ulElement.style.scrollBehavior = 'auto'\n }\n ulElement.scrollTo({\n top,\n behavior: scrollTo ? 'smooth' : 'auto',\n })\n if (scrollTo === false) {\n ulElement.style.scrollBehavior = 'smooth'\n }\n } else if (ulElement.scrollTop) {\n ulElement.scrollTop = top\n }\n\n if (!isTrue(this.props.prevent_focus) && liElement) {\n liElement.focus()\n dispatchCustomElementEvent(this, 'on_show_focus', {\n element: liElement,\n })\n }\n } else {\n warn('The DrawerList item was not a DOM Element')\n }\n } catch (e) {\n warn('List could not scroll into element:', e)\n }\n }\n }, 1) // to make sure we are after all DOM updates, else we don't get this scrolling\n }\n\n /**\n * During opening (Dropdown, Autocomplete),\n * and if noting is selected,\n * set scroll to item.\n *\n * @param {number} active_item The item to set as active\n * @param {object} param1\n * @property {boolean} fireSelectEvent Whether the onSelect event should get emitted\n * @property {boolean} scrollTo Whether the list should scroll to the new active item nor not\n * @property {event} event The event object to forward to the emitted events\n */\n setActiveItemAndScrollToIt = (\n active_item,\n { fireSelectEvent = false, scrollTo = true, event = null } = {}\n ) => {\n this.setState({ active_item }, () => {\n if (parseFloat(active_item) === -1) {\n // Select the first item to NVDA is more easily navigateable,\n // without using the alt + arrow key\n // else we set the focus on the \"ul\" element\n if (document.activeElement?.tagName !== 'INPUT') {\n this._refUl.current?.focus({ preventScroll: true })\n }\n\n dispatchCustomElementEvent(this, 'on_show_focus', {\n element: this._refUl.current,\n })\n } else if (parseFloat(active_item) > -1) {\n const { selected_item } = this.state\n\n if (fireSelectEvent) {\n const attributes = this.attributes\n const ret = dispatchCustomElementEvent(this.state, 'on_select', {\n active_item,\n value: getSelectedItemValue(selected_item, this.state),\n data: getEventData(active_item, this.state.data),\n event,\n attributes,\n })\n if (ret === false) {\n return // stop here!\n }\n }\n\n if (isTrue(this.props.no_animation)) {\n scrollTo = false\n }\n\n this.scrollToItem(active_item, { scrollTo })\n }\n })\n }\n\n removeDirectionObserver() {\n this.disableBodyLock()\n\n clearTimeout(this._directionTimeout)\n if (typeof window !== 'undefined' && this.setDirection) {\n this._rootElem?.removeEventListener('scroll', this.setDirection)\n\n // this fixes iOS softkeyboard\n if (typeof window.visualViewport !== 'undefined') {\n window.visualViewport.removeEventListener(\n 'scroll',\n this.setDirection\n )\n window.visualViewport.removeEventListener(\n 'resize',\n this.setDirection\n )\n } else {\n window.removeEventListener('resize', this.setDirection)\n }\n\n this.setDirection = null\n }\n }\n\n setWrapperElement = (wrapper_element = this.props.wrapper_element) => {\n if (\n typeof wrapper_element === 'string' &&\n typeof document !== 'undefined'\n ) {\n wrapper_element = document.querySelector(wrapper_element)\n }\n\n if (wrapper_element !== this.state.wrapper_element) {\n this.setState({\n wrapper_element,\n })\n }\n\n return this\n }\n\n getAnchorElem(activeElement) {\n try {\n return activeElement.querySelector('a:first-of-type')\n } catch (e) {\n return null\n }\n }\n\n setMetaKey = (e) => {\n const we =\n typeof window !== 'undefined' && window.event ? window.event : e\n this.meta = {\n cmd: we.metaKey,\n ctrl: we.ctrlKey,\n shift: we.shiftKey,\n alt: we.altKey,\n }\n }\n\n onKeyUpHandler = (e) => {\n this.setMetaKey(e)\n }\n\n onKeyDownHandler = (e) => {\n const key = keycode(e)\n\n if (/command|alt|shift|ctrl/.test(key)) {\n this.setMetaKey(e)\n }\n\n dispatchCustomElementEvent(this.state, 'on_key_down', {\n event: e,\n key,\n })\n\n // To allow copy\n // But makes VO not reading our list items once command key is pressed\n // if (this.meta.cmd || this.meta.ctrl || this.meta.shift || this.meta.alt) {\n // return // stop here\n // }\n\n // stop here if the focus is not set\n // and the drawer is opened by default\n if (\n isTrue(this.props.prevent_close)\n // TODO: Has to be worked on better!\n // !isTrue(this.props.prevent_focus)\n ) {\n let isSameDrawer = false\n try {\n const ulElem = getPreviousSibling(\n 'dnb-drawer-list__options',\n document.activeElement\n )\n\n isSameDrawer =\n ulElem === this._refUl.current ||\n ulElem?.getAttribute('id') === this.props.id\n } catch (e) {\n warn(e)\n }\n if (!isSameDrawer && key !== 'tab') {\n return // stop here\n }\n }\n\n if (!this.state.isOpen) {\n return // stop here\n }\n\n if (isTrue(this.state.ignore_events) && key !== 'tab') {\n return // stop here\n }\n\n let active_item = parseFloat(this.state.active_item)\n\n if (isNaN(active_item)) {\n active_item = -1\n }\n\n const total = this.state.data && this.state.data.length - 1\n\n switch (key) {\n case 'up':\n {\n e.preventDefault()\n\n if (\n this.state.direction === 'bottom' &&\n this.state.active_item === this.getFirstItem()\n ) {\n active_item = -1\n } else {\n active_item = this.getPrevActiveItem()\n if (isNaN(active_item)) {\n active_item = this.getLastItem()\n }\n }\n }\n break\n\n case 'down':\n {\n e.preventDefault()\n\n if (\n this.state.direction === 'top' &&\n this.state.active_item === this.getLastItem()\n ) {\n active_item = -1\n } else {\n active_item = this.getNextActiveItem()\n\n if (isNaN(active_item)) {\n active_item = this.getFirstItem()\n }\n }\n }\n break\n\n case 'page up':\n case 'home':\n {\n e.preventDefault()\n active_item = this.getFirstItem() || 0\n }\n break\n\n case 'page down':\n case 'end':\n {\n e.preventDefault()\n active_item = this.getLastItem()\n if (isNaN(active_item)) {\n active_item = total\n }\n }\n break\n\n case 'enter':\n case 'space':\n {\n if (e.target.tagName === 'A') {\n e.target.dispatchEvent(new MouseEvent('click'))\n this.setHidden()\n return // stop here, and let the browser + anchor do the rest\n }\n\n active_item = this.getCurrentActiveItem()\n\n if (\n isTrue(this.props.skip_keysearch)\n ? active_item > -1 && key !== 'space'\n : true\n ) {\n e.preventDefault()\n const result = this.selectItemAndClose(active_item, {\n fireSelectEvent: true,\n event: e,\n })\n if (result === false) {\n return // stop here if the data actually does not exit\n }\n }\n }\n break\n\n case 'esc':\n {\n this.setHidden({ event: e })\n e.preventDefault()\n }\n break\n\n case 'tab':\n {\n if (active_item > -1) {\n // If there is an active item\n // we make it possible to tab inside it (to an anchor) instead of closing the list\n const activeElement = this.getActiveElement()\n const hasFocusOnElement = Boolean(\n this.getAnchorElem(activeElement)\n )\n\n this.setState({ hasFocusOnElement })\n\n // And if there is an anchor inside our active element\n if (hasFocusOnElement) {\n e.stopPropagation()\n\n // Also, set the focus actively into the active element, if it is not from beforehand\n const currentActiveElement = getPreviousSibling(\n 'dnb-drawer-list__option',\n document.activeElement\n )\n\n if (currentActiveElement !== activeElement) {\n /**\n * Create an fake element,\n * so it's the last one we focus, within our active element.\n *\n * When the users tabs to it,\n * we return the focus the the users prev focus element, e.g. autocomplete input\n *\n * Why is this needed? Because we have our list in a portal, outside of the tab order\n */\n const createTabElem = () => {\n try {\n const elem = document.createElement('BUTTON')\n elem.style = 'opacity:0;position:absolute;'\n const focus = () => {\n prevActiveElement.focus()\n elem.removeEventListener('focus', focus)\n activeElement.removeChild(after)\n activeElement.removeChild(before)\n }\n elem.addEventListener('focus', focus)\n return elem\n } catch (e) {\n //\n }\n }\n\n const prevActiveElement = document.activeElement\n const after = createTabElem()\n const before = createTabElem()\n\n // Now, focus our active element\n activeElement.focus()\n\n const insertElem = () => {\n try {\n // Insert our fake elements\n activeElement.appendChild(after)\n activeElement.insertBefore(\n before,\n activeElement.firstChild\n )\n } catch (e) {\n //\n }\n }\n\n // check because of test\n if (typeof window.requestAnimationFrame === 'function') {\n // requestAnimationFrame is need by chromium browsers\n window.requestAnimationFrame(insertElem)\n } else {\n insertElem()\n }\n }\n\n return // stop here\n }\n\n // We may consider to close the list and set the focus it the handler\n // but also, in portal mode, we want to prevent to start the focus from the top of the page\n else if (isTrue(this.props.prevent_close)) {\n active_item = -1\n }\n }\n\n this.setHidden({ event: e })\n }\n break\n\n default:\n active_item = this.findItemByValue(keycode(e))\n break\n }\n\n if (\n active_item === -1 &&\n this._refUl.current &&\n typeof document !== 'undefined'\n ) {\n const ulElem = getPreviousSibling(\n 'dnb-drawer-list__options',\n document.activeElement\n )\n\n if (ulElem === this._refUl.current) {\n this.setState({\n showFocusRing: true,\n active_item,\n })\n\n this._refUl.current.focus({ preventScroll: true })\n dispatchCustomElementEvent(this.state, 'handle_dismiss_focus')\n }\n } else if (\n parseFloat(active_item) > -1 &&\n active_item !== this.state.active_item\n ) {\n this.setState({\n showFocusRing: false,\n })\n this.setActiveItemAndScrollToIt(active_item, {\n fireSelectEvent: true,\n event: e,\n })\n }\n }\n\n getSelectedElement = () => {\n return (\n this._refUl.current?.querySelector(\n 'li.dnb-drawer-list__option--selected'\n ) ||\n this._refUl.current || {\n getAttribute: () => null,\n }\n )\n }\n\n getCurrentSelectedItem = () => {\n const elem = this.getSelectedElement()\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getActiveElement = () => {\n return (\n this._refUl.current?.querySelector(\n 'li.dnb-drawer-list__option--focus'\n ) || this.getSelectedElement()\n )\n }\n\n getCurrentActiveItem = () => {\n const elem = this.getActiveElement()\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getNextActiveItem = () => {\n const elem = this.getActiveElement().nextSibling\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getPrevActiveItem = () => {\n const elem = this.getActiveElement().previousSibling\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getFirstItem = () => {\n const elem = this._refUl.current?.querySelector(\n 'li.dnb-drawer-list__option.first-of-type' // because of the triangle element\n )\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getLastItem = () => {\n const elem = this._refUl.current?.querySelector(\n 'li.dnb-drawer-list__option.last-of-type' // because of the triangle element\n )\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n setOutsideClickObserver = () => {\n this.removeOutsideClickObserver()\n\n this.outsideClick = detectOutsideClick(\n [\n this.state.wrapper_element,\n this._refRoot.current,\n this._refUl.current,\n ],\n () => this.setHidden({ preventHideFocus: true }),\n { includedKeys: ['tab'] }\n )\n\n if (typeof document !== 'undefined') {\n document.addEventListener('keydown', this.onKeyDownHandler)\n document.addEventListener('keyup', this.onKeyUpHandler)\n }\n }\n\n removeOutsideClickObserver() {\n if (this.outsideClick) {\n this.outsideClick.remove()\n }\n if (typeof document !== 'undefined') {\n document.removeEventListener('keydown', this.onKeyDownHandler)\n document.removeEventListener('keyup', this.onKeyUpHandler)\n }\n }\n\n addObservers = () => {\n this.setDirectionObserver()\n this.setScrollObserver()\n this.setOutsideClickObserver()\n }\n removeObservers = () => {\n this.removeDirectionObserver()\n this.removeScrollObserver()\n this.removeOutsideClickObserver()\n }\n\n toggleVisible = (...args) => {\n return this.state.opened\n ? this.setHidden(...args)\n : this.setVisible(...args)\n }\n\n setVisible = (args = {}, onStateComplete = null) => {\n if (this.state.opened && this.state.hidden === false) {\n if (typeof onStateComplete === 'function') {\n onStateComplete(true)\n }\n return // stop\n }\n\n clearTimeout(this._showTimeout)\n clearTimeout(this._hideTimeout)\n\n this.searchCache = null\n\n const handleSingleComponentCheck = () => {\n this.setState({\n hidden: false,\n opened: true,\n })\n\n const animationDelayHandler = () => {\n DrawerListProvider.isOpen = true\n this.setState({\n isOpen: true,\n })\n\n if (typeof onStateComplete === 'function') {\n onStateComplete(true)\n }\n\n this.setActiveState(true)\n }\n\n if (isTrue(this.props.no_animation)) {\n // our tests want no delay!\n if (process?.env.NODE_ENV === 'test') {\n animationDelayHandler()\n } else {\n // We have to have still a delay, to ensure the user can press enter to toggle the open state\n clearTimeout(this._showTimeout)\n this._showTimeout = setTimeout(animationDelayHandler, 0) // ensure we do not set isOpen true before the keydown handler has run\n }\n } else {\n clearTimeout(this._showTimeout)\n this._showTimeout = setTimeout(\n animationDelayHandler,\n DrawerListProvider.blurDelay\n ) // wait until animation is over\n }\n\n const { selected_item, active_item } = this.state\n dispatchCustomElementEvent(this.state, 'on_show', {\n ...args,\n data: getEventData(\n parseFloat(selected_item) > -1 ? selected_item : active_item,\n this.state.data\n ),\n attributes: this.attributes,\n ulElement: this._refUl.current,\n })\n\n this.setActiveItemAndScrollToIt(\n parseFloat(active_item) > -1 ? active_item : -1,\n { scrollTo: false }\n )\n }\n\n // If a user clicks on a second drawer list\n // we ensure we first close it, before we open it\n if (DrawerListProvider.isOpen && !isTrue(this.props.no_animation)) {\n clearTimeout(this._hideTimeout)\n this._hideTimeout = setTimeout(\n handleSingleComponentCheck,\n DrawerListProvider.blurDelay\n )\n } else {\n handleSingleComponentCheck()\n }\n }\n\n setHidden = (args = {}, onStateComplete = null) => {\n if (!this.state.opened || isTrue(this.props.prevent_close)) {\n if (typeof onStateComplete === 'function') {\n onStateComplete(false)\n }\n return // stop here\n }\n\n clearTimeout(this._showTimeout)\n clearTimeout(this._hideTimeout)\n\n const { selected_item, active_item } = this.state\n const res = dispatchCustomElementEvent(this.state, 'on_hide', {\n ...args,\n data: getEventData(\n parseFloat(selected_item) > -1 ? selected_item : active_item,\n this.state.data\n ),\n attributes: this.attributes,\n })\n\n if (res !== false) {\n this.setState({\n opened: false,\n })\n\n const delayHandler = () => {\n this.removeObservers()\n\n this.setState({\n hidden: true,\n isOpen: false,\n })\n if (typeof onStateComplete === 'function') {\n onStateComplete(false)\n }\n DrawerListProvider.isOpen = false\n\n this.setActiveState(false)\n }\n\n if (isTrue(this.props.no_animation)) {\n delayHandler()\n } else {\n clearTimeout(this._hideTimeout)\n this._hideTimeout = setTimeout(\n delayHandler,\n DrawerListProvider.blurDelay\n ) // wait until animation is over\n }\n }\n }\n\n setActiveState(active) {\n if (typeof document !== 'undefined') {\n try {\n if (active) {\n document.documentElement.setAttribute(\n 'data-dnb-drawer-list-active',\n String(this.props.id)\n )\n } else {\n document.documentElement.removeAttribute(\n 'data-dnb-drawer-list-active'\n )\n }\n } catch (e) {\n warn(\n 'DrawerList: Error on set \"data-dnb-drawer-list-active\" by using element.setAttribute()',\n e\n )\n }\n }\n }\n\n setDataHandler = (\n data,\n cb = null,\n { overwriteOriginalData = false } = {}\n ) => {\n if (!data) {\n return\n }\n\n if (typeof data === 'function') {\n data = getData(data)\n }\n\n data = normalizeData(data)\n\n this.setState(\n {\n data,\n original_data: overwriteOriginalData\n ? data\n : this.state.original_data,\n },\n () => {\n this.refreshScrollObserver()\n typeof cb === 'function' && cb(data)\n }\n )\n\n return this\n }\n\n setStateHandler = (state, cb = null) => {\n this.setState(\n {\n ...state,\n },\n cb\n )\n\n return this\n }\n\n selectItemAndClose = (itemToSelect, args = {}) => {\n args.closeOnSelection = true\n return this.selectItem(itemToSelect, args)\n }\n\n selectItem = (\n itemToSelect,\n {\n fireSelectEvent = false,\n event = null,\n closeOnSelection = false,\n } = {}\n ) => {\n // because of our delay on dispatching the event\n // make a copy of it, so we don't break the synthetic event\n if (event && typeof event.persist === 'function') {\n event.persist()\n }\n\n // if no value is set on start and we confirm, we get -1\n if (itemToSelect === -1) {\n itemToSelect = null\n }\n\n const data = getEventData(itemToSelect, this.state.data) || null\n const value = getSelectedItemValue(itemToSelect, this.state)\n const attributes = this.attributes\n const attr = {\n selected_item: itemToSelect,\n value,\n data,\n event,\n attributes,\n }\n\n const res = dispatchCustomElementEvent(\n this.state,\n 'on_pre_change',\n attr\n )\n\n if (res === false) {\n return res // stop here\n }\n\n if (hasSelectedText()) {\n const elem = getSelectedElement()\n const isInput = getPreviousSibling('dnb-input', elem)\n if (!isInput) {\n return // stop here\n }\n }\n\n const { keep_open, prevent_selection } = this.props\n\n const doCallOnChange =\n parseFloat(itemToSelect) > -1 &&\n itemToSelect !== this.state.selected_item\n const onSelectionIsComplete = () => {\n if (doCallOnChange) {\n dispatchCustomElementEvent(this.state, 'on_change', attr)\n }\n if (fireSelectEvent) {\n dispatchCustomElementEvent(this.state, 'on_select', {\n ...attr,\n active_item: itemToSelect,\n })\n }\n\n if (closeOnSelection && !isTrue(keep_open)) {\n this.setHidden()\n }\n }\n\n if (isTrue(prevent_selection)) {\n onSelectionIsComplete()\n } else {\n this.setState(\n {\n selected_item: itemToSelect,\n active_item: itemToSelect,\n },\n onSelectionIsComplete\n )\n }\n }\n\n render() {\n return (\n <DrawerListContext.Provider\n value={{\n ...this.context,\n drawerList: {\n attributes: this.attributes,\n _refRoot: this._refRoot,\n _refShell: this._refShell,\n _refUl: this._refUl,\n _refTriangle: this._refTriangle,\n _rootElem: this._rootElem,\n getActiveElement: this.getActiveElement,\n setData: this.setDataHandler,\n setState: this.setStateHandler,\n setWrapperElement: this.setWrapperElement,\n addObservers: this.addObservers,\n removeObservers: this.removeObservers,\n setVisible: this.setVisible,\n setHidden: this.setHidden,\n toggleVisible: this.toggleVisible,\n selectItem: this.selectItem,\n selectItemAndClose: this.selectItemAndClose,\n scrollToItem: this.scrollToItem,\n setActiveItemAndScrollToIt: this.setActiveItemAndScrollToIt,\n ...this.state,\n },\n }}\n >\n {this.props.children}\n </DrawerListContext.Provider>\n )\n }\n}\n"],"mappings":"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"}
@@ -29,6 +29,7 @@ import type { HelpButtonProps } from '../components/HelpButton';
29
29
  import type { TableProps } from '../components/Table';
30
30
  import type { GlobalErrorProps } from '../components/GlobalError';
31
31
  import type { ModalProps } from '../components/modal/types';
32
+ import type { AccordionProps } from '../components/Accordion';
32
33
  import type { NumberFormatCurrency } from '../components/NumberFormat';
33
34
  import type { ThemeProps } from './Theme';
34
35
  export type ContextComponents = {
@@ -57,6 +58,7 @@ export type ContextComponents = {
57
58
  Table?: Partial<TableProps>;
58
59
  GlobalError?: Partial<GlobalErrorProps>;
59
60
  Modal?: Partial<ModalProps>;
61
+ Accordion?: Partial<AccordionProps>;
60
62
  NumberFormat?: Record<string, unknown>;
61
63
  Pagination?: Record<string, unknown>;
62
64
  FormRow?: FormRowProps;
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","names":["React","LOCALE","CURRENCY","CURRENCY_DISPLAY","defaultLocales","extend","prepareContext","props","locales","__context__","Object","assign","key","handleLocaleFallbacks","locale","translation","destruct","context","_objectSpread","updateTranslation","getTranslation","lang","breakpoints","skeleton","split","Context","createContext","currency","currency_display","source","validKeys","k","String","includes","list","val","last","length","forEach","i"],"sources":["../../../src/shared/Context.tsx"],"sourcesContent":["/**\n * Web Context Context\n *\n */\n\nimport React from 'react'\nimport { LOCALE, CURRENCY, CURRENCY_DISPLAY } from './defaults'\nimport defaultLocales from './locales'\nimport { extend } from './component-helper'\n\n// All TypeScript based Eufemia elements\nimport type { ScrollViewProps } from '../fragments/scroll-view/ScrollView'\n\n// All TypeScript based Eufemia components\nimport type { AnchorProps } from '../components/Anchor'\nimport type { ButtonProps } from '../components/button/Button'\nimport type { AvatarProps } from '../components/avatar/Avatar'\nimport type { AvatarGroupProps } from '../components/avatar/AvatarGroup'\nimport type { BadgeProps } from '../components/badge/Badge'\nimport type { BreadcrumbProps } from '../components/breadcrumb/Breadcrumb'\nimport type { BreadcrumbItemProps } from '../components/breadcrumb/BreadcrumbItem'\nimport type { InfoCardProps } from '../components/info-card/InfoCard'\nimport type { SliderProps } from '../components/slider/Slider'\nimport type { TagProps } from '../components/tag/Tag'\nimport type { TagGroupProps } from '../components/tag/TagGroup'\nimport type { TimelineProps } from '../components/timeline/Timeline'\nimport type { TimelineItemProps } from '../components/timeline/TimelineItem'\nimport type { VisuallyHiddenProps } from '../components/visually-hidden/VisuallyHidden'\nimport type { DrawerProps } from '../components/drawer/types'\nimport type { DialogProps } from '../components/dialog/types'\nimport type { TooltipProps } from '../components/tooltip/types'\nimport type { SectionProps } from '../components/section/Section'\nimport type { FormRowProps } from '../components/form-row/FormRowHelpers'\nimport type { UploadProps } from '../components/upload/types'\nimport type { SkeletonProps, SkeletonShow } from '../components/Skeleton'\nimport type { HelpButtonProps } from '../components/HelpButton'\nimport type { TableProps } from '../components/Table'\nimport type { GlobalErrorProps } from '../components/GlobalError'\nimport type { ModalProps } from '../components/modal/types'\n\nimport type { NumberFormatCurrency } from '../components/NumberFormat'\n\nimport type { ThemeProps } from './Theme'\n\nexport type ContextComponents = {\n Button?: Partial<ButtonProps>\n Anchor?: Partial<AnchorProps>\n Avatar?: Partial<AvatarProps>\n AvatarGroup?: Partial<AvatarGroupProps>\n Badge?: Partial<BadgeProps>\n Breadcrumb?: Partial<BreadcrumbProps>\n BreadcrumbItem?: Partial<BreadcrumbItemProps>\n InfoCard?: Partial<InfoCardProps>\n Slider?: Partial<SliderProps>\n Tag?: Partial<TagProps>\n TagGroup?: Partial<TagGroupProps>\n Timeline?: Partial<TimelineProps>\n TimelineItem?: Partial<TimelineItemProps>\n VisuallyHidden?: Partial<VisuallyHiddenProps>\n Drawer?: Partial<DrawerProps>\n Dialog?: Partial<DialogProps>\n Tooltip?: Partial<TooltipProps>\n Section?: Partial<SectionProps>\n ScrollView?: Partial<ScrollViewProps>\n Upload?: Partial<UploadProps>\n Skeleton?: Partial<SkeletonProps>\n HelpButton?: Partial<HelpButtonProps>\n Table?: Partial<TableProps>\n GlobalError?: Partial<GlobalErrorProps>\n Modal?: Partial<ModalProps>\n\n // -- TODO: Not converted yet --\n NumberFormat?: Record<string, unknown>\n Pagination?: Record<string, unknown>\n FormRow?: FormRowProps\n}\n\nexport type ContextProps = ContextComponents & {\n // -- All TypeScript based Eufemia components --\n\n // -- Global properties --\n\n /**\n * Contains theme related properties, such as a theme name\n */\n theme?: ThemeProps\n\n /**\n * Will enable all skeletons inside this provider/context scope\n */\n skeleton?: SkeletonShow\n\n /**\n * Define what breakpoints should be used by the MediaQuery component and hook\n */\n breakpoints?: Record<string, string>\n\n /**\n * Defines the locale (internal translation) used by some components\n */\n locale?: Locale\n\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translation?: Translation\n\n /**\n * Defines the currency used by the NumberFormat component\n */\n currency?: NumberFormatCurrency\n\n /**\n * Defines the currencyDisplay used by the NumberFormat component\n */\n currency_display?: string\n\n /**\n * Update any given provider/context properties\n */\n update?: (props: ContextProps) => void\n\n /**\n * Update any given provider/context properties, but only for the particular scope\n */\n updateCurrent?: (props: ContextProps) => void\n\n /**\n * Update the used locale from within the context\n */\n setLocale?: (locale: Locale) => void\n\n /**\n * Update the used locale from within the context, but only for the particular scope\n */\n setCurrentLocale?: (locale: Locale) => void\n\n // -- For internal use --\n locales?: Locales\n __context__?: Record<string, unknown>\n updateTranslation?: (locale: Locale, translation: Translation) => void\n getTranslation?: (props: GetTranslationProps) => Translation\n}\n\nexport type GetTranslationProps = Partial<{\n lang?: Locale\n locale?: Locale\n}>\n\nexport type Locale = string | 'nb-NO' | 'en-GB' | 'en-US'\nexport type ComponentTranslationsName = string | keyof ContextComponents\nexport type ComponentTranslation = string\nexport type ComponentTranslations = Record<string, ComponentTranslation>\nexport type Locales = Record<Locale, Translation | TranslationConsumer>\nexport type Translation = Record<\n /**\n * Support only \"HelpButton\"\n */\n ComponentTranslationsName,\n ComponentTranslations\n>\nexport type TranslationConsumer = Record<\n /**\n * Support \"HelpButton.title\"\n */\n ComponentTranslationsName,\n ComponentTranslation | ComponentTranslations\n>\n\nexport function prepareContext<Props>(\n props: ContextProps = {}\n): Props & ContextProps {\n const locales: Locales = props.locales\n ? extend(defaultLocales, props.locales)\n : defaultLocales\n\n if (props.__context__) {\n Object.assign(props, props.__context__)\n delete props.__context__\n }\n\n const key = handleLocaleFallbacks(props.locale || LOCALE, locales)\n const translation = locales[key] || defaultLocales[LOCALE] || {} // here we could use Object.freeze\n\n /**\n * The code above adds support for strings, defined like:\n * {\n * \"Modal.close_title\": \"Lukk\",\n * }\n */\n if (locales[key]) {\n locales[key] = destruct(locales[key], translation)\n }\n\n const context = {\n // We may use that in future\n updateTranslation: (locale: string, translation: Translation) => {\n context.translation = context.locales[locale] = translation\n },\n getTranslation: (props: GetTranslationProps) => {\n if (props) {\n const lang = props.lang || props.locale\n if (lang && context.locales[lang] && lang !== key) {\n return context.locales[lang]\n }\n }\n return context.translation\n },\n\n locales,\n locale: null,\n breakpoints: null,\n skeleton: null,\n\n ...props,\n\n /**\n * Make sure we set this after props, since we update this one!\n */\n translation,\n } as Props & ContextProps\n\n return context\n}\n\nfunction handleLocaleFallbacks(locale: Locale, locales: Locales) {\n if (!locales[locale]) {\n if (locale === 'en' || locale.split('-')[0] === 'en') {\n return 'en-GB'\n }\n }\n return locale\n}\n\n// If no provider is given, we use the default context from here\nconst Context = React.createContext<ContextProps>(\n prepareContext({\n locale: LOCALE,\n currency: CURRENCY,\n currency_display: CURRENCY_DISPLAY,\n })\n)\n\nexport default Context\n\nfunction destruct(\n source: TranslationConsumer,\n validKeys: Record<string, unknown>\n): TranslationConsumer {\n for (const k in source) {\n if (String(k).includes('.')) {\n const list = k.split('.')\n\n if (validKeys[list[0]]) {\n const val = source[k]\n const last = list.length - 1\n\n list.forEach((k, i) => {\n source[k] = i === last ? val : source[k]\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n source = source[k] || {}\n })\n\n // If the root object is frozen, then use this\n // let lastObj = { ...source }\n // list.forEach((k, i) => {\n // lastObj[k] = i === last ? val : lastObj[k] // we may have to create a new object here instead?\n // lastObj = lastObj[k]\n // })\n }\n }\n }\n\n return source\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Context.js","names":["React","LOCALE","CURRENCY","CURRENCY_DISPLAY","defaultLocales","extend","prepareContext","props","locales","__context__","Object","assign","key","handleLocaleFallbacks","locale","translation","destruct","context","_objectSpread","updateTranslation","getTranslation","lang","breakpoints","skeleton","split","Context","createContext","currency","currency_display","source","validKeys","k","String","includes","list","val","last","length","forEach","i"],"sources":["../../../src/shared/Context.tsx"],"sourcesContent":["/**\n * Web Context Context\n *\n */\n\nimport React from 'react'\nimport { LOCALE, CURRENCY, CURRENCY_DISPLAY } from './defaults'\nimport defaultLocales from './locales'\nimport { extend } from './component-helper'\n\n// All TypeScript based Eufemia elements\nimport type { ScrollViewProps } from '../fragments/scroll-view/ScrollView'\n\n// All TypeScript based Eufemia components\nimport type { AnchorProps } from '../components/Anchor'\nimport type { ButtonProps } from '../components/button/Button'\nimport type { AvatarProps } from '../components/avatar/Avatar'\nimport type { AvatarGroupProps } from '../components/avatar/AvatarGroup'\nimport type { BadgeProps } from '../components/badge/Badge'\nimport type { BreadcrumbProps } from '../components/breadcrumb/Breadcrumb'\nimport type { BreadcrumbItemProps } from '../components/breadcrumb/BreadcrumbItem'\nimport type { InfoCardProps } from '../components/info-card/InfoCard'\nimport type { SliderProps } from '../components/slider/Slider'\nimport type { TagProps } from '../components/tag/Tag'\nimport type { TagGroupProps } from '../components/tag/TagGroup'\nimport type { TimelineProps } from '../components/timeline/Timeline'\nimport type { TimelineItemProps } from '../components/timeline/TimelineItem'\nimport type { VisuallyHiddenProps } from '../components/visually-hidden/VisuallyHidden'\nimport type { DrawerProps } from '../components/drawer/types'\nimport type { DialogProps } from '../components/dialog/types'\nimport type { TooltipProps } from '../components/tooltip/types'\nimport type { SectionProps } from '../components/section/Section'\nimport type { FormRowProps } from '../components/form-row/FormRowHelpers'\nimport type { UploadProps } from '../components/upload/types'\nimport type { SkeletonProps, SkeletonShow } from '../components/Skeleton'\nimport type { HelpButtonProps } from '../components/HelpButton'\nimport type { TableProps } from '../components/Table'\nimport type { GlobalErrorProps } from '../components/GlobalError'\nimport type { ModalProps } from '../components/modal/types'\nimport type { AccordionProps } from '../components/Accordion'\n\nimport type { NumberFormatCurrency } from '../components/NumberFormat'\n\nimport type { ThemeProps } from './Theme'\n\nexport type ContextComponents = {\n Button?: Partial<ButtonProps>\n Anchor?: Partial<AnchorProps>\n Avatar?: Partial<AvatarProps>\n AvatarGroup?: Partial<AvatarGroupProps>\n Badge?: Partial<BadgeProps>\n Breadcrumb?: Partial<BreadcrumbProps>\n BreadcrumbItem?: Partial<BreadcrumbItemProps>\n InfoCard?: Partial<InfoCardProps>\n Slider?: Partial<SliderProps>\n Tag?: Partial<TagProps>\n TagGroup?: Partial<TagGroupProps>\n Timeline?: Partial<TimelineProps>\n TimelineItem?: Partial<TimelineItemProps>\n VisuallyHidden?: Partial<VisuallyHiddenProps>\n Drawer?: Partial<DrawerProps>\n Dialog?: Partial<DialogProps>\n Tooltip?: Partial<TooltipProps>\n Section?: Partial<SectionProps>\n ScrollView?: Partial<ScrollViewProps>\n Upload?: Partial<UploadProps>\n Skeleton?: Partial<SkeletonProps>\n HelpButton?: Partial<HelpButtonProps>\n Table?: Partial<TableProps>\n GlobalError?: Partial<GlobalErrorProps>\n Modal?: Partial<ModalProps>\n Accordion?: Partial<AccordionProps>\n\n // -- TODO: Not converted yet --\n NumberFormat?: Record<string, unknown>\n Pagination?: Record<string, unknown>\n FormRow?: FormRowProps\n}\n\nexport type ContextProps = ContextComponents & {\n // -- All TypeScript based Eufemia components --\n\n // -- Global properties --\n\n /**\n * Contains theme related properties, such as a theme name\n */\n theme?: ThemeProps\n\n /**\n * Will enable all skeletons inside this provider/context scope\n */\n skeleton?: SkeletonShow\n\n /**\n * Define what breakpoints should be used by the MediaQuery component and hook\n */\n breakpoints?: Record<string, string>\n\n /**\n * Defines the locale (internal translation) used by some components\n */\n locale?: Locale\n\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translation?: Translation\n\n /**\n * Defines the currency used by the NumberFormat component\n */\n currency?: NumberFormatCurrency\n\n /**\n * Defines the currencyDisplay used by the NumberFormat component\n */\n currency_display?: string\n\n /**\n * Update any given provider/context properties\n */\n update?: (props: ContextProps) => void\n\n /**\n * Update any given provider/context properties, but only for the particular scope\n */\n updateCurrent?: (props: ContextProps) => void\n\n /**\n * Update the used locale from within the context\n */\n setLocale?: (locale: Locale) => void\n\n /**\n * Update the used locale from within the context, but only for the particular scope\n */\n setCurrentLocale?: (locale: Locale) => void\n\n // -- For internal use --\n locales?: Locales\n __context__?: Record<string, unknown>\n updateTranslation?: (locale: Locale, translation: Translation) => void\n getTranslation?: (props: GetTranslationProps) => Translation\n}\n\nexport type GetTranslationProps = Partial<{\n lang?: Locale\n locale?: Locale\n}>\n\nexport type Locale = string | 'nb-NO' | 'en-GB' | 'en-US'\nexport type ComponentTranslationsName = string | keyof ContextComponents\nexport type ComponentTranslation = string\nexport type ComponentTranslations = Record<string, ComponentTranslation>\nexport type Locales = Record<Locale, Translation | TranslationConsumer>\nexport type Translation = Record<\n /**\n * Support only \"HelpButton\"\n */\n ComponentTranslationsName,\n ComponentTranslations\n>\nexport type TranslationConsumer = Record<\n /**\n * Support \"HelpButton.title\"\n */\n ComponentTranslationsName,\n ComponentTranslation | ComponentTranslations\n>\n\nexport function prepareContext<Props>(\n props: ContextProps = {}\n): Props & ContextProps {\n const locales: Locales = props.locales\n ? extend(defaultLocales, props.locales)\n : defaultLocales\n\n if (props.__context__) {\n Object.assign(props, props.__context__)\n delete props.__context__\n }\n\n const key = handleLocaleFallbacks(props.locale || LOCALE, locales)\n const translation = locales[key] || defaultLocales[LOCALE] || {} // here we could use Object.freeze\n\n /**\n * The code above adds support for strings, defined like:\n * {\n * \"Modal.close_title\": \"Lukk\",\n * }\n */\n if (locales[key]) {\n locales[key] = destruct(locales[key], translation)\n }\n\n const context = {\n // We may use that in future\n updateTranslation: (locale: string, translation: Translation) => {\n context.translation = context.locales[locale] = translation\n },\n getTranslation: (props: GetTranslationProps) => {\n if (props) {\n const lang = props.lang || props.locale\n if (lang && context.locales[lang] && lang !== key) {\n return context.locales[lang]\n }\n }\n return context.translation\n },\n\n locales,\n locale: null,\n breakpoints: null,\n skeleton: null,\n\n ...props,\n\n /**\n * Make sure we set this after props, since we update this one!\n */\n translation,\n } as Props & ContextProps\n\n return context\n}\n\nfunction handleLocaleFallbacks(locale: Locale, locales: Locales) {\n if (!locales[locale]) {\n if (locale === 'en' || locale.split('-')[0] === 'en') {\n return 'en-GB'\n }\n }\n return locale\n}\n\n// If no provider is given, we use the default context from here\nconst Context = React.createContext<ContextProps>(\n prepareContext({\n locale: LOCALE,\n currency: CURRENCY,\n currency_display: CURRENCY_DISPLAY,\n })\n)\n\nexport default Context\n\nfunction destruct(\n source: TranslationConsumer,\n validKeys: Record<string, unknown>\n): TranslationConsumer {\n for (const k in source) {\n if (String(k).includes('.')) {\n const list = k.split('.')\n\n if (validKeys[list[0]]) {\n const val = source[k]\n const last = list.length - 1\n\n list.forEach((k, i) => {\n source[k] = i === last ? val : source[k]\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n source = source[k] || {}\n })\n\n // If the root object is frozen, then use this\n // let lastObj = { ...source }\n // list.forEach((k, i) => {\n // lastObj[k] = i === last ? val : lastObj[k] // we may have to create a new object here instead?\n // lastObj = lastObj[k]\n // })\n }\n }\n }\n\n return source\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  export function init(): void;
2
- export const version: "10.4.2";
2
+ export const version: "10.6.0";
@@ -1,9 +1,9 @@
1
- export const version = '10.4.2';
1
+ export const version = '10.6.0';
2
2
  export function init() {
3
3
  if (typeof window !== 'undefined') {
4
4
  class Eufemia {
5
5
  get version() {
6
- return '10.4.2';
6
+ return '10.6.0';
7
7
  }
8
8
  }
9
9
  window.Eufemia = new Eufemia();
@@ -1 +1 @@
1
- {"version":3,"file":"Eufemia.js","names":["version","init","window","Eufemia"],"sources":["../../../src/shared/Eufemia.js"],"sourcesContent":["export const version = '10.4.2'\n\nexport function init() {\n if (typeof window !== 'undefined') {\n class Eufemia {\n get version() {\n return '10.4.2'\n }\n }\n\n window.Eufemia = new Eufemia()\n }\n}\n"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,QAAQ;AAE/B,OAAO,SAASC,IAAIA,CAAA,EAAG;EACrB,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjC,MAAMC,OAAO,CAAC;MACZ,IAAIH,OAAOA,CAAA,EAAG;QACZ,OAAO,QAAQ;MACjB;IACF;IAEAE,MAAM,CAACC,OAAO,GAAG,IAAIA,OAAO,CAAC,CAAC;EAChC;AACF"}
1
+ {"version":3,"file":"Eufemia.js","names":["version","init","window","Eufemia"],"sources":["../../../src/shared/Eufemia.js"],"sourcesContent":["export const version = '10.6.0'\n\nexport function init() {\n if (typeof window !== 'undefined') {\n class Eufemia {\n get version() {\n return '10.6.0'\n }\n }\n\n window.Eufemia = new Eufemia()\n }\n}\n"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,QAAQ;AAE/B,OAAO,SAASC,IAAIA,CAAA,EAAG;EACrB,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjC,MAAMC,OAAO,CAAC;MACZ,IAAIH,OAAOA,CAAA,EAAG;QACZ,OAAO,QAAQ;MACjB;IACF;IAEAE,MAAM,CAACC,OAAO,GAAG,IAAIA,OAAO,CAAC,CAAC;EAChC;AACF"}
@@ -9,7 +9,7 @@ type VisibilityByThemeProps = {
9
9
  /**
10
10
  * A valid theme name or object.
11
11
  * Will omit passing children on a match.
12
- * NB: "visible" takes presense over "hidden"
12
+ * NB: "visible" takes presence over "hidden"
13
13
  */
14
14
  hidden?: ThemeParams;
15
15
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"VisibilityByTheme.js","names":["useTheme","VisibilityByTheme","children","visible","hidden","theme","visibleList","Array","isArray","hiddenList","some","match","themeItem","name","matchObject","Object","keys","every","key"],"sources":["../../../src/shared/VisibilityByTheme.tsx"],"sourcesContent":["import React from 'react'\nimport useTheme from './useTheme'\nimport type { ThemeNames, ThemeProps } from './Theme'\n\ntype VisibilityByThemeProps = {\n /**\n * A valid theme name or object.\n * Will pass children on a match.\n */\n visible?: ThemeParams\n\n /**\n * A valid theme name or object.\n * Will omit passing children on a match.\n * NB: \"visible\" takes presense over \"hidden\"\n */\n hidden?: ThemeParams\n\n /**\n * Any kind of a React Node that should render on a match.\n */\n children: React.ReactNode\n}\n\ntype ThemeItem = ThemeNames | ThemeProps\ntype ThemeParams = ThemeItem | Array<ThemeItem>\n\nexport default function VisibilityByTheme({\n children,\n visible,\n hidden,\n}: VisibilityByThemeProps) {\n const theme = useTheme()\n\n const visibleList = Array.isArray(visible) ? visible : [visible]\n const hiddenList = Array.isArray(hidden) ? hidden : [hidden]\n\n if (visible) {\n if (!visibleList.some(match(theme))) {\n return null\n }\n } else if (hidden) {\n if (hiddenList.some(match(theme))) {\n return null\n }\n }\n\n return children as JSX.Element\n\n function match(theme: ThemeProps) {\n return (themeItem: ThemeItem) => {\n return typeof themeItem === 'string'\n ? theme.name === themeItem\n : matchObject(theme, themeItem)\n }\n }\n\n function matchObject(theme: ThemeProps, themeItem: ThemeItem) {\n return Object.keys(themeItem).every((key) => {\n return theme[key] === themeItem[key]\n })\n }\n}\n"],"mappings":"AACA,OAAOA,QAAQ,MAAM,YAAY;AA0BjC,eAAe,SAASC,iBAAiBA,CAAC;EACxCC,QAAQ;EACRC,OAAO;EACPC;AACsB,CAAC,EAAE;EACzB,MAAMC,KAAK,GAAGL,QAAQ,CAAC,CAAC;EAExB,MAAMM,WAAW,GAAGC,KAAK,CAACC,OAAO,CAACL,OAAO,CAAC,GAAGA,OAAO,GAAG,CAACA,OAAO,CAAC;EAChE,MAAMM,UAAU,GAAGF,KAAK,CAACC,OAAO,CAACJ,MAAM,CAAC,GAAGA,MAAM,GAAG,CAACA,MAAM,CAAC;EAE5D,IAAID,OAAO,EAAE;IACX,IAAI,CAACG,WAAW,CAACI,IAAI,CAACC,KAAK,CAACN,KAAK,CAAC,CAAC,EAAE;MACnC,OAAO,IAAI;IACb;EACF,CAAC,MAAM,IAAID,MAAM,EAAE;IACjB,IAAIK,UAAU,CAACC,IAAI,CAACC,KAAK,CAACN,KAAK,CAAC,CAAC,EAAE;MACjC,OAAO,IAAI;IACb;EACF;EAEA,OAAOH,QAAQ;EAEf,SAASS,KAAKA,CAACN,KAAiB,EAAE;IAChC,OAAQO,SAAoB,IAAK;MAC/B,OAAO,OAAOA,SAAS,KAAK,QAAQ,GAChCP,KAAK,CAACQ,IAAI,KAAKD,SAAS,GACxBE,WAAW,CAACT,KAAK,EAAEO,SAAS,CAAC;IACnC,CAAC;EACH;EAEA,SAASE,WAAWA,CAACT,KAAiB,EAAEO,SAAoB,EAAE;IAC5D,OAAOG,MAAM,CAACC,IAAI,CAACJ,SAAS,CAAC,CAACK,KAAK,CAAEC,GAAG,IAAK;MAC3C,OAAOb,KAAK,CAACa,GAAG,CAAC,KAAKN,SAAS,CAACM,GAAG,CAAC;IACtC,CAAC,CAAC;EACJ;AACF"}
1
+ {"version":3,"file":"VisibilityByTheme.js","names":["useTheme","VisibilityByTheme","children","visible","hidden","theme","visibleList","Array","isArray","hiddenList","some","match","themeItem","name","matchObject","Object","keys","every","key"],"sources":["../../../src/shared/VisibilityByTheme.tsx"],"sourcesContent":["import React from 'react'\nimport useTheme from './useTheme'\nimport type { ThemeNames, ThemeProps } from './Theme'\n\ntype VisibilityByThemeProps = {\n /**\n * A valid theme name or object.\n * Will pass children on a match.\n */\n visible?: ThemeParams\n\n /**\n * A valid theme name or object.\n * Will omit passing children on a match.\n * NB: \"visible\" takes presence over \"hidden\"\n */\n hidden?: ThemeParams\n\n /**\n * Any kind of a React Node that should render on a match.\n */\n children: React.ReactNode\n}\n\ntype ThemeItem = ThemeNames | ThemeProps\ntype ThemeParams = ThemeItem | Array<ThemeItem>\n\nexport default function VisibilityByTheme({\n children,\n visible,\n hidden,\n}: VisibilityByThemeProps) {\n const theme = useTheme()\n\n const visibleList = Array.isArray(visible) ? visible : [visible]\n const hiddenList = Array.isArray(hidden) ? hidden : [hidden]\n\n if (visible) {\n if (!visibleList.some(match(theme))) {\n return null\n }\n } else if (hidden) {\n if (hiddenList.some(match(theme))) {\n return null\n }\n }\n\n return children as JSX.Element\n\n function match(theme: ThemeProps) {\n return (themeItem: ThemeItem) => {\n return typeof themeItem === 'string'\n ? theme.name === themeItem\n : matchObject(theme, themeItem)\n }\n }\n\n function matchObject(theme: ThemeProps, themeItem: ThemeItem) {\n return Object.keys(themeItem).every((key) => {\n return theme[key] === themeItem[key]\n })\n }\n}\n"],"mappings":"AACA,OAAOA,QAAQ,MAAM,YAAY;AA0BjC,eAAe,SAASC,iBAAiBA,CAAC;EACxCC,QAAQ;EACRC,OAAO;EACPC;AACsB,CAAC,EAAE;EACzB,MAAMC,KAAK,GAAGL,QAAQ,CAAC,CAAC;EAExB,MAAMM,WAAW,GAAGC,KAAK,CAACC,OAAO,CAACL,OAAO,CAAC,GAAGA,OAAO,GAAG,CAACA,OAAO,CAAC;EAChE,MAAMM,UAAU,GAAGF,KAAK,CAACC,OAAO,CAACJ,MAAM,CAAC,GAAGA,MAAM,GAAG,CAACA,MAAM,CAAC;EAE5D,IAAID,OAAO,EAAE;IACX,IAAI,CAACG,WAAW,CAACI,IAAI,CAACC,KAAK,CAACN,KAAK,CAAC,CAAC,EAAE;MACnC,OAAO,IAAI;IACb;EACF,CAAC,MAAM,IAAID,MAAM,EAAE;IACjB,IAAIK,UAAU,CAACC,IAAI,CAACC,KAAK,CAACN,KAAK,CAAC,CAAC,EAAE;MACjC,OAAO,IAAI;IACb;EACF;EAEA,OAAOH,QAAQ;EAEf,SAASS,KAAKA,CAACN,KAAiB,EAAE;IAChC,OAAQO,SAAoB,IAAK;MAC/B,OAAO,OAAOA,SAAS,KAAK,QAAQ,GAChCP,KAAK,CAACQ,IAAI,KAAKD,SAAS,GACxBE,WAAW,CAACT,KAAK,EAAEO,SAAS,CAAC;IACnC,CAAC;EACH;EAEA,SAASE,WAAWA,CAACT,KAAiB,EAAEO,SAAoB,EAAE;IAC5D,OAAOG,MAAM,CAACC,IAAI,CAACJ,SAAS,CAAC,CAACK,KAAK,CAAEC,GAAG,IAAK;MAC3C,OAAOb,KAAK,CAACa,GAAG,CAAC,KAAKN,SAAS,CAACM,GAAG,CAAC;IACtC,CAAC,CAAC;EACJ;AACF"}
@@ -16,11 +16,11 @@ export function scrollToLocationHashId({ offset, delay, onCompletion, }?: {
16
16
  * leading edge, instead of the trailing.
17
17
  *
18
18
  * @param {function} func The function to execute
19
- * @param {number} wait The time (milliseconds) before the first given function executres, if the retuned one, not got called
19
+ * @param {number} wait The time (milliseconds) before the first given function executes, if the returned one, not got called
20
20
  * @param {object} options The options object
21
21
  * @property {boolean} immediate If true, the function will execute immediately. Defaults to false
22
22
  * @property {instance} instance Defines the instance "this" to use on the executed function
23
- * @returns The function to invlaidate the execution
23
+ * @returns The function to invalidate the execution
24
24
  */
25
25
  export function debounce(func: Function, wait?: number, { immediate, instance }?: object): {
26
26
  (...args: any[]): any;