@dnb/eufemia 10.53.0 → 10.54.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 (807) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/cjs/components/CountryFlag.d.ts +12 -0
  3. package/cjs/components/CountryFlag.js +24 -0
  4. package/cjs/components/CountryFlag.js.map +1 -0
  5. package/cjs/components/autocomplete/Autocomplete.js +2 -3
  6. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  7. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
  8. package/cjs/components/checkbox/Checkbox.js +1 -2
  9. package/cjs/components/checkbox/Checkbox.js.map +1 -1
  10. package/cjs/components/country-flag/CountryFlag.d.ts +11 -0
  11. package/cjs/components/country-flag/CountryFlag.js +48 -0
  12. package/cjs/components/country-flag/CountryFlag.js.map +1 -0
  13. package/cjs/components/country-flag/CountryFlagDocs.d.ts +2 -0
  14. package/cjs/components/country-flag/CountryFlagDocs.js +25 -0
  15. package/cjs/components/country-flag/CountryFlagDocs.js.map +1 -0
  16. package/cjs/components/country-flag/index.d.ts +7 -0
  17. package/cjs/components/country-flag/index.js +24 -0
  18. package/cjs/components/country-flag/index.js.map +1 -0
  19. package/cjs/components/country-flag/style/dnb-country-flag-icons.css +1087 -0
  20. package/cjs/components/country-flag/style/dnb-country-flag-icons.min.css +1 -0
  21. package/cjs/components/country-flag/style/dnb-country-flag-icons.scss +1088 -0
  22. package/cjs/components/country-flag/style/dnb-country-flag.css +42 -0
  23. package/cjs/components/country-flag/style/dnb-country-flag.min.css +1 -0
  24. package/cjs/components/country-flag/style/dnb-country-flag.scss +53 -0
  25. package/cjs/components/country-flag/style/index.d.ts +5 -0
  26. package/cjs/components/country-flag/style/index.js +4 -0
  27. package/cjs/components/country-flag/style/index.js.map +1 -0
  28. package/cjs/components/country-flag/style.d.ts +5 -0
  29. package/cjs/components/country-flag/style.js +4 -0
  30. package/cjs/components/country-flag/style.js.map +1 -0
  31. package/cjs/components/date-picker/DatePickerCalendar.js +1 -1
  32. package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
  33. package/cjs/components/date-picker/DatePickerInput.js +1 -2
  34. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  35. package/cjs/components/dialog/Dialog.js +3 -1
  36. package/cjs/components/dialog/Dialog.js.map +1 -1
  37. package/cjs/components/dialog/DialogDocs.d.ts +2 -0
  38. package/cjs/components/dialog/DialogDocs.js +120 -0
  39. package/cjs/components/dialog/DialogDocs.js.map +1 -0
  40. package/cjs/components/dropdown/Dropdown.js +1 -2
  41. package/cjs/components/dropdown/Dropdown.js.map +1 -1
  42. package/cjs/components/global-status/GlobalStatus.js +2 -3
  43. package/cjs/components/global-status/GlobalStatus.js.map +1 -1
  44. package/cjs/components/index.d.ts +2 -1
  45. package/cjs/components/index.js +7 -0
  46. package/cjs/components/index.js.map +1 -1
  47. package/cjs/components/input-masked/InputMaskedHooks.js +1 -2
  48. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  49. package/cjs/components/input-masked/InputMaskedUtils.js +9 -5
  50. package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
  51. package/cjs/components/lib.d.ts +10 -1
  52. package/cjs/components/lib.js +8 -0
  53. package/cjs/components/lib.js.map +1 -1
  54. package/cjs/components/modal/Modal.d.ts +1 -0
  55. package/cjs/components/modal/Modal.js +4 -1
  56. package/cjs/components/modal/Modal.js.map +1 -1
  57. package/cjs/components/modal/ModalContent.js +4 -4
  58. package/cjs/components/modal/ModalContent.js.map +1 -1
  59. package/cjs/components/modal/style/dnb-modal.css +4 -0
  60. package/cjs/components/modal/style/dnb-modal.min.css +1 -1
  61. package/cjs/components/modal/style/dnb-modal.scss +5 -0
  62. package/cjs/components/modal/types.d.ts +4 -0
  63. package/cjs/components/modal/types.js.map +1 -1
  64. package/cjs/components/number-format/NumberUtils.d.ts +2 -2
  65. package/cjs/components/number-format/NumberUtils.js +1 -1
  66. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  67. package/cjs/components/pagination/Pagination.d.ts +3 -3
  68. package/cjs/components/pagination/PaginationBar.d.ts +1 -1
  69. package/cjs/components/pagination/PaginationBar.js.map +1 -1
  70. package/cjs/components/radio/Radio.js +1 -2
  71. package/cjs/components/radio/Radio.js.map +1 -1
  72. package/cjs/components/table/TableClickableHead.js +1 -1
  73. package/cjs/components/table/TableClickableHead.js.map +1 -1
  74. package/cjs/components/table/style/dnb-table.css +0 -9
  75. package/cjs/components/table/style/dnb-table.min.css +1 -1
  76. package/cjs/components/table/style/dnb-table.scss +3 -1
  77. package/cjs/components/table/style/table-accordion.scss +0 -10
  78. package/cjs/components/table/style/table-container.scss +3 -2
  79. package/cjs/components/table/style/table-td.scss +2 -1
  80. package/cjs/components/tabs/Tabs.js +2 -3
  81. package/cjs/components/tabs/Tabs.js.map +1 -1
  82. package/cjs/components/toggle-button/ToggleButton.js +2 -3
  83. package/cjs/components/toggle-button/ToggleButton.js.map +1 -1
  84. package/cjs/components/upload/UploadDocs.js +2 -2
  85. package/cjs/components/upload/UploadDocs.js.map +1 -1
  86. package/cjs/components/upload/UploadFileListCell.js +2 -8
  87. package/cjs/components/upload/UploadFileListCell.js.map +1 -1
  88. package/cjs/components/upload/UploadInfo.js +3 -3
  89. package/cjs/components/upload/UploadInfo.js.map +1 -1
  90. package/cjs/extensions/forms/DataContext/Context.d.ts +12 -9
  91. package/cjs/extensions/forms/DataContext/Context.js +2 -4
  92. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  93. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
  94. package/cjs/extensions/forms/DataContext/Provider/Provider.js +34 -20
  95. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  96. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  97. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  98. package/cjs/extensions/forms/DataContext/index.d.ts +3 -0
  99. package/cjs/extensions/forms/DataContext/index.js +5 -0
  100. package/cjs/extensions/forms/DataContext/index.js.map +1 -1
  101. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +6 -2
  102. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +30 -11
  103. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  104. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -7
  105. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  106. package/cjs/extensions/forms/Field/Date/Date.js +21 -5
  107. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  108. package/cjs/extensions/forms/Field/Email/Email.js +13 -8
  109. package/cjs/extensions/forms/Field/Email/Email.js.map +1 -1
  110. package/cjs/extensions/forms/Field/Expiry/Expiry.js +42 -34
  111. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  112. package/cjs/extensions/forms/Field/Name/Name.js +20 -13
  113. package/cjs/extensions/forms/Field/Name/Name.js.map +1 -1
  114. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -1
  115. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +8 -17
  116. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  117. package/cjs/extensions/forms/Field/Number/Number.d.ts +4 -11
  118. package/cjs/extensions/forms/Field/Number/Number.js +14 -16
  119. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  120. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +4 -7
  121. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  122. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -0
  123. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +43 -30
  124. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  125. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -4
  126. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  127. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +6 -6
  128. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +18 -11
  129. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  130. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +2 -1
  131. package/cjs/extensions/forms/Field/Selection/Selection.js +39 -18
  132. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  133. package/cjs/extensions/forms/Field/Slider/Slider.js +34 -12
  134. package/cjs/extensions/forms/Field/Slider/Slider.js.map +1 -1
  135. package/cjs/extensions/forms/Field/String/String.d.ts +2 -9
  136. package/cjs/extensions/forms/Field/String/String.js +9 -12
  137. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  138. package/cjs/extensions/forms/Field/Toggle/Toggle.js +8 -1
  139. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  140. package/cjs/extensions/forms/Field/Upload/Upload.js +6 -8
  141. package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
  142. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
  143. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +16 -11
  144. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  145. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  146. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  147. package/cjs/extensions/forms/Form/Handler/Handler.js +1 -2
  148. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  149. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  150. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +2 -0
  151. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js +9 -5
  152. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
  153. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +12 -1
  154. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
  155. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +5 -1
  156. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +9 -3
  157. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  158. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +1 -0
  159. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +7 -5
  160. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -1
  161. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +7 -1
  162. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
  163. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +4 -1
  164. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js +6 -2
  165. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +1 -1
  166. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  167. package/cjs/extensions/forms/Iterate/Array/Array.js +2 -2
  168. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  169. package/cjs/extensions/forms/Tools/Log.js +2 -2
  170. package/cjs/extensions/forms/Tools/Log.js.map +1 -1
  171. package/cjs/extensions/forms/Value/Date/Date.d.ts +5 -0
  172. package/cjs/extensions/forms/Value/Date/Date.js +27 -13
  173. package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
  174. package/cjs/extensions/forms/Value/Provider/useValueProvider.d.ts +3 -3
  175. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css +1 -6
  176. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  177. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.scss +1 -11
  178. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +8 -8
  179. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  180. package/cjs/extensions/forms/constants/countries.js +20 -20
  181. package/cjs/extensions/forms/constants/countries.js.map +1 -1
  182. package/cjs/extensions/forms/hooks/index.d.ts +2 -1
  183. package/cjs/extensions/forms/hooks/index.js +1 -1
  184. package/cjs/extensions/forms/hooks/index.js.map +1 -1
  185. package/cjs/extensions/forms/hooks/useErrorMessage.d.ts +3 -10
  186. package/cjs/extensions/forms/hooks/useErrorMessage.js.map +1 -1
  187. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +4 -3
  188. package/cjs/extensions/forms/hooks/useFieldProps.js +136 -71
  189. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  190. package/cjs/extensions/forms/hooks/usePath.d.ts +3 -0
  191. package/cjs/extensions/forms/hooks/usePath.js +2 -1
  192. package/cjs/extensions/forms/hooks/usePath.js.map +1 -1
  193. package/cjs/extensions/forms/hooks/useProcessManager.js +1 -1
  194. package/cjs/extensions/forms/hooks/useProcessManager.js.map +1 -1
  195. package/cjs/extensions/forms/hooks/useTranslation.d.ts +2 -2
  196. package/cjs/extensions/forms/hooks/useTranslation.js.map +1 -1
  197. package/cjs/extensions/forms/style/dnb-forms.css +1 -6
  198. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  199. package/cjs/extensions/forms/types.d.ts +59 -36
  200. package/cjs/extensions/forms/types.js +0 -17
  201. package/cjs/extensions/forms/types.js.map +1 -1
  202. package/cjs/extensions/forms/utils/FormError.d.ts +45 -0
  203. package/cjs/extensions/forms/utils/FormError.js +25 -0
  204. package/cjs/extensions/forms/utils/FormError.js.map +1 -0
  205. package/cjs/extensions/forms/utils/ajv.d.ts +17 -1
  206. package/cjs/extensions/forms/utils/ajv.js +82 -7
  207. package/cjs/extensions/forms/utils/ajv.js.map +1 -1
  208. package/cjs/extensions/forms/utils/errors.d.ts +1 -1
  209. package/cjs/extensions/forms/utils/errors.js.map +1 -1
  210. package/cjs/extensions/forms/utils/index.d.ts +2 -0
  211. package/cjs/extensions/forms/utils/index.js +24 -0
  212. package/cjs/extensions/forms/utils/index.js.map +1 -1
  213. package/cjs/fragments/drawer-list/DrawerList.js +1 -2
  214. package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
  215. package/cjs/fragments/drawer-list/DrawerListProvider.js +2 -3
  216. package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  217. package/cjs/index.d.ts +2 -1
  218. package/cjs/index.js +7 -0
  219. package/cjs/index.js.map +1 -1
  220. package/cjs/shared/Eufemia.d.ts +1 -1
  221. package/cjs/shared/Eufemia.js +2 -2
  222. package/cjs/shared/Eufemia.js.map +1 -1
  223. package/cjs/shared/component-helper.d.ts +2 -1
  224. package/cjs/shared/component-helper.js +9 -2
  225. package/cjs/shared/component-helper.js.map +1 -1
  226. package/cjs/shared/keycode.d.ts +75 -0
  227. package/cjs/shared/keycode.js +138 -0
  228. package/cjs/shared/keycode.js.map +1 -0
  229. package/cjs/shared/libs/Shortcuts.js +1 -3
  230. package/cjs/shared/libs/Shortcuts.js.map +1 -1
  231. package/cjs/shared/locales/nb-NO.js +2 -2
  232. package/cjs/shared/locales/nb-NO.js.map +1 -1
  233. package/cjs/shared/useTranslation.d.ts +2 -2
  234. package/cjs/shared/useTranslation.js.map +1 -1
  235. package/cjs/style/core/scopes.scss +1 -1
  236. package/cjs/style/dnb-ui-basis.css +1 -1
  237. package/cjs/style/dnb-ui-basis.min.css +1 -1
  238. package/cjs/style/dnb-ui-body.css +1 -1
  239. package/cjs/style/dnb-ui-body.min.css +1 -1
  240. package/cjs/style/dnb-ui-components.css +1307 -186
  241. package/cjs/style/dnb-ui-components.min.css +3 -3
  242. package/cjs/style/dnb-ui-components.scss +2 -0
  243. package/cjs/style/dnb-ui-core.css +1 -1
  244. package/cjs/style/dnb-ui-core.min.css +1 -1
  245. package/cjs/style/dnb-ui-extensions.css +1 -6
  246. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  247. package/cjs/style/dnb-ui-forms.css +1 -6
  248. package/cjs/style/dnb-ui-forms.min.css +1 -1
  249. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +1296 -180
  250. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  251. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -6
  252. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  253. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -6
  254. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  255. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +1296 -180
  256. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  257. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -6
  258. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  259. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -6
  260. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  261. package/cjs/style/themes/theme-ui/ui-theme-components.css +1296 -180
  262. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  263. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +1 -6
  264. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  265. package/cjs/style/themes/theme-ui/ui-theme-forms.css +1 -6
  266. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  267. package/components/CountryFlag.d.ts +12 -0
  268. package/components/CountryFlag.js +4 -0
  269. package/components/CountryFlag.js.map +1 -0
  270. package/components/autocomplete/Autocomplete.js +1 -2
  271. package/components/autocomplete/Autocomplete.js.map +1 -1
  272. package/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
  273. package/components/checkbox/Checkbox.js +1 -2
  274. package/components/checkbox/Checkbox.js.map +1 -1
  275. package/components/country-flag/CountryFlag.d.ts +11 -0
  276. package/components/country-flag/CountryFlag.js +38 -0
  277. package/components/country-flag/CountryFlag.js.map +1 -0
  278. package/components/country-flag/CountryFlagDocs.d.ts +2 -0
  279. package/components/country-flag/CountryFlagDocs.js +18 -0
  280. package/components/country-flag/CountryFlagDocs.js.map +1 -0
  281. package/components/country-flag/index.d.ts +7 -0
  282. package/components/country-flag/index.js +4 -0
  283. package/components/country-flag/index.js.map +1 -0
  284. package/components/country-flag/style/dnb-country-flag-icons.css +1087 -0
  285. package/components/country-flag/style/dnb-country-flag-icons.min.css +1 -0
  286. package/components/country-flag/style/dnb-country-flag-icons.scss +1088 -0
  287. package/components/country-flag/style/dnb-country-flag.css +42 -0
  288. package/components/country-flag/style/dnb-country-flag.min.css +1 -0
  289. package/components/country-flag/style/dnb-country-flag.scss +53 -0
  290. package/components/country-flag/style/index.d.ts +5 -0
  291. package/components/country-flag/style/index.js +1 -0
  292. package/components/country-flag/style/index.js.map +1 -0
  293. package/components/country-flag/style.d.ts +5 -0
  294. package/components/country-flag/style.js +1 -0
  295. package/components/country-flag/style.js.map +1 -0
  296. package/components/date-picker/DatePickerCalendar.js +1 -1
  297. package/components/date-picker/DatePickerCalendar.js.map +1 -1
  298. package/components/date-picker/DatePickerInput.js +1 -2
  299. package/components/date-picker/DatePickerInput.js.map +1 -1
  300. package/components/dialog/Dialog.js +3 -1
  301. package/components/dialog/Dialog.js.map +1 -1
  302. package/components/dialog/DialogDocs.d.ts +2 -0
  303. package/components/dialog/DialogDocs.js +113 -0
  304. package/components/dialog/DialogDocs.js.map +1 -0
  305. package/components/dropdown/Dropdown.js +1 -2
  306. package/components/dropdown/Dropdown.js.map +1 -1
  307. package/components/global-status/GlobalStatus.js +1 -2
  308. package/components/global-status/GlobalStatus.js.map +1 -1
  309. package/components/index.d.ts +2 -1
  310. package/components/index.js +2 -1
  311. package/components/index.js.map +1 -1
  312. package/components/input-masked/InputMaskedHooks.js +1 -2
  313. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  314. package/components/input-masked/InputMaskedUtils.js +9 -5
  315. package/components/input-masked/InputMaskedUtils.js.map +1 -1
  316. package/components/lib.d.ts +10 -1
  317. package/components/lib.js +3 -1
  318. package/components/lib.js.map +1 -1
  319. package/components/modal/Modal.d.ts +1 -0
  320. package/components/modal/Modal.js +4 -1
  321. package/components/modal/Modal.js.map +1 -1
  322. package/components/modal/ModalContent.js +4 -4
  323. package/components/modal/ModalContent.js.map +1 -1
  324. package/components/modal/style/dnb-modal.css +4 -0
  325. package/components/modal/style/dnb-modal.min.css +1 -1
  326. package/components/modal/style/dnb-modal.scss +5 -0
  327. package/components/modal/types.d.ts +4 -0
  328. package/components/modal/types.js.map +1 -1
  329. package/components/number-format/NumberUtils.d.ts +2 -2
  330. package/components/number-format/NumberUtils.js +1 -1
  331. package/components/number-format/NumberUtils.js.map +1 -1
  332. package/components/pagination/Pagination.d.ts +3 -3
  333. package/components/pagination/PaginationBar.d.ts +1 -1
  334. package/components/pagination/PaginationBar.js.map +1 -1
  335. package/components/radio/Radio.js +1 -2
  336. package/components/radio/Radio.js.map +1 -1
  337. package/components/table/TableClickableHead.js +1 -1
  338. package/components/table/TableClickableHead.js.map +1 -1
  339. package/components/table/style/dnb-table.css +0 -9
  340. package/components/table/style/dnb-table.min.css +1 -1
  341. package/components/table/style/dnb-table.scss +3 -1
  342. package/components/table/style/table-accordion.scss +0 -10
  343. package/components/table/style/table-container.scss +3 -2
  344. package/components/table/style/table-td.scss +2 -1
  345. package/components/tabs/Tabs.js +1 -2
  346. package/components/tabs/Tabs.js.map +1 -1
  347. package/components/toggle-button/ToggleButton.js +1 -2
  348. package/components/toggle-button/ToggleButton.js.map +1 -1
  349. package/components/upload/UploadDocs.js +2 -2
  350. package/components/upload/UploadDocs.js.map +1 -1
  351. package/components/upload/UploadFileListCell.js +2 -8
  352. package/components/upload/UploadFileListCell.js.map +1 -1
  353. package/components/upload/UploadInfo.js +3 -3
  354. package/components/upload/UploadInfo.js.map +1 -1
  355. package/es/components/CountryFlag.d.ts +12 -0
  356. package/es/components/CountryFlag.js +4 -0
  357. package/es/components/CountryFlag.js.map +1 -0
  358. package/es/components/autocomplete/Autocomplete.js +1 -2
  359. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  360. package/es/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
  361. package/es/components/checkbox/Checkbox.js +1 -2
  362. package/es/components/checkbox/Checkbox.js.map +1 -1
  363. package/es/components/country-flag/CountryFlag.d.ts +11 -0
  364. package/es/components/country-flag/CountryFlag.js +38 -0
  365. package/es/components/country-flag/CountryFlag.js.map +1 -0
  366. package/es/components/country-flag/CountryFlagDocs.d.ts +2 -0
  367. package/es/components/country-flag/CountryFlagDocs.js +18 -0
  368. package/es/components/country-flag/CountryFlagDocs.js.map +1 -0
  369. package/es/components/country-flag/index.d.ts +7 -0
  370. package/es/components/country-flag/index.js +4 -0
  371. package/es/components/country-flag/index.js.map +1 -0
  372. package/es/components/country-flag/style/dnb-country-flag-icons.css +1087 -0
  373. package/es/components/country-flag/style/dnb-country-flag-icons.min.css +1 -0
  374. package/es/components/country-flag/style/dnb-country-flag-icons.scss +1088 -0
  375. package/es/components/country-flag/style/dnb-country-flag.css +42 -0
  376. package/es/components/country-flag/style/dnb-country-flag.min.css +1 -0
  377. package/es/components/country-flag/style/dnb-country-flag.scss +53 -0
  378. package/es/components/country-flag/style/index.d.ts +5 -0
  379. package/es/components/country-flag/style/index.js +1 -0
  380. package/es/components/country-flag/style/index.js.map +1 -0
  381. package/es/components/country-flag/style.d.ts +5 -0
  382. package/es/components/country-flag/style.js +1 -0
  383. package/es/components/country-flag/style.js.map +1 -0
  384. package/es/components/date-picker/DatePickerCalendar.js +1 -1
  385. package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
  386. package/es/components/date-picker/DatePickerInput.js +1 -2
  387. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  388. package/es/components/dialog/Dialog.js +3 -1
  389. package/es/components/dialog/Dialog.js.map +1 -1
  390. package/es/components/dialog/DialogDocs.d.ts +2 -0
  391. package/es/components/dialog/DialogDocs.js +113 -0
  392. package/es/components/dialog/DialogDocs.js.map +1 -0
  393. package/es/components/dropdown/Dropdown.js +1 -2
  394. package/es/components/dropdown/Dropdown.js.map +1 -1
  395. package/es/components/global-status/GlobalStatus.js +1 -2
  396. package/es/components/global-status/GlobalStatus.js.map +1 -1
  397. package/es/components/index.d.ts +2 -1
  398. package/es/components/index.js +2 -1
  399. package/es/components/index.js.map +1 -1
  400. package/es/components/input-masked/InputMaskedHooks.js +1 -2
  401. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  402. package/es/components/input-masked/InputMaskedUtils.js +9 -5
  403. package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
  404. package/es/components/lib.d.ts +10 -1
  405. package/es/components/lib.js +3 -1
  406. package/es/components/lib.js.map +1 -1
  407. package/es/components/modal/Modal.d.ts +1 -0
  408. package/es/components/modal/Modal.js +4 -1
  409. package/es/components/modal/Modal.js.map +1 -1
  410. package/es/components/modal/ModalContent.js +4 -4
  411. package/es/components/modal/ModalContent.js.map +1 -1
  412. package/es/components/modal/style/dnb-modal.css +4 -0
  413. package/es/components/modal/style/dnb-modal.min.css +1 -1
  414. package/es/components/modal/style/dnb-modal.scss +5 -0
  415. package/es/components/modal/types.d.ts +4 -0
  416. package/es/components/modal/types.js.map +1 -1
  417. package/es/components/number-format/NumberUtils.d.ts +2 -2
  418. package/es/components/number-format/NumberUtils.js +1 -1
  419. package/es/components/number-format/NumberUtils.js.map +1 -1
  420. package/es/components/pagination/Pagination.d.ts +3 -3
  421. package/es/components/pagination/PaginationBar.d.ts +1 -1
  422. package/es/components/pagination/PaginationBar.js.map +1 -1
  423. package/es/components/radio/Radio.js +1 -2
  424. package/es/components/radio/Radio.js.map +1 -1
  425. package/es/components/table/TableClickableHead.js +1 -1
  426. package/es/components/table/TableClickableHead.js.map +1 -1
  427. package/es/components/table/style/dnb-table.css +0 -9
  428. package/es/components/table/style/dnb-table.min.css +1 -1
  429. package/es/components/table/style/dnb-table.scss +3 -1
  430. package/es/components/table/style/table-accordion.scss +0 -10
  431. package/es/components/table/style/table-container.scss +3 -2
  432. package/es/components/table/style/table-td.scss +2 -1
  433. package/es/components/tabs/Tabs.js +1 -2
  434. package/es/components/tabs/Tabs.js.map +1 -1
  435. package/es/components/toggle-button/ToggleButton.js +1 -2
  436. package/es/components/toggle-button/ToggleButton.js.map +1 -1
  437. package/es/components/upload/UploadDocs.js +2 -2
  438. package/es/components/upload/UploadDocs.js.map +1 -1
  439. package/es/components/upload/UploadFileListCell.js +2 -8
  440. package/es/components/upload/UploadFileListCell.js.map +1 -1
  441. package/es/components/upload/UploadInfo.js +3 -3
  442. package/es/components/upload/UploadInfo.js.map +1 -1
  443. package/es/extensions/forms/DataContext/Context.d.ts +12 -9
  444. package/es/extensions/forms/DataContext/Context.js +1 -3
  445. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  446. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
  447. package/es/extensions/forms/DataContext/Provider/Provider.js +32 -18
  448. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  449. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  450. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  451. package/es/extensions/forms/DataContext/index.d.ts +3 -0
  452. package/es/extensions/forms/DataContext/index.js +5 -0
  453. package/es/extensions/forms/DataContext/index.js.map +1 -1
  454. package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +6 -2
  455. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +24 -9
  456. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  457. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -7
  458. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  459. package/es/extensions/forms/Field/Date/Date.js +23 -6
  460. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  461. package/es/extensions/forms/Field/Email/Email.js +11 -8
  462. package/es/extensions/forms/Field/Email/Email.js.map +1 -1
  463. package/es/extensions/forms/Field/Expiry/Expiry.js +42 -34
  464. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  465. package/es/extensions/forms/Field/Name/Name.js +18 -13
  466. package/es/extensions/forms/Field/Name/Name.js.map +1 -1
  467. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -1
  468. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +6 -15
  469. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  470. package/es/extensions/forms/Field/Number/Number.d.ts +4 -11
  471. package/es/extensions/forms/Field/Number/Number.js +15 -17
  472. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  473. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +4 -7
  474. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  475. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -0
  476. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +44 -31
  477. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  478. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -4
  479. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  480. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +6 -6
  481. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +18 -11
  482. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  483. package/es/extensions/forms/Field/Selection/Selection.d.ts +2 -1
  484. package/es/extensions/forms/Field/Selection/Selection.js +37 -15
  485. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  486. package/es/extensions/forms/Field/Slider/Slider.js +35 -13
  487. package/es/extensions/forms/Field/Slider/Slider.js.map +1 -1
  488. package/es/extensions/forms/Field/String/String.d.ts +2 -9
  489. package/es/extensions/forms/Field/String/String.js +10 -13
  490. package/es/extensions/forms/Field/String/String.js.map +1 -1
  491. package/es/extensions/forms/Field/Toggle/Toggle.js +9 -2
  492. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  493. package/es/extensions/forms/Field/Upload/Upload.js +7 -9
  494. package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
  495. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
  496. package/es/extensions/forms/FieldBlock/FieldBlock.js +15 -10
  497. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  498. package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  499. package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  500. package/es/extensions/forms/Form/Handler/Handler.js +1 -2
  501. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  502. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  503. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +2 -0
  504. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js +8 -4
  505. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
  506. package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +12 -1
  507. package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
  508. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +5 -1
  509. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +9 -3
  510. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  511. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +1 -0
  512. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +6 -4
  513. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -1
  514. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +7 -1
  515. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
  516. package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +4 -1
  517. package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js +6 -2
  518. package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +1 -1
  519. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  520. package/es/extensions/forms/Iterate/Array/Array.js +3 -3
  521. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  522. package/es/extensions/forms/Tools/Log.js +2 -2
  523. package/es/extensions/forms/Tools/Log.js.map +1 -1
  524. package/es/extensions/forms/Value/Date/Date.d.ts +5 -0
  525. package/es/extensions/forms/Value/Date/Date.js +25 -14
  526. package/es/extensions/forms/Value/Date/Date.js.map +1 -1
  527. package/es/extensions/forms/Value/Provider/useValueProvider.d.ts +3 -3
  528. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.css +1 -6
  529. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  530. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.scss +1 -11
  531. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +8 -8
  532. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  533. package/es/extensions/forms/constants/countries.js +20 -20
  534. package/es/extensions/forms/constants/countries.js.map +1 -1
  535. package/es/extensions/forms/hooks/index.d.ts +2 -1
  536. package/es/extensions/forms/hooks/index.js +1 -1
  537. package/es/extensions/forms/hooks/index.js.map +1 -1
  538. package/es/extensions/forms/hooks/useErrorMessage.d.ts +3 -10
  539. package/es/extensions/forms/hooks/useErrorMessage.js.map +1 -1
  540. package/es/extensions/forms/hooks/useFieldProps.d.ts +4 -3
  541. package/es/extensions/forms/hooks/useFieldProps.js +134 -69
  542. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  543. package/es/extensions/forms/hooks/usePath.d.ts +3 -0
  544. package/es/extensions/forms/hooks/usePath.js +2 -1
  545. package/es/extensions/forms/hooks/usePath.js.map +1 -1
  546. package/es/extensions/forms/hooks/useProcessManager.js +1 -1
  547. package/es/extensions/forms/hooks/useProcessManager.js.map +1 -1
  548. package/es/extensions/forms/hooks/useTranslation.d.ts +2 -2
  549. package/es/extensions/forms/hooks/useTranslation.js.map +1 -1
  550. package/es/extensions/forms/style/dnb-forms.css +1 -6
  551. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  552. package/es/extensions/forms/types.d.ts +59 -36
  553. package/es/extensions/forms/types.js +0 -13
  554. package/es/extensions/forms/types.js.map +1 -1
  555. package/es/extensions/forms/utils/FormError.d.ts +45 -0
  556. package/es/extensions/forms/utils/FormError.js +16 -0
  557. package/es/extensions/forms/utils/FormError.js.map +1 -0
  558. package/es/extensions/forms/utils/ajv.d.ts +17 -1
  559. package/es/extensions/forms/utils/ajv.js +72 -7
  560. package/es/extensions/forms/utils/ajv.js.map +1 -1
  561. package/es/extensions/forms/utils/errors.d.ts +1 -1
  562. package/es/extensions/forms/utils/errors.js.map +1 -1
  563. package/es/extensions/forms/utils/index.d.ts +2 -0
  564. package/es/extensions/forms/utils/index.js +2 -0
  565. package/es/extensions/forms/utils/index.js.map +1 -1
  566. package/es/fragments/drawer-list/DrawerList.js +1 -2
  567. package/es/fragments/drawer-list/DrawerList.js.map +1 -1
  568. package/es/fragments/drawer-list/DrawerListProvider.js +1 -2
  569. package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  570. package/es/index.d.ts +2 -1
  571. package/es/index.js +2 -1
  572. package/es/index.js.map +1 -1
  573. package/es/shared/Eufemia.d.ts +1 -1
  574. package/es/shared/Eufemia.js +2 -2
  575. package/es/shared/Eufemia.js.map +1 -1
  576. package/es/shared/component-helper.d.ts +2 -1
  577. package/es/shared/component-helper.js +2 -2
  578. package/es/shared/component-helper.js.map +1 -1
  579. package/es/shared/keycode.d.ts +75 -0
  580. package/es/shared/keycode.js +127 -0
  581. package/es/shared/keycode.js.map +1 -0
  582. package/es/shared/libs/Shortcuts.js +1 -2
  583. package/es/shared/libs/Shortcuts.js.map +1 -1
  584. package/es/shared/locales/nb-NO.js +2 -2
  585. package/es/shared/locales/nb-NO.js.map +1 -1
  586. package/es/shared/useTranslation.d.ts +2 -2
  587. package/es/shared/useTranslation.js.map +1 -1
  588. package/es/style/core/scopes.scss +1 -1
  589. package/es/style/dnb-ui-basis.css +1 -1
  590. package/es/style/dnb-ui-basis.min.css +1 -1
  591. package/es/style/dnb-ui-body.css +1 -1
  592. package/es/style/dnb-ui-body.min.css +1 -1
  593. package/es/style/dnb-ui-components.css +1307 -186
  594. package/es/style/dnb-ui-components.min.css +3 -3
  595. package/es/style/dnb-ui-components.scss +2 -0
  596. package/es/style/dnb-ui-core.css +1 -1
  597. package/es/style/dnb-ui-core.min.css +1 -1
  598. package/es/style/dnb-ui-extensions.css +1 -6
  599. package/es/style/dnb-ui-extensions.min.css +1 -1
  600. package/es/style/dnb-ui-forms.css +1 -6
  601. package/es/style/dnb-ui-forms.min.css +1 -1
  602. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +1296 -180
  603. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  604. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -6
  605. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  606. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -6
  607. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  608. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +1296 -180
  609. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  610. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -6
  611. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  612. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -6
  613. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  614. package/es/style/themes/theme-ui/ui-theme-components.css +1296 -180
  615. package/es/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  616. package/es/style/themes/theme-ui/ui-theme-extensions.css +1 -6
  617. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  618. package/es/style/themes/theme-ui/ui-theme-forms.css +1 -6
  619. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  620. package/esm/dnb-ui-basis.min.mjs +1 -1
  621. package/esm/dnb-ui-components.min.mjs +1 -1
  622. package/esm/dnb-ui-elements.min.mjs +1 -1
  623. package/esm/dnb-ui-extensions.min.mjs +5 -5
  624. package/esm/dnb-ui-lib.min.mjs +1 -1
  625. package/extensions/forms/DataContext/Context.d.ts +12 -9
  626. package/extensions/forms/DataContext/Context.js +1 -3
  627. package/extensions/forms/DataContext/Context.js.map +1 -1
  628. package/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
  629. package/extensions/forms/DataContext/Provider/Provider.js +32 -18
  630. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  631. package/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  632. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  633. package/extensions/forms/DataContext/index.d.ts +3 -0
  634. package/extensions/forms/DataContext/index.js +5 -0
  635. package/extensions/forms/DataContext/index.js.map +1 -1
  636. package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +6 -2
  637. package/extensions/forms/Field/ArraySelection/ArraySelection.js +30 -11
  638. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  639. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -7
  640. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  641. package/extensions/forms/Field/Date/Date.js +23 -6
  642. package/extensions/forms/Field/Date/Date.js.map +1 -1
  643. package/extensions/forms/Field/Email/Email.js +11 -8
  644. package/extensions/forms/Field/Email/Email.js.map +1 -1
  645. package/extensions/forms/Field/Expiry/Expiry.js +42 -34
  646. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  647. package/extensions/forms/Field/Name/Name.js +18 -13
  648. package/extensions/forms/Field/Name/Name.js.map +1 -1
  649. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -1
  650. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +6 -15
  651. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  652. package/extensions/forms/Field/Number/Number.d.ts +4 -11
  653. package/extensions/forms/Field/Number/Number.js +15 -17
  654. package/extensions/forms/Field/Number/Number.js.map +1 -1
  655. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +4 -7
  656. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  657. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -0
  658. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +44 -31
  659. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  660. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -4
  661. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  662. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +6 -6
  663. package/extensions/forms/Field/SelectCountry/SelectCountry.js +18 -11
  664. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  665. package/extensions/forms/Field/Selection/Selection.d.ts +2 -1
  666. package/extensions/forms/Field/Selection/Selection.js +38 -17
  667. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  668. package/extensions/forms/Field/Slider/Slider.js +35 -13
  669. package/extensions/forms/Field/Slider/Slider.js.map +1 -1
  670. package/extensions/forms/Field/String/String.d.ts +2 -9
  671. package/extensions/forms/Field/String/String.js +10 -13
  672. package/extensions/forms/Field/String/String.js.map +1 -1
  673. package/extensions/forms/Field/Toggle/Toggle.js +9 -2
  674. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  675. package/extensions/forms/Field/Upload/Upload.js +7 -9
  676. package/extensions/forms/Field/Upload/Upload.js.map +1 -1
  677. package/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
  678. package/extensions/forms/FieldBlock/FieldBlock.js +15 -10
  679. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  680. package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  681. package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  682. package/extensions/forms/Form/Handler/Handler.js +1 -2
  683. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  684. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  685. package/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +2 -0
  686. package/extensions/forms/Form/Section/EditContainer/EditContainer.js +8 -4
  687. package/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
  688. package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +12 -1
  689. package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
  690. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +5 -1
  691. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +9 -3
  692. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  693. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +1 -0
  694. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +6 -4
  695. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -1
  696. package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +7 -1
  697. package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
  698. package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +4 -1
  699. package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js +6 -2
  700. package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +1 -1
  701. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  702. package/extensions/forms/Iterate/Array/Array.js +3 -3
  703. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  704. package/extensions/forms/Tools/Log.js +2 -2
  705. package/extensions/forms/Tools/Log.js.map +1 -1
  706. package/extensions/forms/Value/Date/Date.d.ts +5 -0
  707. package/extensions/forms/Value/Date/Date.js +26 -14
  708. package/extensions/forms/Value/Date/Date.js.map +1 -1
  709. package/extensions/forms/Value/Provider/useValueProvider.d.ts +3 -3
  710. package/extensions/forms/Wizard/style/dnb-wizard-layout.css +1 -6
  711. package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  712. package/extensions/forms/Wizard/style/dnb-wizard-layout.scss +1 -11
  713. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +8 -8
  714. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  715. package/extensions/forms/constants/countries.js +20 -20
  716. package/extensions/forms/constants/countries.js.map +1 -1
  717. package/extensions/forms/hooks/index.d.ts +2 -1
  718. package/extensions/forms/hooks/index.js +1 -1
  719. package/extensions/forms/hooks/index.js.map +1 -1
  720. package/extensions/forms/hooks/useErrorMessage.d.ts +3 -10
  721. package/extensions/forms/hooks/useErrorMessage.js.map +1 -1
  722. package/extensions/forms/hooks/useFieldProps.d.ts +4 -3
  723. package/extensions/forms/hooks/useFieldProps.js +136 -71
  724. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  725. package/extensions/forms/hooks/usePath.d.ts +3 -0
  726. package/extensions/forms/hooks/usePath.js +2 -1
  727. package/extensions/forms/hooks/usePath.js.map +1 -1
  728. package/extensions/forms/hooks/useProcessManager.js +1 -1
  729. package/extensions/forms/hooks/useProcessManager.js.map +1 -1
  730. package/extensions/forms/hooks/useTranslation.d.ts +2 -2
  731. package/extensions/forms/hooks/useTranslation.js.map +1 -1
  732. package/extensions/forms/style/dnb-forms.css +1 -6
  733. package/extensions/forms/style/dnb-forms.min.css +1 -1
  734. package/extensions/forms/types.d.ts +59 -36
  735. package/extensions/forms/types.js +0 -13
  736. package/extensions/forms/types.js.map +1 -1
  737. package/extensions/forms/utils/FormError.d.ts +45 -0
  738. package/extensions/forms/utils/FormError.js +16 -0
  739. package/extensions/forms/utils/FormError.js.map +1 -0
  740. package/extensions/forms/utils/ajv.d.ts +17 -1
  741. package/extensions/forms/utils/ajv.js +77 -7
  742. package/extensions/forms/utils/ajv.js.map +1 -1
  743. package/extensions/forms/utils/errors.d.ts +1 -1
  744. package/extensions/forms/utils/errors.js.map +1 -1
  745. package/extensions/forms/utils/index.d.ts +2 -0
  746. package/extensions/forms/utils/index.js +2 -0
  747. package/extensions/forms/utils/index.js.map +1 -1
  748. package/fragments/drawer-list/DrawerList.js +1 -2
  749. package/fragments/drawer-list/DrawerList.js.map +1 -1
  750. package/fragments/drawer-list/DrawerListProvider.js +1 -2
  751. package/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  752. package/index.d.ts +2 -1
  753. package/index.js +2 -1
  754. package/index.js.map +1 -1
  755. package/package.json +2 -2
  756. package/shared/Eufemia.d.ts +1 -1
  757. package/shared/Eufemia.js +2 -2
  758. package/shared/Eufemia.js.map +1 -1
  759. package/shared/component-helper.d.ts +2 -1
  760. package/shared/component-helper.js +2 -2
  761. package/shared/component-helper.js.map +1 -1
  762. package/shared/keycode.d.ts +75 -0
  763. package/shared/keycode.js +127 -0
  764. package/shared/keycode.js.map +1 -0
  765. package/shared/libs/Shortcuts.js +1 -2
  766. package/shared/libs/Shortcuts.js.map +1 -1
  767. package/shared/locales/nb-NO.js +2 -2
  768. package/shared/locales/nb-NO.js.map +1 -1
  769. package/shared/useTranslation.d.ts +2 -2
  770. package/shared/useTranslation.js.map +1 -1
  771. package/style/core/scopes.scss +1 -1
  772. package/style/dnb-ui-basis.css +1 -1
  773. package/style/dnb-ui-basis.min.css +1 -1
  774. package/style/dnb-ui-body.css +1 -1
  775. package/style/dnb-ui-body.min.css +1 -1
  776. package/style/dnb-ui-components.css +1307 -186
  777. package/style/dnb-ui-components.min.css +3 -3
  778. package/style/dnb-ui-components.scss +2 -0
  779. package/style/dnb-ui-core.css +1 -1
  780. package/style/dnb-ui-core.min.css +1 -1
  781. package/style/dnb-ui-extensions.css +1 -6
  782. package/style/dnb-ui-extensions.min.css +1 -1
  783. package/style/dnb-ui-forms.css +1 -6
  784. package/style/dnb-ui-forms.min.css +1 -1
  785. package/style/themes/theme-eiendom/eiendom-theme-components.css +1296 -180
  786. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  787. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -6
  788. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  789. package/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -6
  790. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  791. package/style/themes/theme-sbanken/sbanken-theme-components.css +1296 -180
  792. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  793. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -6
  794. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  795. package/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -6
  796. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  797. package/style/themes/theme-ui/ui-theme-components.css +1296 -180
  798. package/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  799. package/style/themes/theme-ui/ui-theme-extensions.css +1 -6
  800. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  801. package/style/themes/theme-ui/ui-theme-forms.css +1 -6
  802. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  803. package/umd/dnb-ui-basis.min.js +1 -1
  804. package/umd/dnb-ui-components.min.js +1 -1
  805. package/umd/dnb-ui-elements.min.js +1 -1
  806. package/umd/dnb-ui-extensions.min.js +5 -5
  807. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","names":["_react","_interopRequireDefault","require","_classnames","_Suffix","_Context","_componentHelper","_SpacingHelper","_HelpButtonInstance","_helpers","_ModalInner","_ModalHeader","_ModalHeaderBar","_CloseButton","_ModalRoot","_withCamelCaseProps","_excluded","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","ANIMATION_DURATION","exports","Modal","React","PureComponent","getContent","props","modal_content","processChildren","getDerivedStateFromProps","state","window","animation_duration","no_animation","open_state","_open_state","hide","isTrue","modalActive","constructor","_this","this","preventAutoFocus","event","showModal","preventDefault","toggleNow","timeoutDuration","parseFloat","isInTransition","doItNow","setState","handleSideEffects","_closeTimeout","setTimeout","waitBeforeOpen","open_delay","delay","_openTimeout","clearTimeout","open_modal","fn","_onUnmount","close_modal","toggleOpenClose","setActiveState","_id","_this$_triggerRef","focus","elem","setAttribute","preventScroll","Promise","resolve","removeAttribute","_triggerRef","current","activeElement","HTMLElement","then","e","removeActiveState","ifIsLatest","triggeredBy","prevent_close","id","dispatchCustomElementEvent","close","list","getListOfModalRoots","last","getModalRoot","makeUniqueId","createRef","componentDidMount","openBasedOnStateUpdate","componentWillUnmount","componentDidUpdate","prevProps","document","documentElement","warn","modalId","render","visualTestsPropsOverride","extendPropsWithContextInClassComponent","defaultProps","context","getTranslation","root_id","content_id","disabled","labelled_by","focus_selector","header_content","bar_content","bypass_invalidation_selectors","omit_trigger_button","trigger","trigger_attributes","rest","children","freeze","suffixProps","triggerAttributes","hidden","variant","icon_position","fallbackTitle","title","translation","HelpButton","TriggerButton","HelpButtonInstance","text","createElement","Fragment","onClick","innerRef","className","classnames","createSpacingClasses","class","SuffixContext","Consumer","OriginalComponent","Context","ModalHeaderBar","ModalHeader","ModalInner","spacing","dialog_title","close_title","hide_close_button","close_button_attributes","prevent_core_style","no_animation_on_mobile","fullscreen","min_width","max_width","align_content","container_placement","direct_dom_return","on_open","on_close","on_close_prevent","overlay_class","content_class","_default","classWithCamelCaseProps"],"sources":["../../../../src/components/modal/Modal.tsx"],"sourcesContent":["/**\n * Web Modal Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport { SuffixContext } from '../../shared/helpers/Suffix'\nimport Context, { ContextProps } from '../../shared/Context'\nimport {\n warn,\n isTrue,\n makeUniqueId,\n extendPropsWithContextInClassComponent,\n processChildren,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport HelpButtonInstance from '../help-button/HelpButtonInstance'\nimport { getListOfModalRoots, getModalRoot } from './helpers'\nimport ModalInner from './parts/ModalInner'\nimport { ModalProps } from './types'\n\nimport ModalHeader from './parts/ModalHeader'\nimport ModalHeaderBar from './parts/ModalHeaderBar'\nimport { ScrollViewAllProps } from '../../fragments/scroll-view/ScrollView'\nimport CloseButton from './parts/CloseButton'\nimport ModalRoot from './ModalRoot'\nimport type { SpacingProps } from '../../shared/types'\nimport {\n classWithCamelCaseProps,\n ToCamelCasePartial,\n} from '../../shared/helpers/withCamelCaseProps'\nimport type { ButtonProps } from '../button/Button'\n\nexport const ANIMATION_DURATION = 300\n\ninterface ModalState {\n hide: boolean\n modalActive: boolean\n preventAutoFocus: boolean\n}\n\nexport type ModalPropTypes = ModalProps &\n SpacingProps &\n Omit<ScrollViewAllProps, 'children'>\n\nclass Modal extends React.PureComponent<\n ModalPropTypes & ToCamelCasePartial<ModalPropTypes>,\n ModalState\n> {\n static contextType = Context\n\n context!: ContextProps\n\n static Bar = ModalHeaderBar\n static Header = ModalHeader\n static Content = ModalInner\n\n static getContent(props) {\n if (typeof props.modal_content === 'string') {\n return props.modal_content\n } else if (typeof props.modal_content === 'function') {\n return props.modal_content(props)\n }\n return processChildren(props)\n }\n\n _id: string\n _triggerRef: React.RefObject<any>\n _onUnmount: Array<() => void>\n _openTimeout: NodeJS.Timeout\n _closeTimeout: NodeJS.Timeout\n _sideEffectsTimeout: NodeJS.Timeout\n _tryToOpenTimeout: NodeJS.Timeout\n activeElement: Element\n isInTransition: boolean\n\n state = {\n hide: false,\n modalActive: false,\n preventAutoFocus: true,\n animation_duration: ANIMATION_DURATION,\n no_animation: false,\n }\n\n static defaultProps = {\n id: null,\n focus_selector: null,\n labelled_by: null,\n title: null,\n disabled: null,\n spacing: true,\n open_delay: null,\n content_id: null,\n dialog_title: 'Vindu',\n close_title: 'Lukk', // Close Modal Window\n hide_close_button: false,\n close_button_attributes: null,\n prevent_close: false,\n prevent_core_style: false,\n animation_duration: ANIMATION_DURATION,\n no_animation: false,\n no_animation_on_mobile: false,\n fullscreen: 'auto',\n min_width: null,\n max_width: null,\n align_content: 'left',\n container_placement: null,\n open_state: null,\n direct_dom_return: false,\n root_id: 'root',\n omit_trigger_button: false,\n\n className: null,\n children: null,\n\n on_open: null,\n on_close: null,\n on_close_prevent: null,\n open_modal: null,\n close_modal: null,\n\n trigger: null,\n trigger_attributes: null,\n\n overlay_class: null,\n content_class: null,\n\n modal_content: null,\n header_content: null,\n bar_content: null,\n }\n\n static getDerivedStateFromProps(props, state) {\n if (typeof window !== 'undefined' && window['IS_TEST']) {\n state.animation_duration = 0\n state.no_animation = true\n } else {\n state.animation_duration = props.animation_duration\n state.no_animation = props.no_animation\n }\n\n if (props.open_state !== state._open_state) {\n switch (props.open_state) {\n case 'opened':\n case true:\n state.hide = false\n if (isTrue(state.no_animation)) {\n state.modalActive = true\n }\n break\n case 'closed':\n case false:\n state.hide = true\n if (isTrue(state.no_animation)) {\n state.modalActive = false\n }\n break\n }\n }\n state._open_state = props.open_state\n\n return state\n }\n\n constructor(props) {\n super(props)\n this._id = props.id || makeUniqueId('modal-')\n\n this._triggerRef = React.createRef()\n\n this._onUnmount = []\n }\n\n componentDidMount() {\n this.openBasedOnStateUpdate()\n }\n\n componentWillUnmount() {\n clearTimeout(this._openTimeout)\n clearTimeout(this._closeTimeout)\n\n this.removeActiveState()\n\n this._onUnmount.forEach((fn) => {\n if (typeof fn === 'function') {\n fn()\n }\n })\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps !== this.props) {\n this.openBasedOnStateUpdate()\n }\n }\n\n openBasedOnStateUpdate() {\n const { hide } = this.state\n const { open_state } = this.props\n\n if (!this.activeElement && typeof document !== 'undefined') {\n this.activeElement = document.activeElement\n }\n\n if (!hide && (open_state === 'opened' || open_state === true)) {\n this.toggleOpenClose(null, true)\n } else if (hide && (open_state === 'closed' || open_state === false)) {\n this.toggleOpenClose(null, false)\n }\n }\n\n toggleOpenClose = (event = null, showModal = null) => {\n if (event && event.preventDefault) {\n event.preventDefault()\n }\n\n const toggleNow = () => {\n const {\n animation_duration = ANIMATION_DURATION,\n no_animation = false,\n } = this.state\n const timeoutDuration =\n typeof animation_duration === 'string'\n ? parseFloat(animation_duration)\n : animation_duration\n\n const modalActive =\n typeof showModal === 'boolean'\n ? showModal\n : !this.state.modalActive\n\n this.isInTransition = true\n\n const doItNow = () => {\n this.setState(\n {\n hide: false,\n modalActive,\n },\n () => {\n this.isInTransition = false\n this.handleSideEffects()\n }\n )\n }\n\n if (modalActive === false && !isTrue(no_animation)) {\n this.setState({\n hide: true,\n })\n\n this._closeTimeout = setTimeout(doItNow, timeoutDuration) // delay because of the animation\n } else {\n doItNow()\n }\n }\n\n const waitBeforeOpen = () => {\n const { open_delay } = this.props\n const { no_animation } = this.state\n const delay =\n typeof open_delay === 'string'\n ? parseFloat(open_delay)\n : open_delay\n if (delay > 0 && !isTrue(no_animation)) {\n this._openTimeout = setTimeout(toggleNow, delay) // custom delay\n } else {\n toggleNow()\n }\n }\n\n clearTimeout(this._closeTimeout)\n clearTimeout(this._openTimeout)\n\n const { open_modal } = this.props\n if (typeof open_modal === 'function') {\n const fn = open_modal(waitBeforeOpen, this)\n if (fn) {\n this._onUnmount.push(fn)\n }\n } else {\n waitBeforeOpen()\n }\n }\n\n handleSideEffects = () => {\n const { modalActive, preventAutoFocus, animation_duration } =\n this.state\n const { close_modal, open_state } = this.props\n\n if (modalActive) {\n if (typeof close_modal === 'function') {\n const fn = close_modal(() => {\n this.toggleOpenClose(null, false)\n }, this)\n if (fn) {\n this._onUnmount.push(fn)\n }\n }\n this.setActiveState(this._id)\n } else if (modalActive === false && !preventAutoFocus) {\n const focus = (elem: HTMLElement) => {\n // So we can omit showing a Tooltip on the trigger button\n elem.setAttribute('data-autofocus', 'true')\n elem.focus({ preventScroll: true })\n\n return new Promise<void>((resolve) => {\n setTimeout(\n () => {\n elem?.removeAttribute('data-autofocus')\n resolve()\n },\n parseFloat(String(animation_duration)) / 3\n )\n })\n }\n\n if (this._triggerRef?.current) {\n focus(this._triggerRef.current)\n }\n\n // because the open_state was set to opened, we force\n if (\n (open_state === 'opened' || open_state === true) &&\n this.activeElement instanceof HTMLElement\n ) {\n try {\n focus(this.activeElement).then(() => {\n this.activeElement = null\n })\n } catch (e) {\n //\n }\n }\n\n this.removeActiveState()\n }\n\n if (preventAutoFocus) {\n this.setState({ preventAutoFocus: false })\n }\n }\n\n open = (e: Event) => {\n this.toggleOpenClose(e, true)\n }\n\n close = (\n event: Event,\n { ifIsLatest, triggeredBy = null } = { ifIsLatest: true }\n ) => {\n const { prevent_close = false } = this.props\n\n if (isTrue(prevent_close)) {\n const id = this._id\n dispatchCustomElementEvent(this, 'on_close_prevent', {\n id,\n event,\n triggeredBy,\n close: (e) => {\n this.toggleOpenClose(e, false)\n },\n })\n } else {\n if (ifIsLatest) {\n const list = getListOfModalRoots()\n if (list.length > 1) {\n const last = getModalRoot(-1)\n if (last !== this) {\n return // stop here\n }\n }\n }\n\n this.toggleOpenClose(event, false)\n }\n }\n\n removeActiveState() {\n const last = getModalRoot(-1)\n\n // If this instance is not the last one,\n // make the current one to as the active one\n if (last?._id && last._id !== this._id) {\n return this.setActiveState(last._id)\n }\n\n try {\n document.documentElement.removeAttribute('data-dnb-modal-active')\n } catch (e) {\n warn('Modal: Error on remove \"data-dnb-modal-active\"', e)\n }\n }\n\n /**\n * Prevent scrolling on the background\n * But checks if this instance was the last one or not\n *\n * @param {string} modalId Will remove the attribute if false is given\n */\n setActiveState(modalId: string) {\n if (!modalId) {\n warn('Modal: A valid modalId is required')\n }\n // prevent scrolling on the background\n if (typeof document !== 'undefined') {\n try {\n document.documentElement.setAttribute(\n 'data-dnb-modal-active',\n modalId\n )\n } catch (e) {\n warn('Modal: Error on set \"data-dnb-modal-active\"', e)\n }\n }\n }\n\n render() {\n const visualTestsPropsOverride =\n typeof window !== 'undefined' && window['IS_TEST']\n ? {\n animation_duration: 0,\n no_animation: true,\n }\n : {}\n\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContextInClassComponent(\n this.props,\n Modal.defaultProps,\n this.context.getTranslation(this.props).Modal,\n this.context.Modal,\n visualTestsPropsOverride\n )\n\n const {\n root_id = 'root',\n content_id = null,\n disabled = null,\n labelled_by = null,\n focus_selector = null,\n header_content = null,\n bar_content = null,\n bypass_invalidation_selectors = null,\n\n id, // eslint-disable-line\n open_state, // eslint-disable-line\n open_delay, // eslint-disable-line\n\n omit_trigger_button = false,\n trigger = null,\n trigger_attributes = null,\n ...rest\n } = props\n\n const { hide, modalActive } = this.state\n const modal_content = Modal.getContent(\n typeof this.props.children === 'function'\n ? Object.freeze({ ...this.props, close: this.close })\n : this.props\n )\n\n const render = (suffixProps) => {\n const triggerAttributes = {\n hidden: false,\n variant: 'secondary',\n icon_position: 'left',\n ...trigger_attributes,\n } as ButtonProps\n\n if (isTrue(disabled)) {\n triggerAttributes.disabled = true\n }\n\n if (triggerAttributes.id) {\n this._id = triggerAttributes.id\n }\n\n let fallbackTitle: string\n if (triggerAttributes.title) {\n fallbackTitle = triggerAttributes.title\n }\n // in case the modal is used in suffix and no title is given\n // suffixProps.label is also available, so we could use that too\n else if (suffixProps) {\n fallbackTitle = this.context.translation.HelpButton.title\n }\n\n const TriggerButton = trigger\n ? (trigger as React.FC)\n : HelpButtonInstance\n\n const title = (\n !triggerAttributes.text ? rest.title || fallbackTitle : null\n ) as string\n\n return (\n <>\n {TriggerButton && !isTrue(omit_trigger_button) && (\n <TriggerButton\n {...triggerAttributes}\n id={this._id}\n title={title}\n onClick={this.toggleOpenClose}\n innerRef={this._triggerRef}\n className={classnames(\n 'dnb-modal__trigger',\n createSpacingClasses(props),\n triggerAttributes.className,\n\n // @deprecated – can be removed in v11\n triggerAttributes.class\n )}\n />\n )}\n\n {modalActive && modal_content && (\n <ModalRoot\n {...rest}\n id={this._id}\n root_id={root_id}\n content_id={content_id || `dnb-modal-${this._id}`}\n labelled_by={labelled_by}\n focus_selector={focus_selector}\n modal_content={modal_content}\n header_content={header_content}\n bar_content={bar_content}\n bypass_invalidation_selectors={bypass_invalidation_selectors}\n close={this.close}\n hide={hide}\n title={rest.title || fallbackTitle}\n />\n )}\n </>\n )\n }\n\n return <SuffixContext.Consumer>{render}</SuffixContext.Consumer>\n }\n}\n\nexport { CloseButton, Modal as OriginalComponent }\n\nexport default classWithCamelCaseProps(Modal)\n"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.js","names":["_react","_interopRequireDefault","require","_classnames","_Suffix","_Context","_componentHelper","_SpacingHelper","_HelpButtonInstance","_helpers","_ModalInner","_ModalHeader","_ModalHeaderBar","_CloseButton","_ModalRoot","_withCamelCaseProps","_excluded","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","ANIMATION_DURATION","exports","Modal","React","PureComponent","getContent","props","modal_content","processChildren","getDerivedStateFromProps","state","window","animation_duration","no_animation","open_state","_open_state","hide","isTrue","modalActive","constructor","_this","this","preventAutoFocus","event","showModal","preventDefault","toggleNow","timeoutDuration","parseFloat","isInTransition","doItNow","setState","handleSideEffects","_closeTimeout","setTimeout","waitBeforeOpen","open_delay","delay","_openTimeout","clearTimeout","open_modal","fn","_onUnmount","close_modal","toggleOpenClose","setActiveState","_id","_this$_triggerRef","focus","elem","setAttribute","preventScroll","Promise","resolve","removeAttribute","_triggerRef","current","activeElement","HTMLElement","then","e","removeActiveState","ifIsLatest","triggeredBy","prevent_close","id","dispatchCustomElementEvent","close","list","getListOfModalRoots","last","getModalRoot","makeUniqueId","createRef","componentDidMount","openBasedOnStateUpdate","componentWillUnmount","componentDidUpdate","prevProps","document","documentElement","warn","modalId","render","visualTestsPropsOverride","extendPropsWithContextInClassComponent","defaultProps","context","getTranslation","root_id","content_id","disabled","labelled_by","focus_selector","header_content","bar_content","bypass_invalidation_selectors","vertical_alignment","omit_trigger_button","trigger","trigger_attributes","rest","children","freeze","suffixProps","triggerAttributes","hidden","variant","icon_position","fallbackTitle","title","translation","HelpButton","TriggerButton","HelpButtonInstance","text","createElement","Fragment","onClick","innerRef","className","classnames","createSpacingClasses","class","SuffixContext","Consumer","OriginalComponent","Context","ModalHeaderBar","ModalHeader","ModalInner","spacing","dialog_title","close_title","hide_close_button","close_button_attributes","prevent_core_style","no_animation_on_mobile","fullscreen","min_width","max_width","align_content","container_placement","direct_dom_return","on_open","on_close","on_close_prevent","overlay_class","content_class","_default","classWithCamelCaseProps"],"sources":["../../../../src/components/modal/Modal.tsx"],"sourcesContent":["/**\n * Web Modal Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport { SuffixContext } from '../../shared/helpers/Suffix'\nimport Context, { ContextProps } from '../../shared/Context'\nimport {\n warn,\n isTrue,\n makeUniqueId,\n extendPropsWithContextInClassComponent,\n processChildren,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport HelpButtonInstance from '../help-button/HelpButtonInstance'\nimport { getListOfModalRoots, getModalRoot } from './helpers'\nimport ModalInner from './parts/ModalInner'\nimport { ModalProps } from './types'\n\nimport ModalHeader from './parts/ModalHeader'\nimport ModalHeaderBar from './parts/ModalHeaderBar'\nimport { ScrollViewAllProps } from '../../fragments/scroll-view/ScrollView'\nimport CloseButton from './parts/CloseButton'\nimport ModalRoot from './ModalRoot'\nimport type { SpacingProps } from '../../shared/types'\nimport {\n classWithCamelCaseProps,\n ToCamelCasePartial,\n} from '../../shared/helpers/withCamelCaseProps'\nimport type { ButtonProps } from '../button/Button'\n\nexport const ANIMATION_DURATION = 300\n\ninterface ModalState {\n hide: boolean\n modalActive: boolean\n preventAutoFocus: boolean\n}\n\nexport type ModalPropTypes = ModalProps &\n SpacingProps &\n Omit<ScrollViewAllProps, 'children'>\n\nclass Modal extends React.PureComponent<\n ModalPropTypes & ToCamelCasePartial<ModalPropTypes>,\n ModalState\n> {\n static contextType = Context\n\n context!: ContextProps\n\n static Bar = ModalHeaderBar\n static Header = ModalHeader\n static Content = ModalInner\n\n static getContent(props) {\n if (typeof props.modal_content === 'string') {\n return props.modal_content\n } else if (typeof props.modal_content === 'function') {\n return props.modal_content(props)\n }\n return processChildren(props)\n }\n\n _id: string\n _triggerRef: React.RefObject<any>\n _onUnmount: Array<() => void>\n _openTimeout: NodeJS.Timeout\n _closeTimeout: NodeJS.Timeout\n _sideEffectsTimeout: NodeJS.Timeout\n _tryToOpenTimeout: NodeJS.Timeout\n activeElement: Element\n isInTransition: boolean\n\n state = {\n hide: false,\n modalActive: false,\n preventAutoFocus: true,\n animation_duration: ANIMATION_DURATION,\n no_animation: false,\n }\n\n static defaultProps = {\n id: null,\n focus_selector: null,\n labelled_by: null,\n title: null,\n disabled: null,\n spacing: true,\n open_delay: null,\n content_id: null,\n dialog_title: 'Vindu',\n close_title: 'Lukk', // Close Modal Window\n hide_close_button: false,\n close_button_attributes: null,\n prevent_close: false,\n prevent_core_style: false,\n animation_duration: ANIMATION_DURATION,\n no_animation: false,\n no_animation_on_mobile: false,\n fullscreen: 'auto',\n min_width: null,\n max_width: null,\n align_content: 'left',\n container_placement: null,\n vertical_alignment: null,\n open_state: null,\n direct_dom_return: false,\n root_id: 'root',\n omit_trigger_button: false,\n\n className: null,\n children: null,\n\n on_open: null,\n on_close: null,\n on_close_prevent: null,\n open_modal: null,\n close_modal: null,\n\n trigger: null,\n trigger_attributes: null,\n\n overlay_class: null,\n content_class: null,\n\n modal_content: null,\n header_content: null,\n bar_content: null,\n }\n\n static getDerivedStateFromProps(props, state) {\n if (typeof window !== 'undefined' && window['IS_TEST']) {\n state.animation_duration = 0\n state.no_animation = true\n } else {\n state.animation_duration = props.animation_duration\n state.no_animation = props.no_animation\n }\n\n if (props.open_state !== state._open_state) {\n switch (props.open_state) {\n case 'opened':\n case true:\n state.hide = false\n if (isTrue(state.no_animation)) {\n state.modalActive = true\n }\n break\n case 'closed':\n case false:\n state.hide = true\n if (isTrue(state.no_animation)) {\n state.modalActive = false\n }\n break\n }\n }\n state._open_state = props.open_state\n\n return state\n }\n\n constructor(props) {\n super(props)\n this._id = props.id || makeUniqueId('modal-')\n\n this._triggerRef = React.createRef()\n\n this._onUnmount = []\n }\n\n componentDidMount() {\n this.openBasedOnStateUpdate()\n }\n\n componentWillUnmount() {\n clearTimeout(this._openTimeout)\n clearTimeout(this._closeTimeout)\n\n this.removeActiveState()\n\n this._onUnmount.forEach((fn) => {\n if (typeof fn === 'function') {\n fn()\n }\n })\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps !== this.props) {\n this.openBasedOnStateUpdate()\n }\n }\n\n openBasedOnStateUpdate() {\n const { hide } = this.state\n const { open_state } = this.props\n\n if (!this.activeElement && typeof document !== 'undefined') {\n this.activeElement = document.activeElement\n }\n\n if (!hide && (open_state === 'opened' || open_state === true)) {\n this.toggleOpenClose(null, true)\n } else if (hide && (open_state === 'closed' || open_state === false)) {\n this.toggleOpenClose(null, false)\n }\n }\n\n toggleOpenClose = (event = null, showModal = null) => {\n if (event && event.preventDefault) {\n event.preventDefault()\n }\n\n const toggleNow = () => {\n const {\n animation_duration = ANIMATION_DURATION,\n no_animation = false,\n } = this.state\n const timeoutDuration =\n typeof animation_duration === 'string'\n ? parseFloat(animation_duration)\n : animation_duration\n\n const modalActive =\n typeof showModal === 'boolean'\n ? showModal\n : !this.state.modalActive\n\n this.isInTransition = true\n\n const doItNow = () => {\n this.setState(\n {\n hide: false,\n modalActive,\n },\n () => {\n this.isInTransition = false\n this.handleSideEffects()\n }\n )\n }\n\n if (modalActive === false && !isTrue(no_animation)) {\n this.setState({\n hide: true,\n })\n\n this._closeTimeout = setTimeout(doItNow, timeoutDuration) // delay because of the animation\n } else {\n doItNow()\n }\n }\n\n const waitBeforeOpen = () => {\n const { open_delay } = this.props\n const { no_animation } = this.state\n const delay =\n typeof open_delay === 'string'\n ? parseFloat(open_delay)\n : open_delay\n if (delay > 0 && !isTrue(no_animation)) {\n this._openTimeout = setTimeout(toggleNow, delay) // custom delay\n } else {\n toggleNow()\n }\n }\n\n clearTimeout(this._closeTimeout)\n clearTimeout(this._openTimeout)\n\n const { open_modal } = this.props\n if (typeof open_modal === 'function') {\n const fn = open_modal(waitBeforeOpen, this)\n if (fn) {\n this._onUnmount.push(fn)\n }\n } else {\n waitBeforeOpen()\n }\n }\n\n handleSideEffects = () => {\n const { modalActive, preventAutoFocus, animation_duration } =\n this.state\n const { close_modal, open_state } = this.props\n\n if (modalActive) {\n if (typeof close_modal === 'function') {\n const fn = close_modal(() => {\n this.toggleOpenClose(null, false)\n }, this)\n if (fn) {\n this._onUnmount.push(fn)\n }\n }\n this.setActiveState(this._id)\n } else if (modalActive === false && !preventAutoFocus) {\n const focus = (elem: HTMLElement) => {\n // So we can omit showing a Tooltip on the trigger button\n elem.setAttribute('data-autofocus', 'true')\n elem.focus({ preventScroll: true })\n\n return new Promise<void>((resolve) => {\n setTimeout(\n () => {\n elem?.removeAttribute('data-autofocus')\n resolve()\n },\n parseFloat(String(animation_duration)) / 3\n )\n })\n }\n\n if (this._triggerRef?.current) {\n focus(this._triggerRef.current)\n }\n\n // because the open_state was set to opened, we force\n if (\n (open_state === 'opened' || open_state === true) &&\n this.activeElement instanceof HTMLElement\n ) {\n try {\n focus(this.activeElement).then(() => {\n this.activeElement = null\n })\n } catch (e) {\n //\n }\n }\n\n this.removeActiveState()\n }\n\n if (preventAutoFocus) {\n this.setState({ preventAutoFocus: false })\n }\n }\n\n open = (e: Event) => {\n this.toggleOpenClose(e, true)\n }\n\n close = (\n event: Event,\n { ifIsLatest, triggeredBy = null } = { ifIsLatest: true }\n ) => {\n const { prevent_close = false } = this.props\n\n if (isTrue(prevent_close)) {\n const id = this._id\n dispatchCustomElementEvent(this, 'on_close_prevent', {\n id,\n event,\n triggeredBy,\n close: (e) => {\n this.toggleOpenClose(e, false)\n },\n })\n } else {\n if (ifIsLatest) {\n const list = getListOfModalRoots()\n if (list.length > 1) {\n const last = getModalRoot(-1)\n if (last !== this) {\n return // stop here\n }\n }\n }\n\n this.toggleOpenClose(event, false)\n }\n }\n\n removeActiveState() {\n const last = getModalRoot(-1)\n\n // If this instance is not the last one,\n // make the current one to as the active one\n if (last?._id && last._id !== this._id) {\n return this.setActiveState(last._id)\n }\n\n try {\n document.documentElement.removeAttribute('data-dnb-modal-active')\n } catch (e) {\n warn('Modal: Error on remove \"data-dnb-modal-active\"', e)\n }\n }\n\n /**\n * Prevent scrolling on the background\n * But checks if this instance was the last one or not\n *\n * @param {string} modalId Will remove the attribute if false is given\n */\n setActiveState(modalId: string) {\n if (!modalId) {\n warn('Modal: A valid modalId is required')\n }\n // prevent scrolling on the background\n if (typeof document !== 'undefined') {\n try {\n document.documentElement.setAttribute(\n 'data-dnb-modal-active',\n modalId\n )\n } catch (e) {\n warn('Modal: Error on set \"data-dnb-modal-active\"', e)\n }\n }\n }\n\n render() {\n const visualTestsPropsOverride =\n typeof window !== 'undefined' && window['IS_TEST']\n ? {\n animation_duration: 0,\n no_animation: true,\n }\n : {}\n\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContextInClassComponent(\n this.props,\n Modal.defaultProps,\n this.context.getTranslation(this.props).Modal,\n this.context.Modal,\n visualTestsPropsOverride\n )\n\n const {\n root_id = 'root',\n content_id = null,\n disabled = null,\n labelled_by = null,\n focus_selector = null,\n header_content = null,\n bar_content = null,\n bypass_invalidation_selectors = null,\n vertical_alignment = 'center',\n\n id, // eslint-disable-line\n open_state, // eslint-disable-line\n open_delay, // eslint-disable-line\n\n omit_trigger_button = false,\n trigger = null,\n trigger_attributes = null,\n ...rest\n } = props\n\n const { hide, modalActive } = this.state\n const modal_content = Modal.getContent(\n typeof this.props.children === 'function'\n ? Object.freeze({ ...this.props, close: this.close })\n : this.props\n )\n\n const render = (suffixProps) => {\n const triggerAttributes = {\n hidden: false,\n variant: 'secondary',\n icon_position: 'left',\n ...trigger_attributes,\n } as ButtonProps\n\n if (isTrue(disabled)) {\n triggerAttributes.disabled = true\n }\n\n if (triggerAttributes.id) {\n this._id = triggerAttributes.id\n }\n\n let fallbackTitle: string\n if (triggerAttributes.title) {\n fallbackTitle = triggerAttributes.title\n }\n // in case the modal is used in suffix and no title is given\n // suffixProps.label is also available, so we could use that too\n else if (suffixProps) {\n fallbackTitle = this.context.translation.HelpButton.title\n }\n\n const TriggerButton = trigger\n ? (trigger as React.FC)\n : HelpButtonInstance\n\n const title = (\n !triggerAttributes.text ? rest.title || fallbackTitle : null\n ) as string\n\n return (\n <>\n {TriggerButton && !isTrue(omit_trigger_button) && (\n <TriggerButton\n {...triggerAttributes}\n id={this._id}\n title={title}\n onClick={this.toggleOpenClose}\n innerRef={this._triggerRef}\n className={classnames(\n 'dnb-modal__trigger',\n createSpacingClasses(props),\n triggerAttributes.className,\n\n // @deprecated – can be removed in v11\n triggerAttributes.class\n )}\n />\n )}\n\n {modalActive && modal_content && (\n <ModalRoot\n {...rest}\n id={this._id}\n root_id={root_id}\n content_id={content_id || `dnb-modal-${this._id}`}\n labelled_by={labelled_by}\n focus_selector={focus_selector}\n modal_content={modal_content}\n header_content={header_content}\n vertical_alignment={vertical_alignment}\n bar_content={bar_content}\n bypass_invalidation_selectors={bypass_invalidation_selectors}\n close={this.close}\n hide={hide}\n title={rest.title || fallbackTitle}\n />\n )}\n </>\n )\n }\n\n return <SuffixContext.Consumer>{render}</SuffixContext.Consumer>\n }\n}\n\nexport { CloseButton, Modal as OriginalComponent }\n\nexport default classWithCamelCaseProps(Modal)\n"],"mappings":"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"}
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _classnames = _interopRequireDefault(require("classnames"));
10
- var _keycode = _interopRequireDefault(require("keycode"));
11
10
  var _bodyScrollLock = require("./bodyScrollLock");
12
11
  var _componentHelper = require("../../shared/component-helper");
13
12
  var _ModalContext = _interopRequireDefault(require("./ModalContext"));
@@ -16,7 +15,7 @@ var _helpers2 = require("./helpers");
16
15
  var _Theme = require("../../shared/Theme");
17
16
  var _shared = require("../../shared");
18
17
  const _excluded = ["triggeredBy"],
19
- _excluded2 = ["hide", "title", "labelled_by", "id", "close_title", "dialog_title", "hide_close_button", "close_button_attributes", "no_animation", "no_animation_on_mobile", "fullscreen", "container_placement", "close", "content_class", "overlay_class", "content_id", "children", "dialog_role"];
18
+ _excluded2 = ["hide", "title", "labelled_by", "id", "close_title", "dialog_title", "hide_close_button", "close_button_attributes", "no_animation", "no_animation_on_mobile", "fullscreen", "container_placement", "vertical_alignment", "close", "content_class", "overlay_class", "content_id", "children", "dialog_role"];
20
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
20
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
22
21
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -108,7 +107,7 @@ class ModalContent extends _react.default.PureComponent {
108
107
  }
109
108
  });
