callix-dialer-widget 1.3.1 → 1.3.3

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.
@@ -53617,7 +53617,7 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
53617
53617
  });
53618
53618
  }, [operatorState, currentCall]);
53619
53619
  useEffect(() => {
53620
- console.log("[FloatingDialer] Qualificações:", {
53620
+ console.log("[FloatingDialer] Qualifica��es:", {
53621
53621
  success: successQualifications,
53622
53622
  discard: discardQualifications,
53623
53623
  callState: operatorState == null ? void 0 : operatorState.state
@@ -53625,7 +53625,7 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
53625
53625
  }, [successQualifications, discardQualifications, operatorState == null ? void 0 : operatorState.state]);
53626
53626
  useEffect(() => {
53627
53627
  if ((currentCall == null ? void 0 : currentCall.direction) === "incoming") {
53628
- console.log("[FloatingDialer] ⚠️ CHAMADA RECEBIDA:", {
53628
+ console.log("[FloatingDialer] ?? CHAMADA RECEBIDA:", {
53629
53629
  call: currentCall,
53630
53630
  direction: currentCall.direction,
53631
53631
  state: operatorState == null ? void 0 : operatorState.state,
@@ -53717,7 +53717,7 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
53717
53717
  if (callState === "afterCall") {
53718
53718
  const shouldSkipQualification = (currentCallInfo == null ? void 0 : currentCallInfo.type) === "campaign" && currentCallInfo.info.campaign.skipCallQualification === true;
53719
53719
  if (shouldSkipQualification) {
53720
- console.log("[FloatingDialer] 🔄 skipCallQualification ativado - finalizando automaticamente");
53720
+ console.log("[FloatingDialer] ?? skipCallQualification ativado - finalizando automaticamente");
53721
53721
  if (typeof finishAfterCall === "function") {
53722
53722
  void Promise.resolve(
53723
53723
  finishAfterCall({
@@ -53813,16 +53813,32 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
53813
53813
  }, []);
53814
53814
  useEffect(() => {
53815
53815
  if (!currentCall || callState !== "callInProgress") {
53816
+ if (callDurationSeconds > 0) {
53817
+ console.log("[FloatingDialer] ?? Timer resetado (chamada n�o est� em progresso)");
53818
+ }
53816
53819
  setCallDurationSeconds(0);
53817
53820
  setNetworkMetric(INITIAL_NETWORK_METRIC);
53818
53821
  setAudioMetric(INITIAL_AUDIO_METRIC);
53819
53822
  return;
53820
53823
  }
53821
- setCallDurationSeconds(Math.floor(currentCall.currentDurationSeconds ?? 0));
53824
+ const initialDuration = Math.floor(currentCall.currentDurationSeconds ?? 0);
53825
+ setCallDurationSeconds(initialDuration);
53826
+ console.log("[FloatingDialer] ?? Timer iniciado:", {
53827
+ initialDuration,
53828
+ currentDurationSeconds: currentCall.currentDurationSeconds,
53829
+ callState
53830
+ });
53822
53831
  const timer = window.setInterval(() => {
53823
- setCallDurationSeconds(Math.floor(currentCall.currentDurationSeconds ?? 0));
53832
+ const duration = Math.floor(currentCall.currentDurationSeconds ?? 0);
53833
+ setCallDurationSeconds(duration);
53834
+ if (duration % 5 === 0 && duration > 0) {
53835
+ console.log("[FloatingDialer] ?? Timer atualizado:", duration, "segundos");
53836
+ }
53824
53837
  }, 1e3);
53825
- return () => window.clearInterval(timer);
53838
+ return () => {
53839
+ console.log("[FloatingDialer] ?? Timer parado");
53840
+ window.clearInterval(timer);
53841
+ };
53826
53842
  }, [currentCall, callState]);
53827
53843
  useEffect(() => {
53828
53844
  if (!currentCall || callState !== "callInProgress") {
@@ -54123,7 +54139,7 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
54123
54139
  console.log("[FloatingDialer] Entrou em pausa com sucesso:", breakId);
54124
54140
  } catch (error2) {
54125
54141
  console.error("[FloatingDialer] Erro ao entrar em pausa:", error2);
54126
- setBreakError(error2 instanceof Error ? error2.message : "Não foi possível entrar em pausa.");
54142
+ setBreakError(error2 instanceof Error ? error2.message : "N�o foi poss�vel entrar em pausa.");
54127
54143
  }
54128
54144
  }, [goOnBreak]);
54129
54145
  const handleGoOffBreak = useCallback(async () => {
@@ -54132,7 +54148,7 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
54132
54148
  console.log("[FloatingDialer] Saiu da pausa com sucesso");
54133
54149
  } catch (error2) {
54134
54150
  console.error("[FloatingDialer] Erro ao sair da pausa:", error2);
54135
- setAvailabilityError("Não foi possível sair da pausa.");
54151
+ setAvailabilityError("N�o foi poss�vel sair da pausa.");
54136
54152
  }
54137
54153
  }, [goOffBreak]);
54138
54154
  useEffect(() => {
@@ -54375,88 +54391,90 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
54375
54391
  if (callState === "afterCall") {
54376
54392
  const options = afterCallResult === "success" ? successQualifications : discardQualifications;
54377
54393
  const hasOptions = options.length > 0;
54378
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
54394
+ console.log("[FloatingDialer Mini] ?? TELA DE QUALIFICA��O:", {
54395
+ callState,
54396
+ afterCallResult,
54397
+ successQualifications: successQualifications.length,
54398
+ discardQualifications: discardQualifications.length,
54399
+ hasOptions,
54400
+ selectedQualificationId
54401
+ });
54402
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
54379
54403
  "div",
54380
54404
  {
54381
- className: ["callix", "mode", "min", tw`flex w-full max-w-full flex-col gap-2 rounded-2xl border border-slate-200 bg-white/95 p-2.5 shadow-sm text-slate-800`].join(" "),
54405
+ className: ["callix", "mode", "min", tw`flex w-full max-w-full flex-col gap-1.5 rounded-2xl border border-slate-200 bg-white/95 p-2 shadow-sm text-slate-800 overflow-hidden`].join(" "),
54382
54406
  "data-callix-variant": "min",
54383
- children: [
54384
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`text-center space-y-0.5`, children: [
54385
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: tw`text-[9px] uppercase tracking-wide text-slate-500`, children: "Logado como" }),
54386
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: tw`text-xs font-semibold text-slate-800`, children: username })
54407
+ children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`space-y-1.5 rounded-xl border border-slate-200 bg-slate-50 px-2 py-1.5 overflow-hidden`, children: [
54408
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
54409
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: tw`text-[10px] font-semibold text-slate-700`, children: "Qualifique a chamada" }),
54410
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: tw`text-[8px] text-slate-500`, children: "Esta etapa e obrigatoria." })
54387
54411
  ] }),
54388
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`space-y-2 rounded-xl border border-slate-200 bg-slate-50 px-2.5 py-2`, children: [
54389
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
54390
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: tw`text-[11px] font-semibold text-slate-700`, children: "Qualifique a chamada" }),
54391
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: tw`text-[9px] text-slate-500`, children: "Esta etapa e obrigatoria." })
54392
- ] }),
54393
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`grid grid-cols-2 gap-1.5`, children: [
54394
- /* @__PURE__ */ jsxRuntimeExports.jsx(
54395
- "button",
54396
- {
54397
- type: "button",
54398
- onClick: () => setAfterCallResult("success"),
54399
- className: tw`${afterCallResult === "success" ? "bg-emerald-500 text-white shadow-md" : "bg-white text-slate-600"} rounded-lg border border-slate-200 px-2 py-1 text-[9px] font-semibold transition`,
54400
- children: "Atendimento concluido"
54401
- }
54402
- ),
54403
- /* @__PURE__ */ jsxRuntimeExports.jsx(
54404
- "button",
54405
- {
54406
- type: "button",
54407
- onClick: () => setAfterCallResult("failure"),
54408
- className: tw`${afterCallResult === "failure" ? "bg-rose-500 text-white shadow-md" : "bg-white text-slate-600"} rounded-lg border border-slate-200 px-2 py-1 text-[9px] font-semibold transition`,
54409
- children: "Atendimento descartado"
54410
- }
54411
- )
54412
- ] }),
54413
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`space-y-1`, children: [
54414
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: tw`text-[9px] font-medium text-slate-700`, children: "Selecione uma qualificacao" }),
54415
- hasOptions ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: tw`max-h-32 space-y-1 overflow-y-auto pr-0.5`, children: options.map((qualification) => {
54416
- const isSelected = selectedQualificationId === qualification.id;
54417
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
54418
- "button",
54419
- {
54420
- type: "button",
54421
- onClick: () => setSelectedQualificationId(qualification.id),
54422
- className: tw`${isSelected ? "ring-1 ring-primary bg-primary/10 border-primary" : "border-slate-200 bg-white"} w-full rounded-lg border px-2 py-1 text-left transition`,
54423
- children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: tw`text-[10px] font-semibold text-slate-800 leading-tight`, children: qualification.name })
54424
- },
54425
- qualification.id
54426
- );
54427
- }) }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: tw`rounded-lg border border-amber-200 bg-amber-50 px-2 py-1 text-[9px] text-amber-700`, children: "Nenhuma qualificacao disponivel." })
54428
- ] }),
54429
- afterCallError && /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: tw`text-[9px] text-red-500`, children: afterCallError }),
54430
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
54412
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`grid grid-cols-2 gap-1`, children: [
54413
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
54431
54414
  "button",
54432
54415
  {
54433
54416
  type: "button",
54434
- onClick: handleFinishAfterCall,
54435
- disabled: !hasOptions || !selectedQualificationId || isSubmittingAfterCall,
54436
- className: tw`flex w-full items-center justify-center gap-1.5 rounded-lg bg-primary px-3 py-1.5 text-[10px] font-bold text-white shadow-md transition disabled:cursor-not-allowed disabled:opacity-60`,
54437
- children: [
54438
- isSubmittingAfterCall && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: tw`inline-flex h-3 w-3 animate-spin rounded-full border-2 border-white/40 border-t-white` }),
54439
- "Finalizar atendimento"
54440
- ]
54417
+ onClick: () => setAfterCallResult("success"),
54418
+ className: tw`${afterCallResult === "success" ? "bg-green-500 text-white shadow-md" : "bg-white text-slate-600"} rounded-md border border-slate-200 px-1.5 py-0.5 text-[8px] font-semibold transition`,
54419
+ children: "Concluido"
54420
+ }
54421
+ ),
54422
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
54423
+ "button",
54424
+ {
54425
+ type: "button",
54426
+ onClick: () => setAfterCallResult("failure"),
54427
+ className: tw`${afterCallResult === "failure" ? "bg-rose-500 text-white shadow-md" : "bg-white text-slate-600"} rounded-md border border-slate-200 px-1.5 py-0.5 text-[8px] font-semibold transition`,
54428
+ children: "Descartado"
54441
54429
  }
