@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,376 @@
1
+ import {
2
+ SourceViewContainer_default
3
+ } from "./chunk-M6AHIQ3M.js";
4
+ import {
5
+ export_helper_default,
6
+ useUploaderFiles,
7
+ useUploaderSource,
8
+ useUploaderTheme
9
+ } from "./chunk-X6FZTCNT.js";
10
+
11
+ // src/components/AudioUploader.vue
12
+ import { defineComponent as _defineComponent2 } from "vue";
13
+ import { onUnmounted, ref } from "vue";
14
+ import { cn } from "@useupup/core/internal";
15
+
16
+ // src/components/AudioWaveform.vue
17
+ import { defineComponent as _defineComponent } from "vue";
18
+ import { onBeforeUnmount, onMounted } from "vue";
19
+ import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode } from "vue";
20
+ var BAR_COUNT = 28;
21
+ var _sfc_main = /* @__PURE__ */ _defineComponent({
22
+ __name: "AudioWaveform",
23
+ props: { stream: {
24
+ type: null,
25
+ required: true
26
+ } },
27
+ setup(__props, { expose: __expose }) {
28
+ __expose();
29
+ const props = __props;
30
+ const barEls = Array.from({ length: BAR_COUNT }, () => null);
31
+ let raf = 0;
32
+ let audioCtx = null;
33
+ let sourceNode = null;
34
+ function setBar(el, index) {
35
+ barEls[index] = el;
36
+ }
37
+ onMounted(() => {
38
+ var _a;
39
+ const AudioCtor = (_a = window.AudioContext) != null ? _a : window.webkitAudioContext;
40
+ if (!AudioCtor) return;
41
+ audioCtx = new AudioCtor();
42
+ void audioCtx.resume();
43
+ sourceNode = audioCtx.createMediaStreamSource(props.stream);
44
+ const analyser = audioCtx.createAnalyser();
45
+ analyser.fftSize = 64;
46
+ sourceNode.connect(analyser);
47
+ const data = new Uint8Array(analyser.frequencyBinCount);
48
+ const tick = () => {
49
+ var _a2;
50
+ analyser.getByteFrequencyData(data);
51
+ for (let i = 0; i < barEls.length; i++) {
52
+ const v = (_a2 = data[i % data.length]) != null ? _a2 : 0;
53
+ const el = barEls[i];
54
+ if (el) el.style.height = `${6 + v / 255 * 34}px`;
55
+ }
56
+ raf = requestAnimationFrame(tick);
57
+ };
58
+ raf = requestAnimationFrame(tick);
59
+ });
60
+ onBeforeUnmount(() => {
61
+ cancelAnimationFrame(raf);
62
+ sourceNode == null ? void 0 : sourceNode.disconnect();
63
+ void (audioCtx == null ? void 0 : audioCtx.close());
64
+ });
65
+ const __returned__ = {
66
+ BAR_COUNT,
67
+ props,
68
+ barEls,
69
+ get raf() {
70
+ return raf;
71
+ },
72
+ set raf(v) {
73
+ raf = v;
74
+ },
75
+ get audioCtx() {
76
+ return audioCtx;
77
+ },
78
+ set audioCtx(v) {
79
+ audioCtx = v;
80
+ },
81
+ get sourceNode() {
82
+ return sourceNode;
83
+ },
84
+ set sourceNode(v) {
85
+ sourceNode = v;
86
+ },
87
+ setBar
88
+ };
89
+ Object.defineProperty(__returned__, "__isScriptSetup", {
90
+ enumerable: false,
91
+ value: true
92
+ });
93
+ return __returned__;
94
+ }
95
+ });
96
+ var _hoisted_1 = {
97
+ "data-upup-slot": "audio-waveform",
98
+ "aria-hidden": "true",
99
+ class: "upup-flex upup-h-11 upup-items-center upup-justify-center upup-gap-[3px]"
100
+ };
101
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
102
+ return _openBlock(), _createElementBlock("div", _hoisted_1, [(_openBlock(), _createElementBlock(
103
+ _Fragment,
104
+ null,
105
+ _renderList($setup.BAR_COUNT, (i) => {
106
+ return _createElementVNode(
107
+ "span",
108
+ {
109
+ key: i,
110
+ ref_for: true,
111
+ ref: (el) => $setup.setBar(el, i - 1),
112
+ class: "upup-w-[3px] upup-flex-none upup-rounded-full upup-bg-[#38bdf8]",
113
+ style: { "height": "6px" }
114
+ },
115
+ null,
116
+ 512
117
+ /* NEED_PATCH */
118
+ );
119
+ }),
120
+ 64
121
+ /* STABLE_FRAGMENT */
122
+ ))]);
123
+ }
124
+ var AudioWaveform_default = /* @__PURE__ */ export_helper_default(_sfc_main, [["render", _sfc_render], ["__file", "C:\\Users\\amind\\OneDrive\\Desktop\\Projects\\INTERNAL\\upup\\packages\\vue\\src\\components\\AudioWaveform.vue"]]);
125
+
126
+ // src/components/AudioUploader.vue
127
+ import { createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode2, withCtx as _withCtx, openBlock as _openBlock2, createBlock as _createBlock, createElementBlock as _createElementBlock2, Fragment as _Fragment2, createVNode as _createVNode } from "vue";
128
+ var _sfc_main2 = /* @__PURE__ */ _defineComponent2({
129
+ __name: "AudioUploader",
130
+ setup(__props, { expose: __expose }) {
131
+ __expose();
132
+ const { setFiles } = useUploaderFiles();
133
+ const { setActiveSource } = useUploaderSource();
134
+ const { isDark: dark } = useUploaderTheme();
135
+ const state = ref("idle");
136
+ const duration = ref(0);
137
+ const audioUrl = ref(null);
138
+ const error = ref(null);
139
+ const mediaRecorder = ref(null);
140
+ const chunks = [];
141
+ const timerRef = ref(null);
142
+ const streamRef = ref(null);
143
+ onUnmounted(() => {
144
+ var _a;
145
+ if (timerRef.value) clearInterval(timerRef.value);
146
+ if (audioUrl.value) URL.revokeObjectURL(audioUrl.value);
147
+ (_a = streamRef.value) == null ? void 0 : _a.getTracks().forEach((t) => t.stop());
148
+ });
149
+ async function startRecording() {
150
+ try {
151
+ const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
152
+ streamRef.value = stream;
153
+ chunks.length = 0;
154
+ const recorder = new MediaRecorder(stream);
155
+ mediaRecorder.value = recorder;
156
+ recorder.ondataavailable = (e) => {
157
+ if (e.data.size > 0) chunks.push(e.data);
158
+ };
159
+ recorder.onstop = () => {
160
+ const blob = new Blob(chunks, { type: recorder.mimeType || "audio/webm" });
161
+ audioUrl.value = URL.createObjectURL(blob);
162
+ stream.getTracks().forEach((t) => t.stop());
163
+ };
164
+ recorder.start();
165
+ state.value = "recording";
166
+ duration.value = 0;
167
+ timerRef.value = setInterval(() => {
168
+ duration.value++;
169
+ }, 1e3);
170
+ } catch {
171
+ error.value = "Microphone access denied. Please allow microphone access and try again.";
172
+ }
173
+ }
174
+ function stopRecording() {
175
+ var _a;
176
+ (_a = mediaRecorder.value) == null ? void 0 : _a.stop();
177
+ if (timerRef.value) clearInterval(timerRef.value);
178
+ state.value = "recorded";
179
+ }
180
+ function discardRecording() {
181
+ if (audioUrl.value) URL.revokeObjectURL(audioUrl.value);
182
+ audioUrl.value = null;
183
+ duration.value = 0;
184
+ state.value = "idle";
185
+ }
186
+ function addRecording() {
187
+ var _a, _b;
188
+ if (!audioUrl.value) return;
189
+ const ext = ((_b = (_a = mediaRecorder.value) == null ? void 0 : _a.mimeType) == null ? void 0 : _b.includes("webm")) ? "webm" : "ogg";
190
+ fetch(audioUrl.value).then((r) => r.blob()).then((blob) => {
191
+ const file = new File([blob], `recording-${Date.now()}.${ext}`, { type: blob.type });
192
+ setFiles([file]);
193
+ setActiveSource(void 0);
194
+ }).catch(() => {
195
+ });
196
+ }
197
+ function formatTime(s) {
198
+ const m = Math.floor(s / 60);
199
+ const sec = s % 60;
200
+ return `${m}:${sec.toString().padStart(2, "0")}`;
201
+ }
202
+ const __returned__ = {
203
+ setFiles,
204
+ setActiveSource,
205
+ dark,
206
+ state,
207
+ duration,
208
+ audioUrl,
209
+ error,
210
+ mediaRecorder,
211
+ chunks,
212
+ timerRef,
213
+ streamRef,
214
+ startRecording,
215
+ stopRecording,
216
+ discardRecording,
217
+ addRecording,
218
+ formatTime,
219
+ get cn() {
220
+ return cn;
221
+ },
222
+ SourceViewContainer: SourceViewContainer_default,
223
+ AudioWaveform: AudioWaveform_default
224
+ };
225
+ Object.defineProperty(__returned__, "__isScriptSetup", {
226
+ enumerable: false,
227
+ value: true
228
+ });
229
+ return __returned__;
230
+ }
231
+ });
232
+ var _hoisted_12 = { class: "upup-flex upup-flex-col upup-items-center upup-gap-3 upup-p-6 upup-text-center" };
233
+ var _hoisted_2 = { class: "upup-flex upup-h-full upup-w-full upup-flex-col upup-items-center upup-justify-center upup-gap-6 upup-p-6" };
234
+ var _hoisted_3 = ["src"];
235
+ var _hoisted_4 = { class: "upup-flex upup-gap-3" };
236
+ function _sfc_render2(_ctx, _cache, $props, $setup, $data, $options) {
237
+ return _openBlock2(), _createElementBlock2(
238
+ _Fragment2,
239
+ null,
240
+ [_createCommentVNode(" Error state "), $setup.error ? (_openBlock2(), _createBlock($setup["SourceViewContainer"], {
241
+ key: 0,
242
+ "data-upup-slot": "audio-uploader"
243
+ }, {
244
+ default: _withCtx(() => [_createElementVNode2("div", _hoisted_12, [_createElementVNode2(
245
+ "p",
246
+ { class: _normalizeClass($setup.cn("upup-text-sm upup-text-red-500", { "upup-text-red-400": $setup.dark })) },
247
+ _toDisplayString($setup.error),
248
+ 3
249
+ /* TEXT, CLASS */
250
+ )])]),
251
+ _: 1
252
+ })) : (_openBlock2(), _createElementBlock2(
253
+ _Fragment2,
254
+ { key: 1 },
255
+ [_createCommentVNode(" Normal state "), _createVNode($setup["SourceViewContainer"], { "data-upup-slot": "audio-uploader" }, {
256
+ default: _withCtx(() => [_createElementVNode2("div", _hoisted_2, [
257
+ _createElementVNode2(
258
+ "div",
259
+ { class: _normalizeClass($setup.cn("upup-flex upup-h-24 upup-w-24 upup-items-center upup-justify-center upup-rounded-full", {
260
+ "upup-bg-red-500/20": $setup.state === "recording",
261
+ "upup-bg-[#0ea5e9]/20": $setup.state === "idle" || $setup.state === "recorded"
262
+ })) },
263
+ [_createElementVNode2(
264
+ "div",
265
+ { class: _normalizeClass($setup.cn("upup-flex upup-h-16 upup-w-16 upup-items-center upup-justify-center upup-rounded-full upup-transition-all", {
266
+ "upup-animate-pulse upup-bg-red-500": $setup.state === "recording",
267
+ "upup-bg-[#0ea5e9]": $setup.state === "idle" || $setup.state === "recorded"
268
+ })) },
269
+ [..._cache[0] || (_cache[0] = [_createElementVNode2(
270
+ "svg",
271
+ {
272
+ xmlns: "http://www.w3.org/2000/svg",
273
+ width: "28",
274
+ height: "28",
275
+ viewBox: "0 0 24 24",
276
+ fill: "none",
277
+ stroke: "white",
278
+ "stroke-width": "2",
279
+ "stroke-linecap": "round",
280
+ "stroke-linejoin": "round"
281
+ },
282
+ [
283
+ _createElementVNode2("path", { d: "M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z" }),
284
+ _createElementVNode2("path", { d: "M19 10v2a7 7 0 0 1-14 0v-2" }),
285
+ _createElementVNode2("line", {
286
+ x1: "12",
287
+ x2: "12",
288
+ y1: "19",
289
+ y2: "22"
290
+ })
291
+ ],
292
+ -1
293
+ /* CACHED */
294
+ )])],
295
+ 2
296
+ /* CLASS */
297
+ )],
298
+ 2
299
+ /* CLASS */
300
+ ),
301
+ $setup.state === "recording" && $setup.streamRef ? (_openBlock2(), _createBlock($setup["AudioWaveform"], {
302
+ key: 0,
303
+ stream: $setup.streamRef
304
+ }, null, 8, ["stream"])) : _createCommentVNode("v-if", true),
305
+ _createElementVNode2(
306
+ "span",
307
+ { class: _normalizeClass($setup.cn("upup-text-2xl upup-font-mono upup-tabular-nums", {
308
+ "upup-text-[#1b1b1b]": !$setup.dark,
309
+ "upup-text-white": $setup.dark
310
+ })) },
311
+ _toDisplayString($setup.formatTime($setup.duration)),
312
+ 3
313
+ /* TEXT, CLASS */
314
+ ),
315
+ $setup.state === "recorded" && $setup.audioUrl ? (_openBlock2(), _createElementBlock2("audio", {
316
+ key: 1,
317
+ controls: "",
318
+ src: $setup.audioUrl,
319
+ class: "upup-w-full upup-max-w-xs"
320
+ }, null, 8, _hoisted_3)) : _createCommentVNode("v-if", true),
321
+ _createElementVNode2("div", _hoisted_4, [
322
+ $setup.state === "idle" ? (_openBlock2(), _createElementBlock2(
323
+ "button",
324
+ {
325
+ key: 0,
326
+ type: "button",
327
+ class: _normalizeClass($setup.cn("upup-rounded-lg upup-bg-[#0ea5e9] upup-px-6 upup-py-2.5 upup-text-sm upup-font-medium upup-text-white upup-transition-colors hover:upup-bg-[#0284c7]", { "upup-bg-[#38bdf8] hover:upup-bg-[#0ea5e9] dark:upup-bg-[#38bdf8]": $setup.dark })),
328
+ onClick: $setup.startRecording
329
+ },
330
+ " Start Recording ",
331
+ 2
332
+ /* CLASS */
333
+ )) : _createCommentVNode("v-if", true),
334
+ $setup.state === "recording" ? (_openBlock2(), _createElementBlock2("button", {
335
+ key: 1,
336
+ type: "button",
337
+ class: "upup-rounded-lg upup-bg-red-500 upup-px-6 upup-py-2.5 upup-text-sm upup-font-medium upup-text-white upup-transition-colors hover:upup-bg-red-600",
338
+ onClick: $setup.stopRecording
339
+ }, " Stop Recording ")) : _createCommentVNode("v-if", true),
340
+ $setup.state === "recorded" ? (_openBlock2(), _createElementBlock2(
341
+ _Fragment2,
342
+ { key: 2 },
343
+ [_createElementVNode2("button", {
344
+ type: "button",
345
+ class: "upup-rounded-lg upup-bg-gray-500 upup-px-4 upup-py-2.5 upup-text-sm upup-font-medium upup-text-white upup-transition-colors hover:upup-bg-gray-600",
346
+ onClick: $setup.discardRecording
347
+ }, " Discard "), _createElementVNode2(
348
+ "button",
349
+ {
350
+ type: "button",
351
+ class: _normalizeClass($setup.cn("upup-rounded-lg upup-bg-[#0ea5e9] upup-px-4 upup-py-2.5 upup-text-sm upup-font-medium upup-text-white upup-transition-colors hover:upup-bg-[#0284c7]", { "upup-bg-[#38bdf8] hover:upup-bg-[#0ea5e9] dark:upup-bg-[#38bdf8]": $setup.dark })),
352
+ onClick: $setup.addRecording
353
+ },
354
+ " Add Recording ",
355
+ 2
356
+ /* CLASS */
357
+ )],
358
+ 64
359
+ /* STABLE_FRAGMENT */
360
+ )) : _createCommentVNode("v-if", true)
361
+ ])
362
+ ])]),
363
+ _: 1
364
+ })],
365
+ 2112
366
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
367
+ ))],
368
+ 2112
369
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
370
+ );
371
+ }
372
+ var AudioUploader_default = /* @__PURE__ */ export_helper_default(_sfc_main2, [["render", _sfc_render2], ["__file", "C:\\Users\\amind\\OneDrive\\Desktop\\Projects\\INTERNAL\\upup\\packages\\vue\\src\\components\\AudioUploader.vue"]]);
373
+ export {
374
+ AudioUploader_default as default
375
+ };
376
+ //# sourceMappingURL=AudioUploader-IEWPI3TS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/AudioUploader.vue","../src/components/AudioUploader.vue","../src/components/AudioWaveform.vue","../src/components/AudioWaveform.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { onUnmounted, ref } from 'vue'\r\nimport {\r\n useUploaderFiles,\r\n useUploaderSource,\r\n useUploaderTheme,\r\n} from '../context/uploader-context'\r\nimport { cn } from '@useupup/core/internal'\r\nimport SourceViewContainer from './shared/SourceViewContainer.vue'\r\nimport AudioWaveform from './AudioWaveform.vue'\r\n\r\ntype RecordingState = 'idle' | 'recording' | 'recorded'\r\n\r\nconst { setFiles } = useUploaderFiles()\r\nconst { setActiveSource } = useUploaderSource()\r\nconst { isDark: dark } = useUploaderTheme()\r\n\r\nconst state = ref<RecordingState>('idle')\r\nconst duration = ref(0)\r\nconst audioUrl = ref<string | null>(null)\r\nconst error = ref<string | null>(null)\r\n\r\nconst mediaRecorder = ref<MediaRecorder | null>(null)\r\nconst chunks: Blob[] = []\r\nconst timerRef = ref<ReturnType<typeof setInterval> | null>(null)\r\nconst streamRef = ref<MediaStream | null>(null)\r\n\r\nonUnmounted(() => {\r\n if (timerRef.value) clearInterval(timerRef.value)\r\n if (audioUrl.value) URL.revokeObjectURL(audioUrl.value)\r\n streamRef.value?.getTracks().forEach(t => t.stop())\r\n})\r\n\r\nasync function startRecording() {\r\n try {\r\n const stream = await navigator.mediaDevices.getUserMedia({ audio: true })\r\n streamRef.value = stream\r\n chunks.length = 0\r\n const recorder = new MediaRecorder(stream)\r\n mediaRecorder.value = recorder\r\n\r\n recorder.ondataavailable = (e) => {\r\n if (e.data.size > 0) chunks.push(e.data)\r\n }\r\n\r\n recorder.onstop = () => {\r\n const blob = new Blob(chunks, { type: recorder.mimeType || 'audio/webm' })\r\n audioUrl.value = URL.createObjectURL(blob)\r\n stream.getTracks().forEach(t => t.stop())\r\n }\r\n\r\n recorder.start()\r\n state.value = 'recording'\r\n duration.value = 0\r\n timerRef.value = setInterval(() => { duration.value++ }, 1000)\r\n } catch {\r\n error.value = 'Microphone access denied. Please allow microphone access and try again.'\r\n }\r\n}\r\n\r\nfunction stopRecording() {\r\n mediaRecorder.value?.stop()\r\n if (timerRef.value) clearInterval(timerRef.value)\r\n state.value = 'recorded'\r\n}\r\n\r\nfunction discardRecording() {\r\n if (audioUrl.value) URL.revokeObjectURL(audioUrl.value)\r\n audioUrl.value = null\r\n duration.value = 0\r\n state.value = 'idle'\r\n}\r\n\r\nfunction addRecording() {\r\n if (!audioUrl.value) return\r\n const ext = mediaRecorder.value?.mimeType?.includes('webm') ? 'webm' : 'ogg'\r\n fetch(audioUrl.value)\r\n .then(r => r.blob())\r\n .then(blob => {\r\n const file = new File([blob], `recording-${Date.now()}.${ext}`, { type: blob.type })\r\n setFiles([file])\r\n setActiveSource(undefined)\r\n })\r\n .catch(() => {\r\n // upup-catch: replaying an in-memory object URL cannot fail in practice; ignore\r\n })\r\n}\r\n\r\nfunction formatTime(s: number) {\r\n const m = Math.floor(s / 60)\r\n const sec = s % 60\r\n return `${m}:${sec.toString().padStart(2, '0')}`\r\n}\r\n</script>\r\n\r\n<template>\r\n <!-- Error state -->\r\n <SourceViewContainer v-if=\"error\" data-upup-slot=\"audio-uploader\">\r\n <div class=\"upup-flex upup-flex-col upup-items-center upup-gap-3 upup-p-6 upup-text-center\">\r\n <p\r\n :class=\"cn('upup-text-sm upup-text-red-500', {\r\n 'upup-text-red-400': dark,\r\n })\"\r\n >\r\n {{ error }}\r\n </p>\r\n </div>\r\n </SourceViewContainer>\r\n\r\n <!-- Normal state -->\r\n <SourceViewContainer v-else data-upup-slot=\"audio-uploader\">\r\n <div class=\"upup-flex upup-h-full upup-w-full upup-flex-col upup-items-center upup-justify-center upup-gap-6 upup-p-6\">\r\n <div\r\n :class=\"cn(\r\n 'upup-flex upup-h-24 upup-w-24 upup-items-center upup-justify-center upup-rounded-full',\r\n {\r\n 'upup-bg-red-500/20': state === 'recording',\r\n 'upup-bg-[#0ea5e9]/20': state === 'idle' || state === 'recorded',\r\n },\r\n )\"\r\n >\r\n <div\r\n :class=\"cn(\r\n 'upup-flex upup-h-16 upup-w-16 upup-items-center upup-justify-center upup-rounded-full upup-transition-all',\r\n {\r\n 'upup-animate-pulse upup-bg-red-500': state === 'recording',\r\n 'upup-bg-[#0ea5e9]': state === 'idle' || state === 'recorded',\r\n },\r\n )\"\r\n >\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"28\"\r\n height=\"28\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"white\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n >\r\n <path d=\"M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z\" />\r\n <path d=\"M19 10v2a7 7 0 0 1-14 0v-2\" />\r\n <line x1=\"12\" x2=\"12\" y1=\"19\" y2=\"22\" />\r\n </svg>\r\n </div>\r\n </div>\r\n\r\n <AudioWaveform\r\n v-if=\"state === 'recording' && streamRef\"\r\n :stream=\"streamRef!\"\r\n />\r\n\r\n <span\r\n :class=\"cn(\r\n 'upup-text-2xl upup-font-mono upup-tabular-nums',\r\n {\r\n 'upup-text-[#1b1b1b]': !dark,\r\n 'upup-text-white': dark,\r\n },\r\n )\"\r\n >\r\n {{ formatTime(duration) }}\r\n </span>\r\n\r\n <audio\r\n v-if=\"state === 'recorded' && audioUrl\"\r\n controls\r\n :src=\"audioUrl\"\r\n class=\"upup-w-full upup-max-w-xs\"\r\n />\r\n\r\n <div class=\"upup-flex upup-gap-3\">\r\n <button\r\n v-if=\"state === 'idle'\"\r\n type=\"button\"\r\n :class=\"cn(\r\n 'upup-rounded-lg upup-bg-[#0ea5e9] upup-px-6 upup-py-2.5 upup-text-sm upup-font-medium upup-text-white upup-transition-colors hover:upup-bg-[#0284c7]',\r\n {\r\n 'upup-bg-[#38bdf8] hover:upup-bg-[#0ea5e9] dark:upup-bg-[#38bdf8]': dark,\r\n },\r\n )\"\r\n @click=\"startRecording\"\r\n >\r\n Start Recording\r\n </button>\r\n\r\n <button\r\n v-if=\"state === 'recording'\"\r\n type=\"button\"\r\n class=\"upup-rounded-lg upup-bg-red-500 upup-px-6 upup-py-2.5 upup-text-sm upup-font-medium upup-text-white upup-transition-colors hover:upup-bg-red-600\"\r\n @click=\"stopRecording\"\r\n >\r\n Stop Recording\r\n </button>\r\n\r\n <template v-if=\"state === 'recorded'\">\r\n <button\r\n type=\"button\"\r\n class=\"upup-rounded-lg upup-bg-gray-500 upup-px-4 upup-py-2.5 upup-text-sm upup-font-medium upup-text-white upup-transition-colors hover:upup-bg-gray-600\"\r\n @click=\"discardRecording\"\r\n >\r\n Discard\r\n </button>\r\n <button\r\n type=\"button\"\r\n :class=\"cn(\r\n 'upup-rounded-lg upup-bg-[#0ea5e9] upup-px-4 upup-py-2.5 upup-text-sm upup-font-medium upup-text-white upup-transition-colors hover:upup-bg-[#0284c7]',\r\n {\r\n 'upup-bg-[#38bdf8] hover:upup-bg-[#0ea5e9] dark:upup-bg-[#38bdf8]': dark,\r\n },\r\n )\"\r\n @click=\"addRecording\"\r\n >\r\n Add Recording\r\n </button>\r\n </template>\r\n </div>\r\n </div>\r\n </SourceViewContainer>\r\n</template>\r\n","<script setup lang=\"ts\">\r\nimport { onUnmounted, ref } from 'vue'\r\nimport {\r\n useUploaderFiles,\r\n useUploaderSource,\r\n useUploaderTheme,\r\n} from '../context/uploader-context'\r\nimport { cn } from '@useupup/core/internal'\r\nimport SourceViewContainer from './shared/SourceViewContainer.vue'\r\nimport AudioWaveform from './AudioWaveform.vue'\r\n\r\ntype RecordingState = 'idle' | 'recording' | 'recorded'\r\n\r\nconst { setFiles } = useUploaderFiles()\r\nconst { setActiveSource } = useUploaderSource()\r\nconst { isDark: dark } = useUploaderTheme()\r\n\r\nconst state = ref<RecordingState>('idle')\r\nconst duration = ref(0)\r\nconst audioUrl = ref<string | null>(null)\r\nconst error = ref<string | null>(null)\r\n\r\nconst mediaRecorder = ref<MediaRecorder | null>(null)\r\nconst chunks: Blob[] = []\r\nconst timerRef = ref<ReturnType<typeof setInterval> | null>(null)\r\nconst streamRef = ref<MediaStream | null>(null)\r\n\r\nonUnmounted(() => {\r\n if (timerRef.value) clearInterval(timerRef.value)\r\n if (audioUrl.value) URL.revokeObjectURL(audioUrl.value)\r\n streamRef.value?.getTracks().forEach(t => t.stop())\r\n})\r\n\r\nasync function startRecording() {\r\n try {\r\n const stream = await navigator.mediaDevices.getUserMedia({ audio: true })\r\n streamRef.value = stream\r\n chunks.length = 0\r\n const recorder = new MediaRecorder(stream)\r\n mediaRecorder.value = recorder\r\n\r\n recorder.ondataavailable = (e) => {\r\n if (e.data.size > 0) chunks.push(e.data)\r\n }\r\n\r\n recorder.onstop = () => {\r\n const blob = new Blob(chunks, { type: recorder.mimeType || 'audio/webm' })\r\n audioUrl.value = URL.createObjectURL(blob)\r\n stream.getTracks().forEach(t => t.stop())\r\n }\r\n\r\n recorder.start()\r\n state.value = 'recording'\r\n duration.value = 0\r\n timerRef.value = setInterval(() => { duration.value++ }, 1000)\r\n } catch {\r\n error.value = 'Microphone access denied. Please allow microphone access and try again.'\r\n }\r\n}\r\n\r\nfunction stopRecording() {\r\n mediaRecorder.value?.stop()\r\n if (timerRef.value) clearInterval(timerRef.value)\r\n state.value = 'recorded'\r\n}\r\n\r\nfunction discardRecording() {\r\n if (audioUrl.value) URL.revokeObjectURL(audioUrl.value)\r\n audioUrl.value = null\r\n duration.value = 0\r\n state.value = 'idle'\r\n}\r\n\r\nfunction addRecording() {\r\n if (!audioUrl.value) return\r\n const ext = mediaRecorder.value?.mimeType?.includes('webm') ? 'webm' : 'ogg'\r\n fetch(audioUrl.value)\r\n .then(r => r.blob())\r\n .then(blob => {\r\n const file = new File([blob], `recording-${Date.now()}.${ext}`, { type: blob.type })\r\n setFiles([file])\r\n setActiveSource(undefined)\r\n })\r\n .catch(() => {\r\n // upup-catch: replaying an in-memory object URL cannot fail in practice; ignore\r\n })\r\n}\r\n\r\nfunction formatTime(s: number) {\r\n const m = Math.floor(s / 60)\r\n const sec = s % 60\r\n return `${m}:${sec.toString().padStart(2, '0')}`\r\n}\r\n</script>\r\n\r\n<template>\r\n <!-- Error state -->\r\n <SourceViewContainer v-if=\"error\" data-upup-slot=\"audio-uploader\">\r\n <div class=\"upup-flex upup-flex-col upup-items-center upup-gap-3 upup-p-6 upup-text-center\">\r\n <p\r\n :class=\"cn('upup-text-sm upup-text-red-500', {\r\n 'upup-text-red-400': dark,\r\n })\"\r\n >\r\n {{ error }}\r\n </p>\r\n </div>\r\n </SourceViewContainer>\r\n\r\n <!-- Normal state -->\r\n <SourceViewContainer v-else data-upup-slot=\"audio-uploader\">\r\n <div class=\"upup-flex upup-h-full upup-w-full upup-flex-col upup-items-center upup-justify-center upup-gap-6 upup-p-6\">\r\n <div\r\n :class=\"cn(\r\n 'upup-flex upup-h-24 upup-w-24 upup-items-center upup-justify-center upup-rounded-full',\r\n {\r\n 'upup-bg-red-500/20': state === 'recording',\r\n 'upup-bg-[#0ea5e9]/20': state === 'idle' || state === 'recorded',\r\n },\r\n )\"\r\n >\r\n <div\r\n :class=\"cn(\r\n 'upup-flex upup-h-16 upup-w-16 upup-items-center upup-justify-center upup-rounded-full upup-transition-all',\r\n {\r\n 'upup-animate-pulse upup-bg-red-500': state === 'recording',\r\n 'upup-bg-[#0ea5e9]': state === 'idle' || state === 'recorded',\r\n },\r\n )\"\r\n >\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"28\"\r\n height=\"28\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"white\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n >\r\n <path d=\"M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z\" />\r\n <path d=\"M19 10v2a7 7 0 0 1-14 0v-2\" />\r\n <line x1=\"12\" x2=\"12\" y1=\"19\" y2=\"22\" />\r\n </svg>\r\n </div>\r\n </div>\r\n\r\n <AudioWaveform\r\n v-if=\"state === 'recording' && streamRef\"\r\n :stream=\"streamRef!\"\r\n />\r\n\r\n <span\r\n :class=\"cn(\r\n 'upup-text-2xl upup-font-mono upup-tabular-nums',\r\n {\r\n 'upup-text-[#1b1b1b]': !dark,\r\n 'upup-text-white': dark,\r\n },\r\n )\"\r\n >\r\n {{ formatTime(duration) }}\r\n </span>\r\n\r\n <audio\r\n v-if=\"state === 'recorded' && audioUrl\"\r\n controls\r\n :src=\"audioUrl\"\r\n class=\"upup-w-full upup-max-w-xs\"\r\n />\r\n\r\n <div class=\"upup-flex upup-gap-3\">\r\n <button\r\n v-if=\"state === 'idle'\"\r\n type=\"button\"\r\n :class=\"cn(\r\n 'upup-rounded-lg upup-bg-[#0ea5e9] upup-px-6 upup-py-2.5 upup-text-sm upup-font-medium upup-text-white upup-transition-colors hover:upup-bg-[#0284c7]',\r\n {\r\n 'upup-bg-[#38bdf8] hover:upup-bg-[#0ea5e9] dark:upup-bg-[#38bdf8]': dark,\r\n },\r\n )\"\r\n @click=\"startRecording\"\r\n >\r\n Start Recording\r\n </button>\r\n\r\n <button\r\n v-if=\"state === 'recording'\"\r\n type=\"button\"\r\n class=\"upup-rounded-lg upup-bg-red-500 upup-px-6 upup-py-2.5 upup-text-sm upup-font-medium upup-text-white upup-transition-colors hover:upup-bg-red-600\"\r\n @click=\"stopRecording\"\r\n >\r\n Stop Recording\r\n </button>\r\n\r\n <template v-if=\"state === 'recorded'\">\r\n <button\r\n type=\"button\"\r\n class=\"upup-rounded-lg upup-bg-gray-500 upup-px-4 upup-py-2.5 upup-text-sm upup-font-medium upup-text-white upup-transition-colors hover:upup-bg-gray-600\"\r\n @click=\"discardRecording\"\r\n >\r\n Discard\r\n </button>\r\n <button\r\n type=\"button\"\r\n :class=\"cn(\r\n 'upup-rounded-lg upup-bg-[#0ea5e9] upup-px-4 upup-py-2.5 upup-text-sm upup-font-medium upup-text-white upup-transition-colors hover:upup-bg-[#0284c7]',\r\n {\r\n 'upup-bg-[#38bdf8] hover:upup-bg-[#0ea5e9] dark:upup-bg-[#38bdf8]': dark,\r\n },\r\n )\"\r\n @click=\"addRecording\"\r\n >\r\n Add Recording\r\n </button>\r\n </template>\r\n </div>\r\n </div>\r\n </SourceViewContainer>\r\n</template>\r\n","<script setup lang=\"ts\">\r\nimport { onBeforeUnmount, onMounted } from 'vue'\r\n\r\nconst BAR_COUNT = 28\r\n\r\n/**\r\n * Live recording waveform (states-tour-3 state D): sky bars whose heights track\r\n * the microphone's live frequency data via a Web Audio AnalyserNode.\r\n *\r\n * This is the ONE place JS-driven visuals are sanctioned — the bars render REAL\r\n * audio data, not fx decoration, so (a) they are NOT classed `upup-fx-*` (the\r\n * motion gate must not freeze live data) and (b) the rAF read loop is\r\n * legitimate. Heights are written straight to the DOM (no per-frame render).\r\n * The AnalyserNode + AudioContext are torn down on unmount/stop.\r\n */\r\nconst props = defineProps<{ stream: MediaStream }>()\r\n\r\nconst barEls: Array<HTMLSpanElement | null> = Array.from(\r\n { length: BAR_COUNT },\r\n () => null,\r\n)\r\nlet raf = 0\r\nlet audioCtx: AudioContext | null = null\r\nlet sourceNode: MediaStreamAudioSourceNode | null = null\r\n\r\nfunction setBar(el: Element | null, index: number): void {\r\n barEls[index] = el as HTMLSpanElement | null\r\n}\r\n\r\nonMounted(() => {\r\n const AudioCtor =\r\n window.AudioContext ??\r\n (window as unknown as { webkitAudioContext?: typeof AudioContext })\r\n .webkitAudioContext\r\n if (!AudioCtor) return\r\n audioCtx = new AudioCtor()\r\n // Autoplay policy may create the context suspended; without resuming,\r\n // getByteFrequencyData returns all-zeros and the bars silently flatline.\r\n void audioCtx.resume()\r\n sourceNode = audioCtx.createMediaStreamSource(props.stream)\r\n const analyser = audioCtx.createAnalyser()\r\n analyser.fftSize = 64\r\n sourceNode.connect(analyser)\r\n const data = new Uint8Array(analyser.frequencyBinCount)\r\n const tick = () => {\r\n analyser.getByteFrequencyData(data)\r\n for (let i = 0; i < barEls.length; i++) {\r\n const v = data[i % data.length] ?? 0\r\n const el = barEls[i]\r\n if (el) el.style.height = `${6 + (v / 255) * 34}px`\r\n }\r\n raf = requestAnimationFrame(tick)\r\n }\r\n raf = requestAnimationFrame(tick)\r\n})\r\n\r\nonBeforeUnmount(() => {\r\n cancelAnimationFrame(raf)\r\n sourceNode?.disconnect()\r\n void audioCtx?.close()\r\n})\r\n</script>\r\n\r\n<template>\r\n <div\r\n data-upup-slot=\"audio-waveform\"\r\n aria-hidden=\"true\"\r\n class=\"upup-flex upup-h-11 upup-items-center upup-justify-center upup-gap-[3px]\"\r\n >\r\n <span\r\n v-for=\"i in BAR_COUNT\"\r\n :key=\"i\"\r\n :ref=\"(el) => setBar(el as Element | null, i - 1)\"\r\n class=\"upup-w-[3px] upup-flex-none upup-rounded-full upup-bg-[#38bdf8]\"\r\n style=\"height: 6px\"\r\n />\r\n </div>\r\n</template>\r\n","<script setup lang=\"ts\">\r\nimport { onBeforeUnmount, onMounted } from 'vue'\r\n\r\nconst BAR_COUNT = 28\r\n\r\n/**\r\n * Live recording waveform (states-tour-3 state D): sky bars whose heights track\r\n * the microphone's live frequency data via a Web Audio AnalyserNode.\r\n *\r\n * This is the ONE place JS-driven visuals are sanctioned — the bars render REAL\r\n * audio data, not fx decoration, so (a) they are NOT classed `upup-fx-*` (the\r\n * motion gate must not freeze live data) and (b) the rAF read loop is\r\n * legitimate. Heights are written straight to the DOM (no per-frame render).\r\n * The AnalyserNode + AudioContext are torn down on unmount/stop.\r\n */\r\nconst props = defineProps<{ stream: MediaStream }>()\r\n\r\nconst barEls: Array<HTMLSpanElement | null> = Array.from(\r\n { length: BAR_COUNT },\r\n () => null,\r\n)\r\nlet raf = 0\r\nlet audioCtx: AudioContext | null = null\r\nlet sourceNode: MediaStreamAudioSourceNode | null = null\r\n\r\nfunction setBar(el: Element | null, index: number): void {\r\n barEls[index] = el as HTMLSpanElement | null\r\n}\r\n\r\nonMounted(() => {\r\n const AudioCtor =\r\n window.AudioContext ??\r\n (window as unknown as { webkitAudioContext?: typeof AudioContext })\r\n .webkitAudioContext\r\n if (!AudioCtor) return\r\n audioCtx = new AudioCtor()\r\n // Autoplay policy may create the context suspended; without resuming,\r\n // getByteFrequencyData returns all-zeros and the bars silently flatline.\r\n void audioCtx.resume()\r\n sourceNode = audioCtx.createMediaStreamSource(props.stream)\r\n const analyser = audioCtx.createAnalyser()\r\n analyser.fftSize = 64\r\n sourceNode.connect(analyser)\r\n const data = new Uint8Array(analyser.frequencyBinCount)\r\n const tick = () => {\r\n analyser.getByteFrequencyData(data)\r\n for (let i = 0; i < barEls.length; i++) {\r\n const v = data[i % data.length] ?? 0\r\n const el = barEls[i]\r\n if (el) el.style.height = `${6 + (v / 255) * 34}px`\r\n }\r\n raf = requestAnimationFrame(tick)\r\n }\r\n raf = requestAnimationFrame(tick)\r\n})\r\n\r\nonBeforeUnmount(() => {\r\n cancelAnimationFrame(raf)\r\n sourceNode?.disconnect()\r\n void audioCtx?.close()\r\n})\r\n</script>\r\n\r\n<template>\r\n <div\r\n data-upup-slot=\"audio-waveform\"\r\n aria-hidden=\"true\"\r\n class=\"upup-flex upup-h-11 upup-items-center upup-justify-center upup-gap-[3px]\"\r\n >\r\n <span\r\n v-for=\"i in BAR_COUNT\"\r\n :key=\"i\"\r\n :ref=\"(el) => setBar(el as Element | null, i - 1)\"\r\n class=\"upup-w-[3px] upup-flex-none upup-rounded-full upup-bg-[#38bdf8]\"\r\n style=\"height: 6px\"\r\n />\r\n </div>\r\n</template>\r\n"],"mappings":";;;;;;;;;;;;AACA,SAAS,aAAa,WAAW;AAMjC,SAAS,UAAU;;;;AENnB,SAAS,iBAAiB,iBAAiB;;AAE3C,IAAM,YAAY;;;;;;;;;AAYlB,UAAM,QAAQ;AAEd,UAAM,SAAwC,MAAM,KAChD,EAAE,QAAQ,UAAU,GAAA,MACd,IACV;AACA,QAAI,MAAM;AACV,QAAI,WAAgC;AACpC,QAAI,aAAgD;AAEpD,aAAS,OAAO,IAAoB,OAAqB;AACrD,aAAO,KAAA,IAAS;IACpB;AAEA,cAAA,MAAgB;;AACZ,YAAM,aACF,YAAO,iBAAP,YACC,OACI;AACT,UAAI,CAAC,UAAW;AAChB,iBAAW,IAAI,UAAU;AAGzB,WAAK,SAAS,OAAO;AACrB,mBAAa,SAAS,wBAAwB,MAAM,MAAM;AAC1D,YAAM,WAAW,SAAS,eAAe;AACzC,eAAS,UAAU;AACnB,iBAAW,QAAQ,QAAQ;AAC3B,YAAM,OAAO,IAAI,WAAW,SAAS,iBAAiB;AACtD,YAAM,OAAA,MAAa;;AACf,iBAAS,qBAAqB,IAAI;AAClC,iBAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACpC,gBAAM,KAAIA,MAAA,KAAK,IAAI,KAAK,MAAA,MAAd,OAAAA,MAAyB;AACnC,gBAAM,KAAK,OAAO,CAAA;AAClB,cAAI,GAAI,IAAG,MAAM,SAAS,GAAG,IAAK,IAAI,MAAO,EAAA;QACjD;AACA,cAAM,sBAAsB,IAAI;MACpC;AACA,YAAM,sBAAsB,IAAI;IACpC,CAAC;AAED,oBAAA,MAAsB;AAClB,2BAAqB,GAAG;AACxB,+CAAY;AACZ,YAAK,qCAAU;IACnB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECKO,kBAAe;EACf,eAAY;EACZ,OAAM;;;AAHV,SAAA,WAAA,GAAA,oBAYM,OAZN,YAYM,EAPF,WAAA,GAAA;IAME;IAAA;IAAA,YALc,OAAA,WAAA,CAAL,MAAC;AADZ,aAAA;QAME;QAAA;UAJG,KAAK;;UACL,KAAA,CAAM,OAAO,OAAA,OAAO,IAAsB,IAAC,CAAA;UAC5C,OAAM;UACN,OAAA,EAAA,UAAA,MAAA;;;;;;;;;;;;A;;;;;;;AH7DZ,UAAM,EAAE,SAAA,IAAa,iBAAiB;AACtC,UAAM,EAAE,gBAAA,IAAoB,kBAAkB;AAC9C,UAAM,EAAE,QAAQ,KAAA,IAAS,iBAAiB;AAE1C,UAAM,QAAQ,IAAoB,MAAM;AACxC,UAAM,WAAW,IAAI,CAAC;AACtB,UAAM,WAAW,IAAmB,IAAI;AACxC,UAAM,QAAQ,IAAmB,IAAI;AAErC,UAAM,gBAAgB,IAA0B,IAAI;AACpD,UAAM,SAAiB,CAAC;AACxB,UAAM,WAAW,IAA2C,IAAI;AAChE,UAAM,YAAY,IAAwB,IAAI;AAE9C,gBAAA,MAAkB;;AACd,UAAI,SAAS,MAAO,eAAc,SAAS,KAAK;AAChD,UAAI,SAAS,MAAO,KAAI,gBAAgB,SAAS,KAAK;AACtD,sBAAU,UAAV,mBAAiB,YAAY,QAAA,CAAQ,MAAK,EAAE,KAAK;IACrD,CAAC;AAED,mBAAe,iBAAiB;AAC5B,UAAI;AACA,cAAM,SAAS,MAAM,UAAU,aAAa,aAAa,EAAE,OAAO,KAAK,CAAC;AACxE,kBAAU,QAAQ;AAClB,eAAO,SAAS;AAChB,cAAM,WAAW,IAAI,cAAc,MAAM;AACzC,sBAAc,QAAQ;AAEtB,iBAAS,kBAAA,CAAmB,MAAM;AAC9B,cAAI,EAAE,KAAK,OAAO,EAAG,QAAO,KAAK,EAAE,IAAI;QAC3C;AAEA,iBAAS,SAAA,MAAe;AACpB,gBAAM,OAAO,IAAI,KAAK,QAAQ,EAAE,MAAM,SAAS,YAAY,aAAa,CAAC;AACzE,mBAAS,QAAQ,IAAI,gBAAgB,IAAI;AACzC,iBAAO,UAAU,EAAE,QAAA,CAAQ,MAAK,EAAE,KAAK,CAAC;QAC5C;AAEA,iBAAS,MAAM;AACf,cAAM,QAAQ;AACd,iBAAS,QAAQ;AACjB,iBAAS,QAAQ,YAAA,MAAkB;AAAE,mBAAS;QAAQ,GAAG,GAAI;MACjE,QAAQ;AACJ,cAAM,QAAQ;MAClB;IACJ;AAEA,aAAS,gBAAgB;;AACrB,0BAAc,UAAd,mBAAqB;AACrB,UAAI,SAAS,MAAO,eAAc,SAAS,KAAK;AAChD,YAAM,QAAQ;IAClB;AAEA,aAAS,mBAAmB;AACxB,UAAI,SAAS,MAAO,KAAI,gBAAgB,SAAS,KAAK;AACtD,eAAS,QAAQ;AACjB,eAAS,QAAQ;AACjB,YAAM,QAAQ;IAClB;AAEA,aAAS,eAAe;;AACpB,UAAI,CAAC,SAAS,MAAO;AACrB,YAAM,QAAM,yBAAc,UAAd,mBAAqB,aAArB,mBAA+B,SAAS,WAAU,SAAS;AACvE,YAAM,SAAS,KAAK,EACf,KAAA,CAAK,MAAK,EAAE,KAAK,CAAC,EAClB,KAAA,CAAK,SAAQ;AACV,cAAM,OAAO,IAAI,KAAK,CAAC,IAAI,GAAG,aAAa,KAAK,IAAI,CAAA,IAAK,GAAA,IAAO,EAAE,MAAM,KAAK,KAAK,CAAC;AACnF,iBAAS,CAAC,IAAI,CAAC;AACf,wBAAgB,MAAS;MAC7B,CAAC,EACA,MAAA,MAAY;MAEb,CAAC;IACT;AAEA,aAAS,WAAW,GAAW;AAC3B,YAAM,IAAI,KAAK,MAAM,IAAI,EAAE;AAC3B,YAAM,MAAM,IAAI;AAChB,aAAO,GAAG,CAAA,IAAK,IAAI,SAAS,EAAE,SAAS,GAAG,GAAG,CAAA;IACjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACMa,IAAAC,cAAA,EAAA,OAAM,iFAAgF;AAatF,IAAA,aAAA,EAAA,OAAM,4GAA2G;;AA6D7G,IAAA,aAAA,EAAA,OAAM,uBAAsB;;;;;KA5EzC,oBAAA,eAAA,GAC2B,OAAA,SAA3BC,YAAA,GAAA,aAUsB,OAAA,qBAAA,GAAA;;MAVY,kBAAe;;MAC7C,SAAA,SAAA,MAQM,CARNC,qBAQM,OARNF,aAQM,CAPFE;QAMI;QAAA,EALC,OAAK,gBAAE,OAAA,GAAE,kCAAA,EAA+E,qBAAA,OAAA,KAAA,CAAA,CAAA,EAItF;QAAA,iBAAA,OAAA,KAAK;QAAA;;MAAA,CAAA,CAAA,CAAA,CAAA;;WAMpBD,YAAA,GAAAE;MA6GsBC;MAAA,EAAA,KAAA,EAAA;MAAA,CA9GtB,oBAAA,gBAAA,GACA,aA6GsB,OAAA,qBAAA,GAAA,EA7GM,kBAAe,iBAAgB,GAAA;QACvD,SAAA,SAAA,MA2GM,CA3GNF,qBA2GM,OA3GN,YA2GM;UA1GFA;YAkCM;YAAA,EAjCD,OAAK,gBAAE,OAAA,GAAA,yFAAA;cAAwL,sBAAA,OAAA,UAAK;cAAmE,wBAAA,OAAA,UAAK,UAAe,OAAA,UAAK;;aAQjSA;cAwBM;cAAA,EAvBD,OAAK,gBAAE,OAAA,GAAA,6GAAA;gBAAwO,sCAAA,OAAA,UAAK;gBAAoE,qBAAA,OAAA,UAAK,UAAe,OAAA,UAAK;;6CAQlVA;gBAcM;gBAAA;kBAbF,OAAM;kBACN,OAAM;kBACN,QAAO;kBACP,SAAQ;kBACR,MAAK;kBACL,QAAO;kBACP,gBAAa;kBACb,kBAAe;kBACf,mBAAgB;;;kBAEhBA,qBAAiE,QAAA,EAA3D,GAAE,uDAAsD,CAAA;kBAC9DA,qBAAuC,QAAA,EAAjC,GAAE,6BAA4B,CAAA;kBACpCA,qBAAwC,QAAA;oBAAlC,IAAG;oBAAK,IAAG;oBAAK,IAAG;oBAAK,IAAG;;;;;;;;;;;;UAMnC,OAAA,UAAK,eAAoB,OAAA,aADnCD,YAAA,GAAA,aAGE,OAAA,eAAA,GAAA;;YADG,QAAQ,OAAA;;UAGbC;YAUO;YAAA,EATF,OAAK,gBAAE,OAAA,GAAA,kDAAA;cAAmJ,uBAAA,CAAA,OAAA;cAAkD,mBAAA,OAAA;gBAQ1M;YAAA,iBAAA,OAAA,WAAW,OAAA,QAAQ,CAAA;YAAA;;UAAA;UAIhB,OAAA,UAAK,cAAmB,OAAA,YADlCD,YAAA,GAAAE,qBAKE,SAAA;;YAHE,UAAA;YACC,KAAK,OAAA;YACN,OAAM;;UAGVD,qBA6CM,OA7CN,YA6CM;YA3CQ,OAAA,UAAK,UADfD,YAAA,GAAAE;cAYS;cAAA;;gBAVL,MAAK;gBACJ,OAAK,gBAAE,OAAA,GAAA,wJAAA,EAAiT,oEAAA,OAAA,KAAA,CAAA,CAAA;gBAMxT,SAAO,OAAA;cACX;cAAA;cAED;;YAAA,KAAA,oBAAA,QAAA,IAAA;YAGU,OAAA,UAAK,eADfF,YAAA,GAAAE,qBAOS,UAAA;;cALL,MAAK;cACL,OAAM;cACL,SAAO,OAAA;YACX,GAAA,kBAED,KAAA,oBAAA,QAAA,IAAA;YAEgB,OAAA,UAAK,cAArBF,YAAA,GAAAE;cAoBWC;cAAA,EAAA,KAAA,EAAA;cAAA,CAnBPF,qBAMS,UAAA;gBALL,MAAK;gBACL,OAAM;gBACL,SAAO,OAAA;cACX,GAAA,WAED,GACAA;gBAWS;gBAAA;kBAVL,MAAK;kBACJ,OAAK,gBAAE,OAAA,GAAA,wJAAA,EAA6T,oEAAA,OAAA,KAAA,CAAA,CAAA;kBAMpU,SAAO,OAAA;gBACX;gBAAA;gBAED;;cAAA,CAAA;;;;;;;;;;;;;;;;","names":["_a","_hoisted_1","_openBlock","_createElementVNode","_createElementBlock","_Fragment"]}
@@ -0,0 +1,214 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+ var _chunkD32QOALRcjs = require('./chunk-D32QOALR.cjs');
6
+ require('./chunk-IXLKUMV2.cjs');
7
+ require('./chunk-GG4ABGXB.cjs');
8
+
9
+
10
+
11
+
12
+
13
+ var _chunkGVB7IFRPcjs = require('./chunk-GVB7IFRP.cjs');
14
+
15
+ // src/components/BoxUploader.vue
16
+ var _vue = require('vue');
17
+
18
+ // src/components/ClientBoxUploader.vue
19
+
20
+
21
+ // src/composables/useBox.ts
22
+
23
+
24
+
25
+
26
+
27
+
28
+ var _core = require('@useupup/core');
29
+
30
+
31
+ var _internal = require('@useupup/core/internal');
32
+ function useBox() {
33
+ const { core } = _chunkGVB7IFRPcjs.useUploaderRuntime.call(void 0, );
34
+ const { setActiveSource } = _chunkGVB7IFRPcjs.useUploaderSource.call(void 0, );
35
+ const { setFiles } = _chunkGVB7IFRPcjs.useUploaderFiles.call(void 0, );
36
+ if (!core) {
37
+ throw new Error("useBox must be used inside <UpupUploader />");
38
+ }
39
+ const controller = new (0, _internal.DriveBrowserController)(core, _core.BOX_DESCRIPTOR, {
40
+ onFilesSelected: (files) => {
41
+ setFiles(files);
42
+ },
43
+ onClose: () => {
44
+ setActiveSource(void 0);
45
+ }
46
+ });
47
+ const state = _vue.shallowRef.call(void 0, controller.getSnapshot());
48
+ let unsub = null;
49
+ _vue.onMounted.call(void 0, () => {
50
+ unsub = controller.subscribe(() => {
51
+ state.value = controller.getSnapshot();
52
+ });
53
+ controller.init();
54
+ });
55
+ _vue.onUnmounted.call(void 0, () => {
56
+ controller.destroy();
57
+ unsub == null ? void 0 : unsub();
58
+ });
59
+ return {
60
+ user: _vue.computed.call(void 0, () => state.value.user),
61
+ boxFiles: _vue.computed.call(void 0, () => state.value.folder),
62
+ logout: () => {
63
+ controller.signOut();
64
+ },
65
+ authenticate: () => {
66
+ controller.signIn();
67
+ },
68
+ token: _vue.computed.call(void 0,
69
+ () => state.value.isAuthenticated ? "active" : void 0
70
+ ),
71
+ isAuthenticated: _vue.computed.call(void 0, () => state.value.isAuthenticated),
72
+ isLoading: _vue.computed.call(void 0, () => state.value.isLoading),
73
+ path: _vue.computed.call(void 0, () => state.value.path),
74
+ setPath: (newPath) => {
75
+ controller.setPath(newPath);
76
+ },
77
+ handleClick: (file) => {
78
+ controller.handleClick(file);
79
+ },
80
+ selectedFiles: _vue.computed.call(void 0, () => state.value.selectedFiles),
81
+ showLoader: _vue.computed.call(void 0, () => state.value.showLoader),
82
+ handleSubmit: () => controller.handleSubmit(),
83
+ handleCancelDownload: () => {
84
+ controller.handleCancelDownload();
85
+ },
86
+ onSelectCurrentFolder: () => controller.onSelectCurrentFolder(),
87
+ isClickLoading: _vue.computed.call(void 0, () => state.value.isClickLoading),
88
+ error: _vue.computed.call(void 0, () => state.value.error),
89
+ hasMore: _vue.computed.call(void 0, () => state.value.hasMore),
90
+ isLoadingMore: _vue.computed.call(void 0, () => state.value.isLoadingMore),
91
+ loadMore: () => controller.loadMore()
92
+ };
93
+ }
94
+
95
+ // src/components/ClientBoxUploader.vue
96
+
97
+ var _sfc_main = /* @__PURE__ */ _vue.defineComponent.call(void 0, {
98
+ __name: "ClientBoxUploader",
99
+ setup(__props, { expose: __expose }) {
100
+ __expose();
101
+ const { user, boxFiles: driveFiles, logout, token, isAuthenticated, authenticate, isLoading, path, setPath, isClickLoading, handleClick, selectedFiles, showLoader, handleSubmit, handleCancelDownload, onSelectCurrentFolder, error, hasMore, isLoadingMore, loadMore } = useBox();
102
+ async function handleSignOut() {
103
+ logout();
104
+ }
105
+ const __returned__ = {
106
+ user,
107
+ driveFiles,
108
+ logout,
109
+ token,
110
+ isAuthenticated,
111
+ authenticate,
112
+ isLoading,
113
+ path,
114
+ setPath,
115
+ isClickLoading,
116
+ handleClick,
117
+ selectedFiles,
118
+ showLoader,
119
+ handleSubmit,
120
+ handleCancelDownload,
121
+ onSelectCurrentFolder,
122
+ error,
123
+ hasMore,
124
+ isLoadingMore,
125
+ loadMore,
126
+ handleSignOut,
127
+ DriveAuthFallback: _chunkD32QOALRcjs.DriveAuthFallback_default,
128
+ DriveBrowser: _chunkD32QOALRcjs.DriveBrowser_default
129
+ };
130
+ Object.defineProperty(__returned__, "__isScriptSetup", {
131
+ enumerable: false,
132
+ value: true
133
+ });
134
+ return __returned__;
135
+ }
136
+ });
137
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
138
+ return !$setup.isAuthenticated && !$setup.token && !$setup.isLoading ? (_vue.openBlock.call(void 0, ), _vue.createBlock.call(void 0, $setup["DriveAuthFallback"], {
139
+ key: 0,
140
+ "provider-name": "Box",
141
+ "on-retry": $setup.authenticate,
142
+ "data-upup-slot": "box-uploader"
143
+ }, null, 8, ["on-retry"])) : (_vue.openBlock.call(void 0, ), _vue.createBlock.call(void 0, $setup["DriveBrowser"], {
144
+ key: 1,
145
+ "drive-files": $setup.driveFiles,
146
+ user: $setup.user,
147
+ "handle-sign-out": $setup.handleSignOut,
148
+ "data-upup-slot": "box-uploader",
149
+ path: $setup.path,
150
+ "set-path": $setup.setPath,
151
+ "is-click-loading": $setup.isClickLoading,
152
+ "handle-click": $setup.handleClick,
153
+ "selected-files": $setup.selectedFiles,
154
+ "show-loader": $setup.showLoader,
155
+ "handle-submit": $setup.handleSubmit,
156
+ "handle-cancel-download": $setup.handleCancelDownload,
157
+ "on-select-current-folder": $setup.onSelectCurrentFolder,
158
+ error: $setup.error,
159
+ "has-more": $setup.hasMore,
160
+ "is-loading-more": $setup.isLoadingMore,
161
+ "load-more": $setup.loadMore
162
+ }, null, 8, [
163
+ "drive-files",
164
+ "user",
165
+ "path",
166
+ "set-path",
167
+ "is-click-loading",
168
+ "handle-click",
169
+ "selected-files",
170
+ "show-loader",
171
+ "handle-submit",
172
+ "handle-cancel-download",
173
+ "on-select-current-folder",
174
+ "error",
175
+ "has-more",
176
+ "is-loading-more",
177
+ "load-more"
178
+ ]));
179
+ }
180
+ var ClientBoxUploader_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\\ClientBoxUploader.vue"]]);
181
+
182
+ // src/components/BoxUploader.vue
183
+
184
+ var _sfc_main2 = /* @__PURE__ */ _vue.defineComponent.call(void 0, {
185
+ __name: "BoxUploader",
186
+ setup(__props, { expose: __expose }) {
187
+ __expose();
188
+ const { mode } = _chunkGVB7IFRPcjs.useUploaderRuntime.call(void 0, );
189
+ const { setActiveSource } = _chunkGVB7IFRPcjs.useUploaderSource.call(void 0, );
190
+ const __returned__ = {
191
+ mode,
192
+ setActiveSource,
193
+ ClientBoxUploader: ClientBoxUploader_default,
194
+ ServerModeDriveUploader: _chunkD32QOALRcjs.ServerModeDriveUploader_default
195
+ };
196
+ Object.defineProperty(__returned__, "__isScriptSetup", {
197
+ enumerable: false,
198
+ value: true
199
+ });
200
+ return __returned__;
201
+ }
202
+ });
203
+ function _sfc_render2(_ctx, _cache, $props, $setup, $data, $options) {
204
+ return $setup.mode === "server" ? (_vue.openBlock.call(void 0, ), _vue.createBlock.call(void 0, $setup["ServerModeDriveUploader"], {
205
+ key: 0,
206
+ provider: "box",
207
+ "on-back": () => $setup.setActiveSource(void 0)
208
+ }, null, 8, ["on-back"])) : (_vue.openBlock.call(void 0, ), _vue.createBlock.call(void 0, $setup["ClientBoxUploader"], { key: 1 }));
209
+ }
210
+ var BoxUploader_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\\BoxUploader.vue"]]);
211
+
212
+
213
+ exports.default = BoxUploader_default;
214
+ //# sourceMappingURL=BoxUploader-S6CGJLO7.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["c:\\Users\\amind\\OneDrive\\Desktop\\Projects\\INTERNAL\\upup\\packages\\vue\\dist\\BoxUploader-S6CGJLO7.cjs"],"names":[],"mappings":"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","file":"C:\\Users\\amind\\OneDrive\\Desktop\\Projects\\INTERNAL\\upup\\packages\\vue\\dist\\BoxUploader-S6CGJLO7.cjs","sourcesContent":[null]}