@useupup/vue 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 (175) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +67 -0
  3. package/dist/AudioUploader-6ZMGQ3GT.cjs +376 -0
  4. package/dist/AudioUploader-6ZMGQ3GT.cjs.map +1 -0
  5. package/dist/AudioUploader-IEWPI3TS.js +376 -0
  6. package/dist/AudioUploader-IEWPI3TS.js.map +1 -0
  7. package/dist/BoxUploader-S6CGJLO7.cjs +214 -0
  8. package/dist/BoxUploader-S6CGJLO7.cjs.map +1 -0
  9. package/dist/BoxUploader-TIDCYWMC.js +214 -0
  10. package/dist/BoxUploader-TIDCYWMC.js.map +1 -0
  11. package/dist/CameraUploader-575RARRY.js +258 -0
  12. package/dist/CameraUploader-575RARRY.js.map +1 -0
  13. package/dist/CameraUploader-LBIVBECB.cjs +258 -0
  14. package/dist/CameraUploader-LBIVBECB.cjs.map +1 -0
  15. package/dist/DropboxUploader-HTGDBDTB.cjs +216 -0
  16. package/dist/DropboxUploader-HTGDBDTB.cjs.map +1 -0
  17. package/dist/DropboxUploader-M2LY2Q32.js +216 -0
  18. package/dist/DropboxUploader-M2LY2Q32.js.map +1 -0
  19. package/dist/GoogleDriveUploader-R3WJYLW7.cjs +220 -0
  20. package/dist/GoogleDriveUploader-R3WJYLW7.cjs.map +1 -0
  21. package/dist/GoogleDriveUploader-SAY4C2QY.js +220 -0
  22. package/dist/GoogleDriveUploader-SAY4C2QY.js.map +1 -0
  23. package/dist/OneDriveUploader-EDB3RJA4.js +219 -0
  24. package/dist/OneDriveUploader-EDB3RJA4.js.map +1 -0
  25. package/dist/OneDriveUploader-WYALTOCQ.cjs +219 -0
  26. package/dist/OneDriveUploader-WYALTOCQ.cjs.map +1 -0
  27. package/dist/ScreenCaptureUploader-F65CM6OA.js +334 -0
  28. package/dist/ScreenCaptureUploader-F65CM6OA.js.map +1 -0
  29. package/dist/ScreenCaptureUploader-TZ74W7WQ.cjs +334 -0
  30. package/dist/ScreenCaptureUploader-TZ74W7WQ.cjs.map +1 -0
  31. package/dist/UrlUploader-PXEGUBQ4.js +143 -0
  32. package/dist/UrlUploader-PXEGUBQ4.js.map +1 -0
  33. package/dist/UrlUploader-TLYGV433.cjs +143 -0
  34. package/dist/UrlUploader-TLYGV433.cjs.map +1 -0
  35. package/dist/assets/logos.d.ts +5 -0
  36. package/dist/assets/logos.d.ts.map +1 -0
  37. package/dist/chunk-D32QOALR.cjs +1083 -0
  38. package/dist/chunk-D32QOALR.cjs.map +1 -0
  39. package/dist/chunk-GG4ABGXB.cjs +62 -0
  40. package/dist/chunk-GG4ABGXB.cjs.map +1 -0
  41. package/dist/chunk-GVB7IFRP.cjs +0 -0
  42. package/dist/chunk-GVB7IFRP.cjs.map +1 -0
  43. package/dist/chunk-IXLKUMV2.cjs +55 -0
  44. package/dist/chunk-IXLKUMV2.cjs.map +1 -0
  45. package/dist/chunk-M6AHIQ3M.js +62 -0
  46. package/dist/chunk-M6AHIQ3M.js.map +1 -0
  47. package/dist/chunk-PPPFIWFQ.js +1083 -0
  48. package/dist/chunk-PPPFIWFQ.js.map +1 -0
  49. package/dist/chunk-RZ7RTSRZ.js +55 -0
  50. package/dist/chunk-RZ7RTSRZ.js.map +1 -0
  51. package/dist/chunk-X6FZTCNT.js +0 -0
  52. package/dist/chunk-X6FZTCNT.js.map +1 -0
  53. package/dist/components/AudioUploader.vue.d.ts +3 -0
  54. package/dist/components/AudioUploader.vue.d.ts.map +1 -0
  55. package/dist/components/AudioWaveform.vue.d.ts +16 -0
  56. package/dist/components/AudioWaveform.vue.d.ts.map +1 -0
  57. package/dist/components/BoxUploader.vue.d.ts +3 -0
  58. package/dist/components/BoxUploader.vue.d.ts.map +1 -0
  59. package/dist/components/CameraUploader.vue.d.ts +3 -0
  60. package/dist/components/CameraUploader.vue.d.ts.map +1 -0
  61. package/dist/components/ClientBoxUploader.vue.d.ts +3 -0
  62. package/dist/components/ClientBoxUploader.vue.d.ts.map +1 -0
  63. package/dist/components/ClientDropboxUploader.vue.d.ts +3 -0
  64. package/dist/components/ClientDropboxUploader.vue.d.ts.map +1 -0
  65. package/dist/components/ClientGoogleDriveUploader.vue.d.ts +3 -0
  66. package/dist/components/ClientGoogleDriveUploader.vue.d.ts.map +1 -0
  67. package/dist/components/ClientOneDriveUploader.vue.d.ts +3 -0
  68. package/dist/components/ClientOneDriveUploader.vue.d.ts.map +1 -0
  69. package/dist/components/DefaultLoaderIcon.vue.d.ts +3 -0
  70. package/dist/components/DefaultLoaderIcon.vue.d.ts.map +1 -0
  71. package/dist/components/DropboxUploader.vue.d.ts +3 -0
  72. package/dist/components/DropboxUploader.vue.d.ts.map +1 -0
  73. package/dist/components/FileHero.vue.d.ts +13 -0
  74. package/dist/components/FileHero.vue.d.ts.map +1 -0
  75. package/dist/components/FileIcon.vue.d.ts +9 -0
  76. package/dist/components/FileIcon.vue.d.ts.map +1 -0
  77. package/dist/components/FileItem.vue.d.ts +14 -0
  78. package/dist/components/FileItem.vue.d.ts.map +1 -0
  79. package/dist/components/FileList.vue.d.ts +3 -0
  80. package/dist/components/FileList.vue.d.ts.map +1 -0
  81. package/dist/components/FilePreview.vue.d.ts +22 -0
  82. package/dist/components/FilePreview.vue.d.ts.map +1 -0
  83. package/dist/components/FilePreviewPortal.vue.d.ts +15 -0
  84. package/dist/components/FilePreviewPortal.vue.d.ts.map +1 -0
  85. package/dist/components/FilePreviewThumbnail.vue.d.ts +19 -0
  86. package/dist/components/FilePreviewThumbnail.vue.d.ts.map +1 -0
  87. package/dist/components/FileRow.vue.d.ts +17 -0
  88. package/dist/components/FileRow.vue.d.ts.map +1 -0
  89. package/dist/components/GoogleDriveUploader.vue.d.ts +3 -0
  90. package/dist/components/GoogleDriveUploader.vue.d.ts.map +1 -0
  91. package/dist/components/Icon.d.ts +36 -0
  92. package/dist/components/Icon.d.ts.map +1 -0
  93. package/dist/components/Icons.d.ts +10 -0
  94. package/dist/components/Icons.d.ts.map +1 -0
  95. package/dist/components/ImageEditorStub.vue.d.ts +3 -0
  96. package/dist/components/ImageEditorStub.vue.d.ts.map +1 -0
  97. package/dist/components/OneDriveUploader.vue.d.ts +3 -0
  98. package/dist/components/OneDriveUploader.vue.d.ts.map +1 -0
  99. package/dist/components/ScreenCaptureUploader.vue.d.ts +3 -0
  100. package/dist/components/ScreenCaptureUploader.vue.d.ts.map +1 -0
  101. package/dist/components/ServerModeDriveUploader.vue.d.ts +9 -0
  102. package/dist/components/ServerModeDriveUploader.vue.d.ts.map +1 -0
  103. package/dist/components/SourceSelector.vue.d.ts +3 -0
  104. package/dist/components/SourceSelector.vue.d.ts.map +1 -0
  105. package/dist/components/SourceView.vue.d.ts +3 -0
  106. package/dist/components/SourceView.vue.d.ts.map +1 -0
  107. package/dist/components/UploaderPanel.vue.d.ts +3 -0
  108. package/dist/components/UploaderPanel.vue.d.ts.map +1 -0
  109. package/dist/components/UrlUploader.vue.d.ts +3 -0
  110. package/dist/components/UrlUploader.vue.d.ts.map +1 -0
  111. package/dist/components/shared/DriveAuthFallback.vue.d.ts +12 -0
  112. package/dist/components/shared/DriveAuthFallback.vue.d.ts.map +1 -0
  113. package/dist/components/shared/DriveBrowser.vue.d.ts +28 -0
  114. package/dist/components/shared/DriveBrowser.vue.d.ts.map +1 -0
  115. package/dist/components/shared/DriveBrowserHeader.vue.d.ts +13 -0
  116. package/dist/components/shared/DriveBrowserHeader.vue.d.ts.map +1 -0
  117. package/dist/components/shared/DriveBrowserIcon.vue.d.ts +7 -0
  118. package/dist/components/shared/DriveBrowserIcon.vue.d.ts.map +1 -0
  119. package/dist/components/shared/DriveBrowserItem.vue.d.ts +9 -0
  120. package/dist/components/shared/DriveBrowserItem.vue.d.ts.map +1 -0
  121. package/dist/components/shared/FileSuccessCheck.vue.d.ts +20 -0
  122. package/dist/components/shared/FileSuccessCheck.vue.d.ts.map +1 -0
  123. package/dist/components/shared/ProgressBar.vue.d.ts +11 -0
  124. package/dist/components/shared/ProgressBar.vue.d.ts.map +1 -0
  125. package/dist/components/shared/SourceViewContainer.vue.d.ts +18 -0
  126. package/dist/components/shared/SourceViewContainer.vue.d.ts.map +1 -0
  127. package/dist/components/shared/UploaderHeader.vue.d.ts +15 -0
  128. package/dist/components/shared/UploaderHeader.vue.d.ts.map +1 -0
  129. package/dist/composables/use-tiles-per-row.d.ts +10 -0
  130. package/dist/composables/use-tiles-per-row.d.ts.map +1 -0
  131. package/dist/composables/useBox.d.ts +28 -0
  132. package/dist/composables/useBox.d.ts.map +1 -0
  133. package/dist/composables/useCameraUploader.d.ts +25 -0
  134. package/dist/composables/useCameraUploader.d.ts.map +1 -0
  135. package/dist/composables/useDropbox.d.ts +28 -0
  136. package/dist/composables/useDropbox.d.ts.map +1 -0
  137. package/dist/composables/useFetchFileByUrl.d.ts +8 -0
  138. package/dist/composables/useFetchFileByUrl.d.ts.map +1 -0
  139. package/dist/composables/useGoogleDrive.d.ts +28 -0
  140. package/dist/composables/useGoogleDrive.d.ts.map +1 -0
  141. package/dist/composables/useOneDrive.d.ts +29 -0
  142. package/dist/composables/useOneDrive.d.ts.map +1 -0
  143. package/dist/composables/useSSEProcessing.d.ts +19 -0
  144. package/dist/composables/useSSEProcessing.d.ts.map +1 -0
  145. package/dist/composables/useServerModeDrive.d.ts +17 -0
  146. package/dist/composables/useServerModeDrive.d.ts.map +1 -0
  147. package/dist/composables/useSourceSelector.d.ts +13 -0
  148. package/dist/composables/useSourceSelector.d.ts.map +1 -0
  149. package/dist/composables/useUploaderController.d.ts +4 -0
  150. package/dist/composables/useUploaderController.d.ts.map +1 -0
  151. package/dist/composables/useUploaderPanel.d.ts +13 -0
  152. package/dist/composables/useUploaderPanel.d.ts.map +1 -0
  153. package/dist/context/source-view-header-extra.d.ts +4 -0
  154. package/dist/context/source-view-header-extra.d.ts.map +1 -0
  155. package/dist/context/uploader-context.d.ts +95 -0
  156. package/dist/context/uploader-context.d.ts.map +1 -0
  157. package/dist/index.cjs +4405 -0
  158. package/dist/index.cjs.map +1 -0
  159. package/dist/index.d.ts +9 -0
  160. package/dist/index.d.ts.map +1 -0
  161. package/dist/index.js +4405 -0
  162. package/dist/index.js.map +1 -0
  163. package/dist/lib/constants.d.ts +11 -0
  164. package/dist/lib/constants.d.ts.map +1 -0
  165. package/dist/lib/view-mode.d.ts +24 -0
  166. package/dist/lib/view-mode.d.ts.map +1 -0
  167. package/dist/shared/types.d.ts +15 -0
  168. package/dist/shared/types.d.ts.map +1 -0
  169. package/dist/styles.d.ts +4 -0
  170. package/dist/tailwind-prefixed.css +2508 -0
  171. package/dist/upup-uploader.vue.d.ts +18 -0
  172. package/dist/upup-uploader.vue.d.ts.map +1 -0
  173. package/dist/use-upup-upload.d.ts +38 -0
  174. package/dist/use-upup-upload.d.ts.map +1 -0
  175. package/package.json +100 -0
