filepond 4.32.9 → 5.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (495) hide show
  1. package/{LICENSE → LICENSE.md} +1 -3
  2. package/README.md +38 -166
  3. package/dist/esm/assets/index.js +37 -0
  4. package/dist/esm/common/console.js +14 -0
  5. package/dist/esm/common/entry.js +39 -0
  6. package/dist/esm/common/perceivedPerformanceProxy.js +94 -0
  7. package/dist/esm/common/readEntriesFromDataTransfer.js +143 -0
  8. package/dist/esm/common/ssr.js +6 -0
  9. package/dist/esm/common/status.js +11 -0
  10. package/dist/esm/core/entryTree.js +416 -0
  11. package/dist/esm/core/extensionManager.js +244 -0
  12. package/dist/esm/core/index.js +8 -0
  13. package/dist/esm/core/taskScheduler.js +253 -0
  14. package/dist/esm/dev/index.js +124 -0
  15. package/dist/esm/elements/FilePondBase/index.css.js +37 -0
  16. package/dist/esm/elements/FilePondBase/index.js +622 -0
  17. package/dist/esm/elements/FilePondDefault/index.css.js +4 -0
  18. package/dist/esm/elements/FilePondDefault/index.js +270 -0
  19. package/dist/esm/elements/FilePondDropArea/index.css.js +4 -0
  20. package/dist/esm/elements/FilePondDropArea/index.js +33 -0
  21. package/dist/esm/elements/FilePondDropArea/index.svelte.js +71 -0
  22. package/dist/esm/elements/FilePondDropIndicator/index.css.js +4 -0
  23. package/dist/esm/elements/FilePondDropIndicator/index.js +18 -0
  24. package/dist/esm/elements/FilePondDropIndicator/index.svelte.js +141 -0
  25. package/dist/esm/elements/FilePondEntryList/components/Entry/index.css.js +4 -0
  26. package/dist/esm/elements/FilePondEntryList/components/Entry/index.js +6 -0
  27. package/dist/esm/elements/FilePondEntryList/components/Entry/index.svelte.js +74 -0
  28. package/dist/esm/elements/FilePondEntryList/components/EntryActivityIndicator/index.css.js +4 -0
  29. package/dist/esm/elements/FilePondEntryList/components/EntryActivityIndicator/index.js +14 -0
  30. package/dist/esm/elements/FilePondEntryList/components/EntryActivityIndicator/index.svelte.js +256 -0
  31. package/dist/esm/elements/FilePondEntryList/components/EntryList/index.css.js +4 -0
  32. package/dist/esm/elements/FilePondEntryList/components/EntryList/index.js +13 -0
  33. package/dist/esm/elements/FilePondEntryList/components/EntryList/index.svelte.js +318 -0
  34. package/dist/esm/elements/FilePondEntryList/components/EntryStatus/index.css.js +4 -0
  35. package/dist/esm/elements/FilePondEntryList/components/EntryStatus/index.js +14 -0
  36. package/dist/esm/elements/FilePondEntryList/components/EntryStatus/index.svelte.js +127 -0
  37. package/dist/esm/elements/FilePondEntryList/components/MediaImage/components/BitmapRenderer.svelte.js +136 -0
  38. package/dist/esm/elements/FilePondEntryList/components/MediaImage/components/BitmapRendererCache.js +11 -0
  39. package/dist/esm/elements/FilePondEntryList/components/MediaImage/index.css.js +4 -0
  40. package/dist/esm/elements/FilePondEntryList/components/MediaImage/index.js +8 -0
  41. package/dist/esm/elements/FilePondEntryList/components/MediaImage/index.svelte.js +198 -0
  42. package/dist/esm/elements/FilePondEntryList/components/MediaPane/index.css.js +4 -0
  43. package/dist/esm/elements/FilePondEntryList/components/MediaPane/index.js +4 -0
  44. package/dist/esm/elements/FilePondEntryList/components/MediaPane/index.svelte.js +139 -0
  45. package/dist/esm/elements/FilePondEntryList/components/MediaTimeIndicator/index.css.js +4 -0
  46. package/dist/esm/elements/FilePondEntryList/components/MediaTimeIndicator/index.js +4 -0
  47. package/dist/esm/elements/FilePondEntryList/components/MediaTimeIndicator/index.svelte.js +26 -0
  48. package/dist/esm/elements/FilePondEntryList/components/MediaVideo/index.css.js +4 -0
  49. package/dist/esm/elements/FilePondEntryList/components/MediaVideo/index.js +6 -0
  50. package/dist/esm/elements/FilePondEntryList/components/MediaVideo/index.svelte.js +302 -0
  51. package/dist/esm/elements/FilePondEntryList/components/useEntryContext.svelte.js +22 -0
  52. package/dist/esm/elements/FilePondEntryList/contexts/appContext.js +12 -0
  53. package/dist/esm/elements/FilePondEntryList/contexts/dragContext.js +12 -0
  54. package/dist/esm/elements/FilePondEntryList/contexts/dropContext.js +12 -0
  55. package/dist/esm/elements/FilePondEntryList/contexts/entryContext.js +12 -0
  56. package/dist/esm/elements/FilePondEntryList/contexts/springElementTreeContext.js +16 -0
  57. package/dist/esm/elements/FilePondEntryList/index.css.js +4 -0
  58. package/dist/esm/elements/FilePondEntryList/index.js +142 -0
  59. package/dist/esm/elements/FilePondEntryList/index.svelte.js +604 -0
  60. package/dist/esm/elements/FilePondSvelteComponent/index.svelte.js +101 -0
  61. package/dist/esm/elements/attachments/dragarea.js +185 -0
  62. package/dist/esm/elements/attachments/droparea.js +124 -0
  63. package/dist/esm/elements/attachments/measurable.js +151 -0
  64. package/dist/esm/elements/attachments/resizable.js +51 -0
  65. package/dist/esm/elements/attachments/transitions.js +31 -0
  66. package/dist/esm/elements/common/animationGuard.js +37 -0
  67. package/dist/esm/elements/common/animationPreference.svelte.js +73 -0
  68. package/dist/esm/elements/common/dragDrop.js +73 -0
  69. package/dist/esm/elements/common/event.js +11 -0
  70. package/dist/esm/elements/common/extendStyles.js +38 -0
  71. package/dist/esm/elements/common/getClosestElement.js +38 -0
  72. package/dist/esm/elements/common/html.js +10 -0
  73. package/dist/esm/elements/common/nodeTree.js +154 -0
  74. package/dist/esm/elements/common/store.svelte.js +36 -0
  75. package/dist/esm/elements/common/string.js +115 -0
  76. package/dist/esm/elements/common/transition.js +12 -0
  77. package/dist/esm/elements/components/BooleanInput/index.css.js +4 -0
  78. package/dist/esm/elements/components/BooleanInput/index.js +4 -0
  79. package/dist/esm/elements/components/BooleanInput/index.svelte.js +4 -0
  80. package/dist/esm/elements/components/Button/index.css.js +4 -0
  81. package/dist/esm/elements/components/Button/index.js +7 -0
  82. package/dist/esm/elements/components/Button/index.svelte.js +79 -0
  83. package/dist/esm/elements/components/ElementPane/index.css.js +4 -0
  84. package/dist/esm/elements/components/ElementPane/index.js +5 -0
  85. package/dist/esm/elements/components/ElementPane/index.svelte.js +56 -0
  86. package/dist/esm/elements/components/ElementSkeleton/index.css.js +4 -0
  87. package/dist/esm/elements/components/ElementSkeleton/index.js +12 -0
  88. package/dist/esm/elements/components/ElementSkeleton/index.svelte.js +112 -0
  89. package/dist/esm/elements/components/FilenameInput/index.css.js +4 -0
  90. package/dist/esm/elements/components/FilenameInput/index.js +7 -0
  91. package/dist/esm/elements/components/NodeList/index.svelte.js +398 -0
  92. package/dist/esm/elements/components/ProgressIndicator/index.css.js +4 -0
  93. package/dist/esm/elements/components/ProgressIndicator/index.js +5 -0
  94. package/dist/esm/elements/components/ProgressIndicator/index.svelte.js +267 -0
  95. package/dist/esm/elements/components/RangeInput/index.css.js +4 -0
  96. package/dist/esm/elements/components/RangeInput/index.js +7 -0
  97. package/dist/esm/elements/components/RangeInput/index.svelte.js +187 -0
  98. package/dist/esm/elements/components/SpringElement.svelte.js +427 -0
  99. package/dist/esm/elements/components/TextInput/index.css.js +4 -0
  100. package/dist/esm/elements/components/TextInput/index.js +4 -0
  101. package/dist/esm/elements/components/TextInput/index.svelte.js +4 -0
  102. package/dist/esm/elements/index.js +14 -0
  103. package/dist/esm/extensions/blob-loader.js +57 -0
  104. package/dist/esm/extensions/canvas-loader.js +66 -0
  105. package/dist/esm/extensions/chunked-upload-store.js +249 -0
  106. package/dist/esm/extensions/clipboard-source.js +43 -0
  107. package/dist/esm/extensions/common/createExtension.js +89 -0
  108. package/dist/esm/extensions/common/createStoreExtension.js +484 -0
  109. package/dist/esm/extensions/common/createTransformExtension.js +284 -0
  110. package/dist/esm/extensions/common/createValidatorExtension.js +167 -0
  111. package/dist/esm/extensions/console-view.js +190 -0
  112. package/dist/esm/extensions/data-transfer-loader.js +126 -0
  113. package/dist/esm/extensions/data-url-store.js +29 -0
  114. package/dist/esm/extensions/drag-drop-source.js +53 -0
  115. package/dist/esm/extensions/dropbox-source.js +89 -0
  116. package/dist/esm/extensions/entry-list-view.js +79 -0
  117. package/dist/esm/extensions/file-extension-validator.js +50 -0
  118. package/dist/esm/extensions/file-input-source.js +56 -0
  119. package/dist/esm/extensions/file-input-store.js +58 -0
  120. package/dist/esm/extensions/file-mime-type-validator.js +63 -0
  121. package/dist/esm/extensions/file-name-transform.js +47 -0
  122. package/dist/esm/extensions/file-name-validator.js +48 -0
  123. package/dist/esm/extensions/file-size-validator.js +52 -0
  124. package/dist/esm/extensions/form-post-store.js +105 -0
  125. package/dist/esm/extensions/index.js +62 -0
  126. package/dist/esm/extensions/list-count-validator.js +49 -0
  127. package/dist/esm/extensions/list-size-validator.js +70 -0
  128. package/dist/esm/extensions/media-resolution-validator.js +144 -0
  129. package/dist/esm/extensions/object-url-store.js +27 -0
  130. package/dist/esm/extensions/simulated-loader.js +189 -0
  131. package/dist/esm/extensions/simulated-store.js +90 -0
  132. package/dist/esm/extensions/text-input-store.js +47 -0
  133. package/dist/esm/extensions/url-loader.js +189 -0
  134. package/dist/esm/extensions/value-callback-store.js +66 -0
  135. package/dist/esm/index.js +19 -0
  136. package/dist/esm/locales/de-de.js +157 -0
  137. package/dist/esm/locales/en-gb.js +173 -0
  138. package/dist/esm/locales/es-es.js +157 -0
  139. package/dist/esm/locales/fr-fr.js +157 -0
  140. package/dist/esm/locales/hi-in.js +157 -0
  141. package/dist/esm/locales/index.js +27 -0
  142. package/dist/esm/locales/js-jp.js +157 -0
  143. package/dist/esm/locales/ko-kr.js +157 -0
  144. package/dist/esm/locales/nb-no.js +157 -0
  145. package/dist/esm/locales/nl-nl.js +173 -0
  146. package/dist/esm/locales/pt-pt.js +157 -0
  147. package/dist/esm/locales/sv-se.js +157 -0
  148. package/dist/esm/locales/zh-cn.js +157 -0
  149. package/dist/esm/templates/entry.js +406 -0
  150. package/dist/esm/templates/helpers.js +172 -0
  151. package/dist/esm/templates/media.js +308 -0
  152. package/dist/esm/utils/array.js +83 -0
  153. package/dist/esm/utils/bounds.js +44 -0
  154. package/dist/esm/utils/cache.js +18 -0
  155. package/dist/esm/utils/canvasToBlob.js +17 -0
  156. package/dist/esm/utils/date.js +21 -0
  157. package/dist/esm/utils/debounce.js +25 -0
  158. package/dist/esm/utils/dom.js +254 -0
  159. package/dist/esm/utils/file.js +130 -0
  160. package/dist/esm/utils/functionToBlob.js +6 -0
  161. package/dist/esm/utils/math.js +26 -0
  162. package/dist/esm/utils/media.js +228 -0
  163. package/dist/esm/utils/number.js +27 -0
  164. package/dist/esm/utils/object.js +76 -0
  165. package/dist/esm/utils/objectURL.js +10 -0
  166. package/dist/esm/utils/placeholder.js +7 -0
  167. package/dist/esm/utils/poly.js +8 -0
  168. package/dist/esm/utils/pubsub.js +26 -0
  169. package/dist/esm/utils/rect.js +76 -0
  170. package/dist/esm/utils/size.js +32 -0
  171. package/dist/esm/utils/sleep.js +6 -0
  172. package/dist/esm/utils/string.js +39 -0
  173. package/dist/esm/utils/support.js +10 -0
  174. package/dist/esm/utils/test.js +154 -0
  175. package/dist/esm/utils/thread.js +121 -0
  176. package/dist/esm/utils/tree.js +94 -0
  177. package/dist/esm/utils/url.js +19 -0
  178. package/dist/esm/utils/vector.js +60 -0
  179. package/dist/esm/utils/window.js +9 -0
  180. package/dist/esm/utils/xhr.js +177 -0
  181. package/dist/esm/views/svelte/clsx/dist/clsx.js +17 -0
  182. package/dist/esm/views/svelte/esm-env/false.js +4 -0
  183. package/dist/esm/views/svelte/svelte/src/constants.js +34 -0
  184. package/dist/esm/views/svelte/svelte/src/easing/index.js +9 -0
  185. package/dist/esm/views/svelte/svelte/src/index-client.js +32 -0
  186. package/dist/esm/views/svelte/svelte/src/internal/client/constants.js +59 -0
  187. package/dist/esm/views/svelte/svelte/src/internal/client/context.js +79 -0
  188. package/dist/esm/views/svelte/svelte/src/internal/client/dom/blocks/boundary.js +317 -0
  189. package/dist/esm/views/svelte/svelte/src/internal/client/dom/blocks/branches.js +146 -0
  190. package/dist/esm/views/svelte/svelte/src/internal/client/dom/blocks/each.js +409 -0
  191. package/dist/esm/views/svelte/svelte/src/internal/client/dom/blocks/html.js +54 -0
  192. package/dist/esm/views/svelte/svelte/src/internal/client/dom/blocks/if.js +23 -0
  193. package/dist/esm/views/svelte/svelte/src/internal/client/dom/blocks/snippet.js +13 -0
  194. package/dist/esm/views/svelte/svelte/src/internal/client/dom/blocks/svelte-component.js +13 -0
  195. package/dist/esm/views/svelte/svelte/src/internal/client/dom/blocks/svelte-element.js +52 -0
  196. package/dist/esm/views/svelte/svelte/src/internal/client/dom/elements/attachments.js +24 -0
  197. package/dist/esm/views/svelte/svelte/src/internal/client/dom/elements/attributes.js +295 -0
  198. package/dist/esm/views/svelte/svelte/src/internal/client/dom/elements/bindings/select.js +58 -0
  199. package/dist/esm/views/svelte/svelte/src/internal/client/dom/elements/bindings/shared.js +31 -0
  200. package/dist/esm/views/svelte/svelte/src/internal/client/dom/elements/bindings/this.js +36 -0
  201. package/dist/esm/views/svelte/svelte/src/internal/client/dom/elements/bindings/window.js +7 -0
  202. package/dist/esm/views/svelte/svelte/src/internal/client/dom/elements/class.js +28 -0
  203. package/dist/esm/views/svelte/svelte/src/internal/client/dom/elements/events.js +140 -0
  204. package/dist/esm/views/svelte/svelte/src/internal/client/dom/elements/misc.js +15 -0
  205. package/dist/esm/views/svelte/svelte/src/internal/client/dom/elements/style.js +38 -0
  206. package/dist/esm/views/svelte/svelte/src/internal/client/dom/elements/transitions.js +217 -0
  207. package/dist/esm/views/svelte/svelte/src/internal/client/dom/hydration.js +4 -0
  208. package/dist/esm/views/svelte/svelte/src/internal/client/dom/operations.js +85 -0
  209. package/dist/esm/views/svelte/svelte/src/internal/client/dom/reconciler.js +8 -0
  210. package/dist/esm/views/svelte/svelte/src/internal/client/dom/task.js +19 -0
  211. package/dist/esm/views/svelte/svelte/src/internal/client/dom/template.js +131 -0
  212. package/dist/esm/views/svelte/svelte/src/internal/client/error-handling.js +35 -0
  213. package/dist/esm/views/svelte/svelte/src/internal/client/errors.js +62 -0
  214. package/dist/esm/views/svelte/svelte/src/internal/client/loop.js +30 -0
  215. package/dist/esm/views/svelte/svelte/src/internal/client/proxy.js +213 -0
  216. package/dist/esm/views/svelte/svelte/src/internal/client/reactivity/async.js +70 -0
  217. package/dist/esm/views/svelte/svelte/src/internal/client/reactivity/batch.js +478 -0
  218. package/dist/esm/views/svelte/svelte/src/internal/client/reactivity/deriveds.js +213 -0
  219. package/dist/esm/views/svelte/svelte/src/internal/client/reactivity/effects.js +348 -0
  220. package/dist/esm/views/svelte/svelte/src/internal/client/reactivity/equality.js +14 -0
  221. package/dist/esm/views/svelte/svelte/src/internal/client/reactivity/props.js +178 -0
  222. package/dist/esm/views/svelte/svelte/src/internal/client/reactivity/sources.js +147 -0
  223. package/dist/esm/views/svelte/svelte/src/internal/client/reactivity/store.js +13 -0
  224. package/dist/esm/views/svelte/svelte/src/internal/client/render.js +112 -0
  225. package/dist/esm/views/svelte/svelte/src/internal/client/runtime.js +426 -0
  226. package/dist/esm/views/svelte/svelte/src/internal/client/timing.js +15 -0
  227. package/dist/esm/views/svelte/svelte/src/internal/client/warnings.js +14 -0
  228. package/dist/esm/views/svelte/svelte/src/internal/disclose-version.js +4 -0
  229. package/dist/esm/views/svelte/svelte/src/internal/flags/index.js +4 -0
  230. package/dist/esm/views/svelte/svelte/src/internal/shared/attributes.js +129 -0
  231. package/dist/esm/views/svelte/svelte/src/internal/shared/errors.js +8 -0
  232. package/dist/esm/views/svelte/svelte/src/internal/shared/utils.js +45 -0
  233. package/dist/esm/views/svelte/svelte/src/motion/spring.js +189 -0
  234. package/dist/esm/views/svelte/svelte/src/motion/utils.js +6 -0
  235. package/dist/esm/views/svelte/svelte/src/reactivity/create-subscriber.js +33 -0
  236. package/dist/esm/views/svelte/svelte/src/reactivity/map.js +168 -0
  237. package/dist/esm/views/svelte/svelte/src/utils.js +60 -0
  238. package/dist/esm/views/svelte/svelte/src/version.js +4 -0
  239. package/dist/types/assets/index.d.ts +42 -0
  240. package/dist/types/common/console.d.ts +3 -0
  241. package/dist/types/common/entry.d.ts +24 -0
  242. package/dist/types/common/perceivedPerformanceProxy.d.ts +10 -0
  243. package/dist/types/common/readEntriesFromDataTransfer.d.ts +21 -0
  244. package/dist/types/common/ssr.d.ts +1 -0
  245. package/dist/types/common/status.d.ts +7 -0
  246. package/dist/types/core/entryTree.d.ts +40 -0
  247. package/dist/types/core/extensionManager.d.ts +60 -0
  248. package/dist/types/core/index.d.ts +3 -0
  249. package/dist/types/core/taskScheduler.d.ts +42 -0
  250. package/dist/types/custom-element.d.ts +9 -0
  251. package/dist/types/default-extensions.d.ts +16 -0
  252. package/dist/types/dev/index.d.ts +44 -0
  253. package/dist/types/elements/FilePondBase/index.d.ts +153 -0
  254. package/dist/types/elements/FilePondDefault/index.d.ts +38 -0
  255. package/dist/types/elements/FilePondDropArea/index.d.ts +5 -0
  256. package/dist/types/elements/FilePondDropIndicator/index.d.ts +6 -0
  257. package/dist/types/elements/FilePondEntryList/components/Entry/index.d.ts +1 -0
  258. package/dist/types/elements/FilePondEntryList/components/EntryActivityIndicator/index.d.ts +1 -0
  259. package/dist/types/elements/FilePondEntryList/components/EntryList/index.d.ts +1 -0
  260. package/dist/types/elements/FilePondEntryList/components/EntryStatus/index.d.ts +1 -0
  261. package/dist/types/elements/FilePondEntryList/components/MediaImage/components/BitmapRendererCache.d.ts +9 -0
  262. package/dist/types/elements/FilePondEntryList/components/MediaImage/index.d.ts +1 -0
  263. package/dist/types/elements/FilePondEntryList/components/MediaPane/index.d.ts +1 -0
  264. package/dist/types/elements/FilePondEntryList/components/MediaTimeIndicator/index.d.ts +1 -0
  265. package/dist/types/elements/FilePondEntryList/components/MediaVideo/index.d.ts +1 -0
  266. package/dist/types/elements/FilePondEntryList/components/index.d.ts +9 -0
  267. package/dist/types/elements/FilePondEntryList/contexts/appContext.d.ts +34 -0
  268. package/dist/types/elements/FilePondEntryList/contexts/dragContext.d.ts +6 -0
  269. package/dist/types/elements/FilePondEntryList/contexts/dropContext.d.ts +6 -0
  270. package/dist/types/elements/FilePondEntryList/contexts/entryContext.d.ts +7 -0
  271. package/dist/types/elements/FilePondEntryList/contexts/springElementTreeContext.d.ts +22 -0
  272. package/dist/types/elements/FilePondEntryList/index.d.ts +160 -0
  273. package/dist/types/elements/FilePondSvelteComponent/index.svelte.d.ts +20 -0
  274. package/dist/types/elements/attachments/dragarea.d.ts +24 -0
  275. package/dist/types/elements/attachments/droparea.d.ts +14 -0
  276. package/dist/types/elements/attachments/measurable.d.ts +9 -0
  277. package/dist/types/elements/attachments/resizable.d.ts +7 -0
  278. package/dist/types/elements/attachments/transitions.d.ts +12 -0
  279. package/dist/types/elements/common/animationGuard.d.ts +6 -0
  280. package/dist/types/elements/common/animationPreference.svelte.d.ts +4 -0
  281. package/dist/types/elements/common/dragDrop.d.ts +11 -0
  282. package/dist/types/elements/common/event.d.ts +1 -0
  283. package/dist/types/elements/common/extendStyles.d.ts +2 -0
  284. package/dist/types/elements/common/getClosestElement.d.ts +7 -0
  285. package/dist/types/elements/common/html.d.ts +4 -0
  286. package/dist/types/elements/common/nodeTree.d.ts +96 -0
  287. package/dist/types/elements/common/store.svelte.d.ts +3 -0
  288. package/dist/types/elements/common/string.d.ts +29 -0
  289. package/dist/types/elements/common/transition.d.ts +8 -0
  290. package/dist/types/elements/components/BooleanInput/index.d.ts +1 -0
  291. package/dist/types/elements/components/Button/index.d.ts +1 -0
  292. package/dist/types/elements/components/ElementPane/index.d.ts +1 -0
  293. package/dist/types/elements/components/ElementSkeleton/index.d.ts +2 -0
  294. package/dist/types/elements/components/FilenameInput/index.d.ts +1 -0
  295. package/dist/types/elements/components/ProgressIndicator/index.d.ts +1 -0
  296. package/dist/types/elements/components/RangeInput/index.d.ts +1 -0
  297. package/dist/types/elements/components/TextInput/index.d.ts +1 -0
  298. package/dist/types/elements/components/index.d.ts +10 -0
  299. package/dist/types/elements/index.d.ts +6 -0
  300. package/dist/types/elements/transitions/index.d.ts +10 -0
  301. package/dist/types/extensions/blob-loader.d.ts +22 -0
  302. package/dist/types/extensions/canvas-loader.d.ts +32 -0
  303. package/dist/types/extensions/chunked-upload-store.d.ts +24 -0
  304. package/dist/types/extensions/clipboard-source.d.ts +10 -0
  305. package/dist/types/extensions/common/createExtension.d.ts +60 -0
  306. package/dist/types/extensions/common/createStoreExtension.d.ts +39 -0
  307. package/dist/types/extensions/common/createTransformExtension.d.ts +43 -0
  308. package/dist/types/extensions/common/createValidatorExtension.d.ts +19 -0
  309. package/dist/types/extensions/console-view.d.ts +12 -0
  310. package/dist/types/extensions/data-transfer-loader.d.ts +20 -0
  311. package/dist/types/extensions/data-url-store.d.ts +9 -0
  312. package/dist/types/extensions/drag-drop-source.d.ts +10 -0
  313. package/dist/types/extensions/dropbox-source.d.ts +15 -0
  314. package/dist/types/extensions/entry-list-view.d.ts +9 -0
  315. package/dist/types/extensions/file-extension-validator.d.ts +12 -0
  316. package/dist/types/extensions/file-input-source.d.ts +12 -0
  317. package/dist/types/extensions/file-input-store.d.ts +11 -0
  318. package/dist/types/extensions/file-mime-type-validator.d.ts +12 -0
  319. package/dist/types/extensions/file-name-transform.d.ts +20 -0
  320. package/dist/types/extensions/file-name-validator.d.ts +10 -0
  321. package/dist/types/extensions/file-size-validator.d.ts +12 -0
  322. package/dist/types/extensions/form-post-store.d.ts +21 -0
  323. package/dist/types/extensions/index.d.ts +30 -0
  324. package/dist/types/extensions/list-count-validator.d.ts +12 -0
  325. package/dist/types/extensions/list-size-validator.d.ts +12 -0
  326. package/dist/types/extensions/media-resolution-validator.d.ts +25 -0
  327. package/dist/types/extensions/object-url-store.d.ts +9 -0
  328. package/dist/types/extensions/simulated-loader.d.ts +29 -0
  329. package/dist/types/extensions/simulated-store.d.ts +26 -0
  330. package/dist/types/extensions/text-input-store.d.ts +10 -0
  331. package/dist/types/extensions/url-loader.d.ts +27 -0
  332. package/dist/types/extensions/value-callback-store.d.ts +20 -0
  333. package/dist/types/index.d.ts +11 -0
  334. package/dist/types/locales/de-de.d.ts +309 -0
  335. package/dist/types/locales/en-gb.d.ts +309 -0
  336. package/dist/types/locales/es-es.d.ts +309 -0
  337. package/dist/types/locales/fr-fr.d.ts +309 -0
  338. package/dist/types/locales/hi-in.d.ts +309 -0
  339. package/dist/types/locales/index.d.ts +13 -0
  340. package/dist/types/locales/it-it.d.ts +309 -0
  341. package/dist/types/locales/js-jp.d.ts +309 -0
  342. package/dist/types/locales/ko-kr.d.ts +309 -0
  343. package/dist/types/locales/nb-no.d.ts +309 -0
  344. package/dist/types/locales/nl-nl.d.ts +309 -0
  345. package/dist/types/locales/pt-pt.d.ts +309 -0
  346. package/dist/types/locales/sv-se.d.ts +309 -0
  347. package/dist/types/locales/zh-cn.d.ts +309 -0
  348. package/dist/types/templates/entry.d.ts +250 -0
  349. package/dist/types/templates/helpers.d.ts +40 -0
  350. package/dist/types/templates/media.d.ts +216 -0
  351. package/dist/types/types/index.d.ts +229 -0
  352. package/dist/types/utils/array.d.ts +27 -0
  353. package/dist/types/utils/bounds.d.ts +21 -0
  354. package/dist/types/utils/cache.d.ts +1 -0
  355. package/dist/types/utils/canvasToBlob.d.ts +4 -0
  356. package/dist/types/utils/date.d.ts +2 -0
  357. package/dist/types/utils/debounce.d.ts +5 -0
  358. package/dist/types/utils/dom.d.ts +77 -0
  359. package/dist/types/utils/file.d.ts +44 -0
  360. package/dist/types/utils/functionToBlob.d.ts +2 -0
  361. package/dist/types/utils/math.d.ts +8 -0
  362. package/dist/types/utils/media.d.ts +17 -0
  363. package/dist/types/utils/number.d.ts +3 -0
  364. package/dist/types/utils/object.d.ts +30 -0
  365. package/dist/types/utils/objectURL.d.ts +2 -0
  366. package/dist/types/utils/placeholder.d.ts +2 -0
  367. package/dist/types/utils/poly.d.ts +2 -0
  368. package/dist/types/utils/pubsub.d.ts +6 -0
  369. package/dist/types/utils/ray.d.ts +3 -0
  370. package/dist/types/utils/rect.d.ts +30 -0
  371. package/dist/types/utils/size.d.ts +20 -0
  372. package/dist/types/utils/sleep.d.ts +1 -0
  373. package/dist/types/utils/string.d.ts +14 -0
  374. package/dist/types/utils/support.d.ts +9 -0
  375. package/dist/types/utils/test.d.ts +61 -0
  376. package/dist/types/utils/thread.d.ts +9 -0
  377. package/dist/types/utils/tree.d.ts +18 -0
  378. package/dist/types/utils/url.d.ts +4 -0
  379. package/dist/types/utils/vector.d.ts +37 -0
  380. package/dist/types/utils/window.d.ts +2 -0
  381. package/dist/types/utils/xhr.d.ts +35 -0
  382. package/dist/types/views/FilePondBase/index.d.ts +151 -0
  383. package/dist/types/views/FilePondDefault/index.d.ts +35 -0
  384. package/dist/types/views/FilePondDropArea/index.d.ts +5 -0
  385. package/dist/types/views/FilePondDropArea/index.svelte.d.ts +17 -0
  386. package/dist/types/views/FilePondDropIndicator/index.d.ts +4 -0
  387. package/dist/types/views/FilePondDropIndicator/index.svelte.d.ts +17 -0
  388. package/dist/types/views/FilePondEntryList/components/Entry/index.d.ts +1 -0
  389. package/dist/types/views/FilePondEntryList/components/EntryActivityIndicator/index.d.ts +1 -0
  390. package/dist/types/views/FilePondEntryList/components/EntryBody/index.d.ts +1 -0
  391. package/dist/types/views/FilePondEntryList/components/EntryHeader/index.d.ts +1 -0
  392. package/dist/types/views/FilePondEntryList/components/EntryList/index.d.ts +1 -0
  393. package/dist/types/views/FilePondEntryList/components/EntryStatus/index.d.ts +1 -0
  394. package/dist/types/views/FilePondEntryList/components/MediaControls/index.d.ts +1 -0
  395. package/dist/types/views/FilePondEntryList/components/MediaImage/components/BitmapRendererCache.d.ts +9 -0
  396. package/dist/types/views/FilePondEntryList/components/MediaImage/index.d.ts +1 -0
  397. package/dist/types/views/FilePondEntryList/components/MediaPane/index.d.ts +1 -0
  398. package/dist/types/views/FilePondEntryList/components/MediaTimeIndicator/index.d.ts +1 -0
  399. package/dist/types/views/FilePondEntryList/components/MediaVideo/index.d.ts +1 -0
  400. package/dist/types/views/FilePondEntryList/components/index.d.ts +9 -0
  401. package/dist/types/views/FilePondEntryList/contexts/appContext.d.ts +34 -0
  402. package/dist/types/views/FilePondEntryList/contexts/dragContext.d.ts +6 -0
  403. package/dist/types/views/FilePondEntryList/contexts/dropContext.d.ts +6 -0
  404. package/dist/types/views/FilePondEntryList/contexts/entryContext.d.ts +7 -0
  405. package/dist/types/views/FilePondEntryList/contexts/springElementTreeContext.d.ts +22 -0
  406. package/dist/types/views/FilePondEntryList/index.d.ts +160 -0
  407. package/dist/types/views/FilePondEntryList/index.svelte.d.ts +63 -0
  408. package/dist/types/views/FilePondEntryList/templates/createEntryListTemplate.d.ts +4 -0
  409. package/dist/types/views/FilePondEntryList/templates/createImageViewTemplate.d.ts +8 -0
  410. package/dist/types/views/FilePondEntryList/templates/createVideoViewTemplate.d.ts +7 -0
  411. package/dist/types/views/FilePondEntryList/templates/entry.d.ts +237 -0
  412. package/dist/types/views/FilePondEntryList/templates/helpers.d.ts +24 -0
  413. package/dist/types/views/FilePondEntryList/templates/index.d.ts +8 -0
  414. package/dist/types/views/FilePondSvelteComponent/index.svelte.d.ts +20 -0
  415. package/dist/types/views/attachments/dragarea.d.ts +24 -0
  416. package/dist/types/views/attachments/droparea.d.ts +14 -0
  417. package/dist/types/views/attachments/measurable.d.ts +9 -0
  418. package/dist/types/views/attachments/resizable.d.ts +7 -0
  419. package/dist/types/views/attachments/transitions.d.ts +12 -0
  420. package/dist/types/views/common/animationGuard.d.ts +6 -0
  421. package/dist/types/views/common/animationPreference.svelte.d.ts +4 -0
  422. package/dist/types/views/common/attributeSync.d.ts +5 -0
  423. package/dist/types/views/common/dragDrop.d.ts +11 -0
  424. package/dist/types/views/common/event.d.ts +1 -0
  425. package/dist/types/views/common/extendFilePondStyles.d.ts +2 -0
  426. package/dist/types/views/common/extendStyles.d.ts +2 -0
  427. package/dist/types/views/common/getClosestElement.d.ts +7 -0
  428. package/dist/types/views/common/html.d.ts +4 -0
  429. package/dist/types/views/common/nodeTree.d.ts +96 -0
  430. package/dist/types/views/common/store.svelte.d.ts +3 -0
  431. package/dist/types/views/common/string.d.ts +29 -0
  432. package/dist/types/views/common/transition.d.ts +8 -0
  433. package/dist/types/views/components/BooleanInput/index.d.ts +1 -0
  434. package/dist/types/views/components/Button/index.d.ts +1 -0
  435. package/dist/types/views/components/Checkable/index.d.ts +1 -0
  436. package/dist/types/views/components/ElementPane/index.d.ts +1 -0
  437. package/dist/types/views/components/ElementSkeleton/index.d.ts +2 -0
  438. package/dist/types/views/components/FilenameInput/index.d.ts +1 -0
  439. package/dist/types/views/components/ProgressIndicator/index.d.ts +1 -0
  440. package/dist/types/views/components/RangeInput/index.d.ts +1 -0
  441. package/dist/types/views/components/TextInput/index.d.ts +1 -0
  442. package/dist/types/views/components/index.d.ts +10 -0
  443. package/dist/types/views/transitions/index.d.ts +10 -0
  444. package/package.json +65 -62
  445. package/CHANGELOG.md +0 -987
  446. package/dist/filepond.css +0 -1049
  447. package/dist/filepond.esm.js +0 -9767
  448. package/dist/filepond.esm.min.js +0 -9
  449. package/dist/filepond.js +0 -12782
  450. package/dist/filepond.min.css +0 -8
  451. package/dist/filepond.min.js +0 -9
  452. package/locale/am-et.js +0 -39
  453. package/locale/ar-ar.js +0 -39
  454. package/locale/az-az.js +0 -39
  455. package/locale/ca-ca.js +0 -39
  456. package/locale/cs-cz.js +0 -39
  457. package/locale/da-dk.js +0 -40
  458. package/locale/de-de.js +0 -39
  459. package/locale/el-el.js +0 -39
  460. package/locale/en-en.js +0 -39
  461. package/locale/es-es.js +0 -39
  462. package/locale/et-ee.js +0 -39
  463. package/locale/fa_ir.js +0 -39
  464. package/locale/fi-fi.js +0 -39
  465. package/locale/fr-fr.js +0 -39
  466. package/locale/he-he.js +0 -39
  467. package/locale/hr-hr.js +0 -39
  468. package/locale/hu-hu.js +0 -39
  469. package/locale/id-id.js +0 -39
  470. package/locale/it-it.js +0 -39
  471. package/locale/ja-ja.js +0 -39
  472. package/locale/km-km.js +0 -39
  473. package/locale/ko-kr.js +0 -39
  474. package/locale/ku-ckb.js +0 -39
  475. package/locale/lt-lt.js +0 -39
  476. package/locale/lv-lv.js +0 -39
  477. package/locale/nl-nl.js +0 -39
  478. package/locale/no_nb.js +0 -39
  479. package/locale/pl-pl.js +0 -39
  480. package/locale/pt-br.js +0 -39
  481. package/locale/pt-pt.js +0 -39
  482. package/locale/ro-ro.js +0 -39
  483. package/locale/ru-ru.js +0 -39
  484. package/locale/sk-sk.js +0 -39
  485. package/locale/sl-si.js +0 -39
  486. package/locale/sr-rs +0 -39
  487. package/locale/sv_se.js +0 -39
  488. package/locale/tr-tr.js +0 -39
  489. package/locale/uk-ua.js +0 -39
  490. package/locale/ur-ur.js +0 -39
  491. package/locale/vi-vi.js +0 -39
  492. package/locale/zh-cn.js +0 -39
  493. package/locale/zh-hk.js +0 -39
  494. package/locale/zh-tw.js +0 -39
  495. package/types/index.d.ts +0 -1066
