@burdenoff/fluidgrids-fe-sdk 2026.1113.11 → 2026.1114.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/dist/{AiStudioPage-BP2cLXEK.js → AiStudioPage-C040XZyS.js} +4 -4
- package/dist/{DataSinkDashboardPage-CiFi9YXQ.js → DataSinkDashboardPage-BoyLrZnt.js} +1 -1
- package/dist/{ExecutionDetailPage-BfFrWnBj.js → ExecutionDetailPage-C0lNp122.js} +5 -5
- package/dist/{ExecutionsListPage-BRvj71Nd.js → ExecutionsListPage-BpHBy1JU.js} +4 -4
- package/dist/{FluidGridsProvider-Dxehlm-2.js → FluidGridsProvider-CPLfIarV.js} +2 -2
- package/dist/{HistoryPage-CjtgUOZr.js → HistoryPage-CCZS-hPw.js} +1 -1
- package/dist/{InsightsPage-BsGqBpUO.js → InsightsPage-C-Nm9YNI.js} +1 -1
- package/dist/{NodesPage-B8fqXtey.js → NodesPage-C3sh0aL9.js} +1 -1
- package/dist/{PaidTemplateConfirm-BUBCnbP0.js → PaidTemplateConfirm-D20JFNCb.js} +1 -1
- package/dist/{QuotaExhaustedDialog-BEsj0A-I.js → QuotaExhaustedDialog-DTpI0jfj.js} +1 -1
- package/dist/{SettingsPage-DpBhx95x.js → SettingsPage-CmIa107C.js} +828 -8
- package/dist/{TaskQueuesPage-DLzuumGp.js → TaskQueuesPage-BNoe05qF.js} +16 -2
- package/dist/{TemplateCard-DD3vJ3a5.js → TemplateCard-C_YMW80k.js} +44 -34
- package/dist/{TemplateConfigurationModal-BtzI-4fr.js → TemplateConfigurationModal-DmM7s1zk.js} +1 -1
- package/dist/{TemplateDetailPanel-BxFNnlXm.js → TemplateDetailPanel-k0esV8pr.js} +12 -15
- package/dist/{TemplatePreview-Ca7df91b.js → TemplatePreview-aKYt0Kad.js} +4 -4
- package/dist/{TemplatesPage-BSMLtMnf.js → TemplatesPage-DIVghCB6.js} +12 -10
- package/dist/{WorkflowBuilder-Bok_WtPQ.js → WorkflowBuilder-BsDvbIpS.js} +6 -6
- package/dist/{WorkflowBuilder-Dh8MYfZJ.js → WorkflowBuilder-knGFBAAk.js} +4 -4
- package/dist/{WorkflowSearchRedirect-bcWo68LY.js → WorkflowSearchRedirect-DFsQzQw9.js} +1 -1
- package/dist/{WorkflowsList-DURQu2ZD.js → WorkflowsList-DEN-0uQe.js} +6 -6
- package/dist/{agentTools-B4BDCe57.js → agentTools-BTld9unj.js} +3 -3
- package/dist/{app-BIsCEL65.js → app-4Qdv2_5b.js} +4 -4
- package/dist/{attach-node-helpers-CCWFS75V.js → attach-node-helpers-4d-YMaBH.js} +1 -1
- package/dist/{canvasNoteTools-CLMZ6u5m.js → canvasNoteTools-C9vJMuXY.js} +2 -2
- package/dist/executions.js +2 -2
- package/dist/{flow-builder-CIvz3sOr.js → flow-builder-ConlP_db.js} +60 -48
- package/dist/history.js +1 -1
- package/dist/{index-BDN8AK1D.d.ts → index-BVCOwqsN.d.ts} +90 -59
- package/dist/index.d.ts +2 -2
- package/dist/index.js +45 -45
- package/dist/{label-CDy86rIZ.js → label-BMVzJ2yW.js} +2 -2
- package/dist/{logs-panel-_Dl5Nrdn.js → logs-panel-BgGt_dFm.js} +1 -1
- package/dist/{node-detail-view-Dz1ZCIzV.js → node-detail-view-C4jNBsfW.js} +9 -9
- package/dist/{node-editor-tab-body-D5ybpm-b.js → node-editor-tab-body-CYeFTQr6.js} +3 -3
- package/dist/{node-operation-selection-bFx9s45-.js → node-operation-selection-DHbtGNrG.js} +9 -9
- package/dist/node-type-icon-DEAztACh.js +28 -0
- package/dist/nodes.js +1 -1
- package/dist/observability.d.ts +1 -1
- package/dist/observability.js +2 -2
- package/dist/{popover-ClSWhtja.js → popover-DhwmsszC.js} +4 -4
- package/dist/{quick-config-panel-iDMk4TT5.js → quick-config-panel-c8JQlXuc.js} +5 -5
- package/dist/{schedule-panel-DzkTZm2q.js → schedule-panel-CBab8kSL.js} +5 -5
- package/dist/settings.js +1 -1
- package/dist/{sidebar-node-editor-C16VnTzr.js → sidebar-node-editor-Bo_XRHJs.js} +5 -5
- package/dist/store-icon-BOiBSHY6.js +100 -0
- package/dist/template-preview-BpP8QMAe.js +32 -0
- package/dist/templates.js +2 -2
- package/dist/{useAgentDefinitions-akQ6WwzD.js → useAgentDefinitions-Bs_ci53W.js} +1 -1
- package/dist/{useDurableParity-fZcATZHI.js → useDurableParity-DrahdkaR.js} +1 -1
- package/dist/{useExecutions-lRqeXDYS.js → useExecutions-6P7ohzlh.js} +1 -1
- package/dist/{useGlobalStoreClient-BOI2kYRv.js → useGlobalStoreClient-B42oOe9Q.js} +1 -1
- package/dist/{useObservability-CBFLQBQO.js → useObservability-BSLLLev9.js} +1 -1
- package/dist/{useRunHistory-DSDD_ha3.js → useRunHistory-DuKiGSuF.js} +1 -1
- package/dist/{useWorkflowCodeExport-qGat2KNz.js → useWorkflowCodeExport-D80HIo-F.js} +1 -1
- package/dist/{useWorkflows-CXwXQg74.js → useWorkflows-B5kFIfrZ.js} +1 -1
- package/dist/workflow-builder.js +5 -5
- package/dist/workflow-pages.d.ts +1 -1
- package/dist/workflow-pages.js +15 -15
- package/dist/workflow-preview.js +1 -1
- package/dist/workflows-list.js +1 -1
- package/package.json +1 -1
- package/dist/node-type-icon-D28t8I64.js +0 -35
- package/dist/template-preview-C01KV277.js +0 -29
|
@@ -87,9 +87,18 @@ function formatAge(iso, now = Date.now()) {
|
|
|
87
87
|
if (seconds < 86400) return `${Math.round(seconds / 3600)}h ago`;
|
|
88
88
|
return new Date(iso).toLocaleDateString();
|
|
89
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* The queue a worker token names for one queue row (spec 06 §6, G10): the
|
|
92
|
+
* plain name for an unscoped row (workers may serve every environment), and
|
|
93
|
+
* `name@<env>` for a row scoped to one environment, which binds the token so
|
|
94
|
+
* its workers only take that environment's tasks.
|
|
95
|
+
*/
|
|
96
|
+
function workerQueueOf(queue) {
|
|
97
|
+
return queue.environment ? `${queue.name}@${queue.environment.toLowerCase()}` : queue.name;
|
|
98
|
+
}
|
|
90
99
|
/** The one-line worker start command shown with a new token (no token in it). */
|
|
91
100
|
function workerRunCommand(taskQueues, bridgeUrl) {
|
|
92
|
-
return `FLUIDGRIDS_WORKER_TOKEN=<token> fluidgrids worker run --
|
|
101
|
+
return `FLUIDGRIDS_WORKER_TOKEN=<token> fluidgrids worker run --queue ${taskQueues.length > 0 ? taskQueues.join(",") : "my-queue"}${bridgeUrl ? ` --bridge-url ${bridgeUrl}` : ""}`;
|
|
93
102
|
}
|
|
94
103
|
|
|
95
104
|
// src/modules/task-queues/components/TaskQueueDialogs.tsx
|
|
@@ -356,6 +365,11 @@ function WorkerTokenDialog({ queues, canSetAllowlist, onClose, onCreated }) {
|
|
|
356
365
|
className: "text-sm text-text-secondary",
|
|
357
366
|
children: tr("fluidgrids.taskQueues.noQueues", "Create a self-hosted queue first.")
|
|
358
367
|
}),
|
|
368
|
+
queues.some((queue) => queue.includes("@")) && /* @__PURE__ */ jsx("p", {
|
|
369
|
+
className: "text-xs text-text-secondary",
|
|
370
|
+
"data-testid": "worker-token-environment-hint",
|
|
371
|
+
children: tr("fluidgrids.taskQueues.tokenEnvironmentHint", "A queue shown as name@environment binds the token: its workers only take tasks of runs in that environment. A plain name serves every environment.")
|
|
372
|
+
}),
|
|
359
373
|
queues.map((queue) => /* @__PURE__ */ jsxs("label", {
|
|
360
374
|
className: "flex items-center gap-2 text-sm text-text-primary",
|
|
361
375
|
children: [/* @__PURE__ */ jsx("input", {
|
|
@@ -555,7 +569,7 @@ function TaskQueuesContent() {
|
|
|
555
569
|
const [issuing, setIssuing] = useState(false);
|
|
556
570
|
const [secret, setSecret] = useState(null);
|
|
557
571
|
const [allowlist, setAllowlist] = useState(null);
|
|
558
|
-
const selfHosted = (queues.data ?? []).filter((queue) => queue.kind === "SELF_HOSTED").map(
|
|
572
|
+
const selfHosted = [...new Set((queues.data ?? []).filter((queue) => queue.kind === "SELF_HOSTED").map(workerQueueOf))];
|
|
559
573
|
const removeQueue = async () => {
|
|
560
574
|
if (!deleting?.id) return;
|
|
561
575
|
try {
|
|
@@ -3,8 +3,9 @@ import { r as getFluidGridsConfig } from "./config-X97zrIvn.js";
|
|
|
3
3
|
import { o as throwIfResultError } from "./errors-xPZ-IbQd.js";
|
|
4
4
|
import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
|
|
5
5
|
import { n as getGlobalStoreClient } from "./global-client-DP_Wxe5t.js";
|
|
6
|
-
import { c as ensureInstalledNodeTypesLoaded, d as ensureRegistryNodeTypesLoaded, i as AVAILABLE_NODES, o as NODE_CONFIGS, t as FluidGridsContext, un as useFluidGridsAnalytics, y as GetMyNodeInstallationsDocument } from "./FluidGridsProvider-
|
|
6
|
+
import { c as ensureInstalledNodeTypesLoaded, d as ensureRegistryNodeTypesLoaded, i as AVAILABLE_NODES, o as NODE_CONFIGS, t as FluidGridsContext, un as useFluidGridsAnalytics, y as GetMyNodeInstallationsDocument } from "./FluidGridsProvider-CPLfIarV.js";
|
|
7
7
|
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
8
|
+
import { n as storeIconCandidates, t as StoreIcon } from "./store-icon-BOiBSHY6.js";
|
|
8
9
|
import { o as isNodeTypeHiddenFromPalette } from "./durable-nodes-DXCCQYWD.js";
|
|
9
10
|
import { h as usePhaseDFlags } from "./feature-flags-B_b8PJ6Z.js";
|
|
10
11
|
import { c as isQuotaExhaustedFailure } from "./quota-Cdt8yz7N.js";
|
|
@@ -13,15 +14,14 @@ import { n as InstallWorkflowNodeDocument } from "./global-operations-7pvXw_j9.j
|
|
|
13
14
|
import { t as cn } from "./cn-QqidFIgr.js";
|
|
14
15
|
import { t as Button } from "./button-DG7y_FVJ.js";
|
|
15
16
|
import { i as SdkPermissionButton, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
|
|
16
|
-
import { t as useGlobalStoreClient } from "./useGlobalStoreClient-
|
|
17
|
+
import { t as useGlobalStoreClient } from "./useGlobalStoreClient-B42oOe9Q.js";
|
|
17
18
|
import { r as templateInstallSource } from "./template-code-CEjudJEY.js";
|
|
18
19
|
import { t as Badge } from "./badge-CXfPhoMH.js";
|
|
19
|
-
import { t as
|
|
20
|
+
import { t as templatePreviewCandidates } from "./template-preview-BpP8QMAe.js";
|
|
20
21
|
import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
|
|
21
|
-
import
|
|
22
|
+
import { Suspense, forwardRef, lazy, useCallback, useContext, useMemo, useState } from "react";
|
|
22
23
|
import { useQuery } from "@apollo/client/react";
|
|
23
24
|
import { gql } from "@apollo/client/core";
|
|
24
|
-
import { Icon } from "@iconify/react";
|
|
25
25
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
26
26
|
import { toast } from "sonner";
|
|
27
27
|
import { useEventBus } from "@burdenoff/fe-libs/shared/events";
|
|
@@ -168,6 +168,15 @@ const BrowseWorkflowTemplatesDocument = {
|
|
|
168
168
|
"arguments": [],
|
|
169
169
|
"directives": []
|
|
170
170
|
},
|
|
171
|
+
{
|
|
172
|
+
"kind": "Field",
|
|
173
|
+
"name": {
|
|
174
|
+
"kind": "Name",
|
|
175
|
+
"value": "iconUrl"
|
|
176
|
+
},
|
|
177
|
+
"arguments": [],
|
|
178
|
+
"directives": []
|
|
179
|
+
},
|
|
171
180
|
{
|
|
172
181
|
"kind": "Field",
|
|
173
182
|
"name": {
|
|
@@ -773,21 +782,32 @@ function getStoreNodeAvailability(node, isInstalled, options = {}) {
|
|
|
773
782
|
};
|
|
774
783
|
}
|
|
775
784
|
/**
|
|
776
|
-
* The icon a
|
|
785
|
+
* The icon the registry carries for a node type, from the node's manifest.
|
|
777
786
|
*
|
|
778
787
|
* Listings for the built-in nodes are seeded without an icon, so every one of
|
|
779
788
|
* them rendered as a letter tile in the Node Store while the canvas showed the
|
|
780
|
-
* node's real icon (BOFF-7651).
|
|
781
|
-
*
|
|
782
|
-
* listing's own icon always wins; `null` means "no icon anywhere", and the
|
|
783
|
-
* caller draws its letter tile.
|
|
789
|
+
* node's real icon (BOFF-7651). A listing without its own icon falls back to
|
|
790
|
+
* this one.
|
|
784
791
|
*/
|
|
785
|
-
function
|
|
786
|
-
if (listingIcon) return listingIcon;
|
|
792
|
+
function registeredNodeIcon(nodeType) {
|
|
787
793
|
if (!nodeType) return null;
|
|
788
794
|
return AVAILABLE_NODES.find((availableNode) => availableNode.type === nodeType)?.icon || null;
|
|
789
795
|
}
|
|
790
796
|
/**
|
|
797
|
+
* Every icon a store listing can show, best first: the store's
|
|
798
|
+
* browser-ready `iconUrl`, then the raw listing `icon`, then the icon the
|
|
799
|
+
* node registers in its manifest. The icon component walks this list when an
|
|
800
|
+
* image fails to load, ending at the caller's letter tile, so an expired
|
|
801
|
+
* presigned link or a dead third-party URL never shows a broken image.
|
|
802
|
+
*/
|
|
803
|
+
function storeNodeIconCandidates(listing, nodeType) {
|
|
804
|
+
return storeIconCandidates([
|
|
805
|
+
listing.iconUrl,
|
|
806
|
+
listing.icon,
|
|
807
|
+
registeredNodeIcon(nodeType)
|
|
808
|
+
]);
|
|
809
|
+
}
|
|
810
|
+
/**
|
|
791
811
|
* The version to show for a store node: the node's own version from its
|
|
792
812
|
* manifest (`nodeVersion`, then `identity.version`), falling back to the
|
|
793
813
|
* product's `manifestVersion`. The product field is usually the manifest
|
|
@@ -1621,7 +1641,7 @@ async function dismissToastWhenShown(id) {
|
|
|
1621
1641
|
}
|
|
1622
1642
|
|
|
1623
1643
|
// src/hooks/store/useTemplateImportFlow.tsx
|
|
1624
|
-
const LazyTemplateConfigurationModal = lazy(() => import("./TemplateConfigurationModal-
|
|
1644
|
+
const LazyTemplateConfigurationModal = lazy(() => import("./TemplateConfigurationModal-DmM7s1zk.js").then((m) => ({ default: m.TemplateConfigurationModal })));
|
|
1625
1645
|
/**
|
|
1626
1646
|
* "Use this template", the same everywhere it is offered: the builder's
|
|
1627
1647
|
* template panel, the Templates page and the template preview page
|
|
@@ -1869,37 +1889,27 @@ function UsageCounts({ template }) {
|
|
|
1869
1889
|
function TemplateCard({ template, onClick, onUseTemplate }) {
|
|
1870
1890
|
const tr = useTr();
|
|
1871
1891
|
const v2 = useNavigationV2();
|
|
1872
|
-
const
|
|
1873
|
-
const preview = templatePreview(template);
|
|
1874
|
-
const previewImage = preview.kind === "image" ? preview.src : void 0;
|
|
1875
|
-
const hasPreview = Boolean(previewImage) && !imageError;
|
|
1892
|
+
const previewCandidates = templatePreviewCandidates(template);
|
|
1876
1893
|
const handleUseTemplate = (e) => {
|
|
1877
1894
|
e.stopPropagation();
|
|
1878
1895
|
onUseTemplate?.(template);
|
|
1879
1896
|
};
|
|
1880
|
-
const handleImageError = () => {
|
|
1881
|
-
setImageError(true);
|
|
1882
|
-
};
|
|
1883
1897
|
return /* @__PURE__ */ jsxs(Card, {
|
|
1884
1898
|
className: cn("group overflow-hidden transition-all duration-300 cursor-pointer", "hover:shadow-xl hover:scale-[1.02] border-2 hover:border-primary/50"),
|
|
1885
1899
|
onClick,
|
|
1886
1900
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
1887
1901
|
className: "relative aspect-video w-full overflow-hidden bg-gradient-to-br from-primary/5 to-primary/10",
|
|
1888
1902
|
children: [
|
|
1889
|
-
|
|
1890
|
-
src: previewImage,
|
|
1891
|
-
alt: template.name,
|
|
1892
|
-
onError: handleImageError,
|
|
1893
|
-
className: "w-full h-full object-cover group-hover:scale-110 transition-transform duration-300"
|
|
1894
|
-
}) : /* @__PURE__ */ jsx("div", {
|
|
1903
|
+
/* @__PURE__ */ jsx("div", {
|
|
1895
1904
|
className: "w-full h-full flex items-center justify-center",
|
|
1896
|
-
children:
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1905
|
+
children: /* @__PURE__ */ jsx(StoreIcon, {
|
|
1906
|
+
candidates: previewCandidates,
|
|
1907
|
+
alt: template.name,
|
|
1908
|
+
imageClassName: "w-full h-full group-hover:scale-110 transition-transform duration-300",
|
|
1909
|
+
iconClassName: "text-primary/60",
|
|
1910
|
+
iconSize: 64,
|
|
1911
|
+
fallback: /* @__PURE__ */ jsx(Sparkles, { className: "size-16 text-primary/30" })
|
|
1912
|
+
})
|
|
1903
1913
|
}),
|
|
1904
1914
|
template.featured && /* @__PURE__ */ jsx("div", {
|
|
1905
1915
|
className: "absolute top-2 right-2",
|
|
@@ -1999,4 +2009,4 @@ function TemplateCard({ template, onClick, onUseTemplate }) {
|
|
|
1999
2009
|
});
|
|
2000
2010
|
}
|
|
2001
2011
|
|
|
2002
|
-
export { CardTitle as C, CardHeader as S, useInstalledNodes as _, buildNodeCheck as a, CardDescription as b, useImportWorkflowTemplate as c, getStoreNodeAvailability as d,
|
|
2012
|
+
export { CardTitle as C, CardHeader as S, useInstalledNodes as _, buildNodeCheck as a, CardDescription as b, useImportWorkflowTemplate as c, getStoreNodeAvailability as d, getStoreNodeType as f, storeNodeInstallVersion as g, storeNodeIconCandidates as h, useTemplateImportFlow as i, useWorkflowTemplates as l, storeNodeDisplayVersion as m, formatTemplatePrice as n, buildRequiredNodeTypes as o, isStoreNodeUpdateAvailable as p, isPaidTemplate as r, getWorkflowNodeTypes as s, TemplateCard as t, filterStoreNodesForPalette as u, Card as v, CardFooter as x, CardContent as y };
|
package/dist/{TemplateConfigurationModal-BtzI-4fr.js → TemplateConfigurationModal-DmM7s1zk.js}
RENAMED
|
@@ -3,7 +3,7 @@ import { a as DialogFooter, i as DialogDescription, l as DialogTitle, o as Dialo
|
|
|
3
3
|
import { t as Input } from "./input-ChT6Q-Pr.js";
|
|
4
4
|
import { t as Button } from "./button-DG7y_FVJ.js";
|
|
5
5
|
import { t as Badge } from "./badge-CXfPhoMH.js";
|
|
6
|
-
import { t as Label } from "./label-
|
|
6
|
+
import { t as Label } from "./label-BMVzJ2yW.js";
|
|
7
7
|
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
8
8
|
import { t as OpenTemplateAsCodeButton } from "./OpenTemplateAsCodeButton-C-6JVZoS.js";
|
|
9
9
|
import { useEffect, useMemo, useState } from "react";
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import { t as Button } from "./button-DG7y_FVJ.js";
|
|
3
3
|
import { t as Badge } from "./badge-CXfPhoMH.js";
|
|
4
4
|
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
5
|
-
import { t as
|
|
5
|
+
import { t as templatePreviewCandidates } from "./template-preview-BpP8QMAe.js";
|
|
6
|
+
import { t as StoreIcon } from "./store-icon-BOiBSHY6.js";
|
|
6
7
|
import { i as SdkPermissionButton, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
|
|
7
|
-
import { Icon } from "@iconify/react";
|
|
8
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
import { Calendar, Download, ExternalLink, Eye, Sparkles, Star, Tag, User, X } from "lucide-react";
|
|
10
10
|
|
|
@@ -32,7 +32,7 @@ function formatDate(dateStr) {
|
|
|
32
32
|
*/
|
|
33
33
|
function TemplateDetailPanel({ template, onClose, onUseTemplate }) {
|
|
34
34
|
const tr = useTr();
|
|
35
|
-
const
|
|
35
|
+
const previewCandidates = templatePreviewCandidates(template);
|
|
36
36
|
return /* @__PURE__ */ jsxs("div", {
|
|
37
37
|
className: "w-full md:w-1/2 lg:w-2/5 border-l bg-background overflow-y-auto",
|
|
38
38
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
@@ -53,19 +53,16 @@ function TemplateDetailPanel({ template, onClose, onUseTemplate }) {
|
|
|
53
53
|
/* @__PURE__ */ jsxs("div", {
|
|
54
54
|
className: "relative aspect-video w-full rounded-lg overflow-hidden bg-gradient-to-br from-primary/5 to-primary/10",
|
|
55
55
|
children: [
|
|
56
|
-
|
|
57
|
-
src: preview.src,
|
|
58
|
-
alt: template.name,
|
|
59
|
-
className: "w-full h-full object-cover"
|
|
60
|
-
}) : /* @__PURE__ */ jsx("div", {
|
|
56
|
+
/* @__PURE__ */ jsx("div", {
|
|
61
57
|
className: "w-full h-full flex items-center justify-center",
|
|
62
|
-
children:
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
58
|
+
children: /* @__PURE__ */ jsx(StoreIcon, {
|
|
59
|
+
candidates: previewCandidates,
|
|
60
|
+
alt: template.name,
|
|
61
|
+
imageClassName: "w-full h-full",
|
|
62
|
+
iconClassName: "text-primary/60",
|
|
63
|
+
iconSize: 64,
|
|
64
|
+
fallback: /* @__PURE__ */ jsx(Sparkles, { className: "size-16 text-primary/30" })
|
|
65
|
+
})
|
|
69
66
|
}),
|
|
70
67
|
/* @__PURE__ */ jsx("div", {
|
|
71
68
|
className: "absolute top-2 left-2",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
|
|
3
3
|
import { t as ThemeProvider } from "./theme-provider-B3mIuz2d.js";
|
|
4
|
-
import { t as FlowBuilderPage } from "./flow-builder-
|
|
5
|
-
import { _ as useInstalledNodes, a as buildNodeCheck, c as useImportWorkflowTemplate, i as useTemplateImportFlow, n as formatTemplatePrice, o as buildRequiredNodeTypes, r as isPaidTemplate } from "./TemplateCard-
|
|
6
|
-
import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-
|
|
4
|
+
import { t as FlowBuilderPage } from "./flow-builder-ConlP_db.js";
|
|
5
|
+
import { _ as useInstalledNodes, a as buildNodeCheck, c as useImportWorkflowTemplate, i as useTemplateImportFlow, n as formatTemplatePrice, o as buildRequiredNodeTypes, r as isPaidTemplate } from "./TemplateCard-C_YMW80k.js";
|
|
6
|
+
import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-DTpI0jfj.js";
|
|
7
7
|
import { n as WithOpenTemplateAsCode } from "./OpenTemplateAsCodeButton-C-6JVZoS.js";
|
|
8
8
|
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
9
9
|
import { i as SdkPermissionButton, s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
|
|
@@ -12,7 +12,7 @@ import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
|
|
|
12
12
|
import { t as describeOperationError } from "./errors-xPZ-IbQd.js";
|
|
13
13
|
import { t as Disclosure } from "./Disclosure-CsxDspR7.js";
|
|
14
14
|
import { c as useVariables, t as useCreateVariable } from "./useVariables-DFdZofLQ.js";
|
|
15
|
-
import { t as PaidTemplateConfirm } from "./PaidTemplateConfirm-
|
|
15
|
+
import { t as PaidTemplateConfirm } from "./PaidTemplateConfirm-D20JFNCb.js";
|
|
16
16
|
import { useEffect, useMemo, useState } from "react";
|
|
17
17
|
import { useLocation, useNavigate, useParams } from "react-router";
|
|
18
18
|
import { Icon } from "@iconify/react";
|
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
|
|
3
|
-
import { h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, s as useDuplicateWorkflow } from "./useWorkflows-
|
|
4
|
-
import { i as useTemplateImportFlow, l as useWorkflowTemplates, r as isPaidTemplate, t as TemplateCard } from "./TemplateCard-
|
|
3
|
+
import { h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, s as useDuplicateWorkflow } from "./useWorkflows-B5kFIfrZ.js";
|
|
4
|
+
import { i as useTemplateImportFlow, l as useWorkflowTemplates, r as isPaidTemplate, t as TemplateCard } from "./TemplateCard-C_YMW80k.js";
|
|
5
5
|
import { tL as WorkflowStatus } from "./graphql-types-D82O-0XY.js";
|
|
6
6
|
import { i as SdkPermissionButton, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
|
|
7
|
-
import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-
|
|
7
|
+
import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-DTpI0jfj.js";
|
|
8
8
|
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
9
|
-
import { t as FluidGridsContext, un as useFluidGridsAnalytics } from "./FluidGridsProvider-
|
|
9
|
+
import { t as FluidGridsContext, un as useFluidGridsAnalytics } from "./FluidGridsProvider-CPLfIarV.js";
|
|
10
10
|
import { a as emitTemplateUsed } from "./fluidgridsEvents-Dm5CaHtr.js";
|
|
11
11
|
import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
|
|
12
12
|
import { r as templatesControls } from "./pageControlSpecs-DZJ9K37m.js";
|
|
13
13
|
import { c as isQuotaExhaustedFailure, t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
|
|
14
14
|
import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
|
|
15
|
-
import { t as useGlobalStoreClient } from "./useGlobalStoreClient-
|
|
15
|
+
import { t as useGlobalStoreClient } from "./useGlobalStoreClient-B42oOe9Q.js";
|
|
16
16
|
import { o as throwIfResultError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
|
|
17
|
+
import { t as NodeTypeIcon } from "./node-type-icon-DEAztACh.js";
|
|
17
18
|
import { n as formatRunVersion } from "./run-display-UjLAoYqQ.js";
|
|
18
19
|
import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
|
|
19
20
|
import { t as TechnicalDetails } from "./TechnicalDetails-r5JXr1jZ.js";
|
|
20
|
-
import { t as PaidTemplateConfirm } from "./PaidTemplateConfirm-
|
|
21
|
+
import { t as PaidTemplateConfirm } from "./PaidTemplateConfirm-D20JFNCb.js";
|
|
21
22
|
import { r as getFluidGridsConfig } from "./config-X97zrIvn.js";
|
|
22
23
|
import { t as cn } from "./cn-QqidFIgr.js";
|
|
23
24
|
import { useCallback, useContext, useEffect, useMemo, useState } from "react";
|
|
@@ -1262,10 +1263,11 @@ function MySubmissionsPanel({ onResubmit }) {
|
|
|
1262
1263
|
className: "flex items-start gap-3 min-w-0",
|
|
1263
1264
|
children: [/* @__PURE__ */ jsx("div", {
|
|
1264
1265
|
className: "rounded-lg bg-surface-sunken p-2.5 shrink-0",
|
|
1265
|
-
children: /* @__PURE__ */ jsx(
|
|
1266
|
-
icon: submission.icon
|
|
1267
|
-
|
|
1268
|
-
|
|
1266
|
+
children: /* @__PURE__ */ jsx(NodeTypeIcon, {
|
|
1267
|
+
icon: submission.icon,
|
|
1268
|
+
alt: submission.name,
|
|
1269
|
+
fallbackIcon: "mdi:workflow",
|
|
1270
|
+
className: "size-[22px] text-text-primary"
|
|
1269
1271
|
})
|
|
1270
1272
|
}), /* @__PURE__ */ jsxs("div", {
|
|
1271
1273
|
className: "min-w-0",
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
|
|
3
|
-
import { d as releaseLeaseKeptForReload, f as useWorkflowReloadStore, t as FlowBuilderPage } from "./flow-builder-
|
|
3
|
+
import { d as releaseLeaseKeptForReload, f as useWorkflowReloadStore, t as FlowBuilderPage } from "./flow-builder-ConlP_db.js";
|
|
4
4
|
import { n as registerLiveCanvasHandler } from "./liveCanvas-D5ytXDp8.js";
|
|
5
5
|
import { r as getFluidGridsConfig } from "./config-X97zrIvn.js";
|
|
6
6
|
import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
|
|
7
7
|
import { o as throwIfResultError } from "./errors-xPZ-IbQd.js";
|
|
8
8
|
import { t as WorkflowDefinitionDocument } from "./WorkflowDefinitionDocument-DZLbTPUZ.js";
|
|
9
9
|
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
10
|
-
import { $t as workflowFingerprint, Jt as codeBuildIdOf, M as createConfiguredNode, Tt as useSaveStatusStore, U as paramsFromOperation, Ut as rememberRevision, cn as resolveNodeOperation, g as registerWorkflowNodeTypes, h as registerNodeManifests, m as refetchStoreNodes, o as NODE_CONFIGS, u as ensureNodeTypesLoaded, xt as classifyCreateRefusal, yt as blankWorkflowCreateInput } from "./FluidGridsProvider-
|
|
11
|
-
import { A as useFlowStore } from "./node-operation-selection-
|
|
10
|
+
import { $t as workflowFingerprint, Jt as codeBuildIdOf, M as createConfiguredNode, Tt as useSaveStatusStore, U as paramsFromOperation, Ut as rememberRevision, cn as resolveNodeOperation, g as registerWorkflowNodeTypes, h as registerNodeManifests, m as refetchStoreNodes, o as NODE_CONFIGS, u as ensureNodeTypesLoaded, xt as classifyCreateRefusal, yt as blankWorkflowCreateInput } from "./FluidGridsProvider-CPLfIarV.js";
|
|
11
|
+
import { A as useFlowStore } from "./node-operation-selection-DHbtGNrG.js";
|
|
12
12
|
import { t as canvasFromDefinition } from "./definition-canvas-DL25_6NH.js";
|
|
13
|
-
import { l as useLazyWorkflowDefinition, n as useCreateWorkflow } from "./useWorkflows-
|
|
14
|
-
import { _ as useInstalledNodes, a as buildNodeCheck, o as buildRequiredNodeTypes, s as getWorkflowNodeTypes } from "./TemplateCard-
|
|
13
|
+
import { l as useLazyWorkflowDefinition, n as useCreateWorkflow } from "./useWorkflows-B5kFIfrZ.js";
|
|
14
|
+
import { _ as useInstalledNodes, a as buildNodeCheck, o as buildRequiredNodeTypes, s as getWorkflowNodeTypes } from "./TemplateCard-C_YMW80k.js";
|
|
15
15
|
import { r as mergeStickyNotes } from "./sticky-notes-23j-wL6Q.js";
|
|
16
16
|
import { c as withoutGuidedTourIntent, l as decideMissingWorkflow, o as isGuidedTourIntent, s as pickGuidedTour, u as isCreateIntent } from "./firstWorkflow-C_h0KMB2.js";
|
|
17
17
|
import { t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
|
|
18
|
-
import { c as CreateWorkflowRefusalDialog } from "./useWorkflowCodeExport-
|
|
18
|
+
import { c as CreateWorkflowRefusalDialog } from "./useWorkflowCodeExport-D80HIo-F.js";
|
|
19
19
|
import { Suspense, lazy, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
20
20
|
import { useLocation, useNavigate, useParams } from "react-router";
|
|
21
21
|
import { Icon } from "@iconify/react";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { fn as useCanvasEdges, n as FluidGridsProvider } from "./FluidGridsProvider-
|
|
3
|
-
import { A as useFlowStore } from "./node-operation-selection-
|
|
2
|
+
import { fn as useCanvasEdges, n as FluidGridsProvider } from "./FluidGridsProvider-CPLfIarV.js";
|
|
3
|
+
import { A as useFlowStore } from "./node-operation-selection-DHbtGNrG.js";
|
|
4
4
|
import { t as Button } from "./button-DG7y_FVJ.js";
|
|
5
5
|
import { t as Input } from "./input-ChT6Q-Pr.js";
|
|
6
|
-
import { v as Card } from "./TemplateCard-
|
|
6
|
+
import { v as Card } from "./TemplateCard-C_YMW80k.js";
|
|
7
7
|
import { t as cn } from "./cn-QqidFIgr.js";
|
|
8
8
|
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
9
|
-
import { m as FluidGridsMark, p as useNodeSelectedEvent } from "./flow-builder-
|
|
9
|
+
import { m as FluidGridsMark, p as useNodeSelectedEvent } from "./flow-builder-ConlP_db.js";
|
|
10
10
|
import { useCallback, useEffect, useRef, useState } from "react";
|
|
11
11
|
import { Background, Controls, Handle, MarkerType, MiniMap, Position, ReactFlow, ReactFlowProvider, useReactFlow } from "@xyflow/react";
|
|
12
12
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
|
|
3
|
-
import { m as useWorkflowDefinition } from "./useWorkflows-
|
|
3
|
+
import { m as useWorkflowDefinition } from "./useWorkflows-B5kFIfrZ.js";
|
|
4
4
|
import { Navigate, useParams } from "react-router";
|
|
5
5
|
import { Icon } from "@iconify/react";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
|
|
3
|
-
import { c as useImportWorkflow, h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, n as useCreateWorkflow, o as useDeleteWorkflow, s as useDuplicateWorkflow, u as usePreviewN8nImport } from "./useWorkflows-
|
|
4
|
-
import { St as createThenOpen, t as FluidGridsContext } from "./FluidGridsProvider-
|
|
5
|
-
import { a as saveWorkflowDescription, c as CreateWorkflowRefusalDialog, o as visibleWorkflowDescription, r as commitWorkflowDescription, s as workflowDescriptionCharactersLeft, t as useExportWorkflowAs } from "./useWorkflowCodeExport-
|
|
3
|
+
import { c as useImportWorkflow, h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, n as useCreateWorkflow, o as useDeleteWorkflow, s as useDuplicateWorkflow, u as usePreviewN8nImport } from "./useWorkflows-B5kFIfrZ.js";
|
|
4
|
+
import { St as createThenOpen, t as FluidGridsContext } from "./FluidGridsProvider-CPLfIarV.js";
|
|
5
|
+
import { a as saveWorkflowDescription, c as CreateWorkflowRefusalDialog, o as visibleWorkflowDescription, r as commitWorkflowDescription, s as workflowDescriptionCharactersLeft, t as useExportWorkflowAs } from "./useWorkflowCodeExport-D80HIo-F.js";
|
|
6
6
|
import { c as isQuotaExhaustedFailure, t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
|
|
7
|
-
import { A as useFlowStore } from "./node-operation-selection-
|
|
7
|
+
import { A as useFlowStore } from "./node-operation-selection-DHbtGNrG.js";
|
|
8
8
|
import { a as SdkPermissionGate, i as SdkPermissionButton, s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
|
|
9
|
-
import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-
|
|
9
|
+
import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-DTpI0jfj.js";
|
|
10
10
|
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
11
11
|
import { a as isExecutionMode, i as isAutonomyLevel, n as EXECUTION_MODES, o as useAutonomyLevelCopy, r as EXECUTION_MODE_ICONS, s as useExecutionModeCopy } from "./run-mode-Du-fvjtE.js";
|
|
12
12
|
import { DI as WorkflowExportFormat, _I as WorkflowAccessFilter } from "./graphql-types-D82O-0XY.js";
|
|
@@ -17,7 +17,7 @@ import { d as useFluidGridsFlag, t as FLUIDGRIDS_FLAGS } from "./feature-flags-B
|
|
|
17
17
|
import { n as downloadWorkflowExport, r as parseWorkflowImport } from "./workflow-transfer-CQnQC-ke.js";
|
|
18
18
|
import { a as useWorkflowProjects, i as useWorkflowProjectActions, n as useWorkflowFolderActions, r as useWorkflowFolders, t as useBulkWorkflowActions } from "./useWorkflowOrganization-r5FWNBs6.js";
|
|
19
19
|
import { t as describeOperationError } from "./errors-xPZ-IbQd.js";
|
|
20
|
-
import { a as useExecutions } from "./useExecutions-
|
|
20
|
+
import { a as useExecutions } from "./useExecutions-6P7ohzlh.js";
|
|
21
21
|
import { a as firstWorkflowProgress, i as builderPathFor, r as GUIDED_TOUR_STATE } from "./firstWorkflow-C_h0KMB2.js";
|
|
22
22
|
import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
|
|
23
23
|
import { i as workflowsListControls } from "./pageControlSpecs-DZJ9K37m.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { A as SENSITIVE_PARAM, M as createConfiguredNode, Tt as useSaveStatusStore, U as paramsFromOperation, V as nodeTitle, W as selectedOperationOf, _ as registryNodeData, ct as autosaveAllowedFor, f as isNodeConfigsInitialized, gt as isFlowComplete, o as NODE_CONFIGS, z as fixedParameterState } from "./FluidGridsProvider-
|
|
3
|
-
import { A as useFlowStore, T as resolveOutputHandles, w as resolveInputHandles } from "./node-operation-selection-
|
|
2
|
+
import { A as SENSITIVE_PARAM, M as createConfiguredNode, Tt as useSaveStatusStore, U as paramsFromOperation, V as nodeTitle, W as selectedOperationOf, _ as registryNodeData, ct as autosaveAllowedFor, f as isNodeConfigsInitialized, gt as isFlowComplete, o as NODE_CONFIGS, z as fixedParameterState } from "./FluidGridsProvider-CPLfIarV.js";
|
|
3
|
+
import { A as useFlowStore, T as resolveOutputHandles, w as resolveInputHandles } from "./node-operation-selection-DHbtGNrG.js";
|
|
4
4
|
import { o as isNodeTypeHiddenFromPalette } from "./durable-nodes-DXCCQYWD.js";
|
|
5
|
-
import { t as computeAttachPosition } from "./attach-node-helpers-
|
|
5
|
+
import { t as computeAttachPosition } from "./attach-node-helpers-4d-YMaBH.js";
|
|
6
6
|
import { AgentToolError, defineAgentTool } from "@burdenoff/fe-libs/shared/agent-tools";
|
|
7
7
|
import { z } from "zod";
|
|
8
8
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { a as mappingTypeColor, i as compatibilityColor, n as MAPPING_FALLBACK_COLOR, r as MAPPING_TYPE_COLORS, t as MAPPING_COMPATIBILITY_COLORS } from "./mapping-colors-BIX_YeCQ.js";
|
|
3
3
|
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
4
|
-
import * as React
|
|
4
|
+
import * as React from "react";
|
|
5
5
|
import { createContext, memo, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
6
6
|
import { Background, Controls, Handle, MiniMap, Panel, Position, ReactFlow, ReactFlowProvider, addEdge, getBezierPath, useEdgesState, useNodesState } from "@xyflow/react";
|
|
7
7
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -14,7 +14,7 @@ import { GraphQLEnumType, GraphQLInputObjectType, GraphQLInterfaceType, GraphQLL
|
|
|
14
14
|
|
|
15
15
|
// src/builder/components/mapper/theme-provider.tsx
|
|
16
16
|
function ThemeProvider$1({ children, defaultTheme = "system", storageKey = "vite-ui-theme" }) {
|
|
17
|
-
React
|
|
17
|
+
React.useEffect(() => {
|
|
18
18
|
if (typeof window !== "undefined") try {
|
|
19
19
|
localStorage.removeItem(storageKey);
|
|
20
20
|
} catch (err) {
|
|
@@ -814,8 +814,8 @@ function toast({ ...props }) {
|
|
|
814
814
|
};
|
|
815
815
|
}
|
|
816
816
|
function useToast() {
|
|
817
|
-
const [state, setState] = React
|
|
818
|
-
React
|
|
817
|
+
const [state, setState] = React.useState(memoryState);
|
|
818
|
+
React.useEffect(() => {
|
|
819
819
|
listeners.push(setState);
|
|
820
820
|
return () => {
|
|
821
821
|
const index = listeners.indexOf(setState);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { w as resolveInputHandles } from "./node-operation-selection-
|
|
2
|
+
import { w as resolveInputHandles } from "./node-operation-selection-DHbtGNrG.js";
|
|
3
3
|
|
|
4
4
|
// src/builder/hooks/attach-node-helpers.ts
|
|
5
5
|
/** Horizontal gap between a source node and a node attached via the "+" flow. */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { n as useAgentMarksStore, r as toPlainText } from "./marksStore-a9oIMMot.js";
|
|
3
|
-
import { U as paramsFromOperation, V as nodeTitle, W as selectedOperationOf } from "./FluidGridsProvider-
|
|
4
|
-
import { A as useFlowStore } from "./node-operation-selection-
|
|
3
|
+
import { U as paramsFromOperation, V as nodeTitle, W as selectedOperationOf } from "./FluidGridsProvider-CPLfIarV.js";
|
|
4
|
+
import { A as useFlowStore } from "./node-operation-selection-DHbtGNrG.js";
|
|
5
5
|
import { t as notesKeyOf } from "./notesKey-5EaREBGA.js";
|
|
6
6
|
import { AgentToolError, defineAgentTool } from "@burdenoff/fe-libs/shared/agent-tools";
|
|
7
7
|
import { z } from "zod";
|
package/dist/executions.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as ExecutionsListPage } from "./ExecutionsListPage-
|
|
3
|
-
import { t as ExecutionDetailPage } from "./ExecutionDetailPage-
|
|
2
|
+
import { t as ExecutionsListPage } from "./ExecutionsListPage-BpHBy1JU.js";
|
|
3
|
+
import { t as ExecutionDetailPage } from "./ExecutionDetailPage-C0lNp122.js";
|
|
4
4
|
|
|
5
5
|
export { ExecutionDetailPage, ExecutionsListPage };
|