@dnb/eufemia 10.40.1 → 10.41.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 (249) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/cjs/components/upload/Upload.d.ts +1 -0
  3. package/cjs/components/upload/Upload.js.map +1 -1
  4. package/cjs/components/upload/UploadDocs.d.ts +3 -0
  5. package/cjs/components/upload/UploadDocs.js +58 -0
  6. package/cjs/components/upload/UploadDocs.js.map +1 -0
  7. package/cjs/components/upload/UploadDropzone.js +22 -19
  8. package/cjs/components/upload/UploadDropzone.js.map +1 -1
  9. package/cjs/components/upload/UploadInfo.js +5 -4
  10. package/cjs/components/upload/UploadInfo.js.map +1 -1
  11. package/cjs/components/upload/UploadVerify.d.ts +1 -0
  12. package/cjs/components/upload/UploadVerify.js +2 -0
  13. package/cjs/components/upload/UploadVerify.js.map +1 -1
  14. package/cjs/components/upload/types.d.ts +2 -1
  15. package/cjs/components/upload/types.js.map +1 -1
  16. package/cjs/components/upload/useUpload.js +9 -8
  17. package/cjs/components/upload/useUpload.js.map +1 -1
  18. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +3 -3
  19. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  20. package/cjs/extensions/forms/Field/Composition/Composition.d.ts +2 -2
  21. package/cjs/extensions/forms/Field/Composition/Composition.js.map +1 -1
  22. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +2 -2
  23. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +2 -2
  24. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  25. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +4 -4
  26. package/cjs/extensions/forms/Field/Selection/Selection.js +3 -3
  27. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  28. package/cjs/extensions/forms/Field/Slider/Slider.js +2 -2
  29. package/cjs/extensions/forms/Field/Slider/Slider.js.map +1 -1
  30. package/cjs/extensions/forms/Field/String/String.js +2 -2
  31. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  32. package/cjs/extensions/forms/Field/Toggle/Toggle.js +6 -6
  33. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  34. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js +5 -0
  35. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
  36. package/cjs/extensions/forms/Field/Upload/Upload.d.ts +12 -0
  37. package/cjs/extensions/forms/Field/Upload/Upload.js +132 -0
  38. package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -0
  39. package/cjs/extensions/forms/Field/Upload/UploadDocs.d.ts +3 -0
  40. package/cjs/extensions/forms/Field/Upload/UploadDocs.js +20 -0
  41. package/cjs/extensions/forms/Field/Upload/UploadDocs.js.map +1 -0
  42. package/cjs/extensions/forms/Field/Upload/index.d.ts +2 -0
  43. package/cjs/extensions/forms/Field/Upload/index.js +27 -0
  44. package/cjs/extensions/forms/Field/Upload/index.js.map +1 -0
  45. package/cjs/extensions/forms/Field/index.d.ts +1 -0
  46. package/cjs/extensions/forms/Field/index.js +7 -0
  47. package/cjs/extensions/forms/Field/index.js.map +1 -1
  48. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -0
  49. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +4 -2
  50. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  51. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js +5 -0
  52. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  53. package/cjs/extensions/forms/Form/Section/Section.d.ts +2 -2
  54. package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
  55. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +4 -0
  56. package/cjs/extensions/forms/constants/locales/en-GB.js +4 -0
  57. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  58. package/cjs/extensions/forms/constants/locales/en-US.d.ts +4 -0
  59. package/cjs/extensions/forms/constants/locales/index.d.ts +8 -0
  60. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +4 -0
  61. package/cjs/extensions/forms/constants/locales/nb-NO.js +4 -0
  62. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  63. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +3 -1
  64. package/cjs/extensions/forms/hooks/useFieldProps.js +14 -9
  65. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  66. package/cjs/extensions/forms/types.d.ts +8 -3
  67. package/cjs/extensions/forms/types.js.map +1 -1
  68. package/cjs/shared/Eufemia.d.ts +1 -1
  69. package/cjs/shared/Eufemia.js +2 -2
  70. package/cjs/shared/Eufemia.js.map +1 -1
  71. package/cjs/shared/Translation.d.ts +1 -1
  72. package/cjs/shared/Translation.js +5 -3
  73. package/cjs/shared/Translation.js.map +1 -1
  74. package/cjs/style/core/scopes.scss +1 -1
  75. package/cjs/style/dnb-ui-basis.css +1 -1
  76. package/cjs/style/dnb-ui-basis.min.css +1 -1
  77. package/cjs/style/dnb-ui-body.css +1 -1
  78. package/cjs/style/dnb-ui-body.min.css +1 -1
  79. package/cjs/style/dnb-ui-core.css +1 -1
  80. package/cjs/style/dnb-ui-core.min.css +1 -1
  81. package/components/upload/Upload.d.ts +1 -0
  82. package/components/upload/Upload.js.map +1 -1
  83. package/components/upload/UploadDocs.d.ts +3 -0
  84. package/components/upload/UploadDocs.js +50 -0
  85. package/components/upload/UploadDocs.js.map +1 -0
  86. package/components/upload/UploadDropzone.js +21 -19
  87. package/components/upload/UploadDropzone.js.map +1 -1
  88. package/components/upload/UploadInfo.js +5 -4
  89. package/components/upload/UploadInfo.js.map +1 -1
  90. package/components/upload/UploadVerify.d.ts +1 -0
  91. package/components/upload/UploadVerify.js +1 -1
  92. package/components/upload/UploadVerify.js.map +1 -1
  93. package/components/upload/types.d.ts +2 -1
  94. package/components/upload/types.js.map +1 -1
  95. package/components/upload/useUpload.js +9 -8
  96. package/components/upload/useUpload.js.map +1 -1
  97. package/es/components/upload/Upload.d.ts +1 -0
  98. package/es/components/upload/Upload.js.map +1 -1
  99. package/es/components/upload/UploadDocs.d.ts +3 -0
  100. package/es/components/upload/UploadDocs.js +50 -0
  101. package/es/components/upload/UploadDocs.js.map +1 -0
  102. package/es/components/upload/UploadDropzone.js +21 -19
  103. package/es/components/upload/UploadDropzone.js.map +1 -1
  104. package/es/components/upload/UploadInfo.js +5 -4
  105. package/es/components/upload/UploadInfo.js.map +1 -1
  106. package/es/components/upload/UploadVerify.d.ts +1 -0
  107. package/es/components/upload/UploadVerify.js +1 -1
  108. package/es/components/upload/UploadVerify.js.map +1 -1
  109. package/es/components/upload/types.d.ts +2 -1
  110. package/es/components/upload/types.js.map +1 -1
  111. package/es/components/upload/useUpload.js +9 -8
  112. package/es/components/upload/useUpload.js.map +1 -1
  113. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +3 -3
  114. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  115. package/es/extensions/forms/Field/Composition/Composition.d.ts +2 -2
  116. package/es/extensions/forms/Field/Composition/Composition.js.map +1 -1
  117. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +2 -2
  118. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +2 -2
  119. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  120. package/es/extensions/forms/Field/Selection/Selection.d.ts +4 -4
  121. package/es/extensions/forms/Field/Selection/Selection.js +3 -3
  122. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  123. package/es/extensions/forms/Field/Slider/Slider.js +2 -2
  124. package/es/extensions/forms/Field/Slider/Slider.js.map +1 -1
  125. package/es/extensions/forms/Field/String/String.js +2 -2
  126. package/es/extensions/forms/Field/String/String.js.map +1 -1
  127. package/es/extensions/forms/Field/Toggle/Toggle.js +6 -6
  128. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  129. package/es/extensions/forms/Field/Toggle/ToggleDocs.js +5 -0
  130. package/es/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
  131. package/es/extensions/forms/Field/Upload/Upload.d.ts +12 -0
  132. package/es/extensions/forms/Field/Upload/Upload.js +118 -0
  133. package/es/extensions/forms/Field/Upload/Upload.js.map +1 -0
  134. package/es/extensions/forms/Field/Upload/UploadDocs.d.ts +3 -0
  135. package/es/extensions/forms/Field/Upload/UploadDocs.js +10 -0
  136. package/es/extensions/forms/Field/Upload/UploadDocs.js.map +1 -0
  137. package/es/extensions/forms/Field/Upload/index.d.ts +2 -0
  138. package/es/extensions/forms/Field/Upload/index.js +3 -0
  139. package/es/extensions/forms/Field/Upload/index.js.map +1 -0
  140. package/es/extensions/forms/Field/index.d.ts +1 -0
  141. package/es/extensions/forms/Field/index.js +1 -0
  142. package/es/extensions/forms/Field/index.js.map +1 -1
  143. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -0
  144. package/es/extensions/forms/FieldBlock/FieldBlock.js +4 -2
  145. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  146. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js +5 -0
  147. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  148. package/es/extensions/forms/Form/Section/Section.d.ts +2 -2
  149. package/es/extensions/forms/Form/Section/Section.js.map +1 -1
  150. package/es/extensions/forms/constants/locales/en-GB.d.ts +4 -0
  151. package/es/extensions/forms/constants/locales/en-GB.js +4 -0
  152. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  153. package/es/extensions/forms/constants/locales/en-US.d.ts +4 -0
  154. package/es/extensions/forms/constants/locales/index.d.ts +8 -0
  155. package/es/extensions/forms/constants/locales/nb-NO.d.ts +4 -0
  156. package/es/extensions/forms/constants/locales/nb-NO.js +4 -0
  157. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  158. package/es/extensions/forms/hooks/useFieldProps.d.ts +3 -1
  159. package/es/extensions/forms/hooks/useFieldProps.js +14 -10
  160. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  161. package/es/extensions/forms/types.d.ts +8 -3
  162. package/es/extensions/forms/types.js.map +1 -1
  163. package/es/shared/Eufemia.d.ts +1 -1
  164. package/es/shared/Eufemia.js +2 -2
  165. package/es/shared/Eufemia.js.map +1 -1
  166. package/es/shared/Translation.d.ts +1 -1
  167. package/es/shared/Translation.js +3 -3
  168. package/es/shared/Translation.js.map +1 -1
  169. package/es/style/core/scopes.scss +1 -1
  170. package/es/style/dnb-ui-basis.css +1 -1
  171. package/es/style/dnb-ui-basis.min.css +1 -1
  172. package/es/style/dnb-ui-body.css +1 -1
  173. package/es/style/dnb-ui-body.min.css +1 -1
  174. package/es/style/dnb-ui-core.css +1 -1
  175. package/es/style/dnb-ui-core.min.css +1 -1
  176. package/esm/dnb-ui-basis.min.mjs +1 -1
  177. package/esm/dnb-ui-components.min.mjs +1 -1
  178. package/esm/dnb-ui-elements.min.mjs +1 -1
  179. package/esm/dnb-ui-extensions.min.mjs +5 -5
  180. package/esm/dnb-ui-lib.min.mjs +1 -1
  181. package/extensions/forms/Field/ArraySelection/ArraySelection.js +3 -3
  182. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  183. package/extensions/forms/Field/Composition/Composition.d.ts +2 -2
  184. package/extensions/forms/Field/Composition/Composition.js.map +1 -1
  185. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +2 -2
  186. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +2 -2
  187. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  188. package/extensions/forms/Field/Selection/Selection.d.ts +4 -4
  189. package/extensions/forms/Field/Selection/Selection.js +3 -3
  190. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  191. package/extensions/forms/Field/Slider/Slider.js +2 -2
  192. package/extensions/forms/Field/Slider/Slider.js.map +1 -1
  193. package/extensions/forms/Field/String/String.js +2 -2
  194. package/extensions/forms/Field/String/String.js.map +1 -1
  195. package/extensions/forms/Field/Toggle/Toggle.js +6 -6
  196. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  197. package/extensions/forms/Field/Toggle/ToggleDocs.js +5 -0
  198. package/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
  199. package/extensions/forms/Field/Upload/Upload.d.ts +12 -0
  200. package/extensions/forms/Field/Upload/Upload.js +120 -0
  201. package/extensions/forms/Field/Upload/Upload.js.map +1 -0
  202. package/extensions/forms/Field/Upload/UploadDocs.d.ts +3 -0
  203. package/extensions/forms/Field/Upload/UploadDocs.js +10 -0
  204. package/extensions/forms/Field/Upload/UploadDocs.js.map +1 -0
  205. package/extensions/forms/Field/Upload/index.d.ts +2 -0
  206. package/extensions/forms/Field/Upload/index.js +3 -0
  207. package/extensions/forms/Field/Upload/index.js.map +1 -0
  208. package/extensions/forms/Field/index.d.ts +1 -0
  209. package/extensions/forms/Field/index.js +1 -0
  210. package/extensions/forms/Field/index.js.map +1 -1
  211. package/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -0
  212. package/extensions/forms/FieldBlock/FieldBlock.js +4 -2
  213. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  214. package/extensions/forms/FieldBlock/FieldBlockDocs.js +5 -0
  215. package/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  216. package/extensions/forms/Form/Section/Section.d.ts +2 -2
  217. package/extensions/forms/Form/Section/Section.js.map +1 -1
  218. package/extensions/forms/constants/locales/en-GB.d.ts +4 -0
  219. package/extensions/forms/constants/locales/en-GB.js +4 -0
  220. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  221. package/extensions/forms/constants/locales/en-US.d.ts +4 -0
  222. package/extensions/forms/constants/locales/index.d.ts +8 -0
  223. package/extensions/forms/constants/locales/nb-NO.d.ts +4 -0
  224. package/extensions/forms/constants/locales/nb-NO.js +4 -0
  225. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  226. package/extensions/forms/hooks/useFieldProps.d.ts +3 -1
  227. package/extensions/forms/hooks/useFieldProps.js +14 -9
  228. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  229. package/extensions/forms/types.d.ts +8 -3
  230. package/extensions/forms/types.js.map +1 -1
  231. package/package.json +1 -1
  232. package/shared/Eufemia.d.ts +1 -1
  233. package/shared/Eufemia.js +2 -2
  234. package/shared/Eufemia.js.map +1 -1
  235. package/shared/Translation.d.ts +1 -1
  236. package/shared/Translation.js +3 -3
  237. package/shared/Translation.js.map +1 -1
  238. package/style/core/scopes.scss +1 -1
  239. package/style/dnb-ui-basis.css +1 -1
  240. package/style/dnb-ui-basis.min.css +1 -1
  241. package/style/dnb-ui-body.css +1 -1
  242. package/style/dnb-ui-body.min.css +1 -1
  243. package/style/dnb-ui-core.css +1 -1
  244. package/style/dnb-ui-core.min.css +1 -1
  245. package/umd/dnb-ui-basis.min.js +1 -1
  246. package/umd/dnb-ui-components.min.js +1 -1
  247. package/umd/dnb-ui-elements.min.js +1 -1
  248. package/umd/dnb-ui-extensions.min.js +5 -5
  249. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Translation.js","names":["_react","require","_useTranslation","_Context","_interopRequireDefault","_excluded","obj","__esModule","default","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","key","i","Object","getOwnPropertySymbols","sourceSymbolKeys","length","indexOf","prototype","propertyIsEnumerable","call","sourceKeys","keys","Translation","_ref","id","children","params","translation","useContext","SharedContext","result","formatMessage","String"],"sources":["../../../src/shared/Translation.tsx"],"sourcesContent":["import { useContext } from 'react'\nimport {\n TranslationArguments,\n TranslationId,\n TranslationIdAsFunction,\n formatMessage,\n} from './useTranslation'\nimport SharedContext, {\n TranslationCustomLocales,\n TranslationFlatToObject,\n} from './Context'\n\nexport type TranslationProps<T = TranslationCustomLocales> = {\n id?: TranslationId | TranslationIdAsFunction<TranslationFlatToObject<T>>\n children?: TranslationId\n} & TranslationArguments\n\nexport default function Translation({\n id,\n children,\n ...params\n}: TranslationProps) {\n const { translation } = useContext(SharedContext)\n const result = formatMessage(id || children, params, translation)\n\n if (typeof result !== 'string') {\n return String(id)\n }\n\n return result\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAMA,IAAAE,QAAA,GAAAC,sBAAA,CAAAH,OAAA;AAGkB,MAAAI,SAAA;AAAA,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,MAAA,EAAAC,QAAA,QAAAD,MAAA,yBAAAE,MAAA,GAAAC,6BAAA,CAAAH,MAAA,EAAAC,QAAA,OAAAG,GAAA,EAAAC,CAAA,MAAAC,MAAA,CAAAC,qBAAA,QAAAC,gBAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAP,MAAA,QAAAK,CAAA,MAAAA,CAAA,GAAAG,gBAAA,CAAAC,MAAA,EAAAJ,CAAA,MAAAD,GAAA,GAAAI,gBAAA,CAAAH,CAAA,OAAAJ,QAAA,CAAAS,OAAA,CAAAN,GAAA,uBAAAE,MAAA,CAAAK,SAAA,CAAAC,oBAAA,CAAAC,IAAA,CAAAb,MAAA,EAAAI,GAAA,aAAAF,MAAA,CAAAE,GAAA,IAAAJ,MAAA,CAAAI,GAAA,cAAAF,MAAA;AAAA,SAAAC,8BAAAH,MAAA,EAAAC,QAAA,QAAAD,MAAA,yBAAAE,MAAA,WAAAY,UAAA,GAAAR,MAAA,CAAAS,IAAA,CAAAf,MAAA,OAAAI,GAAA,EAAAC,CAAA,OAAAA,CAAA,MAAAA,CAAA,GAAAS,UAAA,CAAAL,MAAA,EAAAJ,CAAA,MAAAD,GAAA,GAAAU,UAAA,CAAAT,CAAA,OAAAJ,QAAA,CAAAS,OAAA,CAAAN,GAAA,kBAAAF,MAAA,CAAAE,GAAA,IAAAJ,MAAA,CAAAI,GAAA,YAAAF,MAAA;AAOH,SAASc,WAAWA,CAAAC,IAAA,EAId;EAAA,IAJe;MAClCC,EAAE;MACFC;IAEgB,CAAC,GAAAF,IAAA;IADdG,MAAM,GAAArB,wBAAA,CAAAkB,IAAA,EAAAtB,SAAA;EAET,MAAM;IAAE0B;EAAY,CAAC,GAAG,IAAAC,iBAAU,EAACC,gBAAa,CAAC;EACjD,MAAMC,MAAM,GAAG,IAAAC,6BAAa,EAACP,EAAE,IAAIC,QAAQ,EAAEC,MAAM,EAAEC,WAAW,CAAC;EAEjE,IAAI,OAAOG,MAAM,KAAK,QAAQ,EAAE;IAC9B,OAAOE,MAAM,CAACR,EAAE,CAAC;EACnB;EAEA,OAAOM,MAAM;AACf"}
1
+ {"version":3,"file":"Translation.js","names":["_react","_interopRequireWildcard","require","_useTranslation","_Context","_interopRequireDefault","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","i","getOwnPropertySymbols","sourceSymbolKeys","length","indexOf","propertyIsEnumerable","sourceKeys","keys","Translation","_ref","id","children","params","translation","useContext","SharedContext","result","formatMessage","createElement","Fragment","String"],"sources":["../../../src/shared/Translation.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport {\n TranslationArguments,\n TranslationId,\n TranslationIdAsFunction,\n formatMessage,\n} from './useTranslation'\nimport SharedContext, {\n TranslationCustomLocales,\n TranslationFlatToObject,\n} from './Context'\n\nexport type TranslationProps<T = TranslationCustomLocales> = {\n id?: TranslationId | TranslationIdAsFunction<TranslationFlatToObject<T>>\n children?: TranslationId\n} & TranslationArguments\n\nexport default function Translation({\n id,\n children,\n ...params\n}: TranslationProps) {\n const { translation } = useContext(SharedContext)\n const result = formatMessage(id || children, params, translation)\n\n if (typeof result !== 'string') {\n return <>{String(id)}</>\n }\n\n return <>{result}</>\n}\n"],"mappings":"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"}
@@ -45,7 +45,7 @@
45
45
  word-break: break-word;
46
46
 
47
47
  // Will add this to the body tag – later we can test for a version mismatch
48
- --eufemia-version: '10.40.1';
48
+ --eufemia-version: '10.41.0';
49
49
 
50
50
  @content;
51
51
  }