@@ -1,6 +1,4 @@
1
- MIT License
2
-
3
- Copyright (c) 2019 PQINA | Rik Schennink <rik@pqina.nl>
1
+ Copyright (c) 2019-2025 [Pqina](https://pqina.nl)
4
2
 
5
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
4
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -1,195 +1,67 @@
1
- # [<img src="https://github.com/pqina/filepond-github-assets/blob/master/logo.svg" height="44" alt="FilePond"/>](https://pqina.nl/filepond/)
1
+ # [<img src="https://github.com/pqina/filepond-github-assets/blob/master/logo.svg" height="44" alt="FilePond"/>](https://filepond.com)
2
+
3
+ **This is the v5 beta branch**
4
+
5
+ Some high priority TODO's
6
+
7
+ - Docs are on the way
8
+ - Naming of some types
9
+ - Safari flashing of video while dragginh
10
+ - Run more tests on mobile devices
11
+ - Add basic image manipulation extensions
12
+ - default styles for `:valid`, `:invalid, and `:focus`
2
13
 
3
14
  A JavaScript library that can upload anything you throw at it, optimizes images for faster uploads, and offers a great, accessible, silky smooth user experience.
4
15
 
5
- [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/pqina/filepond/blob/master/LICENSE)
16
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/pqina/filepond/blob/v/LICENSE)
6
17
  [![npm version](https://badge.fury.io/js/filepond.svg)](https://www.npmjs.com/package/filepond)
7
18
  ![npm](https://img.shields.io/npm/dt/filepond)
8
- [![minzipped size](https://img.shields.io/bundlephobia/minzip/filepond)](https://bundlephobia.com/package/filepond)
9
-
10
- FilePond adapters are available for **[React](https://github.com/pqina/react-filepond)**, **[Vue](https://github.com/pqina/vue-filepond)**, **[Angular](https://github.com/pqina/ngx-filepond)**, **[Svelte](https://github.com/pqina/svelte-filepond)**, and **[jQuery](https://github.com/pqina/jquery-filepond)**
19
+ [![Discord](https://img.shields.io/discord/1422126182924554291?label=discord)](https://discord.gg/KTyymsrTrX)
11
20
 
12
21
  ---
13
22
 
14
23
  [<img src="https://github.com/pqina/filepond-github-assets/blob/master/header.svg" alt="FilePond"/>](https://www.buymeacoffee.com/rikschennink/)
15
24
 
16
- [Buy me a Coffee](https://www.buymeacoffee.com/rikschennink/) / [Use FilePond with Pintura](https://pqina.nl/pintura/?ref=github-filepond) / [Dev updates on Twitter](https://twitter.com/rikschennink/)
17
-
18
- ---
19
-
20
- ### Core Features
21
-
22
- - Accepts **directories**, **files**, blobs, local URLs, **remote URLs** and Data URIs.
23
- - **Drop files**, select on filesystem, **copy and paste files**, or add files using the API.
24
- - **Async uploads** with AJAX, supports **chunk uploads**, can encode files as base64 data and send along form post.
25
- - **Accessible**, tested with AT software like VoiceOver and JAWS, **navigable by Keyboard**.
26
- - **Image optimization**, automatic image resizing, **cropping**, filtering, and **fixes EXIF orientation**.
27
- - **Responsive**, automatically scales to available space, is functional on both **mobile and desktop devices**.
28
-
29
- [Learn more about FilePond](https://pqina.nl/filepond/)
25
+ [Buy me a Coffee](https://www.buymeacoffee.com/rikschennink/) [Use FilePond with Pintura](https://pqina.nl/pintura/?ref=github-filepond) [Dev updates](https://rik.schenn.ink)
30
26
 
31
- [<img src="https://github.com/pqina/filepond-github-assets/blob/master/filepond-animation-01.gif?raw=true" width="370" alt=""/>](https://pqina.nl/filepond/)
27
+ ## Installing
32
28
 
33
- ---
34
-
35
- ### Also need Image Editing?
36
-
37
- **Pintura the modern JavaScript Image Editor** is what you're looking for. Pintura supports setting **crop aspect ratios**, **resizing**, **rotating**, **cropping**, and **flipping** images. Above all, it integrates beautifully with FilePond.
38
-
39
- [Learn more about Pintura](https://pqina.nl/pintura/?ref=github-filepond)
40
-
41
- [<img src="https://github.com/pqina/filepond-github-assets/blob/master/filepond_pintura.gif?raw=true" width="600" alt=""/>](https://pqina.nl/pintura/?ref=github-filepond)
29
+ We can install the `filepond` package by running the following command in our terminal:
42
30
 
43
- ---
44
-
45
- ### Live Demos
46
-
47
- - [React](https://stackblitz.com/github/pqina/pintura-example-react?file=src%2FExampleFilePond.js)
48
- - [Angular](https://stackblitz.com/github/pqina/pintura-example-angular?file=src%2Fapp%2Ffilepond-example%2Ffilepond-example.component.ts)
49
- - [Svelte](https://stackblitz.com/github/pqina/pintura-example-svelte?file=src%2FApp.svelte%3AL152)
50
- - [Vue](https://stackblitz.com/github/pqina/pintura-example-vue-3?file=src%2FExampleFilePond.vue)
51
-
52
- ### Plugins
53
-
54
- - [File encode](https://github.com/pqina/filepond-plugin-file-encode)
55
- - [File rename](https://github.com/pqina/filepond-plugin-file-rename)
56
- - [File size validation](https://github.com/pqina/filepond-plugin-file-validate-size)
57
- - [File type validation](https://github.com/pqina/filepond-plugin-file-validate-type)
58
- - [File metadata](https://github.com/pqina/filepond-plugin-file-metadata)
59
- - [File poster](https://github.com/pqina/filepond-plugin-file-poster)
60
- - [Image editor](https://github.com/pqina/filepond-plugin-image-edit)
61
- - [Image size validation](https://github.com/pqina/filepond-plugin-image-validate-size)
62
- - [Image preview](https://github.com/pqina/filepond-plugin-image-preview)
63
- - [Image crop](https://github.com/pqina/filepond-plugin-image-crop)
64
- - [Image filter](https://github.com/pqina/filepond-plugin-image-filter)
65
- - [Image resize](https://github.com/pqina/filepond-plugin-image-resize)
66
- - [Image transform](https://github.com/pqina/filepond-plugin-image-transform)
67
- - [Image EXIF orientation](https://github.com/pqina/filepond-plugin-image-exif-orientation)
68
- - [Image overlay](https://github.com/nielsboogaard/filepond-plugin-image-overlay) ([nielsboogaard/filepond-plugin-image-overlay](https://github.com/nielsboogaard/filepond-plugin-image-overlay))
69
- - [Media preview](https://github.com/nielsboogaard/filepond-plugin-media-preview) ([nielsboogaard/filepond-plugin-media-preview](https://github.com/nielsboogaard/filepond-plugin-media-preview))
70
- - [Media preview + PDF preview](https://github.com/ErnestBrandi/filepond-plugin-media-preview) ([ErnestBrandi/filepond-plugin-media-preview](https://github.com/ErnestBrandi/filepond-plugin-media-preview))
71
- - [Get file](https://github.com/nielsboogaard/filepond-plugin-get-file) ([nielsboogaard/filepond-plugin-get-file](https://github.com/nielsboogaard/filepond-plugin-get-file))
72
- - [Zip Directory Uploads](https://github.com/tzsk/filepond-plugin-zipper) ([tzsk/filepond-plugin-zipper](https://github.com/tzsk/filepond-plugin-zipper))
73
- - [PDF Preview](https://github.com/Adri-Glez/filepond-plugin-pdf-preview) ([Adri-Glez/filepond-plugin-pdf-preview](https://github.com/Adri-Glez/filepond-plugin-pdf-preview))
74
- - [PDF Convert](https://github.com/alexandreDavid/filepond-plugin-pdf-convert) ([alexandreDavid/filepond-plugin-pdf-convert](https://github.com/alexandreDavid/filepond-plugin-pdf-convert))
75
-
76
- ### Adapters
77
-
78
- - [React](https://github.com/pqina/react-filepond)
79
- - [Vue](https://github.com/pqina/vue-filepond)
80
- - [Svelte](https://github.com/pqina/svelte-filepond)
81
- - [jQuery](https://github.com/pqina/jquery-filepond)
82
- - [Angular](https://github.com/pqina/ngx-filepond)
83
- - [Angular 1](https://github.com/johnnyasantoss/angularjs-filepond) ([johnnyasantoss/angularjs-filepond](https://github.com/johnnyasantoss/angularjs-filepond))
84
- - [Blazor](https://github.com/soenneker/soenneker.blazor.filepond) ([soenneker/soenneker.blazor.filepond](https://github.com/soenneker/soenneker.blazor.filepond))
85
- - [Ember](https://github.com/alexdiliberto/ember-filepond) ([alexdiliberto/ember-filepond](https://github.com/alexdiliberto/ember-filepond))
86
-
87
- ### Backend
88
-
89
- - [PHP](https://github.com/pqina/filepond-boilerplate-php)
90
- - [Django](https://github.com/ImperialCollegeLondon/django-drf-filepond) ([ImperialCollegeLondon/django-drf-filepond](https://github.com/ImperialCollegeLondon/django-drf-filepond))
91
- - [Laravel](https://github.com/Sopamo/laravel-filepond) ([Sopamo/laravel-filepond](https://github.com/Sopamo/laravel-filepond))
92
- - [Laravel](https://github.com/Albert221/laravel-filepond) ([Albert221/laravel-filepond](https://github.com/Albert221/laravel-filepond))
93
- - [SilverStripe](https://github.com/lekoala/silverstripe-filepond) ([lekoala/silverstripe-filepond](https://github.com/lekoala/silverstripe-filepond))
94
- - [Ruby on Rails](https://github.com/Code-With-Rails/filepond-rails) ([Code-With-Rails/filepond-rails](https://github.com/Code-With-Rails/filepond-rails))
95
-
96
- ## Quick Start
97
-
98
- Install using npm:
99
-
100
- ```bash
101
- npm install filepond
102
31
  ```
103
-
104
- Then import in your project:
105
-
106
- ```js
107
- import * as FilePond from 'filepond';
108
-
109
- // Create a multi file upload component
110
- const pond = FilePond.create({
111
- multiple: true,
112
- name: 'filepond',
113
- });
114
-
115
- // Add it to the DOM
116
- document.body.appendChild(pond.element);
32
+ npm install filepond@5.0.0-alpha
117
33
  ```
118
34
 
119
- Or get it from a CDN:
35
+ ## Getting Started
120
36
 
121
37
  ```html
122
- <!DOCTYPE html>
123
- <html>
124
- <head>
125
- <title>FilePond from CDN</title>
126
-
127
- <!-- Filepond stylesheet -->
128
- <link href="https://unpkg.com/filepond/dist/filepond.css" rel="stylesheet" />
129
- </head>
130
- <body>
131
- <!-- We'll transform this input into a pond -->
132
- <input type="file" class="filepond" />
133
-
134
- <!-- Load FilePond library -->
135
- <script src="https://unpkg.com/filepond/dist/filepond.js"></script>
136
-
137
- <!-- Turn all file input elements into ponds -->
138
- <script>
139
- FilePond.parse(document.body);
140
- </script>
141
- </body>
142
- </html>
38
+ <form action="/upload" method="POST">
39
+ <file-pond>
40
+ <label for="my-file">Drop files here, or <u>browse</u></label>
41
+ <input id="my-file" type="file" name="files" required />
42
+ </file-pond>
43
+
44
+ <button type="submit">Upload</button>
45
+ </form>
46
+
47
+ <script type="module">
48
+ import { defineFilePond } from 'filepond';
49
+ import { en_GB } from 'filepond/locales';
50
+
51
+ // registers the <file-pond> custom element, returns found elements, and sets initial options
52
+ const elements = defineFilePond({
53
+ locale: en_GB,
54
+ });
55
+ </script>
143
56
  ```
144
57
 
145
- [Getting started with FilePond](https://pqina.nl/filepond/docs/patterns/getting-started/)
146
-
147
- ## Internationalization
148
-
149
- The [locale folder](./locale/) contains different language files, PR's are welcome, you can use locale files like this:
150
-
151
- ```js
152
- import pt_BR from 'filepond/locale/pt-br.js';
153
-
154
- FilePond.setOptions(pt_BR);
155
- ```
156
-
157
- ## Contributing
158
-
159
- At the moment test coverage is not great, it's around 65%. To accept pull requests the tests need to be better, any help to improve them is very much appreciated.
160
-
161
- Tests are based on Jest and can be run with `npm run test`
162
-
163
- To build the library run `npm run build`
164
-
165
- ## Publications
166
-
167
- - [Using FilePond with NodeJS](https://www.infoworld.com/article/3627248/how-to-use-filepond-with-nodejs.html)
168
- - [Applying Watermarks to Images with FilePond](https://pqina.nl/blog/applying-watermarks-to-images-with-filepond/)
169
- - [Generating Image Thumbnails in the Browser using JavaScript and FilePond](https://dev.to/pqina/generating-image-thumbnails-in-the-browser-using-javascript-and-filepond-10b8)
170
- - [How to upload files with Vue and FilePond](https://dev.to/pqina/how-to-upload-files-with-vue-and-filepond-1m02)
171
- - [Smooth file uploading with React and FilePond](https://itnext.io/uploading-files-with-react-and-filepond-f8a798308557)
172
- - [5 interesting technical challenges I faced while building FilePond](https://itnext.io/filepond-frontend-trickery-a3073c934c77)
173
- - [Image uploads with Laravel and FilePond](https://devdojo.com/episode/image-uploads-with-laravel-and-filepond)
174
- - [Integrating FilePond with Ember](https://alexdiliberto.com/ember-filepond/)
175
- - [FilePond launch day post-mortem](https://pqina.nl/blog/filepond-launch-day-post-mortem)
176
- - [FilePond on ProductHunt](https://www.producthunt.com/posts/filepond-js)
177
-
178
- ### Browser Compatibility
179
-
180
- FilePond is compatible with a wide range of desktop and mobile browsers, the oldest explicitly supported browser is IE11, for best cross browser support add [FilePond Polyfill](https://github.com/pqina/filepond-polyfill) and [Babel polyfill](https://babeljs.io/docs/en/babel-polyfill) to your project.
181
-
182
- FilePond uses [BrowserStack](https://www.browserstack.com/) for compatibility testing.
183
-
184
- [<img src="https://github.com/pqina/filepond-github-assets/blob/master/browserstack-logo.svg" height="32" alt="BrowserStack"/>](https://www.browserstack.com/)
185
-
186
58
  ## License
187
59
 
188
60
  **Please don't remove or change the disclaimers in the source files**
189
61
 
190
62
  MIT License
191
63
 
192
- Copyright (c) 2020 PQINA | [Rik Schennink](mailto:rik@pqina.nl)
64
+ Copyright (c) 2025 Pqina
193
65
 
194
66
  Permission is hereby granted, free of charge, to any person obtaining a copy
195
67
  of this software and associated documentation files (the "Software"), to deal
@@ -0,0 +1,37 @@
1
+ const core = {
2
+ // generic remove
3
+ remove: '<path d="M7 7 L17 17 M17 7 L7 17"/>',
4
+ // checkmark for
5
+ check: '<path d="M20 6 9 17 4 12"/>',
6
+ // status
7
+ error: '<path stroke="none" fill="currentColor" d="M14.897 1a4 4 0 0 1 2.664 1.016l.165 .156l4.1 4.1a4 4 0 0 1 1.168 2.605l.006 .227v5.794a4 4 0 0 1 -1.016 2.664l-.156 .165l-4.1 4.1a4 4 0 0 1 -2.603 1.168l-.227 .006h-5.795a3.999 3.999 0 0 1 -2.664 -1.017l-.165 -.156l-4.1 -4.1a4 4 0 0 1 -1.168 -2.604l-.006 -.227v-5.794a4 4 0 0 1 1.016 -2.664l.156 -.165l4.1 -4.1a4 4 0 0 1 2.605 -1.168l.227 -.006h5.793zm-2.887 14l-.127 .007a1 1 0 0 0 0 1.986l.117 .007l.127 -.007a1 1 0 0 0 0 -1.986l-.117 -.007zm-.01 -8a1 1 0 0 0 -.993 .883l-.007 .117v4l.007 .117a1 1 0 0 0 1.986 0l.007 -.117v-4l-.007 -.117a1 1 0 0 0 -.993 -.883z" />',
8
+ warning: '<path stroke="none" fill="currentColor" d="M12 1.67c.955 0 1.845 .467 2.39 1.247l.105 .16l8.114 13.548a2.914 2.914 0 0 1 -2.307 4.363l-.195 .008h-16.225a2.914 2.914 0 0 1 -2.582 -4.2l.099 -.185l8.11 -13.538a2.914 2.914 0 0 1 2.491 -1.403zm.01 13.33l-.127 .007a1 1 0 0 0 0 1.986l.117 .007l.127 -.007a1 1 0 0 0 0 -1.986l-.117 -.007zm-.01 -7a1 1 0 0 0 -.993 .883l-.007 .117v4l.007 .117a1 1 0 0 0 1.986 0l.007 -.117v-4l-.007 -.117a1 1 0 0 0 -.993 -.883z" />',
9
+ info: '<path stroke="none" fill="currentColor" d="M12 2l.642 .005l.616 .017l.299 .013l.579 .034l.553 .046c4.687 .455 6.65 2.333 7.166 6.906l.03 .29l.046 .553l.041 .727l.006 .15l.017 .617l.005 .642l-.005 .642l-.017 .616l-.013 .299l-.034 .579l-.046 .553c-.455 4.687 -2.333 6.65 -6.906 7.166l-.29 .03l-.553 .046l-.727 .041l-.15 .006l-.617 .017l-.642 .005l-.642 -.005l-.616 -.017l-.299 -.013l-.579 -.034l-.553 -.046c-4.687 -.455 -6.65 -2.333 -7.166 -6.906l-.03 -.29l-.046 -.553l-.041 -.727l-.006 -.15l-.017 -.617l-.004 -.318v-.648l.004 -.318l.017 -.616l.013 -.299l.034 -.579l.046 -.553c.455 -4.687 2.333 -6.65 6.906 -7.166l.29 -.03l.553 -.046l.727 -.041l.15 -.006l.617 -.017c.21 -.003 .424 -.005 .642 -.005zm0 9h-1l-.117 .007a1 1 0 0 0 0 1.986l.117 .007v3l.007 .117a1 1 0 0 0 .876 .876l.117 .007h1l.117 -.007a1 1 0 0 0 .876 -.876l.007 -.117l-.007 -.117a1 1 0 0 0 -.764 -.857l-.112 -.02l-.117 -.006v-3l-.007 -.117a1 1 0 0 0 -.876 -.876l-.117 -.007zm.01 -3l-.127 .007a1 1 0 0 0 0 1.986l.117 .007l.127 -.007a1 1 0 0 0 0 -1.986l-.117 -.007z" />',
10
+ system: '<path stroke="none" fill="currentColor" d="M17 3.34a10 10 0 1 1 -15 8.66l.005 -.324a10 10 0 0 1 14.995 -8.336m-6.293 5.953a1 1 0 0 0 -1.414 0l-2 2a1 1 0 0 0 0 1.414l2 2a1 1 0 0 0 1.414 0l.083 -.094a1 1 0 0 0 -.083 -1.32l-1.292 -1.293l1.292 -1.293a1 1 0 0 0 0 -1.414m4 0a1 1 0 0 0 -1.414 0l-.083 .094a1 1 0 0 0 .083 1.32l1.292 1.293l-1.292 1.293a1 1 0 0 0 1.414 1.414l2 -2a1 1 0 0 0 0 -1.414z" />',
11
+ success: '<path stroke="none" fill="currentColor" d="M17 3.34a10 10 0 1 1 -14.995 8.984l-.005 -.324l.005 -.324a10 10 0 0 1 14.995 -8.336zm-1.293 5.953a1 1 0 0 0 -1.32 -.083l-.094 .083l-3.293 3.292l-1.293 -1.292l-.094 -.083a1 1 0 0 0 -1.403 1.403l.083 .094l2 2l.094 .083a1 1 0 0 0 1.226 0l.094 -.083l4 -4l.083 -.094a1 1 0 0 0 -.083 -1.32z" />'
12
+ };
13
+ const store = {
14
+ store: '<path d="M7 19 L17 19 M12 14 L12 5 M7 10 L12 5 L17 10"/>',
15
+ revert: '<path d="M5.057 18.484A9.5 9.5 0 1 0 4.593 6.05"/><path d="M4.5 2 4 6.5l4.5.5"/>'
16
+ };
17
+ const media = {
18
+ mediaEdit: '<path d="m18 5 2-2 1 1-2 2zM15.5 7.5l1 1L6 19l-2.5 1.5L5 18z"/>',
19
+ mediaReset: '<path d="M5.057 18.484A9.5 9.5 0 1 0 4.593 6.05"/><path d="M4.5 2 4 6.5l4.5.5"/>',
20
+ mediaPause: '<g stroke="none" fill="currentColor"><path d="M9 4h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h2a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2z" /><path d="M17 4h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h2a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2z" /></g>',
21
+ mediaPlay: '<path stroke="none" fill="currentColor" d="M6 4v16a1 1 0 0 0 1.524 .852l13 -8a1 1 0 0 0 0 -1.704l-13 -8a1 1 0 0 0 -1.524 .852z" />',
22
+ mediaMute: '<g fill="currentColor"><path d="M8.5 9h-4v6h4l8.5 6.5v-19z"/><path d="M20 15c1.178 0 2-1.698 2-3s-.822-3-2-3c-.5 0-1 .667-1 1v4c0 .333.5 1 1 1" stroke="none"/></g>',
23
+ mediaUnmute: '<path fill="currentColor" d="M17 4V2.5L8.5 9h-4v6H6zM12 18l5 3.5V13z"/><path d="M21 4.5 5.5 20"/>',
24
+ mediaSilent: '<polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"/><line x1="23" y1="9" x2="17" y2="15"/><line x1="17" y1="9" x2="23" y2="15"/>',
25
+ mediaFullscreen: '<path d="M4 8v-2a2 2 0 0 1 2 -2h2 M4 16v2a2 2 0 0 0 2 2h2 M16 4h2a2 2 0 0 1 2 2v2 M16 20h2a2 2 0 0 0 2 -2v-2" />'
26
+ };
27
+ const assets = {
28
+ ...core,
29
+ ...store,
30
+ ...media
31
+ };
32
+ export {
33
+ assets,
34
+ core,
35
+ media,
36
+ store
37
+ };
@@ -0,0 +1,14 @@
1
+ function warn(...args) {
2
+ console["warn"](...args);
3
+ }
4
+ function log(...args) {
5
+ console["log"](...args);
6
+ }
7
+ function clear() {
8
+ console["clear"]();
9
+ }
10
+ export {
11
+ clear,
12
+ log,
13
+ warn
14
+ };
@@ -0,0 +1,39 @@
1
+ import { getExtensionFromMimeType } from "../utils/file.js";
2
+ function getBasename(entry, blob) {
3
+ return "Untitled";
4
+ }
5
+ function getExtension(entry, blob, options) {
6
+ return getExtensionFromMimeType(blob.type, options.mimeTypeMap);
7
+ }
8
+ function getFilename(entry, blob, options) {
9
+ const basename = (options.getBasename ?? getBasename)(entry, blob);
10
+ const extension = (options.getExtension ?? getExtension)(entry, blob, {
11
+ mimeTypeMap: options.mimeTypeMap
12
+ });
13
+ return `${basename}${extension}`;
14
+ }
15
+ function getExtensionStatusItems(extensions) {
16
+ return extensions.filter((extension) => extension.status).map((extension) => extension.status);
17
+ }
18
+ function getExtensionStateByStatusCode(extensions, codes) {
19
+ const extensionState = extensions.filter((extension) => extension.status).find(
20
+ (extension) => codes.includes(
21
+ //@ts-ignore (we only get extensions that have a status)
22
+ extension.status.code
23
+ )
24
+ );
25
+ if (extensionState) {
26
+ return extensionState.status;
27
+ }
28
+ if (codes.includes(null)) {
29
+ return { progress: null };
30
+ }
31
+ return null;
32
+ }
33
+ export {
34
+ getBasename,
35
+ getExtension,
36
+ getExtensionStateByStatusCode,
37
+ getExtensionStatusItems,
38
+ getFilename
39
+ };
@@ -0,0 +1,94 @@
1
+ import { randomNumberBetween } from "../utils/math.js";
2
+ function createPerceivedPerformanceProcess(onprogress, abortController, config) {
3
+ return new Promise((resolve) => {
4
+ let timeoutId;
5
+ let duration = randomNumberBetween(config.minDuration, config.maxDuration);
6
+ const start = Date.now();
7
+ const lengthComputable = true;
8
+ const total = 1;
9
+ let loaded = 0;
10
+ abortController.signal.onabort = () => {
11
+ clearTimeout(timeoutId);
12
+ };
13
+ onprogress({ lengthComputable, loaded, total });
14
+ const tick = () => {
15
+ if (abortController.signal.aborted) {
16
+ return;
17
+ }
18
+ const runtime = Date.now() - start;
19
+ let delay = randomNumberBetween(config.minStep, config.maxStep);
20
+ if (runtime + delay > duration) {
21
+ delay = runtime + delay - duration;
22
+ }
23
+ loaded = runtime / duration * total;
24
+ onprogress({
25
+ lengthComputable,
26
+ loaded: Math.min(loaded, total),
27
+ total
28
+ });
29
+ if (loaded >= total) {
30
+ return resolve();
31
+ }
32
+ timeoutId = setTimeout(tick, delay);
33
+ };
34
+ tick();
35
+ });
36
+ }
37
+ function createPerceivedPerformanceProxy(fn, options) {
38
+ return async function(entry, {
39
+ onprogress,
40
+ onabort,
41
+ abortController
42
+ }) {
43
+ const perceivedPerformanceAbortController = new AbortController();
44
+ let perceivedProgress;
45
+ let actualProgress;
46
+ function handleProgressUpdate() {
47
+ if (!actualProgress || !perceivedProgress) {
48
+ return;
49
+ }
50
+ const perceivedProgressFraction = perceivedProgress.loaded / perceivedProgress.total;
51
+ const actualProgressFraction = actualProgress.loaded / actualProgress.total;
52
+ if (perceivedProgressFraction < actualProgressFraction) {
53
+ return onprogress({ ...perceivedProgress, lengthComputable: true });
54
+ }
55
+ onprogress(actualProgress);
56
+ }
57
+ const perceivedPromise = createPerceivedPerformanceProcess(
58
+ (progress) => {
59
+ const total = options?.total || actualProgress?.total || 100;
60
+ perceivedProgress = {
61
+ lengthComputable: true,
62
+ loaded: Math.round(progress.loaded * total),
63
+ total
64
+ };
65
+ handleProgressUpdate();
66
+ },
67
+ // if we abort we abort simulation as well
68
+ perceivedPerformanceAbortController,
69
+ options
70
+ );
71
+ const actualPromise = fn(entry, {
72
+ onprogress: (progress) => {
73
+ actualProgress = progress;
74
+ handleProgressUpdate();
75
+ },
76
+ onabort: () => {
77
+ perceivedPerformanceAbortController.abort();
78
+ onabort();
79
+ },
80
+ abortController
81
+ });
82
+ return new Promise((resolve, reject) => {
83
+ Promise.all([actualPromise, perceivedPromise]).then((res) => {
84
+ resolve(res[0]);
85
+ }).catch((err) => {
86
+ perceivedPerformanceAbortController.abort();
87
+ reject(err);
88
+ });
89
+ });
90
+ };
91
+ }
92
+ export {
93
+ createPerceivedPerformanceProxy
94
+ };
@@ -0,0 +1,143 @@
1
+ import { arrayRemoveFalsy } from "../utils/array.js";
2
+ import { noop } from "../utils/placeholder.js";
3
+ import { isFileSystemDirectoryEntry, isFunction, isFileSystemFileEntry } from "../utils/test.js";
4
+ import { eachTree, mapTreeAsync } from "../utils/tree.js";
5
+ import { idleCallbackPromise } from "../utils/window.js";
6
+ async function readEntriesFromDataTransfer(dataTransfer, options) {
7
+ const { onprogress = noop, onabort = noop, abortController } = options ?? {};
8
+ const { items } = dataTransfer ?? {};
9
+ if (!items) {
10
+ return [];
11
+ }
12
+ let didCallOnAbort = false;
13
+ let totalFileEntries = 0;
14
+ let processedFileEntries = 0;
15
+ const entries = dataTransferItemsToEntries(items);
16
+ const entriesArray = await entriesToArray(entries, options);
17
+ if (abortController?.signal.aborted) {
18
+ onabort();
19
+ return;
20
+ }
21
+ eachTree(entriesArray, (entry) => {
22
+ if (!isFunction(entry)) {
23
+ return;
24
+ }
25
+ totalFileEntries++;
26
+ });
27
+ onprogress({ loaded: processedFileEntries, total: totalFileEntries });
28
+ return await mapTreeAsync(
29
+ entriesArray,
30
+ async (entry) => {
31
+ if (isFunction(entry)) {
32
+ if (abortController?.signal.aborted) {
33
+ if (!didCallOnAbort) {
34
+ onabort();
35
+ }
36
+ didCallOnAbort = true;
37
+ return;
38
+ }
39
+ const res = await entry();
40
+ processedFileEntries++;
41
+ onprogress({ loaded: processedFileEntries, total: totalFileEntries });
42
+ return res;
43
+ }
44
+ return entry;
45
+ },
46
+ "entries"
47
+ );
48
+ }
49
+ async function entriesToArray(entries, options) {
50
+ const { abortController, onabort = noop } = options ?? {};
51
+ let entriesArray = [];
52
+ for (const entry of entries) {
53
+ if (!entry) {
54
+ continue;
55
+ }
56
+ if (abortController?.signal.aborted) {
57
+ onabort();
58
+ return [];
59
+ }
60
+ let item;
61
+ if (isFileSystemDirectoryEntry(entry)) {
62
+ item = {
63
+ name: entry.name,
64
+ path: entry.fullPath,
65
+ entries: await entriesToArray(await readDirectory(entry), options)
66
+ };
67
+ } else if (isFileSystemFileEntry(entry)) {
68
+ item = async () => {
69
+ const file = await readFile(entry);
70
+ file.path = entry.fullPath;
71
+ return file;
72
+ };
73
+ } else {
74
+ continue;
75
+ }
76
+ entriesArray.push(item);
77
+ }
78
+ return entriesArray;
79
+ }
80
+ function dataTransferItemsToEntries(items) {
81
+ return Array.from(items).map(getAsEntry);
82
+ }
83
+ function dataTransferItemsToFiles(items) {
84
+ return Array.from(items).map(getAsFile);
85
+ }
86
+ function getAsEntry(item) {
87
+ return item.webkitGetAsEntry();
88
+ }
89
+ function getAsFile(item) {
90
+ return item.getAsFile();
91
+ }
92
+ async function readDirectory(entry) {
93
+ const dirReader = entry.createReader();
94
+ const entries = [];
95
+ while (true) {
96
+ const results = await new Promise((resolve, reject) => {
97
+ dirReader.readEntries(resolve, reject);
98
+ });
99
+ if (!results.length) {
100
+ break;
101
+ }
102
+ for (const entry2 of results) {
103
+ entries.push(entry2);
104
+ }
105
+ }
106
+ return entries;
107
+ }
108
+ async function readFile(entry) {
109
+ await idleCallbackPromise();
110
+ return getFileFromEntry(entry);
111
+ }
112
+ async function getFileFromEntry(entry) {
113
+ return new Promise((resolve) => entry.file(resolve));
114
+ }
115
+ function shouldLoadWithIdleCallback(dataTransfer) {
116
+ const entries = dataTransferItemsToEntries(dataTransfer.items);
117
+ return entries.some(isFileSystemDirectoryEntry) || entries.length > 10;
118
+ }
119
+ async function dataTransferToFiles(dataTransfer) {
120
+ let entries = dataTransferItemsToEntries(dataTransfer.items);
121
+ if (arrayRemoveFalsy(entries).length === 0) {
122
+ return dataTransferItemsToFiles(dataTransfer.items);
123
+ }
124
+ const res = [];
125
+ const promises = [];
126
+ for (const entry of entries) {
127
+ if (isFileSystemFileEntry(entry)) {
128
+ promises.push(getFileFromEntry(entry));
129
+ }
130
+ }
131
+ res.push(...await Promise.all(promises));
132
+ return res;
133
+ }
134
+ export {
135
+ dataTransferItemsToEntries,
136
+ dataTransferItemsToFiles,
137
+ dataTransferToFiles,
138
+ getAsEntry,
139
+ getAsFile,
140
+ readDirectory,
141
+ readEntriesFromDataTransfer,
142
+ shouldLoadWithIdleCallback
143
+ };
@@ -0,0 +1,6 @@
1
+ import { isBrowser } from "../utils/test.js";
2
+ const HTMLElementSafe = isBrowser() ? HTMLElement : class {
3
+ };
4
+ export {
5
+ HTMLElementSafe
6
+ };
@@ -0,0 +1,11 @@
1
+ var Status = /* @__PURE__ */ ((Status2) => {
2
+ Status2["Info"] = "info";
3
+ Status2["Warning"] = "warning";
4
+ Status2["Success"] = "success";
5
+ Status2["Error"] = "error";
6
+ Status2["System"] = "system";
7
+ return Status2;
8
+ })(Status || {});
9
+ export {
10
+ Status
11
+ };