@@ -0,0 +1,1083 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+ var _chunkIXLKUMV2cjs = require('./chunk-IXLKUMV2.cjs');
5
+
6
+
7
+ var _chunkGG4ABGXBcjs = require('./chunk-GG4ABGXB.cjs');
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+ var _chunkGVB7IFRPcjs = require('./chunk-GVB7IFRP.cjs');
16
+
17
+ // src/components/ServerModeDriveUploader.vue
18
+ var _vue = require('vue');
19
+
20
+
21
+ // src/composables/useServerModeDrive.ts
22
+
23
+
24
+
25
+
26
+
27
+
28
+ var _internal = require('@useupup/core/internal');
29
+ function useServerModeDrive(provider) {
30
+ const { serverUrl } = _chunkGVB7IFRPcjs.useUploaderRuntime.call(void 0, );
31
+ const controller = new (0, _internal.ServerModeDriveController)({
32
+ provider,
33
+ serverUrl: () => serverUrl
34
+ });
35
+ const snap = _vue.shallowRef.call(void 0, controller.getSnapshot());
36
+ let unsub = null;
37
+ _vue.onMounted.call(void 0, () => {
38
+ unsub = controller.subscribe(() => {
39
+ snap.value = controller.getSnapshot();
40
+ });
41
+ controller.init();
42
+ });
43
+ _vue.onUnmounted.call(void 0, () => {
44
+ controller.destroy();
45
+ unsub == null ? void 0 : unsub();
46
+ });
47
+ return {
48
+ state: _vue.computed.call(void 0, () => snap.value.state),
49
+ folderId: _vue.computed.call(void 0, () => snap.value.folderId),
50
+ setFolderId(id) {
51
+ controller.setFolderId(id);
52
+ void controller.refresh();
53
+ },
54
+ search: _vue.computed.call(void 0, () => snap.value.search),
55
+ setSearch(s) {
56
+ controller.setSearch(s);
57
+ void controller.refresh();
58
+ },
59
+ refresh: (opts) => controller.refresh(opts),
60
+ transfer: (file) => controller.transfer(file),
61
+ startAuth: () => {
62
+ controller.startAuth();
63
+ }
64
+ };
65
+ }
66
+
67
+ // src/components/shared/DriveAuthFallback.vue
68
+
69
+ var _core = require('@useupup/core');
70
+
71
+
72
+ var _sfc_main = /* @__PURE__ */ _vue.defineComponent.call(void 0, {
73
+ __name: "DriveAuthFallback",
74
+ props: {
75
+ providerName: {
76
+ type: String,
77
+ required: true
78
+ },
79
+ onRetry: {
80
+ type: Function,
81
+ required: true
82
+ },
83
+ error: {
84
+ type: null,
85
+ required: false
86
+ },
87
+ dataUpupSlot: {
88
+ type: String,
89
+ required: false,
90
+ default: "drive-auth-fallback"
91
+ }
92
+ },
93
+ setup(__props, { expose: __expose }) {
94
+ __expose();
95
+ const props = __props;
96
+ const { isDark: dark, slotOverrides: slotClasses } = _chunkGVB7IFRPcjs.useUploaderTheme.call(void 0, );
97
+ const { translations: tr } = _chunkGVB7IFRPcjs.useUploaderI18n.call(void 0, );
98
+ const __returned__ = {
99
+ props,
100
+ dark,
101
+ slotClasses,
102
+ tr,
103
+ get t() {
104
+ return _core.formatUiMessage;
105
+ },
106
+ get cn() {
107
+ return _internal.cn;
108
+ },
109
+ SourceViewContainer: _chunkGG4ABGXBcjs.SourceViewContainer_default
110
+ };
111
+ Object.defineProperty(__returned__, "__isScriptSetup", {
112
+ enumerable: false,
113
+ value: true
114
+ });
115
+ return __returned__;
116
+ }
117
+ });
118
+ var _hoisted_1 = { class: "upup-flex upup-h-full upup-w-full upup-flex-col upup-items-center upup-justify-center upup-gap-4 upup-p-6 upup-text-center" };
119
+ var _hoisted_2 = {
120
+ key: 0,
121
+ "data-testid": "upup-drive-error",
122
+ "data-upup-slot": "drive-error",
123
+ role: "alert",
124
+ class: "upup-p-4 upup-text-sm upup-text-red-600 dark:upup-text-red-400"
125
+ };
126
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
127
+ return _vue.openBlock.call(void 0, ), _vue.createBlock.call(void 0, $setup["SourceViewContainer"], { "data-upup-slot": $setup.props.dataUpupSlot }, {
128
+ default: _vue.withCtx.call(void 0, () => [_vue.createElementVNode.call(void 0, "div", _hoisted_1, [
129
+ !!$setup.props.error ? (_vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0,
130
+ "p",
131
+ _hoisted_2,
132
+ _vue.toDisplayString.call(void 0, $setup.t($setup.tr.driveLoadError, { message: $setup.props.error.message })),
133
+ 1
134
+ /* TEXT */
135
+ )) : _vue.createCommentVNode.call(void 0, "v-if", true),
136
+ _vue.createElementVNode.call(void 0,
137
+ "p",
138
+ { class: _vue.normalizeClass.call(void 0, $setup.cn("upup-text-sm upup-text-[#333]", { "upup-text-[#FAFAFA] dark:upup-text-[#FAFAFA]": $setup.dark }, $setup.slotClasses.sourceView)) },
139
+ _vue.toDisplayString.call(void 0, $setup.t($setup.tr.authenticatePrompt, { provider: $setup.props.providerName })),
140
+ 3
141
+ /* TEXT, CLASS */
142
+ ),
143
+ _vue.createElementVNode.call(void 0,
144
+ "button",
145
+ {
146
+ type: "button",
147
+ class: _vue.normalizeClass.call(void 0, $setup.cn("upup-rounded-md upup-bg-[#0ea5e9] upup-px-4 upup-py-2 upup-text-sm upup-font-medium upup-text-white upup-transition-all upup-duration-300 hover:upup-bg-[#0284c7]", { "upup-bg-[#38bdf8] hover:upup-bg-[#0ea5e9] dark:upup-bg-[#38bdf8] dark:hover:upup-bg-[#0ea5e9]": $setup.dark })),
148
+ onClick: _cache[0] || (_cache[0] = (...args) => $setup.props.onRetry && $setup.props.onRetry(...args))
149
+ },
150
+ _vue.toDisplayString.call(void 0, $setup.t($setup.tr.signInWith, { provider: $setup.props.providerName })),
151
+ 3
152
+ /* TEXT, CLASS */
153
+ )
154
+ ])]),
155
+ _: 1
156
+ }, 8, ["data-upup-slot"]);
157
+ }
158
+ var DriveAuthFallback_default = /* @__PURE__ */ _chunkGVB7IFRPcjs.export_helper_default.call(void 0, _sfc_main, [["render", _sfc_render], ["__file", "C:\\Users\\amind\\OneDrive\\Desktop\\Projects\\INTERNAL\\upup\\packages\\vue\\src\\components\\shared\\DriveAuthFallback.vue"]]);
159
+
160
+ // src/components/ServerModeDriveUploader.vue
161
+
162
+
163
+
164
+ var _sfc_main2 = /* @__PURE__ */ _vue.defineComponent.call(void 0, {
165
+ __name: "ServerModeDriveUploader",
166
+ props: {
167
+ provider: {
168
+ type: String,
169
+ required: true
170
+ },
171
+ onBack: {
172
+ type: Function,
173
+ required: false
174
+ },
175
+ dataUpupSlot: {
176
+ type: null,
177
+ required: false
178
+ }
179
+ },
180
+ setup(__props, { expose: __expose }) {
181
+ __expose();
182
+ const props = __props;
183
+ const PROVIDER_LABEL = {
184
+ "google-drive": "Google Drive",
185
+ "one-drive": "OneDrive",
186
+ "dropbox": "Dropbox",
187
+ "box": "Box"
188
+ };
189
+ const resolvedSlot = _vue.computed.call(void 0, () => {
190
+ var _a;
191
+ return (_a = props.dataUpupSlot) != null ? _a : `drive-browser-${props.provider}`;
192
+ });
193
+ const { icons } = _chunkGVB7IFRPcjs.useUploaderOptions.call(void 0, );
194
+ const { isDark: dark } = _chunkGVB7IFRPcjs.useUploaderTheme.call(void 0, );
195
+ const { translator } = _chunkGVB7IFRPcjs.useUploaderI18n.call(void 0, );
196
+ const { state, search, setSearch, refresh, transfer, startAuth } = useServerModeDrive(props.provider);
197
+ const errorText = _vue.computed.call(void 0, () => {
198
+ if (state.value.status !== "error") return "";
199
+ return state.value.code && translator ? translator(`errors.${_core.errorCodeToMessageKey.call(void 0, state.value.code)}`, { code: state.value.code }) : state.value.message;
200
+ });
201
+ const selected = _vue.ref.call(void 0, /* @__PURE__ */ new Set());
202
+ const transferring = _vue.ref.call(void 0, false);
203
+ const isLoading = _vue.computed.call(void 0, () => state.value.status === "loading" || state.value.status === "idle");
204
+ const files = _vue.computed.call(void 0, () => state.value.status === "ready" ? state.value.files : []);
205
+ function toggle(id) {
206
+ const next = new Set(selected.value);
207
+ if (next.has(id)) next.delete(id);
208
+ else next.add(id);
209
+ selected.value = next;
210
+ }
211
+ async function handleTransfer() {
212
+ var _a;
213
+ transferring.value = true;
214
+ try {
215
+ for (const file of files.value.filter((f) => selected.value.has(f.id))) {
216
+ const result = await transfer(file);
217
+ if (result.status === "reauth") {
218
+ startAuth();
219
+ return;
220
+ }
221
+ }
222
+ selected.value = /* @__PURE__ */ new Set();
223
+ (_a = props.onBack) == null ? void 0 : _a.call(props);
224
+ } finally {
225
+ transferring.value = false;
226
+ }
227
+ }
228
+ function formatBytes(bytes) {
229
+ if (bytes < 1024) return `${bytes} B`;
230
+ if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
231
+ if (bytes < 1024 * 1024 * 1024) return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
232
+ return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;
233
+ }
234
+ const __returned__ = {
235
+ props,
236
+ PROVIDER_LABEL,
237
+ resolvedSlot,
238
+ icons,
239
+ dark,
240
+ translator,
241
+ state,
242
+ search,
243
+ setSearch,
244
+ refresh,
245
+ transfer,
246
+ startAuth,
247
+ errorText,
248
+ selected,
249
+ transferring,
250
+ isLoading,
251
+ files,
252
+ toggle,
253
+ handleTransfer,
254
+ formatBytes,
255
+ SourceViewContainer: _chunkGG4ABGXBcjs.SourceViewContainer_default,
256
+ DriveAuthFallback: DriveAuthFallback_default,
257
+ get cn() {
258
+ return _internal.cn;
259
+ }
260
+ };
261
+ Object.defineProperty(__returned__, "__isScriptSetup", {
262
+ enumerable: false,
263
+ value: true
264
+ });
265
+ return __returned__;
266
+ }
267
+ });
268
+ var _hoisted_12 = {
269
+ key: 1,
270
+ "data-testid": "upup-server-drive-browser",
271
+ class: "upup-grid upup-h-full upup-w-full upup-grid-rows-[auto,1fr,auto] upup-overflow-auto"
272
+ };
273
+ var _hoisted_22 = { class: "upup-text-sm upup-font-medium" };
274
+ var _hoisted_3 = ["value"];
275
+ var _hoisted_4 = { class: "upup-overflow-auto upup-p-2" };
276
+ var _hoisted_5 = ["data-selected", "onClick"];
277
+ var _hoisted_6 = {
278
+ class: "upup-flex upup-h-[30px] upup-w-[30px] upup-flex-none upup-items-center upup-justify-center upup-rounded-[8px] upup-bg-white/[0.05]",
279
+ "aria-hidden": "true"
280
+ };
281
+ var _hoisted_7 = {
282
+ key: 0,
283
+ viewBox: "0 0 24 24",
284
+ width: "17",
285
+ height: "17",
286
+ fill: "none",
287
+ stroke: "#38bdf8",
288
+ "stroke-width": "1.7",
289
+ "stroke-linecap": "round",
290
+ "stroke-linejoin": "round"
291
+ };
292
+ var _hoisted_8 = ["stroke"];
293
+ var _hoisted_9 = { class: "upup-flex-1 upup-truncate" };
294
+ var _hoisted_10 = {
295
+ key: 0,
296
+ class: "upup-text-xs upup-opacity-60"
297
+ };
298
+ var _hoisted_11 = ["disabled"];
299
+ function _sfc_render2(_ctx, _cache, $props, $setup, $data, $options) {
300
+ return $setup.state.status === "reauth" ? (_vue.openBlock.call(void 0, ), _vue.createBlock.call(void 0, $setup["DriveAuthFallback"], {
301
+ key: 0,
302
+ "provider-name": $setup.PROVIDER_LABEL[$setup.props.provider],
303
+ "on-retry": $setup.startAuth
304
+ }, null, 8, ["provider-name", "on-retry"])) : (_vue.openBlock.call(void 0, ), _vue.createBlock.call(void 0, $setup["SourceViewContainer"], {
305
+ key: 1,
306
+ "is-loading": $setup.isLoading,
307
+ "data-upup-slot": $setup.resolvedSlot
308
+ }, {
309
+ default: _vue.withCtx.call(void 0, () => [$setup.isLoading ? (_vue.openBlock.call(void 0, ), _vue.createBlock.call(void 0, _vue.resolveDynamicComponent.call(void 0, $setup.icons.LoaderIcon), { key: 0 })) : (_vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0, "div", _hoisted_12, [
310
+ _vue.createElementVNode.call(void 0,
311
+ "div",
312
+ {
313
+ class: _vue.normalizeClass.call(void 0, $setup.cn("upup-flex upup-items-center upup-gap-2 upup-border-b upup-px-3 upup-py-2.5", $setup.dark ? "upup-border-white/[0.06] upup-text-[#e2e8f0]" : "upup-border-black/[0.06] upup-text-gray-800")),
314
+ "data-upup-slot": "drive-browser-header"
315
+ },
316
+ [_vue.createElementVNode.call(void 0,
317
+ "span",
318
+ _hoisted_22,
319
+ _vue.toDisplayString.call(void 0, $setup.PROVIDER_LABEL[$setup.props.provider]),
320
+ 1
321
+ /* TEXT */
322
+ ), _vue.createElementVNode.call(void 0, "input", {
323
+ type: "search",
324
+ name: "upup-drive-search",
325
+ "aria-label": "Search",
326
+ value: $setup.search,
327
+ onInput: _cache[0] || (_cache[0] = ($event) => $setup.setSearch($event.target.value)),
328
+ onKeydown: _cache[1] || (_cache[1] = _vue.withKeys.call(void 0, ($event) => $setup.refresh({ search: $event.target.value }), ["enter"])),
329
+ placeholder: "Search\u2026",
330
+ class: _vue.normalizeClass.call(void 0, $setup.cn("upup-ml-auto upup-rounded upup-border upup-px-2 upup-py-1 upup-text-xs", $setup.dark ? "upup-border-gray-700 upup-bg-gray-800 upup-text-gray-100" : "upup-border-gray-300 upup-bg-white"))
331
+ }, null, 42, _hoisted_3)],
332
+ 2
333
+ /* CLASS */
334
+ ),
335
+ _vue.createElementVNode.call(void 0, "div", _hoisted_4, [$setup.state.status === "error" ? (_vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0,
336
+ "p",
337
+ {
338
+ key: 0,
339
+ "data-testid": "upup-drive-error",
340
+ "data-upup-slot": "drive-error",
341
+ role: "alert",
342
+ class: _vue.normalizeClass.call(void 0, $setup.cn("upup-p-4 upup-text-sm", $setup.dark ? "upup-text-red-400" : "upup-text-red-600"))
343
+ },
344
+ _vue.toDisplayString.call(void 0, $setup.errorText),
345
+ 3
346
+ /* TEXT, CLASS */
347
+ )) : _vue.createCommentVNode.call(void 0, "v-if", true), (_vue.openBlock.call(void 0, true), _vue.createElementBlock.call(void 0,
348
+ _vue.Fragment,
349
+ null,
350
+ _vue.renderList.call(void 0, $setup.files, (file) => {
351
+ return _vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0, "button", {
352
+ key: file.id,
353
+ type: "button",
354
+ "data-upup-slot": "drive-browser-item",
355
+ "data-selected": $setup.selected.has(file.id),
356
+ class: _vue.normalizeClass.call(void 0, $setup.cn("upup-fx-hover-lift upup-mb-1.5 upup-flex upup-w-full upup-items-center upup-gap-3 upup-rounded-[11px] upup-px-3 upup-py-2.5 upup-text-left upup-text-sm upup-ring-1", $setup.selected.has(file.id) ? "upup-bg-[#0ea5e9]/10 upup-ring-[#38bdf8]/35" : $setup.dark ? "upup-bg-white/[0.04] upup-text-[#e2e8f0] upup-ring-white/[0.06] hover:upup-bg-white/[0.07]" : "upup-bg-black/[0.03] upup-text-gray-800 upup-ring-black/[0.06] hover:upup-bg-black/[0.05]")),
357
+ onClick: ($event) => file.isFolder ? $setup.refresh({ folderId: file.id }) : $setup.toggle(file.id)
358
+ }, [
359
+ _vue.createElementVNode.call(void 0, "span", _hoisted_6, [file.isFolder ? (_vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0, "svg", _hoisted_7, [..._cache[4] || (_cache[4] = [_vue.createElementVNode.call(void 0,
360
+ "path",
361
+ { d: "M3 7a2 2 0 0 1 2-2h4l2 2h6a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" },
362
+ null,
363
+ -1
364
+ /* CACHED */
365
+ )])])) : (_vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0, "svg", {
366
+ key: 1,
367
+ viewBox: "0 0 24 24",
368
+ width: "17",
369
+ height: "17",
370
+ fill: "none",
371
+ stroke: $setup.dark ? "#94a3b8" : "#64748b",
372
+ "stroke-width": "1.6",
373
+ "stroke-linecap": "round",
374
+ "stroke-linejoin": "round"
375
+ }, [..._cache[5] || (_cache[5] = [_vue.createElementVNode.call(void 0,
376
+ "path",
377
+ { d: "M6 3h8l4 4v13a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z" },
378
+ null,
379
+ -1
380
+ /* CACHED */
381
+ ), _vue.createElementVNode.call(void 0,
382
+ "path",
383
+ { d: "M14 3v4h4" },
384
+ null,
385
+ -1
386
+ /* CACHED */
387
+ )])], 8, _hoisted_8))]),
388
+ _vue.createElementVNode.call(void 0,
389
+ "span",
390
+ _hoisted_9,
391
+ _vue.toDisplayString.call(void 0, file.name),
392
+ 1
393
+ /* TEXT */
394
+ ),
395
+ file.size != null && !file.isFolder ? (_vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0,
396
+ "span",
397
+ _hoisted_10,
398
+ _vue.toDisplayString.call(void 0, $setup.formatBytes(file.size)),
399
+ 1
400
+ /* TEXT */
401
+ )) : _vue.createCommentVNode.call(void 0, "v-if", true)
402
+ ], 10, _hoisted_5);
403
+ }),
404
+ 128
405
+ /* KEYED_FRAGMENT */
406
+ ))]),
407
+ _vue.createElementVNode.call(void 0,
408
+ "div",
409
+ { class: _vue.normalizeClass.call(void 0, $setup.cn("upup-flex upup-items-center upup-justify-between upup-gap-2 upup-border-t upup-p-3", $setup.dark ? "upup-border-white/[0.06]" : "upup-border-black/[0.06]")) },
410
+ [_vue.createElementVNode.call(void 0, "button", {
411
+ type: "button",
412
+ class: "upup-text-sm upup-opacity-70 hover:upup-opacity-100",
413
+ onClick: _cache[2] || (_cache[2] = ($event) => {
414
+ var _a, _b;
415
+ return (_b = (_a = $setup.props).onBack) == null ? void 0 : _b.call(_a);
416
+ })
417
+ }, " Cancel "), _vue.createElementVNode.call(void 0, "button", {
418
+ type: "button",
419
+ disabled: $setup.selected.size === 0 || $setup.transferring,
420
+ class: "upup-fx-press upup-rounded-lg upup-bg-[#0ea5e9] upup-px-3 upup-py-1.5 upup-text-sm upup-font-medium upup-text-white hover:upup-bg-[#0284c7] disabled:upup-opacity-50",
421
+ onClick: _cache[3] || (_cache[3] = ($event) => $setup.handleTransfer())
422
+ }, _vue.toDisplayString.call(void 0, $setup.transferring ? "Uploading\u2026" : `Add files${$setup.selected.size ? ` (${$setup.selected.size})` : ""}`), 9, _hoisted_11)],
423
+ 2
424
+ /* CLASS */
425
+ )
426
+ ]))]),
427
+ _: 1
428
+ }, 8, ["is-loading", "data-upup-slot"]));
429
+ }
430
+ var ServerModeDriveUploader_default = /* @__PURE__ */ _chunkGVB7IFRPcjs.export_helper_default.call(void 0, _sfc_main2, [["render", _sfc_render2], ["__file", "C:\\Users\\amind\\OneDrive\\Desktop\\Projects\\INTERNAL\\upup\\packages\\vue\\src\\components\\ServerModeDriveUploader.vue"]]);
431
+
432
+ // src/components/shared/DriveBrowser.vue
433
+
434
+
435
+
436
+
437
+
438
+
439
+ // src/components/shared/DriveBrowserHeader.vue
440
+
441
+
442
+
443
+
444
+ var _sfc_main3 = /* @__PURE__ */ _vue.defineComponent.call(void 0, {
445
+ __name: "DriveBrowserHeader",
446
+ props: {
447
+ path: {
448
+ type: Array,
449
+ required: true
450
+ },
451
+ setPath: {
452
+ type: Function,
453
+ required: true
454
+ },
455
+ handleSignOut: {
456
+ type: Function,
457
+ required: true
458
+ },
459
+ showSearch: {
460
+ type: Boolean,
461
+ required: true
462
+ },
463
+ searchTerm: {
464
+ type: String,
465
+ required: true
466
+ },
467
+ onSearch: {
468
+ type: Function,
469
+ required: true
470
+ },
471
+ user: {
472
+ type: null,
473
+ required: false
474
+ }
475
+ },
476
+ setup(__props, { expose: __expose }) {
477
+ __expose();
478
+ const props = __props;
479
+ const { setActiveSource } = _chunkGVB7IFRPcjs.useUploaderSource.call(void 0, );
480
+ const { translations: tr } = _chunkGVB7IFRPcjs.useUploaderI18n.call(void 0, );
481
+ const { isDark: dark, slotOverrides: slotClasses } = _chunkGVB7IFRPcjs.useUploaderTheme.call(void 0, );
482
+ const headerExtraHostRef = _chunkIXLKUMV2cjs.useSourceViewHeaderExtra.call(void 0, );
483
+ const headerExtraHost = _vue.computed.call(void 0, () => {
484
+ var _a;
485
+ return (_a = headerExtraHostRef == null ? void 0 : headerExtraHostRef.value) != null ? _a : null;
486
+ });
487
+ const navigated = _vue.computed.call(void 0, () => props.path.length > 1);
488
+ const currentFolder = _vue.computed.call(void 0, () => props.path[props.path.length - 1]);
489
+ const hasFilter = _vue.computed.call(void 0, () => props.searchTerm.trim().length > 0);
490
+ const searchOpen = _vue.ref.call(void 0, false);
491
+ const searchInputRef = _vue.ref.call(void 0, null);
492
+ _vue.watch.call(void 0, searchOpen, (open) => {
493
+ if (open) void _vue.nextTick.call(void 0, () => {
494
+ var _a;
495
+ return (_a = searchInputRef.value) == null ? void 0 : _a.focus();
496
+ });
497
+ });
498
+ function onLogout() {
499
+ void props.handleSignOut();
500
+ setActiveSource(void 0);
501
+ }
502
+ const __returned__ = {
503
+ props,
504
+ setActiveSource,
505
+ tr,
506
+ dark,
507
+ slotClasses,
508
+ headerExtraHostRef,
509
+ headerExtraHost,
510
+ navigated,
511
+ currentFolder,
512
+ hasFilter,
513
+ searchOpen,
514
+ searchInputRef,
515
+ onLogout,
516
+ get cn() {
517
+ return _internal.cn;
518
+ },
519
+ get Icon() {
520
+ return _chunkIXLKUMV2cjs.Icon_default;
521
+ }
522
+ };
523
+ Object.defineProperty(__returned__, "__isScriptSetup", {
524
+ enumerable: false,
525
+ value: true
526
+ });
527
+ return __returned__;
528
+ }
529
+ });
530
+ var _hoisted_13 = {
531
+ key: 0,
532
+ "data-upup-slot": "drive-browser-header"
533
+ };
534
+ var _hoisted_23 = { class: "upup-relative upup-flex upup-h-6 upup-w-6 upup-items-center upup-justify-center upup-overflow-hidden upup-rounded-full" };
535
+ var _hoisted_32 = ["alt", "src"];
536
+ var _hoisted_42 = ["aria-label"];
537
+ var _hoisted_52 = ["title"];
538
+ var _hoisted_62 = ["aria-label"];
539
+ var _hoisted_72 = [
540
+ "aria-label",
541
+ "placeholder",
542
+ "value"
543
+ ];
544
+ function _sfc_render3(_ctx, _cache, $props, $setup, $data, $options) {
545
+ var _a, _b;
546
+ return $setup.props.user ? (_vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0, "div", _hoisted_13, [
547
+ _vue.createCommentVNode.call(void 0, " Account controls live in the SourceView header row (portal), next\r\n to Back, separated by a hairline \u2014 not in their own strip. "),
548
+ $setup.headerExtraHost ? (_vue.openBlock.call(void 0, ), _vue.createBlock.call(void 0, _vue.Teleport, {
549
+ key: 0,
550
+ to: $setup.headerExtraHost
551
+ }, [
552
+ _vue.createElementVNode.call(void 0, "div", _hoisted_23, [!!$setup.props.user.picture ? (_vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0, "img", {
553
+ key: 0,
554
+ alt: $setup.props.user.name,
555
+ src: $setup.props.user.picture,
556
+ class: "upup-bg-center upup-object-cover"
557
+ }, null, 8, _hoisted_32)) : (_vue.openBlock.call(void 0, ), _vue.createBlock.call(void 0, $setup["Icon"], {
558
+ key: 1,
559
+ name: "user",
560
+ class: "upup-text-xl"
561
+ }))]),
562
+ _vue.createElementVNode.call(void 0,
563
+ "button",
564
+ {
565
+ class: _vue.normalizeClass.call(void 0, $setup.cn("upup-hover:upup-underline upup-text-xs upup-font-medium upup-text-[#0284c7]", { "upup-text-[#38bdf8] dark:upup-text-[#38bdf8]": $setup.dark }, $setup.slotClasses.driveLogoutButton)),
566
+ onClick: $setup.onLogout
567
+ },
568
+ _vue.toDisplayString.call(void 0, $setup.tr.logOut),
569
+ 3
570
+ /* TEXT, CLASS */
571
+ ),
572
+ _vue.createElementVNode.call(void 0,
573
+ "span",
574
+ {
575
+ "aria-hidden": "true",
576
+ class: _vue.normalizeClass.call(void 0, $setup.cn("upup-h-4 upup-w-px", $setup.dark ? "upup-bg-white/15" : "upup-bg-black/15"))
577
+ },
578
+ null,
579
+ 2
580
+ /* CLASS */
581
+ )
582
+ ], 8, ["to"])) : _vue.createCommentVNode.call(void 0, "v-if", true),
583
+ $setup.props.showSearch || $setup.navigated ? (_vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0,
584
+ "div",
585
+ {
586
+ key: 1,
587
+ class: _vue.normalizeClass.call(void 0, $setup.cn("upup-flex upup-items-center upup-gap-2.5 upup-px-3 upup-py-2 upup-text-xs upup-font-medium upup-text-[#333]", { "upup-text-[#FAFAFA] dark:upup-text-[#FAFAFA]": $setup.dark }, $setup.slotClasses.driveHeader))
588
+ },
589
+ [
590
+ $setup.navigated ? (_vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0, "button", {
591
+ key: 0,
592
+ type: "button",
593
+ "data-testid": "upup-drive-back",
594
+ "data-upup-slot": "drive-back",
595
+ "aria-label": $setup.tr.overlayBack,
596
+ class: _vue.normalizeClass.call(void 0, $setup.cn("upup-fx-hover-lift upup-fx-press upup-flex upup-h-7 upup-w-7 upup-shrink-0 upup-items-center upup-justify-center upup-rounded-lg", $setup.dark ? "upup-text-[#e2e8f0] hover:upup-bg-white/[0.08]" : "upup-text-[#334155] hover:upup-bg-black/[0.05]")),
597
+ onClick: _cache[0] || (_cache[0] = ($event) => $setup.props.setPath($setup.props.path.slice(0, -1)))
598
+ }, [_vue.createVNode.call(void 0, $setup["Icon"], { name: "chevron-left" })], 10, _hoisted_42)) : _vue.createCommentVNode.call(void 0, "v-if", true),
599
+ $setup.navigated && !$setup.searchOpen ? (_vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0, "span", {
600
+ key: 1,
601
+ "data-upup-slot": "drive-current-folder",
602
+ title: (_a = $setup.currentFolder) == null ? void 0 : _a.name,
603
+ class: "upup-min-w-0 upup-flex-1 upup-truncate upup-font-medium"
604
+ }, _vue.toDisplayString.call(void 0, (_b = $setup.currentFolder) == null ? void 0 : _b.name), 9, _hoisted_52)) : _vue.createCommentVNode.call(void 0, "v-if", true),
605
+ $setup.navigated && $setup.props.showSearch && !$setup.searchOpen ? (_vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0, "button", {
606
+ key: 2,
607
+ type: "button",
608
+ "data-testid": "upup-drive-search-toggle",
609
+ "data-upup-slot": "drive-search-toggle",
610
+ "aria-label": $setup.tr.search,
611
+ "aria-expanded": false,
612
+ class: _vue.normalizeClass.call(void 0, $setup.cn("upup-fx-hover-lift upup-fx-press upup-ml-auto upup-flex upup-h-7 upup-w-7 upup-shrink-0 upup-items-center upup-justify-center upup-rounded-lg", $setup.hasFilter ? "upup-text-[#0ea5e9]" : $setup.dark ? "upup-text-[#94a3b8] hover:upup-bg-white/[0.08]" : "upup-text-[#64748b] hover:upup-bg-black/[0.05]")),
613
+ onClick: _cache[1] || (_cache[1] = ($event) => $setup.searchOpen = true)
614
+ }, [_vue.createVNode.call(void 0, $setup["Icon"], { name: "search" })], 10, _hoisted_62)) : _vue.createCommentVNode.call(void 0, "v-if", true),
615
+ $setup.props.showSearch && (!$setup.navigated || $setup.searchOpen) ? (_vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0,
616
+ "div",
617
+ {
618
+ key: 3,
619
+ class: _vue.normalizeClass.call(void 0, $setup.cn("upup-relative upup-min-w-0 upup-flex-1", $setup.navigated && "upup-fx-search-expand", $setup.slotClasses.driveSearchContainer))
620
+ },
621
+ [_vue.createElementVNode.call(void 0, "input", {
622
+ ref: "searchInputRef",
623
+ type: "search",
624
+ name: "upup-drive-search",
625
+ "data-testid": "upup-drive-search-input",
626
+ "data-upup-slot": "drive-search-input",
627
+ "aria-label": $setup.tr.search,
628
+ class: _vue.normalizeClass.call(void 0, $setup.cn("upup-w-full upup-rounded-lg upup-px-3 upup-py-1.5 upup-pl-8 upup-text-xs upup-outline-none upup-ring-1 upup-transition-shadow focus:upup-ring-2 focus:upup-ring-[#38bdf8]", $setup.dark ? "upup-bg-white/[0.06] upup-text-[#e2e8f0] upup-ring-white/[0.1] placeholder:upup-text-[#64748b]" : "upup-bg-white upup-text-[#0f172a] upup-ring-black/[0.08] placeholder:upup-text-[#94a3b8]", $setup.slotClasses.driveSearchInput)),
629
+ placeholder: $setup.tr.search,
630
+ value: $setup.props.searchTerm,
631
+ onInput: _cache[2] || (_cache[2] = ($event) => $setup.props.onSearch($event.target.value)),
632
+ onKeydown: _cache[3] || (_cache[3] = _vue.withKeys.call(void 0, ($event) => $setup.searchOpen = false, ["esc"])),
633
+ onBlur: _cache[4] || (_cache[4] = () => {
634
+ if (!$setup.props.searchTerm) $setup.searchOpen = false;
635
+ })
636
+ }, null, 42, _hoisted_72), _vue.createVNode.call(void 0, $setup["Icon"], {
637
+ name: "search",
638
+ class: "upup-absolute upup-left-2.5 upup-top-1/2 upup--translate-y-1/2 upup-text-[#939393]"
639
+ })],
640
+ 2
641
+ /* CLASS */
642
+ )) : _vue.createCommentVNode.call(void 0, "v-if", true)
643
+ ],
644
+ 2
645
+ /* CLASS */
646
+ )) : _vue.createCommentVNode.call(void 0, "v-if", true)
647
+ ])) : _vue.createCommentVNode.call(void 0, "v-if", true);
648
+ }
649
+ var DriveBrowserHeader_default = /* @__PURE__ */ _chunkGVB7IFRPcjs.export_helper_default.call(void 0, _sfc_main3, [["render", _sfc_render3], ["__file", "C:\\Users\\amind\\OneDrive\\Desktop\\Projects\\INTERNAL\\upup\\packages\\vue\\src\\components\\shared\\DriveBrowserHeader.vue"]]);
650
+
651
+ // src/components/shared/DriveBrowserItem.vue
652
+
653
+
654
+
655
+
656
+ // src/components/shared/DriveBrowserIcon.vue
657
+
658
+
659
+
660
+ var _sfc_main4 = /* @__PURE__ */ _vue.defineComponent.call(void 0, {
661
+ __name: "DriveBrowserIcon",
662
+ props: { file: {
663
+ type: Object,
664
+ required: true
665
+ } },
666
+ setup(__props, { expose: __expose }) {
667
+ __expose();
668
+ const props = __props;
669
+ const { isDark: dark } = _chunkGVB7IFRPcjs.useUploaderTheme.call(void 0, );
670
+ function handleImgError(e) {
671
+ const img = e.target;
672
+ const svg = `<svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M14 3v4a1 1 0 0 0 1 1h4"></path><path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z"></path></svg>`;
673
+ img.src = `data:image/svg+xml;base64,${_internal.b64EncodeUnicode.call(void 0, svg)}`;
674
+ img.onerror = null;
675
+ }
676
+ const __returned__ = {
677
+ props,
678
+ dark,
679
+ handleImgError,
680
+ get cn() {
681
+ return _internal.cn;
682
+ },
683
+ get Icon() {
684
+ return _chunkIXLKUMV2cjs.Icon_default;
685
+ }
686
+ };
687
+ Object.defineProperty(__returned__, "__isScriptSetup", {
688
+ enumerable: false,
689
+ value: true
690
+ });
691
+ return __returned__;
692
+ }
693
+ });
694
+ var _hoisted_14 = {
695
+ key: 0,
696
+ class: "upup-flex-grow upup-text-lg"
697
+ };
698
+ var _hoisted_24 = {
699
+ key: 1,
700
+ class: "upup-flex-grow upup-text-lg"
701
+ };
702
+ var _hoisted_33 = ["src", "alt"];
703
+ function _sfc_render4(_ctx, _cache, $props, $setup, $data, $options) {
704
+ return $setup.props.file.isFolder ? (_vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0, "i", _hoisted_14, [_vue.createCommentVNode.call(void 0, " Amber filled folder in both themes \u2014 folders read\r\n unmistakably as folders. "), _vue.createVNode.call(void 0, $setup["Icon"], {
705
+ name: "folder-filled",
706
+ class: "upup-text-[#fbbf24]"
707
+ })])) : !$setup.props.file.thumbnail ? (_vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0, "i", _hoisted_24, [_vue.createVNode.call(void 0, $setup["Icon"], {
708
+ name: "file",
709
+ class: _vue.normalizeClass.call(void 0, $setup.cn({ "upup-text-[#6D6D6D] dark:upup-text-[#6D6D6D]": $setup.dark }))
710
+ }, null, 8, ["class"])])) : (_vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0, "img", {
711
+ key: 2,
712
+ src: $setup.props.file.thumbnail,
713
+ alt: $setup.props.file.name,
714
+ class: "upup-h-5 upup-w-5 upup-flex-grow upup-rounded-md upup-shadow",
715
+ onError: $setup.handleImgError
716
+ }, null, 40, _hoisted_33));
717
+ }
718
+ var DriveBrowserIcon_default = /* @__PURE__ */ _chunkGVB7IFRPcjs.export_helper_default.call(void 0, _sfc_main4, [["render", _sfc_render4], ["__file", "C:\\Users\\amind\\OneDrive\\Desktop\\Projects\\INTERNAL\\upup\\packages\\vue\\src\\components\\shared\\DriveBrowserIcon.vue"]]);
719
+
720
+ // src/components/shared/DriveBrowserItem.vue
721
+
722
+ var _sfc_main5 = /* @__PURE__ */ _vue.defineComponent.call(void 0, {
723
+ __name: "DriveBrowserItem",
724
+ props: {
725
+ file: {
726
+ type: Object,
727
+ required: true
728
+ },
729
+ handleClick: {
730
+ type: Function,
731
+ required: true
732
+ },
733
+ selectedFiles: {
734
+ type: Array,
735
+ required: true
736
+ }
737
+ },
738
+ setup(__props, { expose: __expose }) {
739
+ __expose();
740
+ const props = __props;
741
+ const { isDark: dark, slotOverrides: slotClasses } = _chunkGVB7IFRPcjs.useUploaderTheme.call(void 0, );
742
+ const isFolder = _vue.computed.call(void 0, () => props.file.isFolder);
743
+ const isFileSelected = _vue.computed.call(void 0, () => props.selectedFiles.filter((f) => f.id === props.file.id).length);
744
+ const __returned__ = {
745
+ props,
746
+ dark,
747
+ slotClasses,
748
+ isFolder,
749
+ isFileSelected,
750
+ get cn() {
751
+ return _internal.cn;
752
+ },
753
+ DriveBrowserIcon: DriveBrowserIcon_default
754
+ };
755
+ Object.defineProperty(__returned__, "__isScriptSetup", {
756
+ enumerable: false,
757
+ value: true
758
+ });
759
+ return __returned__;
760
+ }
761
+ });
762
+ function _sfc_render5(_ctx, _cache, $props, $setup, $data, $options) {
763
+ return _vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0,
764
+ "div",
765
+ {
766
+ "data-upup-slot": "drive-browser-item",
767
+ class: _vue.normalizeClass.call(void 0, $setup.cn("upup-fx-hover-lift upup-group upup-mb-1.5 upup-flex upup-cursor-pointer upup-items-center upup-justify-between upup-gap-2 upup-rounded-[11px] upup-px-3 upup-py-2.5 upup-ring-1", { "upup-font-medium": $setup.isFolder }, $setup.isFileSelected ? $setup.dark ? "upup-bg-[#0ea5e9]/10 upup-ring-[#38bdf8]/35" : "upup-bg-[#0ea5e9]/10 upup-ring-[#0ea5e9]/40" : $setup.dark ? "upup-bg-white/[0.04] upup-ring-white/[0.06] hover:upup-bg-white/[0.07]" : "upup-bg-black/[0.03] upup-ring-black/[0.06] hover:upup-bg-black/[0.05]", {
768
+ [$setup.slotClasses.driveItemContainerDefault]: !$setup.isFileSelected && $setup.slotClasses.driveItemContainerDefault,
769
+ [$setup.slotClasses.driveItemContainerSelected]: $setup.isFileSelected && $setup.slotClasses.driveItemContainerSelected
770
+ })),
771
+ onClick: _cache[0] || (_cache[0] = ($event) => $setup.props.handleClick($setup.props.file))
772
+ },
773
+ [_vue.createElementVNode.call(void 0,
774
+ "div",
775
+ { class: _vue.normalizeClass.call(void 0, $setup.cn("upup-flex upup-items-center upup-gap-2", $setup.slotClasses.driveItemContainerInner)) },
776
+ [_vue.createVNode.call(void 0, $setup["DriveBrowserIcon"], { file: $setup.props.file }, null, 8, ["file"]), _vue.createElementVNode.call(void 0,
777
+ "h1",
778
+ { class: _vue.normalizeClass.call(void 0, $setup.cn("upup-text-wrap upup-break-all upup-text-xs", { "upup-text-[#e0e0e0] dark:upup-text-[#e0e0e0]": $setup.dark }, $setup.slotClasses.driveItemInnerText)) },
779
+ _vue.toDisplayString.call(void 0, $setup.props.file.name),
780
+ 3
781
+ /* TEXT, CLASS */
782
+ )],
783
+ 2
784
+ /* CLASS */
785
+ )],
786
+ 2
787
+ /* CLASS */
788
+ );
789
+ }
790
+ var DriveBrowserItem_default = /* @__PURE__ */ _chunkGVB7IFRPcjs.export_helper_default.call(void 0, _sfc_main5, [["render", _sfc_render5], ["__file", "C:\\Users\\amind\\OneDrive\\Desktop\\Projects\\INTERNAL\\upup\\packages\\vue\\src\\components\\shared\\DriveBrowserItem.vue"]]);
791
+
792
+ // src/components/shared/DriveBrowser.vue
793
+
794
+ var _sfc_main6 = /* @__PURE__ */ _vue.defineComponent.call(void 0, {
795
+ __name: "DriveBrowser",
796
+ props: {
797
+ isClickLoading: {
798
+ type: Boolean,
799
+ required: false,
800
+ default: false
801
+ },
802
+ driveFiles: {
803
+ type: null,
804
+ required: false
805
+ },
806
+ path: {
807
+ type: Array,
808
+ required: true
809
+ },
810
+ setPath: {
811
+ type: Function,
812
+ required: true
813
+ },
814
+ user: {
815
+ type: null,
816
+ required: false
817
+ },
818
+ handleSignOut: {
819
+ type: Function,
820
+ required: true
821
+ },
822
+ handleClick: {
823
+ type: Function,
824
+ required: true
825
+ },
826
+ selectedFiles: {
827
+ type: Array,
828
+ required: true
829
+ },
830
+ showLoader: {
831
+ type: Boolean,
832
+ required: true
833
+ },
834
+ handleSubmit: {
835
+ type: Function,
836
+ required: true
837
+ },
838
+ handleCancelDownload: {
839
+ type: Function,
840
+ required: true
841
+ },
842
+ onSelectCurrentFolder: {
843
+ type: Function,
844
+ required: false
845
+ },
846
+ error: {
847
+ type: null,
848
+ required: false
849
+ },
850
+ hasMore: {
851
+ type: Boolean,
852
+ required: false,
853
+ default: false
854
+ },
855
+ isLoadingMore: {
856
+ type: Boolean,
857
+ required: false,
858
+ default: false
859
+ },
860
+ loadMore: {
861
+ type: Function,
862
+ required: false
863
+ },
864
+ dataUpupSlot: {
865
+ type: String,
866
+ required: false,
867
+ default: "drive-browser"
868
+ }
869
+ },
870
+ setup(__props, { expose: __expose }) {
871
+ __expose();
872
+ const props = __props;
873
+ const { allowedFileTypes, icons } = _chunkGVB7IFRPcjs.useUploaderOptions.call(void 0, );
874
+ const { isDark: dark, slotOverrides: slotClasses } = _chunkGVB7IFRPcjs.useUploaderTheme.call(void 0, );
875
+ const { translations: tr } = _chunkGVB7IFRPcjs.useUploaderI18n.call(void 0, );
876
+ const searchTerm = _vue.ref.call(void 0, "");
877
+ function filterItems(item, accept) {
878
+ if (item.isFolder) return true;
879
+ if (!accept || accept === "*") return true;
880
+ return accept.split(",").some((pattern) => {
881
+ const p = pattern.trim();
882
+ if (p.startsWith(".")) return item.name.endsWith(p);
883
+ if (p.endsWith("/*")) return item.mimeType.startsWith(p.replace("/*", "/"));
884
+ return item.mimeType === p;
885
+ });
886
+ }
887
+ const items = _vue.computed.call(void 0, () => {
888
+ var _a, _b;
889
+ return (_b = (_a = props.path[props.path.length - 1]) == null ? void 0 : _a.children) == null ? void 0 : _b.filter((item) => filterItems(item, allowedFileTypes));
890
+ });
891
+ const displayedItems = _vue.computed.call(void 0, () => {
892
+ var _a;
893
+ return _internal.searchDriveFiles.call(void 0, (_a = items.value) != null ? _a : [], searchTerm.value) || [];
894
+ });
895
+ const isLoading = _vue.computed.call(void 0, () => !props.error && (props.isClickLoading || !props.driveFiles));
896
+ function noopClick() {
897
+ }
898
+ const __returned__ = {
899
+ props,
900
+ allowedFileTypes,
901
+ icons,
902
+ dark,
903
+ slotClasses,
904
+ tr,
905
+ searchTerm,
906
+ filterItems,
907
+ items,
908
+ displayedItems,
909
+ isLoading,
910
+ noopClick,
911
+ get t() {
912
+ return _core.formatUiMessage;
913
+ },
914
+ get plural() {
915
+ return _core.pluralUiMessage;
916
+ },
917
+ get cn() {
918
+ return _internal.cn;
919
+ },
920
+ SourceViewContainer: _chunkGG4ABGXBcjs.SourceViewContainer_default,
921
+ DriveBrowserHeader: DriveBrowserHeader_default,
922
+ DriveBrowserItem: DriveBrowserItem_default
923
+ };
924
+ Object.defineProperty(__returned__, "__isScriptSetup", {
925
+ enumerable: false,
926
+ value: true
927
+ });
928
+ return __returned__;
929
+ }
930
+ });
931
+ var _hoisted_15 = {
932
+ key: 1,
933
+ "data-testid": "upup-drive-browser",
934
+ class: "upup-grid upup-h-full upup-w-full upup-grid-rows-[auto,1fr,auto] upup-overflow-auto"
935
+ };
936
+ var _hoisted_25 = {
937
+ key: 0,
938
+ class: "upup-flex upup-h-full upup-flex-col upup-items-center upup-justify-center upup-px-6 upup-text-center"
939
+ };
940
+ var _hoisted_34 = {
941
+ "data-testid": "upup-drive-error",
942
+ "data-upup-slot": "drive-error",
943
+ role: "alert",
944
+ class: "upup-text-sm upup-text-red-600 dark:upup-text-red-400"
945
+ };
946
+ var _hoisted_43 = {
947
+ key: 1,
948
+ class: "upup-p-2"
949
+ };
950
+ var _hoisted_53 = {
951
+ key: 2,
952
+ class: "upup-flex upup-h-full upup-flex-col upup-items-center upup-justify-center"
953
+ };
954
+ var _hoisted_63 = { class: "upup-text-xs upup-opacity-70" };
955
+ var _hoisted_73 = ["disabled"];
956
+ var _hoisted_82 = ["disabled"];
957
+ var _hoisted_92 = ["disabled"];
958
+ var _hoisted_102 = ["disabled"];
959
+ function _sfc_render6(_ctx, _cache, $props, $setup, $data, $options) {
960
+ return _vue.openBlock.call(void 0, ), _vue.createBlock.call(void 0, $setup["SourceViewContainer"], {
961
+ "is-loading": $setup.isLoading,
962
+ "data-upup-slot": $setup.props.dataUpupSlot
963
+ }, {
964
+ default: _vue.withCtx.call(void 0, () => {
965
+ var _a;
966
+ return [$setup.isLoading ? (_vue.openBlock.call(void 0, ), _vue.createBlock.call(void 0, _vue.resolveDynamicComponent.call(void 0, $setup.icons.LoaderIcon), { key: 0 })) : (_vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0, "div", _hoisted_15, [
967
+ _vue.createVNode.call(void 0, $setup["DriveBrowserHeader"], {
968
+ "show-search": !!((_a = $setup.items) == null ? void 0 : _a.length),
969
+ path: $setup.props.path,
970
+ "set-path": $setup.props.setPath,
971
+ "search-term": $setup.searchTerm,
972
+ "on-search": (v) => $setup.searchTerm = v,
973
+ user: $setup.props.user,
974
+ "handle-sign-out": $setup.props.handleSignOut
975
+ }, null, 8, [
976
+ "show-search",
977
+ "path",
978
+ "set-path",
979
+ "search-term",
980
+ "on-search",
981
+ "user",
982
+ "handle-sign-out"
983
+ ]),
984
+ !!$setup.props.path ? (_vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0,
985
+ "div",
986
+ {
987
+ key: 0,
988
+ class: _vue.normalizeClass.call(void 0, $setup.cn("upup-h-full upup-overflow-y-auto upup-pt-2", { "upup-text-[#fafafa] dark:upup-text-[#fafafa]": $setup.dark }, $setup.slotClasses.driveBody))
989
+ },
990
+ [
991
+ !!$setup.props.error ? (_vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0, "div", _hoisted_25, [_vue.createElementVNode.call(void 0,
992
+ "p",
993
+ _hoisted_34,
994
+ _vue.toDisplayString.call(void 0, $setup.t($setup.tr.driveLoadError, { message: $setup.props.error.message })),
995
+ 1
996
+ /* TEXT */
997
+ )])) : _vue.createCommentVNode.call(void 0, "v-if", true),
998
+ !!$setup.displayedItems.length ? (_vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0, "ul", _hoisted_43, [(_vue.openBlock.call(void 0, true), _vue.createElementBlock.call(void 0,
999
+ _vue.Fragment,
1000
+ null,
1001
+ _vue.renderList.call(void 0, $setup.displayedItems, (file) => {
1002
+ return _vue.openBlock.call(void 0, ), _vue.createBlock.call(void 0, $setup["DriveBrowserItem"], {
1003
+ key: file.id,
1004
+ file,
1005
+ "handle-click": $setup.props.isClickLoading || $setup.props.showLoader ? $setup.noopClick : $setup.props.handleClick,
1006
+ "selected-files": $setup.props.selectedFiles
1007
+ }, null, 8, [
1008
+ "file",
1009
+ "handle-click",
1010
+ "selected-files"
1011
+ ]);
1012
+ }),
1013
+ 128
1014
+ /* KEYED_FRAGMENT */
1015
+ ))])) : _vue.createCommentVNode.call(void 0, "v-if", true),
1016
+ !$setup.displayedItems.length && !$setup.props.error ? (_vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0, "div", _hoisted_53, [_vue.createElementVNode.call(void 0,
1017
+ "p",
1018
+ _hoisted_63,
1019
+ _vue.toDisplayString.call(void 0, $setup.tr.noAcceptedFilesFound),
1020
+ 1
1021
+ /* TEXT */
1022
+ )])) : _vue.createCommentVNode.call(void 0, "v-if", true),
1023
+ !!$setup.props.hasMore ? (_vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0, "button", {
1024
+ key: 3,
1025
+ "data-testid": "upup-drive-load-more",
1026
+ "data-upup-slot": "drive-load-more",
1027
+ class: "upup-mx-auto upup-my-2 upup-block upup-rounded-md upup-px-3 upup-py-1.5 upup-text-sm upup-text-[#0284c7] disabled:upup-opacity-50",
1028
+ disabled: $setup.props.isLoadingMore,
1029
+ onClick: _cache[0] || (_cache[0] = ($event) => {
1030
+ var _a2, _b;
1031
+ return (_b = (_a2 = $setup.props).loadMore) == null ? void 0 : _b.call(_a2);
1032
+ })
1033
+ }, _vue.toDisplayString.call(void 0, $setup.props.isLoadingMore ? $setup.tr.loading : $setup.tr.loadMore), 9, _hoisted_73)) : _vue.createCommentVNode.call(void 0, "v-if", true)
1034
+ ],
1035
+ 2
1036
+ /* CLASS */
1037
+ )) : _vue.createCommentVNode.call(void 0, "v-if", true),
1038
+ (!!$setup.props.selectedFiles.length || !!$setup.props.onSelectCurrentFolder) && !$setup.props.error ? (_vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0,
1039
+ "div",
1040
+ {
1041
+ key: 1,
1042
+ class: _vue.normalizeClass.call(void 0, $setup.cn("upup-flex upup-origin-bottom upup-items-center upup-justify-start upup-gap-4 upup-border-t upup-px-3 upup-py-2", $setup.dark ? "upup-border-white/[0.08] upup-text-[#fafafa]" : "upup-border-black/[0.06]", $setup.slotClasses.driveFooter))
1043
+ },
1044
+ [
1045
+ !!$setup.props.onSelectCurrentFolder ? (_vue.openBlock.call(void 0, ), _vue.createElementBlock.call(void 0, "button", {
1046
+ key: 0,
1047
+ class: _vue.normalizeClass.call(void 0, $setup.cn("upup-rounded-md upup-bg-transparent upup-px-3 upup-py-2 upup-text-sm upup-font-medium upup-text-[#0284c7] upup-transition-all upup-duration-300", { "upup-text-[#38bdf8] dark:upup-text-[#38bdf8]": $setup.dark })),
1048
+ disabled: $setup.props.showLoader,
1049
+ onClick: _cache[1] || (_cache[1] = ($event) => {
1050
+ var _a2, _b;
1051
+ return (_b = (_a2 = $setup.props).onSelectCurrentFolder) == null ? void 0 : _b.call(_a2);
1052
+ })
1053
+ }, _vue.toDisplayString.call(void 0, $setup.tr.selectThisFolder), 11, _hoisted_82)) : _vue.createCommentVNode.call(void 0, "v-if", true),
1054
+ _vue.createElementVNode.call(void 0, "button", {
1055
+ class: _vue.normalizeClass.call(void 0, $setup.cn("upup-rounded-md upup-bg-[#0ea5e9] upup-px-3 upup-py-2 upup-text-sm upup-font-medium upup-text-white upup-transition-all upup-duration-300", {
1056
+ "upup-animate-pulse": $setup.props.showLoader,
1057
+ "upup-bg-[#38bdf8] dark:upup-bg-[#38bdf8]": $setup.dark
1058
+ }, $setup.slotClasses.driveAddFilesButton)),
1059
+ disabled: $setup.props.showLoader,
1060
+ onClick: _cache[2] || (_cache[2] = (...args) => $setup.props.handleSubmit && $setup.props.handleSubmit(...args))
1061
+ }, _vue.toDisplayString.call(void 0, $setup.t($setup.plural($setup.tr, "addFiles", $setup.props.selectedFiles.length), { count: $setup.props.selectedFiles.length })), 11, _hoisted_92),
1062
+ _vue.createElementVNode.call(void 0, "button", {
1063
+ class: _vue.normalizeClass.call(void 0, $setup.cn("upup-ml-auto upup-rounded-md upup-p-1 upup-text-sm upup-text-[#0284c7] upup-transition-all upup-duration-300", { "upup-text-[#38bdf8] dark:upup-text-[#38bdf8]": $setup.dark }, $setup.slotClasses.driveCancelFilesButton)),
1064
+ disabled: $setup.props.showLoader,
1065
+ onClick: _cache[3] || (_cache[3] = (...args) => $setup.props.handleCancelDownload && $setup.props.handleCancelDownload(...args))
1066
+ }, _vue.toDisplayString.call(void 0, $setup.tr.cancel), 11, _hoisted_102)
1067
+ ],
1068
+ 2
1069
+ /* CLASS */
1070
+ )) : _vue.createCommentVNode.call(void 0, "v-if", true)
1071
+ ]))];
1072
+ }),
1073
+ _: 1
1074
+ }, 8, ["is-loading", "data-upup-slot"]);
1075
+ }
1076
+ var DriveBrowser_default = /* @__PURE__ */ _chunkGVB7IFRPcjs.export_helper_default.call(void 0, _sfc_main6, [["render", _sfc_render6], ["__file", "C:\\Users\\amind\\OneDrive\\Desktop\\Projects\\INTERNAL\\upup\\packages\\vue\\src\\components\\shared\\DriveBrowser.vue"]]);
1077
+
1078
+
1079
+
1080
+
1081
+
1082
+ exports.DriveAuthFallback_default = DriveAuthFallback_default; exports.DriveBrowser_default = DriveBrowser_default; exports.ServerModeDriveUploader_default = ServerModeDriveUploader_default;
1083
+ //# sourceMappingURL=chunk-D32QOALR.cjs.map