54442
54430
  )
54443
54431
  ] }),
54432
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`space-y-1`, children: [
54433
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: tw`text-[8px] font-medium text-slate-700`, children: "Selecione qualificacao" }),
54434
+ hasOptions ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: tw`max-h-20 space-y-0.5 overflow-y-auto pr-0.5`, children: options.map((qualification) => {
54435
+ const isSelected = selectedQualificationId === qualification.id;
54436
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
54437
+ "button",
54438
+ {
54439
+ type: "button",
54440
+ onClick: () => setSelectedQualificationId(qualification.id),
54441
+ className: tw`${isSelected ? "ring-1 ring-blue-400 bg-blue-50 border-blue-300" : "border-slate-200 bg-white"} w-full rounded-md border px-1.5 py-0.5 text-left transition`,
54442
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: tw`text-[8px] font-semibold text-slate-800 leading-tight truncate`, children: qualification.name })
54443
+ },
54444
+ qualification.id
54445
+ );
54446
+ }) }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: tw`rounded-md border border-amber-200 bg-amber-50 px-1.5 py-0.5 text-[8px] text-amber-700`, children: "Nenhuma qualificacao disponivel." })
54447
+ ] }),
54448
+ afterCallError && /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: tw`text-[8px] text-red-500`, children: afterCallError }),
54444
54449
  /* @__PURE__ */ jsxRuntimeExports.jsxs(
54445
54450
  "button",
54446
54451
  {
54447
54452
  type: "button",
54448
- onClick: onLogout,
54449
- className: tw`flex w-full items-center justify-center gap-1 rounded-lg border border-slate-200 bg-white px-3 py-1 text-[10px] font-semibold text-slate-600 transition hover:text-red-500`,
54453
+ onClick: handleFinishAfterCall,
54454
+ disabled: !hasOptions || !selectedQualificationId || isSubmittingAfterCall,
54455
+ className: tw`flex w-full items-center justify-center gap-1 rounded-md bg-blue-500 px-2 py-1 text-[8px] font-bold text-white shadow-md transition hover:bg-blue-600 disabled:cursor-not-allowed disabled:opacity-60`,
54450
54456
  children: [
54451
- /* @__PURE__ */ jsxRuntimeExports.jsx(FiLogOut, { className: tw`text-[10px]` }),
54452
- "Sair"
54457
+ isSubmittingAfterCall && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: tw`inline-flex h-2.5 w-2.5 animate-spin rounded-full border border-white/40 border-t-white` }),
54458
+ "Finalizar"
54453
54459
  ]