@@ -251,7 +251,7 @@ body {
251
251
  /* stylelint-disable-next-line */
252
252
  -webkit-text-size-adjust: 100%;
253
253
  word-break: break-word;
254
- --eufemia-version: "10.40.1";
254
+ --eufemia-version: "10.41.0";
255
255
  }
256
256
  .dnb-core-style *,
257
257
  .dnb-core-style ::before,
@@ -1 +1 @@
1
- @charset "UTF-8";html{font-size:100%}html:not([data-visual-test]){scroll-behavior:smooth}@supports (-webkit-touch-callout:none){@supports (font:-apple-system-body){html{font:-apple-system-body}}}html[xmlns="http://www.w3.org/1999/xhtml"] a:hover{-webkit-text-decoration:none;text-decoration:none}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--active{color:var(--color-mint-green)!important}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--contrast:not(:hover){color:var(--color-white)!important}html[xmlns="http://www.w3.org/1999/xhtml"] a.dnb-button--primary{color:var(--color-white)}html[xmlns="http://www.w3.org/1999/xhtml"] ul{list-style:initial}html[xmlns="http://www.w3.org/1999/xhtml"] p{background-color:initial;overflow:initial;text-align:inherit}html[xmlns="http://www.w3.org/1999/xhtml"] i{font-style:italic}html[xmlns="http://www.w3.org/1999/xhtml"] #column_left,html[xmlns="http://www.w3.org/1999/xhtml"] #root{width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefault #wrapper,html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefaultStartPage #wrapper{max-width:60rem;width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] #column_content{box-shadow:none}body{margin:0}.dnb-core-style{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;--eufemia-version:"10.40.1";color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis);tab-size:4;-moz-tab-size:4;word-break:break-word}.dnb-core-style *,.dnb-core-style :after,.dnb-core-style :before{background-repeat:no-repeat;box-sizing:border-box}.dnb-core-style :after,.dnb-core-style :before{text-decoration:inherit;vertical-align:inherit}.dnb-core-style hr{height:0;overflow:visible}.dnb-core-style main{display:block}.dnb-core-style nav ol,.dnb-core-style nav ul{list-style:none}.dnb-core-style abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.dnb-core-style b,.dnb-core-style strong{font-weight:bolder}.dnb-core-style code,.dnb-core-style kbd,.dnb-core-style pre,.dnb-core-style samp{font-family:var(--font-family-monospace)}.dnb-core-style ::selection{background-color:#b3d4fc;color:#000;text-shadow:none}.dnb-core-style audio,.dnb-core-style canvas,.dnb-core-style iframe,.dnb-core-style img,.dnb-core-style svg,.dnb-core-style video{vertical-align:middle}.dnb-core-style audio,.dnb-core-style video{display:inline-block}.dnb-core-style audio:not([controls]){display:none;height:0}.dnb-core-style img{border-style:none}.dnb-core-style svg:not([fill]){fill:currentcolor}.dnb-core-style svg:not(:root){overflow:hidden}.dnb-core-style table{border-collapse:collapse}.dnb-core-style button,.dnb-core-style input,.dnb-core-style select,.dnb-core-style textarea{font-family:inherit;font-size:inherit;line-height:inherit}.dnb-core-style button,.dnb-core-style figure,.dnb-core-style input,.dnb-core-style select{margin:0}.dnb-core-style button{overflow:visible;text-transform:none}.dnb-core-style fieldset{padding:.35rem .75rem .625rem}.dnb-core-style input{overflow:visible;word-break:normal}.dnb-core-style legend{color:inherit;display:table;max-width:100%;white-space:normal}.dnb-core-style progress{display:inline-block;vertical-align:baseline}.dnb-core-style select{text-transform:none}.dnb-core-style textarea{overflow:auto;resize:vertical}.dnb-core-style [type=checkbox],.dnb-core-style [type=radio]{padding:0}.dnb-core-style input[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}.dnb-core-style ::-webkit-inner-spin-button,.dnb-core-style ::-webkit-outer-spin-button{height:auto}.dnb-core-style ::input-placeholder{color:inherit;opacity:.54}.dnb-core-style ::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.dnb-core-style ::-webkit-file-upload-button{background-color:transparent;border:none;font:inherit}.dnb-core-style ::-moz-focus-inner{border-style:none;padding:0}.dnb-core-style details{display:block}.dnb-core-style summary{display:list-item}.dnb-core-style canvas{display:inline-block}.dnb-core-style template{display:none}.dnb-core-style [tabindex],.dnb-core-style a,.dnb-core-style area,.dnb-core-style button,.dnb-core-style input,.dnb-core-style label,.dnb-core-style select,.dnb-core-style summary,.dnb-core-style textarea{touch-action:manipulation}.dnb-core-style [hidden]{display:none}.dnb-core-style [aria-busy=true]{cursor:progress}.dnb-core-style [aria-controls]:not(input){cursor:pointer}.dnb-core-style [aria-disabled=true],.dnb-core-style [disabled]{cursor:not-allowed}.dnb-core-style [aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);display:inherit;position:absolute}@media print{.dnb-core-style{background-color:#fff;color:#000}}.dnb-core-style .eufemia-theme{color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis)}.dnb-no-focus,.dnb-tab-focus,.dnb-tab-focus:focus{outline:none}html[data-whatinput=keyboard] .dnb-tab-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-mouse-focus,.dnb-mouse-focus:focus{outline:none}html[data-whatinput=mouse] .dnb-mouse-focus:focus{box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-focus-ring,html[data-whatinput=mouse] .dnb-mouse-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent}.dnb-focus-ring{box-shadow:0 0 0 var(--border-width) var(--border-color)!important}.dnb-scrollbar-appearance{-webkit-overflow-scrolling:touch;-ms-overflow-style:auto;scrollbar-color:var(--scrollbar-thumb-color,#888) transparent}@supports not (scrollbar-color:auto){.dnb-scrollbar-appearance::-webkit-scrollbar{background-color:var(--scrollbar-track-color,#eee);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:vertical{width:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:horizontal{height:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-color,#888);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover-color,#666)}}.dnb-skip-link{opacity:.3;position:absolute;top:-100vh;transition:opacity .3s ease-out;z-index:0}.dnb-skip-link--active,.dnb-skip-link:focus{background-color:transparent;border:none;border-radius:0;box-shadow:none;color:var(--skip-link-color);font-size:var(--font-size-basis);left:40%;margin:0;outline:none;padding:.5rem 1rem;position:fixed;text-align:center;-webkit-text-decoration:none;text-decoration:none;top:5%;user-select:none;-webkit-user-select:none;white-space:nowrap;z-index:9999}.dnb-skip-link--active:after,.dnb-skip-link:focus:after{background-color:hsla(0,0%,100%,.85);box-shadow:150vw 150vh 0 0 hsla(0,0%,100%,.85);content:"";height:150vh;left:-200vw;position:absolute;top:-200vh;width:150vw;z-index:-2}.dnb-skip-link--active:before,.dnb-skip-link:focus:before{background-color:var(--skip-link-background);border-radius:1.5rem;content:"";height:100%;left:0;outline:none;position:absolute;top:0;width:100%;z-index:-1}html[data-whatinput=mouse] .dnb-skip-link--active:before,html[data-whatinput=mouse] .dnb-skip-link:focus:before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:hover:before,.dnb-skip-link:focus:hover:before{background-color:var(--skip-link-background--hover)}.dnb-skip-link--active:active:before,.dnb-skip-link:focus:active:before{background-color:var(--skip-link-background--active)}.dnb-skip-link--active:focus:not(:active):before,.dnb-skip-link:focus:focus:not(:active):before{outline:none}html[data-whatinput=keyboard] .dnb-skip-link--active:focus:not(:active):before,html[data-whatinput=keyboard] .dnb-skip-link:focus:focus:not(:active):before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:focus,.dnb-skip-link:focus:focus{opacity:1}.dnb-skip-link--active:hover,.dnb-skip-link:focus:hover{background-color:transparent;box-shadow:none;color:var(--skip-link-color--hover)}.dnb-skip-link--active:focus:not(:hover):not(:active),.dnb-skip-link:focus:focus:not(:hover):not(:active){background-color:transparent;box-shadow:none;color:var(--skip-link-color)}.dnb-skip-link--active:active,.dnb-skip-link:focus:active{background-color:transparent;color:var(--skip-link-color--active)}html[data-whatintent=touch] .dnb-skip-link{display:none}.dnb-alignment-helper,.dnb-alignment-helper:before{speak:none;display:inline-block;font-size:var(--font-size-small);height:0;width:0}.dnb-alignment-helper:before{content:"‌"}.dnb-drop-shadow{box-shadow:var(--shadow-default)}.dnb-sr-only{-webkit-touch-callout:none!important;border:0!important;clip-path:inset(50%)!important;margin:0!important;max-height:1px!important;max-width:1px!important;overflow:hidden!important;padding:0!important;pointer-events:none!important;position:absolute!important;-webkit-user-select:none!important;user-select:none!important;white-space:nowrap!important}.dnb-suffix{font-size:var(--font-size-basis);line-height:var(--line-height-basis);padding-left:.5rem;word-break:normal}
1
+ @charset "UTF-8";html{font-size:100%}html:not([data-visual-test]){scroll-behavior:smooth}@supports (-webkit-touch-callout:none){@supports (font:-apple-system-body){html{font:-apple-system-body}}}html[xmlns="http://www.w3.org/1999/xhtml"] a:hover{-webkit-text-decoration:none;text-decoration:none}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--active{color:var(--color-mint-green)!important}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--contrast:not(:hover){color:var(--color-white)!important}html[xmlns="http://www.w3.org/1999/xhtml"] a.dnb-button--primary{color:var(--color-white)}html[xmlns="http://www.w3.org/1999/xhtml"] ul{list-style:initial}html[xmlns="http://www.w3.org/1999/xhtml"] p{background-color:initial;overflow:initial;text-align:inherit}html[xmlns="http://www.w3.org/1999/xhtml"] i{font-style:italic}html[xmlns="http://www.w3.org/1999/xhtml"] #column_left,html[xmlns="http://www.w3.org/1999/xhtml"] #root{width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefault #wrapper,html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefaultStartPage #wrapper{max-width:60rem;width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] #column_content{box-shadow:none}body{margin:0}.dnb-core-style{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;--eufemia-version:"10.41.0";color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis);tab-size:4;-moz-tab-size:4;word-break:break-word}.dnb-core-style *,.dnb-core-style :after,.dnb-core-style :before{background-repeat:no-repeat;box-sizing:border-box}.dnb-core-style :after,.dnb-core-style :before{text-decoration:inherit;vertical-align:inherit}.dnb-core-style hr{height:0;overflow:visible}.dnb-core-style main{display:block}.dnb-core-style nav ol,.dnb-core-style nav ul{list-style:none}.dnb-core-style abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.dnb-core-style b,.dnb-core-style strong{font-weight:bolder}.dnb-core-style code,.dnb-core-style kbd,.dnb-core-style pre,.dnb-core-style samp{font-family:var(--font-family-monospace)}.dnb-core-style ::selection{background-color:#b3d4fc;color:#000;text-shadow:none}.dnb-core-style audio,.dnb-core-style canvas,.dnb-core-style iframe,.dnb-core-style img,.dnb-core-style svg,.dnb-core-style video{vertical-align:middle}.dnb-core-style audio,.dnb-core-style video{display:inline-block}.dnb-core-style audio:not([controls]){display:none;height:0}.dnb-core-style img{border-style:none}.dnb-core-style svg:not([fill]){fill:currentcolor}.dnb-core-style svg:not(:root){overflow:hidden}.dnb-core-style table{border-collapse:collapse}.dnb-core-style button,.dnb-core-style input,.dnb-core-style select,.dnb-core-style textarea{font-family:inherit;font-size:inherit;line-height:inherit}.dnb-core-style button,.dnb-core-style figure,.dnb-core-style input,.dnb-core-style select{margin:0}.dnb-core-style button{overflow:visible;text-transform:none}.dnb-core-style fieldset{padding:.35rem .75rem .625rem}.dnb-core-style input{overflow:visible;word-break:normal}.dnb-core-style legend{color:inherit;display:table;max-width:100%;white-space:normal}.dnb-core-style progress{display:inline-block;vertical-align:baseline}.dnb-core-style select{text-transform:none}.dnb-core-style textarea{overflow:auto;resize:vertical}.dnb-core-style [type=checkbox],.dnb-core-style [type=radio]{padding:0}.dnb-core-style input[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}.dnb-core-style ::-webkit-inner-spin-button,.dnb-core-style ::-webkit-outer-spin-button{height:auto}.dnb-core-style ::input-placeholder{color:inherit;opacity:.54}.dnb-core-style ::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.dnb-core-style ::-webkit-file-upload-button{background-color:transparent;border:none;font:inherit}.dnb-core-style ::-moz-focus-inner{border-style:none;padding:0}.dnb-core-style details{display:block}.dnb-core-style summary{display:list-item}.dnb-core-style canvas{display:inline-block}.dnb-core-style template{display:none}.dnb-core-style [tabindex],.dnb-core-style a,.dnb-core-style area,.dnb-core-style button,.dnb-core-style input,.dnb-core-style label,.dnb-core-style select,.dnb-core-style summary,.dnb-core-style textarea{touch-action:manipulation}.dnb-core-style [hidden]{display:none}.dnb-core-style [aria-busy=true]{cursor:progress}.dnb-core-style [aria-controls]:not(input){cursor:pointer}.dnb-core-style [aria-disabled=true],.dnb-core-style [disabled]{cursor:not-allowed}.dnb-core-style [aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);display:inherit;position:absolute}@media print{.dnb-core-style{background-color:#fff;color:#000}}.dnb-core-style .eufemia-theme{color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis)}.dnb-no-focus,.dnb-tab-focus,.dnb-tab-focus:focus{outline:none}html[data-whatinput=keyboard] .dnb-tab-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-mouse-focus,.dnb-mouse-focus:focus{outline:none}html[data-whatinput=mouse] .dnb-mouse-focus:focus{box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-focus-ring,html[data-whatinput=mouse] .dnb-mouse-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent}.dnb-focus-ring{box-shadow:0 0 0 var(--border-width) var(--border-color)!important}.dnb-scrollbar-appearance{-webkit-overflow-scrolling:touch;-ms-overflow-style:auto;scrollbar-color:var(--scrollbar-thumb-color,#888) transparent}@supports not (scrollbar-color:auto){.dnb-scrollbar-appearance::-webkit-scrollbar{background-color:var(--scrollbar-track-color,#eee);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:vertical{width:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:horizontal{height:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-color,#888);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover-color,#666)}}.dnb-skip-link{opacity:.3;position:absolute;top:-100vh;transition:opacity .3s ease-out;z-index:0}.dnb-skip-link--active,.dnb-skip-link:focus{background-color:transparent;border:none;border-radius:0;box-shadow:none;color:var(--skip-link-color);font-size:var(--font-size-basis);left:40%;margin:0;outline:none;padding:.5rem 1rem;position:fixed;text-align:center;-webkit-text-decoration:none;text-decoration:none;top:5%;user-select:none;-webkit-user-select:none;white-space:nowrap;z-index:9999}.dnb-skip-link--active:after,.dnb-skip-link:focus:after{background-color:hsla(0,0%,100%,.85);box-shadow:150vw 150vh 0 0 hsla(0,0%,100%,.85);content:"";height:150vh;left:-200vw;position:absolute;top:-200vh;width:150vw;z-index:-2}.dnb-skip-link--active:before,.dnb-skip-link:focus:before{background-color:var(--skip-link-background);border-radius:1.5rem;content:"";height:100%;left:0;outline:none;position:absolute;top:0;width:100%;z-index:-1}html[data-whatinput=mouse] .dnb-skip-link--active:before,html[data-whatinput=mouse] .dnb-skip-link:focus:before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:hover:before,.dnb-skip-link:focus:hover:before{background-color:var(--skip-link-background--hover)}.dnb-skip-link--active:active:before,.dnb-skip-link:focus:active:before{background-color:var(--skip-link-background--active)}.dnb-skip-link--active:focus:not(:active):before,.dnb-skip-link:focus:focus:not(:active):before{outline:none}html[data-whatinput=keyboard] .dnb-skip-link--active:focus:not(:active):before,html[data-whatinput=keyboard] .dnb-skip-link:focus:focus:not(:active):before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:focus,.dnb-skip-link:focus:focus{opacity:1}.dnb-skip-link--active:hover,.dnb-skip-link:focus:hover{background-color:transparent;box-shadow:none;color:var(--skip-link-color--hover)}.dnb-skip-link--active:focus:not(:hover):not(:active),.dnb-skip-link:focus:focus:not(:hover):not(:active){background-color:transparent;box-shadow:none;color:var(--skip-link-color)}.dnb-skip-link--active:active,.dnb-skip-link:focus:active{background-color:transparent;color:var(--skip-link-color--active)}html[data-whatintent=touch] .dnb-skip-link{display:none}.dnb-alignment-helper,.dnb-alignment-helper:before{speak:none;display:inline-block;font-size:var(--font-size-small);height:0;width:0}.dnb-alignment-helper:before{content:"‌"}.dnb-drop-shadow{box-shadow:var(--shadow-default)}.dnb-sr-only{-webkit-touch-callout:none!important;border:0!important;clip-path:inset(50%)!important;margin:0!important;max-height:1px!important;max-width:1px!important;overflow:hidden!important;padding:0!important;pointer-events:none!important;position:absolute!important;-webkit-user-select:none!important;user-select:none!important;white-space:nowrap!important}.dnb-suffix{font-size:var(--font-size-basis);line-height:var(--line-height-basis);padding-left:.5rem;word-break:normal}
@@ -277,7 +277,7 @@ body {
277
277
  /* stylelint-disable-next-line */
278
278
  -webkit-text-size-adjust: 100%;
279
279
  word-break: break-word;
280
- --eufemia-version: "10.40.1";
280
+ --eufemia-version: "10.41.0";
281
281
  }
