@dnb/eufemia 10.69.1 → 10.70.1

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 (918) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/cjs/components/aria-live/AriaLiveDocs.d.ts +2 -0
  3. package/cjs/components/aria-live/AriaLiveDocs.js +54 -0
  4. package/cjs/components/aria-live/AriaLiveDocs.js.map +1 -0
  5. package/cjs/components/autocomplete/AutocompleteDocs.js +3 -3
  6. package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -1
  7. package/cjs/components/avatar/Avatar.d.ts +10 -0
  8. package/cjs/components/avatar/Avatar.js +12 -3
  9. package/cjs/components/avatar/Avatar.js.map +1 -1
  10. package/cjs/components/avatar/AvatarDocs.d.ts +3 -0
  11. package/cjs/components/avatar/AvatarDocs.js +101 -0
  12. package/cjs/components/avatar/AvatarDocs.js.map +1 -0
  13. package/cjs/components/avatar/AvatarGroup.d.ts +10 -0
  14. package/cjs/components/avatar/AvatarGroup.js +17 -5
  15. package/cjs/components/avatar/AvatarGroup.js.map +1 -1
  16. package/cjs/components/avatar/style/dnb-avatar.css +8 -0
  17. package/cjs/components/avatar/style/dnb-avatar.min.css +1 -1
  18. package/cjs/components/avatar/style/dnb-avatar.scss +9 -0
  19. package/cjs/components/avatar/style/themes/dnb-avatar-theme-sbanken.css +5 -5
  20. package/cjs/components/avatar/style/themes/dnb-avatar-theme-sbanken.min.css +1 -1
  21. package/cjs/components/avatar/style/themes/dnb-avatar-theme-sbanken.scss +5 -6
  22. package/cjs/components/avatar/style/themes/dnb-avatar-theme-ui.css +5 -5
  23. package/cjs/components/avatar/style/themes/dnb-avatar-theme-ui.min.css +1 -1
  24. package/cjs/components/avatar/style/themes/dnb-avatar-theme-ui.scss +5 -5
  25. package/cjs/components/badge/BadgeDocs.d.ts +2 -0
  26. package/cjs/components/badge/BadgeDocs.js +54 -0
  27. package/cjs/components/badge/BadgeDocs.js.map +1 -0
  28. package/cjs/components/breadcrumb/BreadcrumbDocs.d.ts +5 -0
  29. package/cjs/components/breadcrumb/BreadcrumbDocs.js +125 -0
  30. package/cjs/components/breadcrumb/BreadcrumbDocs.js.map +1 -0
  31. package/cjs/components/button/Button.d.ts +0 -3
  32. package/cjs/components/button/ButtonDocs.d.ts +1 -0
  33. package/cjs/components/button/ButtonDocs.js +8 -1
  34. package/cjs/components/button/ButtonDocs.js.map +1 -1
  35. package/cjs/components/checkbox/CheckboxDocs.js +2 -2
  36. package/cjs/components/checkbox/CheckboxDocs.js.map +1 -1
  37. package/cjs/components/date-picker/DatePickerAddon.js +1 -3
  38. package/cjs/components/date-picker/DatePickerAddon.js.map +1 -1
  39. package/cjs/components/date-picker/DatePickerCalc.d.ts +13 -0
  40. package/cjs/components/date-picker/DatePickerCalc.js +44 -0
  41. package/cjs/components/date-picker/DatePickerCalc.js.map +1 -1
  42. package/cjs/components/date-picker/DatePickerCalendar.js +13 -11
  43. package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
  44. package/cjs/components/date-picker/DatePickerContext.d.ts +1 -1
  45. package/cjs/components/date-picker/DatePickerContext.js.map +1 -1
  46. package/cjs/components/date-picker/DatePickerDocs.js +1 -1
  47. package/cjs/components/date-picker/DatePickerDocs.js.map +1 -1
  48. package/cjs/components/date-picker/DatePickerInput.js +120 -94
  49. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  50. package/cjs/components/date-picker/DatePickerProvider.js +2 -2
  51. package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
  52. package/cjs/components/date-picker/hooks/useViews.d.ts +2 -4
  53. package/cjs/components/date-picker/hooks/useViews.js +37 -23
  54. package/cjs/components/date-picker/hooks/useViews.js.map +1 -1
  55. package/cjs/components/date-picker/style/dnb-date-picker.css +4 -0
  56. package/cjs/components/date-picker/style/dnb-date-picker.min.css +1 -1
  57. package/cjs/components/date-picker/style/dnb-date-picker.scss +3 -0
  58. package/cjs/components/dialog/DialogDocs.d.ts +1 -0
  59. package/cjs/components/dialog/DialogDocs.js +20 -3
  60. package/cjs/components/dialog/DialogDocs.js.map +1 -1
  61. package/cjs/components/drawer/DrawerDocs.d.ts +2 -0
  62. package/cjs/components/drawer/DrawerDocs.js +69 -0
  63. package/cjs/components/drawer/DrawerDocs.js.map +1 -0
  64. package/cjs/components/dropdown/Dropdown.d.ts +20 -20
  65. package/cjs/components/dropdown/DropdownDocs.d.ts +3 -0
  66. package/cjs/components/dropdown/DropdownDocs.js +186 -0
  67. package/cjs/components/dropdown/DropdownDocs.js.map +1 -0
  68. package/cjs/components/flex/ContainerDocs.js +1 -1
  69. package/cjs/components/flex/ContainerDocs.js.map +1 -1
  70. package/cjs/components/flex/ItemDocs.d.ts +2 -0
  71. package/cjs/components/flex/ItemDocs.js +39 -0
  72. package/cjs/components/flex/ItemDocs.js.map +1 -0
  73. package/cjs/components/form-label/FormLabelDocs.d.ts +2 -0
  74. package/cjs/components/form-label/FormLabelDocs.js +59 -0
  75. package/cjs/components/form-label/FormLabelDocs.js.map +1 -0
  76. package/cjs/components/form-row/FormRow.d.ts +45 -0
  77. package/cjs/components/form-row/FormRowDocs.d.ts +2 -0
  78. package/cjs/components/form-row/FormRowDocs.js +89 -0
  79. package/cjs/components/form-row/FormRowDocs.js.map +1 -0
  80. package/cjs/components/form-set/FormSet.d.ts +18 -0
  81. package/cjs/components/form-set/FormSetDocs.d.ts +3 -0
  82. package/cjs/components/form-set/FormSetDocs.js +56 -0
  83. package/cjs/components/form-set/FormSetDocs.js.map +1 -0
  84. package/cjs/components/form-status/FormStatus.d.ts +18 -18
  85. package/cjs/components/form-status/FormStatusDocs.d.ts +2 -0
  86. package/cjs/components/form-status/FormStatusDocs.js +89 -0
  87. package/cjs/components/form-status/FormStatusDocs.js.map +1 -0
  88. package/cjs/components/global-error/GlobalError.d.ts +12 -0
  89. package/cjs/components/global-error/GlobalError.js +15 -6
  90. package/cjs/components/global-error/GlobalError.js.map +1 -1
  91. package/cjs/components/global-error/GlobalErrorDocs.js +14 -4
  92. package/cjs/components/global-error/GlobalErrorDocs.js.map +1 -1
  93. package/cjs/components/global-status/GlobalStatus.d.ts +37 -58
  94. package/cjs/components/global-status/GlobalStatusController.d.ts +0 -9
  95. package/cjs/components/global-status/GlobalStatusDocs.d.ts +6 -0
  96. package/cjs/components/global-status/GlobalStatusDocs.js +192 -0
  97. package/cjs/components/global-status/GlobalStatusDocs.js.map +1 -0
  98. package/cjs/components/grid/ItemDocs.d.ts +2 -0
  99. package/cjs/components/grid/ItemDocs.js +19 -0
  100. package/cjs/components/grid/ItemDocs.js.map +1 -0
  101. package/cjs/components/heading/HeadingDocs.d.ts +2 -0
  102. package/cjs/components/heading/HeadingDocs.js +79 -0
  103. package/cjs/components/heading/HeadingDocs.js.map +1 -0
  104. package/cjs/components/help-button/HelpButtonDocs.d.ts +3 -0
  105. package/cjs/components/help-button/HelpButtonDocs.js +46 -0
  106. package/cjs/components/help-button/HelpButtonDocs.js.map +1 -0
  107. package/cjs/components/icon/IconDocs.d.ts +2 -0
  108. package/cjs/components/icon/IconDocs.js +59 -0
  109. package/cjs/components/icon/IconDocs.js.map +1 -0
  110. package/cjs/components/icon/IconPrimaryDocs.d.ts +2 -0
  111. package/cjs/components/icon/IconPrimaryDocs.js +24 -0
  112. package/cjs/components/icon/IconPrimaryDocs.js.map +1 -0
  113. package/cjs/components/info-card/InfoCard.d.ts +6 -1
  114. package/cjs/components/info-card/InfoCard.js +4 -3
  115. package/cjs/components/info-card/InfoCard.js.map +1 -1
  116. package/cjs/components/info-card/InfoCardDocs.js +8 -3
  117. package/cjs/components/info-card/InfoCardDocs.js.map +1 -1
  118. package/cjs/components/input/Input.d.ts +0 -21
  119. package/cjs/components/input/InputDocs.d.ts +1 -0
  120. package/cjs/components/input/InputDocs.js +36 -4
  121. package/cjs/components/input/InputDocs.js.map +1 -1
  122. package/cjs/components/input-masked/InputMasked.d.ts +0 -15
  123. package/cjs/components/input-masked/InputMaskedDocs.d.ts +2 -0
  124. package/cjs/components/input-masked/InputMaskedDocs.js +70 -1
  125. package/cjs/components/input-masked/InputMaskedDocs.js.map +1 -1
  126. package/cjs/components/input-masked/MultiInputMaskedDocs.d.ts +4 -0
  127. package/cjs/components/input-masked/MultiInputMaskedDocs.js +93 -0
  128. package/cjs/components/input-masked/MultiInputMaskedDocs.js.map +1 -0
  129. package/cjs/components/input-masked/style/dnb-input-masked.css +9 -0
  130. package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
  131. package/cjs/components/input-masked/style/dnb-input-masked.scss +12 -0
  132. package/cjs/components/input-masked/text-mask/InputModeNumber.d.ts +8 -0
  133. package/cjs/components/input-masked/text-mask/InputModeNumber.js +32 -9
  134. package/cjs/components/input-masked/text-mask/InputModeNumber.js.map +1 -1
  135. package/cjs/components/input-masked/text-mask/adjustCaretPosition.d.ts +2 -1
  136. package/cjs/components/input-masked/text-mask/adjustCaretPosition.js +3 -2
  137. package/cjs/components/input-masked/text-mask/adjustCaretPosition.js.map +1 -1
  138. package/cjs/components/input-masked/text-mask/createTextMaskInputElement.js +9 -3
  139. package/cjs/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
  140. package/cjs/components/modal/ModalDocs.d.ts +3 -0
  141. package/cjs/components/modal/ModalDocs.js +191 -0
  142. package/cjs/components/modal/ModalDocs.js.map +1 -0
  143. package/cjs/components/pagination/Pagination.d.ts +35 -33
  144. package/cjs/components/pagination/Pagination.js +2 -0
  145. package/cjs/components/pagination/Pagination.js.map +1 -1
  146. package/cjs/components/pagination/PaginationDocs.d.ts +3 -0
  147. package/cjs/components/pagination/PaginationDocs.js +191 -0
  148. package/cjs/components/pagination/PaginationDocs.js.map +1 -0
  149. package/cjs/components/pagination/PaginationHelpers.d.ts +0 -3
  150. package/cjs/components/pagination/PaginationInfinity.d.ts +0 -3
  151. package/cjs/components/pagination/PaginationProvider.js +1 -1
  152. package/cjs/components/pagination/PaginationProvider.js.map +1 -1
  153. package/cjs/components/radio/Radio.d.ts +12 -15
  154. package/cjs/components/radio/RadioDocs.d.ts +5 -0
  155. package/cjs/components/radio/RadioDocs.js +145 -0
  156. package/cjs/components/radio/RadioDocs.js.map +1 -0
  157. package/cjs/components/radio/RadioGroup.d.ts +0 -30
  158. package/cjs/components/section/Section.js +2 -7
  159. package/cjs/components/section/Section.js.map +1 -1
  160. package/cjs/components/section/SectionDocs.js +1 -1
  161. package/cjs/components/section/SectionDocs.js.map +1 -1
  162. package/cjs/components/skeleton/SkeletonDocs.d.ts +2 -0
  163. package/cjs/components/skeleton/SkeletonDocs.js +44 -0
  164. package/cjs/components/skeleton/SkeletonDocs.js.map +1 -0
  165. package/cjs/components/skeleton/SkeletonHelper.d.ts +0 -6
  166. package/cjs/components/skip-content/SkipContentDocs.d.ts +2 -0
  167. package/cjs/components/skip-content/SkipContentDocs.js +29 -0
  168. package/cjs/components/skip-content/SkipContentDocs.js.map +1 -0
  169. package/cjs/components/slider/SliderDocs.js +2 -2
  170. package/cjs/components/slider/SliderDocs.js.map +1 -1
  171. package/cjs/components/space/SpaceDocs.d.ts +3 -0
  172. package/cjs/components/space/SpaceDocs.js +61 -0
  173. package/cjs/components/space/SpaceDocs.js.map +1 -0
  174. package/cjs/components/switch/SwitchDocs.js +2 -2
  175. package/cjs/components/switch/SwitchDocs.js.map +1 -1
  176. package/cjs/components/tag/TagDocs.d.ts +4 -0
  177. package/cjs/components/tag/TagDocs.js +93 -0
  178. package/cjs/components/tag/TagDocs.js.map +1 -0
  179. package/cjs/components/textarea/Textarea.d.ts +0 -12
  180. package/cjs/components/textarea/TextareaDocs.d.ts +1 -0
  181. package/cjs/components/textarea/TextareaDocs.js +26 -4
  182. package/cjs/components/textarea/TextareaDocs.js.map +1 -1
  183. package/cjs/components/timeline/TimelineDocs.d.ts +3 -0
  184. package/cjs/components/timeline/TimelineDocs.js +66 -0
  185. package/cjs/components/timeline/TimelineDocs.js.map +1 -0
  186. package/cjs/components/toggle-button/ToggleButton.d.ts +0 -3
  187. package/cjs/components/toggle-button/ToggleButtonDocs.d.ts +1 -0
  188. package/cjs/components/toggle-button/ToggleButtonDocs.js +8 -1
  189. package/cjs/components/toggle-button/ToggleButtonDocs.js.map +1 -1
  190. package/cjs/components/toggle-button/ToggleButtonGroup.d.ts +0 -3
  191. package/cjs/components/toggle-button/ToggleButtonGroupDocs.d.ts +1 -0
  192. package/cjs/components/toggle-button/ToggleButtonGroupDocs.js +9 -2
  193. package/cjs/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -1
  194. package/cjs/components/tooltip/TooltipDocs.d.ts +2 -0
  195. package/cjs/components/tooltip/TooltipDocs.js +79 -0
  196. package/cjs/components/tooltip/TooltipDocs.js.map +1 -0
  197. package/cjs/components/upload/Upload.js +6 -4
  198. package/cjs/components/upload/Upload.js.map +1 -1
  199. package/cjs/components/upload/UploadDocs.js +5 -0
  200. package/cjs/components/upload/UploadDocs.js.map +1 -1
  201. package/cjs/components/upload/UploadFileList.js +3 -1
  202. package/cjs/components/upload/UploadFileList.js.map +1 -1
  203. package/cjs/components/upload/UploadFileListCell.d.ts +6 -1
  204. package/cjs/components/upload/UploadFileListCell.js +8 -5
  205. package/cjs/components/upload/UploadFileListCell.js.map +1 -1
  206. package/cjs/components/upload/types.d.ts +5 -0
  207. package/cjs/components/upload/types.js.map +1 -1
  208. package/cjs/components/upload/useUpload.d.ts +1 -0
  209. package/cjs/components/upload/useUpload.js +9 -2
  210. package/cjs/components/upload/useUpload.js.map +1 -1
  211. package/cjs/components/visually-hidden/VisuallyHiddenDocs.d.ts +2 -0
  212. package/cjs/components/visually-hidden/VisuallyHiddenDocs.js +19 -0
  213. package/cjs/components/visually-hidden/VisuallyHiddenDocs.js.map +1 -0
  214. package/cjs/extensions/forms/DataContext/At/AtDocs.d.ts +2 -0
  215. package/cjs/extensions/forms/DataContext/At/AtDocs.js +24 -0
  216. package/cjs/extensions/forms/DataContext/At/AtDocs.js.map +1 -0
  217. package/cjs/extensions/forms/DataContext/Context.d.ts +6 -5
  218. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  219. package/cjs/extensions/forms/DataContext/Provider/Provider.js +29 -35
  220. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  221. package/cjs/extensions/forms/Field/Date/Date.d.ts +1 -0
  222. package/cjs/extensions/forms/Field/Date/Date.js +8 -8
  223. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  224. package/cjs/extensions/forms/Field/Password/Password.js +2 -1
  225. package/cjs/extensions/forms/Field/Password/Password.js.map +1 -1
  226. package/cjs/extensions/forms/Field/Password/PasswordDocs.d.ts +1 -0
  227. package/cjs/extensions/forms/Field/Password/PasswordDocs.js +14 -2
  228. package/cjs/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  229. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +9 -3
  230. package/cjs/extensions/forms/Field/String/StringDocs.js +1 -1
  231. package/cjs/extensions/forms/Field/String/StringDocs.js.map +1 -1
  232. package/cjs/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  233. package/cjs/extensions/forms/Field/Upload/Upload.js +10 -2
  234. package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
  235. package/cjs/extensions/forms/Form/ButtonRow/ButtonRowDocs.d.ts +2 -0
  236. package/cjs/extensions/forms/Form/ButtonRow/ButtonRowDocs.js +19 -0
  237. package/cjs/extensions/forms/Form/ButtonRow/ButtonRowDocs.js.map +1 -0
  238. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +1 -1
  239. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  240. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +4 -4
  241. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
  242. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  243. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  244. package/cjs/extensions/forms/Form/Visibility/useVisibility.js +10 -14
  245. package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  246. package/cjs/extensions/forms/Value/Date/Date.d.ts +0 -6
  247. package/cjs/extensions/forms/Value/Date/Date.js +14 -38
  248. package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
  249. package/cjs/extensions/forms/Wizard/Buttons/ButtonsDocs.d.ts +2 -0
  250. package/cjs/extensions/forms/Wizard/Buttons/ButtonsDocs.js +14 -0
  251. package/cjs/extensions/forms/Wizard/Buttons/ButtonsDocs.js.map +1 -0
  252. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +2 -2
  253. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  254. package/cjs/extensions/forms/hooks/useFieldProps.js +8 -5
  255. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  256. package/cjs/extensions/payment-card/PaymentCard.d.ts +7 -7
  257. package/cjs/extensions/payment-card/PaymentCardDocs.d.ts +5 -0
  258. package/cjs/extensions/payment-card/PaymentCardDocs.js +205 -0
  259. package/cjs/extensions/payment-card/PaymentCardDocs.js.map +1 -0
  260. package/cjs/fragments/scroll-view/ScrollViewDocs.d.ts +2 -0
  261. package/cjs/fragments/scroll-view/ScrollViewDocs.js +19 -0
  262. package/cjs/fragments/scroll-view/ScrollViewDocs.js.map +1 -0
  263. package/cjs/fragments/text-counter/TextCounterDocs.d.ts +2 -0
  264. package/cjs/fragments/text-counter/TextCounterDocs.js +29 -0
  265. package/cjs/fragments/text-counter/TextCounterDocs.js.map +1 -0
  266. package/cjs/shared/Eufemia.d.ts +1 -1
  267. package/cjs/shared/Eufemia.js +2 -2
  268. package/cjs/shared/Eufemia.js.map +1 -1
  269. package/cjs/shared/MediaQueryDocs.d.ts +2 -0
  270. package/cjs/shared/MediaQueryDocs.js +34 -0
  271. package/cjs/shared/MediaQueryDocs.js.map +1 -0
  272. package/cjs/shared/ThemeDocs.d.ts +2 -0
  273. package/cjs/shared/ThemeDocs.js +39 -0
  274. package/cjs/shared/ThemeDocs.js.map +1 -0
  275. package/cjs/shared/helpers.d.ts +1 -0
  276. package/cjs/shared/helpers.js +7 -0
  277. package/cjs/shared/helpers.js.map +1 -1
  278. package/cjs/shared/locales/en-GB.d.ts +1 -0
  279. package/cjs/shared/locales/en-GB.js +1 -0
  280. package/cjs/shared/locales/en-GB.js.map +1 -1
  281. package/cjs/shared/locales/en-US.d.ts +1 -0
  282. package/cjs/shared/locales/index.d.ts +2 -0
  283. package/cjs/shared/locales/nb-NO.d.ts +1 -0
  284. package/cjs/shared/locales/nb-NO.js +1 -0
  285. package/cjs/shared/locales/nb-NO.js.map +1 -1
  286. package/cjs/shared/locales/sv-SE.d.ts +1 -0
  287. package/cjs/shared/locales/sv-SE.js +3 -2
  288. package/cjs/shared/locales/sv-SE.js.map +1 -1
  289. package/cjs/style/core/scopes.scss +1 -1
  290. package/cjs/style/dnb-ui-basis.css +1 -1
  291. package/cjs/style/dnb-ui-basis.min.css +1 -1
  292. package/cjs/style/dnb-ui-body.css +1 -1
  293. package/cjs/style/dnb-ui-body.min.css +1 -1
  294. package/cjs/style/dnb-ui-components.css +21 -0
  295. package/cjs/style/dnb-ui-components.min.css +1 -1
  296. package/cjs/style/dnb-ui-core.css +1 -1
  297. package/cjs/style/dnb-ui-core.min.css +1 -1
  298. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +26 -5
  299. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  300. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +26 -5
  301. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  302. package/cjs/style/themes/theme-ui/ui-theme-components.css +26 -5
  303. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  304. package/components/aria-live/AriaLiveDocs.d.ts +2 -0
  305. package/components/aria-live/AriaLiveDocs.js +48 -0
  306. package/components/aria-live/AriaLiveDocs.js.map +1 -0
  307. package/components/autocomplete/AutocompleteDocs.js +3 -3
  308. package/components/autocomplete/AutocompleteDocs.js.map +1 -1
  309. package/components/avatar/Avatar.d.ts +10 -0
  310. package/components/avatar/Avatar.js +12 -3
  311. package/components/avatar/Avatar.js.map +1 -1
  312. package/components/avatar/AvatarDocs.d.ts +3 -0
  313. package/components/avatar/AvatarDocs.js +95 -0
  314. package/components/avatar/AvatarDocs.js.map +1 -0
  315. package/components/avatar/AvatarGroup.d.ts +10 -0
  316. package/components/avatar/AvatarGroup.js +17 -5
  317. package/components/avatar/AvatarGroup.js.map +1 -1
  318. package/components/avatar/style/dnb-avatar.css +8 -0
  319. package/components/avatar/style/dnb-avatar.min.css +1 -1
  320. package/components/avatar/style/dnb-avatar.scss +9 -0
  321. package/components/avatar/style/themes/dnb-avatar-theme-sbanken.css +5 -5
  322. package/components/avatar/style/themes/dnb-avatar-theme-sbanken.min.css +1 -1
  323. package/components/avatar/style/themes/dnb-avatar-theme-sbanken.scss +5 -6
  324. package/components/avatar/style/themes/dnb-avatar-theme-ui.css +5 -5
  325. package/components/avatar/style/themes/dnb-avatar-theme-ui.min.css +1 -1
  326. package/components/avatar/style/themes/dnb-avatar-theme-ui.scss +5 -5
  327. package/components/badge/BadgeDocs.d.ts +2 -0
  328. package/components/badge/BadgeDocs.js +48 -0
  329. package/components/badge/BadgeDocs.js.map +1 -0
  330. package/components/breadcrumb/BreadcrumbDocs.d.ts +5 -0
  331. package/components/breadcrumb/BreadcrumbDocs.js +119 -0
  332. package/components/breadcrumb/BreadcrumbDocs.js.map +1 -0
  333. package/components/button/Button.d.ts +0 -3
  334. package/components/button/ButtonDocs.d.ts +1 -0
  335. package/components/button/ButtonDocs.js +7 -0
  336. package/components/button/ButtonDocs.js.map +1 -1
  337. package/components/checkbox/CheckboxDocs.js +2 -2
  338. package/components/checkbox/CheckboxDocs.js.map +1 -1
  339. package/components/date-picker/DatePickerAddon.js +1 -3
  340. package/components/date-picker/DatePickerAddon.js.map +1 -1
  341. package/components/date-picker/DatePickerCalc.d.ts +13 -0
  342. package/components/date-picker/DatePickerCalc.js +41 -0
  343. package/components/date-picker/DatePickerCalc.js.map +1 -1
  344. package/components/date-picker/DatePickerCalendar.js +13 -11
  345. package/components/date-picker/DatePickerCalendar.js.map +1 -1
  346. package/components/date-picker/DatePickerContext.d.ts +1 -1
  347. package/components/date-picker/DatePickerContext.js.map +1 -1
  348. package/components/date-picker/DatePickerDocs.js +1 -1
  349. package/components/date-picker/DatePickerDocs.js.map +1 -1
  350. package/components/date-picker/DatePickerInput.js +121 -95
  351. package/components/date-picker/DatePickerInput.js.map +1 -1
  352. package/components/date-picker/DatePickerProvider.js +2 -2
  353. package/components/date-picker/DatePickerProvider.js.map +1 -1
  354. package/components/date-picker/hooks/useViews.d.ts +2 -4
  355. package/components/date-picker/hooks/useViews.js +38 -24
  356. package/components/date-picker/hooks/useViews.js.map +1 -1
  357. package/components/date-picker/style/dnb-date-picker.css +4 -0
  358. package/components/date-picker/style/dnb-date-picker.min.css +1 -1
  359. package/components/date-picker/style/dnb-date-picker.scss +3 -0
  360. package/components/dialog/DialogDocs.d.ts +1 -0
  361. package/components/dialog/DialogDocs.js +19 -2
  362. package/components/dialog/DialogDocs.js.map +1 -1
  363. package/components/drawer/DrawerDocs.d.ts +2 -0
  364. package/components/drawer/DrawerDocs.js +63 -0
  365. package/components/drawer/DrawerDocs.js.map +1 -0
  366. package/components/dropdown/Dropdown.d.ts +20 -20
  367. package/components/dropdown/DropdownDocs.d.ts +3 -0
  368. package/components/dropdown/DropdownDocs.js +180 -0
  369. package/components/dropdown/DropdownDocs.js.map +1 -0
  370. package/components/flex/ContainerDocs.js +1 -1
  371. package/components/flex/ContainerDocs.js.map +1 -1
  372. package/components/flex/ItemDocs.d.ts +2 -0
  373. package/components/flex/ItemDocs.js +33 -0
  374. package/components/flex/ItemDocs.js.map +1 -0
  375. package/components/form-label/FormLabelDocs.d.ts +2 -0
  376. package/components/form-label/FormLabelDocs.js +53 -0
  377. package/components/form-label/FormLabelDocs.js.map +1 -0
  378. package/components/form-row/FormRow.d.ts +45 -0
  379. package/components/form-row/FormRowDocs.d.ts +2 -0
  380. package/components/form-row/FormRowDocs.js +83 -0
  381. package/components/form-row/FormRowDocs.js.map +1 -0
  382. package/components/form-set/FormSet.d.ts +18 -0
  383. package/components/form-set/FormSetDocs.d.ts +3 -0
  384. package/components/form-set/FormSetDocs.js +50 -0
  385. package/components/form-set/FormSetDocs.js.map +1 -0
  386. package/components/form-status/FormStatus.d.ts +18 -18
  387. package/components/form-status/FormStatusDocs.d.ts +2 -0
  388. package/components/form-status/FormStatusDocs.js +83 -0
  389. package/components/form-status/FormStatusDocs.js.map +1 -0
  390. package/components/global-error/GlobalError.d.ts +12 -0
  391. package/components/global-error/GlobalError.js +15 -6
  392. package/components/global-error/GlobalError.js.map +1 -1
  393. package/components/global-error/GlobalErrorDocs.js +14 -4
  394. package/components/global-error/GlobalErrorDocs.js.map +1 -1
  395. package/components/global-status/GlobalStatus.d.ts +37 -58
  396. package/components/global-status/GlobalStatusController.d.ts +0 -9
  397. package/components/global-status/GlobalStatusDocs.d.ts +6 -0
  398. package/components/global-status/GlobalStatusDocs.js +186 -0
  399. package/components/global-status/GlobalStatusDocs.js.map +1 -0
  400. package/components/grid/ItemDocs.d.ts +2 -0
  401. package/components/grid/ItemDocs.js +13 -0
  402. package/components/grid/ItemDocs.js.map +1 -0
  403. package/components/heading/HeadingDocs.d.ts +2 -0
  404. package/components/heading/HeadingDocs.js +73 -0
  405. package/components/heading/HeadingDocs.js.map +1 -0
  406. package/components/help-button/HelpButtonDocs.d.ts +3 -0
  407. package/components/help-button/HelpButtonDocs.js +40 -0
  408. package/components/help-button/HelpButtonDocs.js.map +1 -0
  409. package/components/icon/IconDocs.d.ts +2 -0
  410. package/components/icon/IconDocs.js +53 -0
  411. package/components/icon/IconDocs.js.map +1 -0
  412. package/components/icon/IconPrimaryDocs.d.ts +2 -0
  413. package/components/icon/IconPrimaryDocs.js +18 -0
  414. package/components/icon/IconPrimaryDocs.js.map +1 -0
  415. package/components/info-card/InfoCard.d.ts +6 -1
  416. package/components/info-card/InfoCard.js +4 -3
  417. package/components/info-card/InfoCard.js.map +1 -1
  418. package/components/info-card/InfoCardDocs.js +8 -3
  419. package/components/info-card/InfoCardDocs.js.map +1 -1
  420. package/components/input/Input.d.ts +0 -21
  421. package/components/input/InputDocs.d.ts +1 -0
  422. package/components/input/InputDocs.js +35 -3
  423. package/components/input/InputDocs.js.map +1 -1
  424. package/components/input-masked/InputMasked.d.ts +0 -15
  425. package/components/input-masked/InputMaskedDocs.d.ts +2 -0
  426. package/components/input-masked/InputMaskedDocs.js +69 -0
  427. package/components/input-masked/InputMaskedDocs.js.map +1 -1
  428. package/components/input-masked/MultiInputMaskedDocs.d.ts +4 -0
  429. package/components/input-masked/MultiInputMaskedDocs.js +87 -0
  430. package/components/input-masked/MultiInputMaskedDocs.js.map +1 -0
  431. package/components/input-masked/style/dnb-input-masked.css +9 -0
  432. package/components/input-masked/style/dnb-input-masked.min.css +1 -1
  433. package/components/input-masked/style/dnb-input-masked.scss +12 -0
  434. package/components/input-masked/text-mask/InputModeNumber.d.ts +8 -0
  435. package/components/input-masked/text-mask/InputModeNumber.js +32 -9
  436. package/components/input-masked/text-mask/InputModeNumber.js.map +1 -1
  437. package/components/input-masked/text-mask/adjustCaretPosition.d.ts +2 -1
  438. package/components/input-masked/text-mask/adjustCaretPosition.js +3 -2
  439. package/components/input-masked/text-mask/adjustCaretPosition.js.map +1 -1
  440. package/components/input-masked/text-mask/createTextMaskInputElement.js +9 -3
  441. package/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
  442. package/components/modal/ModalDocs.d.ts +3 -0
  443. package/components/modal/ModalDocs.js +185 -0
  444. package/components/modal/ModalDocs.js.map +1 -0
  445. package/components/pagination/Pagination.d.ts +35 -33
  446. package/components/pagination/Pagination.js +2 -0
  447. package/components/pagination/Pagination.js.map +1 -1
  448. package/components/pagination/PaginationDocs.d.ts +3 -0
  449. package/components/pagination/PaginationDocs.js +185 -0
  450. package/components/pagination/PaginationDocs.js.map +1 -0
  451. package/components/pagination/PaginationHelpers.d.ts +0 -3
  452. package/components/pagination/PaginationInfinity.d.ts +0 -3
  453. package/components/pagination/PaginationProvider.js +1 -1
  454. package/components/pagination/PaginationProvider.js.map +1 -1
  455. package/components/radio/Radio.d.ts +12 -15
  456. package/components/radio/RadioDocs.d.ts +5 -0
  457. package/components/radio/RadioDocs.js +139 -0
  458. package/components/radio/RadioDocs.js.map +1 -0
  459. package/components/radio/RadioGroup.d.ts +0 -30
  460. package/components/section/Section.js +1 -6
  461. package/components/section/Section.js.map +1 -1
  462. package/components/section/SectionDocs.js +1 -1
  463. package/components/section/SectionDocs.js.map +1 -1
  464. package/components/skeleton/SkeletonDocs.d.ts +2 -0
  465. package/components/skeleton/SkeletonDocs.js +38 -0
  466. package/components/skeleton/SkeletonDocs.js.map +1 -0
  467. package/components/skeleton/SkeletonHelper.d.ts +0 -6
  468. package/components/skip-content/SkipContentDocs.d.ts +2 -0
  469. package/components/skip-content/SkipContentDocs.js +23 -0
  470. package/components/skip-content/SkipContentDocs.js.map +1 -0
  471. package/components/slider/SliderDocs.js +2 -2
  472. package/components/slider/SliderDocs.js.map +1 -1
  473. package/components/space/SpaceDocs.d.ts +3 -0
  474. package/components/space/SpaceDocs.js +55 -0
  475. package/components/space/SpaceDocs.js.map +1 -0
  476. package/components/switch/SwitchDocs.js +2 -2
  477. package/components/switch/SwitchDocs.js.map +1 -1
  478. package/components/tag/TagDocs.d.ts +4 -0
  479. package/components/tag/TagDocs.js +87 -0
  480. package/components/tag/TagDocs.js.map +1 -0
  481. package/components/textarea/Textarea.d.ts +0 -12
  482. package/components/textarea/TextareaDocs.d.ts +1 -0
  483. package/components/textarea/TextareaDocs.js +25 -3
  484. package/components/textarea/TextareaDocs.js.map +1 -1
  485. package/components/timeline/TimelineDocs.d.ts +3 -0
  486. package/components/timeline/TimelineDocs.js +60 -0
  487. package/components/timeline/TimelineDocs.js.map +1 -0
  488. package/components/toggle-button/ToggleButton.d.ts +0 -3
  489. package/components/toggle-button/ToggleButtonDocs.d.ts +1 -0
  490. package/components/toggle-button/ToggleButtonDocs.js +7 -0
  491. package/components/toggle-button/ToggleButtonDocs.js.map +1 -1
  492. package/components/toggle-button/ToggleButtonGroup.d.ts +0 -3
  493. package/components/toggle-button/ToggleButtonGroupDocs.d.ts +1 -0
  494. package/components/toggle-button/ToggleButtonGroupDocs.js +8 -1
  495. package/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -1
  496. package/components/tooltip/TooltipDocs.d.ts +2 -0
  497. package/components/tooltip/TooltipDocs.js +73 -0
  498. package/components/tooltip/TooltipDocs.js.map +1 -0
  499. package/components/upload/Upload.js +6 -4
  500. package/components/upload/Upload.js.map +1 -1
  501. package/components/upload/UploadDocs.js +5 -0
  502. package/components/upload/UploadDocs.js.map +1 -1
  503. package/components/upload/UploadFileList.js +3 -1
  504. package/components/upload/UploadFileList.js.map +1 -1
  505. package/components/upload/UploadFileListCell.d.ts +6 -1
  506. package/components/upload/UploadFileListCell.js +8 -5
  507. package/components/upload/UploadFileListCell.js.map +1 -1
  508. package/components/upload/types.d.ts +5 -0
  509. package/components/upload/types.js.map +1 -1
  510. package/components/upload/useUpload.d.ts +1 -0
  511. package/components/upload/useUpload.js +7 -1
  512. package/components/upload/useUpload.js.map +1 -1
  513. package/components/visually-hidden/VisuallyHiddenDocs.d.ts +2 -0
  514. package/components/visually-hidden/VisuallyHiddenDocs.js +13 -0
  515. package/components/visually-hidden/VisuallyHiddenDocs.js.map +1 -0
  516. package/es/components/aria-live/AriaLiveDocs.d.ts +2 -0
  517. package/es/components/aria-live/AriaLiveDocs.js +48 -0
  518. package/es/components/aria-live/AriaLiveDocs.js.map +1 -0
  519. package/es/components/autocomplete/AutocompleteDocs.js +3 -3
  520. package/es/components/autocomplete/AutocompleteDocs.js.map +1 -1
  521. package/es/components/avatar/Avatar.d.ts +10 -0
  522. package/es/components/avatar/Avatar.js +12 -3
  523. package/es/components/avatar/Avatar.js.map +1 -1
  524. package/es/components/avatar/AvatarDocs.d.ts +3 -0
  525. package/es/components/avatar/AvatarDocs.js +95 -0
  526. package/es/components/avatar/AvatarDocs.js.map +1 -0
  527. package/es/components/avatar/AvatarGroup.d.ts +10 -0
  528. package/es/components/avatar/AvatarGroup.js +17 -5
  529. package/es/components/avatar/AvatarGroup.js.map +1 -1
  530. package/es/components/avatar/style/dnb-avatar.css +8 -0
  531. package/es/components/avatar/style/dnb-avatar.min.css +1 -1
  532. package/es/components/avatar/style/dnb-avatar.scss +9 -0
  533. package/es/components/avatar/style/themes/dnb-avatar-theme-sbanken.css +5 -5
  534. package/es/components/avatar/style/themes/dnb-avatar-theme-sbanken.min.css +1 -1
  535. package/es/components/avatar/style/themes/dnb-avatar-theme-sbanken.scss +5 -6
  536. package/es/components/avatar/style/themes/dnb-avatar-theme-ui.css +5 -5
  537. package/es/components/avatar/style/themes/dnb-avatar-theme-ui.min.css +1 -1
  538. package/es/components/avatar/style/themes/dnb-avatar-theme-ui.scss +5 -5
  539. package/es/components/badge/BadgeDocs.d.ts +2 -0
  540. package/es/components/badge/BadgeDocs.js +48 -0
  541. package/es/components/badge/BadgeDocs.js.map +1 -0
  542. package/es/components/breadcrumb/BreadcrumbDocs.d.ts +5 -0
  543. package/es/components/breadcrumb/BreadcrumbDocs.js +119 -0
  544. package/es/components/breadcrumb/BreadcrumbDocs.js.map +1 -0
  545. package/es/components/button/Button.d.ts +0 -3
  546. package/es/components/button/ButtonDocs.d.ts +1 -0
  547. package/es/components/button/ButtonDocs.js +7 -0
  548. package/es/components/button/ButtonDocs.js.map +1 -1
  549. package/es/components/checkbox/CheckboxDocs.js +2 -2
  550. package/es/components/checkbox/CheckboxDocs.js.map +1 -1
  551. package/es/components/date-picker/DatePickerAddon.js +1 -3
  552. package/es/components/date-picker/DatePickerAddon.js.map +1 -1
  553. package/es/components/date-picker/DatePickerCalc.d.ts +13 -0
  554. package/es/components/date-picker/DatePickerCalc.js +39 -0
  555. package/es/components/date-picker/DatePickerCalc.js.map +1 -1
  556. package/es/components/date-picker/DatePickerCalendar.js +13 -11
  557. package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
  558. package/es/components/date-picker/DatePickerContext.d.ts +1 -1
  559. package/es/components/date-picker/DatePickerContext.js.map +1 -1
  560. package/es/components/date-picker/DatePickerDocs.js +1 -1
  561. package/es/components/date-picker/DatePickerDocs.js.map +1 -1
  562. package/es/components/date-picker/DatePickerInput.js +116 -92
  563. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  564. package/es/components/date-picker/DatePickerProvider.js +2 -2
  565. package/es/components/date-picker/DatePickerProvider.js.map +1 -1
  566. package/es/components/date-picker/hooks/useViews.d.ts +2 -4
  567. package/es/components/date-picker/hooks/useViews.js +39 -25
  568. package/es/components/date-picker/hooks/useViews.js.map +1 -1
  569. package/es/components/date-picker/style/dnb-date-picker.css +4 -0
  570. package/es/components/date-picker/style/dnb-date-picker.min.css +1 -1
  571. package/es/components/date-picker/style/dnb-date-picker.scss +3 -0
  572. package/es/components/dialog/DialogDocs.d.ts +1 -0
  573. package/es/components/dialog/DialogDocs.js +19 -2
  574. package/es/components/dialog/DialogDocs.js.map +1 -1
  575. package/es/components/drawer/DrawerDocs.d.ts +2 -0
  576. package/es/components/drawer/DrawerDocs.js +63 -0
  577. package/es/components/drawer/DrawerDocs.js.map +1 -0
  578. package/es/components/dropdown/Dropdown.d.ts +20 -20
  579. package/es/components/dropdown/DropdownDocs.d.ts +3 -0
  580. package/es/components/dropdown/DropdownDocs.js +180 -0
  581. package/es/components/dropdown/DropdownDocs.js.map +1 -0
  582. package/es/components/flex/ContainerDocs.js +1 -1
  583. package/es/components/flex/ContainerDocs.js.map +1 -1
  584. package/es/components/flex/ItemDocs.d.ts +2 -0
  585. package/es/components/flex/ItemDocs.js +33 -0
  586. package/es/components/flex/ItemDocs.js.map +1 -0
  587. package/es/components/form-label/FormLabelDocs.d.ts +2 -0
  588. package/es/components/form-label/FormLabelDocs.js +53 -0
  589. package/es/components/form-label/FormLabelDocs.js.map +1 -0
  590. package/es/components/form-row/FormRow.d.ts +45 -0
  591. package/es/components/form-row/FormRowDocs.d.ts +2 -0
  592. package/es/components/form-row/FormRowDocs.js +83 -0
  593. package/es/components/form-row/FormRowDocs.js.map +1 -0
  594. package/es/components/form-set/FormSet.d.ts +18 -0
  595. package/es/components/form-set/FormSetDocs.d.ts +3 -0
  596. package/es/components/form-set/FormSetDocs.js +50 -0
  597. package/es/components/form-set/FormSetDocs.js.map +1 -0
  598. package/es/components/form-status/FormStatus.d.ts +18 -18
  599. package/es/components/form-status/FormStatusDocs.d.ts +2 -0
  600. package/es/components/form-status/FormStatusDocs.js +83 -0
  601. package/es/components/form-status/FormStatusDocs.js.map +1 -0
  602. package/es/components/global-error/GlobalError.d.ts +12 -0
  603. package/es/components/global-error/GlobalError.js +14 -6
  604. package/es/components/global-error/GlobalError.js.map +1 -1
  605. package/es/components/global-error/GlobalErrorDocs.js +14 -4
  606. package/es/components/global-error/GlobalErrorDocs.js.map +1 -1
  607. package/es/components/global-status/GlobalStatus.d.ts +37 -58
  608. package/es/components/global-status/GlobalStatusController.d.ts +0 -9
  609. package/es/components/global-status/GlobalStatusDocs.d.ts +6 -0
  610. package/es/components/global-status/GlobalStatusDocs.js +186 -0
  611. package/es/components/global-status/GlobalStatusDocs.js.map +1 -0
  612. package/es/components/grid/ItemDocs.d.ts +2 -0
  613. package/es/components/grid/ItemDocs.js +13 -0
  614. package/es/components/grid/ItemDocs.js.map +1 -0
  615. package/es/components/heading/HeadingDocs.d.ts +2 -0
  616. package/es/components/heading/HeadingDocs.js +73 -0
  617. package/es/components/heading/HeadingDocs.js.map +1 -0
  618. package/es/components/help-button/HelpButtonDocs.d.ts +3 -0
  619. package/es/components/help-button/HelpButtonDocs.js +40 -0
  620. package/es/components/help-button/HelpButtonDocs.js.map +1 -0
  621. package/es/components/icon/IconDocs.d.ts +2 -0
  622. package/es/components/icon/IconDocs.js +53 -0
  623. package/es/components/icon/IconDocs.js.map +1 -0
  624. package/es/components/icon/IconPrimaryDocs.d.ts +2 -0
  625. package/es/components/icon/IconPrimaryDocs.js +18 -0
  626. package/es/components/icon/IconPrimaryDocs.js.map +1 -0
  627. package/es/components/info-card/InfoCard.d.ts +6 -1
  628. package/es/components/info-card/InfoCard.js +4 -3
  629. package/es/components/info-card/InfoCard.js.map +1 -1
  630. package/es/components/info-card/InfoCardDocs.js +8 -3
  631. package/es/components/info-card/InfoCardDocs.js.map +1 -1
  632. package/es/components/input/Input.d.ts +0 -21
  633. package/es/components/input/InputDocs.d.ts +1 -0
  634. package/es/components/input/InputDocs.js +35 -3
  635. package/es/components/input/InputDocs.js.map +1 -1
  636. package/es/components/input-masked/InputMasked.d.ts +0 -15
  637. package/es/components/input-masked/InputMaskedDocs.d.ts +2 -0
  638. package/es/components/input-masked/InputMaskedDocs.js +69 -0
  639. package/es/components/input-masked/InputMaskedDocs.js.map +1 -1
  640. package/es/components/input-masked/MultiInputMaskedDocs.d.ts +4 -0
  641. package/es/components/input-masked/MultiInputMaskedDocs.js +87 -0
  642. package/es/components/input-masked/MultiInputMaskedDocs.js.map +1 -0
  643. package/es/components/input-masked/style/dnb-input-masked.css +9 -0
  644. package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
  645. package/es/components/input-masked/style/dnb-input-masked.scss +12 -0
  646. package/es/components/input-masked/text-mask/InputModeNumber.d.ts +8 -0
  647. package/es/components/input-masked/text-mask/InputModeNumber.js +39 -9
  648. package/es/components/input-masked/text-mask/InputModeNumber.js.map +1 -1
  649. package/es/components/input-masked/text-mask/adjustCaretPosition.d.ts +2 -1
  650. package/es/components/input-masked/text-mask/adjustCaretPosition.js +3 -2
  651. package/es/components/input-masked/text-mask/adjustCaretPosition.js.map +1 -1
  652. package/es/components/input-masked/text-mask/createTextMaskInputElement.js +9 -3
  653. package/es/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
  654. package/es/components/modal/ModalDocs.d.ts +3 -0
  655. package/es/components/modal/ModalDocs.js +185 -0
  656. package/es/components/modal/ModalDocs.js.map +1 -0
  657. package/es/components/pagination/Pagination.d.ts +35 -33
  658. package/es/components/pagination/Pagination.js +2 -0
  659. package/es/components/pagination/Pagination.js.map +1 -1
  660. package/es/components/pagination/PaginationDocs.d.ts +3 -0
  661. package/es/components/pagination/PaginationDocs.js +185 -0
  662. package/es/components/pagination/PaginationDocs.js.map +1 -0
  663. package/es/components/pagination/PaginationHelpers.d.ts +0 -3
  664. package/es/components/pagination/PaginationInfinity.d.ts +0 -3
  665. package/es/components/pagination/PaginationProvider.js +1 -1
  666. package/es/components/pagination/PaginationProvider.js.map +1 -1
  667. package/es/components/radio/Radio.d.ts +12 -15
  668. package/es/components/radio/RadioDocs.d.ts +5 -0
  669. package/es/components/radio/RadioDocs.js +139 -0
  670. package/es/components/radio/RadioDocs.js.map +1 -0
  671. package/es/components/radio/RadioGroup.d.ts +0 -30
  672. package/es/components/section/Section.js +1 -6
  673. package/es/components/section/Section.js.map +1 -1
  674. package/es/components/section/SectionDocs.js +1 -1
  675. package/es/components/section/SectionDocs.js.map +1 -1
  676. package/es/components/skeleton/SkeletonDocs.d.ts +2 -0
  677. package/es/components/skeleton/SkeletonDocs.js +38 -0
  678. package/es/components/skeleton/SkeletonDocs.js.map +1 -0
  679. package/es/components/skeleton/SkeletonHelper.d.ts +0 -6
  680. package/es/components/skip-content/SkipContentDocs.d.ts +2 -0
  681. package/es/components/skip-content/SkipContentDocs.js +23 -0
  682. package/es/components/skip-content/SkipContentDocs.js.map +1 -0
  683. package/es/components/slider/SliderDocs.js +2 -2
  684. package/es/components/slider/SliderDocs.js.map +1 -1
  685. package/es/components/space/SpaceDocs.d.ts +3 -0
  686. package/es/components/space/SpaceDocs.js +55 -0
  687. package/es/components/space/SpaceDocs.js.map +1 -0
  688. package/es/components/switch/SwitchDocs.js +2 -2
  689. package/es/components/switch/SwitchDocs.js.map +1 -1
  690. package/es/components/tag/TagDocs.d.ts +4 -0
  691. package/es/components/tag/TagDocs.js +87 -0
  692. package/es/components/tag/TagDocs.js.map +1 -0
  693. package/es/components/textarea/Textarea.d.ts +0 -12
  694. package/es/components/textarea/TextareaDocs.d.ts +1 -0
  695. package/es/components/textarea/TextareaDocs.js +25 -3
  696. package/es/components/textarea/TextareaDocs.js.map +1 -1
  697. package/es/components/timeline/TimelineDocs.d.ts +3 -0
  698. package/es/components/timeline/TimelineDocs.js +60 -0
  699. package/es/components/timeline/TimelineDocs.js.map +1 -0
  700. package/es/components/toggle-button/ToggleButton.d.ts +0 -3
  701. package/es/components/toggle-button/ToggleButtonDocs.d.ts +1 -0
  702. package/es/components/toggle-button/ToggleButtonDocs.js +7 -0
  703. package/es/components/toggle-button/ToggleButtonDocs.js.map +1 -1
  704. package/es/components/toggle-button/ToggleButtonGroup.d.ts +0 -3
  705. package/es/components/toggle-button/ToggleButtonGroupDocs.d.ts +1 -0
  706. package/es/components/toggle-button/ToggleButtonGroupDocs.js +8 -1
  707. package/es/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -1
  708. package/es/components/tooltip/TooltipDocs.d.ts +2 -0
  709. package/es/components/tooltip/TooltipDocs.js +73 -0
  710. package/es/components/tooltip/TooltipDocs.js.map +1 -0
  711. package/es/components/upload/Upload.js +6 -4
  712. package/es/components/upload/Upload.js.map +1 -1
  713. package/es/components/upload/UploadDocs.js +5 -0
  714. package/es/components/upload/UploadDocs.js.map +1 -1
  715. package/es/components/upload/UploadFileList.js +3 -1
  716. package/es/components/upload/UploadFileList.js.map +1 -1
  717. package/es/components/upload/UploadFileListCell.d.ts +6 -1
  718. package/es/components/upload/UploadFileListCell.js +8 -5
  719. package/es/components/upload/UploadFileListCell.js.map +1 -1
  720. package/es/components/upload/types.d.ts +5 -0
  721. package/es/components/upload/types.js.map +1 -1
  722. package/es/components/upload/useUpload.d.ts +1 -0
  723. package/es/components/upload/useUpload.js +7 -1
  724. package/es/components/upload/useUpload.js.map +1 -1
  725. package/es/components/visually-hidden/VisuallyHiddenDocs.d.ts +2 -0
  726. package/es/components/visually-hidden/VisuallyHiddenDocs.js +13 -0
  727. package/es/components/visually-hidden/VisuallyHiddenDocs.js.map +1 -0
  728. package/es/extensions/forms/DataContext/At/AtDocs.d.ts +2 -0
  729. package/es/extensions/forms/DataContext/At/AtDocs.js +18 -0
  730. package/es/extensions/forms/DataContext/At/AtDocs.js.map +1 -0
  731. package/es/extensions/forms/DataContext/Context.d.ts +6 -5
  732. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  733. package/es/extensions/forms/DataContext/Provider/Provider.js +28 -34
  734. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  735. package/es/extensions/forms/Field/Date/Date.d.ts +1 -0
  736. package/es/extensions/forms/Field/Date/Date.js +2 -3
  737. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  738. package/es/extensions/forms/Field/Password/Password.js +2 -1
  739. package/es/extensions/forms/Field/Password/Password.js.map +1 -1
  740. package/es/extensions/forms/Field/Password/PasswordDocs.d.ts +1 -0
  741. package/es/extensions/forms/Field/Password/PasswordDocs.js +13 -1
  742. package/es/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  743. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +9 -3
  744. package/es/extensions/forms/Field/String/StringDocs.js +1 -1
  745. package/es/extensions/forms/Field/String/StringDocs.js.map +1 -1
  746. package/es/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  747. package/es/extensions/forms/Field/Upload/Upload.js +10 -2
  748. package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
  749. package/es/extensions/forms/Form/ButtonRow/ButtonRowDocs.d.ts +2 -0
  750. package/es/extensions/forms/Form/ButtonRow/ButtonRowDocs.js +13 -0
  751. package/es/extensions/forms/Form/ButtonRow/ButtonRowDocs.js.map +1 -0
  752. package/es/extensions/forms/Form/Isolation/IsolationDocs.js +1 -1
  753. package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  754. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +4 -4
  755. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
  756. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  757. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  758. package/es/extensions/forms/Form/Visibility/useVisibility.js +10 -14
  759. package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  760. package/es/extensions/forms/Value/Date/Date.d.ts +0 -6
  761. package/es/extensions/forms/Value/Date/Date.js +13 -34
  762. package/es/extensions/forms/Value/Date/Date.js.map +1 -1
  763. package/es/extensions/forms/Wizard/Buttons/ButtonsDocs.d.ts +2 -0
  764. package/es/extensions/forms/Wizard/Buttons/ButtonsDocs.js +8 -0
  765. package/es/extensions/forms/Wizard/Buttons/ButtonsDocs.js.map +1 -0
  766. package/es/extensions/forms/Wizard/Container/WizardContainer.js +2 -2
  767. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  768. package/es/extensions/forms/hooks/useFieldProps.js +8 -5
  769. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  770. package/es/extensions/payment-card/PaymentCard.d.ts +7 -7
  771. package/es/extensions/payment-card/PaymentCardDocs.d.ts +5 -0
  772. package/es/extensions/payment-card/PaymentCardDocs.js +199 -0
  773. package/es/extensions/payment-card/PaymentCardDocs.js.map +1 -0
  774. package/es/fragments/scroll-view/ScrollViewDocs.d.ts +2 -0
  775. package/es/fragments/scroll-view/ScrollViewDocs.js +13 -0
  776. package/es/fragments/scroll-view/ScrollViewDocs.js.map +1 -0
  777. package/es/fragments/text-counter/TextCounterDocs.d.ts +2 -0
  778. package/es/fragments/text-counter/TextCounterDocs.js +23 -0
  779. package/es/fragments/text-counter/TextCounterDocs.js.map +1 -0
  780. package/es/shared/Eufemia.d.ts +1 -1
  781. package/es/shared/Eufemia.js +2 -2
  782. package/es/shared/Eufemia.js.map +1 -1
  783. package/es/shared/MediaQueryDocs.d.ts +2 -0
  784. package/es/shared/MediaQueryDocs.js +28 -0
  785. package/es/shared/MediaQueryDocs.js.map +1 -0
  786. package/es/shared/ThemeDocs.d.ts +2 -0
  787. package/es/shared/ThemeDocs.js +33 -0
  788. package/es/shared/ThemeDocs.js.map +1 -0
  789. package/es/shared/helpers.d.ts +1 -0
  790. package/es/shared/helpers.js +6 -0
  791. package/es/shared/helpers.js.map +1 -1
  792. package/es/shared/locales/en-GB.d.ts +1 -0
  793. package/es/shared/locales/en-GB.js +1 -0
  794. package/es/shared/locales/en-GB.js.map +1 -1
  795. package/es/shared/locales/en-US.d.ts +1 -0
  796. package/es/shared/locales/index.d.ts +2 -0
  797. package/es/shared/locales/nb-NO.d.ts +1 -0
  798. package/es/shared/locales/nb-NO.js +1 -0
  799. package/es/shared/locales/nb-NO.js.map +1 -1
  800. package/es/shared/locales/sv-SE.d.ts +1 -0
  801. package/es/shared/locales/sv-SE.js +3 -2
  802. package/es/shared/locales/sv-SE.js.map +1 -1
  803. package/es/style/core/scopes.scss +1 -1
  804. package/es/style/dnb-ui-basis.css +1 -1
  805. package/es/style/dnb-ui-basis.min.css +1 -1
  806. package/es/style/dnb-ui-body.css +1 -1
  807. package/es/style/dnb-ui-body.min.css +1 -1
  808. package/es/style/dnb-ui-components.css +21 -0
  809. package/es/style/dnb-ui-components.min.css +1 -1
  810. package/es/style/dnb-ui-core.css +1 -1
  811. package/es/style/dnb-ui-core.min.css +1 -1
  812. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +26 -5
  813. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  814. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +26 -5
  815. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  816. package/es/style/themes/theme-ui/ui-theme-components.css +26 -5
  817. package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  818. package/esm/dnb-ui-basis.min.mjs +1 -1
  819. package/esm/dnb-ui-components.min.mjs +1 -1
  820. package/esm/dnb-ui-elements.min.mjs +1 -1
  821. package/esm/dnb-ui-extensions.min.mjs +1 -1
  822. package/esm/dnb-ui-lib.min.mjs +1 -1
  823. package/extensions/forms/DataContext/At/AtDocs.d.ts +2 -0
  824. package/extensions/forms/DataContext/At/AtDocs.js +18 -0
  825. package/extensions/forms/DataContext/At/AtDocs.js.map +1 -0
  826. package/extensions/forms/DataContext/Context.d.ts +6 -5
  827. package/extensions/forms/DataContext/Context.js.map +1 -1
  828. package/extensions/forms/DataContext/Provider/Provider.js +29 -35
  829. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  830. package/extensions/forms/Field/Date/Date.d.ts +1 -0
  831. package/extensions/forms/Field/Date/Date.js +2 -3
  832. package/extensions/forms/Field/Date/Date.js.map +1 -1
  833. package/extensions/forms/Field/Password/Password.js +2 -1
  834. package/extensions/forms/Field/Password/Password.js.map +1 -1
  835. package/extensions/forms/Field/Password/PasswordDocs.d.ts +1 -0
  836. package/extensions/forms/Field/Password/PasswordDocs.js +13 -1
  837. package/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  838. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +9 -3
  839. package/extensions/forms/Field/String/StringDocs.js +1 -1
  840. package/extensions/forms/Field/String/StringDocs.js.map +1 -1
  841. package/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  842. package/extensions/forms/Field/Upload/Upload.js +10 -2
  843. package/extensions/forms/Field/Upload/Upload.js.map +1 -1
  844. package/extensions/forms/Form/ButtonRow/ButtonRowDocs.d.ts +2 -0
  845. package/extensions/forms/Form/ButtonRow/ButtonRowDocs.js +13 -0
  846. package/extensions/forms/Form/ButtonRow/ButtonRowDocs.js.map +1 -0
  847. package/extensions/forms/Form/Isolation/IsolationDocs.js +1 -1
  848. package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  849. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +4 -4
  850. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
  851. package/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  852. package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  853. package/extensions/forms/Form/Visibility/useVisibility.js +10 -14
  854. package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  855. package/extensions/forms/Value/Date/Date.d.ts +0 -6
  856. package/extensions/forms/Value/Date/Date.js +14 -36
  857. package/extensions/forms/Value/Date/Date.js.map +1 -1
  858. package/extensions/forms/Wizard/Buttons/ButtonsDocs.d.ts +2 -0
  859. package/extensions/forms/Wizard/Buttons/ButtonsDocs.js +8 -0
  860. package/extensions/forms/Wizard/Buttons/ButtonsDocs.js.map +1 -0
  861. package/extensions/forms/Wizard/Container/WizardContainer.js +2 -2
  862. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  863. package/extensions/forms/hooks/useFieldProps.js +8 -5
  864. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  865. package/extensions/payment-card/PaymentCard.d.ts +7 -7
  866. package/extensions/payment-card/PaymentCardDocs.d.ts +5 -0
  867. package/extensions/payment-card/PaymentCardDocs.js +199 -0
  868. package/extensions/payment-card/PaymentCardDocs.js.map +1 -0
  869. package/fragments/scroll-view/ScrollViewDocs.d.ts +2 -0
  870. package/fragments/scroll-view/ScrollViewDocs.js +13 -0
  871. package/fragments/scroll-view/ScrollViewDocs.js.map +1 -0
  872. package/fragments/text-counter/TextCounterDocs.d.ts +2 -0
  873. package/fragments/text-counter/TextCounterDocs.js +23 -0
  874. package/fragments/text-counter/TextCounterDocs.js.map +1 -0
  875. package/package.json +1 -1
  876. package/shared/Eufemia.d.ts +1 -1
  877. package/shared/Eufemia.js +2 -2
  878. package/shared/Eufemia.js.map +1 -1
  879. package/shared/MediaQueryDocs.d.ts +2 -0
  880. package/shared/MediaQueryDocs.js +28 -0
  881. package/shared/MediaQueryDocs.js.map +1 -0
  882. package/shared/ThemeDocs.d.ts +2 -0
  883. package/shared/ThemeDocs.js +33 -0
  884. package/shared/ThemeDocs.js.map +1 -0
  885. package/shared/helpers.d.ts +1 -0
  886. package/shared/helpers.js +6 -0
  887. package/shared/helpers.js.map +1 -1
  888. package/shared/locales/en-GB.d.ts +1 -0
  889. package/shared/locales/en-GB.js +1 -0
  890. package/shared/locales/en-GB.js.map +1 -1
  891. package/shared/locales/en-US.d.ts +1 -0
  892. package/shared/locales/index.d.ts +2 -0
  893. package/shared/locales/nb-NO.d.ts +1 -0
  894. package/shared/locales/nb-NO.js +1 -0
  895. package/shared/locales/nb-NO.js.map +1 -1
  896. package/shared/locales/sv-SE.d.ts +1 -0
  897. package/shared/locales/sv-SE.js +3 -2
  898. package/shared/locales/sv-SE.js.map +1 -1
  899. package/style/core/scopes.scss +1 -1
  900. package/style/dnb-ui-basis.css +1 -1
  901. package/style/dnb-ui-basis.min.css +1 -1
  902. package/style/dnb-ui-body.css +1 -1
  903. package/style/dnb-ui-body.min.css +1 -1
  904. package/style/dnb-ui-components.css +21 -0
  905. package/style/dnb-ui-components.min.css +1 -1
  906. package/style/dnb-ui-core.css +1 -1
  907. package/style/dnb-ui-core.min.css +1 -1
  908. package/style/themes/theme-eiendom/eiendom-theme-components.css +26 -5
  909. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  910. package/style/themes/theme-sbanken/sbanken-theme-components.css +26 -5
  911. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  912. package/style/themes/theme-ui/ui-theme-components.css +26 -5
  913. package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  914. package/umd/dnb-ui-basis.min.js +1 -1
  915. package/umd/dnb-ui-components.min.js +1 -1
  916. package/umd/dnb-ui-elements.min.js +1 -1
  917. package/umd/dnb-ui-extensions.min.js +1 -1
  918. package/umd/dnb-ui-lib.min.js +1 -1
