@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,57 @@
1
+ <script lang="ts">
2
+ import useGoogleDrive from '../composables/useGoogleDrive'
3
+ import DriveAuthFallback from './shared/DriveAuthFallback.svelte'
4
+ import DriveBrowser from './shared/DriveBrowser.svelte'
5
+
6
+ const {
7
+ user,
8
+ googleFiles: driveFiles,
9
+ handleSignOut,
10
+ token,
11
+ authCancelled,
12
+ retryAuth,
13
+ isAuthReady,
14
+ path,
15
+ setPath,
16
+ isClickLoading,
17
+ handleClick,
18
+ selectedFiles,
19
+ showLoader,
20
+ handleSubmit,
21
+ handleCancelDownload,
22
+ onSelectCurrentFolder,
23
+ error,
24
+ hasMore,
25
+ isLoadingMore,
26
+ loadMore,
27
+ } = useGoogleDrive()
28
+ </script>
29
+
30
+ {#if !$token && ($authCancelled || $isAuthReady)}
31
+ <DriveAuthFallback
32
+ providerName="Google Drive"
33
+ onRetry={retryAuth}
34
+ {error}
35
+ dataUpupSlot="google-drive-uploader"
36
+ />
37
+ {:else}
38
+ <DriveBrowser
39
+ {driveFiles}
40
+ {user}
41
+ {handleSignOut}
42
+ dataUpupSlot="google-drive-uploader"
43
+ {path}
44
+ {setPath}
45
+ {isClickLoading}
46
+ {handleClick}
47
+ {selectedFiles}
48
+ {showLoader}
49
+ {handleSubmit}
50
+ {handleCancelDownload}
51
+ {onSelectCurrentFolder}
52
+ {error}
53
+ {hasMore}
54
+ {isLoadingMore}
55
+ {loadMore}
56
+ />
57
+ {/if}
@@ -0,0 +1,19 @@
1
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
2
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
+ $$bindings?: Bindings;
4
+ } & Exports;
5
+ (internal: unknown, props: {
6
+ $$events?: Events;
7
+ $$slots?: Slots;
8
+ }): Exports & {
9
+ $set?: any;
10
+ $on?: any;
11
+ };
12
+ z_$$bindings?: Bindings;
13
+ }
14
+ declare const ClientGoogleDriveUploader: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
+ [evt: string]: CustomEvent<any>;
16
+ }, {}, {}, string>;
17
+ type ClientGoogleDriveUploader = InstanceType<typeof ClientGoogleDriveUploader>;
18
+ export default ClientGoogleDriveUploader;
19
+ //# sourceMappingURL=ClientGoogleDriveUploader.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientGoogleDriveUploader.svelte.d.ts","sourceRoot":"","sources":["../../src/components/ClientGoogleDriveUploader.svelte.ts"],"names":[],"mappings":"AA4CA,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IACtG,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAKD,QAAA,MAAM,yBAAyB;;kBAA+E,CAAC;AAC7F,KAAK,yBAAyB,GAAG,YAAY,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAClF,eAAe,yBAAyB,CAAC"}
@@ -0,0 +1,60 @@
1
+ <script lang="ts">
2
+ import { useOneDrive } from '../composables/useOneDrive'
3
+ import DriveAuthFallback from './shared/DriveAuthFallback.svelte'
4
+ import DriveBrowser from './shared/DriveBrowser.svelte'
5
+
6
+ const {
7
+ user,
8
+ oneDriveFiles: driveFiles,
9
+ signOut,
10
+ token,
11
+ isAuthenticated,
12
+ authenticate,
13
+ isLoading,
14
+ path,
15
+ setPath,
16
+ isClickLoading,
17
+ handleClick,
18
+ selectedFiles,
19
+ showLoader,
20
+ handleSubmit,
21
+ handleCancelDownload,
22
+ onSelectCurrentFolder,
23
+ error,
24
+ hasMore,
25
+ isLoadingMore,
26
+ loadMore,
27
+ } = useOneDrive()
28
+
29
+ async function handleSignOut() {
30
+ signOut()
31
+ }
32
+ </script>
33
+
34
+ {#if !$isAuthenticated && !$token && !$isLoading}
35
+ <DriveAuthFallback
36
+ providerName="OneDrive"
37
+ onRetry={authenticate}
38
+ dataUpupSlot="one-drive-uploader"
39
+ />
40
+ {:else}
41
+ <DriveBrowser
42
+ {driveFiles}
43
+ {user}
44
+ {handleSignOut}
45
+ dataUpupSlot="one-drive-uploader"
46
+ {path}
47
+ {setPath}
48
+ {isClickLoading}
49
+ {handleClick}
50
+ {selectedFiles}
51
+ {showLoader}
52
+ {handleSubmit}
53
+ {handleCancelDownload}
54
+ {onSelectCurrentFolder}
55
+ {error}
56
+ {hasMore}
57
+ {isLoadingMore}
58
+ {loadMore}
59
+ />
60
+ {/if}
@@ -0,0 +1,19 @@
1
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
2
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
+ $$bindings?: Bindings;
4
+ } & Exports;
5
+ (internal: unknown, props: {
6
+ $$events?: Events;
7
+ $$slots?: Slots;
8
+ }): Exports & {
9
+ $set?: any;
10
+ $on?: any;
11
+ };
12
+ z_$$bindings?: Bindings;
13
+ }
14
+ declare const ClientOneDriveUploader: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
+ [evt: string]: CustomEvent<any>;
16
+ }, {}, {}, string>;
17
+ type ClientOneDriveUploader = InstanceType<typeof ClientOneDriveUploader>;
18
+ export default ClientOneDriveUploader;
19
+ //# sourceMappingURL=ClientOneDriveUploader.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientOneDriveUploader.svelte.d.ts","sourceRoot":"","sources":["../../src/components/ClientOneDriveUploader.svelte.ts"],"names":[],"mappings":"AAgDA,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IACtG,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAKD,QAAA,MAAM,sBAAsB;;kBAA+E,CAAC;AAC1F,KAAK,sBAAsB,GAAG,YAAY,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC5E,eAAe,sBAAsB,CAAC"}
@@ -0,0 +1,11 @@
1
+ <script lang="ts">
2
+ // Default 'add more' glyph — renders the shared registry 'plus' icon (parity with
3
+ // React's DefaultPlusIconComponent). Forwards the consumer's class/size to the svg.
4
+ import Icon from './Icon.svelte'
5
+ let {
6
+ class: className = '',
7
+ size = undefined,
8
+ }: { class?: string; size?: number } = $props()
9
+ </script>
10
+
11
+ <Icon name="plus" class={className} {size} />
@@ -0,0 +1,8 @@
1
+ type $$ComponentProps = {
2
+ class?: string;
3
+ size?: number;
4
+ };
5
+ declare const DefaultAddMoreIcon: import("svelte").Component<$$ComponentProps, {}, "">;
6
+ type DefaultAddMoreIcon = ReturnType<typeof DefaultAddMoreIcon>;
7
+ export default DefaultAddMoreIcon;
8
+ //# sourceMappingURL=DefaultAddMoreIcon.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultAddMoreIcon.svelte.d.ts","sourceRoot":"","sources":["../../src/components/DefaultAddMoreIcon.svelte.ts"],"names":[],"mappings":"AAOC,KAAK,gBAAgB,GAAI;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAe5D,QAAA,MAAM,kBAAkB,sDAAwC,CAAC;AACjE,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAChE,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,5 @@
1
+ <script lang="ts">
2
+ import Icon from './Icon.svelte'
3
+ </script>
4
+
5
+ <Icon name="loader" class="upup-animate-spin upup-text-3xl upup-text-[#6D6D6D]" />
@@ -0,0 +1,19 @@
1
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
2
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
+ $$bindings?: Bindings;
4
+ } & Exports;
5
+ (internal: unknown, props: {
6
+ $$events?: Events;
7
+ $$slots?: Slots;
8
+ }): Exports & {
9
+ $set?: any;
10
+ $on?: any;
11
+ };
12
+ z_$$bindings?: Bindings;
13
+ }
14
+ declare const DefaultLoaderIcon: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
+ [evt: string]: CustomEvent<any>;
16
+ }, {}, {}, string>;
17
+ type DefaultLoaderIcon = InstanceType<typeof DefaultLoaderIcon>;
18
+ export default DefaultLoaderIcon;
19
+ //# sourceMappingURL=DefaultLoaderIcon.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultLoaderIcon.svelte.d.ts","sourceRoot":"","sources":["../../src/components/DefaultLoaderIcon.svelte.ts"],"names":[],"mappings":"AAaA,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IACtG,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAKD,QAAA,MAAM,iBAAiB;;kBAA+E,CAAC;AACrF,KAAK,iBAAiB,GAAG,YAAY,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAClE,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,17 @@
1
+ <script lang="ts">
2
+ import { useUploaderRuntime, useUploaderSource } from '../context/uploader-context'
3
+ import ClientDropboxUploader from './ClientDropboxUploader.svelte'
4
+ import ServerModeDriveUploader from './ServerModeDriveUploader.svelte'
5
+
6
+ const { mode } = useUploaderRuntime()
7
+ const { setActiveSource } = useUploaderSource()
8
+ </script>
9
+
10
+ {#if mode === 'server'}
11
+ <ServerModeDriveUploader
12
+ provider="dropbox"
13
+ onBack={() => setActiveSource(undefined)}
14
+ />
15
+ {:else}
16
+ <ClientDropboxUploader />
17
+ {/if}
@@ -0,0 +1,19 @@
1
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
2
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
+ $$bindings?: Bindings;
4
+ } & Exports;
5
+ (internal: unknown, props: {
6
+ $$events?: Events;
7
+ $$slots?: Slots;
8
+ }): Exports & {
9
+ $set?: any;
10
+ $on?: any;
11
+ };
12
+ z_$$bindings?: Bindings;
13
+ }
14
+ declare const DropboxUploader: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
+ [evt: string]: CustomEvent<any>;
16
+ }, {}, {}, string>;
17
+ type DropboxUploader = InstanceType<typeof DropboxUploader>;
18
+ export default DropboxUploader;
19
+ //# sourceMappingURL=DropboxUploader.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropboxUploader.svelte.d.ts","sourceRoot":"","sources":["../../src/components/DropboxUploader.svelte.ts"],"names":[],"mappings":"AAwBA,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IACtG,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAKD,QAAA,MAAM,eAAe;;kBAA+E,CAAC;AACnF,KAAK,eAAe,GAAG,YAAY,CAAC,OAAO,eAAe,CAAC,CAAC;AAC9D,eAAe,eAAe,CAAC"}
@@ -0,0 +1,3 @@
1
+ <script lang="ts"></script>
2
+
3
+ <!-- Renders nothing. Default placeholder for optional icon props. -->
@@ -0,0 +1,19 @@
1
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
2
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
+ $$bindings?: Bindings;
4
+ } & Exports;
5
+ (internal: unknown, props: {
6
+ $$events?: Events;
7
+ $$slots?: Slots;
8
+ }): Exports & {
9
+ $set?: any;
10
+ $on?: any;
11
+ };
12
+ z_$$bindings?: Bindings;
13
+ }
14
+ declare const EmptyIcon: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
+ [evt: string]: CustomEvent<any>;
16
+ }, {}, {}, string>;
17
+ type EmptyIcon = InstanceType<typeof EmptyIcon>;
18
+ export default EmptyIcon;
19
+ //# sourceMappingURL=EmptyIcon.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyIcon.svelte.d.ts","sourceRoot":"","sources":["../../src/components/EmptyIcon.svelte.ts"],"names":[],"mappings":"AASA,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IACtG,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAKD,QAAA,MAAM,SAAS;;kBAA+E,CAAC;AAC7E,KAAK,SAAS,GAAG,YAAY,CAAC,OAAO,SAAS,CAAC,CAAC;AAClD,eAAe,SAAS,CAAC"}
@@ -0,0 +1,152 @@
1
+ <script lang="ts">
2
+ import { cn, isFileRemovalLocked } from '@useupup/core/internal'
3
+ import { UploadStatus, type UploadFile, type Translations } from '@useupup/core'
4
+ import { fileGetExtension, fileGetIsImage } from '@useupup/core/internal'
5
+ import {
6
+ useUploaderFiles,
7
+ useUploaderI18n,
8
+ useUploaderOptions,
9
+ useUploaderTheme,
10
+ useUploaderUploadControls,
11
+ } from '../context/uploader-context'
12
+ import FileIcon from './FileIcon.svelte'
13
+ import ProgressBar from './shared/ProgressBar.svelte'
14
+ import FileSuccessCheck from './shared/FileSuccessCheck.svelte'
15
+
16
+ /**
17
+ * Single-file HERO preview (spec §4 state 3, states-tour-v2.html "single file").
18
+ * One visual fills the fixed-height content area with a bottom scrim caption.
19
+ * The panel is fixed-height by ruling, so the media MUST stay bounded with
20
+ * `min-h-0 flex-1 object-contain` — the repo's #1 visual trap.
21
+ */
22
+ let { file }: { file: UploadFile } = $props()
23
+
24
+ const { handleFileRemove } = useUploaderFiles()
25
+ const { translations: tr } = useUploaderI18n()
26
+ const { icons: { FileDeleteIcon } } = useUploaderOptions()
27
+ const { isDark: dark } = useUploaderTheme()
28
+ const { upload: { filesProgressMap } } = useUploaderUploadControls()
29
+
30
+ const isImage = $derived(fileGetIsImage(file.type ?? ''))
31
+ const isVideo = $derived((file.type ?? '').startsWith('video/'))
32
+ const extension = $derived(fileGetExtension(file.type ?? '', file.name))
33
+ const progress = $derived.by(() => {
34
+ const p = $filesProgressMap[file.id]
35
+ const loaded = p?.loaded ?? NaN
36
+ const total = p?.total ?? NaN
37
+ const pct = Math.floor((loaded / total) * 100)
38
+ // No progress entry ⇒ NaN; total === 0 ⇒ Infinity. Either would render
39
+ // width:NaN%/aria-valuenow=NaN in ProgressBar while an upload is active.
40
+ return Number.isFinite(pct) ? pct : 0
41
+ })
42
+
43
+ function formatFileSize(bytes: number | undefined, t: Translations): string {
44
+ if (!bytes || bytes === 0) return t.zeroBytes
45
+ const k = 1024
46
+ const sizes = [t.bytes, t.kb, t.mb, t.gb]
47
+ const i = Math.floor(Math.log(bytes) / Math.log(k))
48
+ return Math.round((bytes / Math.pow(k, i)) * 10) / 10 + ' ' + sizes[i]
49
+ }
50
+
51
+ function onRemove(e: MouseEvent) {
52
+ e.stopPropagation()
53
+ handleFileRemove(file.id)
54
+ }
55
+ </script>
56
+
57
+ <div
58
+ data-testid="upup-file-hero"
59
+ data-upup-slot="file-hero"
60
+ role="listitem"
61
+ class={cn(
62
+ 'upup-relative upup-flex upup-min-h-0 upup-flex-1 upup-flex-col upup-overflow-hidden upup-rounded-2xl upup-ring-1',
63
+ $dark
64
+ ? 'upup-bg-white/[0.03] upup-ring-white/[0.08]'
65
+ : 'upup-bg-black/[0.04] upup-ring-black/[0.06]',
66
+ )}
67
+ >
68
+ {#if isImage}
69
+ <img
70
+ src={file.url ?? ''}
71
+ alt={file.name}
72
+ class="upup-min-h-0 upup-flex-1 upup-object-contain"
73
+ />
74
+ {:else if isVideo}
75
+ <!-- preload="metadata" paints the first frame — a real thumbnail without
76
+ controls chrome. Muted + playsInline keep mobile browsers from
77
+ hijacking it into a player. -->
78
+ <video
79
+ src={file.url ?? ''}
80
+ muted
81
+ playsinline
82
+ preload="metadata"
83
+ class="upup-pointer-events-none upup-min-h-0 upup-flex-1 upup-object-contain"
84
+ ></video>
85
+ {:else}
86
+ <div
87
+ class="upup-flex upup-min-h-0 upup-flex-1 upup-items-center upup-justify-center upup-bg-gradient-to-br upup-from-[#0ea5e9]/10 upup-to-[#7c3aed]/10"
88
+ >
89
+ <FileIcon {extension} />
90
+ </div>
91
+ {/if}
92
+
93
+ {#if file.status === UploadStatus.SUCCESSFUL}
94
+ <FileSuccessCheck class="upup-absolute upup-left-3 upup-top-3 upup-z-10" />
95
+ {/if}
96
+
97
+ <!-- Delete is gone once the file has uploaded successfully — the
98
+ completion check (top-left) is the only remaining overlay mark. -->
99
+ {#if file.status !== UploadStatus.SUCCESSFUL}
100
+ <button
101
+ class={cn(
102
+ 'upup-fx-remove upup-fx-press upup-absolute upup-right-3 upup-top-3 upup-z-10',
103
+ 'upup-flex upup-h-[34px] upup-w-[34px] upup-items-center upup-justify-center',
104
+ 'upup-rounded-[9px] upup-bg-[#04080f]/40 upup-text-[#e2e8f0]',
105
+ 'hover:upup-bg-[#04080f]/65',
106
+ 'disabled:upup-cursor-not-allowed disabled:upup-opacity-50',
107
+ )}
108
+ onclick={onRemove}
109
+ type="button"
110
+ disabled={isFileRemovalLocked(progress, file.status)}
111
+ aria-label={tr.removeFile}
112
+ data-testid="upup-file-remove"
113
+ >
114
+ <FileDeleteIcon class="upup-h-5 upup-w-5" />
115
+ </button>
116
+ {/if}
117
+
118
+ <!-- Caption scrim: theme-aware (a black scrim over a light hero read as
119
+ a dark-mode leak). The progress bar lives INSIDE the scrim flow so
120
+ it can never overlap the name/size lines. -->
121
+ <div
122
+ class={cn(
123
+ 'upup-pointer-events-none upup-absolute upup-inset-x-0 upup-bottom-0 upup-bg-gradient-to-t upup-to-transparent upup-px-[18px] upup-pb-3.5 upup-pt-4',
124
+ $dark
125
+ ? 'upup-from-[#04080f]/[0.86] upup-via-[#04080f]/50'
126
+ : 'upup-from-white/[0.92] upup-via-white/60',
127
+ )}
128
+ >
129
+ <div
130
+ class={cn(
131
+ 'upup-truncate upup-text-[13px] upup-font-semibold',
132
+ $dark ? 'upup-text-[#e2e8f0]' : 'upup-text-[#1e293b]',
133
+ )}
134
+ >
135
+ {file.name}
136
+ </div>
137
+ <div
138
+ class={cn(
139
+ 'upup-mt-0.5 upup-text-[12px]',
140
+ $dark ? 'upup-text-[#94a3b8]' : 'upup-text-[#64748b]',
141
+ )}
142
+ >
143
+ {formatFileSize(file.size, tr)}
144
+ </div>
145
+ <ProgressBar
146
+ class={cn('upup-mt-2', $dark ? 'upup-text-white' : 'upup-text-[#0f172a]')}
147
+ progressBarClassName="upup-rounded"
148
+ {progress}
149
+ showValue
150
+ />
151
+ </div>
152
+ </div>
@@ -0,0 +1,8 @@
1
+ import { type UploadFile } from '@useupup/core';
2
+ type $$ComponentProps = {
3
+ file: UploadFile;
4
+ };
5
+ declare const FileHero: import("svelte").Component<$$ComponentProps, {}, "">;
6
+ type FileHero = ReturnType<typeof FileHero>;
7
+ export default FileHero;
8
+ //# sourceMappingURL=FileHero.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileHero.svelte.d.ts","sourceRoot":"","sources":["../../src/components/FileHero.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgB,KAAK,UAAU,EAAqB,MAAM,eAAe,CAAA;AAa/E,KAAK,gBAAgB,GAAI;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AA8G/C,QAAA,MAAM,QAAQ,sDAAwC,CAAC;AACvD,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC5C,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,23 @@
1
+ <script lang="ts">
2
+ import { fileTypeIconName } from '@useupup/core'
3
+ import { cn } from '@useupup/core/internal'
4
+ import { useUploaderTheme } from '../context/uploader-context'
5
+ import Icon from './Icon.svelte'
6
+
7
+ let {
8
+ extension = '',
9
+ class: className = '',
10
+ }: { extension?: string; class?: string | undefined } = $props()
11
+
12
+ const { isDark: dark } = useUploaderTheme()
13
+
14
+ const iconClass = $derived(
15
+ cn('upup-text-5xl upup-text-[#0284c7]', className, {
16
+ 'upup-text-[#38bdf8] dark:upup-text-[#38bdf8]': $dark,
17
+ }),
18
+ )
19
+ </script>
20
+
21
+ <span class="upup-inline-flex" data-testid="upup-file-icon" data-upup-slot="file-icon">
22
+ <Icon name={fileTypeIconName(extension)} class={iconClass} />
23
+ </span>
@@ -0,0 +1,8 @@
1
+ type $$ComponentProps = {
2
+ extension?: string;
3
+ class?: string | undefined;
4
+ };
5
+ declare const FileIcon: import("svelte").Component<$$ComponentProps, {}, "">;
6
+ type FileIcon = ReturnType<typeof FileIcon>;
7
+ export default FileIcon;
8
+ //# sourceMappingURL=FileIcon.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileIcon.svelte.d.ts","sourceRoot":"","sources":["../../src/components/FileIcon.svelte.ts"],"names":[],"mappings":"AAQC,KAAK,gBAAgB,GAAI;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AA2B7E,QAAA,MAAM,QAAQ,sDAAwC,CAAC;AACvD,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC5C,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,95 @@
1
+ <script lang="ts">
2
+ import type { UploadFile } from '@useupup/core'
3
+ import { cn } from '@useupup/core/internal'
4
+ import {
5
+ useUploaderFiles,
6
+ useUploaderOptions,
7
+ useUploaderRuntime,
8
+ useUploaderTheme,
9
+ useUploaderView,
10
+ } from '../context/uploader-context'
11
+ import FilePreview from './FilePreview.svelte'
12
+ import FilePreviewPortal from './FilePreviewPortal.svelte'
13
+ import FileRow from './FileRow.svelte'
14
+
15
+ let {
16
+ file,
17
+ index = 0,
18
+ forcedList = false,
19
+ }: {
20
+ file: UploadFile
21
+ /** Position in the sorted list — drives the entrance stagger. */
22
+ index?: number
23
+ /** True when the panel forces the row list (tiles don't fit one row). */
24
+ forcedList?: boolean
25
+ } = $props()
26
+
27
+ const { core } = useUploaderRuntime()
28
+ const { files, leavingFileIds } = useUploaderFiles()
29
+ const { viewMode } = useUploaderView()
30
+ const { onFileClick } = useUploaderOptions()
31
+ const { slotOverrides: slotClasses } = useUploaderTheme()
32
+
33
+ let showPreviewPortal = $state(false)
34
+ let canPreview = $state(false)
35
+
36
+ const leaving = $derived($leavingFileIds.has(file.id))
37
+
38
+ function openPreviewPortal() {
39
+ showPreviewPortal = true
40
+ core?.emit('file-preview-open', { fileId: file.id, fileName: file.name })
41
+ }
42
+
43
+ function closePreviewPortal() {
44
+ showPreviewPortal = false
45
+ core?.emit('file-preview-close', { fileId: file.id, fileName: file.name })
46
+ }
47
+
48
+ function onStopPropagation(e: MouseEvent) {
49
+ e.stopPropagation()
50
+ }
51
+ </script>
52
+
53
+ <div
54
+ data-testid="upup-file-item"
55
+ data-upup-slot="file-item"
56
+ role="listitem"
57
+ class={cn(
58
+ 'upup-animate-fx-enter',
59
+ 'upup-relative upup-flex upup-flex-1 upup-flex-col upup-items-start upup-gap-1 upup-bg-transparent',
60
+ leaving && 'upup-animate-fx-exit upup-overflow-hidden',
61
+ {
62
+ [$slotClasses.fileItemMultiple ?? '']: !!$slotClasses.fileItemMultiple && $files.size > 1,
63
+ [$slotClasses.fileItemSingle ?? '']: !!$slotClasses.fileItemSingle && $files.size === 1,
64
+ },
65
+ )}
66
+ style={leaving ? undefined : `animation-delay: ${Math.min(index, 8) * 40}ms`}
67
+ >
68
+ {#if $viewMode === 'list' || forcedList}
69
+ <FileRow {file} {index} />
70
+ {:else}
71
+ <FilePreview
72
+ fileName={file.name}
73
+ fileType={file.type ?? ''}
74
+ fileId={file.id}
75
+ fileUrl={file.url ?? ''}
76
+ fileSize={file.size}
77
+ {index}
78
+ {canPreview}
79
+ onRequestPreview={openPreviewPortal}
80
+ onUpdateCanPreview={(val) => (canPreview = val)}
81
+ onclick={() => onFileClick(file)}
82
+ />
83
+
84
+ {#if canPreview && showPreviewPortal}
85
+ <FilePreviewPortal
86
+ fileType={file.type ?? ''}
87
+ fileUrl={file.url ?? ''}
88
+ fileName={file.name}
89
+ fileSize={file.size}
90
+ onClose={closePreviewPortal}
91
+ {onStopPropagation}
92
+ />
93
+ {/if}
94
+ {/if}
95
+ </div>
@@ -0,0 +1,12 @@
1
+ import type { UploadFile } from '@useupup/core';
2
+ type $$ComponentProps = {
3
+ file: UploadFile;
4
+ /** Position in the sorted list — drives the entrance stagger. */
5
+ index?: number;
6
+ /** True when the panel forces the row list (tiles don't fit one row). */
7
+ forcedList?: boolean;
8
+ };
9
+ declare const FileItem: import("svelte").Component<$$ComponentProps, {}, "">;
10
+ type FileItem = ReturnType<typeof FileItem>;
11
+ export default FileItem;
12
+ //# sourceMappingURL=FileItem.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileItem.svelte.d.ts","sourceRoot":"","sources":["../../src/components/FileItem.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAa9C,KAAK,gBAAgB,GAAI;IACtB,IAAI,EAAE,UAAU,CAAA;IAChB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,yEAAyE;IACzE,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAC;AA+DJ,QAAA,MAAM,QAAQ,sDAAwC,CAAC;AACvD,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC5C,eAAe,QAAQ,CAAC"}