282
282
  body *,
283
283
  body ::before,
@@ -1 +1 @@
1
- html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;cursor:default;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:var(--line-height-basis);-moz-tab-size:4;tab-size:4;word-break:break-word}body{margin:0}html{font-size:100%}html:not([data-visual-test]){scroll-behavior:smooth}@supports (-webkit-touch-callout:none){@supports (font:-apple-system-body){html{font:-apple-system-body}}}html[xmlns="http://www.w3.org/1999/xhtml"] a:hover{-webkit-text-decoration:none;text-decoration:none}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--active{color:var(--color-mint-green)!important}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--contrast:not(:hover){color:var(--color-white)!important}html[xmlns="http://www.w3.org/1999/xhtml"] a.dnb-button--primary{color:var(--color-white)}html[xmlns="http://www.w3.org/1999/xhtml"] ul{list-style:initial}html[xmlns="http://www.w3.org/1999/xhtml"] p{background-color:initial;overflow:initial;text-align:inherit}html[xmlns="http://www.w3.org/1999/xhtml"] i{font-style:italic}html[xmlns="http://www.w3.org/1999/xhtml"] #column_left,html[xmlns="http://www.w3.org/1999/xhtml"] #root{width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefault #wrapper,html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefaultStartPage #wrapper{max-width:60rem;width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] #column_content{box-shadow:none}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;--eufemia-version:"10.40.1";color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis);tab-size:4;-moz-tab-size:4;word-break:break-word}body *,body :after,body :before{background-repeat:no-repeat;box-sizing:border-box}body :after,body :before{text-decoration:inherit;vertical-align:inherit}body hr{height:0;overflow:visible}body main{display:block}body nav ol,body nav ul{list-style:none}body abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}body b,body strong{font-weight:bolder}body code,body kbd,body pre,body samp{font-family:var(--font-family-monospace)}body ::selection{background-color:#b3d4fc;color:#000;text-shadow:none}body audio,body canvas,body iframe,body img,body svg,body video{vertical-align:middle}body audio,body video{display:inline-block}body audio:not([controls]){display:none;height:0}body img{border-style:none}body svg:not([fill]){fill:currentcolor}body svg:not(:root){overflow:hidden}body table{border-collapse:collapse}body button,body input,body select,body textarea{font-family:inherit;font-size:inherit;line-height:inherit}body button,body figure,body input,body select{margin:0}body button{overflow:visible;text-transform:none}body fieldset{padding:.35rem .75rem .625rem}body input{overflow:visible;word-break:normal}body legend{color:inherit;display:table;max-width:100%;white-space:normal}body progress{display:inline-block;vertical-align:baseline}body select{text-transform:none}body textarea{overflow:auto;resize:vertical}body [type=checkbox],body [type=radio]{padding:0}body input[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}body ::-webkit-inner-spin-button,body ::-webkit-outer-spin-button{height:auto}body ::input-placeholder{color:inherit;opacity:.54}body ::-webkit-search-decoration{-webkit-appearance:none;appearance:none}body ::-webkit-file-upload-button{background-color:transparent;border:none;font:inherit}body ::-moz-focus-inner{border-style:none;padding:0}body details{display:block}body summary{display:list-item}body canvas{display:inline-block}body template{display:none}body [tabindex],body a,body area,body button,body input,body label,body select,body summary,body textarea{touch-action:manipulation}body [hidden]{display:none}body [aria-busy=true]{cursor:progress}body [aria-controls]:not(input){cursor:pointer}body [aria-disabled=true],body [disabled]{cursor:not-allowed}body [aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);display:inherit;position:absolute}@media print{body{background-color:#fff;color:#000}}body .eufemia-theme{color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis)}
1
+ html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;cursor:default;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:var(--line-height-basis);-moz-tab-size:4;tab-size:4;word-break:break-word}body{margin:0}html{font-size:100%}html:not([data-visual-test]){scroll-behavior:smooth}@supports (-webkit-touch-callout:none){@supports (font:-apple-system-body){html{font:-apple-system-body}}}html[xmlns="http://www.w3.org/1999/xhtml"] a:hover{-webkit-text-decoration:none;text-decoration:none}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--active{color:var(--color-mint-green)!important}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--contrast:not(:hover){color:var(--color-white)!important}html[xmlns="http://www.w3.org/1999/xhtml"] a.dnb-button--primary{color:var(--color-white)}html[xmlns="http://www.w3.org/1999/xhtml"] ul{list-style:initial}html[xmlns="http://www.w3.org/1999/xhtml"] p{background-color:initial;overflow:initial;text-align:inherit}html[xmlns="http://www.w3.org/1999/xhtml"] i{font-style:italic}html[xmlns="http://www.w3.org/1999/xhtml"] #column_left,html[xmlns="http://www.w3.org/1999/xhtml"] #root{width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefault #wrapper,html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefaultStartPage #wrapper{max-width:60rem;width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] #column_content{box-shadow:none}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;--eufemia-version:"10.41.0";color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis);tab-size:4;-moz-tab-size:4;word-break:break-word}body *,body :after,body :before{background-repeat:no-repeat;box-sizing:border-box}body :after,body :before{text-decoration:inherit;vertical-align:inherit}body hr{height:0;overflow:visible}body main{display:block}body nav ol,body nav ul{list-style:none}body abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}body b,body strong{font-weight:bolder}body code,body kbd,body pre,body samp{font-family:var(--font-family-monospace)}body ::selection{background-color:#b3d4fc;color:#000;text-shadow:none}body audio,body canvas,body iframe,body img,body svg,body video{vertical-align:middle}body audio,body video{display:inline-block}body audio:not([controls]){display:none;height:0}body img{border-style:none}body svg:not([fill]){fill:currentcolor}body svg:not(:root){overflow:hidden}body table{border-collapse:collapse}body button,body input,body select,body textarea{font-family:inherit;font-size:inherit;line-height:inherit}body button,body figure,body input,body select{margin:0}body button{overflow:visible;text-transform:none}body fieldset{padding:.35rem .75rem .625rem}body input{overflow:visible;word-break:normal}body legend{color:inherit;display:table;max-width:100%;white-space:normal}body progress{display:inline-block;vertical-align:baseline}body select{text-transform:none}body textarea{overflow:auto;resize:vertical}body [type=checkbox],body [type=radio]{padding:0}body input[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}body ::-webkit-inner-spin-button,body ::-webkit-outer-spin-button{height:auto}body ::input-placeholder{color:inherit;opacity:.54}body ::-webkit-search-decoration{-webkit-appearance:none;appearance:none}body ::-webkit-file-upload-button{background-color:transparent;border:none;font:inherit}body ::-moz-focus-inner{border-style:none;padding:0}body details{display:block}body summary{display:list-item}body canvas{display:inline-block}body template{display:none}body [tabindex],body a,body area,body button,body input,body label,body select,body summary,body textarea{touch-action:manipulation}body [hidden]{display:none}body [aria-busy=true]{cursor:progress}body [aria-controls]:not(input){cursor:pointer}body [aria-disabled=true],body [disabled]{cursor:not-allowed}body [aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);display:inherit;position:absolute}@media print{body{background-color:#fff;color:#000}}body .eufemia-theme{color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis)}
@@ -276,7 +276,7 @@ body,
276
276
  /* stylelint-disable-next-line */
