@graview/react 0.1.62 → 0.1.64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/context.d.ts +45 -2
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +7 -3
- package/dist/context.js.map +1 -1
- package/dist/drawing.d.ts +1 -1
- package/dist/drawing.d.ts.map +1 -1
- package/dist/edge-signs.d.ts +25 -0
- package/dist/edge-signs.d.ts.map +1 -1
- package/dist/edge-signs.js +25 -0
- package/dist/edge-signs.js.map +1 -1
- package/dist/editable-fields.d.ts.map +1 -1
- package/dist/editable-fields.js +3 -1
- package/dist/editable-fields.js.map +1 -1
- package/dist/files.d.ts +11 -0
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +11 -0
- package/dist/files.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/menu-types.d.ts +14 -0
- package/dist/menu-types.d.ts.map +1 -1
- package/dist/plots.d.ts +1 -0
- package/dist/plots.d.ts.map +1 -1
- package/dist/plots.js +2 -0
- package/dist/plots.js.map +1 -1
- package/dist/provider.d.ts +3 -3
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +1 -1
- package/dist/provider.js.map +1 -1
- package/dist/scene-aim.d.ts +7 -0
- package/dist/scene-aim.d.ts.map +1 -0
- package/dist/scene-aim.js +166 -0
- package/dist/scene-aim.js.map +1 -0
- package/dist/scene-hand.d.ts +28 -2
- package/dist/scene-hand.d.ts.map +1 -1
- package/dist/scene-hand.js +262 -32
- package/dist/scene-hand.js.map +1 -1
- package/dist/scene-helpers.d.ts +22 -0
- package/dist/scene-helpers.d.ts.map +1 -1
- package/dist/scene-helpers.js +31 -1
- package/dist/scene-helpers.js.map +1 -1
- package/dist/scene-root.d.ts.map +1 -1
- package/dist/scene-root.js +93 -13
- package/dist/scene-root.js.map +1 -1
- package/dist/view-host.d.ts +3 -1
- package/dist/view-host.d.ts.map +1 -1
- package/dist/view-host.js +2 -2
- package/dist/view-host.js.map +1 -1
- package/dist/workflows-layer.d.ts +30 -0
- package/dist/workflows-layer.d.ts.map +1 -0
- package/dist/workflows-layer.js +63 -0
- package/dist/workflows-layer.js.map +1 -0
- package/package.json +5 -5
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { pluralOf, SCENE_LAYERS } from "@graview/core";
|
|
3
|
+
import { lastRunWords, toIso, workflowSpots, workflowsOnTheMap } from "@graview/core/scene";
|
|
4
|
+
import { useMemo } from "react";
|
|
5
|
+
import "./provider.js"; // A door: tied to what the page drew first (TIED DOORS, packages/primitives/src/frame.ts).
|
|
6
|
+
const CSS = `.graview-workflows{position:absolute;left:0;top:0;pointer-events:none;z-index:${SCENE_LAYERS.plots};opacity:var(--graview-altitude);transition:opacity 640ms cubic-bezier(.33,0,.2,1)}
|
|
7
|
+
.graview-workflow-wire{fill:none;stroke:var(--graview-accent);stroke-width:1.5;stroke-opacity:.7;stroke-linecap:round}
|
|
8
|
+
.graview-workflow-wire[data-wire=reads]{stroke-dasharray:3 4;stroke-opacity:.55}
|
|
9
|
+
.graview-workflow-spot{fill:var(--graview-accent);stroke:var(--graview-panel);stroke-width:1.5}
|
|
10
|
+
.graview-workflow{position:absolute;transform:translate(10px,-50%);max-width:16rem;padding:.25rem .5rem;border-radius:.375rem;background:var(--graview-panel);color:var(--graview-ink);border:1px solid color-mix(in oklab,var(--graview-accent) 45%,transparent);font-size:.75rem;line-height:1.25;box-shadow:0 1px 2px color-mix(in oklab,var(--graview-ink) 12%,transparent)}
|
|
11
|
+
.graview-workflow-title{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
12
|
+
.graview-workflow-last{display:block;color:var(--graview-ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
13
|
+
.graview-workflows [data-graview-workflow-status=paused]{opacity:.45}`;
|
|
14
|
+
/** The kinds a workflow touches, said by what each is called: "reads routines; writes events". */
|
|
15
|
+
const touchWords = (workflow, schema) => {
|
|
16
|
+
const said = (kinds) => kinds.map((kind) => pluralOf(schema, kind).toLowerCase()).join(", ");
|
|
17
|
+
return [workflow.reads.length > 0 ? `reads ${said(workflow.reads)}` : "", workflow.writes.length > 0 ? `writes ${said(workflow.writes)}` : ""].filter(Boolean).join("; ");
|
|
18
|
+
};
|
|
19
|
+
export function WorkflowsLayer({ frame, width, height, pan, app, workflows: declared, acts, runs, graphVersion, hiddenKinds }) {
|
|
20
|
+
const workflows = useMemo(() => workflowsOnTheMap(app, declared, acts), [app, declared, acts]);
|
|
21
|
+
const city = frame.city;
|
|
22
|
+
const plots = new Map();
|
|
23
|
+
for (const node of frame.nodes) {
|
|
24
|
+
if (node.plot && Math.round(node.plane) === 2 && !hiddenKinds.has(node.kind))
|
|
25
|
+
plots.set(node.kind, node.plot);
|
|
26
|
+
}
|
|
27
|
+
const spots = workflowSpots(workflows, plots);
|
|
28
|
+
// Read again whenever the graph changes: a run's ops are what move it.
|
|
29
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
30
|
+
const said = useMemo(() => new Map(workflows.map((workflow) => [workflow.name, runs ? lastRunWords(runs.last(workflow.name)) : undefined])), [workflows, runs, graphVersion]);
|
|
31
|
+
if (!city || spots.length === 0)
|
|
32
|
+
return null;
|
|
33
|
+
const cell = city.cell;
|
|
34
|
+
const tilt = city.tilt ?? 0.5;
|
|
35
|
+
const x0 = city.originX + pan.x;
|
|
36
|
+
const y0 = city.originY + pan.y;
|
|
37
|
+
const at = (col, row) => {
|
|
38
|
+
const iso = toIso(col, row, cell, tilt);
|
|
39
|
+
return { x: x0 + iso.x, y: y0 + iso.y };
|
|
40
|
+
};
|
|
41
|
+
const byName = new Map(workflows.map((workflow) => [workflow.name, workflow]));
|
|
42
|
+
return (_jsxs(_Fragment, { children: [_jsx("style", { children: CSS }), _jsxs("div", { className: "graview-workflows", "data-graview-workflows": spots.length, style: { width, height }, children: [_jsx("svg", { "aria-hidden": "true", width: width, height: height, style: { position: "absolute", left: 0, top: 0, overflow: "visible" }, children: spots.map((spot) => {
|
|
43
|
+
const workflow = byName.get(spot.name);
|
|
44
|
+
const from = at(spot.col, spot.row);
|
|
45
|
+
const wires = [...workflow.writes.map((kind) => [kind, "writes"]), ...workflow.reads.filter((kind) => !workflow.writes.includes(kind)).map((kind) => [kind, "reads"])];
|
|
46
|
+
return (_jsxs("g", { "data-graview-workflow-status": workflow.status, children: [wires.map(([kind, way]) => {
|
|
47
|
+
const plot = plots.get(kind);
|
|
48
|
+
if (!plot)
|
|
49
|
+
return null;
|
|
50
|
+
const to = at(plot.col + plot.side / 2, plot.row + plot.side / 2);
|
|
51
|
+
return _jsx("path", { className: "graview-workflow-wire", "data-wire": way, "data-graview-workflow-wire": `${spot.name}:${kind}`, d: `M${from.x.toFixed(1)} ${from.y.toFixed(1)}L${to.x.toFixed(1)} ${to.y.toFixed(1)}` }, kind);
|
|
52
|
+
}), _jsx("circle", { className: "graview-workflow-spot", cx: from.x.toFixed(1), cy: from.y.toFixed(1), r: 4 })] }, spot.name));
|
|
53
|
+
}) }), spots.map((spot) => {
|
|
54
|
+
const workflow = byName.get(spot.name);
|
|
55
|
+
const from = at(spot.col, spot.row);
|
|
56
|
+
const paused = workflow.status === "paused";
|
|
57
|
+
const last = said.get(spot.name);
|
|
58
|
+
const line = [paused ? "Paused" : "", last ?? ""].filter(Boolean).join(" · ");
|
|
59
|
+
const touches = touchWords(workflow, app.schema);
|
|
60
|
+
return (_jsxs("div", { className: "graview-workflow", role: "group", "aria-label": `Workflow: ${workflow.title}${paused ? ", paused" : ""}. ${touches ? `${touches.replace(/^./, (first) => first.toUpperCase())}.` : ""}${last ? ` ${last}.` : ""}`, "data-graview-workflow": spot.name, "data-graview-workflow-status": workflow.status, "data-graview-workflow-beside": spot.beside, style: { left: from.x, top: from.y }, children: [_jsx("span", { className: "graview-workflow-title", children: workflow.title }), line ? _jsx("span", { className: "graview-workflow-last", children: line }) : null] }, spot.name));
|
|
61
|
+
})] })] }));
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=workflows-layer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflows-layer.js","sourceRoot":"","sources":["../src/workflows-layer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAmC,MAAM,eAAe,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAgD,MAAM,qBAAqB,CAAC;AAE1I,OAAO,EAAE,OAAO,EAAqB,MAAM,OAAO,CAAC;AAEnD,OAAO,eAAe,CAAC,CAAC,2FAA2F;AAoCnH,MAAM,GAAG,GAAG,iFAAiF,YAAY,CAAC,KAAK;;;;;;;sEAOzC,CAAC;AAEvE,kGAAkG;AAClG,MAAM,UAAU,GAAG,CAAC,QAAqB,EAAE,MAAiB,EAAU,EAAE;IACtE,MAAM,IAAI,GAAG,CAAC,KAAwB,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5K,CAAC,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAuB;IAChJ,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/F,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAChH,CAAC;IACD,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9C,uEAAuE;IACvE,uDAAuD;IACvD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IAC9K,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;IAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC;IAChC,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC;IAChC,MAAM,EAAE,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE;QACtC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;IAC1C,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC/E,OAAO,CACL,8BACE,0BAAQ,GAAG,GAAS,EACpB,eAAK,SAAS,EAAC,mBAAmB,4BAAyB,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAC/F,6BAAiB,MAAM,EAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,YACxH,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;4BAClB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC;4BACxC,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;4BACpC,MAAM,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAU,CAAC,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAU,CAAC,CAAC,CAAC;4BACzL,OAAO,CACL,6CAAiD,QAAQ,CAAC,MAAM,aAC7D,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE;wCACzB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wCAC7B,IAAI,CAAC,IAAI;4CAAE,OAAO,IAAI,CAAC;wCACvB,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;wCAClE,OAAO,eAAiB,SAAS,EAAC,uBAAuB,eAAY,GAAG,gCAA8B,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAjM,IAAI,CAAiM,CAAC;oCAC1N,CAAC,CAAC,EACF,iBAAQ,SAAS,EAAC,uBAAuB,EAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAI,KAP1F,IAAI,CAAC,IAAI,CAQb,CACL,CAAC;wBACJ,CAAC,CAAC,GACE,EACL,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;wBAClB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC;wBACxC,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;wBACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC;wBAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACjC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC9E,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;wBACjD,OAAO,CACL,eAEE,SAAS,EAAC,kBAAkB,EAC5B,IAAI,EAAC,OAAO,gBACA,aAAa,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,2BACtJ,IAAI,CAAC,IAAI,kCACF,QAAQ,CAAC,MAAM,kCACf,IAAI,CAAC,MAAM,EACzC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,aAEpC,eAAM,SAAS,EAAC,wBAAwB,YAAE,QAAQ,CAAC,KAAK,GAAQ,EAC/D,IAAI,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,uBAAuB,YAAE,IAAI,GAAQ,CAAC,CAAC,CAAC,IAAI,KAV/D,IAAI,CAAC,IAAI,CAWV,CACP,CAAC;oBACJ,CAAC,CAAC,IACE,IACL,CACJ,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@graview/react",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.64",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -19,10 +19,10 @@
|
|
|
19
19
|
}
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@graview/core": "0.1.
|
|
23
|
-
"@graview/render": "0.1.
|
|
24
|
-
"@graview/
|
|
25
|
-
"@graview/
|
|
22
|
+
"@graview/core": "0.1.64",
|
|
23
|
+
"@graview/render": "0.1.64",
|
|
24
|
+
"@graview/layout": "0.1.64",
|
|
25
|
+
"@graview/tools": "0.1.64"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
28
|
"react": ">=18",
|