54454
54460
  }
54455
54461
  )
54456
- ]
54462
+ ] })
54457
54463
  }
54458
54464
  );
54459
54465
  }
54466
+ console.log("[FloatingDialer Mini] ?? Estado da Chamada:", {
54467
+ isCallActive,
54468
+ callState,
54469
+ statusLabel,
54470
+ isInCall,
54471
+ isConnecting,
54472
+ isRinging,
54473
+ callDurationSeconds,
54474
+ callTarget,
54475
+ statusVisualUsed: isCallActive ? "GREEN (green)" : "statusVisual",
54476
+ timerVisible: isCallActive && callDurationSeconds > 0
54477
+ });
54460
54478
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
54461
54479
  "div",
54462
54480
  {
@@ -54464,7 +54482,7 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
54464
54482
  "data-callix-variant": "min",
54465
54483
  children: [
54466
54484
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`flex items-center justify-between gap-2`, children: [
54467
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`${isCallActive ? "border-emerald-200 bg-emerald-50 text-emerald-700" : statusVisual.badgeClass} flex items-center gap-1 rounded-full border px-2 py-0.5 text-[10px] font-semibold uppercase leading-tight`, children: [
54485
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`${isCallActive ? "border-green-200 bg-green-50 text-green-700" : statusVisual.badgeClass} flex items-center gap-1 rounded-full border px-2 py-0.5 text-[10px] font-semibold uppercase leading-tight`, children: [
54468
54486
  /* @__PURE__ */ jsxRuntimeExports.jsx(statusVisual.Icon, { className: tw`text-xs` }),
54469
54487
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: statusLabel })
54470
54488
  ] }),