277
277
  -webkit-text-size-adjust: 100%;
278
278
  word-break: break-word;
279
- --eufemia-version: "10.40.1";
279
+ --eufemia-version: "10.41.0";
280
280
  }
281
281
  body *,
282
282
  body ::before,
@@ -1 +1 @@
1
- @charset "UTF-8";html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;cursor:default;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:var(--line-height-basis);-moz-tab-size:4;tab-size:4;word-break:break-word}body{margin:0}html{font-size:100%}html:not([data-visual-test]){scroll-behavior:smooth}@supports (-webkit-touch-callout:none){@supports (font:-apple-system-body){html{font:-apple-system-body}}}html[xmlns="http://www.w3.org/1999/xhtml"] a:hover{-webkit-text-decoration:none;text-decoration:none}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--active{color:var(--color-mint-green)!important}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--contrast:not(:hover){color:var(--color-white)!important}html[xmlns="http://www.w3.org/1999/xhtml"] a.dnb-button--primary{color:var(--color-white)}html[xmlns="http://www.w3.org/1999/xhtml"] ul{list-style:initial}html[xmlns="http://www.w3.org/1999/xhtml"] p{background-color:initial;overflow:initial;text-align:inherit}html[xmlns="http://www.w3.org/1999/xhtml"] i{font-style:italic}html[xmlns="http://www.w3.org/1999/xhtml"] #column_left,html[xmlns="http://www.w3.org/1999/xhtml"] #root{width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefault #wrapper,html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefaultStartPage #wrapper{max-width:60rem;width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] #column_content{box-shadow:none}.dnb-core-style,body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;--eufemia-version:"10.40.1";color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis);tab-size:4;-moz-tab-size:4;word-break:break-word}.dnb-core-style *,.dnb-core-style :after,.dnb-core-style :before,body *,body :after,body :before{background-repeat:no-repeat;box-sizing:border-box}.dnb-core-style :after,.dnb-core-style :before,body :after,body :before{text-decoration:inherit;vertical-align:inherit}.dnb-core-style hr,body hr{height:0;overflow:visible}.dnb-core-style main,body main{display:block}.dnb-core-style nav ol,.dnb-core-style nav ul,body nav ol,body nav ul{list-style:none}.dnb-core-style abbr[title],body abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.dnb-core-style b,.dnb-core-style strong,body b,body strong{font-weight:bolder}.dnb-core-style code,.dnb-core-style kbd,.dnb-core-style pre,.dnb-core-style samp,body code,body kbd,body pre,body samp{font-family:var(--font-family-monospace)}.dnb-core-style ::selection,body ::selection{background-color:#b3d4fc;color:#000;text-shadow:none}.dnb-core-style audio,.dnb-core-style canvas,.dnb-core-style iframe,.dnb-core-style img,.dnb-core-style svg,.dnb-core-style video,body audio,body canvas,body iframe,body img,body svg,body video{vertical-align:middle}.dnb-core-style audio,.dnb-core-style video,body audio,body video{display:inline-block}.dnb-core-style audio:not([controls]),body audio:not([controls]){display:none;height:0}.dnb-core-style img,body img{border-style:none}.dnb-core-style svg:not([fill]),body svg:not([fill]){fill:currentcolor}.dnb-core-style svg:not(:root),body svg:not(:root){overflow:hidden}.dnb-core-style table,body table{border-collapse:collapse}.dnb-core-style button,.dnb-core-style input,.dnb-core-style select,.dnb-core-style textarea,body button,body input,body select,body textarea{font-family:inherit;font-size:inherit;line-height:inherit}.dnb-core-style button,.dnb-core-style figure,.dnb-core-style input,.dnb-core-style select,body button,body figure,body input,body select{margin:0}.dnb-core-style button,body button{overflow:visible;text-transform:none}.dnb-core-style fieldset,body fieldset{padding:.35rem .75rem .625rem}.dnb-core-style input,body input{overflow:visible;word-break:normal}.dnb-core-style legend,body legend{color:inherit;display:table;max-width:100%;white-space:normal}.dnb-core-style progress,body progress{display:inline-block;vertical-align:baseline}.dnb-core-style select,body select{text-transform:none}.dnb-core-style textarea,body textarea{overflow:auto;resize:vertical}.dnb-core-style [type=checkbox],.dnb-core-style [type=radio],body [type=checkbox],body [type=radio]{padding:0}.dnb-core-style input[type=search],body input[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}.dnb-core-style ::-webkit-inner-spin-button,.dnb-core-style ::-webkit-outer-spin-button,body ::-webkit-inner-spin-button,body ::-webkit-outer-spin-button{height:auto}.dnb-core-style ::input-placeholder,body ::input-placeholder{color:inherit;opacity:.54}.dnb-core-style ::-webkit-search-decoration,body ::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.dnb-core-style ::-webkit-file-upload-button,body ::-webkit-file-upload-button{background-color:transparent;border:none;font:inherit}.dnb-core-style ::-moz-focus-inner,body ::-moz-focus-inner{border-style:none;padding:0}.dnb-core-style details,body details{display:block}.dnb-core-style summary,body summary{display:list-item}.dnb-core-style canvas,body canvas{display:inline-block}.dnb-core-style template,body template{display:none}.dnb-core-style [tabindex],.dnb-core-style a,.dnb-core-style area,.dnb-core-style button,.dnb-core-style input,.dnb-core-style label,.dnb-core-style select,.dnb-core-style summary,.dnb-core-style textarea,body [tabindex],body a,body area,body button,body input,body label,body select,body summary,body textarea{touch-action:manipulation}.dnb-core-style [hidden],body [hidden]{display:none}.dnb-core-style [aria-busy=true],body [aria-busy=true]{cursor:progress}.dnb-core-style [aria-controls]:not(input),body [aria-controls]:not(input){cursor:pointer}.dnb-core-style [aria-disabled=true],.dnb-core-style [disabled],body [aria-disabled=true],body [disabled]{cursor:not-allowed}.dnb-core-style [aria-hidden=false][hidden]:not(:focus),body [aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);display:inherit;position:absolute}@media print{.dnb-core-style,body{background-color:#fff;color:#000}}.dnb-core-style .eufemia-theme,body .eufemia-theme{color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis)}.dnb-no-focus,.dnb-tab-focus,.dnb-tab-focus:focus{outline:none}html[data-whatinput=keyboard] .dnb-tab-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-mouse-focus,.dnb-mouse-focus:focus{outline:none}html[data-whatinput=mouse] .dnb-mouse-focus:focus{box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-focus-ring,html[data-whatinput=mouse] .dnb-mouse-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent}.dnb-focus-ring{box-shadow:0 0 0 var(--border-width) var(--border-color)!important}.dnb-scrollbar-appearance{-webkit-overflow-scrolling:touch;-ms-overflow-style:auto;scrollbar-color:var(--scrollbar-thumb-color,#888) transparent}@supports not (scrollbar-color:auto){.dnb-scrollbar-appearance::-webkit-scrollbar{background-color:var(--scrollbar-track-color,#eee);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:vertical{width:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:horizontal{height:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-color,#888);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover-color,#666)}}.dnb-skip-link{opacity:.3;position:absolute;top:-100vh;transition:opacity .3s ease-out;z-index:0}.dnb-skip-link--active,.dnb-skip-link:focus{background-color:transparent;border:none;border-radius:0;box-shadow:none;color:var(--skip-link-color);font-size:var(--font-size-basis);left:40%;margin:0;outline:none;padding:.5rem 1rem;position:fixed;text-align:center;-webkit-text-decoration:none;text-decoration:none;top:5%;user-select:none;-webkit-user-select:none;white-space:nowrap;z-index:9999}.dnb-skip-link--active:after,.dnb-skip-link:focus:after{background-color:hsla(0,0%,100%,.85);box-shadow:150vw 150vh 0 0 hsla(0,0%,100%,.85);content:"";height:150vh;left:-200vw;position:absolute;top:-200vh;width:150vw;z-index:-2}.dnb-skip-link--active:before,.dnb-skip-link:focus:before{background-color:var(--skip-link-background);border-radius:1.5rem;content:"";height:100%;left:0;outline:none;position:absolute;top:0;width:100%;z-index:-1}html[data-whatinput=mouse] .dnb-skip-link--active:before,html[data-whatinput=mouse] .dnb-skip-link:focus:before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:hover:before,.dnb-skip-link:focus:hover:before{background-color:var(--skip-link-background--hover)}.dnb-skip-link--active:active:before,.dnb-skip-link:focus:active:before{background-color:var(--skip-link-background--active)}.dnb-skip-link--active:focus:not(:active):before,.dnb-skip-link:focus:focus:not(:active):before{outline:none}html[data-whatinput=keyboard] .dnb-skip-link--active:focus:not(:active):before,html[data-whatinput=keyboard] .dnb-skip-link:focus:focus:not(:active):before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:focus,.dnb-skip-link:focus:focus{opacity:1}.dnb-skip-link--active:hover,.dnb-skip-link:focus:hover{background-color:transparent;box-shadow:none;color:var(--skip-link-color--hover)}.dnb-skip-link--active:focus:not(:hover):not(:active),.dnb-skip-link:focus:focus:not(:hover):not(:active){background-color:transparent;box-shadow:none;color:var(--skip-link-color)}.dnb-skip-link--active:active,.dnb-skip-link:focus:active{background-color:transparent;color:var(--skip-link-color--active)}html[data-whatintent=touch] .dnb-skip-link{display:none}.dnb-alignment-helper,.dnb-alignment-helper:before{speak:none;display:inline-block;font-size:var(--font-size-small);height:0;width:0}.dnb-alignment-helper:before{content:"‌"}.dnb-drop-shadow{box-shadow:var(--shadow-default)}.dnb-sr-only{-webkit-touch-callout:none!important;border:0!important;clip-path:inset(50%)!important;margin:0!important;max-height:1px!important;max-width:1px!important;overflow:hidden!important;padding:0!important;pointer-events:none!important;position:absolute!important;-webkit-user-select:none!important;user-select:none!important;white-space:nowrap!important}.dnb-suffix{font-size:var(--font-size-basis);line-height:var(--line-height-basis);padding-left:.5rem;word-break:normal}
1
+ @charset "UTF-8";html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;cursor:default;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:var(--line-height-basis);-moz-tab-size:4;tab-size:4;word-break:break-word}body{margin:0}html{font-size:100%}html:not([data-visual-test]){scroll-behavior:smooth}@supports (-webkit-touch-callout:none){@supports (font:-apple-system-body){html{font:-apple-system-body}}}html[xmlns="http://www.w3.org/1999/xhtml"] a:hover{-webkit-text-decoration:none;text-decoration:none}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--active{color:var(--color-mint-green)!important}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--contrast:not(:hover){color:var(--color-white)!important}html[xmlns="http://www.w3.org/1999/xhtml"] a.dnb-button--primary{color:var(--color-white)}html[xmlns="http://www.w3.org/1999/xhtml"] ul{list-style:initial}html[xmlns="http://www.w3.org/1999/xhtml"] p{background-color:initial;overflow:initial;text-align:inherit}html[xmlns="http://www.w3.org/1999/xhtml"] i{font-style:italic}html[xmlns="http://www.w3.org/1999/xhtml"] #column_left,html[xmlns="http://www.w3.org/1999/xhtml"] #root{width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefault #wrapper,html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefaultStartPage #wrapper{max-width:60rem;width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] #column_content{box-shadow:none}.dnb-core-style,body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;--eufemia-version:"10.41.0";color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis);tab-size:4;-moz-tab-size:4;word-break:break-word}.dnb-core-style *,.dnb-core-style :after,.dnb-core-style :before,body *,body :after,body :before{background-repeat:no-repeat;box-sizing:border-box}.dnb-core-style :after,.dnb-core-style :before,body :after,body :before{text-decoration:inherit;vertical-align:inherit}.dnb-core-style hr,body hr{height:0;overflow:visible}.dnb-core-style main,body main{display:block}.dnb-core-style nav ol,.dnb-core-style nav ul,body nav ol,body nav ul{list-style:none}.dnb-core-style abbr[title],body abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.dnb-core-style b,.dnb-core-style strong,body b,body strong{font-weight:bolder}.dnb-core-style code,.dnb-core-style kbd,.dnb-core-style pre,.dnb-core-style samp,body code,body kbd,body pre,body samp{font-family:var(--font-family-monospace)}.dnb-core-style ::selection,body ::selection{background-color:#b3d4fc;color:#000;text-shadow:none}.dnb-core-style audio,.dnb-core-style canvas,.dnb-core-style iframe,.dnb-core-style img,.dnb-core-style svg,.dnb-core-style video,body audio,body canvas,body iframe,body img,body svg,body video{vertical-align:middle}.dnb-core-style audio,.dnb-core-style video,body audio,body video{display:inline-block}.dnb-core-style audio:not([controls]),body audio:not([controls]){display:none;height:0}.dnb-core-style img,body img{border-style:none}.dnb-core-style svg:not([fill]),body svg:not([fill]){fill:currentcolor}.dnb-core-style svg:not(:root),body svg:not(:root){overflow:hidden}.dnb-core-style table,body table{border-collapse:collapse}.dnb-core-style button,.dnb-core-style input,.dnb-core-style select,.dnb-core-style textarea,body button,body input,body select,body textarea{font-family:inherit;font-size:inherit;line-height:inherit}.dnb-core-style button,.dnb-core-style figure,.dnb-core-style input,.dnb-core-style select,body button,body figure,body input,body select{margin:0}.dnb-core-style button,body button{overflow:visible;text-transform:none}.dnb-core-style fieldset,body fieldset{padding:.35rem .75rem .625rem}.dnb-core-style input,body input{overflow:visible;word-break:normal}.dnb-core-style legend,body legend{color:inherit;display:table;max-width:100%;white-space:normal}.dnb-core-style progress,body progress{display:inline-block;vertical-align:baseline}.dnb-core-style select,body select{text-transform:none}.dnb-core-style textarea,body textarea{overflow:auto;resize:vertical}.dnb-core-style [type=checkbox],.dnb-core-style [type=radio],body [type=checkbox],body [type=radio]{padding:0}.dnb-core-style input[type=search],body input[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}.dnb-core-style ::-webkit-inner-spin-button,.dnb-core-style ::-webkit-outer-spin-button,body ::-webkit-inner-spin-button,body ::-webkit-outer-spin-button{height:auto}.dnb-core-style ::input-placeholder,body ::input-placeholder{color:inherit;opacity:.54}.dnb-core-style ::-webkit-search-decoration,body ::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.dnb-core-style ::-webkit-file-upload-button,body ::-webkit-file-upload-button{background-color:transparent;border:none;font:inherit}.dnb-core-style ::-moz-focus-inner,body ::-moz-focus-inner{border-style:none;padding:0}.dnb-core-style details,body details{display:block}.dnb-core-style summary,body summary{display:list-item}.dnb-core-style canvas,body canvas{display:inline-block}.dnb-core-style template,body template{display:none}.dnb-core-style [tabindex],.dnb-core-style a,.dnb-core-style area,.dnb-core-style button,.dnb-core-style input,.dnb-core-style label,.dnb-core-style select,.dnb-core-style summary,.dnb-core-style textarea,body [tabindex],body a,body area,body button,body input,body label,body select,body summary,body textarea{touch-action:manipulation}.dnb-core-style [hidden],body [hidden]{display:none}.dnb-core-style [aria-busy=true],body [aria-busy=true]{cursor:progress}.dnb-core-style [aria-controls]:not(input),body [aria-controls]:not(input){cursor:pointer}.dnb-core-style [aria-disabled=true],.dnb-core-style [disabled],body [aria-disabled=true],body [disabled]{cursor:not-allowed}.dnb-core-style [aria-hidden=false][hidden]:not(:focus),body [aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);display:inherit;position:absolute}@media print{.dnb-core-style,body{background-color:#fff;color:#000}}.dnb-core-style .eufemia-theme,body .eufemia-theme{color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis)}.dnb-no-focus,.dnb-tab-focus,.dnb-tab-focus:focus{outline:none}html[data-whatinput=keyboard] .dnb-tab-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-mouse-focus,.dnb-mouse-focus:focus{outline:none}html[data-whatinput=mouse] .dnb-mouse-focus:focus{box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-focus-ring,html[data-whatinput=mouse] .dnb-mouse-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent}.dnb-focus-ring{box-shadow:0 0 0 var(--border-width) var(--border-color)!important}.dnb-scrollbar-appearance{-webkit-overflow-scrolling:touch;-ms-overflow-style:auto;scrollbar-color:var(--scrollbar-thumb-color,#888) transparent}@supports not (scrollbar-color:auto){.dnb-scrollbar-appearance::-webkit-scrollbar{background-color:var(--scrollbar-track-color,#eee);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:vertical{width:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:horizontal{height:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-color,#888);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover-color,#666)}}.dnb-skip-link{opacity:.3;position:absolute;top:-100vh;transition:opacity .3s ease-out;z-index:0}.dnb-skip-link--active,.dnb-skip-link:focus{background-color:transparent;border:none;border-radius:0;box-shadow:none;color:var(--skip-link-color);font-size:var(--font-size-basis);left:40%;margin:0;outline:none;padding:.5rem 1rem;position:fixed;text-align:center;-webkit-text-decoration:none;text-decoration:none;top:5%;user-select:none;-webkit-user-select:none;white-space:nowrap;z-index:9999}.dnb-skip-link--active:after,.dnb-skip-link:focus:after{background-color:hsla(0,0%,100%,.85);box-shadow:150vw 150vh 0 0 hsla(0,0%,100%,.85);content:"";height:150vh;left:-200vw;position:absolute;top:-200vh;width:150vw;z-index:-2}.dnb-skip-link--active:before,.dnb-skip-link:focus:before{background-color:var(--skip-link-background);border-radius:1.5rem;content:"";height:100%;left:0;outline:none;position:absolute;top:0;width:100%;z-index:-1}html[data-whatinput=mouse] .dnb-skip-link--active:before,html[data-whatinput=mouse] .dnb-skip-link:focus:before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:hover:before,.dnb-skip-link:focus:hover:before{background-color:var(--skip-link-background--hover)}.dnb-skip-link--active:active:before,.dnb-skip-link:focus:active:before{background-color:var(--skip-link-background--active)}.dnb-skip-link--active:focus:not(:active):before,.dnb-skip-link:focus:focus:not(:active):before{outline:none}html[data-whatinput=keyboard] .dnb-skip-link--active:focus:not(:active):before,html[data-whatinput=keyboard] .dnb-skip-link:focus:focus:not(:active):before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:focus,.dnb-skip-link:focus:focus{opacity:1}.dnb-skip-link--active:hover,.dnb-skip-link:focus:hover{background-color:transparent;box-shadow:none;color:var(--skip-link-color--hover)}.dnb-skip-link--active:focus:not(:hover):not(:active),.dnb-skip-link:focus:focus:not(:hover):not(:active){background-color:transparent;box-shadow:none;color:var(--skip-link-color)}.dnb-skip-link--active:active,.dnb-skip-link:focus:active{background-color:transparent;color:var(--skip-link-color--active)}html[data-whatintent=touch] .dnb-skip-link{display:none}.dnb-alignment-helper,.dnb-alignment-helper:before{speak:none;display:inline-block;font-size:var(--font-size-small);height:0;width:0}.dnb-alignment-helper:before{content:"‌"}.dnb-drop-shadow{box-shadow:var(--shadow-default)}.dnb-sr-only{-webkit-touch-callout:none!important;border:0!important;clip-path:inset(50%)!important;margin:0!important;max-height:1px!important;max-width:1px!important;overflow:hidden!important;padding:0!important;pointer-events:none!important;position:absolute!important;-webkit-user-select:none!important;user-select:none!important;white-space:nowrap!important}.dnb-suffix{font-size:var(--font-size-basis);line-height:var(--line-height-basis);padding-left:.5rem;word-break:normal}
@@ -1,6 +1,7 @@
1
1
  import useUpload from './useUpload';
