@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.
@@ -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: `silo-dropzone${className ? ` ${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
- style: { display: "none" },
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: `silo-progress-track${className ? ` ${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: "silo-progress-fill",
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
- const btn = (active) => ({
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", { style: { fontSize: 11, fontWeight: 700, color: "var(--silo-text-muted, #64748b)", letterSpacing: "0.05em", textTransform: "uppercase", marginBottom: 6 }, children: "Codec" }),
246
- /* @__PURE__ */ jsx("div", { style: { display: "flex", gap: 6, flexWrap: "wrap" }, children: CODECS.map((c) => /* @__PURE__ */ jsx(
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
- style: btn(codec === c.value),
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", { style: { fontSize: 11, fontWeight: 700, color: "var(--silo-text-muted, #64748b)", letterSpacing: "0.05em", textTransform: "uppercase", marginBottom: 6 }, children: "Resolu\xE7\xF5es" }),
260
- /* @__PURE__ */ jsxs("div", { style: { display: "flex", gap: 6, flexWrap: "wrap" }, children: [
261
- /* @__PURE__ */ jsx("button", { type: "button", onClick: () => onChange({ ...value, transcoding: "auto" }), style: btn(isAuto), children: "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
- style: btn(!isAuto && selectedRes.includes(r)),
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", { style: { fontSize: 11, fontWeight: 700, color: "var(--silo-text-muted, #64748b)", letterSpacing: "0.05em", textTransform: "uppercase", marginBottom: 8 }, children: "Recursos" }),
276
- /* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "column", gap: 8 }, children: [
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: `silo-video-uploader${className ? ` ${className}` : ""}`, style: containerStyle, children: [
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", { style: { display: "flex", flexDirection: "column", alignItems: "center", gap: 8 }, children: [
385
- /* @__PURE__ */ jsx("video", { src: preview, style: { maxWidth: "100%", maxHeight: 180, borderRadius: 8 }, muted: true, playsInline: true }),
386
- /* @__PURE__ */ jsx("span", { style: { fontSize: 12, color: "var(--silo-text-muted)" }, children: "Clique ou arraste para trocar o v\xEDdeo" })
387
- ] }) : /* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "column", alignItems: "center", gap: 8 }, children: [
388
- renderIcon ? renderIcon() : /* @__PURE__ */ jsx("svg", { width: "40", height: "40", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", style: { color: "var(--silo-text-muted)", opacity: 0.5 }, 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" }) }),
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", { style: { fontWeight: 700, fontSize: 15, color: "var(--silo-text)" }, children: "Arraste seu v\xEDdeo aqui" }),
391
- /* @__PURE__ */ jsx("span", { style: { fontSize: 13, color: "var(--silo-text-muted)" }, children: "ou clique para escolher do seu dispositivo" }),
392
- /* @__PURE__ */ jsxs("span", { style: { fontSize: 12, color: "var(--silo-text-muted)" }, children: [
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", { style: { borderRadius: 10, overflow: "hidden", border: "1px solid var(--silo-border)", background: "#000" }, children: /* @__PURE__ */ jsx("video", { src: preview, style: { width: "100%", maxHeight: 200, display: "block" }, muted: true, playsInline: true, controls: true }) }),
402
- /* @__PURE__ */ jsxs("div", { style: { borderRadius: 10, border: "1px solid var(--silo-border)", overflow: "hidden" }, children: [
403
- /* @__PURE__ */ jsx("div", { style: { padding: "8px 14px", background: "var(--silo-bg-hover, #f1f5f9)", fontSize: 12, fontWeight: 700, color: "var(--silo-text-muted)", letterSpacing: "0.04em" }, children: "\u{1F3AC} Configura\xE7\xF5es de v\xEDdeo" }),
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", { style: { display: "flex", gap: 8 }, children: [
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", { style: { display: "flex", flexDirection: "column", gap: 8, padding: 16, borderRadius: 10, border: "1px solid var(--silo-border)", background: "var(--silo-bg)" }, children: [
435
- /* @__PURE__ */ jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [
436
- /* @__PURE__ */ jsx("span", { style: { fontSize: 13, fontWeight: 600, color: "var(--silo-text)" }, children: uploadLabel(state.status, progress) }),
437
- /* @__PURE__ */ jsxs("div", { style: { display: "flex", gap: 8, alignItems: "center" }, children: [
438
- /* @__PURE__ */ jsxs("span", { style: { fontSize: 13, fontWeight: 700, color: "var(--silo-accent, #6366f1)" }, children: [
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("button", { onClick: pause, style: { background: "none", border: "1px solid var(--silo-border)", borderRadius: 6, cursor: "pointer", fontSize: 11, color: "var(--silo-text-muted)", padding: "2px 8px" }, children: "Pausar" })
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", { style: { fontSize: 11, color: "var(--silo-text-muted)" }, children: "O processamento do v\xEDdeo come\xE7a automaticamente ap\xF3s o envio" })
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", { style: { display: "flex", gap: 8 }, children: [
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", { style: { display: "flex", flexDirection: "column", gap: 8, padding: "14px 16px", borderRadius: 10, background: "rgba(34,197,94,0.08)", border: "1px solid rgba(34,197,94,0.2)" }, children: [
470
- /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: 12 }, children: [
471
- /* @__PURE__ */ jsx("span", { style: { fontSize: 24 }, children: "\u2705" }),
472
- /* @__PURE__ */ jsxs("div", { style: { flex: 1 }, children: [
473
- /* @__PURE__ */ jsx("div", { style: { fontWeight: 700, fontSize: 14, color: "#16a34a" }, children: "V\xEDdeo enviado com sucesso!" }),
474
- /* @__PURE__ */ jsx("div", { style: { fontSize: 12, color: "var(--silo-text-muted)", marginTop: 2 }, children: formatBytes(state.result.size) })
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", { style: { fontSize: 12, color: "var(--silo-text-muted)", padding: "8px 12px", borderRadius: 8, background: "rgba(34,197,94,0.06)", border: "1px solid rgba(34,197,94,0.15)" }, children: "\u{1F3AC} Seu v\xEDdeo est\xE1 sendo processado em segundo plano. Isso pode levar alguns minutos dependendo do tamanho." })
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", { style: { display: "flex", alignItems: "center", gap: 12, padding: "14px 16px", borderRadius: 10, background: "rgba(239,68,68,0.07)", border: "1px solid rgba(239,68,68,0.2)" }, children: [
491
- /* @__PURE__ */ jsx("span", { style: { fontSize: 22 }, children: "\u26A0\uFE0F" }),
492
- /* @__PURE__ */ jsxs("div", { style: { flex: 1 }, children: [
493
- /* @__PURE__ */ jsx("div", { style: { fontWeight: 700, fontSize: 13, color: "#ef4444" }, children: "N\xE3o foi poss\xEDvel enviar o v\xEDdeo" }),
494
- /* @__PURE__ */ jsx("div", { style: { fontSize: 12, color: "var(--silo-text-muted)", marginTop: 2 }, children: state.error.message })
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
  )