@@ -54473,7 +54491,7 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
54473
54491
  {
54474
54492
  type: "button",
54475
54493
  onClick: () => handleGoOffBreak(),
54476
- className: tw`inline-flex items-center gap-1 rounded-full border border-emerald-400 bg-emerald-50 px-2.5 py-1 text-[10px] font-semibold text-emerald-700 transition hover:bg-emerald-100`,
54494
+ className: tw`inline-flex items-center gap-1 rounded-full border border-green-400 bg-green-50 px-2.5 py-1 text-[10px] font-semibold text-green-700 transition hover:bg-green-100`,
54477
54495
  children: [
54478
54496
  /* @__PURE__ */ jsxRuntimeExports.jsx(FiCheckCircle, { className: tw`text-xs` }),
54479
54497
  "Voltar"
@@ -54492,16 +54510,17 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
54492
54510
  }
54493
54511
  )
54494
54512
  ] }),
54495
- isCallActive ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: tw`rounded-xl border border-emerald-200 bg-gradient-to-br from-emerald-50 to-white px-3 py-2`, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`flex items-center gap-2`, children: [
54496
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: tw`flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-emerald-500 ${callDurationSeconds > 0 ? "animate-pulse" : ""}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx(FiPhoneCall, { className: tw`text-xs text-white` }) }),
54513
+ isCallActive ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: tw`rounded-xl border border-green-200 bg-gradient-to-br from-green-50 to-white px-3 py-2`, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`flex items-center gap-2`, children: [
54514
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: tw`flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-green-500 ${callDurationSeconds > 0 ? "animate-pulse" : ""}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx(FiPhoneCall, { className: tw`text-xs text-white` }) }),
54497
54515
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`flex min-w-0 flex-1 flex-col gap-0.5`, children: [
54498
54516
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: tw`truncate font-mono text-sm font-bold text-slate-800`, children: (callTarget == null ? void 0 : callTarget.replace(/^\+55/, "")) || "Conectando..." }),
54499
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: tw`text-[9px] font-medium uppercase tracking-wider text-emerald-600`, children: statusLabel })
54517
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: tw`text-[9px] font-medium uppercase tracking-wider text-green-600`, children: statusLabel })
54500
54518
  ] }),
