// js/components/widgets/shared/ExitConfirmModal.jsx
// Modal genérico de confirmação "sair sem salvar" — extraído de Orcamentos.jsx + NovaVendaPage.jsx
//
// [REFACTOR Wave 3 LITE — 2026-05-15] Antes: 2 inlines duplicados byte-by-byte
//   (Orcamentos.jsx:933-943 + NovaVendaPage.jsx:784-792). CSS idêntico, UX idêntica,
//   só texto título/mensagem mudava. Extraído pra widget genérico cross-page.
//   Padrão refs+fail-loud consagrado (Wave 1+2+3+3.5+4 + Wave 3 LITE 2026-05-15).
//
// Uso:
//   const ExitConfirmModal = window.ZNX?.widgets?.ExitConfirmModal;
//   <ExitConfirmModal
//     open={exitConfirm}
//     title="Sair do orçamento?"
//     message={<>Você tem dados não salvos. Número <strong>{n}</strong> será perdido.</>}
//     onCancel={()=>setExitConfirm(false)}
//     onConfirm={doExit}
//     confirmLabel="Sair e descartar"  // opcional, default 'Sair e descartar'
//   />
//
// Deps runtime: nenhuma (puro React + inline styles)
(function() {
  'use strict';

  function ExitConfirmModal({open, title, message, onCancel, onConfirm, confirmLabel}) {
    if (!open) return null;
    const _confirm = confirmLabel || 'Sair e descartar';
    return (
      <div
        style={{position:'fixed',top:0,left:0,right:0,bottom:0,background:'rgba(0,0,0,0.5)',zIndex:9999,display:'flex',alignItems:'center',justifyContent:'center'}}
        onClick={onCancel}
      >
        <div
          style={{background:'#fff',borderRadius:14,padding:'28px 32px',maxWidth:420,width:'90%',boxShadow:'0 20px 60px rgba(0,0,0,0.3)'}}
          onClick={e => e.stopPropagation()}
        >
          <div style={{fontSize:18,fontWeight:700,color:'#1B2A4A',marginBottom:8}}>{title}</div>
          <div style={{fontSize:14,color:'#6B7280',marginBottom:20,lineHeight:1.5}}>{message}</div>
          <div style={{display:'flex',gap:10,justifyContent:'flex-end'}}>
            <button
              className="btn-outline"
              onClick={onCancel}
              style={{padding:'8px 20px'}}
            >Continuar editando</button>
            <button
              style={{padding:'8px 20px',borderRadius:8,border:'none',background:'linear-gradient(135deg,#DC2626,#B91C1C)',color:'#fff',fontWeight:600,cursor:'pointer'}}
              onClick={onConfirm}
            >{_confirm}</button>
          </div>
        </div>
      </div>
    );
  }

  // Export window namespace
  window.ZNX = window.ZNX || {};
  window.ZNX.widgets = window.ZNX.widgets || {};
  window.ZNX.widgets.ExitConfirmModal = ExitConfirmModal;
})();
