Componentes
Cubes
CheckoutCube
Checkout: contacto → envío → pago (slot agnóstico) → confirmación.Checkout: contacto → envío → pago
Vista previa
Contacto y envío
import { CheckoutCube, type CheckoutAdapter } from "@eidondev/acme-ui/cubes";
const adapter: CheckoutAdapter = {
getShippingOptions: ({ address, cart }) => rates.quote(address, cart), // opcional
createOrder: ({ cart, email, address, shippingId }) =>
orders.create({ cart, email, address, shippingId }), // → { ok, orderId, paymentClientSecret }
};
// El PASO DE PAGO es un slot: monta tu UI de proveedor con el clientSecret.
<CheckoutCube
adapter={adapter}
cart={cart}
defaultEmail={session?.user.email} // prefill de better-auth
renderPayment={({ clientSecret, onPaid }) => (
<StripePayment clientSecret={clientSecret} onSuccess={onPaid} />
)}
onComplete={(r) => router.push(`/orden/${r.orderId}`)}
/>Comparación de temas
El mismo componente bajo distintos modos y marcas. No cambia el componente — solo los tokens (CSS variables) del contenedor.Legacy · claro
Contacto y envío
Editorial · claro
Contacto y envío
Technical · oscuro
Contacto y envío
Warm · claro
Contacto y envío
Playful · claro