+
-
- Ctrl+Z>}>
-
-
- Ctrl+Shift+Z>}>
-
-
-
+ {/* undo / redo */}
+
+ Ctrl+Z>}>
+
+
+ Ctrl+Shift+Z>}>
+
+
+
-
+
-
- {([
- ["and", "AND-states",
,
A],
- ["or", "OR-states",
,
O],
- ["pseudo", "pseudo-states",
,
P],
- ["shallow", "shallow history",
,
H],
- ["deep", "deep history",
, <>>],
- ["transition", "transitions",
,
T],
- ["text", "text", <> T >,
X],
- ] as [InsertMode, string, ReactElement, ReactElement][]).map(([m, hint, buttonTxt, keyInfo]) =>
-
- )}
-
+ {/* insert rountangle / arrow / ... */}
+
+ {([
+ ["and", "AND-states",
,
A],
+ ["or", "OR-states",
,
O],
+ ["pseudo", "pseudo-states",
,
P],
+ ["shallow", "shallow history",
,
H],
+ ["deep", "deep history",
, <>>],
+ ["transition", "transitions",
,
T],
+ ["text", "text", <> T >,
X],
+ ] as [InsertMode, string, ReactElement, ReactElement][]).map(([m, hint, buttonTxt, keyInfo]) =>
+
+ )}
+
-
+
-
+ {/* execution */}
+
-
I}>
-
-
-
C}>
-
-
+ {/* init / clear / pause / real time */}
+
+
I}>
+
+
+
C}>
+
+
+
+
Space toggles>}>
+
+
+
+
-
+
-
Space toggles>}>
-
-
-
+ {/* speed */}
+
+
+ S}>
+
+
+ onTimeScaleChange(e.target.value, Math.round(performance.now()))}/>
+ F}>
+
+
+
-
+
-
-
S}>
-
-
-
onTimeScaleChange(e.target.value, Math.round(performance.now()))}/>
-
F}>
-
-
-
-
-
-
-
+ {/* time, next */}
+
+
+
+
+
+
+
+
+
+
Tab}>
+
+
+
+
-
+
-
-
-
-
-
Tab}>
-
-
-
-
-
Backspace}>
-
-
-
-
-
-
-
-
+
{ast.inputEvents &&
<>
@@ -316,20 +326,7 @@ export function TopPanel({rt, rtIdx, time, setTime, onInit, onClear, onRaise, on
>
}
-
-
-
- ~}>
- setShowKeys(e.target.checked)}>
-
-
-
-
-
-
-
-
-
-