54501
- callDurationSeconds > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`flex shrink-0 items-center gap-1 rounded-lg bg-emerald-500 px-2 py-1`, children: [
54519
+ callDurationSeconds > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`flex shrink-0 items-center gap-1 rounded-lg bg-green-500 px-2 py-1`, children: [
54502
54520
  /* @__PURE__ */ jsxRuntimeExports.jsx(FiClock, { className: tw`text-[10px] text-white` }),
54503
54521
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: tw`tabular-nums text-xs font-bold text-white`, children: formatDuration(callDurationSeconds) })
54504
- ] })
54522
+ ] }),
54523
+ console.log("[FloatingDialer Mini] 🕐 Timer Debug:", { callDurationSeconds, shouldShowTimer: callDurationSeconds > 0, formattedDuration: formatDuration(callDurationSeconds), isCallActive })
54505
54524
  ] }) }) : /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`space-y-1 rounded-xl border border-slate-200 bg-slate-50 px-3 py-2`, children: [
54506
54525
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: tw`text-[10px] font-semibold uppercase tracking-wide text-slate-500`, children: "Numero" }),
54507
54526
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`flex items-center gap-2`, children: [
@@ -54556,7 +54575,7 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
54556
54575
  }
54557
54576
  },
54558
54577
  disabled: callButtonDisabled,