@@ -28,7 +28,7 @@ var _UploadFileList2 = _interopRequireDefault(require("./UploadFileList"));
28
28
  var _UploadInfo2 = _interopRequireDefault(require("./UploadInfo"));
29
29
  var _UploadInfo, _UploadFileList;
30
30
  const _excluded = ["buttonTextSingular", "textSingular"],
31
- _excluded2 = ["id", "skeleton", "className", "acceptedFileTypes", "filesAmountLimit", "fileMaxSize", "onChange", "onFileDelete", "onFileClick", "download", "title", "text", "fileTypeTableCaption", "fileTypeDescription", "fileSizeDescription", "fileAmountDescription", "fileSizeContent", "buttonText", "loadingText", "errorLargeFile", "errorUnsupportedFile", "errorAmountLimit", "deleteButton", "fileListAriaLabel"];
31
+ _excluded2 = ["id", "skeleton", "className", "acceptedFileTypes", "filesAmountLimit", "fileMaxSize", "onChange", "onFileDelete", "onFileClick", "download", "allowDuplicates", "title", "text", "fileTypeTableCaption", "fileTypeDescription", "fileSizeDescription", "fileAmountDescription", "fileSizeContent", "buttonText", "loadingText", "errorLargeFile", "errorUnsupportedFile", "errorAmountLimit", "deleteButton", "fileListAriaLabel"];
32
32
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
33
33
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
34
34
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -65,6 +65,7 @@ const Upload = localProps => {
65
65
  onFileDelete,
66
66
  onFileClick,
67
67
  download,
68
+ allowDuplicates,
68
69
  title,
69
70
  text,
70
71
  fileTypeTableCaption,
@@ -96,15 +97,16 @@ const Upload = localProps => {
96
97
  } = fileItem;
97
98
  const existingFile = getExistingFile(file, files);
98
99
  fileItem.exists = Boolean(existingFile);
99
- fileItem.id = fileItem.exists ? existingFile.id : (0, _componentHelper.makeUniqueId)();
100
+ fileItem.id = fileItem.exists && !allowDuplicates ? existingFile.id : (0, _componentHelper.makeUniqueId)();
100
101
  return fileItem;
101
102
  })];
