@useupup/svelte 3.3.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 (222) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +60 -0
  3. package/dist/UpupUploader.svelte +96 -0
  4. package/dist/UpupUploader.svelte.d.ts +5 -0
  5. package/dist/UpupUploader.svelte.d.ts.map +1 -0
  6. package/dist/assets/logos.d.ts +5 -0
  7. package/dist/assets/logos.d.ts.map +1 -0
  8. package/dist/assets/logos.js +4 -0
  9. package/dist/components/AudioUploader.svelte +220 -0
  10. package/dist/components/AudioUploader.svelte.d.ts +4 -0
  11. package/dist/components/AudioUploader.svelte.d.ts.map +1 -0
  12. package/dist/components/AudioWaveform.svelte +72 -0
  13. package/dist/components/AudioWaveform.svelte.d.ts +7 -0
  14. package/dist/components/AudioWaveform.svelte.d.ts.map +1 -0
  15. package/dist/components/BoxUploader.svelte +17 -0
  16. package/dist/components/BoxUploader.svelte.d.ts +19 -0
  17. package/dist/components/BoxUploader.svelte.d.ts.map +1 -0
  18. package/dist/components/CameraUploader.svelte +140 -0
  19. package/dist/components/CameraUploader.svelte.d.ts +4 -0
  20. package/dist/components/CameraUploader.svelte.d.ts.map +1 -0
  21. package/dist/components/ClientBoxUploader.svelte +60 -0
  22. package/dist/components/ClientBoxUploader.svelte.d.ts +19 -0
  23. package/dist/components/ClientBoxUploader.svelte.d.ts.map +1 -0
  24. package/dist/components/ClientDropboxUploader.svelte +60 -0
  25. package/dist/components/ClientDropboxUploader.svelte.d.ts +19 -0
  26. package/dist/components/ClientDropboxUploader.svelte.d.ts.map +1 -0
  27. package/dist/components/ClientGoogleDriveUploader.svelte +57 -0
  28. package/dist/components/ClientGoogleDriveUploader.svelte.d.ts +19 -0
  29. package/dist/components/ClientGoogleDriveUploader.svelte.d.ts.map +1 -0
  30. package/dist/components/ClientOneDriveUploader.svelte +60 -0
  31. package/dist/components/ClientOneDriveUploader.svelte.d.ts +19 -0
  32. package/dist/components/ClientOneDriveUploader.svelte.d.ts.map +1 -0
  33. package/dist/components/DefaultAddMoreIcon.svelte +11 -0
  34. package/dist/components/DefaultAddMoreIcon.svelte.d.ts +8 -0
  35. package/dist/components/DefaultAddMoreIcon.svelte.d.ts.map +1 -0
  36. package/dist/components/DefaultLoaderIcon.svelte +5 -0
  37. package/dist/components/DefaultLoaderIcon.svelte.d.ts +19 -0
  38. package/dist/components/DefaultLoaderIcon.svelte.d.ts.map +1 -0
  39. package/dist/components/DropboxUploader.svelte +17 -0
  40. package/dist/components/DropboxUploader.svelte.d.ts +19 -0
  41. package/dist/components/DropboxUploader.svelte.d.ts.map +1 -0
  42. package/dist/components/EmptyIcon.svelte +3 -0
  43. package/dist/components/EmptyIcon.svelte.d.ts +19 -0
  44. package/dist/components/EmptyIcon.svelte.d.ts.map +1 -0
  45. package/dist/components/FileHero.svelte +152 -0
  46. package/dist/components/FileHero.svelte.d.ts +8 -0
  47. package/dist/components/FileHero.svelte.d.ts.map +1 -0
  48. package/dist/components/FileIcon.svelte +23 -0
  49. package/dist/components/FileIcon.svelte.d.ts +8 -0
  50. package/dist/components/FileIcon.svelte.d.ts.map +1 -0
  51. package/dist/components/FileItem.svelte +95 -0
  52. package/dist/components/FileItem.svelte.d.ts +12 -0
  53. package/dist/components/FileItem.svelte.d.ts.map +1 -0
  54. package/dist/components/FileList.svelte +442 -0
  55. package/dist/components/FileList.svelte.d.ts +4 -0
  56. package/dist/components/FileList.svelte.d.ts.map +1 -0
  57. package/dist/components/FilePreview.svelte +218 -0
  58. package/dist/components/FilePreview.svelte.d.ts +17 -0
  59. package/dist/components/FilePreview.svelte.d.ts.map +1 -0
  60. package/dist/components/FilePreviewPortal.svelte +189 -0
  61. package/dist/components/FilePreviewPortal.svelte.d.ts +12 -0
  62. package/dist/components/FilePreviewPortal.svelte.d.ts.map +1 -0
  63. package/dist/components/FilePreviewThumbnail.svelte +87 -0
  64. package/dist/components/FilePreviewThumbnail.svelte.d.ts +17 -0
  65. package/dist/components/FilePreviewThumbnail.svelte.d.ts.map +1 -0
  66. package/dist/components/FileRow.svelte +192 -0
  67. package/dist/components/FileRow.svelte.d.ts +10 -0
  68. package/dist/components/FileRow.svelte.d.ts.map +1 -0
  69. package/dist/components/GoogleDriveUploader.svelte +17 -0
  70. package/dist/components/GoogleDriveUploader.svelte.d.ts +19 -0
  71. package/dist/components/GoogleDriveUploader.svelte.d.ts.map +1 -0
  72. package/dist/components/Icon.svelte +24 -0
  73. package/dist/components/Icon.svelte.d.ts +10 -0
  74. package/dist/components/Icon.svelte.d.ts.map +1 -0
  75. package/dist/components/Icons.d.ts +10 -0
  76. package/dist/components/Icons.d.ts.map +1 -0
  77. package/dist/components/Icons.js +9 -0
  78. package/dist/components/ImageEditorStub.svelte +3 -0
  79. package/dist/components/ImageEditorStub.svelte.d.ts +19 -0
  80. package/dist/components/ImageEditorStub.svelte.d.ts.map +1 -0
  81. package/dist/components/OneDriveUploader.svelte +17 -0
  82. package/dist/components/OneDriveUploader.svelte.d.ts +19 -0
  83. package/dist/components/OneDriveUploader.svelte.d.ts.map +1 -0
  84. package/dist/components/ScreenCaptureUploader.svelte +254 -0
  85. package/dist/components/ScreenCaptureUploader.svelte.d.ts +4 -0
  86. package/dist/components/ScreenCaptureUploader.svelte.d.ts.map +1 -0
  87. package/dist/components/ServerModeDriveUploader.svelte +250 -0
  88. package/dist/components/ServerModeDriveUploader.svelte.d.ts +10 -0
  89. package/dist/components/ServerModeDriveUploader.svelte.d.ts.map +1 -0
  90. package/dist/components/SourceSelector.svelte +292 -0
  91. package/dist/components/SourceSelector.svelte.d.ts +19 -0
  92. package/dist/components/SourceSelector.svelte.d.ts.map +1 -0
  93. package/dist/components/SourceView.svelte +100 -0
  94. package/dist/components/SourceView.svelte.d.ts +4 -0
  95. package/dist/components/SourceView.svelte.d.ts.map +1 -0
  96. package/dist/components/TrashIcon.svelte +11 -0
  97. package/dist/components/TrashIcon.svelte.d.ts +8 -0
  98. package/dist/components/TrashIcon.svelte.d.ts.map +1 -0
  99. package/dist/components/UploaderPanel.svelte +363 -0
  100. package/dist/components/UploaderPanel.svelte.d.ts +4 -0
  101. package/dist/components/UploaderPanel.svelte.d.ts.map +1 -0
  102. package/dist/components/UrlUploader.svelte +71 -0
  103. package/dist/components/UrlUploader.svelte.d.ts +4 -0
  104. package/dist/components/UrlUploader.svelte.d.ts.map +1 -0
  105. package/dist/components/icons/AudioIcon.svelte +5 -0
  106. package/dist/components/icons/AudioIcon.svelte.d.ts +7 -0
  107. package/dist/components/icons/AudioIcon.svelte.d.ts.map +1 -0
  108. package/dist/components/icons/BoxIcon.svelte +5 -0
  109. package/dist/components/icons/BoxIcon.svelte.d.ts +7 -0
  110. package/dist/components/icons/BoxIcon.svelte.d.ts.map +1 -0
  111. package/dist/components/icons/CameraIcon.svelte +5 -0
  112. package/dist/components/icons/CameraIcon.svelte.d.ts +7 -0
  113. package/dist/components/icons/CameraIcon.svelte.d.ts.map +1 -0
  114. package/dist/components/icons/DropboxIcon.svelte +5 -0
  115. package/dist/components/icons/DropboxIcon.svelte.d.ts +7 -0
  116. package/dist/components/icons/DropboxIcon.svelte.d.ts.map +1 -0
  117. package/dist/components/icons/GoogleDriveIcon.svelte +5 -0
  118. package/dist/components/icons/GoogleDriveIcon.svelte.d.ts +7 -0
  119. package/dist/components/icons/GoogleDriveIcon.svelte.d.ts.map +1 -0
  120. package/dist/components/icons/LinkIcon.svelte +5 -0
  121. package/dist/components/icons/LinkIcon.svelte.d.ts +7 -0
  122. package/dist/components/icons/LinkIcon.svelte.d.ts.map +1 -0
  123. package/dist/components/icons/MyDeviceIcon.svelte +5 -0
  124. package/dist/components/icons/MyDeviceIcon.svelte.d.ts +7 -0
  125. package/dist/components/icons/MyDeviceIcon.svelte.d.ts.map +1 -0
  126. package/dist/components/icons/OneDriveIcon.svelte +5 -0
  127. package/dist/components/icons/OneDriveIcon.svelte.d.ts +7 -0
  128. package/dist/components/icons/OneDriveIcon.svelte.d.ts.map +1 -0
  129. package/dist/components/icons/ScreenCaptureIcon.svelte +5 -0
  130. package/dist/components/icons/ScreenCaptureIcon.svelte.d.ts +7 -0
  131. package/dist/components/icons/ScreenCaptureIcon.svelte.d.ts.map +1 -0
  132. package/dist/components/shared/DriveAuthFallback.svelte +60 -0
  133. package/dist/components/shared/DriveAuthFallback.svelte.d.ts +12 -0
  134. package/dist/components/shared/DriveAuthFallback.svelte.d.ts.map +1 -0
  135. package/dist/components/shared/DriveBrowser.svelte +209 -0
  136. package/dist/components/shared/DriveBrowser.svelte.d.ts +25 -0
  137. package/dist/components/shared/DriveBrowser.svelte.d.ts.map +1 -0
  138. package/dist/components/shared/DriveBrowserHeader.svelte +191 -0
  139. package/dist/components/shared/DriveBrowserHeader.svelte.d.ts +14 -0
  140. package/dist/components/shared/DriveBrowserHeader.svelte.d.ts.map +1 -0
  141. package/dist/components/shared/DriveBrowserIcon.svelte +39 -0
  142. package/dist/components/shared/DriveBrowserIcon.svelte.d.ts +8 -0
  143. package/dist/components/shared/DriveBrowserIcon.svelte.d.ts.map +1 -0
  144. package/dist/components/shared/DriveBrowserItem.svelte +63 -0
  145. package/dist/components/shared/DriveBrowserItem.svelte.d.ts +10 -0
  146. package/dist/components/shared/DriveBrowserItem.svelte.d.ts.map +1 -0
  147. package/dist/components/shared/FileSuccessCheck.svelte +47 -0
  148. package/dist/components/shared/FileSuccessCheck.svelte.d.ts +10 -0
  149. package/dist/components/shared/FileSuccessCheck.svelte.d.ts.map +1 -0
  150. package/dist/components/shared/ProgressBar.svelte +81 -0
  151. package/dist/components/shared/ProgressBar.svelte.d.ts +10 -0
  152. package/dist/components/shared/ProgressBar.svelte.d.ts.map +1 -0
  153. package/dist/components/shared/SourceViewContainer.svelte +27 -0
  154. package/dist/components/shared/SourceViewContainer.svelte.d.ts +10 -0
  155. package/dist/components/shared/SourceViewContainer.svelte.d.ts.map +1 -0
  156. package/dist/components/shared/UploaderHeader.svelte +156 -0
  157. package/dist/components/shared/UploaderHeader.svelte.d.ts +13 -0
  158. package/dist/components/shared/UploaderHeader.svelte.d.ts.map +1 -0
  159. package/dist/composables/use-tiles-per-row.d.ts +19 -0
  160. package/dist/composables/use-tiles-per-row.d.ts.map +1 -0
  161. package/dist/composables/use-tiles-per-row.js +30 -0
  162. package/dist/composables/useBox.d.ts +28 -0
  163. package/dist/composables/useBox.d.ts.map +1 -0
  164. package/dist/composables/useBox.js +61 -0
  165. package/dist/composables/useCameraUploader.d.ts +23 -0
  166. package/dist/composables/useCameraUploader.d.ts.map +1 -0
  167. package/dist/composables/useCameraUploader.js +114 -0
  168. package/dist/composables/useDropbox.d.ts +28 -0
  169. package/dist/composables/useDropbox.d.ts.map +1 -0
  170. package/dist/composables/useDropbox.js +61 -0
  171. package/dist/composables/useFetchFileByUrl.d.ts +9 -0
  172. package/dist/composables/useFetchFileByUrl.d.ts.map +1 -0
  173. package/dist/composables/useFetchFileByUrl.js +33 -0
  174. package/dist/composables/useGoogleDrive.d.ts +28 -0
  175. package/dist/composables/useGoogleDrive.d.ts.map +1 -0
  176. package/dist/composables/useGoogleDrive.js +65 -0
  177. package/dist/composables/useOneDrive.d.ts +29 -0
  178. package/dist/composables/useOneDrive.d.ts.map +1 -0
  179. package/dist/composables/useOneDrive.js +64 -0
  180. package/dist/composables/useSSEProcessing.d.ts +20 -0
  181. package/dist/composables/useSSEProcessing.d.ts.map +1 -0
  182. package/dist/composables/useSSEProcessing.js +17 -0
  183. package/dist/composables/useServerModeDrive.d.ts +17 -0
  184. package/dist/composables/useServerModeDrive.d.ts.map +1 -0
  185. package/dist/composables/useServerModeDrive.js +33 -0
  186. package/dist/composables/useSourceSelector.d.ts +13 -0
  187. package/dist/composables/useSourceSelector.d.ts.map +1 -0
  188. package/dist/composables/useSourceSelector.js +36 -0
  189. package/dist/composables/useUploaderPanel.d.ts +12 -0
  190. package/dist/composables/useUploaderPanel.d.ts.map +1 -0
  191. package/dist/composables/useUploaderPanel.js +43 -0
  192. package/dist/context/create-uploader-context.d.ts +4 -0
  193. package/dist/context/create-uploader-context.d.ts.map +1 -0
  194. package/dist/context/create-uploader-context.js +324 -0
  195. package/dist/context/source-view-header-extra.d.ts +14 -0
  196. package/dist/context/source-view-header-extra.d.ts.map +1 -0
  197. package/dist/context/source-view-header-extra.js +41 -0
  198. package/dist/context/uploader-context.d.ts +109 -0
  199. package/dist/context/uploader-context.d.ts.map +1 -0
  200. package/dist/context/uploader-context.js +96 -0
  201. package/dist/index.d.ts +10 -0
  202. package/dist/index.d.ts.map +1 -0
  203. package/dist/index.js +5 -0
  204. package/dist/lib/constants.d.ts +13 -0
  205. package/dist/lib/constants.d.ts.map +1 -0
  206. package/dist/lib/constants.js +67 -0
  207. package/dist/lib/to-readable.d.ts +14 -0
  208. package/dist/lib/to-readable.d.ts.map +1 -0
  209. package/dist/lib/to-readable.js +15 -0
  210. package/dist/lib/view-mode.d.ts +24 -0
  211. package/dist/lib/view-mode.d.ts.map +1 -0
  212. package/dist/lib/view-mode.js +31 -0
  213. package/dist/shared/types.d.ts +15 -0
  214. package/dist/shared/types.d.ts.map +1 -0
  215. package/dist/shared/types.js +1 -0
  216. package/dist/styles.d.ts +4 -0
  217. package/dist/tailwind-prefixed.css +2479 -0
  218. package/dist/tailwind.css +74 -0
  219. package/dist/use-upup-upload.d.ts +38 -0
  220. package/dist/use-upup-upload.d.ts.map +1 -0
  221. package/dist/use-upup-upload.js +81 -0
  222. package/package.json +101 -0