54559
- className: tw`${isCallActive ? "bg-rose-500 hover:bg-rose-600" : "bg-emerald-500 hover:bg-emerald-600"} flex h-11 w-full items-center justify-center gap-2 rounded-xl text-sm font-bold text-white shadow-md transition disabled:cursor-not-allowed disabled:opacity-60`,
54578
+ className: tw`${isCallActive ? "bg-rose-500 hover:bg-rose-600" : "bg-green-500 hover:bg-green-600"} flex h-11 w-full items-center justify-center gap-2 rounded-xl text-sm font-bold text-white shadow-md transition disabled:cursor-not-allowed disabled:opacity-60`,
54560
54579
  children: [
54561
54580
  /* @__PURE__ */ jsxRuntimeExports.jsx(FiPhone, { className: tw`text-base` }),
54562
54581
  isCallActive ? "Encerrar" : "Ligar"
@@ -54611,7 +54630,7 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
54611
54630
  {
54612
54631
  type: "button",
54613
54632
  onClick: handleGoOffBreak,
54614
- className: tw`inline-flex items-center gap-1 rounded-lg border border-emerald-300 bg-emerald-50 px-2 py-1 text-[10px] font-bold text-emerald-700 transition-all hover:bg-emerald-100 hover:shadow-sm`,
54633
+ className: tw`inline-flex items-center gap-1 rounded-lg border border-green-300 bg-green-50 px-2 py-1 text-[10px] font-bold text-green-700 transition-all hover:bg-green-100 hover:shadow-sm`,
54615
54634
  "aria-label": "Sair da pausa",
54616
54635
  children: [
54617
54636
  /* @__PURE__ */ jsxRuntimeExports.jsx(FiCheckCircle, { className: tw`text-xs` }),
@@ -54670,14 +54689,14 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
54670
54689
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`flex items-center justify-between mb-2`, children: [
54671
54690
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`flex items-center gap-1.5`, children: [
54672
54691
  /* @__PURE__ */ jsxRuntimeExports.jsx(FiPhone, { className: tw`text-sm text-primary` }),
54673
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: tw`text-[10px] uppercase tracking-wider text-slate-500 font-semibold`, children: "Número" })
54692
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: tw`text-[10px] uppercase tracking-wider text-slate-500 font-semibold`, children: "N�mero" })
54674
54693
  ] }),
54675
54694
  isDialerFocused && /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: tw`inline-flex items-center gap-1 rounded-full bg-primary/10 px-2 py-0.5 text-[9px] font-semibold text-primary`, children: [
54676
54695
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: tw`inline-block h-1.5 w-1.5 rounded-full bg-primary animate-pulse` }),
54677
54696
  "Ativo"
54678
54697
  ] })
54679
54698
  ] }),
54680
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: tw`min-h-[2.5rem] flex items-center`, children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: tw`text-2xl font-semibold tabular-nums tracking-tight text-slate-800 flex-1 truncate`, children: dialDisplayText || /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: tw`text-slate-400 text-lg font-normal`, children: "Digite um número" }) }) })
54699
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: tw`min-h-[2.5rem] flex items-center`, children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: tw`text-2xl font-semibold tabular-nums tracking-tight text-slate-800 flex-1 truncate`, children: dialDisplayText || /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: tw`text-slate-400 text-lg font-normal`, children: "Digite um n�mero" }) }) })
54681
54700
  ]
54682
54701
  }
54683
54702
  ),
@@ -54703,7 +54722,7 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
54703
54722
  type: "button",
54704
54723
  onClick: handleCall,
54705
54724
  disabled: !isNumberValid,