110
109
  _defineProperty(this, "onKeyDownHandler", event => {
111
- switch ((0, _keycode.default)(event)) {
110
+ switch ((0, _componentHelper.keycode)(event)) {
112
111
  case 'esc':
113
112
  {
114
113
  const mostCurrent = (0, _helpers2.getModalRoot)(-1);
@@ -270,6 +269,7 @@ class ModalContent extends _react.default.PureComponent {
270
269
  no_animation_on_mobile = false,
271
270
  fullscreen = 'auto',
272
271
  container_placement = 'right',
272
+ vertical_alignment = 'center',
273
273
  close,
274
274
  content_class,
275
275
  overlay_class,
@@ -293,7 +293,7 @@ class ModalContent extends _react.default.PureComponent {
293
293
  'aria-labelledby': (0, _componentHelper.combineLabelledBy)(this.props, title ? contentId + '-title' : null, labelled_by),
294
294
  'aria-describedby': (0, _componentHelper.combineDescribedBy)(this.props, contentId + '-content'),
295
295
  'aria-label': !title && !labelled_by ? dialog_title : undefined,
296
- className: (0, _classnames.default)('dnb-modal__content', (0, _componentHelper.isTrue)(fullscreen) ? 'dnb-modal__content--fullscreen' : fullscreen === 'auto' && 'dnb-modal__content--auto-fullscreen', (0, _Theme.getThemeClasses)((_this$context = this.context) === null || _this$context === void 0 ? void 0 : _this$context.theme), content_class, container_placement && `dnb-modal__content--${container_placement || 'right'}`),
296
+ className: (0, _classnames.default)(`dnb-modal__content dnb-modal__vertical-alignment--${vertical_alignment}`, (0, _componentHelper.isTrue)(fullscreen) ? 'dnb-modal__content--fullscreen' : fullscreen === 'auto' && 'dnb-modal__content--auto-fullscreen', (0, _Theme.getThemeClasses)((_this$context = this.context) === null || _this$context === void 0 ? void 0 : _this$context.theme), content_class, container_placement && `dnb-modal__content--${container_placement || 'right'}`),
297
297
  onMouseDown: this.onContentMouseDownHandler,
298
298
  onClick: this.onContentClickHandler
299
299
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ModalContent.js","names":["_react","_interopRequireDefault","require","_classnames","_keycode","_bodyScrollLock","_componentHelper","_ModalContext","_helpers","_helpers2","_Theme","_shared","_excluded","_excluded2","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","ModalContent","React","PureComponent","constructor","props","triggeredBy","triggeredByEvent","color","modalRoots","getListOfModalRoots","firstLevel","_this$props","_ii","InteractionInvalidation","setBypassSelector","root_id","bypass_invalidation_selectors","Boolean","activate","modal","_iiLocal","_scrollRef","current","document","addEventListener","onKeyDownHandler","animation_duration","timeoutDuration","parseFloat","clearTimeout","_androidFocusTimeout","setTimeout","_document$activeEleme","_document$activeEleme2","activeElement","tagName","scrollIntoView","e","event","stopPropagation","closeModalContent","_overlayClickRef","currentTarget","prevent_overlay_close","isTrue","ifIsLatest","keycode","mostCurrent","getModalRoot","preventDefault","setState","_contentRef","content_ref","createRef","scroll_ref","_id","id","componentDidMount","no_animation","addToIndex","removeScrollPossibility","setFocus","setAndroidFocusHelper","dispatchCustomElementEvent","process","env","NODE_ENV","lockBody","_lockTimeout","componentWillUnmount","_focusTimeout","removeLocks","removeFromIndex","_this$_ii","revert","revertScrollPossibility","warn","removeAndroidFocusHelper","state","removeEventListener","window","isAndroid","_androidFocusHelper","focus_selector","elem","_focusElement","_focusElement$focus","_focusElement2","_focusElement2$select","focusElement","querySelector","focus","select","noH1Elem","disableBodyScroll","enableBodyScroll","clearAllBodyScrollLocks","_ref","_event$persist","params","persist","close","render","_this$context","_this$props2","hide","title","labelled_by","close_title","dialog_title","hide_close_button","close_button_attributes","no_animation_on_mobile","fullscreen","container_placement","content_class","overlay_class","content_id","children","dialog_role","rest","contentId","makeUniqueId","useDialogRole","IS_MAC","IS_SAFARI","IS_IOS","role","contentParams","combineLabelledBy","combineDescribedBy","className","classnames","getThemeClasses","context","theme","onMouseDown","onContentMouseDownHandler","onClick","onContentClickHandler","content","createElement","Provider","setBackgroundColor","onCloseClickHandler","preventClick","contentRef","scrollRef","style","exports","Context"],"sources":["../../../../src/components/modal/ModalContent.tsx"],"sourcesContent":["/**\n * Web Modal Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport keycode from 'keycode'\nimport {\n disableBodyScroll,\n enableBodyScroll,\n clearAllBodyScrollLocks,\n} from './bodyScrollLock'\nimport {\n warn,\n isTrue,\n makeUniqueId,\n InteractionInvalidation,\n combineLabelledBy,\n combineDescribedBy,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport ModalContext from './ModalContext'\nimport { IS_IOS, IS_SAFARI, IS_MAC, isAndroid } from '../../shared/helpers'\nimport { ModalContentProps } from './types'\nimport {\n getListOfModalRoots,\n getModalRoot,\n addToIndex,\n removeFromIndex,\n} from './helpers'\nimport { getThemeClasses } from '../../shared/Theme'\nimport { Context } from '../../shared'\nimport { ContextProps } from '../../shared/Context'\n\ninterface ModalContentState {\n triggeredBy: string\n triggeredByEvent: Event\n color: string\n}\n\ndeclare global {\n interface Window {\n __modalStack: any[]\n }\n}\n\ninterface CSSPropertiesWithVars extends React.CSSProperties {\n '--modal-background-color': string\n}\n\nexport default class ModalContent extends React.PureComponent<\n ModalContentProps,\n ModalContentState\n> {\n state = { triggeredBy: null, triggeredByEvent: null, color: null }\n\n _contentRef: React.RefObject<HTMLElement>\n _scrollRef: React.RefObject<HTMLElement>\n _overlayClickRef: { current: null | HTMLElement }\n _id: string\n _lockTimeout: NodeJS.Timeout\n _focusTimeout: NodeJS.Timeout\n _androidFocusTimeout: NodeJS.Timeout\n _ii: InteractionInvalidation\n _iiLocal: InteractionInvalidation\n\n static contextType = Context\n\n context!: ContextProps\n\n constructor(props: ModalContentProps) {\n super(props)\n this._contentRef = this.props.content_ref || React.createRef()\n this._scrollRef = this.props.scroll_ref || React.createRef()\n this._overlayClickRef = React.createRef()\n\n // NB: The \"\"._id\" is used in the __modalStack as \"last._id\"\n this._id = props.id\n }\n\n componentDidMount() {\n const {\n id = null,\n no_animation = false,\n animation_duration = null,\n } = this.props\n\n const timeoutDuration: number =\n typeof animation_duration === 'string'\n ? parseFloat(animation_duration)\n : animation_duration\n\n // Add it to the index at first\n // we use it later with getListOfModalRoots\n addToIndex(this)\n\n // Because of nested modals/drawers, we run this regardless\n // has to be run at first – so the scrollbar gets removed\n this.removeScrollPossibility() // forces browser to re-paint\n\n this.setFocus()\n this.setAndroidFocusHelper()\n\n dispatchCustomElementEvent(this, 'on_open', {\n id,\n })\n\n if (isTrue(no_animation) || process.env.NODE_ENV === 'test') {\n this.lockBody() // forces browser to re-paint\n } else {\n this._lockTimeout = setTimeout(this.lockBody, timeoutDuration * 1.2) // a little over --modal-animation-duration\n }\n }\n\n componentWillUnmount() {\n clearTimeout(this._focusTimeout)\n clearTimeout(this._lockTimeout)\n this.removeLocks()\n }\n\n lockBody = () => {\n const modalRoots = getListOfModalRoots()\n const firstLevel = modalRoots[0]\n\n if (firstLevel === this) {\n this._ii = new InteractionInvalidation()\n this._ii.setBypassSelector(\n [\n // Bypass modal content\n '.dnb-modal__content *',\n `#dnb-modal-${this.props.root_id || 'root'}`,\n `#dnb-modal-${this.props.root_id || 'root'} *`,\n\n // TODO: Eventually in future, make it possible to bypass invalidation from outside\n // '.dnb-modal--bypass_invalidation',\n // '.dnb-modal--bypass_invalidation_deep *',\n\n ...(this.props?.bypass_invalidation_selectors || []),\n ].filter(Boolean)\n )\n this._ii.activate()\n } else {\n modalRoots.forEach((modal) => {\n if (\n modal !== this &&\n typeof modal._iiLocal === 'undefined' &&\n typeof modal._scrollRef !== 'undefined'\n ) {\n modal._iiLocal = new InteractionInvalidation()\n modal._iiLocal.activate(modal._scrollRef.current)\n }\n })\n }\n\n if (typeof document !== 'undefined') {\n /** To ensure, we have always a working keydown, we call it both on the element and document */\n document.addEventListener('keydown', this.onKeyDownHandler)\n }\n }\n\n removeLocks() {\n const modalRoots = getListOfModalRoots()\n const firstLevel = modalRoots[0]\n\n removeFromIndex(this)\n\n if (firstLevel === this) {\n this._ii?.revert()\n this.revertScrollPossibility()\n } else {\n try {\n const modal = modalRoots[modalRoots.length - 2]\n if (modal !== this && modal._iiLocal) {\n modal._iiLocal.revert()\n delete modal._iiLocal\n }\n } catch (e) {\n warn(e)\n }\n }\n\n this.removeAndroidFocusHelper()\n\n const id = this.props.id\n const { triggeredBy, triggeredByEvent } = this.state\n dispatchCustomElementEvent(this, 'on_close', {\n id,\n event: triggeredByEvent,\n triggeredBy: triggeredBy || 'unmount',\n })\n\n if (typeof document !== 'undefined') {\n document.removeEventListener('keydown', this.onKeyDownHandler)\n }\n }\n\n setAndroidFocusHelper() {\n if (typeof window !== 'undefined' && isAndroid()) {\n window.addEventListener('resize', this._androidFocusHelper)\n }\n }\n\n removeAndroidFocusHelper() {\n window.removeEventListener('resize', this._androidFocusHelper)\n clearTimeout(this._androidFocusTimeout)\n }\n\n _androidFocusHelper = () => {\n const { animation_duration = null } = this.props\n const timeoutDuration: number =\n typeof animation_duration === 'string'\n ? parseFloat(animation_duration)\n : animation_duration\n\n clearTimeout(this._androidFocusTimeout)\n this._androidFocusTimeout = setTimeout(() => {\n try {\n if (\n document.activeElement?.tagName == 'INPUT' ||\n document.activeElement?.tagName == 'TEXTAREA'\n ) {\n document.activeElement.scrollIntoView()\n }\n } catch (e) {\n //\n }\n }, timeoutDuration / 2) // Older Android needs a delay here\n }\n\n setFocus() {\n const {\n focus_selector = null,\n no_animation = null,\n animation_duration = null,\n } = this.props\n const elem = this._contentRef.current\n const timeoutDuration: number =\n typeof animation_duration === 'string'\n ? parseFloat(animation_duration)\n : animation_duration\n\n if (elem) {\n clearTimeout(this._focusTimeout)\n this._focusTimeout = setTimeout(\n () => {\n try {\n let focusElement = elem as HTMLInputElement\n\n // Try to use the \"first-focus\" method first\n if (typeof focus_selector === 'string') {\n focusElement = elem.querySelector(focus_selector)\n }\n\n focusElement?.focus?.()\n focusElement?.select?.()\n\n const noH1Elem = elem.querySelector('h1, h2, h3')\n if (noH1Elem?.tagName !== 'H1') {\n warn('A Dialog or Drawer needs a h1 as its first element!')\n }\n } catch (e) {\n warn(e)\n }\n },\n isTrue(no_animation) ? 0 : timeoutDuration || 0\n ) // with this delay, the user can press esc without an focus action first\n }\n }\n\n removeScrollPossibility() {\n if (this._scrollRef.current) {\n disableBodyScroll(this._scrollRef.current)\n }\n }\n\n revertScrollPossibility() {\n enableBodyScroll(this._scrollRef.current)\n clearAllBodyScrollLocks()\n }\n\n preventClick = (event) => {\n if (event) {\n event.stopPropagation()\n }\n }\n\n onCloseClickHandler = (event: React.SyntheticEvent) => {\n this.closeModalContent(event, { triggeredBy: 'button' })\n }\n\n onContentMouseDownHandler = (event: React.SyntheticEvent) => {\n this._overlayClickRef.current =\n event.target === event.currentTarget\n ? (event.target as HTMLElement)\n : null\n }\n\n onContentClickHandler = (event: React.SyntheticEvent) => {\n /**\n * Prevent false-positive Modal close,\n * when e.g. selecting text inside and moving the mouse outside,\n * we would still get this event fired. There we check if the current click,\n * has the same target as where the click got initiated.\n */\n if (this._overlayClickRef.current !== event.target) {\n return // stop here\n }\n this._overlayClickRef.current = null\n\n const { prevent_overlay_close } = this.props\n\n if (!isTrue(prevent_overlay_close)) {\n this.closeModalContent(event, {\n triggeredBy: 'overlay',\n ifIsLatest: false,\n })\n }\n }\n\n onKeyDownHandler = (event) => {\n switch (keycode(event)) {\n case 'esc': {\n const mostCurrent = getModalRoot(-1)\n\n if (mostCurrent === this) {\n event.preventDefault()\n this.closeModalContent(event, {\n triggeredBy: 'keyboard',\n })\n }\n\n break\n }\n }\n }\n\n closeModalContent(event, { triggeredBy, ...params }) {\n event?.persist?.()\n this.setState({ triggeredBy, triggeredByEvent: event }, () => {\n this.props.close(event, {\n triggeredBy,\n ...params,\n })\n })\n }\n\n setBackgroundColor = (color: string) => {\n this.setState({ color })\n }\n\n render() {\n const {\n hide,\n title,\n labelled_by,\n id: _id, // eslint-disable-line\n close_title = 'Lukk',\n dialog_title = 'Vindu',\n hide_close_button = false,\n close_button_attributes,\n no_animation = false,\n no_animation_on_mobile = false,\n fullscreen = 'auto',\n container_placement = 'right',\n close,\n content_class,\n overlay_class,\n content_id,\n children, // eslint-disable-line\n dialog_role = null,\n ...rest\n } = this.props\n const { color } = this.state\n\n const contentId = content_id || makeUniqueId('modal-')\n\n const useDialogRole = !(IS_MAC || IS_SAFARI || IS_IOS)\n let role = dialog_role || 'dialog'\n if (!useDialogRole && role === 'dialog') {\n role = 'region'\n }\n\n const contentParams = {\n /**\n * Do not use role=\"dialog\" on Safari\n *\n * VoiceOver has troubles with role=\"dialog\" and \"Modal in Modal\",\n * the result is, only the first Modal gets focus (set by Safari)\n *\n * Tests have shown: Both VoiceOver are working fine with the:\n * \"aria-labelledby\" and \"aria-describedby\" approach\n *\n */\n role,\n 'aria-modal': useDialogRole ? true : undefined,\n\n /**\n * ARIA references\n */\n 'aria-labelledby': combineLabelledBy(\n this.props,\n title ? contentId + '-title' : null,\n labelled_by\n ),\n 'aria-describedby': combineDescribedBy(\n this.props,\n contentId + '-content'\n ),\n\n /**\n * If no labelled_by and no title is given,\n * set a fallback \"dialog_title\"\n */\n 'aria-label': !title && !labelled_by ? dialog_title : undefined,\n\n className: classnames(\n 'dnb-modal__content',\n isTrue(fullscreen)\n ? 'dnb-modal__content--fullscreen'\n : fullscreen === 'auto' && 'dnb-modal__content--auto-fullscreen',\n container_placement\n ? `dnb-modal__content--${container_placement || 'right'}`\n : null,\n getThemeClasses(this.context?.theme),\n content_class\n ),\n onMouseDown: this.onContentMouseDownHandler,\n onClick: this.onContentClickHandler,\n }\n\n const content =\n typeof children === 'function'\n ? children({ ...rest, close })\n : children\n\n return (\n <ModalContext.Provider\n value={{\n id: this.props.id,\n title,\n hide_close_button,\n close_button_attributes,\n close_title,\n hide,\n setBackgroundColor: this.setBackgroundColor,\n onCloseClickHandler: this.onCloseClickHandler,\n preventClick: this.preventClick,\n onKeyDownHandler: this.onKeyDownHandler,\n contentRef: this._contentRef,\n scrollRef: this._scrollRef,\n contentId,\n close,\n }}\n >\n <div\n id={contentId}\n /** Sets the color on scroll overflow (at the bottom) */\n style={\n (color\n ? { '--modal-background-color': `var(--color-${color})` }\n : null) as CSSPropertiesWithVars\n }\n {...contentParams}\n >\n {content}\n </div>\n\n <span\n className={classnames(\n 'dnb-modal__overlay',\n hide && 'dnb-modal__overlay--hide',\n isTrue(no_animation) && 'dnb-modal__overlay--no-animation',\n isTrue(no_animation_on_mobile) &&\n 'dnb-modal__overlay--no-animation-on-mobile',\n overlay_class\n )}\n aria-hidden={true}\n />\n </ModalContext.Provider>\n )\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ModalContent.js","names":["_react","_interopRequireDefault","require","_classnames","_bodyScrollLock","_componentHelper","_ModalContext","_helpers","_helpers2","_Theme","_shared","_excluded","_excluded2","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","ModalContent","React","PureComponent","constructor","props","triggeredBy","triggeredByEvent","color","modalRoots","getListOfModalRoots","firstLevel","_this$props","_ii","InteractionInvalidation","setBypassSelector","root_id","bypass_invalidation_selectors","Boolean","activate","modal","_iiLocal","_scrollRef","current","document","addEventListener","onKeyDownHandler","animation_duration","timeoutDuration","parseFloat","clearTimeout","_androidFocusTimeout","setTimeout","_document$activeEleme","_document$activeEleme2","activeElement","tagName","scrollIntoView","e","event","stopPropagation","closeModalContent","_overlayClickRef","currentTarget","prevent_overlay_close","isTrue","ifIsLatest","keycode","mostCurrent","getModalRoot","preventDefault","setState","_contentRef","content_ref","createRef","scroll_ref","_id","id","componentDidMount","no_animation","addToIndex","removeScrollPossibility","setFocus","setAndroidFocusHelper","dispatchCustomElementEvent","process","env","NODE_ENV","lockBody","_lockTimeout","componentWillUnmount","_focusTimeout","removeLocks","removeFromIndex","_this$_ii","revert","revertScrollPossibility","warn","removeAndroidFocusHelper","state","removeEventListener","window","isAndroid","_androidFocusHelper","focus_selector","elem","_focusElement","_focusElement$focus","_focusElement2","_focusElement2$select","focusElement","querySelector","focus","select","noH1Elem","disableBodyScroll","enableBodyScroll","clearAllBodyScrollLocks","_ref","_event$persist","params","persist","close","render","_this$context","_this$props2","hide","title","labelled_by","close_title","dialog_title","hide_close_button","close_button_attributes","no_animation_on_mobile","fullscreen","container_placement","vertical_alignment","content_class","overlay_class","content_id","children","dialog_role","rest","contentId","makeUniqueId","useDialogRole","IS_MAC","IS_SAFARI","IS_IOS","role","contentParams","combineLabelledBy","combineDescribedBy","className","classnames","getThemeClasses","context","theme","onMouseDown","onContentMouseDownHandler","onClick","onContentClickHandler","content","createElement","Provider","setBackgroundColor","onCloseClickHandler","preventClick","contentRef","scrollRef","style","exports","Context"],"sources":["../../../../src/components/modal/ModalContent.tsx"],"sourcesContent":["/**\n * Web Modal Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport {\n disableBodyScroll,\n enableBodyScroll,\n clearAllBodyScrollLocks,\n} from './bodyScrollLock'\nimport {\n warn,\n isTrue,\n makeUniqueId,\n InteractionInvalidation,\n combineLabelledBy,\n combineDescribedBy,\n dispatchCustomElementEvent,\n keycode,\n} from '../../shared/component-helper'\nimport ModalContext from './ModalContext'\nimport { IS_IOS, IS_SAFARI, IS_MAC, isAndroid } from '../../shared/helpers'\nimport { ModalContentProps } from './types'\nimport {\n getListOfModalRoots,\n getModalRoot,\n addToIndex,\n removeFromIndex,\n} from './helpers'\nimport { getThemeClasses } from '../../shared/Theme'\nimport { Context } from '../../shared'\nimport { ContextProps } from '../../shared/Context'\n\ninterface ModalContentState {\n triggeredBy: string\n triggeredByEvent: Event\n color: string\n}\n\ndeclare global {\n interface Window {\n __modalStack: any[]\n }\n}\n\ninterface CSSPropertiesWithVars extends React.CSSProperties {\n '--modal-background-color': string\n}\n\nexport default class ModalContent extends React.PureComponent<\n ModalContentProps,\n ModalContentState\n> {\n state = { triggeredBy: null, triggeredByEvent: null, color: null }\n\n _contentRef: React.RefObject<HTMLElement>\n _scrollRef: React.RefObject<HTMLElement>\n _overlayClickRef: { current: null | HTMLElement }\n _id: string\n _lockTimeout: NodeJS.Timeout\n _focusTimeout: NodeJS.Timeout\n _androidFocusTimeout: NodeJS.Timeout\n _ii: InteractionInvalidation\n _iiLocal: InteractionInvalidation\n\n static contextType = Context\n\n context!: ContextProps\n\n constructor(props: ModalContentProps) {\n super(props)\n this._contentRef = this.props.content_ref || React.createRef()\n this._scrollRef = this.props.scroll_ref || React.createRef()\n this._overlayClickRef = React.createRef()\n\n // NB: The \"\"._id\" is used in the __modalStack as \"last._id\"\n this._id = props.id\n }\n\n componentDidMount() {\n const {\n id = null,\n no_animation = false,\n animation_duration = null,\n } = this.props\n\n const timeoutDuration: number =\n typeof animation_duration === 'string'\n ? parseFloat(animation_duration)\n : animation_duration\n\n // Add it to the index at first\n // we use it later with getListOfModalRoots\n addToIndex(this)\n\n // Because of nested modals/drawers, we run this regardless\n // has to be run at first – so the scrollbar gets removed\n this.removeScrollPossibility() // forces browser to re-paint\n\n this.setFocus()\n this.setAndroidFocusHelper()\n\n dispatchCustomElementEvent(this, 'on_open', {\n id,\n })\n\n if (isTrue(no_animation) || process.env.NODE_ENV === 'test') {\n this.lockBody() // forces browser to re-paint\n } else {\n this._lockTimeout = setTimeout(this.lockBody, timeoutDuration * 1.2) // a little over --modal-animation-duration\n }\n }\n\n componentWillUnmount() {\n clearTimeout(this._focusTimeout)\n clearTimeout(this._lockTimeout)\n this.removeLocks()\n }\n\n lockBody = () => {\n const modalRoots = getListOfModalRoots()\n const firstLevel = modalRoots[0]\n\n if (firstLevel === this) {\n this._ii = new InteractionInvalidation()\n this._ii.setBypassSelector(\n [\n // Bypass modal content\n '.dnb-modal__content *',\n `#dnb-modal-${this.props.root_id || 'root'}`,\n `#dnb-modal-${this.props.root_id || 'root'} *`,\n\n // TODO: Eventually in future, make it possible to bypass invalidation from outside\n // '.dnb-modal--bypass_invalidation',\n // '.dnb-modal--bypass_invalidation_deep *',\n\n ...(this.props?.bypass_invalidation_selectors || []),\n ].filter(Boolean)\n )\n this._ii.activate()\n } else {\n modalRoots.forEach((modal) => {\n if (\n modal !== this &&\n typeof modal._iiLocal === 'undefined' &&\n typeof modal._scrollRef !== 'undefined'\n ) {\n modal._iiLocal = new InteractionInvalidation()\n modal._iiLocal.activate(modal._scrollRef.current)\n }\n })\n }\n\n if (typeof document !== 'undefined') {\n /** To ensure, we have always a working keydown, we call it both on the element and document */\n document.addEventListener('keydown', this.onKeyDownHandler)\n }\n }\n\n removeLocks() {\n const modalRoots = getListOfModalRoots()\n const firstLevel = modalRoots[0]\n\n removeFromIndex(this)\n\n if (firstLevel === this) {\n this._ii?.revert()\n this.revertScrollPossibility()\n } else {\n try {\n const modal = modalRoots[modalRoots.length - 2]\n if (modal !== this && modal._iiLocal) {\n modal._iiLocal.revert()\n delete modal._iiLocal\n }\n } catch (e) {\n warn(e)\n }\n }\n\n this.removeAndroidFocusHelper()\n\n const id = this.props.id\n const { triggeredBy, triggeredByEvent } = this.state\n dispatchCustomElementEvent(this, 'on_close', {\n id,\n event: triggeredByEvent,\n triggeredBy: triggeredBy || 'unmount',\n })\n\n if (typeof document !== 'undefined') {\n document.removeEventListener('keydown', this.onKeyDownHandler)\n }\n }\n\n setAndroidFocusHelper() {\n if (typeof window !== 'undefined' && isAndroid()) {\n window.addEventListener('resize', this._androidFocusHelper)\n }\n }\n\n removeAndroidFocusHelper() {\n window.removeEventListener('resize', this._androidFocusHelper)\n clearTimeout(this._androidFocusTimeout)\n }\n\n _androidFocusHelper = () => {\n const { animation_duration = null } = this.props\n const timeoutDuration: number =\n typeof animation_duration === 'string'\n ? parseFloat(animation_duration)\n : animation_duration\n\n clearTimeout(this._androidFocusTimeout)\n this._androidFocusTimeout = setTimeout(() => {\n try {\n if (\n document.activeElement?.tagName == 'INPUT' ||\n document.activeElement?.tagName == 'TEXTAREA'\n ) {\n document.activeElement.scrollIntoView()\n }\n } catch (e) {\n //\n }\n }, timeoutDuration / 2) // Older Android needs a delay here\n }\n\n setFocus() {\n const {\n focus_selector = null,\n no_animation = null,\n animation_duration = null,\n } = this.props\n const elem = this._contentRef.current\n const timeoutDuration: number =\n typeof animation_duration === 'string'\n ? parseFloat(animation_duration)\n : animation_duration\n\n if (elem) {\n clearTimeout(this._focusTimeout)\n this._focusTimeout = setTimeout(\n () => {\n try {\n let focusElement = elem as HTMLInputElement\n\n // Try to use the \"first-focus\" method first\n if (typeof focus_selector === 'string') {\n focusElement = elem.querySelector(focus_selector)\n }\n\n focusElement?.focus?.()\n focusElement?.select?.()\n\n const noH1Elem = elem.querySelector('h1, h2, h3')\n if (noH1Elem?.tagName !== 'H1') {\n warn('A Dialog or Drawer needs a h1 as its first element!')\n }\n } catch (e) {\n warn(e)\n }\n },\n isTrue(no_animation) ? 0 : timeoutDuration || 0\n ) // with this delay, the user can press esc without an focus action first\n }\n }\n\n removeScrollPossibility() {\n if (this._scrollRef.current) {\n disableBodyScroll(this._scrollRef.current)\n }\n }\n\n revertScrollPossibility() {\n enableBodyScroll(this._scrollRef.current)\n clearAllBodyScrollLocks()\n }\n\n preventClick = (event) => {\n if (event) {\n event.stopPropagation()\n }\n }\n\n onCloseClickHandler = (event: React.SyntheticEvent) => {\n this.closeModalContent(event, { triggeredBy: 'button' })\n }\n\n onContentMouseDownHandler = (event: React.SyntheticEvent) => {\n this._overlayClickRef.current =\n event.target === event.currentTarget\n ? (event.target as HTMLElement)\n : null\n }\n\n onContentClickHandler = (event: React.SyntheticEvent) => {\n /**\n * Prevent false-positive Modal close,\n * when e.g. selecting text inside and moving the mouse outside,\n * we would still get this event fired. There we check if the current click,\n * has the same target as where the click got initiated.\n */\n if (this._overlayClickRef.current !== event.target) {\n return // stop here\n }\n this._overlayClickRef.current = null\n\n const { prevent_overlay_close } = this.props\n\n if (!isTrue(prevent_overlay_close)) {\n this.closeModalContent(event, {\n triggeredBy: 'overlay',\n ifIsLatest: false,\n })\n }\n }\n\n onKeyDownHandler = (event) => {\n switch (keycode(event)) {\n case 'esc': {\n const mostCurrent = getModalRoot(-1)\n\n if (mostCurrent === this) {\n event.preventDefault()\n this.closeModalContent(event, {\n triggeredBy: 'keyboard',\n })\n }\n\n break\n }\n }\n }\n\n closeModalContent(event, { triggeredBy, ...params }) {\n event?.persist?.()\n this.setState({ triggeredBy, triggeredByEvent: event }, () => {\n this.props.close(event, {\n triggeredBy,\n ...params,\n })\n })\n }\n\n setBackgroundColor = (color: string) => {\n this.setState({ color })\n }\n\n render() {\n const {\n hide,\n title,\n labelled_by,\n id: _id, // eslint-disable-line\n close_title = 'Lukk',\n dialog_title = 'Vindu',\n hide_close_button = false,\n close_button_attributes,\n no_animation = false,\n no_animation_on_mobile = false,\n fullscreen = 'auto',\n container_placement = 'right',\n vertical_alignment = 'center',\n close,\n content_class,\n overlay_class,\n content_id,\n children, // eslint-disable-line\n dialog_role = null,\n ...rest\n } = this.props\n const { color } = this.state\n\n const contentId = content_id || makeUniqueId('modal-')\n\n const useDialogRole = !(IS_MAC || IS_SAFARI || IS_IOS)\n let role = dialog_role || 'dialog'\n if (!useDialogRole && role === 'dialog') {\n role = 'region'\n }\n\n const contentParams = {\n /**\n * Do not use role=\"dialog\" on Safari\n *\n * VoiceOver has troubles with role=\"dialog\" and \"Modal in Modal\",\n * the result is, only the first Modal gets focus (set by Safari)\n *\n * Tests have shown: Both VoiceOver are working fine with the:\n * \"aria-labelledby\" and \"aria-describedby\" approach\n *\n */\n role,\n 'aria-modal': useDialogRole ? true : undefined,\n\n /**\n * ARIA references\n */\n 'aria-labelledby': combineLabelledBy(\n this.props,\n title ? contentId + '-title' : null,\n labelled_by\n ),\n 'aria-describedby': combineDescribedBy(\n this.props,\n contentId + '-content'\n ),\n\n /**\n * If no labelled_by and no title is given,\n * set a fallback \"dialog_title\"\n */\n 'aria-label': !title && !labelled_by ? dialog_title : undefined,\n\n className: classnames(\n 'dnb-modal__content',\n isTrue(fullscreen)\n ? 'dnb-modal__content--fullscreen'\n : fullscreen === 'auto' && 'dnb-modal__content--auto-fullscreen',\n container_placement\n ? `dnb-modal__content--${container_placement || 'right'}`\n : null,\n `dnb-modal__vertical-alignment--${vertical_alignment}`,\n getThemeClasses(this.context?.theme),\n content_class\n ),\n onMouseDown: this.onContentMouseDownHandler,\n onClick: this.onContentClickHandler,\n }\n\n const content =\n typeof children === 'function'\n ? children({ ...rest, close })\n : children\n\n return (\n <ModalContext.Provider\n value={{\n id: this.props.id,\n title,\n hide_close_button,\n close_button_attributes,\n close_title,\n hide,\n setBackgroundColor: this.setBackgroundColor,\n onCloseClickHandler: this.onCloseClickHandler,\n preventClick: this.preventClick,\n onKeyDownHandler: this.onKeyDownHandler,\n contentRef: this._contentRef,\n scrollRef: this._scrollRef,\n contentId,\n close,\n }}\n >\n <div\n id={contentId}\n /** Sets the color on scroll overflow (at the bottom) */\n style={\n (color\n ? { '--modal-background-color': `var(--color-${color})` }\n : null) as CSSPropertiesWithVars\n }\n {...contentParams}\n >\n {content}\n </div>\n\n <span\n className={classnames(\n 'dnb-modal__overlay',\n hide && 'dnb-modal__overlay--hide',\n isTrue(no_animation) && 'dnb-modal__overlay--no-animation',\n isTrue(no_animation_on_mobile) &&\n 'dnb-modal__overlay--no-animation-on-mobile',\n overlay_class\n )}\n aria-hidden={true}\n />\n </ModalContext.Provider>\n )\n }\n}\n"],"mappings":"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"}
@@ -150,6 +150,10 @@ html[data-dnb-modal-active] {
150
150
  align-items: flex-end;
151
151
  justify-content: flex-start;
152
152
  }
153
+ .dnb-modal__vertical-alignment--top {
154
+ padding-top: 5vh;
155
+ align-items: flex-start;
156
+ }
153
157
  .dnb-modal__overlay {
154
158
  position: fixed;
155
159
  z-index: var(--modal-z-index);
@@ -1 +1 @@
1
- @keyframes show-modal{0%{opacity:.1;transform:translate3d(0,-1rem,0)}to{opacity:1;transform:translateZ(0)}}@keyframes hide-modal{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,1rem,0)}}@keyframes show-drawer{to{opacity:1;transform:translateZ(0)}}@keyframes hide-drawer-left{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(-20rem,0,0)}}@keyframes hide-drawer-top{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20rem,0)}}@keyframes hide-drawer-bottom{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,20rem,0)}}@keyframes hide-drawer-right{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(20rem,0,0)}}@keyframes show-modal-overlay{0%{opacity:0}to{opacity:1}}@keyframes hide-modal-overlay{0%{opacity:1}to{opacity:0}}:root{--modal-z-index:3000;--modal-animation-duration:300ms}html[data-dnb-modal-active]{user-select:none;-webkit-user-select:none}#dnb-modal-root{left:0;position:absolute;top:0}.dnb-modal__content{align-items:center;display:flex;height:100%;justify-content:center;left:0;max-width:100vw;position:fixed;top:0;user-select:none;-webkit-user-select:none;width:100%;z-index:calc(var(--modal-z-index) + 1)}@media screen and (max-width:40em){.dnb-modal__content--auto-fullscreen{height:auto}}.dnb-modal__content--fullscreen{align-items:flex-start;justify-content:flex-start}.dnb-modal__content--fullscreen .dnb-modal__content__content{height:auto}.dnb-modal__content--left,.dnb-modal__content--top{align-items:flex-start;justify-content:flex-start}.dnb-modal__content--right{align-items:flex-start;justify-content:flex-end}.dnb-modal__content--bottom{align-items:flex-end;justify-content:flex-start}.dnb-modal__overlay{height:100%;left:0;position:fixed;top:0;width:100%;z-index:var(--modal-z-index)}.dnb-modal-root__inner .dnb-modal__overlay{animation:hide-modal-overlay var(--modal-animation-duration) ease-out forwards}.dnb-modal-root__inner:last-of-type .dnb-modal__overlay{animation:show-modal-overlay var(--modal-animation-duration) ease-out}.dnb-modal-root__inner:last-of-type .dnb-modal__overlay--hide{animation:hide-modal-overlay var(--modal-animation-duration) ease-out forwards}.dnb-modal__overlay--no-animation,html[data-visual-test] .dnb-modal__overlay{animation-delay:0ms!important;animation-duration:0ms!important}.dnb-modal-root__inner{position:relative;z-index:calc(var(--modal-z-index) + 1)}.dnb-modal-root__inner~.dnb-modal-root__inner{z-index:calc(var(--modal-z-index) + 2)}.dnb-modal-root__inner~.dnb-modal-root__inner~.dnb-modal-root__inner{z-index:calc(var(--modal-z-index) + 3)}.dnb-modal-root__inner~.dnb-modal-root__inner~.dnb-modal-root__inner~.dnb-modal-root__inner{z-index:calc(var(--modal-z-index) + 4)}.dnb-modal__close-button{z-index:calc(var(--modal-z-index) + 1)}.dnb-modal__header__bar.dnb-section{display:flex;flex-direction:row;justify-content:space-between}[data-visual-test].hide-page-content #___gatsby{opacity:0}
1
+ @keyframes show-modal{0%{opacity:.1;transform:translate3d(0,-1rem,0)}to{opacity:1;transform:translateZ(0)}}@keyframes hide-modal{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,1rem,0)}}@keyframes show-drawer{to{opacity:1;transform:translateZ(0)}}@keyframes hide-drawer-left{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(-20rem,0,0)}}@keyframes hide-drawer-top{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20rem,0)}}@keyframes hide-drawer-bottom{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,20rem,0)}}@keyframes hide-drawer-right{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(20rem,0,0)}}@keyframes show-modal-overlay{0%{opacity:0}to{opacity:1}}@keyframes hide-modal-overlay{0%{opacity:1}to{opacity:0}}:root{--modal-z-index:3000;--modal-animation-duration:300ms}html[data-dnb-modal-active]{user-select:none;-webkit-user-select:none}#dnb-modal-root{left:0;position:absolute;top:0}.dnb-modal__content{align-items:center;display:flex;height:100%;justify-content:center;left:0;max-width:100vw;position:fixed;top:0;user-select:none;-webkit-user-select:none;width:100%;z-index:calc(var(--modal-z-index) + 1)}@media screen and (max-width:40em){.dnb-modal__content--auto-fullscreen{height:auto}}.dnb-modal__content--fullscreen{align-items:flex-start;justify-content:flex-start}.dnb-modal__content--fullscreen .dnb-modal__content__content{height:auto}.dnb-modal__content--left,.dnb-modal__content--top{align-items:flex-start;justify-content:flex-start}.dnb-modal__content--right{align-items:flex-start;justify-content:flex-end}.dnb-modal__content--bottom{align-items:flex-end;justify-content:flex-start}.dnb-modal__vertical-alignment--top{align-items:flex-start;padding-top:5vh}.dnb-modal__overlay{height:100%;left:0;position:fixed;top:0;width:100%;z-index:var(--modal-z-index)}.dnb-modal-root__inner .dnb-modal__overlay{animation:hide-modal-overlay var(--modal-animation-duration) ease-out forwards}.dnb-modal-root__inner:last-of-type .dnb-modal__overlay{animation:show-modal-overlay var(--modal-animation-duration) ease-out}.dnb-modal-root__inner:last-of-type .dnb-modal__overlay--hide{animation:hide-modal-overlay var(--modal-animation-duration) ease-out forwards}.dnb-modal__overlay--no-animation,html[data-visual-test] .dnb-modal__overlay{animation-delay:0ms!important;animation-duration:0ms!important}.dnb-modal-root__inner{position:relative;z-index:calc(var(--modal-z-index) + 1)}.dnb-modal-root__inner~.dnb-modal-root__inner{z-index:calc(var(--modal-z-index) + 2)}.dnb-modal-root__inner~.dnb-modal-root__inner~.dnb-modal-root__inner{z-index:calc(var(--modal-z-index) + 3)}.dnb-modal-root__inner~.dnb-modal-root__inner~.dnb-modal-root__inner~.dnb-modal-root__inner{z-index:calc(var(--modal-z-index) + 4)}.dnb-modal__close-button{z-index:calc(var(--modal-z-index) + 1)}.dnb-modal__header__bar.dnb-section{display:flex;flex-direction:row;justify-content:space-between}[data-visual-test].hide-page-content #___gatsby{opacity:0}
@@ -74,6 +74,11 @@ html[data-dnb-modal-active] {
74
74
  }