2
2
  import { defaultProps } from './UploadContext';
3
3
  import type { UploadAllProps } from './types';
4
+ export type * from './types';
4
5
  export { defaultProps };
5
6
  declare const Upload: {
6
7
  (localProps: UploadAllProps): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"Upload.js","names":["React","useCallback","classnames","createSpacingClasses","Provider","Context","extendPropsWithContext","makeUniqueId","UploadFileInput","useUpload","UploadDropzone","UploadContext","defaultProps","verifyFiles","UploadFileList","UploadInfo","Upload","localProps","context","useContext","_context$getTranslati","getTranslation","buttonTextSingular","textSingular","translations","_objectWithoutProperties","_excluded","filesAmountLimit","buttonText","text","extendedProps","skeleton","id","className","acceptedFileTypes","fileMaxSize","onChange","onFileDelete","title","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","loadingText","errorLargeFile","errorUnsupportedFile","errorAmountLimit","deleteButton","fileListAriaLabel","props","_excluded2","spacingClasses","files","setFiles","setInternalFiles","getExistingFile","onInputUpload","newFiles","mergedFiles","map","fileItem","file","existingFile","exists","Boolean","verifiedFiles","filter","_ref","validFiles","slice","createElement","value","_objectSpread","_extends","_UploadInfo","_UploadFileInput","_UploadFileList","_formElement","_supportsSpacingProps"],"sources":["../../../../src/components/upload/Upload.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport classnames from 'classnames'\n\n// Shared\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport Provider from '../../shared/Provider'\nimport Context from '../../shared/Context'\nimport {\n extendPropsWithContext,\n makeUniqueId,\n} from '../../shared/component-helper'\n\n// Internal\nimport UploadFileInput from './UploadFileInput'\nimport useUpload from './useUpload'\nimport UploadDropzone from './UploadDropzone'\nimport { UploadContext, defaultProps } from './UploadContext'\nimport { verifyFiles } from './UploadVerify'\n\nimport type { UploadFile, UploadAllProps } from './types'\nimport UploadFileList from './UploadFileList'\nimport UploadInfo from './UploadInfo'\n\nexport { defaultProps }\n\nconst Upload = (localProps: UploadAllProps) => {\n const context = React.useContext(Context)\n\n const { buttonTextSingular, textSingular, ...translations } =\n context.getTranslation(localProps).Upload\n\n if (localProps?.filesAmountLimit === 1) {\n translations.buttonText = buttonTextSingular\n translations.text = textSingular\n }\n\n const extendedProps = extendPropsWithContext(\n localProps,\n defaultProps,\n { skeleton: context?.skeleton },\n translations,\n context.Upload\n )\n\n const {\n id,\n skeleton,\n className,\n acceptedFileTypes,\n filesAmountLimit,\n fileMaxSize,\n onChange,\n onFileDelete, // eslint-disable-line\n title, // eslint-disable-line\n text, // eslint-disable-line\n fileTypeDescription, // eslint-disable-line\n fileSizeDescription, // eslint-disable-line\n fileAmountDescription, // eslint-disable-line\n fileSizeContent, // eslint-disable-line\n buttonText, // eslint-disable-line\n loadingText, // eslint-disable-line\n errorLargeFile,\n errorUnsupportedFile,\n errorAmountLimit, // eslint-disable-line\n deleteButton, // eslint-disable-line\n fileListAriaLabel, // eslint-disable-line\n ...props\n } = extendedProps\n\n const spacingClasses = createSpacingClasses(props)\n\n const { files, setFiles, setInternalFiles, getExistingFile } =\n useUpload(id)\n\n const onInputUpload = useCallback(\n (newFiles: UploadFile[]) => {\n const mergedFiles = [\n ...files,\n ...newFiles.map((fileItem) => {\n const { file } = fileItem\n\n const existingFile = getExistingFile(file, files)\n\n fileItem.exists = Boolean(existingFile)\n fileItem.id = fileItem.exists ? existingFile.id : makeUniqueId()\n\n return fileItem\n }),\n ]\n\n const verifiedFiles = verifyFiles(\n mergedFiles.filter(({ exists }) => !exists),\n {\n fileMaxSize,\n acceptedFileTypes,\n errorUnsupportedFile,\n errorLargeFile,\n }\n )\n\n const validFiles = [...verifiedFiles].slice(0, filesAmountLimit)\n\n setFiles(validFiles)\n setInternalFiles(mergedFiles)\n\n if (typeof onChange === 'function') {\n onChange({ files: validFiles })\n }\n\n return validFiles\n },\n [\n acceptedFileTypes,\n errorLargeFile,\n errorUnsupportedFile,\n fileMaxSize,\n files,\n filesAmountLimit,\n getExistingFile,\n onChange,\n setFiles,\n setInternalFiles,\n ]\n )\n\n return (\n <UploadContext.Provider\n value={{\n ...extendedProps,\n id,\n onInputUpload,\n }}\n >\n <Provider skeleton={skeleton}>\n <UploadDropzone\n className={classnames('dnb-upload', spacingClasses, className)}\n {...props}\n >\n <UploadInfo />\n\n <UploadFileInput />\n\n <UploadFileList />\n </UploadDropzone>\n </Provider>\n </UploadContext.Provider>\n )\n}\n\nUpload.useUpload = useUpload\n\nUpload._formElement = true\nUpload._supportsSpacingProps = true\n\nexport default Upload\n"],"mappings":"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"}