102
- const verifiedFiles = (0, _UploadVerify.verifyFiles)(mergedFiles.filter(_ref => {
103
+ const filesToVerify = allowDuplicates ? mergedFiles : mergedFiles.filter(_ref => {
103
104
  let {
104
105
  exists
105
106
  } = _ref;
106
107
  return !exists;
107
- }), {
108
+ });
109
+ const verifiedFiles = (0, _UploadVerify.verifyFiles)(filesToVerify, {
108
110
  fileMaxSize,
109
111
  acceptedFileTypes,
110
112
  errorUnsupportedFile,
@@ -1 +1 @@
1
- {"version":3,"file":"Upload.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_SpacingHelper","_Provider","_Context","_componentHelper","_useId","_UploadFileInput","_useUpload","_UploadDropzone","_UploadContext","_UploadVerify","_UploadFileList2","_UploadInfo2","_UploadInfo","_UploadFileList","_excluded","_excluded2","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","Upload","localProps","context","React","useContext","Context","_context$getTranslati","getTranslation","buttonTextSingular","textSingular","translations","filesAmountLimit","buttonText","text","extendedProps","extendPropsWithContext","defaultProps","skeleton","id","idProp","className","acceptedFileTypes","fileMaxSize","onChange","onFileDelete","onFileClick","download","title","fileTypeTableCaption","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","loadingText","errorLargeFile","errorUnsupportedFile","errorAmountLimit","deleteButton","fileListAriaLabel","props","spacingClasses","createSpacingClasses","useId","files","setFiles","setInternalFiles","getExistingFile","useUpload","onInputUpload","useCallback","newFiles","mergedFiles","map","fileItem","file","existingFile","exists","Boolean","makeUniqueId","verifiedFiles","verifyFiles","_ref","validFiles","slice","createElement","UploadContext","Provider","classnames","_formElement","_supportsSpacingProps","_default","exports"],"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'\nimport useId from '../../shared/helpers/useId'\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: idProp,\n skeleton,\n className,\n acceptedFileTypes,\n filesAmountLimit,\n fileMaxSize,\n onChange,\n onFileDelete, // eslint-disable-line\n onFileClick, // eslint-disable-line\n download, // eslint-disable-line\n title, // eslint-disable-line\n text, // eslint-disable-line\n fileTypeTableCaption, // 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 id = useId(idProp)\n\n const { files, setFiles, setInternalFiles, getExistingFile } =\n useUpload(id)\n\n const onInputUpload = useCallback(\n (newFiles: Array<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(\n 0,\n filesAmountLimit\n ) as Array<UploadFile>\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 >\n <UploadInfo />\n\n <UploadFileInput {...props} />\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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","ignoreList":[]}
1
+ {"version":3,"file":"Upload.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_SpacingHelper","_Provider","_Context","_componentHelper","_useId","_UploadFileInput","_useUpload","_UploadDropzone","_UploadContext","_UploadVerify","_UploadFileList2","_UploadInfo2","_UploadInfo","_UploadFileList","_excluded","_excluded2","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","Upload","localProps","context","React","useContext","Context","_context$getTranslati","getTranslation","buttonTextSingular","textSingular","translations","filesAmountLimit","buttonText","text","extendedProps","extendPropsWithContext","defaultProps","skeleton","id","idProp","className","acceptedFileTypes","fileMaxSize","onChange","onFileDelete","onFileClick","download","allowDuplicates","title","fileTypeTableCaption","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","loadingText","errorLargeFile","errorUnsupportedFile","errorAmountLimit","deleteButton","fileListAriaLabel","props","spacingClasses","createSpacingClasses","useId","files","setFiles","setInternalFiles","getExistingFile","useUpload","onInputUpload","useCallback","newFiles","mergedFiles","map","fileItem","file","existingFile","exists","Boolean","makeUniqueId","filesToVerify","_ref","verifiedFiles","verifyFiles","validFiles","slice","createElement","UploadContext","Provider","classnames","_formElement","_supportsSpacingProps","_default","exports"],"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'\nimport useId from '../../shared/helpers/useId'\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: idProp,\n skeleton,\n className,\n acceptedFileTypes,\n filesAmountLimit,\n fileMaxSize,\n onChange,\n onFileDelete, // eslint-disable-line\n onFileClick, // eslint-disable-line\n download, // eslint-disable-line\n allowDuplicates, // eslint-disable-line\n title, // eslint-disable-line\n text, // eslint-disable-line\n fileTypeTableCaption, // 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 id = useId(idProp)\n\n const { files, setFiles, setInternalFiles, getExistingFile } =\n useUpload(id)\n\n const onInputUpload = useCallback(\n (newFiles: Array<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 =\n fileItem.exists && !allowDuplicates\n ? existingFile.id\n : makeUniqueId()\n\n return fileItem\n }),\n ]\n\n const filesToVerify = allowDuplicates\n ? mergedFiles\n : mergedFiles.filter(({ exists }) => !exists)\n\n const verifiedFiles = verifyFiles(filesToVerify, {\n fileMaxSize,\n acceptedFileTypes,\n errorUnsupportedFile,\n errorLargeFile,\n })\n\n const validFiles = [...verifiedFiles].slice(\n 0,\n filesAmountLimit\n ) as Array<UploadFile>\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 >\n <UploadInfo />\n\n <UploadFileInput {...props} />\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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","ignoreList":[]}
@@ -40,6 +40,11 @@ const UploadProperties = exports.UploadProperties = {
40
40
  type: 'boolean',
41
41
  status: 'optional'
42
42
  },
43
+ allowDuplicates: {
44
+ doc: 'Allows uploading of duplicate files. Defaults to `false`.',
45
+ type: 'boolean',
46
+ status: 'optional'
47
+ },
43
48
  skeleton: {
44
49
  doc: 'Skeleton should be applied when loading content.',
45
50
  type: 'boolean',
@@ -1 +1 @@
1
- {"version":3,"file":"UploadDocs.js","names":["UploadProperties","exports","id","doc","type","status","acceptedFileTypes","filesAmountLimit","fileMaxSize","title","text","download","skeleton","AcceptedFileTypeProperties","fileType","UploadEvents","onChange","onFileDelete","onFileClick"],"sources":["../../../../src/components/upload/UploadDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const UploadProperties: PropertiesTableProps = {\n id: {\n doc: 'Unique id used with the useUpload hook to manage the files. Needed when wanting to connect with the useUpload hook.',\n type: ['string', 'Function', 'Object', 'React.Context'],\n status: 'optional',\n },\n acceptedFileTypes: {\n doc: 'List of accepted file types. Either as string or [AcceptedFileType](/uilib/components/upload/properties/#acceptedfiletype). When providing a list of [AcceptedFileType](/uilib/components/upload/properties/#acceptedfiletype), the accepted file types will be presented in a table(see [example](/uilib/components/upload/demos/#upload-with-file-max-size-based-on-file-type)).',\n type: ['Array<string>', 'Array<AcceptedFileType>'],\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: 'Defines the max file size of each file in MB. Use either `0` or `false` to disable. Defaults to 5 MB.',\n type: ['number', 'false'],\n status: 'optional',\n },\n title: {\n doc: 'Custom text property. Replaces the default title. Can be disabled using `false`.',\n type: 'string',\n status: 'optional',\n },\n text: {\n doc: 'Custom text property. Replaces the default text. Can be disabled using `false`.',\n type: 'string',\n status: 'optional',\n },\n download: {\n doc: 'Causes the browser to treat all listed files as downloadable instead of opening them in a new browser tab or window. Defaults to `false`.',\n type: 'boolean',\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 AcceptedFileTypeProperties: PropertiesTableProps = {\n fileType: {\n doc: 'The name of the accepted file type.',\n type: 'string',\n status: 'required',\n },\n fileMaxSize: {\n doc: 'Defines the max file size of the given file type in MB. Use either `0` or `false` to disable. If not provided, it defaults to the value of [Uploads](/uilib/components/upload/properties/#properties) `fileMaxSize` which defaults to 5 MB.',\n type: ['number', 'false'],\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 onFileClick: {\n doc: 'Will be called once a file gets clicked on by the user. Access the clicked file with `{ fileItem }`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":";;;;;;AAEO,MAAMA,gBAAsC,GAAAC,OAAA,CAAAD,gBAAA,GAAG;EACpDE,EAAE,EAAE;IACFC,GAAG,EAAE,qHAAqH;IAC1HC,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,CAAC;IACvDC,MAAM,EAAE;EACV,CAAC;EACDC,iBAAiB,EAAE;IACjBH,GAAG,EAAE,oXAAoX;IACzXC,IAAI,EAAE,CAAC,eAAe,EAAE,yBAAyB,CAAC;IAClDC,MAAM,EAAE;EACV,CAAC;EACDE,gBAAgB,EAAE;IAChBJ,GAAG,EAAE,8EAA8E;IACnFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,WAAW,EAAE;IACXL,GAAG,EAAE,uGAAuG;IAC5GC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDI,KAAK,EAAE;IACLN,GAAG,EAAE,kFAAkF;IACvFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,IAAI,EAAE;IACJP,GAAG,EAAE,iFAAiF;IACtFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,QAAQ,EAAE;IACRR,GAAG,EAAE,2IAA2I;IAChJC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDO,QAAQ,EAAE;IACRT,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;AAEM,MAAMQ,0BAAgD,GAAAZ,OAAA,CAAAY,0BAAA,GAAG;EAC9DC,QAAQ,EAAE;IACRX,GAAG,EAAE,qCAAqC;IAC1CC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,WAAW,EAAE;IACXL,GAAG,EAAE,6OAA6O;IAClPC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV;AACF,CAAC;AAEM,MAAMU,YAAkC,GAAAd,OAAA,CAAAc,YAAA,GAAG;EAChDC,QAAQ,EAAE;IACRb,GAAG,EAAE,uHAAuH;IAC5HC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDY,YAAY,EAAE;IACZd,GAAG,EAAE,mGAAmG;IACxGC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDa,WAAW,EAAE;IACXf,GAAG,EAAE,sGAAsG;IAC3GC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"UploadDocs.js","names":["UploadProperties","exports","id","doc","type","status","acceptedFileTypes","filesAmountLimit","fileMaxSize","title","text","download","allowDuplicates","skeleton","AcceptedFileTypeProperties","fileType","UploadEvents","onChange","onFileDelete","onFileClick"],"sources":["../../../../src/components/upload/UploadDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const UploadProperties: PropertiesTableProps = {\n id: {\n doc: 'Unique id used with the useUpload hook to manage the files. Needed when wanting to connect with the useUpload hook.',\n type: ['string', 'Function', 'Object', 'React.Context'],\n status: 'optional',\n },\n acceptedFileTypes: {\n doc: 'List of accepted file types. Either as string or [AcceptedFileType](/uilib/components/upload/properties/#acceptedfiletype). When providing a list of [AcceptedFileType](/uilib/components/upload/properties/#acceptedfiletype), the accepted file types will be presented in a table(see [example](/uilib/components/upload/demos/#upload-with-file-max-size-based-on-file-type)).',\n type: ['Array<string>', 'Array<AcceptedFileType>'],\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: 'Defines the max file size of each file in MB. Use either `0` or `false` to disable. Defaults to 5 MB.',\n type: ['number', 'false'],\n status: 'optional',\n },\n title: {\n doc: 'Custom text property. Replaces the default title. Can be disabled using `false`.',\n type: 'string',\n status: 'optional',\n },\n text: {\n doc: 'Custom text property. Replaces the default text. Can be disabled using `false`.',\n type: 'string',\n status: 'optional',\n },\n download: {\n doc: 'Causes the browser to treat all listed files as downloadable instead of opening them in a new browser tab or window. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n allowDuplicates: {\n doc: 'Allows uploading of duplicate files. Defaults to `false`.',\n type: 'boolean',\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 AcceptedFileTypeProperties: PropertiesTableProps = {\n fileType: {\n doc: 'The name of the accepted file type.',\n type: 'string',\n status: 'required',\n },\n fileMaxSize: {\n doc: 'Defines the max file size of the given file type in MB. Use either `0` or `false` to disable. If not provided, it defaults to the value of [Uploads](/uilib/components/upload/properties/#properties) `fileMaxSize` which defaults to 5 MB.',\n type: ['number', 'false'],\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 onFileClick: {\n doc: 'Will be called once a file gets clicked on by the user. Access the clicked file with `{ fileItem }`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":";;;;;;AAEO,MAAMA,gBAAsC,GAAAC,OAAA,CAAAD,gBAAA,GAAG;EACpDE,EAAE,EAAE;IACFC,GAAG,EAAE,qHAAqH;IAC1HC,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,CAAC;IACvDC,MAAM,EAAE;EACV,CAAC;EACDC,iBAAiB,EAAE;IACjBH,GAAG,EAAE,oXAAoX;IACzXC,IAAI,EAAE,CAAC,eAAe,EAAE,yBAAyB,CAAC;IAClDC,MAAM,EAAE;EACV,CAAC;EACDE,gBAAgB,EAAE;IAChBJ,GAAG,EAAE,8EAA8E;IACnFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,WAAW,EAAE;IACXL,GAAG,EAAE,uGAAuG;IAC5GC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDI,KAAK,EAAE;IACLN,GAAG,EAAE,kFAAkF;IACvFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,IAAI,EAAE;IACJP,GAAG,EAAE,iFAAiF;IACtFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,QAAQ,EAAE;IACRR,GAAG,EAAE,2IAA2I;IAChJC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDO,eAAe,EAAE;IACfT,GAAG,EAAE,2DAA2D;IAChEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDQ,QAAQ,EAAE;IACRV,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;AAEM,MAAMS,0BAAgD,GAAAb,OAAA,CAAAa,0BAAA,GAAG;EAC9DC,QAAQ,EAAE;IACRZ,GAAG,EAAE,qCAAqC;IAC1CC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,WAAW,EAAE;IACXL,GAAG,EAAE,6OAA6O;IAClPC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV;AACF,CAAC;AAEM,MAAMW,YAAkC,GAAAf,OAAA,CAAAe,YAAA,GAAG;EAChDC,QAAQ,EAAE;IACRd,GAAG,EAAE,uHAAuH;IAC5HC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDa,YAAY,EAAE;IACZf,GAAG,EAAE,mGAAmG;IACxGC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDc,WAAW,EAAE;IACXhB,GAAG,EAAE,sGAAsG;IAC3GC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC","ignoreList":[]}
@@ -26,6 +26,7 @@ function UploadFileList() {
26
26
  fileListAriaLabel,
27
27
  deleteButton,
28
28
  download,
29
+ allowDuplicates,
29
30
  loadingText,
30
31
  onFileDelete,
31
32
  onFileClick,
@@ -127,7 +128,8 @@ function UploadFileList() {
127
128
  onClick: onFileClick && onFileClickHandler,
128
129
  deleteButtonText: deleteButton,
129
130
  loadingText: loadingText,
130
- download: download
131
+ download: download,
132
+ allowDuplicates: allowDuplicates
131
133
  });
132
134
  }));
133
135
  }
@@ -1 +1 @@
1
- {"version":3,"file":"UploadFileList.js","names":["_react","_interopRequireWildcard","require","_UploadContext","_UploadFileListCell","_interopRequireDefault","_useUpload","_isAsync","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","UploadFileList","context","React","useContext","UploadContext","id","fileListAriaLabel","deleteButton","download","loadingText","onFileDelete","onFileClick","onChange","files","setFiles","setInternalFiles","useUpload","filesRef","useRef","useEffect","current","removeFile","fileToBeRemoved","fileListElement","file","updateFile","fileToBeUpdated","props","map","idIsSame","fileIsSame","updateFiles","updatedFiles","handleDeleteAsync","uploadFile","isLoading","errorMessage","fileItem","error","message","handleFileClickAsync","createElement","className","index","onDeleteHandler","isAsync","onFileClickHandler","key","onDelete","onClick","deleteButtonText","_default","exports"],"sources":["../../../../src/components/upload/UploadFileList.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react'\nimport { UploadFile } from './types'\nimport { UploadContext } from './UploadContext'\nimport UploadFileListCell from './UploadFileListCell'\nimport useUpload from './useUpload'\nimport { isAsync } from '../../shared/helpers/isAsync'\n\nfunction UploadFileList() {\n const context = React.useContext(UploadContext)\n\n const {\n id,\n fileListAriaLabel,\n deleteButton,\n download,\n loadingText,\n onFileDelete,\n onFileClick,\n onChange,\n } = context\n\n const { files, setFiles, setInternalFiles } = useUpload(id)\n\n const filesRef = useRef(null)\n\n useEffect(() => {\n filesRef.current = files\n }, [files])\n\n if (files === null || files.length < 1) {\n return null\n }\n\n const removeFile = (fileToBeRemoved: UploadFile) => {\n return filesRef.current.filter(\n (fileListElement) => fileListElement.file != fileToBeRemoved.file\n )\n }\n\n const updateFile = (\n fileToBeUpdated: UploadFile,\n props: Partial<UploadFile>\n ) => {\n return filesRef.current.map((fileListElement: UploadFile) => {\n const idIsSame =\n fileListElement.id && fileListElement.id === fileToBeUpdated.id\n\n const fileIsSame =\n fileListElement.file &&\n fileListElement.file === fileToBeUpdated.file\n\n return idIsSame || fileIsSame\n ? {\n ...fileListElement,\n ...props,\n }\n : fileListElement\n })\n }\n\n const updateFiles = (updatedFiles: UploadFile[]) => {\n setFiles(updatedFiles)\n setInternalFiles(updatedFiles)\n\n if (typeof onChange === 'function') {\n onChange({ files: updatedFiles })\n }\n }\n\n const handleDeleteAsync = async (uploadFile: UploadFile) => {\n updateFiles(\n updateFile(uploadFile, {\n isLoading: true,\n errorMessage: null,\n })\n )\n\n try {\n await onFileDelete({ fileItem: uploadFile })\n updateFiles(removeFile(uploadFile))\n } catch (error) {\n updateFiles(\n updateFile(uploadFile, {\n isLoading: false,\n errorMessage: error.message,\n })\n )\n }\n }\n\n const handleFileClickAsync = async (uploadFile: UploadFile) => {\n updateFiles(\n updateFile(uploadFile, {\n isLoading: true,\n })\n )\n\n await onFileClick({ fileItem: uploadFile })\n updateFiles(\n updateFile(uploadFile, {\n isLoading: false,\n })\n )\n }\n\n return (\n <ul className=\"dnb-upload__file-list\" aria-label={fileListAriaLabel}>\n {files.map((uploadFile: UploadFile, index: number) => {\n const onDeleteHandler = async () => {\n if (typeof onFileDelete === 'function') {\n if (isAsync(onFileDelete)) {\n handleDeleteAsync(uploadFile)\n } else {\n onFileDelete({ fileItem: uploadFile })\n updateFiles(removeFile(uploadFile))\n }\n } else {\n updateFiles(removeFile(uploadFile))\n }\n }\n\n const onFileClickHandler = async () => {\n if (typeof onFileClick === 'function') {\n if (isAsync(onFileClick)) {\n handleFileClickAsync(uploadFile)\n } else {\n onFileClick({ fileItem: uploadFile })\n }\n }\n }\n\n return (\n <UploadFileListCell\n key={index}\n id={id}\n uploadFile={uploadFile}\n onDelete={onDeleteHandler}\n onClick={onFileClick && onFileClickHandler}\n deleteButtonText={deleteButton}\n loadingText={loadingText}\n download={download}\n />\n )\n })}\n </ul>\n )\n}\n\nexport default UploadFileList\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"UploadFileList.js","names":["_react","_interopRequireWildcard","require","_UploadContext","_UploadFileListCell","_interopRequireDefault","_useUpload","_isAsync","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","UploadFileList","context","React","useContext","UploadContext","id","fileListAriaLabel","deleteButton","download","allowDuplicates","loadingText","onFileDelete","onFileClick","onChange","files","setFiles","setInternalFiles","useUpload","filesRef","useRef","useEffect","current","removeFile","fileToBeRemoved","fileListElement","file","updateFile","fileToBeUpdated","props","map","idIsSame","fileIsSame","updateFiles","updatedFiles","handleDeleteAsync","uploadFile","isLoading","errorMessage","fileItem","error","message","handleFileClickAsync","createElement","className","index","onDeleteHandler","isAsync","onFileClickHandler","key","onDelete","onClick","deleteButtonText","_default","exports"],"sources":["../../../../src/components/upload/UploadFileList.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react'\nimport { UploadFile } from './types'\nimport { UploadContext } from './UploadContext'\nimport UploadFileListCell from './UploadFileListCell'\nimport useUpload from './useUpload'\nimport { isAsync } from '../../shared/helpers/isAsync'\n\nfunction UploadFileList() {\n const context = React.useContext(UploadContext)\n\n const {\n id,\n fileListAriaLabel,\n deleteButton,\n download,\n allowDuplicates,\n loadingText,\n onFileDelete,\n onFileClick,\n onChange,\n } = context\n\n const { files, setFiles, setInternalFiles } = useUpload(id)\n\n const filesRef = useRef(null)\n\n useEffect(() => {\n filesRef.current = files\n }, [files])\n\n if (files === null || files.length < 1) {\n return null\n }\n\n const removeFile = (fileToBeRemoved: UploadFile) => {\n return filesRef.current.filter(\n (fileListElement) => fileListElement.file != fileToBeRemoved.file\n )\n }\n\n const updateFile = (\n fileToBeUpdated: UploadFile,\n props: Partial<UploadFile>\n ) => {\n return filesRef.current.map((fileListElement: UploadFile) => {\n const idIsSame =\n fileListElement.id && fileListElement.id === fileToBeUpdated.id\n\n const fileIsSame =\n fileListElement.file &&\n fileListElement.file === fileToBeUpdated.file\n\n return idIsSame || fileIsSame\n ? {\n ...fileListElement,\n ...props,\n }\n : fileListElement\n })\n }\n\n const updateFiles = (updatedFiles: UploadFile[]) => {\n setFiles(updatedFiles)\n setInternalFiles(updatedFiles)\n\n if (typeof onChange === 'function') {\n onChange({ files: updatedFiles })\n }\n }\n\n const handleDeleteAsync = async (uploadFile: UploadFile) => {\n updateFiles(\n updateFile(uploadFile, {\n isLoading: true,\n errorMessage: null,\n })\n )\n\n try {\n await onFileDelete({ fileItem: uploadFile })\n updateFiles(removeFile(uploadFile))\n } catch (error) {\n updateFiles(\n updateFile(uploadFile, {\n isLoading: false,\n errorMessage: error.message,\n })\n )\n }\n }\n\n const handleFileClickAsync = async (uploadFile: UploadFile) => {\n updateFiles(\n updateFile(uploadFile, {\n isLoading: true,\n })\n )\n\n await onFileClick({ fileItem: uploadFile })\n updateFiles(\n updateFile(uploadFile, {\n isLoading: false,\n })\n )\n }\n\n return (\n <ul className=\"dnb-upload__file-list\" aria-label={fileListAriaLabel}>\n {files.map((uploadFile: UploadFile, index: number) => {\n const onDeleteHandler = async () => {\n if (typeof onFileDelete === 'function') {\n if (isAsync(onFileDelete)) {\n handleDeleteAsync(uploadFile)\n } else {\n onFileDelete({ fileItem: uploadFile })\n updateFiles(removeFile(uploadFile))\n }\n } else {\n updateFiles(removeFile(uploadFile))\n }\n }\n\n const onFileClickHandler = async () => {\n if (typeof onFileClick === 'function') {\n if (isAsync(onFileClick)) {\n handleFileClickAsync(uploadFile)\n } else {\n onFileClick({ fileItem: uploadFile })\n }\n }\n }\n\n return (\n <UploadFileListCell\n key={index}\n id={id}\n uploadFile={uploadFile}\n onDelete={onDeleteHandler}\n onClick={onFileClick && onFileClickHandler}\n deleteButtonText={deleteButton}\n loadingText={loadingText}\n download={download}\n allowDuplicates={allowDuplicates}\n />\n )\n })}\n </ul>\n )\n}\n\nexport default UploadFileList\n"],"mappings":"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","ignoreList":[]}
@@ -34,13 +34,18 @@ export type UploadFileListCellProps = {
34
34
  * Default: false
35
35
  */
36
36
  download?: boolean;
37
+ /**
38
+ * Allows uploading of duplicate files.
39
+ * Default: false
40
+ */
41
+ allowDuplicates?: boolean;
37
42
  /**
38
43
  * Text
39
44
  */
40
45
  loadingText: React.ReactNode;
41
46
  deleteButtonText: React.ReactNode;
42
47
  };
43
- declare const UploadFileListCell: ({ id, uploadFile, onDelete, onClick, loadingText, deleteButtonText, download, }: UploadFileListCellProps) => import("react/jsx-runtime").JSX.Element;
48
+ declare const UploadFileListCell: ({ id, uploadFile, onDelete, onClick, loadingText, deleteButtonText, download, allowDuplicates, }: UploadFileListCellProps) => import("react/jsx-runtime").JSX.Element;
44
49
  export default UploadFileListCell;
45
50
  export declare function getFileIcon(file: File, loading?: {
46
51
  isLoading: UploadFile['isLoading'];
@@ -18,7 +18,7 @@ var _FormStatus2 = _interopRequireDefault(require("../../components/FormStatus")
18
18
  var _progressIndicator = _interopRequireDefault(require("../../components/progress-indicator"));
19
19
  var _icons = require("../../icons");
20
20
  var _componentHelper = require("../../shared/component-helper");
21
- var _useUpload = _interopRequireDefault(require("./useUpload"));
21
+ var _useUpload = _interopRequireWildcard(require("./useUpload"));
22
22
  var _UploadVerify = require("./UploadVerify");
23
23
  var _UploadFileListLink = _interopRequireDefault(require("./UploadFileListLink"));
24
24
  var _Icon;
@@ -48,7 +48,8 @@ const UploadFileListCell = _ref => {
48
48
  onClick,
49
49
  loadingText,
50
50
  deleteButtonText,
51
- download
51
+ download,
52
+ allowDuplicates
52
53
  } = _ref;
53
54
  const {
54
55
  file,
@@ -59,6 +60,7 @@ const UploadFileListCell = _ref => {
59
60
  const imageUrl = (file === null || file === void 0 ? void 0 : file.size) > 0 ? URL.createObjectURL(file) : null;
60
61
  const cellRef = (0, _react.useRef)();
61
62
  const exists = useExistsHighlight(id, file);
63
+ const isDuplicate = !allowDuplicates && exists;
62
64
  const handleDisappearFocus = (0, _react.useCallback)(() => {
63
65
  var _getPreviousSibling;
64
66
  const cellElement = cellRef.current;
@@ -72,7 +74,7 @@ const UploadFileListCell = _ref => {
72
74
  onDelete();
73
75
  }, [handleDisappearFocus, onDelete]);
74
76
  return _react.default.createElement("li", {
75
- className: (0, _classnames.default)('dnb-upload__file-cell', hasWarning && 'dnb-upload__file-cell--warning', exists && 'dnb-upload__file-cell--highlight'),
77
+ className: (0, _classnames.default)('dnb-upload__file-cell', hasWarning && 'dnb-upload__file-cell--warning', isDuplicate && 'dnb-upload__file-cell--highlight'),
76
78
  ref: cellRef
77
79
  }, _react.default.createElement("div", {
78
80
  className: "dnb-upload__file-cell__content"
@@ -96,7 +98,8 @@ const UploadFileListCell = _ref => {
96
98
  text: file.name,
97
99
  href: imageUrl,
98
100
  download: download,
99
- onClick: onClick
101
+ onClick: onClick,
102
+ bottom: 0
100
103
  }));
101
104
  }
102
105
  function getWarning() {
@@ -123,7 +126,7 @@ function useExistsHighlight(id, file) {
123
126
  exists,
124
127
  file: f
125
128
  } = _ref2;
126
- return exists && f.name === file.name && f.size === file.size;
129
+ return exists && (0, _useUpload.isFileEqual)(file, f);
127
130
  });
128
131
  if (exists) {
129
132
  updateExists(true);
@@ -1 +1 @@
1
- {"version":3,"file":"UploadFileListCell.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_Button","_Icon2","_FormStatus2","_progressIndicator","_icons","_componentHelper","_useUpload","_UploadVerify","_UploadFileListLink","_Icon","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","fileExtensionImages","exports","png","jpg","pdf","doc","docx","odt","xls","ppt","csv","txt","xml","file","UploadFileListCell","_ref","_div","_FormStatus","id","uploadFile","onDelete","onClick","loadingText","deleteButtonText","download","errorMessage","isLoading","hasWarning","imageUrl","size","URL","createObjectURL","cellRef","useRef","exists","useExistsHighlight","handleDisappearFocus","useCallback","_getPreviousSibling","cellElement","current","focusElement","getPreviousSibling","querySelector","focus","preventScroll","onDeleteHandler","createElement","className","classnames","ref","getFileIcon","getTitle","icon","TrashIcon","variant","icon_position","disabled","getWarning","text","name","href","top","stretch","_default","internalFiles","useUpload","updateExists","React","useState","timerRef","clearTimers","clearTimeout","useEffect","some","_ref2","f","setTimeout","loading","_loading$size","ExclamationIcon","iconFileType","getFileTypeFromExtension","mimeParts","type","split","prototype"],"sources":["../../../../src/components/upload/UploadFileListCell.tsx"],"sourcesContent":["import React, { useCallback, useRef } from 'react'\nimport classnames from 'classnames'\n\n// Components\nimport Button from '../button/Button'\nimport Icon from '../../components/Icon'\nimport FormStatus from '../../components/FormStatus'\nimport ProgressIndicator from '../../components/progress-indicator'\n\n// Icons\nimport {\n trash as TrashIcon,\n exclamation_medium as ExclamationIcon,\n file_png_medium as png,\n file_jpg_medium as jpg,\n file_word_medium as doc,\n file_pdf_medium as pdf,\n file_xls_medium as xls,\n file_ppt_medium as ppt,\n file_csv_medium as csv,\n file_txt_medium as txt,\n file_xml_medium as xml,\n file_medium as file,\n} from '../../icons'\nimport { UploadFile, UploadFileNative } from './types'\n\n// Shared\nimport { getPreviousSibling } from '../../shared/component-helper'\nimport useUpload from './useUpload'\nimport { getFileTypeFromExtension } from './UploadVerify'\nimport UploadFileLink from './UploadFileListLink'\nimport { ProgressIndicatorAllProps } from '../progress-indicator/types'\n\n// Will be deprecated - and then default to only showing the file icon,\n// and not file icon per file extension type\nexport const fileExtensionImages = {\n png,\n jpg,\n pdf,\n doc,\n docx: doc,\n odt: doc,\n xls,\n ppt,\n csv,\n txt,\n xml,\n file,\n}\n\nexport type UploadFileListCellProps = {\n id: string\n\n /**\n * Uploaded file\n */\n uploadFile: UploadFile | UploadFileNative\n\n /**\n * Calls onDelete when clicking the delete button\n */\n onDelete: () => void\n\n /**\n * Calls onClick when clicking the file name\n */\n onClick?: () => void\n\n /**\n * Causes the browser to treat all listed files as downloadable instead of opening them in a new browser tab or window.\n * Default: false\n */\n download?: boolean\n\n /**\n * Text\n */\n loadingText: React.ReactNode\n deleteButtonText: React.ReactNode\n}\n\nconst UploadFileListCell = ({\n id,\n uploadFile,\n onDelete,\n onClick,\n loadingText,\n deleteButtonText,\n download,\n}: UploadFileListCellProps) => {\n const { file, errorMessage, isLoading } = uploadFile\n const hasWarning = errorMessage != null\n\n const imageUrl = file?.size > 0 ? URL.createObjectURL(file) : null\n const cellRef = useRef<HTMLLIElement>()\n const exists = useExistsHighlight(id, file)\n\n const handleDisappearFocus = useCallback(() => {\n const cellElement = cellRef.current\n const focusElement = getPreviousSibling(\n '.dnb-upload',\n cellElement\n )?.querySelector('.dnb-upload__file-input-button') as HTMLButtonElement\n focusElement?.focus({ preventScroll: true })\n }, [cellRef])\n\n const onDeleteHandler = useCallback(() => {\n handleDisappearFocus()\n\n onDelete()\n }, [handleDisappearFocus, onDelete])\n\n return (\n <li\n className={classnames(\n 'dnb-upload__file-cell',\n hasWarning && 'dnb-upload__file-cell--warning',\n exists && 'dnb-upload__file-cell--highlight'\n )}\n ref={cellRef}\n >\n <div className=\"dnb-upload__file-cell__content\">\n <div className=\"dnb-upload__file-cell__content__left\">\n {getFileIcon(file, { isLoading }, hasWarning)}\n {getTitle()}\n </div>\n <div>\n <Button\n icon={TrashIcon}\n variant=\"tertiary\"\n onClick={onDeleteHandler}\n icon_position=\"left\"\n disabled={isLoading}\n >\n {deleteButtonText}\n </Button>\n </div>\n </div>\n\n {getWarning()}\n </li>\n )\n\n function getTitle() {\n return isLoading ? (\n <div\n className={classnames(\n 'dnb-upload__file-cell__text-container',\n 'dnb-upload__file-cell__text-container--loading'\n )}\n >\n {loadingText}\n </div>\n ) : (\n <div className=\"dnb-upload__file-cell__text-container\">\n <UploadFileLink\n text={file.name}\n href={imageUrl}\n download={download}\n onClick={onClick}\n />\n </div>\n )\n }\n\n function getWarning() {\n return hasWarning ? (\n <FormStatus top=\"small\" text={errorMessage} stretch />\n ) : null\n }\n}\n\nexport default UploadFileListCell\n\nfunction useExistsHighlight(id: string, file: File) {\n const { internalFiles } = useUpload(id)\n const [exists, updateExists] = React.useState(false)\n const timerRef = React.useRef<NodeJS.Timer>()\n\n const clearTimers = () => {\n clearTimeout(timerRef.current)\n }\n\n React.useEffect(() => {\n const exists = internalFiles.some(({ exists, file: f }) => {\n return exists && f.name === file.name && f.size === file.size\n })\n\n if (exists) {\n updateExists(true)\n clearTimers()\n timerRef.current = setTimeout(() => updateExists(false), 1500) // transition-duration in CSS\n }\n\n return clearTimers\n }, [file, internalFiles])\n\n return exists\n}\n\nexport function getFileIcon(\n file: File,\n loading?: {\n isLoading: UploadFile['isLoading']\n size?: ProgressIndicatorAllProps['size']\n },\n hasWarning?: boolean\n) {\n if (loading?.isLoading) {\n return <ProgressIndicator size={loading?.size ?? 'default'} />\n }\n\n if (hasWarning) return <Icon icon={ExclamationIcon} />\n\n let iconFileType = getFileTypeFromExtension(file)\n\n if (!iconFileType) {\n const mimeParts = file.type.split('/')\n iconFileType =\n fileExtensionImages[mimeParts[0]] ||\n fileExtensionImages[mimeParts[1]]\n }\n\n if (\n !Object.prototype.hasOwnProperty.call(\n fileExtensionImages,\n iconFileType\n )\n ) {\n iconFileType = 'file'\n }\n\n return <Icon icon={fileExtensionImages[iconFileType]} />\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"UploadFileListCell.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_Button","_Icon2","_FormStatus2","_progressIndicator","_icons","_componentHelper","_useUpload","_UploadVerify","_UploadFileListLink","_Icon","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","fileExtensionImages","exports","png","jpg","pdf","doc","docx","odt","xls","ppt","csv","txt","xml","file","UploadFileListCell","_ref","_div","_FormStatus","id","uploadFile","onDelete","onClick","loadingText","deleteButtonText","download","allowDuplicates","errorMessage","isLoading","hasWarning","imageUrl","size","URL","createObjectURL","cellRef","useRef","exists","useExistsHighlight","isDuplicate","handleDisappearFocus","useCallback","_getPreviousSibling","cellElement","current","focusElement","getPreviousSibling","querySelector","focus","preventScroll","onDeleteHandler","createElement","className","classnames","ref","getFileIcon","getTitle","icon","TrashIcon","variant","icon_position","disabled","getWarning","text","name","href","bottom","top","stretch","_default","internalFiles","useUpload","updateExists","React","useState","timerRef","clearTimers","clearTimeout","useEffect","some","_ref2","f","isFileEqual","setTimeout","loading","_loading$size","ExclamationIcon","iconFileType","getFileTypeFromExtension","mimeParts","type","split","prototype"],"sources":["../../../../src/components/upload/UploadFileListCell.tsx"],"sourcesContent":["import React, { useCallback, useRef } from 'react'\nimport classnames from 'classnames'\n\n// Components\nimport Button from '../button/Button'\nimport Icon from '../../components/Icon'\nimport FormStatus from '../../components/FormStatus'\nimport ProgressIndicator from '../../components/progress-indicator'\n\n// Icons\nimport {\n trash as TrashIcon,\n exclamation_medium as ExclamationIcon,\n file_png_medium as png,\n file_jpg_medium as jpg,\n file_word_medium as doc,\n file_pdf_medium as pdf,\n file_xls_medium as xls,\n file_ppt_medium as ppt,\n file_csv_medium as csv,\n file_txt_medium as txt,\n file_xml_medium as xml,\n file_medium as file,\n} from '../../icons'\nimport { UploadFile, UploadFileNative } from './types'\n\n// Shared\nimport { getPreviousSibling } from '../../shared/component-helper'\nimport useUpload, { isFileEqual } from './useUpload'\nimport { getFileTypeFromExtension } from './UploadVerify'\nimport UploadFileLink from './UploadFileListLink'\nimport { ProgressIndicatorAllProps } from '../progress-indicator/types'\n\n// Will be deprecated - and then default to only showing the file icon,\n// and not file icon per file extension type\nexport const fileExtensionImages = {\n png,\n jpg,\n pdf,\n doc,\n docx: doc,\n odt: doc,\n xls,\n ppt,\n csv,\n txt,\n xml,\n file,\n}\n\nexport type UploadFileListCellProps = {\n id: string\n\n /**\n * Uploaded file\n */\n uploadFile: UploadFile | UploadFileNative\n\n /**\n * Calls onDelete when clicking the delete button\n */\n onDelete: () => void\n\n /**\n * Calls onClick when clicking the file name\n */\n onClick?: () => void\n\n /**\n * Causes the browser to treat all listed files as downloadable instead of opening them in a new browser tab or window.\n * Default: false\n */\n download?: boolean\n\n /**\n * Allows uploading of duplicate files.\n * Default: false\n */\n allowDuplicates?: boolean\n\n /**\n * Text\n */\n loadingText: React.ReactNode\n deleteButtonText: React.ReactNode\n}\n\nconst UploadFileListCell = ({\n id,\n uploadFile,\n onDelete,\n onClick,\n loadingText,\n deleteButtonText,\n download,\n allowDuplicates,\n}: UploadFileListCellProps) => {\n const { file, errorMessage, isLoading } = uploadFile\n const hasWarning = errorMessage != null\n\n const imageUrl = file?.size > 0 ? URL.createObjectURL(file) : null\n const cellRef = useRef<HTMLLIElement>()\n const exists = useExistsHighlight(id, file)\n const isDuplicate = !allowDuplicates && exists\n\n const handleDisappearFocus = useCallback(() => {\n const cellElement = cellRef.current\n const focusElement = getPreviousSibling(\n '.dnb-upload',\n cellElement\n )?.querySelector('.dnb-upload__file-input-button') as HTMLButtonElement\n focusElement?.focus({ preventScroll: true })\n }, [cellRef])\n\n const onDeleteHandler = useCallback(() => {\n handleDisappearFocus()\n\n onDelete()\n }, [handleDisappearFocus, onDelete])\n\n return (\n <li\n className={classnames(\n 'dnb-upload__file-cell',\n hasWarning && 'dnb-upload__file-cell--warning',\n isDuplicate && 'dnb-upload__file-cell--highlight'\n )}\n ref={cellRef}\n >\n <div className=\"dnb-upload__file-cell__content\">\n <div className=\"dnb-upload__file-cell__content__left\">\n {getFileIcon(file, { isLoading }, hasWarning)}\n {getTitle()}\n </div>\n <div>\n <Button\n icon={TrashIcon}\n variant=\"tertiary\"\n onClick={onDeleteHandler}\n icon_position=\"left\"\n disabled={isLoading}\n >\n {deleteButtonText}\n </Button>\n </div>\n </div>\n\n {getWarning()}\n </li>\n )\n\n function getTitle() {\n return isLoading ? (\n <div\n className={classnames(\n 'dnb-upload__file-cell__text-container',\n 'dnb-upload__file-cell__text-container--loading'\n )}\n >\n {loadingText}\n </div>\n ) : (\n <div className=\"dnb-upload__file-cell__text-container\">\n <UploadFileLink\n text={file.name}\n href={imageUrl}\n download={download}\n onClick={onClick}\n bottom={0}\n />\n </div>\n )\n }\n\n function getWarning() {\n return hasWarning ? (\n <FormStatus top=\"small\" text={errorMessage} stretch />\n ) : null\n }\n}\n\nexport default UploadFileListCell\n\nfunction useExistsHighlight(id: string, file: File) {\n const { internalFiles } = useUpload(id)\n const [exists, updateExists] = React.useState(false)\n const timerRef = React.useRef<NodeJS.Timer>()\n\n const clearTimers = () => {\n clearTimeout(timerRef.current)\n }\n\n React.useEffect(() => {\n const exists = internalFiles.some(({ exists, file: f }) => {\n return exists && isFileEqual(file, f)\n })\n\n if (exists) {\n updateExists(true)\n clearTimers()\n timerRef.current = setTimeout(() => updateExists(false), 1500) // transition-duration in CSS\n }\n\n return clearTimers\n }, [file, internalFiles])\n\n return exists\n}\n\nexport function getFileIcon(\n file: File,\n loading?: {\n isLoading: UploadFile['isLoading']\n size?: ProgressIndicatorAllProps['size']\n },\n hasWarning?: boolean\n) {\n if (loading?.isLoading) {\n return <ProgressIndicator size={loading?.size ?? 'default'} />\n }\n\n if (hasWarning) return <Icon icon={ExclamationIcon} />\n\n let iconFileType = getFileTypeFromExtension(file)\n\n if (!iconFileType) {\n const mimeParts = file.type.split('/')\n iconFileType =\n fileExtensionImages[mimeParts[0]] ||\n fileExtensionImages[mimeParts[1]]\n }\n\n if (\n !Object.prototype.hasOwnProperty.call(\n fileExtensionImages,\n iconFileType\n )\n ) {\n iconFileType = 'file'\n }\n\n return <Icon icon={fileExtensionImages[iconFileType]} />\n}\n"],"mappings":"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","ignoreList":[]}
@@ -55,6 +55,11 @@ export type UploadProps = {
55
55
  * Default: false
56
56
  */
57
57
  download?: boolean;
58
+ /**
59
+ * Allows uploading of duplicate files.
60
+ * Default: false
61
+ */
62
+ allowDuplicates?: boolean;
58
63
  /**
59
64
  * Custom text properties
60
65
  */
@@ -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'\nimport type { SharedStateId } from '../../shared/helpers/useSharedState'\n\nexport type UploadAcceptedFileTypes = string[]\n\nexport type UploadAcceptedFileTypesWithFileMaxSize =\n UploadAcceptedFileTypeObject[]\n\nexport type UploadAcceptedFileTypeObject = {\n fileType: string\n fileMaxSize?: number | false\n}\n\nexport type UploadProps = {\n /**\n * unique id used with the useUpload hook to manage the files\n */\n id?: SharedStateId\n\n /**\n * list of accepted file types.\n */\n acceptedFileTypes:\n | UploadAcceptedFileTypes\n | UploadAcceptedFileTypesWithFileMaxSize\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 * Defines the max file size of each file in MB. Use either `0` or `false` to disable.\n * Default: 5 MB\n */\n fileMaxSize?: number | false\n\n /**\n * will be called on `files` changes made by the user. Access the files with `{ files }`.\n */\n onChange?: ({ files }: { files: Array<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?: ({\n fileItem,\n }: {\n fileItem: UploadFile\n }) => void | Promise<void>\n\n /**\n * Will be called once a file gets clicked on by the user. Access the clicked file with `{ fileItem }`.\n */\n onFileClick?: ({\n fileItem,\n }: {\n fileItem: UploadFile\n }) => void | Promise<void>\n\n /**\n * Causes the browser to treat all listed files as downloadable instead of opening them in a new browser tab or window.\n * Default: false\n */\n download?: boolean\n\n /**\n * Custom text properties\n */\n title?: React.ReactNode\n text?: React.ReactNode\n fileTypeTableCaption?: 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: Array<UploadFileNative>) => void\n} & Partial<UploadAllProps>\n\nexport type UploadFile = {\n file: File\n id: string\n exists: boolean\n isLoading?: boolean\n errorMessage?: React.ReactNode\n}\n\nexport type UploadFileNative = Omit<UploadFile, 'id' | 'exists'> &\n Partial<Pick<UploadFile, 'id' | 'exists'>>\n"],"mappings":"","ignoreList":[]}
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'\nimport type { SharedStateId } from '../../shared/helpers/useSharedState'\n\nexport type UploadAcceptedFileTypes = string[]\n\nexport type UploadAcceptedFileTypesWithFileMaxSize =\n UploadAcceptedFileTypeObject[]\n\nexport type UploadAcceptedFileTypeObject = {\n fileType: string\n fileMaxSize?: number | false\n}\n\nexport type UploadProps = {\n /**\n * unique id used with the useUpload hook to manage the files\n */\n id?: SharedStateId\n\n /**\n * list of accepted file types.\n */\n acceptedFileTypes:\n | UploadAcceptedFileTypes\n | UploadAcceptedFileTypesWithFileMaxSize\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 * Defines the max file size of each file in MB. Use either `0` or `false` to disable.\n * Default: 5 MB\n */\n fileMaxSize?: number | false\n\n /**\n * will be called on `files` changes made by the user. Access the files with `{ files }`.\n */\n onChange?: ({ files }: { files: Array<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?: ({\n fileItem,\n }: {\n fileItem: UploadFile\n }) => void | Promise<void>\n\n /**\n * Will be called once a file gets clicked on by the user. Access the clicked file with `{ fileItem }`.\n */\n onFileClick?: ({\n fileItem,\n }: {\n fileItem: UploadFile\n }) => void | Promise<void>\n\n /**\n * Causes the browser to treat all listed files as downloadable instead of opening them in a new browser tab or window.\n * Default: false\n */\n download?: boolean\n\n /**\n * Allows uploading of duplicate files.\n * Default: false\n */\n allowDuplicates?: boolean\n\n /**\n * Custom text properties\n */\n title?: React.ReactNode\n text?: React.ReactNode\n fileTypeTableCaption?: 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: Array<UploadFileNative>) => void\n} & Partial<UploadAllProps>\n\nexport type UploadFile = {\n file: File\n id: string\n exists: boolean\n isLoading?: boolean\n errorMessage?: React.ReactNode\n}\n\nexport type UploadFileNative = Omit<UploadFile, 'id' | 'exists'> &\n Partial<Pick<UploadFile, 'id' | 'exists'>>\n"],"mappings":"","ignoreList":[]}
@@ -10,4 +10,5 @@ export type useUploadReturn = {
10
10
  * Use together with Upload with the same id to manage the files from outside the component.
11
11
  */
12
12
  declare function useUpload(id: UploadProps['id']): useUploadReturn;
13
+ export declare const isFileEqual: (fileA: File, fileB: File) => boolean;
13
14
  export default useUpload;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.isFileEqual = exports.default = void 0;
7
7
  var _react = require("react");
8
8
  var _useSharedState = require("../../shared/helpers/useSharedState");
9
9
  function useUpload(id) {
@@ -29,7 +29,7 @@ function useUpload(id) {
29
29
  let {
30
30
  file: f
31
31
  } = _ref;
32
- return f.name === file.name && f.size === file.size && f.lastModified === file.lastModified;
32
+ return isFileEqual(file, f);
33
33
  });
34
34
  }, [files]);
35
35
  return {
@@ -40,5 +40,12 @@ function useUpload(id) {
40
40
  getExistingFile
41
41
  };
42
42
  }
43
+ const isFileEqual = (fileA, fileB) => {
44
+ const compareExistingProperty = function (a, b, property) {
45
+ return a && property in a && b && property in b && (a[property] === 0 || b[property] === 0 || a[property] === b[property]);
46
+ };
47
+ return fileA.name === fileB.name && compareExistingProperty(fileA, fileB, 'size') && compareExistingProperty(fileA, fileB, 'lastModified');
48
+ };
49
+ exports.isFileEqual = isFileEqual;
43
50
  var _default = exports.default = useUpload;
44
51
  //# sourceMappingURL=useUpload.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useUpload.js","names":["_react","require","_useSharedState","useUpload","id","data","extend","useSharedState","setFiles","useCallback","files","setInternalFiles","internalFiles","useMemo","getExistingFile","file","fileItems","arguments","length","undefined","find","_ref","f","name","size","lastModified","_default","exports","default"],"sources":["../../../../src/components/upload/useUpload.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { useSharedState } from '../../shared/helpers/useSharedState'\nimport type { UploadFile, UploadFileNative, UploadProps } from './types'\n\nexport type useUploadReturn = {\n files: Array<UploadFile>\n setFiles: (files: Array<UploadFile | UploadFileNative>) => void\n internalFiles: Array<UploadFile>\n setInternalFiles: (files: Array<UploadFile>) => void\n getExistingFile: (\n file: File,\n fileItems?: Array<UploadFile>\n ) => UploadFile\n}\n\n/**\n * Use together with Upload with the same id to manage the files from outside the component.\n */\nfunction useUpload(id: UploadProps['id']): useUploadReturn {\n const { data, extend } = useSharedState<{\n files?: Array<UploadFile>\n internalFiles?: Array<UploadFile>\n }>(id)\n\n const setFiles = useCallback(\n (files: Array<UploadFile>) => {\n extend({ files })\n },\n [extend]\n )\n\n const setInternalFiles = useCallback(\n (internalFiles: Array<UploadFile>) => {\n extend({ internalFiles })\n },\n [extend]\n )\n\n const files = useMemo(() => data?.files || [], [data?.files])\n const internalFiles = useMemo(\n () => data?.internalFiles || [],\n [data?.internalFiles]\n )\n\n const getExistingFile = useCallback(\n (file: File, fileItems: Array<UploadFile> = files) => {\n return fileItems.find(({ file: f }) => {\n return (\n f.name === file.name &&\n f.size === file.size &&\n f.lastModified === file.lastModified\n )\n })\n },\n [files]\n )\n\n return {\n files,\n setFiles,\n internalFiles,\n setInternalFiles,\n getExistingFile,\n }\n}\n\nexport default useUpload\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAiBA,SAASE,SAASA,CAACC,EAAqB,EAAmB;EACzD,MAAM;IAAEC,IAAI;IAAEC;EAAO,CAAC,GAAG,IAAAC,8BAAc,EAGpCH,EAAE,CAAC;EAEN,MAAMI,QAAQ,GAAG,IAAAC,kBAAW,EACzBC,KAAwB,IAAK;IAC5BJ,MAAM,CAAC;MAAEI;IAAM,CAAC,CAAC;EACnB,CAAC,EACD,CAACJ,MAAM,CACT,CAAC;EAED,MAAMK,gBAAgB,GAAG,IAAAF,kBAAW,EACjCG,aAAgC,IAAK;IACpCN,MAAM,CAAC;MAAEM;IAAc,CAAC,CAAC;EAC3B,CAAC,EACD,CAACN,MAAM,CACT,CAAC;EAED,MAAMI,KAAK,GAAG,IAAAG,cAAO,EAAC,MAAM,CAAAR,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEK,KAAK,KAAI,EAAE,EAAE,CAACL,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEK,KAAK,CAAC,CAAC;EAC7D,MAAME,aAAa,GAAG,IAAAC,cAAO,EAC3B,MAAM,CAAAR,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEO,aAAa,KAAI,EAAE,EAC/B,CAACP,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEO,aAAa,CACtB,CAAC;EAED,MAAME,eAAe,GAAG,IAAAL,kBAAW,EACjC,UAACM,IAAU,EAA2C;IAAA,IAAzCC,SAA4B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGP,KAAK;IAC/C,OAAOM,SAAS,CAACI,IAAI,CAACC,IAAA,IAAiB;MAAA,IAAhB;QAAEN,IAAI,EAAEO;MAAE,CAAC,GAAAD,IAAA;MAChC,OACEC,CAAC,CAACC,IAAI,KAAKR,IAAI,CAACQ,IAAI,IACpBD,CAAC,CAACE,IAAI,KAAKT,IAAI,CAACS,IAAI,IACpBF,CAAC,CAACG,YAAY,KAAKV,IAAI,CAACU,YAAY;IAExC,CAAC,CAAC;EACJ,CAAC,EACD,CAACf,KAAK,CACR,CAAC;EAED,OAAO;IACLA,KAAK;IACLF,QAAQ;IACRI,aAAa;IACbD,gBAAgB;IAChBG;EACF,CAAC;AACH;AAAC,IAAAY,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEczB,SAAS","ignoreList":[]}
1
+ {"version":3,"file":"useUpload.js","names":["_react","require","_useSharedState","useUpload","id","data","extend","useSharedState","setFiles","useCallback","files","setInternalFiles","internalFiles","useMemo","getExistingFile","file","fileItems","arguments","length","undefined","find","_ref","f","isFileEqual","fileA","fileB","compareExistingProperty","a","b","property","name","exports","_default","default"],"sources":["../../../../src/components/upload/useUpload.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { useSharedState } from '../../shared/helpers/useSharedState'\nimport type { UploadFile, UploadFileNative, UploadProps } from './types'\n\nexport type useUploadReturn = {\n files: Array<UploadFile>\n setFiles: (files: Array<UploadFile | UploadFileNative>) => void\n internalFiles: Array<UploadFile>\n setInternalFiles: (files: Array<UploadFile>) => void\n getExistingFile: (\n file: File,\n fileItems?: Array<UploadFile>\n ) => UploadFile\n}\n\n/**\n * Use together with Upload with the same id to manage the files from outside the component.\n */\nfunction useUpload(id: UploadProps['id']): useUploadReturn {\n const { data, extend } = useSharedState<{\n files?: Array<UploadFile>\n internalFiles?: Array<UploadFile>\n }>(id)\n\n const setFiles = useCallback(\n (files: Array<UploadFile>) => {\n extend({ files })\n },\n [extend]\n )\n\n const setInternalFiles = useCallback(\n (internalFiles: Array<UploadFile>) => {\n extend({ internalFiles })\n },\n [extend]\n )\n\n const files = useMemo(() => data?.files || [], [data?.files])\n const internalFiles = useMemo(\n () => data?.internalFiles || [],\n [data?.internalFiles]\n )\n\n const getExistingFile = useCallback(\n (file: File, fileItems: Array<UploadFile> = files) => {\n return fileItems.find(({ file: f }) => {\n return isFileEqual(file, f)\n })\n },\n [files]\n )\n\n return {\n files,\n setFiles,\n internalFiles,\n setInternalFiles,\n getExistingFile,\n }\n}\n\nexport const isFileEqual = (fileA: File, fileB: File): boolean => {\n const compareExistingProperty = function (\n a: File,\n b: File,\n property: string\n ) {\n return (\n a &&\n property in a &&\n b &&\n property in b &&\n (a[property] === 0 || // If value is 0, which is default when not provided, we can't say whether the file is equal or not, so we assume they are.\n b[property] === 0 || // If value is 0, which is default when not provided, we can't say whether the file is equal or not, so we assume they are.\n a[property] === b[property])\n )\n }\n return (\n fileA.name === fileB.name &&\n compareExistingProperty(fileA, fileB, 'size') &&\n compareExistingProperty(fileA, fileB, 'lastModified')\n )\n}\n\nexport default useUpload\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAiBA,SAASE,SAASA,CAACC,EAAqB,EAAmB;EACzD,MAAM;IAAEC,IAAI;IAAEC;EAAO,CAAC,GAAG,IAAAC,8BAAc,EAGpCH,EAAE,CAAC;EAEN,MAAMI,QAAQ,GAAG,IAAAC,kBAAW,EACzBC,KAAwB,IAAK;IAC5BJ,MAAM,CAAC;MAAEI;IAAM,CAAC,CAAC;EACnB,CAAC,EACD,CAACJ,MAAM,CACT,CAAC;EAED,MAAMK,gBAAgB,GAAG,IAAAF,kBAAW,EACjCG,aAAgC,IAAK;IACpCN,MAAM,CAAC;MAAEM;IAAc,CAAC,CAAC;EAC3B,CAAC,EACD,CAACN,MAAM,CACT,CAAC;EAED,MAAMI,KAAK,GAAG,IAAAG,cAAO,EAAC,MAAM,CAAAR,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEK,KAAK,KAAI,EAAE,EAAE,CAACL,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEK,KAAK,CAAC,CAAC;EAC7D,MAAME,aAAa,GAAG,IAAAC,cAAO,EAC3B,MAAM,CAAAR,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEO,aAAa,KAAI,EAAE,EAC/B,CAACP,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEO,aAAa,CACtB,CAAC;EAED,MAAME,eAAe,GAAG,IAAAL,kBAAW,EACjC,UAACM,IAAU,EAA2C;IAAA,IAAzCC,SAA4B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGP,KAAK;IAC/C,OAAOM,SAAS,CAACI,IAAI,CAACC,IAAA,IAAiB;MAAA,IAAhB;QAAEN,IAAI,EAAEO;MAAE,CAAC,GAAAD,IAAA;MAChC,OAAOE,WAAW,CAACR,IAAI,EAAEO,CAAC,CAAC;IAC7B,CAAC,CAAC;EACJ,CAAC,EACD,CAACZ,KAAK,CACR,CAAC;EAED,OAAO;IACLA,KAAK;IACLF,QAAQ;IACRI,aAAa;IACbD,gBAAgB;IAChBG;EACF,CAAC;AACH;AAEO,MAAMS,WAAW,GAAGA,CAACC,KAAW,EAAEC,KAAW,KAAc;EAChE,MAAMC,uBAAuB,GAAG,SAAAA,CAC9BC,CAAO,EACPC,CAAO,EACPC,QAAgB,EAChB;IACA,OACEF,CAAC,IACDE,QAAQ,IAAIF,CAAC,IACbC,CAAC,IACDC,QAAQ,IAAID,CAAC,KACZD,CAAC,CAACE,QAAQ,CAAC,KAAK,CAAC,IAChBD,CAAC,CAACC,QAAQ,CAAC,KAAK,CAAC,IACjBF,CAAC,CAACE,QAAQ,CAAC,KAAKD,CAAC,CAACC,QAAQ,CAAC,CAAC;EAElC,CAAC;EACD,OACEL,KAAK,CAACM,IAAI,KAAKL,KAAK,CAACK,IAAI,IACzBJ,uBAAuB,CAACF,KAAK,EAAEC,KAAK,EAAE,MAAM,CAAC,IAC7CC,uBAAuB,CAACF,KAAK,EAAEC,KAAK,EAAE,cAAc,CAAC;AAEzD,CAAC;AAAAM,OAAA,CAAAR,WAAA,GAAAA,WAAA;AAAA,IAAAS,QAAA,GAAAD,OAAA,CAAAE,OAAA,GAEc9B,SAAS","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import { PropertiesTableProps } from '../../shared/types';
2
+ export declare const VisuallyHiddenProperties: PropertiesTableProps;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.VisuallyHiddenProperties = void 0;
7
+ const VisuallyHiddenProperties = exports.VisuallyHiddenProperties = {
8
+ focusable: {
9
+ doc: 'Set to `true` to hide an element by default, but to display it when it’s focused (e.g. by a keyboard-only user) root. Defaults to `false`.',
10
+ type: ['boolean'],
11
+ status: 'optional'
12
+ },
13
+ element: {
14
+ doc: 'Custom root HTML element for the component. Defaults to `<span>`.',
15
+ type: ['string', 'React.Element'],
16
+ status: 'optional'
17
+ }
18
+ };
19
+ //# sourceMappingURL=VisuallyHiddenDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VisuallyHiddenDocs.js","names":["VisuallyHiddenProperties","exports","focusable","doc","type","status","element"],"sources":["../../../../src/components/visually-hidden/VisuallyHiddenDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const VisuallyHiddenProperties: PropertiesTableProps = {\n focusable: {\n doc: 'Set to `true` to hide an element by default, but to display it when it’s focused (e.g. by a keyboard-only user) root. Defaults to `false`.',\n type: ['boolean'],\n status: 'optional',\n },\n element: {\n doc: 'Custom root HTML element for the component. Defaults to `<span>`.',\n type: ['string', 'React.Element'],\n status: 'optional',\n },\n}\n"],"mappings":";;;;;;AAEO,MAAMA,wBAA8C,GAAAC,OAAA,CAAAD,wBAAA,GAAG;EAC5DE,SAAS,EAAE;IACTC,GAAG,EAAE,4IAA4I;IACjJC,IAAI,EAAE,CAAC,SAAS,CAAC;IACjBC,MAAM,EAAE;EACV,CAAC;EACDC,OAAO,EAAE;IACPH,GAAG,EAAE,mEAAmE;IACxEC,IAAI,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC;IACjCC,MAAM,EAAE;EACV;AACF,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import { PropertiesTableProps } from '../../../../shared/types';
2
+ export declare const AtProperties: PropertiesTableProps;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.AtProperties = void 0;
7
+ const AtProperties = exports.AtProperties = {
8
+ children: {
9
+ doc: 'Features with given path as root for the DataContext.',
10
+ type: 'React.ReactNode',
11
+ status: 'optional'
12
+ },
13
+ path: {
14
+ doc: 'JSON Pointer path to where in the outer DataContext source to point at.',
15
+ type: 'string',
16
+ status: 'optional'
17
+ },
18
+ iterate: {
19
+ doc: 'True to iterate elements at given path based on the source data, including the index in the outer path, instead of just rendering children once.',
20
+ type: 'boolean',
21
+ status: 'optional'
22
+ }
23
+ };
24
+ //# sourceMappingURL=AtDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AtDocs.js","names":["AtProperties","exports","children","doc","type","status","path","iterate"],"sources":["../../../../../../src/extensions/forms/DataContext/At/AtDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const AtProperties: PropertiesTableProps = {\n children: {\n doc: 'Features with given path as root for the DataContext.',\n type: 'React.ReactNode',\n status: 'optional',\n },\n path: {\n doc: 'JSON Pointer path to where in the outer DataContext source to point at.',\n type: 'string',\n status: 'optional',\n },\n iterate: {\n doc: 'True to iterate elements at given path based on the source data, including the index in the outer path, instead of just rendering children once.',\n type: 'boolean',\n status: 'optional',\n },\n}\n"],"mappings":";;;;;;AAEO,MAAMA,YAAkC,GAAAC,OAAA,CAAAD,YAAA,GAAG;EAChDE,QAAQ,EAAE;IACRC,GAAG,EAAE,uDAAuD;IAC5DC,IAAI,EAAE,iBAAiB;IACvBC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,yEAAyE;IAC9EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,OAAO,EAAE;IACPJ,GAAG,EAAE,kJAAkJ;IACvJC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV;AACF,CAAC","ignoreList":[]}
@@ -13,9 +13,11 @@ export type MountState = {
13
13
  };
14
14
  export type EventListenerCall = {
15
15
  path?: Path;
16
- type?: 'onSubmit' | 'onSubmitRequest' | 'onPathChange' | 'onMount';
16
+ type?: 'onSubmit' | 'onSubmitCall' | 'onSubmitRequest' | 'onPathChange' | 'onMount';
17
17
  callback: (params?: {
18
18
  value: unknown;
19
+ } | {
20
+ preventSubmit: () => void;
19
21
  }) => void | Promise<void | Error>;
20
22
  };
21
23
  export type VisibleDataHandler<Data> = (data?: Data, options?: VisibleDataOptions) => Partial<Data>;
@@ -109,13 +111,12 @@ export interface ContextState {
109
111
  }) => Promise<EventStateObject | undefined>;
110
112
  getSubmitData?: () => unknown;
111
113
  getSubmitParams?: () => OnSubmitParams;
112
- setFieldEventListener?: (path: EventListenerCall['path'], type: EventListenerCall['type'], callback: EventListenerCall['callback']) => void;
114
+ setFieldEventListener?: (path: EventListenerCall['path'], type: EventListenerCall['type'], callback: EventListenerCall['callback'], params?: {
115
+ remove?: boolean;
116
+ }) => void;
113
117
  revealError?: (path: Path, hasError: boolean) => void;
114
118
  setFieldInternals?: (path: Path, props: unknown, id?: string) => void;
115
119
  setValueInternals?: (path: Path, props: unknown) => void;
116
- setHandleSubmit?: (callback: HandleSubmitCallback, params?: {
117
- remove?: boolean;
118
- }) => void;
119
120
  setFieldConnection?: (path: Path, connections: FieldConnections) => void;
120
121
  isEmptyDataRef?: React.MutableRefObject<boolean>;
121
122
  addSetShowAllErrorsRef?: React.MutableRefObject<Array<(showAllErrors: boolean) => void>>;