// js/components/common/OrcPipeline.jsx
// Pipeline visual de status de orçamento (Rascunho → Aprovado).
// Movido de index.html em Fase 5 do refactor (2026-04-29): L4361-L4393
// Inclui ORC_STATUS_COLORS (também usado em Orcamentos — exposto via window.*).
(function() {
  'use strict';

  // CÓPIA EXATA do index.html L4361
  const ORC_STATUS_COLORS={Rascunho:'#A89070',Aguardando:'#2196f3','Em Negociação':'#EA580C',Aprovado:'#16A34A',Recusado:'#DC2626',Convertido:'#2563EB'};

  // CÓPIA EXATA do index.html L4363-L4393
  function OrcPipeline({status}){
    const steps=['Rascunho','Aguardando','Em Negociação','Aprovado'];
    const cur=steps.indexOf(status);
    const isRecused=status==='Recusado';
    const isConverted=status==='Convertido';
    return(
      <div style={{display:'flex',alignItems:'center',gap:0,margin:'14px 0'}}>
        {steps.map((s,i)=>{
          const done=isConverted||(cur>i);
          const active=!isRecused&&!isConverted&&cur===i;
          return(
            <React.Fragment key={s}>
              <div style={{display:'flex',flexDirection:'column',alignItems:'center',flex:1}}>
                <div style={{width:28,height:28,borderRadius:'50%',display:'flex',alignItems:'center',justifyContent:'center',fontSize:12,fontWeight:700,
                  background:done||active?(isRecused&&active?'#DC2626':active?ORC_STATUS_COLORS[s]:'#2563EB'):'#222',
                  border:`2px solid ${done||active?(isRecused&&active?'#DC2626':active?ORC_STATUS_COLORS[s]:'#2563EB'):'#333'}`,
                  color:done||active?'#000':'#555',transition:'all .2s'}}>
                  {done?'✓':i+1}
                </div>
                <div style={{fontSize:10,marginTop:4,color:active?ORC_STATUS_COLORS[s]:done?'#2563EB':'#555',fontWeight:active?700:400,whiteSpace:'nowrap'}}>{s}</div>
              </div>
              {i<steps.length-1&&<div style={{flex:2,height:2,background:done?'#2563EB':'#222',marginBottom:16,transition:'all .2s'}}/>}
            </React.Fragment>
          );
        })}
        {isRecused&&<div style={{marginLeft:12,padding:'3px 10px',borderRadius:20,background:'#DC262622',border:'1px solid #DC262666',fontSize:11,color:'#DC2626',fontWeight:700,whiteSpace:'nowrap'}}>✕ Recusado</div>}
        {isConverted&&<div style={{marginLeft:12,padding:'3px 10px',borderRadius:20,background:'#2563EB22',border:'1px solid #2563EB66',fontSize:11,color:'#2563EB',fontWeight:700,whiteSpace:'nowrap'}}>★ Convertido</div>}
      </div>
    );
  }

  window.ZNX = window.ZNX || {};
  window.ZNX.components = window.ZNX.components || {};
  window.ZNX.components.OrcPipeline = OrcPipeline;
  window.ZNX.components.ORC_STATUS_COLORS = ORC_STATUS_COLORS;
  window.OrcPipeline = OrcPipeline;
  window.ORC_STATUS_COLORS = ORC_STATUS_COLORS; // dep cruzada com Orcamentos (BLOCKED)

  window.ZNX.refactor_phase_5_loaded = window.ZNX.refactor_phase_5_loaded || {};
  window.ZNX.refactor_phase_5_loaded.OrcPipeline = true;

})();