1
+ {"version":3,"file":"Upload.js","names":["React","useCallback","classnames","createSpacingClasses","Provider","Context","extendPropsWithContext","makeUniqueId","UploadFileInput","useUpload","UploadDropzone","UploadContext","defaultProps","verifyFiles","UploadFileList","UploadInfo","Upload","localProps","context","useContext","_context$getTranslati","getTranslation","buttonTextSingular","textSingular","translations","_objectWithoutProperties","_excluded","filesAmountLimit","buttonText","text","extendedProps","skeleton","id","className","acceptedFileTypes","fileMaxSize","onChange","onFileDelete","title","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","loadingText","errorLargeFile","errorUnsupportedFile","errorAmountLimit","deleteButton","fileListAriaLabel","props","_excluded2","spacingClasses","files","setFiles","setInternalFiles","getExistingFile","onInputUpload","newFiles","mergedFiles","map","fileItem","file","existingFile","exists","Boolean","verifiedFiles","filter","_ref","validFiles","slice","createElement","value","_objectSpread","_extends","_UploadInfo","_UploadFileInput","_UploadFileList","_formElement","_supportsSpacingProps"],"sources":["../../../../src/components/upload/Upload.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport classnames from 'classnames'\n\n// Shared\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport Provider from '../../shared/Provider'\nimport Context from '../../shared/Context'\nimport {\n extendPropsWithContext,\n makeUniqueId,\n} from '../../shared/component-helper'\n\n// Internal\nimport UploadFileInput from './UploadFileInput'\nimport useUpload from './useUpload'\nimport UploadDropzone from './UploadDropzone'\nimport { UploadContext, defaultProps } from './UploadContext'\nimport { verifyFiles } from './UploadVerify'\n\nimport type { UploadFile, UploadAllProps } from './types'\nimport UploadFileList from './UploadFileList'\nimport UploadInfo from './UploadInfo'\n\nexport type * from './types'\nexport { defaultProps }\n\nconst Upload = (localProps: UploadAllProps) => {\n const context = React.useContext(Context)\n\n const { buttonTextSingular, textSingular, ...translations } =\n context.getTranslation(localProps).Upload\n\n if (localProps?.filesAmountLimit === 1) {\n translations.buttonText = buttonTextSingular\n translations.text = textSingular\n }\n\n const extendedProps = extendPropsWithContext(\n localProps,\n defaultProps,\n { skeleton: context?.skeleton },\n translations,\n context.Upload\n )\n\n const {\n id,\n skeleton,\n className,\n acceptedFileTypes,\n filesAmountLimit,\n fileMaxSize,\n onChange,\n onFileDelete, // eslint-disable-line\n title, // eslint-disable-line\n text, // eslint-disable-line\n fileTypeDescription, // eslint-disable-line\n fileSizeDescription, // eslint-disable-line\n fileAmountDescription, // eslint-disable-line\n fileSizeContent, // eslint-disable-line\n buttonText, // eslint-disable-line\n loadingText, // eslint-disable-line\n errorLargeFile,\n errorUnsupportedFile,\n errorAmountLimit, // eslint-disable-line\n deleteButton, // eslint-disable-line\n fileListAriaLabel, // eslint-disable-line\n ...props\n } = extendedProps\n\n const spacingClasses = createSpacingClasses(props)\n\n const { files, setFiles, setInternalFiles, getExistingFile } =\n useUpload(id)\n\n const onInputUpload = useCallback(\n (newFiles: UploadFile[]) => {\n const mergedFiles = [\n ...files,\n ...newFiles.map((fileItem) => {\n const { file } = fileItem\n\n const existingFile = getExistingFile(file, files)\n\n fileItem.exists = Boolean(existingFile)\n fileItem.id = fileItem.exists ? existingFile.id : makeUniqueId()\n\n return fileItem\n }),\n ]\n\n const verifiedFiles = verifyFiles(\n mergedFiles.filter(({ exists }) => !exists),\n {\n fileMaxSize,\n acceptedFileTypes,\n errorUnsupportedFile,\n errorLargeFile,\n }\n )\n\n const validFiles = [...verifiedFiles].slice(0, filesAmountLimit)\n\n setFiles(validFiles)\n setInternalFiles(mergedFiles)\n\n if (typeof onChange === 'function') {\n onChange({ files: validFiles })\n }\n\n return validFiles\n },\n [\n acceptedFileTypes,\n errorLargeFile,\n errorUnsupportedFile,\n fileMaxSize,\n files,\n filesAmountLimit,\n getExistingFile,\n onChange,\n setFiles,\n setInternalFiles,\n ]\n )\n\n return (\n <UploadContext.Provider\n value={{\n ...extendedProps,\n id,\n onInputUpload,\n }}\n >\n <Provider skeleton={skeleton}>\n <UploadDropzone\n className={classnames('dnb-upload', spacingClasses, className)}\n {...props}\n >\n <UploadInfo />\n\n <UploadFileInput />\n\n <UploadFileList />\n </UploadDropzone>\n </Provider>\n </UploadContext.Provider>\n )\n}\n\nUpload.useUpload = useUpload\n\nUpload._formElement = true\nUpload._supportsSpacingProps = true\n\nexport default Upload\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { PropertiesTableProps } from '../../shared/types';
2
+ export declare const UploadProperties: PropertiesTableProps;
3
+ export declare const UploadEvents: PropertiesTableProps;
@@ -0,0 +1,50 @@
1
+ export const UploadProperties = {
2
+ acceptedFileTypes: {
3
+ doc: 'List of accepted file types.',
4
+ type: 'Array<string>',
5
+ status: 'required'
6
+ },
7
+ filesAmountLimit: {
8
+ doc: 'Defines the amount of files the user can select and upload. Defaults to 100.',
9
+ type: 'number',
10
+ status: 'optional'
11
+ },
12
+ fileMaxSize: {
13
+ doc: '`fileMaxSize` is max size of each file in MB. Defaults to 5 MB.',
14
+ type: 'number',
15
+ status: 'optional'
16
+ },
17
+ title: {
18
+ doc: 'Custom text property. Replaces the default title.',
19
+ type: 'string',
20
+ status: 'optional'
21
+ },
22
+ text: {
23
+ doc: 'Custom text property. Replaces the default text.',
24
+ type: 'string',
25
+ status: 'optional'
26
+ },
27
+ skeleton: {
28
+ doc: 'Skeleton should be applied when loading content.',
29
+ type: 'boolean',
30
+ status: 'optional'
31
+ },
32
+ '[Space](/uilib/layout/space/properties)': {
33
+ doc: 'Spacing properties like `top` or `bottom` are supported.',
34
+ type: ['string', 'object'],
35
+ status: 'optional'
36
+ }
37
+ };
38
+ export const UploadEvents = {
39
+ onChange: {
40
+ doc: 'Will be called on `files` changes made by the user. Access the files with `{ files }` (containing each a `fileItem`).',
41
+ type: 'function',
42
+ status: 'optional'
43
+ },
44
+ onFileDelete: {
45
+ doc: 'Will be called once a file gets deleted by the user. Access the deleted file with `{ fileItem }`.',
46
+ type: 'function',
47
+ status: 'optional'
48
+ }
49
+ };
50
+ //# sourceMappingURL=UploadDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UploadDocs.js","names":["UploadProperties","acceptedFileTypes","doc","type","status","filesAmountLimit","fileMaxSize","title","text","skeleton","UploadEvents","onChange","onFileDelete"],"sources":["../../../../src/components/upload/UploadDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const UploadProperties: PropertiesTableProps = {\n acceptedFileTypes: {\n doc: 'List of accepted file types.',\n type: 'Array<string>',\n status: 'required',\n },\n filesAmountLimit: {\n doc: 'Defines the amount of files the user can select and upload. Defaults to 100.',\n type: 'number',\n status: 'optional',\n },\n fileMaxSize: {\n doc: '`fileMaxSize` is max size of each file in MB. Defaults to 5 MB.',\n type: 'number',\n status: 'optional',\n },\n title: {\n doc: 'Custom text property. Replaces the default title.',\n type: 'string',\n status: 'optional',\n },\n text: {\n doc: 'Custom text property. Replaces the default text.',\n type: 'string',\n status: 'optional',\n },\n skeleton: {\n doc: 'Skeleton should be applied when loading content.',\n type: 'boolean',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const UploadEvents: PropertiesTableProps = {\n onChange: {\n doc: 'Will be called on `files` changes made by the user. Access the files with `{ files }` (containing each a `fileItem`).',\n type: 'function',\n status: 'optional',\n },\n onFileDelete: {\n doc: 'Will be called once a file gets deleted by the user. Access the deleted file with `{ fileItem }`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,gBAAsC,GAAG;EACpDC,iBAAiB,EAAE;IACjBC,GAAG,EAAE,8BAA8B;IACnCC,IAAI,EAAE,eAAe;IACrBC,MAAM,EAAE;EACV,CAAC;EACDC,gBAAgB,EAAE;IAChBH,GAAG,EAAE,8EAA8E;IACnFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,WAAW,EAAE;IACXJ,GAAG,EAAE,iEAAiE;IACtEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,KAAK,EAAE;IACLL,GAAG,EAAE,mDAAmD;IACxDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,IAAI,EAAE;IACJN,GAAG,EAAE,kDAAkD;IACvDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,QAAQ,EAAE;IACRP,GAAG,EAAE,kDAAkD;IACvDC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMM,YAAkC,GAAG;EAChDC,QAAQ,EAAE;IACRT,GAAG,EAAE,uHAAuH;IAC5HC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDQ,YAAY,EAAE;IACZV,GAAG,EAAE,mGAAmG;IACxGC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC"}
@@ -1,8 +1,10 @@
1
+ "use client";
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
5
  var _svg;
4
6
  const _excluded = ["children", "className"];
5
- import React from 'react';
7
+ import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';
6
8
  import classnames from 'classnames';
7
9
  import HeightAnimation from '../height-animation/HeightAnimation';
8
10
  import { UploadContext } from './UploadContext';
@@ -13,14 +15,14 @@ export default function UploadDropzone(_ref) {
13
15
  } = _ref,
14
16
  rest = _objectWithoutProperties(_ref, _excluded);
15
17
  const props = rest;
16
- const context = React.useContext(UploadContext);
17
- const [hover, setHover] = React.useState(false);
18
- const hoverTimeout = React.useRef();
18
+ const context = useContext(UploadContext);
19
+ const [hover, setHover] = useState(false);
20
+ const hoverTimeout = useRef();
19
21
  const {
20
22
  onInputUpload,
21
23
  id
22
24
  } = context;
23
- const getFiles = event => {
25
+ const getFiles = useCallback(event => {
24
26
  const fileData = event.dataTransfer;
25
27
  const files = [];
26
28
  Array.from(fileData.files).forEach(file => {
@@ -29,28 +31,28 @@ export default function UploadDropzone(_ref) {
29
31
  });
30
32
  });
31
33
  return files;
32
- };
33
- const hoverHandler = (event, state) => {
34
+ }, []);
35
+ const clearTimers = useCallback(() => {
36
+ clearTimeout(hoverTimeout.current);
37
+ }, []);
38
+ const hoverHandler = useCallback((event, state) => {
34
39
  event.stopPropagation();
35
40
  event.preventDefault();
36
41
  clearTimers();
37
42
  setHover(state);
38
- };
39
- const dropHandler = event => {
43
+ }, [clearTimers]);
44
+ const dropHandler = useCallback(event => {
40
45
  const files = getFiles(event);
41
46
  onInputUpload(files);
42
47
  hoverHandler(event, false);
43
- };
44
- const dragEnterHandler = event => {
48
+ }, [getFiles, onInputUpload, hoverHandler]);
49
+ const dragEnterHandler = useCallback(event => {
45
50
  hoverHandler(event, true);
46
- };
47
- const dragLeaveHandler = event => {
51
+ }, [hoverHandler]);
52
+ const dragLeaveHandler = useCallback(event => {
48
53
  hoverHandler(event, false);
49
- };
50
- const clearTimers = () => {
51
- clearTimeout(hoverTimeout.current);
52
- };
53
- React.useEffect(() => {
54
+ }, [hoverHandler]);
55
+ useEffect(() => {
54
56
  const elem = document.body;
55
57
  const execute = () => {
56
58
  try {
@@ -77,7 +79,7 @@ export default function UploadDropzone(_ref) {
77
79
  }
78
80
  } catch (e) {}
79
81
  };
80
- }, []);
82
+ }, [clearTimers, dragEnterHandler, dragLeaveHandler, dropHandler, id]);
81
83
  return React.createElement(HeightAnimation, _extends({
82
84
  className: classnames(className, hover && 'dnb-upload--active'),
83
85
  onDrop: dropHandler,
@@ -1 +1 @@
1
- {"version":3,"file":"UploadDropzone.js","names":["React","classnames","HeightAnimation","UploadContext","UploadDropzone","_ref","children","className","rest","_objectWithoutProperties","_excluded","props","context","useContext","hover","setHover","useState","hoverTimeout","useRef","onInputUpload","id","getFiles","event","fileData","dataTransfer","files","Array","from","forEach","file","push","hoverHandler","state","stopPropagation","preventDefault","clearTimers","dropHandler","dragEnterHandler","dragLeaveHandler","clearTimeout","current","useEffect","elem","document","body","execute","hasAttribute","add","addEventListener","setAttribute","e","timeoutId","setTimeout","getAttribute","remove","removeEventListener","removeAttribute","createElement","_extends","onDrop","onDragOver","onDragLeave","_svg","xmlns","fill","width","height","rx","ry","strokeWidth","strokeDashoffset","strokeDasharray"],"sources":["../../../../src/components/upload/UploadDropzone.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\n\nimport HeightAnimation from '../height-animation/HeightAnimation'\nimport { UploadContext } from './UploadContext'\nimport type { UploadAllProps, UploadFile, UploadProps } from './types'\n\nexport type UploadDragEvent = React.DragEvent | DragEvent\n\nexport default function UploadDropzone({\n children,\n className,\n ...rest\n}: Partial<UploadAllProps>) {\n const props = rest as Omit<UploadProps, 'title' | 'onChange'>\n const context = React.useContext(UploadContext)\n const [hover, setHover] = React.useState(false)\n const hoverTimeout = React.useRef<NodeJS.Timer>()\n\n const { onInputUpload, id } = context\n\n const getFiles = (event: UploadDragEvent) => {\n const fileData = event.dataTransfer\n\n const files: UploadFile[] = []\n\n Array.from(fileData.files).forEach((file) => {\n files.push({ file })\n })\n\n return files\n }\n\n const hoverHandler = (event: UploadDragEvent, state: boolean) => {\n event.stopPropagation()\n event.preventDefault()\n clearTimers()\n setHover(state)\n }\n\n const dropHandler = (event: UploadDragEvent) => {\n const files = getFiles(event)\n\n onInputUpload(files)\n hoverHandler(event, false)\n }\n\n const dragEnterHandler = (event: UploadDragEvent) => {\n hoverHandler(event, true)\n }\n\n const dragLeaveHandler = (event: UploadDragEvent) => {\n hoverHandler(event, false)\n }\n\n const clearTimers = () => {\n clearTimeout(hoverTimeout.current)\n }\n\n React.useEffect(() => {\n const elem = document.body\n const execute = () => {\n try {\n if (!elem.hasAttribute('data-upload-drop-zone')) {\n const add = elem.addEventListener\n add('drop', dropHandler)\n add('dragover', dragEnterHandler)\n add('dragleave', dragLeaveHandler)\n elem.setAttribute('data-upload-drop-zone', id)\n }\n } catch (e) {\n //\n }\n }\n const timeoutId = setTimeout(execute, 10) // Add the listeners delayed (ms) without prioritization, in case of re-renders\n\n return () => {\n clearTimers()\n clearTimeout(timeoutId)\n try {\n if (elem.getAttribute('data-upload-drop-zone') === id) {\n const remove = elem.removeEventListener\n remove('drop', dropHandler)\n remove('dragover', dragEnterHandler)\n remove('dragleave', dragLeaveHandler)\n elem.removeAttribute('data-upload-drop-zone')\n }\n } catch (e) {\n //\n }\n }\n }, [])\n\n return (\n <HeightAnimation\n className={classnames(className, hover && 'dnb-upload--active')}\n onDrop={dropHandler}\n onDragOver={dragEnterHandler}\n onDragLeave={dragLeaveHandler}\n {...props}\n >\n {children}\n\n <svg\n className=\"dnb-upload__outline\"\n aria-hidden\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n >\n <rect\n width=\"100%\"\n height=\"100%\"\n rx=\"0.5rem\"\n ry=\"0.5rem\"\n strokeWidth=\"3\"\n strokeDashoffset=\"4\"\n strokeDasharray=\"8 8\"\n />\n </svg>\n </HeightAnimation>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"UploadDropzone.js","names":["React","useCallback","useContext","useEffect","useRef","useState","classnames","HeightAnimation","UploadContext","UploadDropzone","_ref","children","className","rest","_objectWithoutProperties","_excluded","props","context","hover","setHover","hoverTimeout","onInputUpload","id","getFiles","event","fileData","dataTransfer","files","Array","from","forEach","file","push","clearTimers","clearTimeout","current","hoverHandler","state","stopPropagation","preventDefault","dropHandler","dragEnterHandler","dragLeaveHandler","elem","document","body","execute","hasAttribute","add","addEventListener","setAttribute","e","timeoutId","setTimeout","getAttribute","remove","removeEventListener","removeAttribute","createElement","_extends","onDrop","onDragOver","onDragLeave","_svg","xmlns","fill","width","height","rx","ry","strokeWidth","strokeDashoffset","strokeDasharray"],"sources":["../../../../src/components/upload/UploadDropzone.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport classnames from 'classnames'\n\nimport HeightAnimation from '../height-animation/HeightAnimation'\nimport { UploadContext } from './UploadContext'\nimport type { UploadAllProps, UploadFile, UploadProps } from './types'\n\nexport type UploadDragEvent = React.DragEvent | DragEvent\n\nexport default function UploadDropzone({\n children,\n className,\n ...rest\n}: Partial<UploadAllProps>) {\n const props = rest as Omit<UploadProps, 'title' | 'onChange'>\n const context = useContext(UploadContext)\n const [hover, setHover] = useState(false)\n const hoverTimeout = useRef<NodeJS.Timer>()\n\n const { onInputUpload, id } = context\n\n const getFiles = useCallback((event: UploadDragEvent) => {\n const fileData = event.dataTransfer\n\n const files: UploadFile[] = []\n\n Array.from(fileData.files).forEach((file) => {\n files.push({ file })\n })\n\n return files\n }, [])\n\n const clearTimers = useCallback(() => {\n clearTimeout(hoverTimeout.current)\n }, [])\n\n const hoverHandler = useCallback(\n (event: UploadDragEvent, state: boolean) => {\n event.stopPropagation()\n event.preventDefault()\n clearTimers()\n setHover(state)\n },\n [clearTimers]\n )\n\n const dropHandler = useCallback(\n (event: UploadDragEvent) => {\n const files = getFiles(event)\n\n onInputUpload(files)\n hoverHandler(event, false)\n },\n [getFiles, onInputUpload, hoverHandler]\n )\n\n const dragEnterHandler = useCallback(\n (event: UploadDragEvent) => {\n hoverHandler(event, true)\n },\n [hoverHandler]\n )\n\n const dragLeaveHandler = useCallback(\n (event: UploadDragEvent) => {\n hoverHandler(event, false)\n },\n [hoverHandler]\n )\n\n useEffect(() => {\n const elem = document.body\n const execute = () => {\n try {\n if (!elem.hasAttribute('data-upload-drop-zone')) {\n const add = elem.addEventListener\n add('drop', dropHandler)\n add('dragover', dragEnterHandler)\n add('dragleave', dragLeaveHandler)\n elem.setAttribute('data-upload-drop-zone', id)\n }\n } catch (e) {\n //\n }\n }\n const timeoutId = setTimeout(execute, 10) // Add the listeners delayed (ms) without prioritization, in case of re-renders\n\n return () => {\n clearTimers()\n clearTimeout(timeoutId)\n try {\n if (elem.getAttribute('data-upload-drop-zone') === id) {\n const remove = elem.removeEventListener\n remove('drop', dropHandler)\n remove('dragover', dragEnterHandler)\n remove('dragleave', dragLeaveHandler)\n elem.removeAttribute('data-upload-drop-zone')\n }\n } catch (e) {\n //\n }\n }\n }, [clearTimers, dragEnterHandler, dragLeaveHandler, dropHandler, id])\n\n return (\n <HeightAnimation\n className={classnames(className, hover && 'dnb-upload--active')}\n onDrop={dropHandler}\n onDragOver={dragEnterHandler}\n onDragLeave={dragLeaveHandler}\n {...props}\n >\n {children}\n\n <svg\n className=\"dnb-upload__outline\"\n aria-hidden\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n >\n <rect\n width=\"100%\"\n height=\"100%\"\n rx=\"0.5rem\"\n ry=\"0.5rem\"\n strokeWidth=\"3\"\n strokeDashoffset=\"4\"\n strokeDasharray=\"8 8\"\n />\n </svg>\n </HeightAnimation>\n )\n}\n"],"mappings":"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"}
@@ -17,20 +17,21 @@ const UploadInfo = () => {
17
17
  fileAmountDescription,
18
18
  fileSizeContent,
19
19
  filesAmountLimit,
20
- fileMaxSize
20
+ fileMaxSize,
21
+ children
21
22
  } = context;
22
- const prettyfiedAcceptedFileFormats = acceptedFileTypes.join(', ').toUpperCase();
23
+ const prettifiedAcceptedFileFormats = acceptedFileTypes.join(', ').toUpperCase();
23
24
  return React.createElement(React.Fragment, null, React.createElement(Lead, {
24
25
  space: "0"
25
26
  }, title), React.createElement(P, {
26
27
  top: "xx-small",
27
28
  className: "dnb-upload__text"
28
- }, text), React.createElement(Dl, {
29
+ }, text), children, React.createElement(Dl, {
29
30
  top: "small",
30
31
  bottom: 0,
31
32
  layout: "horizontal",
32
33
  className: "dnb-upload__condition-list"
33
- }, prettyfiedAcceptedFileFormats && React.createElement(Dl.Item, null, React.createElement(Dt, null, fileTypeDescription), React.createElement(Dd, null, prettyfiedAcceptedFileFormats)), React.createElement(Dl.Item, null, React.createElement(Dt, null, fileSizeDescription), React.createElement(Dd, null, String(fileSizeContent).replace('%size', format(fileMaxSize).toString()))), filesAmountLimit < defaultProps.filesAmountLimit && React.createElement(Dl.Item, null, React.createElement(Dt, null, fileAmountDescription), React.createElement(Dd, null, filesAmountLimit))));
34
+ }, prettifiedAcceptedFileFormats && React.createElement(Dl.Item, null, React.createElement(Dt, null, fileTypeDescription), React.createElement(Dd, null, prettifiedAcceptedFileFormats)), React.createElement(Dl.Item, null, React.createElement(Dt, null, fileSizeDescription), React.createElement(Dd, null, String(fileSizeContent).replace('%size', format(fileMaxSize).toString()))), filesAmountLimit < defaultProps.filesAmountLimit && React.createElement(Dl.Item, null, React.createElement(Dt, null, fileAmountDescription), React.createElement(Dd, null, filesAmountLimit))));
34
35
  };
35
36
  export default UploadInfo;
36
37
  //# sourceMappingURL=UploadInfo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UploadInfo.js","names":["React","defaultProps","UploadContext","Lead","P","Dl","Dt","Dd","format","UploadInfo","context","useContext","title","text","acceptedFileTypes","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","filesAmountLimit","fileMaxSize","prettyfiedAcceptedFileFormats","join","toUpperCase","createElement","Fragment","space","top","className","bottom","layout","Item","String","replace","toString"],"sources":["../../../../src/components/upload/UploadInfo.tsx"],"sourcesContent":["import React from 'react'\nimport { defaultProps, UploadContext } from './UploadContext'\nimport Lead from '../../elements/Lead'\nimport P from '../../elements/P'\nimport Dl from '../../elements/Dl'\nimport Dt from '../../elements/Dt'\nimport Dd from '../../elements/Dd'\nimport { format } from '../number-format/NumberUtils'\n\nconst UploadInfo = () => {\n const context = React.useContext(UploadContext)\n\n const {\n title,\n text,\n acceptedFileTypes,\n fileTypeDescription,\n fileSizeDescription,\n fileAmountDescription,\n fileSizeContent,\n filesAmountLimit,\n fileMaxSize,\n } = context\n\n const prettyfiedAcceptedFileFormats = acceptedFileTypes\n .join(', ')\n .toUpperCase()\n\n return (\n <>\n <Lead space=\"0\">{title}</Lead>\n\n <P top=\"xx-small\" className=\"dnb-upload__text\">\n {text}\n </P>\n\n <Dl\n top=\"small\"\n bottom={0}\n layout=\"horizontal\"\n className=\"dnb-upload__condition-list\"\n >\n {prettyfiedAcceptedFileFormats && (\n <Dl.Item>\n <Dt>{fileTypeDescription}</Dt>\n <Dd>{prettyfiedAcceptedFileFormats}</Dd>\n </Dl.Item>\n )}\n\n <Dl.Item>\n <Dt>{fileSizeDescription}</Dt>\n <Dd>\n {String(fileSizeContent).replace(\n '%size',\n format(fileMaxSize).toString()\n )}\n </Dd>\n </Dl.Item>\n\n {filesAmountLimit < defaultProps.filesAmountLimit && (\n <Dl.Item>\n <Dt>{fileAmountDescription}</Dt>\n <Dd>{filesAmountLimit}</Dd>\n </Dl.Item>\n )}\n </Dl>\n </>\n )\n}\n\nexport default UploadInfo\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,EAAEC,aAAa,QAAQ,iBAAiB;AAC7D,OAAOC,IAAI,MAAM,qBAAqB;AACtC,OAAOC,CAAC,MAAM,kBAAkB;AAChC,OAAOC,EAAE,MAAM,mBAAmB;AAClC,OAAOC,EAAE,MAAM,mBAAmB;AAClC,OAAOC,EAAE,MAAM,mBAAmB;AAClC,SAASC,MAAM,QAAQ,8BAA8B;AAErD,MAAMC,UAAU,GAAGA,CAAA,KAAM;EACvB,MAAMC,OAAO,GAAGV,KAAK,CAACW,UAAU,CAACT,aAAa,CAAC;EAE/C,MAAM;IACJU,KAAK;IACLC,IAAI;IACJC,iBAAiB;IACjBC,mBAAmB;IACnBC,mBAAmB;IACnBC,qBAAqB;IACrBC,eAAe;IACfC,gBAAgB;IAChBC;EACF,CAAC,GAAGV,OAAO;EAEX,MAAMW,6BAA6B,GAAGP,iBAAiB,CACpDQ,IAAI,CAAC,IAAI,CAAC,CACVC,WAAW,CAAC,CAAC;EAEhB,OACEvB,KAAA,CAAAwB,aAAA,CAAAxB,KAAA,CAAAyB,QAAA,QACEzB,KAAA,CAAAwB,aAAA,CAACrB,IAAI;IAACuB,KAAK,EAAC;EAAG,GAAEd,KAAY,CAAC,EAE9BZ,KAAA,CAAAwB,aAAA,CAACpB,CAAC;IAACuB,GAAG,EAAC,UAAU;IAACC,SAAS,EAAC;EAAkB,GAC3Cf,IACA,CAAC,EAEJb,KAAA,CAAAwB,aAAA,CAACnB,EAAE;IACDsB,GAAG,EAAC,OAAO;IACXE,MAAM,EAAE,CAAE;IACVC,MAAM,EAAC,YAAY;IACnBF,SAAS,EAAC;EAA4B,GAErCP,6BAA6B,IAC5BrB,KAAA,CAAAwB,aAAA,CAACnB,EAAE,CAAC0B,IAAI,QACN/B,KAAA,CAAAwB,aAAA,CAAClB,EAAE,QAAES,mBAAwB,CAAC,EAC9Bf,KAAA,CAAAwB,aAAA,CAACjB,EAAE,QAAEc,6BAAkC,CAChC,CACV,EAEDrB,KAAA,CAAAwB,aAAA,CAACnB,EAAE,CAAC0B,IAAI,QACN/B,KAAA,CAAAwB,aAAA,CAAClB,EAAE,QAAEU,mBAAwB,CAAC,EAC9BhB,KAAA,CAAAwB,aAAA,CAACjB,EAAE,QACAyB,MAAM,CAACd,eAAe,CAAC,CAACe,OAAO,CAC9B,OAAO,EACPzB,MAAM,CAACY,WAAW,CAAC,CAACc,QAAQ,CAAC,CAC/B,CACE,CACG,CAAC,EAETf,gBAAgB,GAAGlB,YAAY,CAACkB,gBAAgB,IAC/CnB,KAAA,CAAAwB,aAAA,CAACnB,EAAE,CAAC0B,IAAI,QACN/B,KAAA,CAAAwB,aAAA,CAAClB,EAAE,QAAEW,qBAA0B,CAAC,EAChCjB,KAAA,CAAAwB,aAAA,CAACjB,EAAE,QAAEY,gBAAqB,CACnB,CAET,CACJ,CAAC;AAEP,CAAC;AAED,eAAeV,UAAU"}
1
+ {"version":3,"file":"UploadInfo.js","names":["React","defaultProps","UploadContext","Lead","P","Dl","Dt","Dd","format","UploadInfo","context","useContext","title","text","acceptedFileTypes","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","filesAmountLimit","fileMaxSize","children","prettifiedAcceptedFileFormats","join","toUpperCase","createElement","Fragment","space","top","className","bottom","layout","Item","String","replace","toString"],"sources":["../../../../src/components/upload/UploadInfo.tsx"],"sourcesContent":["import React from 'react'\nimport { defaultProps, UploadContext } from './UploadContext'\nimport Lead from '../../elements/Lead'\nimport P from '../../elements/P'\nimport Dl from '../../elements/Dl'\nimport Dt from '../../elements/Dt'\nimport Dd from '../../elements/Dd'\nimport { format } from '../number-format/NumberUtils'\n\nconst UploadInfo = () => {\n const context = React.useContext(UploadContext)\n\n const {\n title,\n text,\n acceptedFileTypes,\n fileTypeDescription,\n fileSizeDescription,\n fileAmountDescription,\n fileSizeContent,\n filesAmountLimit,\n fileMaxSize,\n children,\n } = context\n\n const prettifiedAcceptedFileFormats = acceptedFileTypes\n .join(', ')\n .toUpperCase()\n\n return (\n <>\n <Lead space=\"0\">{title}</Lead>\n\n <P top=\"xx-small\" className=\"dnb-upload__text\">\n {text}\n </P>\n\n {children}\n\n <Dl\n top=\"small\"\n bottom={0}\n layout=\"horizontal\"\n className=\"dnb-upload__condition-list\"\n >\n {prettifiedAcceptedFileFormats && (\n <Dl.Item>\n <Dt>{fileTypeDescription}</Dt>\n <Dd>{prettifiedAcceptedFileFormats}</Dd>\n </Dl.Item>\n )}\n\n <Dl.Item>\n <Dt>{fileSizeDescription}</Dt>\n <Dd>\n {String(fileSizeContent).replace(\n '%size',\n format(fileMaxSize).toString()\n )}\n </Dd>\n </Dl.Item>\n\n {filesAmountLimit < defaultProps.filesAmountLimit && (\n <Dl.Item>\n <Dt>{fileAmountDescription}</Dt>\n <Dd>{filesAmountLimit}</Dd>\n </Dl.Item>\n )}\n </Dl>\n </>\n )\n}\n\nexport default UploadInfo\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,EAAEC,aAAa,QAAQ,iBAAiB;AAC7D,OAAOC,IAAI,MAAM,qBAAqB;AACtC,OAAOC,CAAC,MAAM,kBAAkB;AAChC,OAAOC,EAAE,MAAM,mBAAmB;AAClC,OAAOC,EAAE,MAAM,mBAAmB;AAClC,OAAOC,EAAE,MAAM,mBAAmB;AAClC,SAASC,MAAM,QAAQ,8BAA8B;AAErD,MAAMC,UAAU,GAAGA,CAAA,KAAM;EACvB,MAAMC,OAAO,GAAGV,KAAK,CAACW,UAAU,CAACT,aAAa,CAAC;EAE/C,MAAM;IACJU,KAAK;IACLC,IAAI;IACJC,iBAAiB;IACjBC,mBAAmB;IACnBC,mBAAmB;IACnBC,qBAAqB;IACrBC,eAAe;IACfC,gBAAgB;IAChBC,WAAW;IACXC;EACF,CAAC,GAAGX,OAAO;EAEX,MAAMY,6BAA6B,GAAGR,iBAAiB,CACpDS,IAAI,CAAC,IAAI,CAAC,CACVC,WAAW,CAAC,CAAC;EAEhB,OACExB,KAAA,CAAAyB,aAAA,CAAAzB,KAAA,CAAA0B,QAAA,QACE1B,KAAA,CAAAyB,aAAA,CAACtB,IAAI;IAACwB,KAAK,EAAC;EAAG,GAAEf,KAAY,CAAC,EAE9BZ,KAAA,CAAAyB,aAAA,CAACrB,CAAC;IAACwB,GAAG,EAAC,UAAU;IAACC,SAAS,EAAC;EAAkB,GAC3ChB,IACA,CAAC,EAEHQ,QAAQ,EAETrB,KAAA,CAAAyB,aAAA,CAACpB,EAAE;IACDuB,GAAG,EAAC,OAAO;IACXE,MAAM,EAAE,CAAE;IACVC,MAAM,EAAC,YAAY;IACnBF,SAAS,EAAC;EAA4B,GAErCP,6BAA6B,IAC5BtB,KAAA,CAAAyB,aAAA,CAACpB,EAAE,CAAC2B,IAAI,QACNhC,KAAA,CAAAyB,aAAA,CAACnB,EAAE,QAAES,mBAAwB,CAAC,EAC9Bf,KAAA,CAAAyB,aAAA,CAAClB,EAAE,QAAEe,6BAAkC,CAChC,CACV,EAEDtB,KAAA,CAAAyB,aAAA,CAACpB,EAAE,CAAC2B,IAAI,QACNhC,KAAA,CAAAyB,aAAA,CAACnB,EAAE,QAAEU,mBAAwB,CAAC,EAC9BhB,KAAA,CAAAyB,aAAA,CAAClB,EAAE,QACA0B,MAAM,CAACf,eAAe,CAAC,CAACgB,OAAO,CAC9B,OAAO,EACP1B,MAAM,CAACY,WAAW,CAAC,CAACe,QAAQ,CAAC,CAC/B,CACE,CACG,CAAC,EAEThB,gBAAgB,GAAGlB,YAAY,CAACkB,gBAAgB,IAC/CnB,KAAA,CAAAyB,aAAA,CAACpB,EAAE,CAAC2B,IAAI,QACNhC,KAAA,CAAAyB,aAAA,CAACnB,EAAE,QAAEW,qBAA0B,CAAC,EAChCjB,KAAA,CAAAyB,aAAA,CAAClB,EAAE,QAAEY,gBAAqB,CACnB,CAET,CACJ,CAAC;AAEP,CAAC;AAED,eAAeV,UAAU"}
@@ -1,4 +1,5 @@
1
1
  import { UploadFile, UploadContextProps, UploadAcceptedFileTypes } from './types';
2
+ export declare const BYTES_IN_A_MEGA_BYTE = 1048576;
2
3
  export declare function verifyFiles(files: UploadFile[], context: Pick<UploadContextProps, 'errorUnsupportedFile' | 'errorLargeFile' | 'acceptedFileTypes' | 'fileMaxSize'>): UploadFile[];
3
4
  export declare function getFileTypeFromExtension(file: File): string;
4
5
  export declare function getAcceptedFileTypes(acceptedFileTypes: UploadAcceptedFileTypes): string;
@@ -1,5 +1,5 @@
1
1
  import { format } from '../number-format/NumberUtils';
2
- const BYTES_IN_A_MEGA_BYTE = 1048576;
2
+ export const BYTES_IN_A_MEGA_BYTE = 1048576;
3
3
  export function verifyFiles(files, context) {
4
4
  const {
5
5
  fileMaxSize,
@@ -1 +1 @@
1
- {"version":3,"file":"UploadVerify.js","names":["format","BYTES_IN_A_MEGA_BYTE","verifyFiles","files","context","fileMaxSize","acceptedFileTypes","errorLargeFile","errorUnsupportedFile","handleSize","file","size","String","replace","toString","handleType","length","fileType","hasPreferredMimeType","type","getFileTypeFromExtension","foundType","extendWithAbbreviation","some","includes","cleanedFiles","map","item","errorMessage","name","getAcceptedFileTypes","join","split","toLowerCase","abbreviations","arguments","undefined","jpg","list","Object","entries","forEach","_ref","abbr","t","push"],"sources":["../../../../src/components/upload/UploadVerify.tsx"],"sourcesContent":["import { format } from '../number-format/NumberUtils'\nimport {\n UploadFile,\n UploadContextProps,\n UploadAcceptedFileTypes,\n} from './types'\n\nconst BYTES_IN_A_MEGA_BYTE = 1048576\n\nexport function verifyFiles(\n files: UploadFile[],\n context: Pick<\n UploadContextProps,\n | 'errorUnsupportedFile'\n | 'errorLargeFile'\n | 'acceptedFileTypes'\n | 'fileMaxSize'\n >\n) {\n const {\n fileMaxSize,\n acceptedFileTypes,\n errorLargeFile,\n errorUnsupportedFile,\n } = context\n\n const handleSize = (file: File) => {\n return (\n // Converts from b (binary) to MB (decimal)\n file.size / BYTES_IN_A_MEGA_BYTE > fileMaxSize\n ? String(errorLargeFile).replace(\n '%size',\n format(fileMaxSize).toString()\n )\n : null\n )\n }\n\n const handleType = (file: File) => {\n if (acceptedFileTypes.length === 0) {\n return false\n }\n const fileType = hasPreferredMimeType(acceptedFileTypes, file)\n ? file.type\n : getFileTypeFromExtension(file) || file.type\n const foundType = extendWithAbbreviation(acceptedFileTypes).some(\n (type) => {\n /**\n * \"file.type\" can be e.g. \"images/png\"\n */\n return fileType.includes(type)\n }\n )\n return !foundType ? errorUnsupportedFile : null\n }\n\n const cleanedFiles = files.map((item) => {\n const { file } = item\n\n const errorMessage = handleSize(file) || handleType(file)\n\n if (errorMessage) {\n item.errorMessage = errorMessage\n }\n\n return item\n })\n\n return cleanedFiles\n}\n\nexport function getFileTypeFromExtension(file: File) {\n return (\n (file.name.includes('.') && file.name.replace(/.*\\.([^.]+)$/, '$1')) ||\n null\n )\n}\n\nexport function getAcceptedFileTypes(\n acceptedFileTypes: UploadAcceptedFileTypes\n) {\n return extendWithAbbreviation(acceptedFileTypes)\n .map((type) => (type.includes('/') ? type : `.${type}`))\n .join(',')\n}\n\nexport function hasPreferredMimeType(\n acceptedFileTypes: UploadAcceptedFileTypes,\n file: File\n) {\n return (\n file.type.split('/')[1] &&\n (!acceptedFileTypes?.length ||\n acceptedFileTypes?.some(\n (type) => type.toLowerCase() === file.type.toLowerCase()\n ))\n )\n}\n\nexport function extendWithAbbreviation(\n acceptedFileTypes: UploadAcceptedFileTypes,\n abbreviations = { jpg: 'jpeg' }\n) {\n const list = [...acceptedFileTypes]\n\n Object.entries(abbreviations).forEach(([type, abbr]) => {\n if (list.some((t) => t === type) && !list.some((t) => t === abbr)) {\n list.push(abbr)\n }\n })\n\n return list\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"UploadVerify.js","names":["format","BYTES_IN_A_MEGA_BYTE","verifyFiles","files","context","fileMaxSize","acceptedFileTypes","errorLargeFile","errorUnsupportedFile","handleSize","file","size","String","replace","toString","handleType","length","fileType","hasPreferredMimeType","type","getFileTypeFromExtension","foundType","extendWithAbbreviation","some","includes","cleanedFiles","map","item","errorMessage","name","getAcceptedFileTypes","join","split","toLowerCase","abbreviations","arguments","undefined","jpg","list","Object","entries","forEach","_ref","abbr","t","push"],"sources":["../../../../src/components/upload/UploadVerify.tsx"],"sourcesContent":["import { format } from '../number-format/NumberUtils'\nimport {\n UploadFile,\n UploadContextProps,\n UploadAcceptedFileTypes,\n} from './types'\n\nexport const BYTES_IN_A_MEGA_BYTE = 1048576\n\nexport function verifyFiles(\n files: UploadFile[],\n context: Pick<\n UploadContextProps,\n | 'errorUnsupportedFile'\n | 'errorLargeFile'\n | 'acceptedFileTypes'\n | 'fileMaxSize'\n >\n) {\n const {\n fileMaxSize,\n acceptedFileTypes,\n errorLargeFile,\n errorUnsupportedFile,\n } = context\n\n const handleSize = (file: File) => {\n return (\n // Converts from b (binary) to MB (decimal)\n file.size / BYTES_IN_A_MEGA_BYTE > fileMaxSize\n ? String(errorLargeFile).replace(\n '%size',\n format(fileMaxSize).toString()\n )\n : null\n )\n }\n\n const handleType = (file: File) => {\n if (acceptedFileTypes.length === 0) {\n return false\n }\n const fileType = hasPreferredMimeType(acceptedFileTypes, file)\n ? file.type\n : getFileTypeFromExtension(file) || file.type\n const foundType = extendWithAbbreviation(acceptedFileTypes).some(\n (type) => {\n /**\n * \"file.type\" can be e.g. \"images/png\"\n */\n return fileType.includes(type)\n }\n )\n return !foundType ? errorUnsupportedFile : null\n }\n\n const cleanedFiles = files.map((item) => {\n const { file } = item\n\n const errorMessage = handleSize(file) || handleType(file)\n\n if (errorMessage) {\n item.errorMessage = errorMessage\n }\n\n return item\n })\n\n return cleanedFiles\n}\n\nexport function getFileTypeFromExtension(file: File) {\n return (\n (file.name.includes('.') && file.name.replace(/.*\\.([^.]+)$/, '$1')) ||\n null\n )\n}\n\nexport function getAcceptedFileTypes(\n acceptedFileTypes: UploadAcceptedFileTypes\n) {\n return extendWithAbbreviation(acceptedFileTypes)\n .map((type) => (type.includes('/') ? type : `.${type}`))\n .join(',')\n}\n\nexport function hasPreferredMimeType(\n acceptedFileTypes: UploadAcceptedFileTypes,\n file: File\n) {\n return (\n file.type.split('/')[1] &&\n (!acceptedFileTypes?.length ||\n acceptedFileTypes?.some(\n (type) => type.toLowerCase() === file.type.toLowerCase()\n ))\n )\n}\n\nexport function extendWithAbbreviation(\n acceptedFileTypes: UploadAcceptedFileTypes,\n abbreviations = { jpg: 'jpeg' }\n) {\n const list = [...acceptedFileTypes]\n\n Object.entries(abbreviations).forEach(([type, abbr]) => {\n if (list.some((t) => t === type) && !list.some((t) => t === abbr)) {\n list.push(abbr)\n }\n })\n\n return list\n}\n"],"mappings":"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"}
@@ -54,8 +54,9 @@ export type UploadProps = {
54
54
  loadingText?: React.ReactNode;
55
55
  deleteButton?: React.ReactNode;
56
56
  fileListAriaLabel?: string;
57
+ children?: React.ReactNode;
57
58
  };
58
- export type UploadAllProps = UploadProps & SpacingProps & LocaleProps & Omit<React.HTMLProps<HTMLElement>, 'onChange'>;
59
+ export type UploadAllProps = UploadProps & SpacingProps & LocaleProps & Omit<React.HTMLProps<HTMLElement>, 'onChange' | 'title'>;
59
60
  export type UploadContextProps = {
60
61
  id?: string;
61
62
  onInputUpload: (files: UploadFile[]) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/upload/types.ts"],"sourcesContent":["import React from 'react'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport type { LocaleProps, SpacingProps } from '../../shared/types'\n\nexport type UploadAcceptedFileTypes = string[]\n\nexport type UploadProps = {\n /**\n * unique id used with the useUpload hook to manage the files\n */\n id: string\n\n /**\n * list of accepted file types.\n */\n acceptedFileTypes: UploadAcceptedFileTypes\n\n /**\n * Skeleton should be applied when loading content\n * Default: null\n */\n skeleton?: SkeletonShow\n\n /**\n * Defines the amount of files the user can select and upload\n * Default: 100\n */\n filesAmountLimit?: number\n\n /**\n * fileMaxSize is max size of each file in MB\n * Default: 5 MB\n */\n fileMaxSize?: number\n\n /**\n * will be called on `files` changes made by the user. Access the files with `{ files }`.\n */\n onChange?: ({ files }: { files: UploadFile[] }) => void\n\n /**\n * will be called once a file gets deleted by the user. Access the deleted file with `{ fileItem }`.\n */\n onFileDelete?: ({ fileItem }: { fileItem: UploadFile }) => void\n\n /**\n * Custom text properties\n */\n title?: React.ReactNode\n text?: React.ReactNode\n fileTypeDescription?: React.ReactNode\n fileSizeDescription?: React.ReactNode\n fileAmountDescription?: React.ReactNode\n fileSizeContent?: React.ReactNode\n buttonText?: React.ReactNode\n errorLargeFile?: React.ReactNode\n errorUnsupportedFile?: React.ReactNode\n errorAmountLimit?: React.ReactNode\n loadingText?: React.ReactNode\n deleteButton?: React.ReactNode\n fileListAriaLabel?: string\n}\n\nexport type UploadAllProps = UploadProps &\n SpacingProps &\n LocaleProps &\n Omit<React.HTMLProps<HTMLElement>, 'onChange'>\n\nexport type UploadContextProps = {\n id?: string\n onInputUpload: (files: UploadFile[]) => void\n} & Partial<UploadProps>\n\nexport type UploadFile = {\n file: File\n errorMessage?: React.ReactNode\n isLoading?: boolean\n exists?: boolean\n id?: string\n}\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/upload/types.ts"],"sourcesContent":["import React from 'react'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport type { LocaleProps, SpacingProps } from '../../shared/types'\n\nexport type UploadAcceptedFileTypes = string[]\n\nexport type UploadProps = {\n /**\n * unique id used with the useUpload hook to manage the files\n */\n id: string\n\n /**\n * list of accepted file types.\n */\n acceptedFileTypes: UploadAcceptedFileTypes\n\n /**\n * Skeleton should be applied when loading content\n * Default: null\n */\n skeleton?: SkeletonShow\n\n /**\n * Defines the amount of files the user can select and upload\n * Default: 100\n */\n filesAmountLimit?: number\n\n /**\n * fileMaxSize is max size of each file in MB\n * Default: 5 MB\n */\n fileMaxSize?: number\n\n /**\n * will be called on `files` changes made by the user. Access the files with `{ files }`.\n */\n onChange?: ({ files }: { files: UploadFile[] }) => void\n\n /**\n * will be called once a file gets deleted by the user. Access the deleted file with `{ fileItem }`.\n */\n onFileDelete?: ({ fileItem }: { fileItem: UploadFile }) => void\n\n /**\n * Custom text properties\n */\n title?: React.ReactNode\n text?: React.ReactNode\n fileTypeDescription?: React.ReactNode\n fileSizeDescription?: React.ReactNode\n fileAmountDescription?: React.ReactNode\n fileSizeContent?: React.ReactNode\n buttonText?: React.ReactNode\n errorLargeFile?: React.ReactNode\n errorUnsupportedFile?: React.ReactNode\n errorAmountLimit?: React.ReactNode\n loadingText?: React.ReactNode\n deleteButton?: React.ReactNode\n fileListAriaLabel?: string\n children?: React.ReactNode\n}\n\nexport type UploadAllProps = UploadProps &\n SpacingProps &\n LocaleProps &\n Omit<React.HTMLProps<HTMLElement>, 'onChange' | 'title'>\n\nexport type UploadContextProps = {\n id?: string\n onInputUpload: (files: UploadFile[]) => void\n} & Partial<UploadProps>\n\nexport type UploadFile = {\n file: File\n errorMessage?: React.ReactNode\n isLoading?: boolean\n exists?: boolean\n id?: string\n}\n"],"mappings":""}