flexdesk 0.5.0 → 0.6.1
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/README.md +654 -1
- package/css/base.css +2868 -0
- package/css/flexdesk.css +2868 -0
- package/css/tokens.css +72 -0
- package/dist/canvas.js +390 -0
- package/dist/canvas.js.map +7 -0
- package/dist/charts.js +2 -2
- package/dist/{chunk-24MS7W5Y.js → chunk-6NG7YVBG.js} +2 -470
- package/dist/chunk-6NG7YVBG.js.map +7 -0
- package/dist/chunk-H4LT43RS.js +475 -0
- package/dist/chunk-H4LT43RS.js.map +7 -0
- package/dist/{chunk-KH2GJTKR.js → chunk-IYV5JVYB.js} +29 -1
- package/dist/chunk-IYV5JVYB.js.map +7 -0
- package/dist/chunk-SN4LSOAR.js +532 -0
- package/dist/chunk-SN4LSOAR.js.map +7 -0
- package/dist/{chunk-CNXP3SIN.js → chunk-ZMCRDOCF.js} +2 -2
- package/dist/flexdesk.css +2868 -0
- package/dist/flow.js +10030 -0
- package/dist/flow.js.map +7 -0
- package/dist/tiles.js +9 -9
- package/dist/tokens.css +72 -0
- package/dist/widgets.js +87 -5
- package/dist/widgets.js.map +3 -3
- package/dist/wm.js +4 -2
- package/dist/wm.js.map +1 -1
- package/package.json +9 -1
- package/src/canvas/canvas_adapter.js +523 -0
- package/src/canvas/edge_router.js +392 -0
- package/src/canvas/graph/connector_router.js +189 -0
- package/src/canvas/graph/history_service.js +170 -0
- package/src/canvas/graph/node_platform.js +116 -0
- package/src/canvas/index.js +16 -0
- package/src/flow/canvas_editor/editor.js +1081 -0
- package/src/flow/canvas_editor/index.js +16 -0
- package/src/flow/canvas_editor/layout.js +118 -0
- package/src/flow/canvas_editor/strings.js +37 -0
- package/src/flow/kit/always_before.js +325 -0
- package/src/flow/kit/catalogue.js +170 -0
- package/src/flow/kit/chip_input.js +461 -0
- package/src/flow/kit/dom.js +205 -0
- package/src/flow/kit/findings.js +129 -0
- package/src/flow/kit/history.js +173 -0
- package/src/flow/kit/index.js +38 -0
- package/src/flow/kit/keys.js +127 -0
- package/src/flow/kit/logic_graph.js +210 -0
- package/src/flow/kit/references.js +199 -0
- package/src/flow/kit/settings_panel.js +357 -0
- package/src/flow/kit/settings_schema.js +175 -0
- package/src/flow/kit/step_picker.js +209 -0
- package/src/flow/kit/strings.js +102 -0
- package/src/flow/kit/value_picker.js +238 -0
- package/src/flow/kit/widgets.js +763 -0
- package/src/flow/lanes/editor.js +1469 -0
- package/src/flow/lanes/index.js +26 -0
- package/src/flow/lanes/layout.js +525 -0
- package/src/flow/lanes/pipeline.js +327 -0
- package/src/flow/lanes/preview.js +109 -0
- package/src/flow/lanes/strings.js +98 -0
- package/src/flow/outline/editor.js +1511 -0
- package/src/flow/outline/index.js +20 -0
- package/src/flow/outline/mapping.js +286 -0
- package/src/flow/outline/menu.js +154 -0
- package/src/flow/outline/operations.js +738 -0
- package/src/flow/outline/recognise.js +755 -0
- package/src/flow/outline/strings.js +135 -0
- package/src/ui/components/data_table.js +40 -0
- package/src/ui/utils/scroll_lock.js +111 -0
- package/dist/chunk-24MS7W5Y.js.map +0 -7
- package/dist/chunk-KH2GJTKR.js.map +0 -7
- /package/dist/{chunk-CNXP3SIN.js.map → chunk-ZMCRDOCF.js.map} +0 -0
package/dist/tiles.js
CHANGED
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ActionDropdown
|
|
3
|
-
} from "./chunk-O5OHMWBB.js";
|
|
4
|
-
import {
|
|
5
|
-
openRawTracesWindow
|
|
6
|
-
} from "./chunk-CNXP3SIN.js";
|
|
7
|
-
import "./chunk-KH2GJTKR.js";
|
|
8
|
-
import "./chunk-6JSOVNID.js";
|
|
9
|
-
import "./chunk-FL5KFNQH.js";
|
|
10
1
|
import {
|
|
11
2
|
TileRegistry,
|
|
12
3
|
createWidget,
|
|
@@ -20,6 +11,15 @@ import {
|
|
|
20
11
|
setTileLogger,
|
|
21
12
|
tile_registry_exports
|
|
22
13
|
} from "./chunk-FOOS3T5L.js";
|
|
14
|
+
import {
|
|
15
|
+
ActionDropdown
|
|
16
|
+
} from "./chunk-O5OHMWBB.js";
|
|
17
|
+
import {
|
|
18
|
+
openRawTracesWindow
|
|
19
|
+
} from "./chunk-ZMCRDOCF.js";
|
|
20
|
+
import "./chunk-IYV5JVYB.js";
|
|
21
|
+
import "./chunk-6JSOVNID.js";
|
|
22
|
+
import "./chunk-FL5KFNQH.js";
|
|
23
23
|
import {
|
|
24
24
|
__toCommonJS
|
|
25
25
|
} from "./chunk-JYWURG5T.js";
|
package/dist/tokens.css
CHANGED
|
@@ -193,4 +193,76 @@
|
|
|
193
193
|
to its OWN 0.4 values when a token is unset (normal: 6px 8px and an
|
|
194
194
|
inherited line height; compact: 2px 6px and 1.35), and a default here
|
|
195
195
|
would replace both densities' values with one. */
|
|
196
|
+
|
|
197
|
+
/* ── Flow editors (@flexdesk/flow) — TONES, not colours ───────────
|
|
198
|
+
A step-type category names a TONE (`violet`, `teal`, `amber`, `grey`,
|
|
199
|
+
`blue`, `indigo`) and these map the tone to its colours, so a consumer
|
|
200
|
+
restyles every editor's categories here and nowhere else. Each tone is:
|
|
201
|
+
|
|
202
|
+
-bg / -fg a step's icon chip, a picker row's chip, a chip's fill
|
|
203
|
+
-line a reference chip's border
|
|
204
|
+
-icon-bg a lane card's icon zone
|
|
205
|
+
-text-bg a lane card's text zone
|
|
206
|
+
-dot a step tab's dot
|
|
207
|
+
|
|
208
|
+
New in the flow work and read by nothing older, so defining them
|
|
209
|
+
changes no existing screen. The values are the approved mocks'. */
|
|
210
|
+
--twm-flow-violet-bg: rgba(167, 139, 250, 0.16);
|
|
211
|
+
--twm-flow-violet-fg: #c6b4fb;
|
|
212
|
+
--twm-flow-violet-line: rgba(167, 139, 250, 0.45);
|
|
213
|
+
--twm-flow-violet-icon-bg: #351a40;
|
|
214
|
+
--twm-flow-violet-text-bg: #261e30;
|
|
215
|
+
--twm-flow-violet-dot: #a785e8;
|
|
216
|
+
|
|
217
|
+
--twm-flow-teal-bg: rgba(45, 180, 165, 0.17);
|
|
218
|
+
--twm-flow-teal-fg: #72d8c8;
|
|
219
|
+
--twm-flow-teal-line: rgba(45, 180, 165, 0.45);
|
|
220
|
+
--twm-flow-teal-icon-bg: #1a403a;
|
|
221
|
+
--twm-flow-teal-text-bg: #1a2b2a;
|
|
222
|
+
--twm-flow-teal-dot: #3fb8a6;
|
|
223
|
+
|
|
224
|
+
--twm-flow-amber-bg: rgba(222, 150, 70, 0.17);
|
|
225
|
+
--twm-flow-amber-fg: #ecb27a;
|
|
226
|
+
--twm-flow-amber-line: rgba(215, 163, 74, 0.45);
|
|
227
|
+
--twm-flow-amber-icon-bg: #3a3018;
|
|
228
|
+
--twm-flow-amber-text-bg: #2b2518;
|
|
229
|
+
--twm-flow-amber-dot: #d79a52;
|
|
230
|
+
|
|
231
|
+
--twm-flow-grey-bg: rgba(255, 255, 255, 0.08);
|
|
232
|
+
--twm-flow-grey-fg: #c4c4c4;
|
|
233
|
+
--twm-flow-grey-line: rgba(255, 255, 255, 0.28);
|
|
234
|
+
--twm-flow-grey-icon-bg: #333334;
|
|
235
|
+
--twm-flow-grey-text-bg: #262627;
|
|
236
|
+
--twm-flow-grey-dot: #9a9a9a;
|
|
237
|
+
|
|
238
|
+
--twm-flow-blue-bg: rgba(22, 131, 196, 0.22);
|
|
239
|
+
--twm-flow-blue-fg: #a8d4f2;
|
|
240
|
+
--twm-flow-blue-line: rgba(80, 160, 220, 0.45);
|
|
241
|
+
--twm-flow-blue-icon-bg: #173447;
|
|
242
|
+
--twm-flow-blue-text-bg: #1a2630;
|
|
243
|
+
--twm-flow-blue-dot: #4aa3dc;
|
|
244
|
+
|
|
245
|
+
--twm-flow-indigo-bg: rgba(127, 140, 240, 0.17);
|
|
246
|
+
--twm-flow-indigo-fg: #aab6fb;
|
|
247
|
+
--twm-flow-indigo-line: rgba(127, 140, 240, 0.45);
|
|
248
|
+
--twm-flow-indigo-icon-bg: #252850;
|
|
249
|
+
--twm-flow-indigo-text-bg: #1e1f30;
|
|
250
|
+
--twm-flow-indigo-dot: #7f8cf0;
|
|
251
|
+
|
|
252
|
+
/* The kit's own surfaces and signal colours (the mocks' values). The
|
|
253
|
+
focus ring is the canonical bright accent, so a consumer that restyles
|
|
254
|
+
the accent restyles it. */
|
|
255
|
+
--twm-flow-control-bg: #2b2b2c;
|
|
256
|
+
--twm-flow-control-border: #454545;
|
|
257
|
+
--twm-flow-muted: #a6a6a6;
|
|
258
|
+
--twm-flow-focus: var(--accent-bright);
|
|
259
|
+
--twm-flow-error: #f48771;
|
|
260
|
+
--twm-flow-error-bg: rgba(244, 135, 113, 0.09);
|
|
261
|
+
--twm-flow-error-line: rgba(244, 135, 113, 0.35);
|
|
262
|
+
--twm-flow-error-text: #f2cfc6;
|
|
263
|
+
--twm-flow-warning: #e2b366;
|
|
264
|
+
--twm-flow-warning-bg: rgba(226, 179, 102, 0.09);
|
|
265
|
+
--twm-flow-warning-line: rgba(226, 179, 102, 0.35);
|
|
266
|
+
--twm-flow-warning-text: #f0dcb8;
|
|
267
|
+
--twm-flow-ok: #89d185;
|
|
196
268
|
}
|
package/dist/widgets.js
CHANGED
|
@@ -7,14 +7,16 @@ import {
|
|
|
7
7
|
helpCopy,
|
|
8
8
|
helpProvider,
|
|
9
9
|
hideContextMenu,
|
|
10
|
+
setHelpProvider,
|
|
11
|
+
showContextMenu
|
|
12
|
+
} from "./chunk-H4LT43RS.js";
|
|
13
|
+
import {
|
|
10
14
|
modalHost,
|
|
11
15
|
openConfirm,
|
|
12
16
|
openForm,
|
|
13
17
|
openModal,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
showContextMenu
|
|
17
|
-
} from "./chunk-24MS7W5Y.js";
|
|
18
|
+
setModalHost
|
|
19
|
+
} from "./chunk-6NG7YVBG.js";
|
|
18
20
|
import {
|
|
19
21
|
ActionDropdown
|
|
20
22
|
} from "./chunk-O5OHMWBB.js";
|
|
@@ -30,7 +32,7 @@ import {
|
|
|
30
32
|
parseDatePeriod,
|
|
31
33
|
parseDateValue,
|
|
32
34
|
parseDuration
|
|
33
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-IYV5JVYB.js";
|
|
34
36
|
import {
|
|
35
37
|
ManagedWindow,
|
|
36
38
|
ROW_CONTROL_SELECTOR,
|
|
@@ -5486,6 +5488,85 @@ function installTabsScrollbars(selectors = [".tabs"]) {
|
|
|
5486
5488
|
return () => observer.disconnect();
|
|
5487
5489
|
}
|
|
5488
5490
|
|
|
5491
|
+
// src/ui/utils/scroll_lock.js
|
|
5492
|
+
function createScrollLock({ axis = "y", enabled = true } = {}) {
|
|
5493
|
+
const doY = axis === "y" || axis === "both";
|
|
5494
|
+
const doX = axis === "x" || axis === "both";
|
|
5495
|
+
const members = /* @__PURE__ */ new Map();
|
|
5496
|
+
let last = { top: 0, left: 0 };
|
|
5497
|
+
let on = !!enabled;
|
|
5498
|
+
function copyFrom(source) {
|
|
5499
|
+
last = { top: source.scrollTop, left: source.scrollLeft };
|
|
5500
|
+
if (!on) return;
|
|
5501
|
+
for (const [el, state] of members) {
|
|
5502
|
+
if (el === source) continue;
|
|
5503
|
+
const top = doY ? last.top : el.scrollTop;
|
|
5504
|
+
const left = doX ? last.left : el.scrollLeft;
|
|
5505
|
+
if (el.scrollTop === top && el.scrollLeft === left) continue;
|
|
5506
|
+
state.wrote = { top, left };
|
|
5507
|
+
if (doY) el.scrollTop = top;
|
|
5508
|
+
if (doX) el.scrollLeft = left;
|
|
5509
|
+
}
|
|
5510
|
+
}
|
|
5511
|
+
function onScroll(event) {
|
|
5512
|
+
const el = event.currentTarget;
|
|
5513
|
+
const state = members.get(el);
|
|
5514
|
+
if (!state) return;
|
|
5515
|
+
const wrote = state.wrote;
|
|
5516
|
+
state.wrote = null;
|
|
5517
|
+
if (wrote && Math.abs(el.scrollTop - wrote.top) < 1 && Math.abs(el.scrollLeft - wrote.left) < 1) return;
|
|
5518
|
+
copyFrom(el);
|
|
5519
|
+
}
|
|
5520
|
+
const lock = {
|
|
5521
|
+
/** Join the group. Returns the function that leaves it. */
|
|
5522
|
+
attach(el) {
|
|
5523
|
+
if (!el || typeof el.addEventListener !== "function") return () => {
|
|
5524
|
+
};
|
|
5525
|
+
if (members.has(el)) return () => lock.detach(el);
|
|
5526
|
+
const state = { wrote: null };
|
|
5527
|
+
members.set(el, state);
|
|
5528
|
+
el.addEventListener("scroll", onScroll, { passive: true });
|
|
5529
|
+
if (on && (last.top || last.left)) {
|
|
5530
|
+
state.wrote = {
|
|
5531
|
+
top: doY ? last.top : el.scrollTop,
|
|
5532
|
+
left: doX ? last.left : el.scrollLeft
|
|
5533
|
+
};
|
|
5534
|
+
if (doY) el.scrollTop = last.top;
|
|
5535
|
+
if (doX) el.scrollLeft = last.left;
|
|
5536
|
+
}
|
|
5537
|
+
return () => lock.detach(el);
|
|
5538
|
+
},
|
|
5539
|
+
detach(el) {
|
|
5540
|
+
if (!members.has(el)) return;
|
|
5541
|
+
members.delete(el);
|
|
5542
|
+
el.removeEventListener("scroll", onScroll);
|
|
5543
|
+
},
|
|
5544
|
+
/** Lock (true) or let the members scroll freely (false). Locking again
|
|
5545
|
+
* brings every member level with the one scrolled last. */
|
|
5546
|
+
setEnabled(value) {
|
|
5547
|
+
const was = on;
|
|
5548
|
+
on = !!value;
|
|
5549
|
+
if (on && !was) {
|
|
5550
|
+
const source = [...members.keys()].find(
|
|
5551
|
+
(el) => el.scrollTop === last.top && el.scrollLeft === last.left
|
|
5552
|
+
) || members.keys().next().value;
|
|
5553
|
+
if (source) copyFrom(source);
|
|
5554
|
+
}
|
|
5555
|
+
},
|
|
5556
|
+
get enabled() {
|
|
5557
|
+
return on;
|
|
5558
|
+
},
|
|
5559
|
+
/** How many boxes are in the group (for a consumer's own checks). */
|
|
5560
|
+
get size() {
|
|
5561
|
+
return members.size;
|
|
5562
|
+
},
|
|
5563
|
+
dispose() {
|
|
5564
|
+
for (const el of [...members.keys()]) lock.detach(el);
|
|
5565
|
+
}
|
|
5566
|
+
};
|
|
5567
|
+
return lock;
|
|
5568
|
+
}
|
|
5569
|
+
|
|
5489
5570
|
// src/ui/utils/tooltip_service.js
|
|
5490
5571
|
var tooltipElement = null;
|
|
5491
5572
|
var currentTarget = null;
|
|
@@ -5765,6 +5846,7 @@ export {
|
|
|
5765
5846
|
attachInlineRenamer,
|
|
5766
5847
|
createDetailHeader,
|
|
5767
5848
|
createRafResizeObserver,
|
|
5849
|
+
createScrollLock,
|
|
5768
5850
|
createTableStateStore,
|
|
5769
5851
|
createTreeCategory,
|
|
5770
5852
|
createTreeItem,
|