54706
- className: tw`flex flex-1 min-w-[7rem] items-center justify-center gap-2 rounded-lg bg-emerald-500 px-4 py-2.5 text-sm font-bold text-white shadow-lg transition-all hover:bg-emerald-600 hover:shadow-xl disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:shadow-lg`,
54725
+ className: tw`flex flex-1 min-w-[7rem] items-center justify-center gap-2 rounded-lg bg-green-500 px-4 py-2.5 text-sm font-bold text-white shadow-lg transition-all hover:bg-green-600 hover:shadow-xl disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:shadow-lg`,
54707
54726
  children: [
54708
54727
  /* @__PURE__ */ jsxRuntimeExports.jsx(FiPhone, { className: tw`text-base` }),
54709
54728
  "Ligar"
@@ -54727,7 +54746,7 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
54727
54746
  {
54728
54747
  type: "button",
54729
54748
  onClick: handleAnswer,
54730
- className: tw`flex flex-1 min-w-[6rem] items-center justify-center gap-1.5 rounded-lg bg-emerald-500 px-3 py-2 text-xs font-bold text-white shadow-md transition-all hover:bg-emerald-600 hover:shadow-lg`,
54749
+ className: tw`flex flex-1 min-w-[6rem] items-center justify-center gap-1.5 rounded-lg bg-green-500 px-3 py-2 text-xs font-bold text-white shadow-md transition-all hover:bg-green-600 hover:shadow-lg`,
54731
54750
  children: [
54732
54751
  /* @__PURE__ */ jsxRuntimeExports.jsx(FiPhoneIncoming, { className: tw`text-sm` }),
54733
54752
  "Atender"
@@ -54796,7 +54815,7 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
54796
54815
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
54797
54816
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: tw`text-[10px] uppercase tracking-wide text-slate-500`, children: "Volume" }),
54798
54817
  /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: tw`text-sm font-semibold text-slate-800`, children: [
54799
- "Saída ",
54818
+ "Sa�da ",
54800
54819
  volumePercent,
54801
54820
  "%"
54802
54821
  ] })
@@ -54872,8 +54891,8 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
54872
54891
  value: selectedInputId ?? "",
54873
54892
  onChange: handleSelectInputDevice,
54874
54893
  children: [
54875
- audioDevices.inputs.length === 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("option", { value: "", children: "Padrão" }),
54876
- audioDevices.inputs.map((device) => /* @__PURE__ */ jsxRuntimeExports.jsx("option", { value: device.deviceId, children: device.label || "Padrão" }, device.deviceId || device.label))
54894
+ audioDevices.inputs.length === 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("option", { value: "", children: "Padr�o" }),
54895
+ audioDevices.inputs.map((device) => /* @__PURE__ */ jsxRuntimeExports.jsx("option", { value: device.deviceId, children: device.label || "Padr�o" }, device.deviceId || device.label))
54877
54896
  ]
54878
54897
  }
54879
54898
  )
@@ -54881,7 +54900,7 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
54881
54900
  /* @__PURE__ */ jsxRuntimeExports.jsxs("label", { className: tw`space-y-1 text-xs text-slate-700`, children: [
54882
54901
  /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: tw`flex items-center gap-1.5 font-semibold`, children: [
54883
54902
  /* @__PURE__ */ jsxRuntimeExports.jsx(FiHeadphones, { className: tw`text-sm text-primary` }),
54884
- "Saída"
54903
+ "Sa�da"
54885
54904
  ] }),
54886
54905
  /* @__PURE__ */ jsxRuntimeExports.jsxs(
54887
54906
  "select",
@@ -54890,8 +54909,8 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
54890
54909
  value: selectedOutputId ?? "",
54891
54910
  onChange: handleSelectOutputDevice,
54892
54911
  children: [
54893
- audioDevices.outputs.length === 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("option", { value: "", children: "Padrão" }),
54894
- audioDevices.outputs.map((device) => /* @__PURE__ */ jsxRuntimeExports.jsx("option", { value: device.deviceId, children: device.label || "Padrão" }, device.deviceId || device.label))
54912
+ audioDevices.outputs.length === 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("option", { value: "", children: "Padr�o" }),
54913
+ audioDevices.outputs.map((device) => /* @__PURE__ */ jsxRuntimeExports.jsx("option", { value: device.deviceId, children: device.label || "Padr�o" }, device.deviceId || device.label))
54895
54914
  ]
54896
54915
  }
54897
54916
  )
