% ------------------------------------------------------------------------------
% Copyright (c) 2010, 2025 Contributors to the Eclipse Foundation
%
% See the NOTICE file(s) distributed with this work for additional
% information regarding copyright ownership.
%
% This program and the accompanying materials are made available under the terms
% of the MIT License which is available at https://opensource.org/licenses/MIT
%
% SPDX-License-Identifier: MIT
% ------------------------------------------------------------------------------
\documentclass{article}
\usepackage{tikz}
\usepackage{verbatim}

\usepackage[vcentering,dvips]{geometry}
\geometry{papersize={20in,20in}}

\usetikzlibrary{arrows, automata}
\begin{document}
\pagestyle{empty}

\definecolor{se-blue}{HTML}{D0D5FF}

\newcommand{\state}[2]{\begin{tabular}{@{}c@{}}#1\\#2\end{tabular}}

\begin{tikzpicture}[
  ->,>=stealth',auto,node distance=3.5cm,thick,
  every node/.style={font=\sffamily\small},
  every state/.style={draw=se-blue,very thick,top color=white,
                      bottom color=se-blue!75,initial text=,
                      minimum size=1.8cm},
  every edge/.style={draw=black!50}]

  \node[state, initial] (ri)               {\state{Released}{Idle}};
  \node[state]          (pi) [right of=ri] {\state{Pushed}{Idle}};
  \node[state]          (pp) [below of=pi] {\state{Pushed}{Producing}};
  \node[state]          (rp) [below of=ri] {\state{Released}{Producing}};

  \path[every node/.style={font=\sffamily\normalsize,outer sep=-2pt}]
    (ri) edge [bend left]  node[sloped,anchor=south] {pushed}    (pi)
    (pi) edge [bend left]  node[sloped,anchor=north] {released}  (ri)
         edge [bend left]  node[sloped,anchor=south] {producing} (pp)
    (pp) edge [bend left]  node[sloped,anchor=north] {released}  (rp)
         edge [bend left]  node[sloped,anchor=south] {produced}  (pi)
    (rp) edge [bend left]  node[sloped,anchor=south] {pushed}    (pp)
         edge [bend left]  node[sloped,anchor=south] {produced}  (ri)
  ;

\end{tikzpicture}
\end{document}