75
75
  }
76
76
 
77
+ &__vertical-alignment--top {
78
+ padding-top: 5vh;
79
+ align-items: flex-start;
80
+ }
81
+
77
82
  &__overlay {
78
83
  position: fixed;
79
84
  z-index: var(--modal-z-index);
@@ -195,6 +195,10 @@ export interface ModalContentProps {
195
195
  * For `drawer` mode only. Defines the placement on what side the Drawer should be opened. Can be set to `left`, `right`, `top` and `bottom`. Defaults to `right`.
196
196
  */
197
197
  container_placement?: 'left' | 'right' | 'top' | 'bottom';
198
+ /**
199
+ * Define the vertical alignment of the container. Can be set to `top` or `center`. Defaults to `center`.
200
+ */
201
+ vertical_alignment?: 'top' | 'center';
198
202
  /**
199
203
  * Give the content wrapper a custom class name (maps to `dnb-modal__content`).
200
204
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/modal/types.ts"],"sourcesContent":["import * as React from 'react'\nimport type { CloseButtonProps } from './parts/CloseButton'\nimport type { ButtonProps } from '../button/Button'\nimport type { ModalRootProps } from './ModalRoot'\n\nexport type ReactChildType = React.ReactNode | ((...args: any[]) => any)\n\nexport type ModalFullscreen = 'auto' | boolean\nexport type ModalAlignContent = 'left' | 'center' | 'centered' | 'right'\nexport type ModalContainerPlacement = 'left' | 'right' | 'top' | 'bottom'\nexport type ModalOpenState = 'opened' | 'closed' | boolean\nexport type ModalTriggerVariant =\n | 'primary'\n | 'secondary'\n | 'tertiary'\n | 'signal'\nexport type ModalTriggerIconPosition = 'left' | 'right'\nexport type ModalContentMinWidth = string | number\nexport type ModalContentMaxWidth = string | number\n\nexport interface ModalProps extends ModalRootProps {\n /**\n * The id used internal in the modal/drawer root element. Defaults to `root`, so the element id will be `dnb-modal-root`.\n */\n id?: string\n\n /**\n * Will disable the trigger button.\n */\n disabled?: boolean\n\n /**\n * Forces the modal/drawer to delay the opening. The delay is given in `ms`.\n */\n open_delay?: string | number\n\n /**\n * If set to `true` (boolean or string), then the user can&#39;t close the modal/drawer.\n */\n prevent_close?: boolean\n\n /**\n * Duration of animation open/close in ms. Defaults to 300ms.\n */\n animation_duration?: string | number\n\n /**\n * If set to `true`, no open/close animation will be shown. Defaults to false.\n */\n no_animation?: boolean\n\n /**\n * Use this prop to control the open/close state by setting either: `opened` / `closed` or `true` / `false`.\n */\n open_state?: ModalOpenState\n\n /**\n * The content which will appear when triggering the modal/drawer.\n */\n children?: ReactChildType\n\n /**\n * Omits default showing trigger button\n */\n omit_trigger_button?: boolean\n\n /**\n * This event gets triggered once the modal shows up. Returns the modal id: `{ id }`.\n */\n on_open?: ({ id }: { id?: string }) => void\n\n /**\n * This event gets triggered once the modal gets closed. Returns the modal id: `{ id, event, triggeredBy }`.\n */\n on_close?: ({\n id,\n event,\n triggeredBy,\n }: {\n id?: string\n event?: Event\n triggeredBy?: string\n }) => void\n\n /**\n * This event gets triggered once the user tries to close the modal, but `prevent_close` is set to \"true\". Returns a callback `close` you can call to trigger the close mechanism. More details below. Returns the modal id: `{ id, event, close: Method, triggeredBy }`\n */\n on_close_prevent?: ({\n id,\n event,\n triggeredBy,\n close,\n }: {\n id?: string\n event?: Event\n triggeredBy?: string\n close?: (...args: any[]) => any\n }) => void\n\n /**\n * Set a function to call the callback function, once the modal/drawer should open: `open_modal={(open) => open()}`\n */\n open_modal?: (open?: (e: Event) => void, elem?: any) => () => void | void\n\n /**\n * Set a function to call the callback function, once the modal/drawer should close: `close_modal={(close) => close()}`\n */\n close_modal?: (\n close?: (...args: any[]) => void,\n elem?: any\n ) => () => void | void\n\n /**\n * Provide a custom trigger component. Like trigger={<Anchor href=\"/\" />}. It will set the focus on it when the modal/drawer gets closed.\n */\n trigger?: ReactChildType\n\n /**\n * Send along custom HTML attributes or properties to the trigger button.\n */\n trigger_attributes?: TriggerAttributes\n\n /**\n * The content which will appear when triggering the modal/drawer.\n */\n modal_content?: ReactChildType\n\n /**\n * If true, the drawer will not open in a new DOM but directly in current DOM. Defaults to `false`.\n */\n direct_dom_return?: boolean\n\n /**\n * To get the inner content Element, pass in your own React ref\n */\n content_ref?: React.RefObject<HTMLElement>\n\n /**\n * To get the scroll Element, pass in your own React ref\n */\n scroll_ref?: React.RefObject<HTMLElement>\n}\n\nexport interface ModalContentProps {\n /**\n * The content which will appear when triggering the modal/drawer.\n */\n modal_content?: ReactChildType\n\n /**\n * The content which will appear in the bar, above the header, and side-by-side the close button.\n */\n bar_content?: ReactChildType\n\n /**\n * The content which will appear in the header of the modal/drawer the modal/drawer.\n */\n header_content?: ReactChildType\n hide?: boolean\n\n /**\n * The id used internal for the trigger button and modal component.\n */\n id?: string\n\n /**\n * The id used internal in the modal/drawer root element. Defaults to `root`, so the element id will be `dnb-modal-root`.\n */\n root_id?: string\n\n /**\n * The ID of the trigger component, describing the modal/drawer content. Defaults to the internal `trigger`, so make sure you define the trigger title.\n */\n labelled_by?: string\n\n /**\n * The Modal handles the first focus – automatically. How ever, you can defined a custom focus selector the will be used instead `focus_selector=\".css-selector\"`.\n */\n focus_selector?: string\n\n /**\n * Defines an unique identifier to a modal. Use it in case you have to refer in some way to the modal/drawer content wrapper.\n */\n content_id?: string\n\n /**\n * The modal/drawer title. Displays on the very top of the content.\n */\n title?: React.ReactNode\n\n /**\n * The aria label of the dialog when no labelled_by and no title is given. Defaults to `Vindu`.\n */\n dialog_title?: string\n\n /**\n * If boolean, the close button will not be shown.\n */\n hide_close_button?: boolean\n\n /**\n * Define any valid Eufemia Button property or HTML attribute inside an object.\n */\n close_button_attributes?: CloseButtonProps\n\n /**\n * If set to `false` then the modal/drawer content will be shown without any spacing. Defaults to `true`.\n */\n spacing?: boolean\n\n /**\n * By default the modal/drawer content gets added the core style class `dnb-core-style`. Use `false` to disable this behavior.\n */\n prevent_core_style?: boolean\n animation_duration?: string | number\n\n /**\n * Disable clicking the background overlay to close the modal\n */\n prevent_overlay_close?: boolean\n\n /**\n * If set to `true`, no open/close animation will be shown. Defaults to false.\n */\n no_animation?: boolean\n\n /**\n * Same as `no_animation`, but gets triggered only if the viewport width is less than `40em`. Defaults to false.\n */\n no_animation_on_mobile?: boolean\n\n /**\n * The minimum Modal content width, defined by a CSS width value like `50vw` (50% of the viewport). Be careful on using fixed `min_width` so you don&#39;t break responsiveness. Defaults to `30rem` (average width is set to `60vw`).\n */\n min_width?: ModalContentMinWidth\n\n /**\n * The maximum Modal content width, defined by a CSS width value like `20rem`. Defaults to `60rem` (average width is set to `60vw`).\n */\n max_width?: ModalContentMaxWidth\n\n /**\n * If set to `true` then the modal/drawer content will be shown as fullscreen, without showing the original content behind. Can be set to `false` to omit the auto fullscreen. Defaults to `auto`.\n */\n fullscreen?: ModalFullscreen\n\n /**\n * Define the inner horizontal alignment of the content. Can be set to `left`, `center`, `right` and `centered`. If `centered`, then the content will also be centered vertically. Defaults to `left`.\n */\n align_content?: 'right' | 'left' | 'centered' | 'center'\n\n /**\n * For `drawer` mode only. Defines the placement on what side the Drawer should be opened. Can be set to `left`, `right`, `top` and `bottom`. Defaults to `right`.\n */\n container_placement?: 'left' | 'right' | 'top' | 'bottom'\n\n /**\n * Give the content wrapper a custom class name (maps to `dnb-modal__content`).\n */\n content_class?: string\n\n /**\n * @deprecated – use className instead. Will be removed in v11.\n */\n class?: string\n\n /**\n * Give the page overlay a custom class name (maps to `dnb-modal__overlay`).\n */\n overlay_class?: string\n\n /**\n * Define an array with HTML class selectors (`['.element-selector']`) which should not get invalidated when the modal opens/closes. Use this in order to let some parts of your site still be accessible by screen readers.\n */\n bypass_invalidation_selectors?: Array<string>\n\n /**\n * For internal usage\n * Will close the modal\n */\n close?: (...args: any[]) => any\n\n /**\n * Give the inner Dialog or Drawer component a className (only works with mode)\n */\n className?: string\n\n /**\n * The content which will appear when triggering the modal/drawer.\n */\n children?: ReactChildType\n\n /**\n * The displayed text for the 'close' button. Defaults to `Lukk`.\n */\n close_title?: string\n\n /**\n * Internal\n */\n dialog_role?: 'dialog' | 'alertdialog' | 'region'\n content_ref?: React.RefObject<HTMLElement>\n scroll_ref?: React.RefObject<HTMLElement>\n}\n\nexport type TriggerAttributes = ButtonProps\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/modal/types.ts"],"sourcesContent":["import * as React from 'react'\nimport type { CloseButtonProps } from './parts/CloseButton'\nimport type { ButtonProps } from '../button/Button'\nimport type { ModalRootProps } from './ModalRoot'\n\nexport type ReactChildType = React.ReactNode | ((...args: any[]) => any)\n\nexport type ModalFullscreen = 'auto' | boolean\nexport type ModalAlignContent = 'left' | 'center' | 'centered' | 'right'\nexport type ModalContainerPlacement = 'left' | 'right' | 'top' | 'bottom'\nexport type ModalOpenState = 'opened' | 'closed' | boolean\nexport type ModalTriggerVariant =\n | 'primary'\n | 'secondary'\n | 'tertiary'\n | 'signal'\nexport type ModalTriggerIconPosition = 'left' | 'right'\nexport type ModalContentMinWidth = string | number\nexport type ModalContentMaxWidth = string | number\n\nexport interface ModalProps extends ModalRootProps {\n /**\n * The id used internal in the modal/drawer root element. Defaults to `root`, so the element id will be `dnb-modal-root`.\n */\n id?: string\n\n /**\n * Will disable the trigger button.\n */\n disabled?: boolean\n\n /**\n * Forces the modal/drawer to delay the opening. The delay is given in `ms`.\n */\n open_delay?: string | number\n\n /**\n * If set to `true` (boolean or string), then the user can&#39;t close the modal/drawer.\n */\n prevent_close?: boolean\n\n /**\n * Duration of animation open/close in ms. Defaults to 300ms.\n */\n animation_duration?: string | number\n\n /**\n * If set to `true`, no open/close animation will be shown. Defaults to false.\n */\n no_animation?: boolean\n\n /**\n * Use this prop to control the open/close state by setting either: `opened` / `closed` or `true` / `false`.\n */\n open_state?: ModalOpenState\n\n /**\n * The content which will appear when triggering the modal/drawer.\n */\n children?: ReactChildType\n\n /**\n * Omits default showing trigger button\n */\n omit_trigger_button?: boolean\n\n /**\n * This event gets triggered once the modal shows up. Returns the modal id: `{ id }`.\n */\n on_open?: ({ id }: { id?: string }) => void\n\n /**\n * This event gets triggered once the modal gets closed. Returns the modal id: `{ id, event, triggeredBy }`.\n */\n on_close?: ({\n id,\n event,\n triggeredBy,\n }: {\n id?: string\n event?: Event\n triggeredBy?: string\n }) => void\n\n /**\n * This event gets triggered once the user tries to close the modal, but `prevent_close` is set to \"true\". Returns a callback `close` you can call to trigger the close mechanism. More details below. Returns the modal id: `{ id, event, close: Method, triggeredBy }`\n */\n on_close_prevent?: ({\n id,\n event,\n triggeredBy,\n close,\n }: {\n id?: string\n event?: Event\n triggeredBy?: string\n close?: (...args: any[]) => any\n }) => void\n\n /**\n * Set a function to call the callback function, once the modal/drawer should open: `open_modal={(open) => open()}`\n */\n open_modal?: (open?: (e: Event) => void, elem?: any) => () => void | void\n\n /**\n * Set a function to call the callback function, once the modal/drawer should close: `close_modal={(close) => close()}`\n */\n close_modal?: (\n close?: (...args: any[]) => void,\n elem?: any\n ) => () => void | void\n\n /**\n * Provide a custom trigger component. Like trigger={<Anchor href=\"/\" />}. It will set the focus on it when the modal/drawer gets closed.\n */\n trigger?: ReactChildType\n\n /**\n * Send along custom HTML attributes or properties to the trigger button.\n */\n trigger_attributes?: TriggerAttributes\n\n /**\n * The content which will appear when triggering the modal/drawer.\n */\n modal_content?: ReactChildType\n\n /**\n * If true, the drawer will not open in a new DOM but directly in current DOM. Defaults to `false`.\n */\n direct_dom_return?: boolean\n\n /**\n * To get the inner content Element, pass in your own React ref\n */\n content_ref?: React.RefObject<HTMLElement>\n\n /**\n * To get the scroll Element, pass in your own React ref\n */\n scroll_ref?: React.RefObject<HTMLElement>\n}\n\nexport interface ModalContentProps {\n /**\n * The content which will appear when triggering the modal/drawer.\n */\n modal_content?: ReactChildType\n\n /**\n * The content which will appear in the bar, above the header, and side-by-side the close button.\n */\n bar_content?: ReactChildType\n\n /**\n * The content which will appear in the header of the modal/drawer the modal/drawer.\n */\n header_content?: ReactChildType\n hide?: boolean\n\n /**\n * The id used internal for the trigger button and modal component.\n */\n id?: string\n\n /**\n * The id used internal in the modal/drawer root element. Defaults to `root`, so the element id will be `dnb-modal-root`.\n */\n root_id?: string\n\n /**\n * The ID of the trigger component, describing the modal/drawer content. Defaults to the internal `trigger`, so make sure you define the trigger title.\n */\n labelled_by?: string\n\n /**\n * The Modal handles the first focus – automatically. How ever, you can defined a custom focus selector the will be used instead `focus_selector=\".css-selector\"`.\n */\n focus_selector?: string\n\n /**\n * Defines an unique identifier to a modal. Use it in case you have to refer in some way to the modal/drawer content wrapper.\n */\n content_id?: string\n\n /**\n * The modal/drawer title. Displays on the very top of the content.\n */\n title?: React.ReactNode\n\n /**\n * The aria label of the dialog when no labelled_by and no title is given. Defaults to `Vindu`.\n */\n dialog_title?: string\n\n /**\n * If boolean, the close button will not be shown.\n */\n hide_close_button?: boolean\n\n /**\n * Define any valid Eufemia Button property or HTML attribute inside an object.\n */\n close_button_attributes?: CloseButtonProps\n\n /**\n * If set to `false` then the modal/drawer content will be shown without any spacing. Defaults to `true`.\n */\n spacing?: boolean\n\n /**\n * By default the modal/drawer content gets added the core style class `dnb-core-style`. Use `false` to disable this behavior.\n */\n prevent_core_style?: boolean\n animation_duration?: string | number\n\n /**\n * Disable clicking the background overlay to close the modal\n */\n prevent_overlay_close?: boolean\n\n /**\n * If set to `true`, no open/close animation will be shown. Defaults to false.\n */\n no_animation?: boolean\n\n /**\n * Same as `no_animation`, but gets triggered only if the viewport width is less than `40em`. Defaults to false.\n */\n no_animation_on_mobile?: boolean\n\n /**\n * The minimum Modal content width, defined by a CSS width value like `50vw` (50% of the viewport). Be careful on using fixed `min_width` so you don&#39;t break responsiveness. Defaults to `30rem` (average width is set to `60vw`).\n */\n min_width?: ModalContentMinWidth\n\n /**\n * The maximum Modal content width, defined by a CSS width value like `20rem`. Defaults to `60rem` (average width is set to `60vw`).\n */\n max_width?: ModalContentMaxWidth\n\n /**\n * If set to `true` then the modal/drawer content will be shown as fullscreen, without showing the original content behind. Can be set to `false` to omit the auto fullscreen. Defaults to `auto`.\n */\n fullscreen?: ModalFullscreen\n\n /**\n * Define the inner horizontal alignment of the content. Can be set to `left`, `center`, `right` and `centered`. If `centered`, then the content will also be centered vertically. Defaults to `left`.\n */\n align_content?: 'right' | 'left' | 'centered' | 'center'\n\n /**\n * For `drawer` mode only. Defines the placement on what side the Drawer should be opened. Can be set to `left`, `right`, `top` and `bottom`. Defaults to `right`.\n */\n container_placement?: 'left' | 'right' | 'top' | 'bottom'\n\n /**\n * Define the vertical alignment of the container. Can be set to `top` or `center`. Defaults to `center`.\n */\n vertical_alignment?: 'top' | 'center'\n\n /**\n * Give the content wrapper a custom class name (maps to `dnb-modal__content`).\n */\n content_class?: string\n\n /**\n * @deprecated – use className instead. Will be removed in v11.\n */\n class?: string\n\n /**\n * Give the page overlay a custom class name (maps to `dnb-modal__overlay`).\n */\n overlay_class?: string\n\n /**\n * Define an array with HTML class selectors (`['.element-selector']`) which should not get invalidated when the modal opens/closes. Use this in order to let some parts of your site still be accessible by screen readers.\n */\n bypass_invalidation_selectors?: Array<string>\n\n /**\n * For internal usage\n * Will close the modal\n */\n close?: (...args: any[]) => any\n\n /**\n * Give the inner Dialog or Drawer component a className (only works with mode)\n */\n className?: string\n\n /**\n * The content which will appear when triggering the modal/drawer.\n */\n children?: ReactChildType\n\n /**\n * The displayed text for the 'close' button. Defaults to `Lukk`.\n */\n close_title?: string\n\n /**\n * Internal\n */\n dialog_role?: 'dialog' | 'alertdialog' | 'region'\n content_ref?: React.RefObject<HTMLElement>\n scroll_ref?: React.RefObject<HTMLElement>\n}\n\nexport type TriggerAttributes = ButtonProps\n"],"mappings":""}
@@ -140,12 +140,12 @@ export const countDecimals: (
140
140
  type copy = (content: string, HTMLElement) => void;
141
141
 
142
142
  /**
143
- * Only for internal use as of now. So its not documented.
143
+ * Only for internal use as of now. So it's not documented.
144
144
  */
145
145
  export const useCopyWithNotice: () => { copy: copy };
146
146
 
147
147
  /**
148
- * Only for internal use as of now. So its not documented.
148
+ * Only for internal use as of now. So it's not documented.
149
149
  *
150
150
  * So iOS v13 can select something on the first try, we run this add range trick.
151
151
  * NB: This hack may be removed in future iOS versions.
@@ -327,7 +327,7 @@ const prepareMinus = (display, locale) => {
327
327
  return display;
328
328
  };
329
329
  function alignCurrencySymbol(output, currencyDisplay) {
330
- if (currencyDisplay === 'name') {
330
+ if (typeof output === 'string' && currencyDisplay === 'name') {
331
331
  output = output.replace(/(nor[^\s]+?)\s(\w+)/i, '$2');
332
332
  }
333
333
  return output;