@@ -55078,8 +55097,8 @@ function getStatusVisual(state) {
55078
55097
  case "idle":
55079
55098
  return {
55080
55099
  Icon: FiCheckCircle,
55081
- badgeClass: tw`border-emerald-200 bg-emerald-50 text-emerald-700`,
55082
- dotClass: tw`bg-emerald-500`
55100
+ badgeClass: tw`border-green-200 bg-green-50 text-green-700`,
55101
+ dotClass: tw`bg-green-500`
55083
55102
  };
55084
55103
  case "callInProgress":
55085
55104
  case "manualCallSetup":
@@ -55125,7 +55144,7 @@ function getStatusLabel(state) {
55125
55144
  case "starting":
55126
55145
  return "Conectando";
55127
55146
  case "idle":
55128
- return "Disponível";
55147
+ return "Dispon�vel";
55129
55148
  case "manualCallSetup":
55130
55149
  return "Preparando";
55131
55150
  case "manualCallRinging":
@@ -55183,7 +55202,7 @@ function AfterCallPanel({
55183
55202
  {
55184
55203
  type: "button",
55185
55204
  onClick: () => onChangeResult("success"),
55186
- className: tw`${result2 === "success" ? "bg-emerald-500 text-white shadow-lg" : "bg-white text-slate-600"} rounded-xl border border-slate-200 px-3 py-2 text-sm font-semibold transition hover:border-emerald-400`,
55205
+ className: tw`${result2 === "success" ? "bg-green-500 text-white shadow-lg" : "bg-white text-slate-600"} rounded-xl border border-slate-200 px-3 py-2 text-sm font-semibold transition hover:border-green-400`,
55187
55206
  children: "Atendimento concluido"
55188
55207
  }
55189
55208
  ),
@@ -55249,15 +55268,15 @@ function ActiveCallSummary({
55249
55268
  }) {
55250
55269
  const durationLabel = durationSeconds > 0 ? formatDuration(durationSeconds) : "00:00";
55251
55270
  const cleanNumber = (callTarget == null ? void 0 : callTarget.replace(/^\+55/, "")) || "Conectando...";
55252
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: tw`rounded-lg border border-emerald-200 bg-gradient-to-br from-emerald-50 to-white px-3 py-2`, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`flex items-center justify-between gap-3`, children: [
55271
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: tw`rounded-lg border border-green-200 bg-gradient-to-br from-green-50 to-white px-3 py-2`, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`flex items-center justify-between gap-3`, children: [
55253
55272
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`flex items-center gap-2.5 min-w-0 flex-1`, children: [
55254
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: tw`flex items-center justify-center w-8 h-8 rounded-full bg-emerald-500 shrink-0 ${durationSeconds > 0 ? "animate-pulse" : ""}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx(FiPhoneCall, { className: tw`text-sm text-white` }) }),
55273
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: tw`flex items-center justify-center w-8 h-8 rounded-full bg-green-500 shrink-0 ${durationSeconds > 0 ? "animate-pulse" : ""}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx(FiPhoneCall, { className: tw`text-sm text-white` }) }),
55255
55274
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`flex flex-col gap-0.5 min-w-0 flex-1`, children: [
55256
55275
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: tw`text-base font-bold text-slate-800 truncate font-mono`, children: cleanNumber }),
55257
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: tw`text-[9px] font-medium text-emerald-600 uppercase tracking-wider`, children: statusLabel })
55276
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: tw`text-[9px] font-medium text-green-600 uppercase tracking-wider`, children: statusLabel })
55258
55277
  ] })
55259
55278
  ] }),
55260
- durationSeconds > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`flex items-center gap-1.5 bg-emerald-500 rounded-lg px-2.5 py-1.5 shrink-0`, children: [
55279
+ durationSeconds > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`flex items-center gap-1.5 bg-green-500 rounded-lg px-2.5 py-1.5 shrink-0`, children: [
55261
55280
  /* @__PURE__ */ jsxRuntimeExports.jsx(FiClock, { className: tw`text-xs text-white` }),
55262
55281
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: tw`text-sm font-bold tabular-nums text-white`, children: durationLabel })
55263
55282
  ] })