@burdenoff/fluidgrids-fe-sdk 2026.801.3 → 2026.801.5
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/{WorkflowBuilder-UVADHNKZ.js → WorkflowBuilder-CDCGKFJW.js} +5 -5
- package/dist/{WorkflowBuilder-UVADHNKZ.js.map → WorkflowBuilder-CDCGKFJW.js.map} +1 -1
- package/dist/WorkflowsList-EE6P7GJ7.js +10 -0
- package/dist/{WorkflowsList-F5QRVKAW.js.map → WorkflowsList-EE6P7GJ7.js.map} +1 -1
- package/dist/{blocks-5FEPZOHW.js → blocks-HIWIS6OD.js} +4 -4
- package/dist/{blocks-5FEPZOHW.js.map → blocks-HIWIS6OD.js.map} +1 -1
- package/dist/{chunk-WSBRI47P.js → chunk-2KRMZXFF.js} +2 -2
- package/dist/chunk-2KRMZXFF.js.map +1 -0
- package/dist/{chunk-AI5S3GO5.js → chunk-33QRAWG2.js} +5 -12
- package/dist/chunk-33QRAWG2.js.map +1 -0
- package/dist/{chunk-7WQUDC5E.js → chunk-CUCRQ7BD.js} +321 -202
- package/dist/chunk-CUCRQ7BD.js.map +1 -0
- package/dist/{chunk-3VY2DAPD.js → chunk-PTBR5HNM.js} +3 -3
- package/dist/{chunk-3VY2DAPD.js.map → chunk-PTBR5HNM.js.map} +1 -1
- package/dist/index.d.ts +2 -10
- package/dist/index.js +8 -8
- package/package.json +2 -1
- package/dist/WorkflowsList-F5QRVKAW.js +0 -10
- package/dist/chunk-7WQUDC5E.js.map +0 -1
- package/dist/chunk-AI5S3GO5.js.map +0 -1
- package/dist/chunk-WSBRI47P.js.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Dialog as Dialog$1, DialogContent as DialogContent$1, DialogHeader as DialogHeader$1, DialogTitle as DialogTitle$1, DialogDescription as DialogDescription$1, Input as Input$1, DialogFooter } from './chunk-MRVS73S2.js';
|
|
2
2
|
import { Badge as Badge$1, Button } from './chunk-DBOMRIP5.js';
|
|
3
|
-
import { refetchStoreNodes, registerWorkflowNodeTypes, ensureNodeConfigsLoaded, onNodeTypesUpdate, NODE_TYPES, getNodeMetadata, AVAILABLE_NODES, useInsertNode, NODE_TYPE_DRAG_DATA_FORMAT, NODE_OPERATION_DRAG_DATA_FORMAT, useSaveWorkflow, STICKY_NOTE_TYPE, useNodeExecution, getNodeDetail, mergeStickyNotes, buildStickyNode, ConnectionSelector, nodeAccent, NODES_METADATA, isNodeConfigsInitialized, NODE_CONFIGS, NODES, NodePropertyPanel, resolveInputHandles } from './chunk-
|
|
3
|
+
import { refetchStoreNodes, registerWorkflowNodeTypes, ensureNodeConfigsLoaded, onNodeTypesUpdate, NODE_TYPES, getNodeMetadata, AVAILABLE_NODES, useInsertNode, NODE_TYPE_DRAG_DATA_FORMAT, NODE_OPERATION_DRAG_DATA_FORMAT, useSaveWorkflow, STICKY_NOTE_TYPE, useNodeExecution, getNodeDetail, mergeStickyNotes, buildStickyNode, ConnectionSelector, nodeAccent, NODES_METADATA, isNodeConfigsInitialized, NODE_CONFIGS, NODES, NodePropertyPanel, resolveInputHandles } from './chunk-33QRAWG2.js';
|
|
4
4
|
import { createGlobalStoreClient, setGlobalStoreClient, resetGlobalStoreClient, getGlobalStoreClient } from './chunk-BQXHJIER.js';
|
|
5
5
|
import { BrowseWorkflowTemplatesDocument, InstallWorkflowNodeDocument, InstallPurchasedNodeDocument, GetMyNodeInstallationsDocument, BrowseWorkflowNodesDocument, UninstallWorkflowNodeDocument, CreateStoreOrderDocument } from './chunk-PNOA7CQV.js';
|
|
6
6
|
import { useLazyWorkflowDefinition, useCreateWorkflow, useWorkflowVersions, useRestoreWorkflowVersion, useActivateWorkflow, useDeleteWorkflow, useDeactivateWorkflow } from './chunk-NMS2QUXG.js';
|
|
7
|
-
import { useFlowStore } from './chunk-
|
|
7
|
+
import { useFlowStore } from './chunk-2KRMZXFF.js';
|
|
8
8
|
import { SdkPermissionButton, FLUIDGRIDS_PERMISSIONS } from './chunk-UIY2HBWA.js';
|
|
9
9
|
import { cn } from './chunk-3ZYUGTIT.js';
|
|
10
10
|
import { throwIfResultError, NodeSchemaIntrospectionDocument, EventRegistrationsDocument, NodeUsageStatusDocument, RemoveNodeFromWorkflowsDocument } from './chunk-XEYNX7YJ.js';
|
|
@@ -28,6 +28,7 @@ import { ApolloProvider, useQuery, useMutation } from '@apollo/client/react';
|
|
|
28
28
|
import 'jszip';
|
|
29
29
|
import { gql as gql$1 } from '@apollo/client/core';
|
|
30
30
|
import { Sparkles, Star, Download, Eye, History, Loader2, Play, RotateCcw, Trash2, Maximize2, LayoutGrid, Plus, GitBranch, AlertCircle, Search, RefreshCw, CheckCircle2, Package, Info, Copy, BadgeCheck, DollarSign, PlusCircle, ChevronDown, Type, Code, Hash, List, Braces, Workflow, ChevronRight, Layers, X, AlertTriangle } from 'lucide-react';
|
|
31
|
+
import ReactMarkdown from 'react-markdown';
|
|
31
32
|
import { animate, easeOut } from 'popmotion';
|
|
32
33
|
import { createPortal } from 'react-dom';
|
|
33
34
|
import { ThemeProvider as ThemeProvider$1 } from '@burdenoff/fe-libs/shared/providers/shell';
|
|
@@ -3042,6 +3043,77 @@ function StoreNodeOperations({ nodeType }) {
|
|
|
3042
3043
|
}) })
|
|
3043
3044
|
] });
|
|
3044
3045
|
}
|
|
3046
|
+
var COLLAPSED_MAX_PX = 126;
|
|
3047
|
+
var MD_COMPONENTS = {
|
|
3048
|
+
h1: ({ children }) => /* @__PURE__ */ jsx("p", { className: "mb-1 mt-3 text-[13px] font-semibold text-foreground", children }),
|
|
3049
|
+
h2: ({ children }) => /* @__PURE__ */ jsx("p", { className: "mb-1 mt-3 text-[13px] font-semibold text-foreground", children }),
|
|
3050
|
+
h3: ({ children }) => /* @__PURE__ */ jsx("p", { className: "mb-1 mt-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children }),
|
|
3051
|
+
p: ({ children }) => /* @__PURE__ */ jsx("p", { className: "mb-2 last:mb-0", children }),
|
|
3052
|
+
ul: ({ children }) => /* @__PURE__ */ jsx("ul", { className: "mb-2 list-disc space-y-0.5 pl-4 last:mb-0", children }),
|
|
3053
|
+
ol: ({ children }) => /* @__PURE__ */ jsx("ol", { className: "mb-2 list-decimal space-y-0.5 pl-4 last:mb-0", children }),
|
|
3054
|
+
li: ({ children }) => /* @__PURE__ */ jsx("li", { className: "leading-snug", children }),
|
|
3055
|
+
strong: ({ children }) => /* @__PURE__ */ jsx("strong", { className: "font-semibold text-foreground", children }),
|
|
3056
|
+
em: ({ children }) => /* @__PURE__ */ jsx("em", { className: "italic", children }),
|
|
3057
|
+
a: ({ children, href }) => /* @__PURE__ */ jsx(
|
|
3058
|
+
"a",
|
|
3059
|
+
{
|
|
3060
|
+
href,
|
|
3061
|
+
target: "_blank",
|
|
3062
|
+
rel: "noreferrer noopener",
|
|
3063
|
+
className: "text-primary underline underline-offset-2 hover:opacity-80",
|
|
3064
|
+
children
|
|
3065
|
+
}
|
|
3066
|
+
),
|
|
3067
|
+
code: ({ children }) => /* @__PURE__ */ jsx("code", { className: "rounded bg-muted px-1 py-0.5 font-mono text-[11px] text-foreground", children }),
|
|
3068
|
+
hr: () => /* @__PURE__ */ jsx("hr", { className: "my-2 border-border/60" })
|
|
3069
|
+
};
|
|
3070
|
+
function StoreNodeDescription({ text }) {
|
|
3071
|
+
const [expanded, setExpanded] = useState(false);
|
|
3072
|
+
const [overflows, setOverflows] = useState(false);
|
|
3073
|
+
const contentRef = useRef(null);
|
|
3074
|
+
useLayoutEffect(() => {
|
|
3075
|
+
const el = contentRef.current;
|
|
3076
|
+
if (!el) return;
|
|
3077
|
+
setOverflows(el.scrollHeight > COLLAPSED_MAX_PX + 8);
|
|
3078
|
+
}, [text]);
|
|
3079
|
+
const markdown = useMemo(
|
|
3080
|
+
() => /* @__PURE__ */ jsx(ReactMarkdown, { components: MD_COMPONENTS, children: text }),
|
|
3081
|
+
[text]
|
|
3082
|
+
);
|
|
3083
|
+
return /* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
|
|
3084
|
+
/* @__PURE__ */ jsxs(
|
|
3085
|
+
"div",
|
|
3086
|
+
{
|
|
3087
|
+
ref: contentRef,
|
|
3088
|
+
className: "relative overflow-hidden text-sm leading-relaxed text-foreground/80",
|
|
3089
|
+
style: { maxHeight: expanded ? void 0 : COLLAPSED_MAX_PX },
|
|
3090
|
+
children: [
|
|
3091
|
+
markdown,
|
|
3092
|
+
!expanded && overflows && /* @__PURE__ */ jsx(
|
|
3093
|
+
"div",
|
|
3094
|
+
{
|
|
3095
|
+
"aria-hidden": true,
|
|
3096
|
+
className: "pointer-events-none absolute inset-x-0 bottom-0 h-8",
|
|
3097
|
+
style: {
|
|
3098
|
+
background: "linear-gradient(to top, var(--background), transparent)"
|
|
3099
|
+
}
|
|
3100
|
+
}
|
|
3101
|
+
)
|
|
3102
|
+
]
|
|
3103
|
+
}
|
|
3104
|
+
),
|
|
3105
|
+
overflows && /* @__PURE__ */ jsx(
|
|
3106
|
+
"button",
|
|
3107
|
+
{
|
|
3108
|
+
type: "button",
|
|
3109
|
+
onClick: () => setExpanded((v) => !v),
|
|
3110
|
+
className: "mt-1 text-xs font-medium text-primary hover:underline",
|
|
3111
|
+
"data-testid": "store-desc-toggle",
|
|
3112
|
+
children: expanded ? "Show less" : "Read more"
|
|
3113
|
+
}
|
|
3114
|
+
)
|
|
3115
|
+
] });
|
|
3116
|
+
}
|
|
3045
3117
|
function formatDownloads(count2) {
|
|
3046
3118
|
if (count2 >= 1e6) return `${(count2 / 1e6).toFixed(1)}M`;
|
|
3047
3119
|
if (count2 >= 1e3) return `${(count2 / 1e3).toFixed(1)}k`;
|
|
@@ -3303,7 +3375,7 @@ function StoreNodeDetail({ node, onBack }) {
|
|
|
3303
3375
|
latestVersion
|
|
3304
3376
|
] })
|
|
3305
3377
|
] }),
|
|
3306
|
-
node.description && /* @__PURE__ */ jsx(
|
|
3378
|
+
node.description && /* @__PURE__ */ jsx(StoreNodeDescription, { text: node.description }),
|
|
3307
3379
|
(isInstalled || isPrebuilt) && /* @__PURE__ */ jsx("div", { className: "mb-4 -mx-3 rounded-lg border border-border/50", children: /* @__PURE__ */ jsx(StoreNodeOperations, { nodeType }) }),
|
|
3308
3380
|
node.publisher && /* @__PURE__ */ jsxs("div", { className: "mb-4 p-2.5 rounded-lg bg-muted/50 flex items-center gap-2", children: [
|
|
3309
3381
|
/* @__PURE__ */ jsx("div", { className: "size-6 rounded bg-muted flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsx("span", { className: "text-xs font-bold text-muted-foreground", children: node.publisher.name.charAt(0) }) }),
|
|
@@ -4211,7 +4283,7 @@ function DesktopSidebarFragment({
|
|
|
4211
4283
|
if (nodes) {
|
|
4212
4284
|
const requiredNodeTypes = [];
|
|
4213
4285
|
try {
|
|
4214
|
-
const { NODE_CONFIGS: NODE_CONFIGS3, ensureNodeConfigsLoaded: ensureNodeConfigsLoaded2 } = await import('./blocks-
|
|
4286
|
+
const { NODE_CONFIGS: NODE_CONFIGS3, ensureNodeConfigsLoaded: ensureNodeConfigsLoaded2 } = await import('./blocks-HIWIS6OD.js');
|
|
4215
4287
|
await ensureNodeConfigsLoaded2().catch(() => {
|
|
4216
4288
|
});
|
|
4217
4289
|
const workflowNodeTypes = [
|
|
@@ -13503,31 +13575,46 @@ var PANEL_WIDTH = 380;
|
|
|
13503
13575
|
var PANEL_EST_HEIGHT = 480;
|
|
13504
13576
|
var MAPPER_WIDTH = 260;
|
|
13505
13577
|
var VIEWPORT_MARGIN = 12;
|
|
13506
|
-
|
|
13507
|
-
|
|
13508
|
-
const
|
|
13578
|
+
var NODE_GAP = 14;
|
|
13579
|
+
function useNodeScreenRect(nodeId) {
|
|
13580
|
+
const { flowToScreenPosition } = useReactFlow();
|
|
13581
|
+
const raw = useStore((s) => {
|
|
13582
|
+
const n = s.nodeLookup.get(nodeId);
|
|
13583
|
+
if (!n) return null;
|
|
13584
|
+
const p = n.internals?.positionAbsolute ?? n.position;
|
|
13585
|
+
return {
|
|
13586
|
+
x: p.x,
|
|
13587
|
+
y: p.y,
|
|
13588
|
+
w: n.measured?.width ?? n.width ?? 288,
|
|
13589
|
+
h: n.measured?.height ?? n.height ?? 120,
|
|
13590
|
+
// Selecting the transform forces a re-render on pan/zoom.
|
|
13591
|
+
tx: s.transform[0],
|
|
13592
|
+
ty: s.transform[1],
|
|
13593
|
+
z: s.transform[2]
|
|
13594
|
+
};
|
|
13595
|
+
}, shallow);
|
|
13596
|
+
if (!raw) return null;
|
|
13597
|
+
const tl = flowToScreenPosition({ x: raw.x, y: raw.y });
|
|
13598
|
+
const br = flowToScreenPosition({ x: raw.x + raw.w, y: raw.y + raw.h });
|
|
13509
13599
|
return {
|
|
13510
|
-
|
|
13511
|
-
|
|
13512
|
-
|
|
13513
|
-
|
|
13514
|
-
|
|
13515
|
-
Math.max(VIEWPORT_MARGIN, pos.y),
|
|
13516
|
-
Math.max(VIEWPORT_MARGIN, maxY)
|
|
13517
|
-
)
|
|
13600
|
+
left: tl.x,
|
|
13601
|
+
top: tl.y,
|
|
13602
|
+
right: br.x,
|
|
13603
|
+
bottom: br.y,
|
|
13604
|
+
cy: (tl.y + br.y) / 2
|
|
13518
13605
|
};
|
|
13519
13606
|
}
|
|
13607
|
+
var clamp = (v, lo, hi) => Math.min(Math.max(v, lo), Math.max(lo, hi));
|
|
13520
13608
|
function QuickConfigPanel() {
|
|
13521
13609
|
const quickConfig = useFlowStore((s) => s.workflow.quickConfig);
|
|
13522
13610
|
if (!quickConfig) return null;
|
|
13523
13611
|
return (
|
|
13524
|
-
// Remount per node so panel
|
|
13612
|
+
// Remount per node so panel-local state (mapper open) resets naturally.
|
|
13525
13613
|
/* @__PURE__ */ jsx(
|
|
13526
13614
|
QuickConfigPanelInner,
|
|
13527
13615
|
{
|
|
13528
13616
|
nodeId: quickConfig.nodeId,
|
|
13529
|
-
type: quickConfig.type
|
|
13530
|
-
anchor: quickConfig.anchor
|
|
13617
|
+
type: quickConfig.type
|
|
13531
13618
|
},
|
|
13532
13619
|
quickConfig.nodeId
|
|
13533
13620
|
)
|
|
@@ -13535,8 +13622,7 @@ function QuickConfigPanel() {
|
|
|
13535
13622
|
}
|
|
13536
13623
|
function QuickConfigPanelInner({
|
|
13537
13624
|
nodeId,
|
|
13538
|
-
type
|
|
13539
|
-
anchor
|
|
13625
|
+
type
|
|
13540
13626
|
}) {
|
|
13541
13627
|
const close = useFlowStore((s) => s.actions.quickConfig.close);
|
|
13542
13628
|
const openNdv = useFlowStore((s) => s.actions.ndv.open);
|
|
@@ -13549,45 +13635,62 @@ function QuickConfigPanelInner({
|
|
|
13549
13635
|
setSelectedSource,
|
|
13550
13636
|
inputFields
|
|
13551
13637
|
} = config;
|
|
13552
|
-
const [pos, setPos] = useState(
|
|
13553
|
-
() => clampToViewport(
|
|
13554
|
-
anchor ?? {
|
|
13555
|
-
x: window.innerWidth / 2 - PANEL_WIDTH / 2,
|
|
13556
|
-
y: window.innerHeight / 4
|
|
13557
|
-
}
|
|
13558
|
-
)
|
|
13559
|
-
);
|
|
13560
13638
|
const [showMapper, setShowMapper] = useState(false);
|
|
13561
|
-
const
|
|
13562
|
-
const
|
|
13563
|
-
|
|
13564
|
-
|
|
13565
|
-
|
|
13566
|
-
|
|
13567
|
-
|
|
13568
|
-
|
|
13569
|
-
|
|
13570
|
-
|
|
13571
|
-
|
|
13572
|
-
|
|
13573
|
-
|
|
13574
|
-
|
|
13575
|
-
|
|
13576
|
-
|
|
13577
|
-
|
|
13578
|
-
|
|
13579
|
-
|
|
13580
|
-
|
|
13581
|
-
|
|
13582
|
-
|
|
13583
|
-
window.removeEventListener("pointermove", onMove);
|
|
13584
|
-
window.removeEventListener("pointerup", onUp);
|
|
13639
|
+
const nodeRect = useNodeScreenRect(nodeId);
|
|
13640
|
+
const cardRef = useRef(null);
|
|
13641
|
+
const [panelH, setPanelH] = useState(PANEL_EST_HEIGHT);
|
|
13642
|
+
useLayoutEffect(() => {
|
|
13643
|
+
const el = cardRef.current;
|
|
13644
|
+
if (!el) return;
|
|
13645
|
+
const measure = () => setPanelH(el.offsetHeight);
|
|
13646
|
+
measure();
|
|
13647
|
+
const ro = new ResizeObserver(measure);
|
|
13648
|
+
ro.observe(el);
|
|
13649
|
+
return () => ro.disconnect();
|
|
13650
|
+
}, []);
|
|
13651
|
+
const placement = useMemo(() => {
|
|
13652
|
+
if (!nodeRect) {
|
|
13653
|
+
return {
|
|
13654
|
+
side: "right",
|
|
13655
|
+
left: window.innerWidth / 2 - PANEL_WIDTH / 2,
|
|
13656
|
+
top: window.innerHeight / 4,
|
|
13657
|
+
connectorLeft: 0,
|
|
13658
|
+
connectorWidth: 0,
|
|
13659
|
+
connectorTop: 0,
|
|
13660
|
+
hasConnector: false
|
|
13585
13661
|
};
|
|
13586
|
-
|
|
13587
|
-
|
|
13588
|
-
|
|
13589
|
-
|
|
13590
|
-
|
|
13662
|
+
}
|
|
13663
|
+
const need = PANEL_WIDTH + NODE_GAP + VIEWPORT_MARGIN;
|
|
13664
|
+
const spaceRight = window.innerWidth - nodeRect.right;
|
|
13665
|
+
const spaceLeft = nodeRect.left;
|
|
13666
|
+
const side = spaceRight >= need ? "right" : spaceLeft >= need ? "left" : spaceRight >= spaceLeft ? "right" : "left";
|
|
13667
|
+
const rawLeft = side === "right" ? nodeRect.right + NODE_GAP : nodeRect.left - NODE_GAP - PANEL_WIDTH;
|
|
13668
|
+
const left = clamp(
|
|
13669
|
+
rawLeft,
|
|
13670
|
+
VIEWPORT_MARGIN,
|
|
13671
|
+
window.innerWidth - PANEL_WIDTH - VIEWPORT_MARGIN
|
|
13672
|
+
);
|
|
13673
|
+
const top = clamp(
|
|
13674
|
+
nodeRect.cy - panelH / 2,
|
|
13675
|
+
VIEWPORT_MARGIN,
|
|
13676
|
+
window.innerHeight - panelH - VIEWPORT_MARGIN
|
|
13677
|
+
);
|
|
13678
|
+
const connectorTop = clamp(nodeRect.cy, top + 6, top + panelH - 6);
|
|
13679
|
+
const connectorLeft = side === "right" ? nodeRect.right : left + PANEL_WIDTH;
|
|
13680
|
+
const connectorWidth = Math.max(
|
|
13681
|
+
0,
|
|
13682
|
+
side === "right" ? left - nodeRect.right : nodeRect.left - (left + PANEL_WIDTH)
|
|
13683
|
+
);
|
|
13684
|
+
return {
|
|
13685
|
+
side,
|
|
13686
|
+
left,
|
|
13687
|
+
top,
|
|
13688
|
+
connectorLeft,
|
|
13689
|
+
connectorWidth,
|
|
13690
|
+
connectorTop,
|
|
13691
|
+
hasConnector: connectorWidth > 1
|
|
13692
|
+
};
|
|
13693
|
+
}, [nodeRect, panelH]);
|
|
13591
13694
|
useEffect(() => {
|
|
13592
13695
|
const onKey = (e) => {
|
|
13593
13696
|
if (e.key === "Escape") close();
|
|
@@ -13605,154 +13708,170 @@ function QuickConfigPanelInner({
|
|
|
13605
13708
|
const expandToNdv = () => {
|
|
13606
13709
|
openNdv({ nodeId, type });
|
|
13607
13710
|
};
|
|
13608
|
-
|
|
13609
|
-
|
|
13610
|
-
|
|
13611
|
-
|
|
13612
|
-
|
|
13613
|
-
|
|
13614
|
-
|
|
13615
|
-
|
|
13616
|
-
|
|
13617
|
-
|
|
13618
|
-
|
|
13619
|
-
|
|
13620
|
-
|
|
13621
|
-
|
|
13622
|
-
|
|
13623
|
-
|
|
13624
|
-
|
|
13625
|
-
|
|
13626
|
-
|
|
13627
|
-
|
|
13628
|
-
|
|
13629
|
-
|
|
13630
|
-
|
|
13711
|
+
const mapperStyle = placement.side === "right" ? { left: "100%", marginLeft: 10, top: 0 } : { right: "100%", marginRight: 10, top: 0 };
|
|
13712
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
13713
|
+
placement.hasConnector && /* @__PURE__ */ jsx(
|
|
13714
|
+
"div",
|
|
13715
|
+
{
|
|
13716
|
+
"aria-hidden": true,
|
|
13717
|
+
className: "pointer-events-none fixed",
|
|
13718
|
+
style: {
|
|
13719
|
+
left: placement.connectorLeft,
|
|
13720
|
+
top: placement.connectorTop - 1,
|
|
13721
|
+
width: placement.connectorWidth,
|
|
13722
|
+
height: 2,
|
|
13723
|
+
background: accent,
|
|
13724
|
+
opacity: 0.55,
|
|
13725
|
+
zIndex: 299
|
|
13726
|
+
}
|
|
13727
|
+
}
|
|
13728
|
+
),
|
|
13729
|
+
/* @__PURE__ */ jsxs(
|
|
13730
|
+
"div",
|
|
13731
|
+
{
|
|
13732
|
+
className: "fixed",
|
|
13733
|
+
style: {
|
|
13734
|
+
left: placement.left,
|
|
13735
|
+
top: placement.top,
|
|
13736
|
+
zIndex: 300,
|
|
13737
|
+
width: PANEL_WIDTH
|
|
13738
|
+
},
|
|
13739
|
+
"data-testid": "quick-config-panel",
|
|
13740
|
+
children: [
|
|
13741
|
+
showMapper && /* @__PURE__ */ jsxs(
|
|
13742
|
+
"div",
|
|
13743
|
+
{
|
|
13744
|
+
className: "absolute overflow-hidden rounded-xl border border-border bg-card shadow-xl",
|
|
13745
|
+
style: {
|
|
13746
|
+
...mapperStyle,
|
|
13747
|
+
width: MAPPER_WIDTH,
|
|
13748
|
+
maxHeight: "min(60vh, 480px)",
|
|
13749
|
+
display: "flex",
|
|
13750
|
+
flexDirection: "column"
|
|
13751
|
+
},
|
|
13752
|
+
"data-testid": "quick-config-mapper",
|
|
13753
|
+
children: [
|
|
13754
|
+
/* @__PURE__ */ jsxs("div", { className: "flex shrink-0 items-center gap-2 border-b border-border px-3 py-2", children: [
|
|
13755
|
+
/* @__PURE__ */ jsx(
|
|
13756
|
+
Icon,
|
|
13757
|
+
{
|
|
13758
|
+
icon: "mdi:tray-arrow-down",
|
|
13759
|
+
className: "size-3.5 text-muted-foreground"
|
|
13760
|
+
}
|
|
13761
|
+
),
|
|
13762
|
+
/* @__PURE__ */ jsx("span", { className: "text-[11px] font-semibold uppercase tracking-[0.12em] text-muted-foreground", children: "Input" }),
|
|
13763
|
+
sourceIds.length > 0 && /* @__PURE__ */ jsx(
|
|
13764
|
+
"select",
|
|
13765
|
+
{
|
|
13766
|
+
className: "ml-auto max-w-[55%] truncate rounded-md border border-input bg-background px-1.5 py-0.5 text-[11px] text-foreground outline-none focus:border-primary",
|
|
13767
|
+
value: selectedSource ?? "",
|
|
13768
|
+
onChange: (e) => setSelectedSource(e.target.value),
|
|
13769
|
+
"data-testid": "qc-source-selector",
|
|
13770
|
+
children: sourceIds.map((sid) => {
|
|
13771
|
+
const sn = nodes.find((n) => n.id === sid);
|
|
13772
|
+
return /* @__PURE__ */ jsx("option", { value: sid, children: nodeTitle(sn) }, sid);
|
|
13773
|
+
})
|
|
13774
|
+
}
|
|
13775
|
+
)
|
|
13776
|
+
] }),
|
|
13777
|
+
/* @__PURE__ */ jsx("div", { className: "min-h-0 flex-1 overflow-auto px-2 py-2", children: inputFields.length > 0 ? /* @__PURE__ */ jsx(FieldTree, { fields: inputFields, draggable: true }) : /* @__PURE__ */ jsx("p", { className: "px-2 py-4 text-center text-xs text-muted-foreground", children: sourceIds.length === 0 ? "Connect an upstream node to map its fields." : "The selected source has no declared output fields." }) }),
|
|
13778
|
+
/* @__PURE__ */ jsx("p", { className: "shrink-0 border-t border-border px-3 py-1.5 text-[10px] leading-snug text-muted-foreground", children: "Drag a field onto a parameter to map it." })
|
|
13779
|
+
]
|
|
13780
|
+
}
|
|
13781
|
+
),
|
|
13782
|
+
/* @__PURE__ */ jsxs(
|
|
13783
|
+
"div",
|
|
13784
|
+
{
|
|
13785
|
+
ref: cardRef,
|
|
13786
|
+
className: "flex flex-col overflow-hidden rounded-xl border border-border bg-card shadow-2xl animate-in fade-in zoom-in-95 duration-150",
|
|
13787
|
+
style: {
|
|
13788
|
+
maxHeight: "min(70vh, 560px)",
|
|
13789
|
+
borderTop: `3px solid ${accent}`
|
|
13790
|
+
},
|
|
13791
|
+
children: [
|
|
13792
|
+
/* @__PURE__ */ jsxs("div", { className: "flex shrink-0 items-center gap-2.5 border-b border-border px-3 py-2.5 select-none", children: [
|
|
13793
|
+
/* @__PURE__ */ jsx(
|
|
13794
|
+
"div",
|
|
13795
|
+
{
|
|
13796
|
+
className: "flex size-7 shrink-0 items-center justify-center rounded-lg",
|
|
13797
|
+
style: {
|
|
13798
|
+
backgroundColor: `color-mix(in srgb, ${accent} 13%, transparent)`,
|
|
13799
|
+
color: accent,
|
|
13800
|
+
border: `1px solid color-mix(in srgb, ${accent} 26%, transparent)`
|
|
13801
|
+
},
|
|
13802
|
+
children: /* @__PURE__ */ jsx(Icon, { icon: meta.icon, className: "size-4" })
|
|
13803
|
+
}
|
|
13804
|
+
),
|
|
13805
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
13806
|
+
/* @__PURE__ */ jsx("p", { className: "truncate text-sm font-semibold leading-tight text-foreground", children: nodeTitle(node) }),
|
|
13807
|
+
subtitle && /* @__PURE__ */ jsx("p", { className: "truncate font-mono text-[11px] leading-tight text-muted-foreground", children: subtitle })
|
|
13808
|
+
] }),
|
|
13809
|
+
/* @__PURE__ */ jsx(
|
|
13810
|
+
"button",
|
|
13811
|
+
{
|
|
13812
|
+
type: "button",
|
|
13813
|
+
title: showMapper ? "Hide input data" : "Map data from input",
|
|
13814
|
+
"aria-label": "Toggle input mapper",
|
|
13815
|
+
onClick: () => setShowMapper((v) => !v),
|
|
13816
|
+
className: `rounded-md p-1.5 transition-colors hover:bg-muted ${showMapper ? "text-primary" : "text-muted-foreground"} hover:text-foreground`,
|
|
13817
|
+
"data-testid": "qc-toggle-mapper",
|
|
13818
|
+
children: /* @__PURE__ */ jsx(Icon, { icon: "mdi:tray-arrow-down", className: "size-4" })
|
|
13819
|
+
}
|
|
13820
|
+
),
|
|
13821
|
+
/* @__PURE__ */ jsx(
|
|
13822
|
+
"button",
|
|
13823
|
+
{
|
|
13824
|
+
type: "button",
|
|
13825
|
+
title: "Open full editor",
|
|
13826
|
+
"aria-label": "Open full editor",
|
|
13827
|
+
onClick: expandToNdv,
|
|
13828
|
+
className: "rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",
|
|
13829
|
+
"data-testid": "qc-expand",
|
|
13830
|
+
children: /* @__PURE__ */ jsx(Icon, { icon: "mdi:arrow-expand", className: "size-4" })
|
|
13831
|
+
}
|
|
13832
|
+
),
|
|
13833
|
+
/* @__PURE__ */ jsx(
|
|
13834
|
+
"button",
|
|
13835
|
+
{
|
|
13836
|
+
type: "button",
|
|
13837
|
+
title: "Close",
|
|
13838
|
+
"aria-label": "Close",
|
|
13839
|
+
onClick: close,
|
|
13840
|
+
className: "rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",
|
|
13841
|
+
"data-testid": "qc-close",
|
|
13842
|
+
children: /* @__PURE__ */ jsx(Icon, { icon: "mdi:close", className: "size-4" })
|
|
13843
|
+
}
|
|
13844
|
+
)
|
|
13845
|
+
] }),
|
|
13631
13846
|
/* @__PURE__ */ jsx(
|
|
13632
|
-
|
|
13633
|
-
{
|
|
13634
|
-
icon: "mdi:tray-arrow-down",
|
|
13635
|
-
className: "size-3.5 text-muted-foreground"
|
|
13636
|
-
}
|
|
13637
|
-
),
|
|
13638
|
-
/* @__PURE__ */ jsx("span", { className: "text-[11px] font-semibold uppercase tracking-[0.12em] text-muted-foreground", children: "Input" }),
|
|
13639
|
-
sourceIds.length > 0 && /* @__PURE__ */ jsx(
|
|
13640
|
-
"select",
|
|
13847
|
+
"div",
|
|
13641
13848
|
{
|
|
13642
|
-
className: "
|
|
13643
|
-
|
|
13644
|
-
|
|
13645
|
-
|
|
13646
|
-
|
|
13647
|
-
|
|
13648
|
-
return /* @__PURE__ */ jsx("option", { value: sid, children: nodeTitle(sn) }, sid);
|
|
13649
|
-
})
|
|
13650
|
-
}
|
|
13651
|
-
)
|
|
13652
|
-
] }),
|
|
13653
|
-
/* @__PURE__ */ jsx("div", { className: "min-h-0 flex-1 overflow-auto px-2 py-2", children: inputFields.length > 0 ? /* @__PURE__ */ jsx(FieldTree, { fields: inputFields, draggable: true }) : /* @__PURE__ */ jsx("p", { className: "px-2 py-4 text-center text-xs text-muted-foreground", children: sourceIds.length === 0 ? "Connect an upstream node to map its fields." : "The selected source has no declared output fields." }) }),
|
|
13654
|
-
/* @__PURE__ */ jsx("p", { className: "shrink-0 border-t border-border px-3 py-1.5 text-[10px] leading-snug text-muted-foreground", children: "Drag a field onto a parameter to map it." })
|
|
13655
|
-
]
|
|
13656
|
-
}
|
|
13657
|
-
),
|
|
13658
|
-
/* @__PURE__ */ jsxs(
|
|
13659
|
-
"div",
|
|
13660
|
-
{
|
|
13661
|
-
className: "flex flex-col overflow-hidden rounded-xl border border-border bg-card shadow-2xl animate-in fade-in zoom-in-95 duration-150",
|
|
13662
|
-
style: {
|
|
13663
|
-
maxHeight: "min(70vh, 560px)",
|
|
13664
|
-
borderTop: `3px solid ${accent}`
|
|
13665
|
-
},
|
|
13666
|
-
children: [
|
|
13667
|
-
/* @__PURE__ */ jsxs(
|
|
13668
|
-
"div",
|
|
13669
|
-
{
|
|
13670
|
-
className: "flex shrink-0 cursor-move items-center gap-2.5 border-b border-border px-3 py-2.5 select-none",
|
|
13671
|
-
onPointerDown: handleHeaderPointerDown,
|
|
13672
|
-
children: [
|
|
13673
|
-
/* @__PURE__ */ jsx(
|
|
13674
|
-
"div",
|
|
13675
|
-
{
|
|
13676
|
-
className: "flex size-7 shrink-0 items-center justify-center rounded-lg",
|
|
13677
|
-
style: {
|
|
13678
|
-
backgroundColor: `color-mix(in srgb, ${accent} 13%, transparent)`,
|
|
13679
|
-
color: accent,
|
|
13680
|
-
border: `1px solid color-mix(in srgb, ${accent} 26%, transparent)`
|
|
13681
|
-
},
|
|
13682
|
-
children: /* @__PURE__ */ jsx(Icon, { icon: meta.icon, className: "size-4" })
|
|
13849
|
+
className: "min-h-0 flex-1 space-y-4 overflow-auto p-3",
|
|
13850
|
+
"data-testid": "qc-params",
|
|
13851
|
+
onFocusCapture: (e) => {
|
|
13852
|
+
const tag = e.target.tagName;
|
|
13853
|
+
if (sourceIds.length > 0 && (tag === "INPUT" || tag === "SELECT" || tag === "TEXTAREA")) {
|
|
13854
|
+
setShowMapper(true);
|
|
13683
13855
|
}
|
|
13684
|
-
|
|
13685
|
-
/* @__PURE__ */
|
|
13686
|
-
|
|
13687
|
-
subtitle && /* @__PURE__ */ jsx("p", { className: "truncate font-mono text-[11px] leading-tight text-muted-foreground", children: subtitle })
|
|
13688
|
-
] }),
|
|
13689
|
-
/* @__PURE__ */ jsx(
|
|
13690
|
-
"button",
|
|
13691
|
-
{
|
|
13692
|
-
type: "button",
|
|
13693
|
-
title: showMapper ? "Hide input data" : "Map data from input",
|
|
13694
|
-
"aria-label": "Toggle input mapper",
|
|
13695
|
-
onClick: () => setShowMapper((v) => !v),
|
|
13696
|
-
className: `rounded-md p-1.5 transition-colors hover:bg-muted ${showMapper ? "text-primary" : "text-muted-foreground"} hover:text-foreground`,
|
|
13697
|
-
"data-testid": "qc-toggle-mapper",
|
|
13698
|
-
children: /* @__PURE__ */ jsx(Icon, { icon: "mdi:tray-arrow-down", className: "size-4" })
|
|
13699
|
-
}
|
|
13700
|
-
),
|
|
13701
|
-
/* @__PURE__ */ jsx(
|
|
13702
|
-
"button",
|
|
13703
|
-
{
|
|
13704
|
-
type: "button",
|
|
13705
|
-
title: "Open full editor",
|
|
13706
|
-
"aria-label": "Open full editor",
|
|
13707
|
-
onClick: expandToNdv,
|
|
13708
|
-
className: "rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",
|
|
13709
|
-
"data-testid": "qc-expand",
|
|
13710
|
-
children: /* @__PURE__ */ jsx(Icon, { icon: "mdi:arrow-expand", className: "size-4" })
|
|
13711
|
-
}
|
|
13712
|
-
),
|
|
13713
|
-
/* @__PURE__ */ jsx(
|
|
13714
|
-
"button",
|
|
13856
|
+
},
|
|
13857
|
+
children: /* @__PURE__ */ jsx(
|
|
13858
|
+
NodeParamsForm,
|
|
13715
13859
|
{
|
|
13716
|
-
|
|
13717
|
-
|
|
13718
|
-
|
|
13719
|
-
onClick: close,
|
|
13720
|
-
className: "rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",
|
|
13721
|
-
"data-testid": "qc-close",
|
|
13722
|
-
children: /* @__PURE__ */ jsx(Icon, { icon: "mdi:close", className: "size-4" })
|
|
13860
|
+
config,
|
|
13861
|
+
nodeType: node.type,
|
|
13862
|
+
testIdPrefix: "qc"
|
|
13723
13863
|
}
|
|
13724
13864
|
)
|
|
13725
|
-
|
|
13726
|
-
|
|
13727
|
-
|
|
13728
|
-
|
|
13729
|
-
|
|
13730
|
-
|
|
13731
|
-
|
|
13732
|
-
|
|
13733
|
-
|
|
13734
|
-
|
|
13735
|
-
if (sourceIds.length > 0 && (tag === "INPUT" || tag === "SELECT" || tag === "TEXTAREA")) {
|
|
13736
|
-
setShowMapper(true);
|
|
13737
|
-
}
|
|
13738
|
-
},
|
|
13739
|
-
children: /* @__PURE__ */ jsx(
|
|
13740
|
-
NodeParamsForm,
|
|
13741
|
-
{
|
|
13742
|
-
config,
|
|
13743
|
-
nodeType: node.type,
|
|
13744
|
-
testIdPrefix: "qc"
|
|
13745
|
-
}
|
|
13746
|
-
)
|
|
13747
|
-
}
|
|
13748
|
-
),
|
|
13749
|
-
/* @__PURE__ */ jsx("p", { className: "shrink-0 border-t border-border px-3 py-1.5 text-[10px] leading-snug text-muted-foreground", children: "Changes apply instantly \xB7 double-click the node for the full editor" })
|
|
13750
|
-
]
|
|
13751
|
-
}
|
|
13752
|
-
)
|
|
13753
|
-
]
|
|
13754
|
-
}
|
|
13755
|
-
);
|
|
13865
|
+
}
|
|
13866
|
+
),
|
|
13867
|
+
/* @__PURE__ */ jsx("p", { className: "shrink-0 border-t border-border px-3 py-1.5 text-[10px] leading-snug text-muted-foreground", children: "Changes apply instantly \xB7 double-click the node for the full editor" })
|
|
13868
|
+
]
|
|
13869
|
+
}
|
|
13870
|
+
)
|
|
13871
|
+
]
|
|
13872
|
+
}
|
|
13873
|
+
)
|
|
13874
|
+
] });
|
|
13756
13875
|
}
|
|
13757
13876
|
var STATUS_STYLES = {
|
|
13758
13877
|
DRAFT: { label: "Draft", variant: "secondary" },
|
|
@@ -14775,7 +14894,7 @@ function WorkflowItem({
|
|
|
14775
14894
|
};
|
|
14776
14895
|
const requiredNodeTypes = [];
|
|
14777
14896
|
try {
|
|
14778
|
-
const { NODE_CONFIGS: NODE_CONFIGS3, ensureNodeConfigsLoaded: ensureNodeConfigsLoaded2 } = await import('./blocks-
|
|
14897
|
+
const { NODE_CONFIGS: NODE_CONFIGS3, ensureNodeConfigsLoaded: ensureNodeConfigsLoaded2 } = await import('./blocks-HIWIS6OD.js');
|
|
14779
14898
|
await ensureNodeConfigsLoaded2().catch(() => {
|
|
14780
14899
|
});
|
|
14781
14900
|
const workflowNodeTypes = [
|
|
@@ -15073,5 +15192,5 @@ function WorkflowBuilder() {
|
|
|
15073
15192
|
}
|
|
15074
15193
|
|
|
15075
15194
|
export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, FlowBuilderPage, FluidGridsProvider, TemplateCard, WorkflowBuilder, useFluidGridsContext, useImportWorkflowTemplate, useWorkflowTemplates };
|
|
15076
|
-
//# sourceMappingURL=chunk-
|
|
15077
|
-
//# sourceMappingURL=chunk-
|
|
15195
|
+
//# sourceMappingURL=chunk-CUCRQ7BD.js.map
|
|
15196
|
+
//# sourceMappingURL=chunk-CUCRQ7BD.js.map
|