@@ -0,0 +1,74 @@
1
+ @tailwind base;
2
+ @tailwind components;
3
+ @tailwind utilities;
4
+ @layer components {
5
+ /* Top "lit-from-above" sheen for the gradient panel chrome. Drawn on a
6
+ ::before so no per-framework DOM node is added. The dark tint is keyed on
7
+ an explicit modifier class (upup-panel-sheen-dark) applied in JS from the
8
+ resolved theme mode, because the product toggles theme via data-theme (not
9
+ a .dark ancestor) and the .upup-scope prefix would break an ancestor
10
+ selector anyway. */
11
+ .upup-panel-sheen {
12
+ position: relative;
13
+ }
14
+ .upup-panel-sheen::before {
15
+ content: '';
16
+ position: absolute;
17
+ inset-inline: 0;
18
+ top: 0;
19
+ height: 6rem;
20
+ pointer-events: none;
21
+ border-radius: inherit;
22
+ background: linear-gradient(
23
+ to bottom,
24
+ rgba(255, 255, 255, 0.5),
25
+ transparent
26
+ );
27
+ }
28
+ .upup-panel-sheen-dark::before {
29
+ background: linear-gradient(
30
+ to bottom,
31
+ rgba(255, 255, 255, 0.08),
32
+ transparent
33
+ );
34
+ }
35
+
36
+ .upup-preview-scroll {
37
+ /* width */
38
+ &::-webkit-scrollbar {
39
+ width: 6px;
40
+ }
41
+
42
+ /* Track */
43
+ &::-webkit-scrollbar-track {
44
+ background: #eaeaea;
45
+ border-radius: 10px;
46
+ }
47
+
48
+ /* Handle */
49
+ &::-webkit-scrollbar-thumb {
50
+ background: #c5cafb;
51
+ border-radius: 10px;
52
+ }
53
+
54
+ /* Handle on hover */
55
+ &::-webkit-scrollbar-thumb:hover {
56
+ background: #c5cafb;
57
+ }
58
+ }
59
+ }
60
+
61
+ @layer utilities {
62
+ .upup-shadow-top {
63
+ box-shadow: 0 -1px 0 0 rgba(128, 128, 128, 0.35);
64
+ }
65
+ .upup-shadow-right {
66
+ box-shadow: 1px 0 0 0 rgba(128, 128, 128, 0.35);
67
+ }
68
+ .upup-shadow-bottom {
69
+ box-shadow: 0 1px 0 0 rgba(128, 128, 128, 0.35);
70
+ }
71
+ .upup-shadow-left {
72
+ box-shadow: -1px 0 0 0 rgba(128, 128, 128, 0.35);
73
+ }
74
+ }
@@ -0,0 +1,38 @@
1
+ import { type Writable } from 'svelte/store';
2
+ import { UpupCore, UploadStatus } from '@useupup/core';
3
+ import type { CoreOptions, UploadFile, ExtensionMethods } from '@useupup/core';
4
+ export interface UseUpupUploadOptions extends CoreOptions {
5
+ onFileAdded?: (files: UploadFile[]) => void;
6
+ onFileRemoved?: (file: UploadFile) => void;
7
+ onUploadProgress?: (progress: {
8
+ fileId: string;
9
+ loaded: number;
10
+ total: number;
11
+ }) => void;
12
+ onUploadComplete?: (files: UploadFile[]) => void;
13
+ }
14
+ export interface UseUpupUploadReturn {
15
+ files: Writable<UploadFile[]>;
16
+ status: Writable<UploadStatus>;
17
+ progress: Writable<{
18
+ totalFiles: number;
19
+ completedFiles: number;
20
+ percentage: number;
21
+ }>;
22
+ error: Writable<Error | null>;
23
+ addFiles(files: File[]): Promise<void>;
24
+ removeFile(id: string): void;
25
+ removeAll(): void;
26
+ setFiles(files: File[]): Promise<void>;
27
+ reorderFiles(fileIds: string[]): void;
28
+ upload(): Promise<UploadFile[]>;
29
+ pause(): void;
30
+ resume(): void;
31
+ cancel(): void;
32
+ retry(fileId?: string): Promise<UploadFile[]>;
33
+ on(event: string, handler: (...args: unknown[]) => void): () => void;
34
+ ext: Record<string, ExtensionMethods>;
35
+ core: UpupCore;
36
+ }
37
+ export declare function useUpupUpload(options: UseUpupUploadOptions): UseUpupUploadReturn;
38
+ //# sourceMappingURL=use-upup-upload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-upup-upload.d.ts","sourceRoot":"","sources":["../src/use-upup-upload.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAE9E,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACrD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,CAAA;IAC3C,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAA;IAC1C,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE;QAC1B,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,EAAE,MAAM,CAAA;QACd,KAAK,EAAE,MAAM,CAAA;KAChB,KAAK,IAAI,CAAA;IACV,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,CAAA;CACnD;AAED,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;IAC7B,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;IAC9B,QAAQ,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAA;QAClB,cAAc,EAAE,MAAM,CAAA;QACtB,UAAU,EAAE,MAAM,CAAA;KACrB,CAAC,CAAA;IACF,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,SAAS,IAAI,IAAI,CAAA;IACjB,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IACrC,MAAM,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;IAC/B,KAAK,IAAI,IAAI,CAAA;IACb,MAAM,IAAI,IAAI,CAAA;IACd,MAAM,IAAI,IAAI,CAAA;IACd,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;IAC7C,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;IACpE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IACrC,IAAI,EAAE,QAAQ,CAAA;CACjB;AAED,wBAAgB,aAAa,CACzB,OAAO,EAAE,oBAAoB,GAC9B,mBAAmB,CAqGrB"}
@@ -0,0 +1,81 @@
1
+ import { onMount, onDestroy } from 'svelte';
2
+ import { writable } from 'svelte/store';
3
+ import { UpupCore } from '@useupup/core';
4
+ export function useUpupUpload(options) {
5
+ const core = new UpupCore(options);
6
+ const files = writable([...core.files.values()]);
7
+ const status = writable(core.status);
8
+ const progress = writable({
9
+ totalFiles: 0,
10
+ completedFiles: 0,
11
+ percentage: 0,
12
+ });
13
+ const error = writable(null);
14
+ const unsubs = [];
15
+ onMount(() => {
16
+ unsubs.push(core.on('state-change', () => {
17
+ files.set([...core.files.values()]);
18
+ status.set(core.status);
19
+ progress.set(core.progress);
20
+ error.set(core.error);
21
+ }));
22
+ const { onFileAdded, onFileRemoved, onUploadProgress, onUploadComplete, } = options;
23
+ if (onFileAdded)
24
+ unsubs.push(core.on('files-added', (...a) => {
25
+ onFileAdded(...a);
26
+ }));
27
+ if (onFileRemoved)
28
+ unsubs.push(core.on('file-removed', (...a) => {
29
+ onFileRemoved(...a);
30
+ }));
31
+ if (onUploadProgress)
32
+ unsubs.push(core.on('upload-progress', (...a) => {
33
+ onUploadProgress(...a);
34
+ }));
35
+ if (onUploadComplete)
36
+ unsubs.push(core.on('upload-all-complete', (...a) => {
37
+ onUploadComplete(...a);
38
+ }));
39
+ });
40
+ onDestroy(() => {
41
+ unsubs.forEach(u => {
42
+ u();
43
+ });
44
+ core.destroy();
45
+ });
46
+ // Untyped passthrough for the port's string-typed public `on` — the typed
47
+ // CoreEvents surface lives on core itself (F-723). Dynamic string names
48
+ // route through the namespaced overload (same runtime dispatch).
49
+ const onUntyped = (ev, hh) => core.on(ev, hh);
50
+ return {
51
+ files,
52
+ status,
53
+ progress,
54
+ error,
55
+ addFiles: (f) => core.addFiles(f),
56
+ removeFile: (id) => {
57
+ core.removeFile(id);
58
+ },
59
+ removeAll: () => {
60
+ core.removeAll();
61
+ },
62
+ setFiles: (f) => core.setFiles(f),
63
+ reorderFiles: (ids) => {
64
+ core.reorderFiles(ids);
65
+ },
66
+ upload: () => core.upload(),
67
+ pause: () => {
68
+ core.pause();
69
+ },
70
+ resume: () => {
71
+ core.resume();
72
+ },
73
+ cancel: () => {
74
+ core.cancel();
75
+ },
76
+ retry: (id) => core.retry(id),
77
+ on: (e, h) => onUntyped(e, h),
78
+ ext: core.ext,
79
+ core,
80
+ };
81
+ }
package/package.json ADDED
@@ -0,0 +1,101 @@
1
+ {
2
+ "name": "@useupup/svelte",
3
+ "version": "3.3.0",
4
+ "description": "Svelte 5 file uploader with cloud-drive sources, resumable uploads, theming, and ICU i18n.",
5
+ "keywords": [
6
+ "file-upload",
7
+ "file-uploader",
8
+ "upload",
9
+ "uploader",
10
+ "svelte",
11
+ "sveltekit",
12
+ "drag-and-drop",
13
+ "dropzone",
14
+ "s3",
15
+ "presigned-url",
16
+ "google-drive",
17
+ "one-drive",
18
+ "dropbox",
19
+ "camera",
20
+ "typescript"
21
+ ],
22
+ "homepage": "https://useupup.com",
23
+ "bugs": {
24
+ "url": "https://github.com/DevinoSolutions/upup/issues"
25
+ },
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "git+https://github.com/DevinoSolutions/upup.git",
29
+ "directory": "packages/svelte"
30
+ },
31
+ "license": "MIT",
32
+ "publishConfig": {
33
+ "access": "public"
34
+ },
35
+ "type": "module",
36
+ "sideEffects": [
37
+ "*.css"
38
+ ],
39
+ "engines": {
40
+ "node": ">=20"
41
+ },
42
+ "svelte": "./dist/index.js",
43
+ "main": "./dist/index.js",
44
+ "module": "./dist/index.js",
45
+ "types": "./dist/index.d.ts",
46
+ "typesVersions": {
47
+ "*": {
48
+ "styles": [
49
+ "dist/styles.d.ts"
50
+ ]
51
+ }
52
+ },
53
+ "exports": {
54
+ ".": {
55
+ "types": "./dist/index.d.ts",
56
+ "svelte": "./dist/index.js",
57
+ "default": "./dist/index.js"
58
+ },
59
+ "./styles": {
60
+ "types": "./dist/styles.d.ts",
61
+ "default": "./dist/tailwind-prefixed.css"
62
+ }
63
+ },
64
+ "files": [
65
+ "dist"
66
+ ],
67
+ "dependencies": {
68
+ "@tanstack/svelte-virtual": "^3.13.0",
69
+ "@useupup/core": "3.3.0"
70
+ },
71
+ "peerDependencies": {
72
+ "svelte": "^5.0.0"
73
+ },
74
+ "devDependencies": {
75
+ "@sveltejs/package": "^2.3.0",
76
+ "@sveltejs/vite-plugin-svelte": "^6.0.0",
77
+ "@testing-library/svelte": "^5.2.0",
78
+ "@vitest/coverage-v8": "^4.1.2",
79
+ "eslint": "^10.6.0",
80
+ "jsdom": "22.1.0",
81
+ "postcss": "^8.5.2",
82
+ "postcss-cli": "^11.0.1",
83
+ "svelte": "^5.0.0",
84
+ "svelte-check": "^4.1.0",
85
+ "typescript": "^5.3.2",
86
+ "vite": "^7",
87
+ "vitest": "^4.1.2",
88
+ "@useupup/eslint-config": "0.1.0",
89
+ "@useupup/tailwind-config": "0.1.0"
90
+ },
91
+ "scripts": {
92
+ "build": "svelte-package --input src --output dist && pnpm run build:css",
93
+ "build:css": "postcss src/tailwind.css -o ./dist/tailwind-prefixed.css && node ../../scripts/emit-styles-dts.mjs",
94
+ "dev": "svelte-package --input src --output dist --watch",
95
+ "lint": "eslint . --max-warnings 0",
96
+ "test": "vitest run",
97
+ "test:coverage": "vitest run --coverage",
98
+ "test:watch": "vitest",
99
+ "typecheck": "svelte-check --tsconfig ./tsconfig.json && svelte-check --tsconfig ./tsconfig.test.json"
100
+ }
101
+ }