@geekapps/silo-elements-nextjs 0.2.35 → 0.2.37
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.
- package/dist/FileUploader.js +131 -182
- package/dist/FileUploader.js.map +1 -1
- package/dist/ImageUploader.js +63 -104
- package/dist/ImageUploader.js.map +1 -1
- package/dist/MediaUploader.js +271 -341
- package/dist/MediaUploader.js.map +1 -1
- package/dist/VideoUploader.js +91 -127
- package/dist/VideoUploader.js.map +1 -1
- package/dist/components/DropZone.js +8 -10
- package/dist/components/DropZone.js.map +1 -1
- package/dist/components/ProgressBar.js +4 -16
- package/dist/components/ProgressBar.js.map +1 -1
- package/dist/index.d.ts +1 -4
- package/dist/index.js +444 -627
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +6 -6
- package/styles.css +2 -0
package/dist/VideoUploader.js
CHANGED
|
@@ -86,20 +86,18 @@ function DropZone({
|
|
|
86
86
|
);
|
|
87
87
|
const rootStyle = {
|
|
88
88
|
...vars,
|
|
89
|
-
fontFamily: "var(--silo-font)",
|
|
90
|
-
border: `2px dashed ${dragging ? "var(--silo-border-active)" : "var(--silo-border)"}`,
|
|
91
|
-
borderRadius: "var(--silo-radius)",
|
|
92
|
-
backgroundColor: dragging ? "var(--silo-bg-hover)" : "var(--silo-bg)",
|
|
93
|
-
color: "var(--silo-text)",
|
|
94
|
-
cursor: disabled ? "not-allowed" : "pointer",
|
|
95
|
-
transition: "border-color 0.15s, background-color 0.15s",
|
|
96
|
-
opacity: disabled ? 0.5 : 1,
|
|
97
89
|
...style
|
|
98
90
|
};
|
|
91
|
+
const cls = [
|
|
92
|
+
"border-2 border-dashed border-slate-200 rounded-xl bg-slate-50 text-slate-900 cursor-pointer outline-none transition-colors duration-150",
|
|
93
|
+
dragging ? "border-indigo-500 bg-slate-100" : "hover:border-indigo-500 hover:bg-slate-100",
|
|
94
|
+
disabled ? "opacity-50 cursor-not-allowed" : "",
|
|
95
|
+
className
|
|
96
|
+
].filter(Boolean).join(" ");
|
|
99
97
|
return /* @__PURE__ */ jsxs(
|
|
100
98
|
"div",
|
|
101
99
|
{
|
|
102
|
-
className:
|
|
100
|
+
className: cls,
|
|
103
101
|
style: rootStyle,
|
|
104
102
|
onDragOver: (e) => {
|
|
105
103
|
e.preventDefault();
|
|
@@ -122,7 +120,7 @@ function DropZone({
|
|
|
122
120
|
type: "file",
|
|
123
121
|
accept,
|
|
124
122
|
multiple,
|
|
125
|
-
|
|
123
|
+
className: "hidden",
|
|
126
124
|
onChange: handleChange,
|
|
127
125
|
disabled
|
|
128
126
|
}
|
|
@@ -136,14 +134,8 @@ function ProgressBar({ progress, className = "", style }) {
|
|
|
136
134
|
return /* @__PURE__ */ jsx(
|
|
137
135
|
"div",
|
|
138
136
|
{
|
|
139
|
-
className: `
|
|
140
|
-
style
|
|
141
|
-
height: "6px",
|
|
142
|
-
borderRadius: "3px",
|
|
143
|
-
backgroundColor: "rgba(99,102,241,0.15)",
|
|
144
|
-
overflow: "hidden",
|
|
145
|
-
...style
|
|
146
|
-
},
|
|
137
|
+
className: `h-1 rounded-full bg-slate-200 overflow-hidden${className ? ` ${className}` : ""}`,
|
|
138
|
+
style,
|
|
147
139
|
role: "progressbar",
|
|
148
140
|
"aria-valuenow": progress,
|
|
149
141
|
"aria-valuemin": 0,
|
|
@@ -151,14 +143,8 @@ function ProgressBar({ progress, className = "", style }) {
|
|
|
151
143
|
children: /* @__PURE__ */ jsx(
|
|
152
144
|
"div",
|
|
153
145
|
{
|
|
154
|
-
className: "
|
|
155
|
-
style: {
|
|
156
|
-
height: "100%",
|
|
157
|
-
width: `${progress}%`,
|
|
158
|
-
backgroundColor: "var(--silo-accent, #6366f1)",
|
|
159
|
-
borderRadius: "3px",
|
|
160
|
-
transition: "width 0.2s ease"
|
|
161
|
-
}
|
|
146
|
+
className: "h-full rounded-full bg-indigo-500 transition-[width] duration-200 ease-linear",
|
|
147
|
+
style: { width: `${progress}%` }
|
|
162
148
|
}
|
|
163
149
|
)
|
|
164
150
|
}
|
|
@@ -179,6 +165,27 @@ var RESOLUTION_LABELS = {
|
|
|
179
165
|
"1440": "1440p",
|
|
180
166
|
"2160": "4K"
|
|
181
167
|
};
|
|
168
|
+
function optionBtnCls(active) {
|
|
169
|
+
return `py-1 px-2.5 rounded-md text-xs font-semibold cursor-pointer transition-colors border ${active ? "border-indigo-500 bg-indigo-500 text-white" : "border-slate-200 bg-transparent text-slate-900 hover:bg-slate-100"}`;
|
|
170
|
+
}
|
|
171
|
+
function Toggle({ checked, onToggle, label }) {
|
|
172
|
+
return /* @__PURE__ */ jsxs("label", { className: "inline-flex items-center gap-1.5 cursor-pointer select-none text-xs text-slate-900 font-medium", onClick: onToggle, children: [
|
|
173
|
+
/* @__PURE__ */ jsx(
|
|
174
|
+
"span",
|
|
175
|
+
{
|
|
176
|
+
className: `relative inline-block w-8 h-[18px] rounded-full shrink-0 cursor-pointer transition-colors duration-150 ${checked ? "bg-indigo-500" : "bg-slate-200"}`,
|
|
177
|
+
children: /* @__PURE__ */ jsx(
|
|
178
|
+
"span",
|
|
179
|
+
{
|
|
180
|
+
className: "absolute top-0.5 w-3.5 h-3.5 rounded-full bg-white shadow-sm transition-[left] duration-150",
|
|
181
|
+
style: { left: checked ? "16px" : "2px" }
|
|
182
|
+
}
|
|
183
|
+
)
|
|
184
|
+
}
|
|
185
|
+
),
|
|
186
|
+
label
|
|
187
|
+
] });
|
|
188
|
+
}
|
|
182
189
|
function VideoOptions({ value, onChange, style }) {
|
|
183
190
|
const codec = value.codec ?? "h264";
|
|
184
191
|
const transcoding = value.transcoding ?? "auto";
|
|
@@ -195,76 +202,31 @@ function VideoOptions({ value, onChange, style }) {
|
|
|
195
202
|
function toggleFeature(key) {
|
|
196
203
|
onChange({ ...value, [key]: !value[key] });
|
|
197
204
|
}
|
|
198
|
-
|
|
199
|
-
padding: "4px 10px",
|
|
200
|
-
borderRadius: 6,
|
|
201
|
-
border: `1px solid ${active ? "var(--silo-accent, #6366f1)" : "var(--silo-border, #e2e8f0)"}`,
|
|
202
|
-
background: active ? "var(--silo-accent, #6366f1)" : "transparent",
|
|
203
|
-
color: active ? "#fff" : "var(--silo-text, #0f172a)",
|
|
204
|
-
fontSize: 12,
|
|
205
|
-
fontWeight: 600,
|
|
206
|
-
cursor: "pointer"
|
|
207
|
-
});
|
|
208
|
-
const toggle = (on) => ({
|
|
209
|
-
display: "inline-flex",
|
|
210
|
-
alignItems: "center",
|
|
211
|
-
gap: 6,
|
|
212
|
-
cursor: "pointer",
|
|
213
|
-
userSelect: "none",
|
|
214
|
-
fontSize: 12,
|
|
215
|
-
color: "var(--silo-text, #0f172a)",
|
|
216
|
-
fontWeight: 500
|
|
217
|
-
});
|
|
218
|
-
function Toggle({ checked, onToggle, label }) {
|
|
219
|
-
return /* @__PURE__ */ jsxs("label", { style: toggle(), onClick: onToggle, children: [
|
|
220
|
-
/* @__PURE__ */ jsx("span", { style: {
|
|
221
|
-
width: 32,
|
|
222
|
-
height: 18,
|
|
223
|
-
borderRadius: 9,
|
|
224
|
-
flexShrink: 0,
|
|
225
|
-
background: checked ? "var(--silo-accent, #6366f1)" : "var(--silo-border, #e2e8f0)",
|
|
226
|
-
position: "relative",
|
|
227
|
-
transition: "background 0.15s",
|
|
228
|
-
cursor: "pointer"
|
|
229
|
-
}, children: /* @__PURE__ */ jsx("span", { style: {
|
|
230
|
-
position: "absolute",
|
|
231
|
-
top: 2,
|
|
232
|
-
left: checked ? 16 : 2,
|
|
233
|
-
width: 14,
|
|
234
|
-
height: 14,
|
|
235
|
-
borderRadius: "50%",
|
|
236
|
-
background: "#fff",
|
|
237
|
-
transition: "left 0.15s",
|
|
238
|
-
boxShadow: "0 1px 3px rgba(0,0,0,0.2)"
|
|
239
|
-
} }) }),
|
|
240
|
-
label
|
|
241
|
-
] });
|
|
242
|
-
}
|
|
243
|
-
return /* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "column", gap: 12, ...style }, children: [
|
|
205
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3", style, children: [
|
|
244
206
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
245
|
-
/* @__PURE__ */ jsx("div", {
|
|
246
|
-
/* @__PURE__ */ jsx("div", {
|
|
207
|
+
/* @__PURE__ */ jsx("div", { className: "text-[11px] font-bold text-slate-500 uppercase tracking-[0.05em] mb-1.5", children: "Codec" }),
|
|
208
|
+
/* @__PURE__ */ jsx("div", { className: "flex gap-1.5 flex-wrap", children: CODECS.map((c) => /* @__PURE__ */ jsx(
|
|
247
209
|
"button",
|
|
248
210
|
{
|
|
249
211
|
type: "button",
|
|
250
212
|
title: c.hint,
|
|
251
213
|
onClick: () => onChange({ ...value, codec: c.value }),
|
|
252
|
-
|
|
214
|
+
className: optionBtnCls(codec === c.value),
|
|
253
215
|
children: c.label
|
|
254
216
|
},
|
|
255
217
|
c.value
|
|
256
218
|
)) })
|
|
257
219
|
] }),
|
|
258
220
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
259
|
-
/* @__PURE__ */ jsx("div", {
|
|
260
|
-
/* @__PURE__ */ jsxs("div", {
|
|
261
|
-
/* @__PURE__ */ jsx("button", { type: "button", onClick: () => onChange({ ...value, transcoding: "auto" }),
|
|
221
|
+
/* @__PURE__ */ jsx("div", { className: "text-[11px] font-bold text-slate-500 uppercase tracking-[0.05em] mb-1.5", children: "Resolu\xE7\xF5es" }),
|
|
222
|
+
/* @__PURE__ */ jsxs("div", { className: "flex gap-1.5 flex-wrap", children: [
|
|
223
|
+
/* @__PURE__ */ jsx("button", { type: "button", onClick: () => onChange({ ...value, transcoding: "auto" }), className: optionBtnCls(isAuto), children: "Auto" }),
|
|
262
224
|
RESOLUTIONS.map((r) => /* @__PURE__ */ jsx(
|
|
263
225
|
"button",
|
|
264
226
|
{
|
|
265
227
|
type: "button",
|
|
266
228
|
onClick: () => toggleRes(r),
|
|
267
|
-
|
|
229
|
+
className: optionBtnCls(!isAuto && selectedRes.includes(r)),
|
|
268
230
|
children: RESOLUTION_LABELS[r]
|
|
269
231
|
},
|
|
270
232
|
r
|
|
@@ -272,8 +234,8 @@ function VideoOptions({ value, onChange, style }) {
|
|
|
272
234
|
] })
|
|
273
235
|
] }),
|
|
274
236
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
275
|
-
/* @__PURE__ */ jsx("div", {
|
|
276
|
-
/* @__PURE__ */ jsxs("div", {
|
|
237
|
+
/* @__PURE__ */ jsx("div", { className: "text-[11px] font-bold text-slate-500 uppercase tracking-[0.05em] mb-2", children: "Recursos" }),
|
|
238
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
277
239
|
/* @__PURE__ */ jsx(Toggle, { checked: value.thumbnails ?? true, onToggle: () => toggleFeature("thumbnails"), label: "Gerar thumbnails" }),
|
|
278
240
|
/* @__PURE__ */ jsx(Toggle, { checked: value.storyboard ?? false, onToggle: () => toggleFeature("storyboard"), label: "Gerar storyboard" }),
|
|
279
241
|
/* @__PURE__ */ jsx(Toggle, { checked: value.autoCaptions ?? false, onToggle: () => toggleFeature("autoCaptions"), label: "Legendas autom\xE1ticas (IA)" }),
|
|
@@ -358,19 +320,14 @@ function VideoUploader({
|
|
|
358
320
|
}, [showVideoOptions, video, videoOpts, doUpload, showPreview]);
|
|
359
321
|
const containerStyle = {
|
|
360
322
|
...vars,
|
|
361
|
-
display: "flex",
|
|
362
|
-
flexDirection: "column",
|
|
363
|
-
gap: "12px",
|
|
364
|
-
width: "100%",
|
|
365
|
-
fontFamily: "var(--silo-font)",
|
|
366
323
|
...style
|
|
367
324
|
};
|
|
368
325
|
const isUploading = state.status === "uploading" || state.status === "preparing" || state.status === "completing";
|
|
369
326
|
const progress = state.status === "uploading" ? state.progress : state.status === "completing" ? 99 : 0;
|
|
370
327
|
const isPaused = state.status === "idle" && preview !== null && !stagedFile;
|
|
371
|
-
if (state.status === "error" && renderError) return /* @__PURE__ */ jsx("div", { style: containerStyle, children: renderError(state.error, reset) });
|
|
372
|
-
if (state.status === "done" && renderSuccess) return /* @__PURE__ */ jsx("div", { style: containerStyle, children: renderSuccess(state.result) });
|
|
373
|
-
return /* @__PURE__ */ jsxs("div", { className: `
|
|
328
|
+
if (state.status === "error" && renderError) return /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-3 w-full", style: containerStyle, children: renderError(state.error, reset) });
|
|
329
|
+
if (state.status === "done" && renderSuccess) return /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-3 w-full", style: containerStyle, children: renderSuccess(state.result) });
|
|
330
|
+
return /* @__PURE__ */ jsxs("div", { className: `flex flex-col gap-3 w-full${className ? ` ${className}` : ""}`, style: containerStyle, children: [
|
|
374
331
|
/* @__PURE__ */ jsx(
|
|
375
332
|
DropZone,
|
|
376
333
|
{
|
|
@@ -381,15 +338,15 @@ function VideoUploader({
|
|
|
381
338
|
disabled: disabled || isUploading,
|
|
382
339
|
onFiles: handleFiles,
|
|
383
340
|
style: { padding: "32px 24px", textAlign: "center" },
|
|
384
|
-
children: preview && !isUploading && !stagedFile ? /* @__PURE__ */ jsxs("div", {
|
|
385
|
-
/* @__PURE__ */ jsx("video", { src: preview,
|
|
386
|
-
/* @__PURE__ */ jsx("span", {
|
|
387
|
-
] }) : /* @__PURE__ */ jsxs("div", {
|
|
388
|
-
renderIcon ? renderIcon() : /* @__PURE__ */ jsx("svg", { width: "40", height: "40", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor",
|
|
341
|
+
children: preview && !isUploading && !stagedFile ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-2", children: [
|
|
342
|
+
/* @__PURE__ */ jsx("video", { src: preview, className: "max-w-full max-h-[180px] rounded-lg", muted: true, playsInline: true }),
|
|
343
|
+
/* @__PURE__ */ jsx("span", { className: "text-[12px] text-slate-400", children: "Clique ou arraste para trocar o v\xEDdeo" })
|
|
344
|
+
] }) : /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-2", children: [
|
|
345
|
+
renderIcon ? renderIcon() : /* @__PURE__ */ jsx("svg", { width: "40", height: "40", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", className: "text-slate-400 opacity-50", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M15 10l4.553-2.069A1 1 0 0121 8.878v6.244a1 1 0 01-1.447.894L15 14M3 8a2 2 0 012-2h8a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2V8z" }) }),
|
|
389
346
|
children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
390
|
-
/* @__PURE__ */ jsx("span", {
|
|
391
|
-
/* @__PURE__ */ jsx("span", {
|
|
392
|
-
/* @__PURE__ */ jsxs("span", {
|
|
347
|
+
/* @__PURE__ */ jsx("span", { className: "text-slate-900 font-bold text-[15px]", children: "Arraste seu v\xEDdeo aqui" }),
|
|
348
|
+
/* @__PURE__ */ jsx("span", { className: "text-slate-500 text-[13px]", children: "ou clique para escolher do seu dispositivo" }),
|
|
349
|
+
/* @__PURE__ */ jsxs("span", { className: "text-slate-400 text-[12px]", children: [
|
|
393
350
|
"MP4, MOV, MKV, WebM",
|
|
394
351
|
maxSize ? ` \xB7 M\xE1x ${formatBytes(maxSize)}` : ""
|
|
395
352
|
] })
|
|
@@ -398,109 +355,116 @@ function VideoUploader({
|
|
|
398
355
|
}
|
|
399
356
|
),
|
|
400
357
|
showVideoOptions && stagedFile && !isUploading && state.status !== "done" && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
401
|
-
preview && /* @__PURE__ */ jsx("div", {
|
|
402
|
-
/* @__PURE__ */ jsxs("div", {
|
|
403
|
-
/* @__PURE__ */ jsx("div", {
|
|
358
|
+
preview && /* @__PURE__ */ jsx("div", { className: "border border-slate-200 rounded-xl overflow-hidden bg-black", children: /* @__PURE__ */ jsx("video", { src: preview, className: "w-full max-h-[200px] block", muted: true, playsInline: true, controls: true }) }),
|
|
359
|
+
/* @__PURE__ */ jsxs("div", { className: "border border-slate-200 rounded-xl overflow-hidden", children: [
|
|
360
|
+
/* @__PURE__ */ jsx("div", { className: "px-3.5 py-2 bg-slate-100 text-[12px] font-bold text-slate-500 tracking-[0.04em]", children: "\u{1F3AC} Configura\xE7\xF5es de v\xEDdeo" }),
|
|
404
361
|
/* @__PURE__ */ jsx(VideoOptions, { value: videoOpts, onChange: setVideoOpts, style: { padding: "12px 14px" } })
|
|
405
362
|
] }),
|
|
406
|
-
/* @__PURE__ */ jsxs("div", {
|
|
363
|
+
/* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
|
|
407
364
|
/* @__PURE__ */ jsx(
|
|
408
365
|
"button",
|
|
409
366
|
{
|
|
367
|
+
className: "inline-flex items-center justify-center gap-1.5 text-sm font-bold py-2.5 px-4 rounded-xl border border-slate-200 bg-transparent text-slate-900 cursor-pointer hover:bg-slate-100",
|
|
410
368
|
onClick: () => {
|
|
411
369
|
setStagedFile(null);
|
|
412
370
|
setPreview(null);
|
|
413
371
|
setVideoOpts(createInitialVideoOpts(video));
|
|
414
372
|
},
|
|
415
|
-
style: { padding: "10px 16px", borderRadius: 8, border: "1px solid var(--silo-border)", background: "transparent", color: "var(--silo-text-muted)", fontSize: 13, fontWeight: 600, cursor: "pointer" },
|
|
416
373
|
children: "Cancelar"
|
|
417
374
|
}
|
|
418
375
|
),
|
|
419
376
|
/* @__PURE__ */ jsx(
|
|
420
377
|
"button",
|
|
421
378
|
{
|
|
379
|
+
className: "flex-1 inline-flex items-center justify-center gap-1.5 text-sm font-bold py-2.5 px-4 rounded-xl border-transparent bg-indigo-500 text-white cursor-pointer hover:opacity-90",
|
|
422
380
|
onClick: () => {
|
|
423
381
|
const f = stagedFile;
|
|
424
382
|
setStagedFile(null);
|
|
425
383
|
void doUpload(f, videoOpts);
|
|
426
384
|
setVideoOpts(createInitialVideoOpts(video));
|
|
427
385
|
},
|
|
428
|
-
style: { flex: 1, padding: "10px", borderRadius: 8, border: "none", background: "var(--silo-accent, #6366f1)", color: "#fff", fontSize: 14, fontWeight: 700, cursor: "pointer" },
|
|
429
386
|
children: "Enviar v\xEDdeo"
|
|
430
387
|
}
|
|
431
388
|
)
|
|
432
389
|
] })
|
|
433
390
|
] }),
|
|
434
|
-
isUploading && (renderProgress ? renderProgress(progress) : /* @__PURE__ */ jsxs("div", {
|
|
435
|
-
/* @__PURE__ */ jsxs("div", {
|
|
436
|
-
/* @__PURE__ */ jsx("span", {
|
|
437
|
-
/* @__PURE__ */ jsxs("div", {
|
|
438
|
-
/* @__PURE__ */ jsxs("span", {
|
|
391
|
+
isUploading && (renderProgress ? renderProgress(progress) : /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 px-3 py-4 bg-slate-50 rounded-xl border border-slate-200", children: [
|
|
392
|
+
/* @__PURE__ */ jsxs("div", { className: "flex justify-between items-center", children: [
|
|
393
|
+
/* @__PURE__ */ jsx("span", { className: "text-[13px] font-semibold text-slate-900", children: uploadLabel(state.status, progress) }),
|
|
394
|
+
/* @__PURE__ */ jsxs("div", { className: "flex gap-2 items-center", children: [
|
|
395
|
+
/* @__PURE__ */ jsxs("span", { className: "text-[13px] font-bold text-indigo-500", children: [
|
|
439
396
|
progress,
|
|
440
397
|
"%"
|
|
441
398
|
] }),
|
|
442
|
-
/* @__PURE__ */ jsx(
|
|
399
|
+
/* @__PURE__ */ jsx(
|
|
400
|
+
"button",
|
|
401
|
+
{
|
|
402
|
+
className: "inline-flex items-center justify-center text-[11px] font-semibold py-0.5 px-2 rounded-lg border border-slate-200 bg-transparent text-slate-900 cursor-pointer hover:bg-slate-100",
|
|
403
|
+
onClick: pause,
|
|
404
|
+
children: "Pausar"
|
|
405
|
+
}
|
|
406
|
+
)
|
|
443
407
|
] })
|
|
444
408
|
] }),
|
|
445
409
|
/* @__PURE__ */ jsx(ProgressBar, { progress }),
|
|
446
|
-
/* @__PURE__ */ jsx("span", {
|
|
410
|
+
/* @__PURE__ */ jsx("span", { className: "text-[11px] text-slate-400", children: "O processamento do v\xEDdeo come\xE7a automaticamente ap\xF3s o envio" })
|
|
447
411
|
] })),
|
|
448
|
-
isPaused && /* @__PURE__ */ jsxs("div", {
|
|
412
|
+
isPaused && /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
|
|
449
413
|
/* @__PURE__ */ jsx(
|
|
450
414
|
"button",
|
|
451
415
|
{
|
|
416
|
+
className: "flex-1 inline-flex items-center justify-center gap-1.5 text-sm font-bold py-2.5 px-4 rounded-xl border-transparent bg-emerald-500 text-white cursor-pointer hover:opacity-90",
|
|
452
417
|
onClick: () => resume({ ...bucket !== void 0 && { bucket }, video: videoOpts }),
|
|
453
|
-
style: { flex: 1, padding: "10px", borderRadius: 8, border: "none", background: "#10b981", color: "#fff", fontSize: 13, fontWeight: 700, cursor: "pointer" },
|
|
454
418
|
children: "\u25B6 Retomar envio"
|
|
455
419
|
}
|
|
456
420
|
),
|
|
457
421
|
/* @__PURE__ */ jsx(
|
|
458
422
|
"button",
|
|
459
423
|
{
|
|
424
|
+
className: "inline-flex items-center justify-center gap-1.5 text-sm font-bold py-2.5 px-4 rounded-xl border border-slate-200 bg-transparent text-slate-900 cursor-pointer hover:bg-slate-100",
|
|
460
425
|
onClick: () => {
|
|
461
426
|
abort();
|
|
462
427
|
setPreview(null);
|
|
463
428
|
},
|
|
464
|
-
style: { padding: "10px 16px", borderRadius: 8, border: "1px solid var(--silo-border)", background: "transparent", fontSize: 13, cursor: "pointer", color: "var(--silo-text-muted)" },
|
|
465
429
|
children: "Cancelar"
|
|
466
430
|
}
|
|
467
431
|
)
|
|
468
432
|
] }),
|
|
469
|
-
state.status === "done" && !renderSuccess && /* @__PURE__ */ jsxs("div", {
|
|
470
|
-
/* @__PURE__ */ jsxs("div", {
|
|
471
|
-
/* @__PURE__ */ jsx("span", {
|
|
472
|
-
/* @__PURE__ */ jsxs("div", {
|
|
473
|
-
/* @__PURE__ */ jsx("div", {
|
|
474
|
-
/* @__PURE__ */ jsx("div", {
|
|
433
|
+
state.status === "done" && !renderSuccess && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 px-4 py-3.5 bg-green-500/[0.08] rounded-xl border border-green-500/20", children: [
|
|
434
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
435
|
+
/* @__PURE__ */ jsx("span", { className: "text-2xl", children: "\u2705" }),
|
|
436
|
+
/* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
|
|
437
|
+
/* @__PURE__ */ jsx("div", { className: "font-bold text-sm text-green-700", children: "V\xEDdeo enviado com sucesso!" }),
|
|
438
|
+
/* @__PURE__ */ jsx("div", { className: "text-[12px] text-slate-400 mt-0.5", children: formatBytes(state.result.size) })
|
|
475
439
|
] }),
|
|
476
440
|
/* @__PURE__ */ jsx(
|
|
477
441
|
"button",
|
|
478
442
|
{
|
|
443
|
+
className: "inline-flex items-center justify-center text-xs font-semibold py-1 px-2.5 rounded-lg border border-green-500/30 text-green-700 bg-transparent cursor-pointer hover:bg-green-500/10 shrink-0",
|
|
479
444
|
onClick: () => {
|
|
480
445
|
reset();
|
|
481
446
|
setPreview(null);
|
|
482
447
|
},
|
|
483
|
-
style: { background: "none", border: "1px solid rgba(34,197,94,0.3)", borderRadius: 6, cursor: "pointer", fontSize: 12, fontWeight: 600, color: "#16a34a", padding: "4px 10px", flexShrink: 0 },
|
|
484
448
|
children: "Enviar outro"
|
|
485
449
|
}
|
|
486
450
|
)
|
|
487
451
|
] }),
|
|
488
|
-
/* @__PURE__ */ jsx("div", {
|
|
452
|
+
/* @__PURE__ */ jsx("div", { className: "text-[12px] text-slate-500 px-3 py-2 rounded-lg bg-green-500/[0.06] border border-green-500/15", children: "\u{1F3AC} Seu v\xEDdeo est\xE1 sendo processado em segundo plano. Isso pode levar alguns minutos dependendo do tamanho." })
|
|
489
453
|
] }),
|
|
490
|
-
state.status === "error" && !renderError && /* @__PURE__ */ jsxs("div", {
|
|
491
|
-
/* @__PURE__ */ jsx("span", {
|
|
492
|
-
/* @__PURE__ */ jsxs("div", {
|
|
493
|
-
/* @__PURE__ */ jsx("div", {
|
|
494
|
-
/* @__PURE__ */ jsx("div", {
|
|
454
|
+
state.status === "error" && !renderError && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 px-4 py-3.5 bg-red-500/[0.07] rounded-xl border border-red-500/20", children: [
|
|
455
|
+
/* @__PURE__ */ jsx("span", { className: "text-[22px]", children: "\u26A0\uFE0F" }),
|
|
456
|
+
/* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
|
|
457
|
+
/* @__PURE__ */ jsx("div", { className: "font-bold text-[13px] text-red-500", children: "N\xE3o foi poss\xEDvel enviar o v\xEDdeo" }),
|
|
458
|
+
/* @__PURE__ */ jsx("div", { className: "text-[12px] text-slate-400 mt-0.5", children: state.error.message })
|
|
495
459
|
] }),
|
|
496
460
|
/* @__PURE__ */ jsx(
|
|
497
461
|
"button",
|
|
498
462
|
{
|
|
463
|
+
className: "inline-flex items-center justify-center text-xs font-semibold py-1 px-2.5 rounded-lg border border-red-500/30 text-red-500 bg-transparent cursor-pointer hover:bg-red-500/10 shrink-0",
|
|
499
464
|
onClick: () => {
|
|
500
465
|
reset();
|
|
501
466
|
setPreview(null);
|
|
502
467
|
},
|
|
503
|
-
style: { background: "none", border: "1px solid rgba(239,68,68,0.3)", borderRadius: 6, cursor: "pointer", fontSize: 12, fontWeight: 600, color: "#ef4444", padding: "4px 10px", flexShrink: 0 },
|
|
504
468
|
children: "Tentar novamente"
|
|
505
469
|
}
|
|
506
470
|
)
|