@burdenoff/fluidgrids-fe-sdk 2026.803.3 → 2026.804.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/ExecutionDetailPage-FCY3S336.js +1 -1
- package/dist/ExecutionsListPage-IZJPACQV.js +8 -0
- package/dist/{ExecutionsListPage-5S7FYMT3.js.map → ExecutionsListPage-IZJPACQV.js.map} +1 -1
- package/dist/MissingNodesInstallModal-OT3LJZ4M.js +184 -0
- package/dist/MissingNodesInstallModal-OT3LJZ4M.js.map +1 -0
- package/dist/{TemplateConfigurationModal-MTR7VP6G.js → TemplateConfigurationModal-7OT6QBEA.js} +4 -3
- package/dist/TemplateConfigurationModal-7OT6QBEA.js.map +1 -0
- package/dist/WorkflowBuilder-42S2S3PO.js +16 -0
- package/dist/{WorkflowBuilder-UVG6GJ6F.js.map → WorkflowBuilder-42S2S3PO.js.map} +1 -1
- package/dist/WorkflowsList-L7EJW54K.js +10 -0
- package/dist/{WorkflowsList-HNXWE56Q.js.map → WorkflowsList-L7EJW54K.js.map} +1 -1
- package/dist/{chunk-MRVS73S2.js → chunk-BRMURCHH.js} +4 -22
- package/dist/chunk-BRMURCHH.js.map +1 -0
- package/dist/{chunk-WWKY5CJ4.js → chunk-CN3VSAYR.js} +11349 -419
- package/dist/chunk-CN3VSAYR.js.map +1 -0
- package/dist/{chunk-3CIPVKE4.js → chunk-CQAHXNT2.js} +3 -3
- package/dist/{chunk-3CIPVKE4.js.map → chunk-CQAHXNT2.js.map} +1 -1
- package/dist/{chunk-ZM4SSEVI.js → chunk-JPHK5LAL.js} +195 -3
- package/dist/chunk-JPHK5LAL.js.map +1 -0
- package/dist/{chunk-WZBJIBUX.js → chunk-MH4AHYK3.js} +3 -3
- package/dist/{chunk-WZBJIBUX.js.map → chunk-MH4AHYK3.js.map} +1 -1
- package/dist/chunk-P5PKRQAO.js +25 -0
- package/dist/chunk-P5PKRQAO.js.map +1 -0
- package/dist/{chunk-FIREEQYQ.js → chunk-S7FNNFPU.js} +23 -6
- package/dist/chunk-S7FNNFPU.js.map +1 -0
- package/dist/index.js +108 -73
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/ExecutionsListPage-5S7FYMT3.js +0 -8
- package/dist/TemplateConfigurationModal-MTR7VP6G.js.map +0 -1
- package/dist/WorkflowBuilder-UVG6GJ6F.js +0 -17
- package/dist/WorkflowsList-HNXWE56Q.js +0 -11
- package/dist/blocks-LFAFGFT4.js +0 -11
- package/dist/blocks-LFAFGFT4.js.map +0 -1
- package/dist/chunk-CN6MX457.js +0 -10897
- package/dist/chunk-CN6MX457.js.map +0 -1
- package/dist/chunk-F2CI6H7E.js +0 -177
- package/dist/chunk-F2CI6H7E.js.map +0 -1
- package/dist/chunk-FIREEQYQ.js.map +0 -1
- package/dist/chunk-MRVS73S2.js.map +0 -1
- package/dist/chunk-WWKY5CJ4.js.map +0 -1
- package/dist/chunk-ZM4SSEVI.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,26 +1,21 @@
|
|
|
1
1
|
export { Label } from './chunk-6QCBKN3P.js';
|
|
2
|
-
import { FluidGridsProvider, useImportWorkflowTemplate, FlowBuilderPage, useWorkflowTemplates, TemplateCard, Card } from './chunk-
|
|
3
|
-
export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, EntityTagPicker, FluidGridsProvider, WorkflowBuilder as WorkflowBuilderPage, useFluidGridsContext } from './chunk-
|
|
4
|
-
import { Input as Input$1 } from './chunk-
|
|
5
|
-
export {
|
|
6
|
-
|
|
7
|
-
export {
|
|
8
|
-
export { ExecutionsListPage } from './chunk-3CIPVKE4.js';
|
|
2
|
+
import { FluidGridsProvider, useImportWorkflowTemplate, FlowBuilderPage, useWorkflowTemplates, TemplateCard, Card } from './chunk-CN3VSAYR.js';
|
|
3
|
+
export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ConfigSchemaForm, ConnectionFormDialog, ConnectionSelector, EntityTagPicker, FluidGridsProvider, ProviderPicker, WorkflowBuilder as WorkflowBuilderPage, getProviderForm, listCustomBlocks, refetchStoreNodes, registerCustomBlock, resolveUiSpec, stripSubmitActions, useConnection, useConnectionDialog, useConnections, useConnectionsByProvider, useCreateConnection, useFluidGridsContext, useInitiateOAuth, useNodeExecution, useProviderByKey, useProviderCatalog, useProviders } from './chunk-CN3VSAYR.js';
|
|
4
|
+
import { Input as Input$1 } from './chunk-P5PKRQAO.js';
|
|
5
|
+
export { Input } from './chunk-P5PKRQAO.js';
|
|
6
|
+
export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from './chunk-BRMURCHH.js';
|
|
7
|
+
export { ExecutionsListPage } from './chunk-CQAHXNT2.js';
|
|
9
8
|
export { ExecutionDetailPage } from './chunk-F5ACDIYR.js';
|
|
10
9
|
import './chunk-WAVGHDYH.js';
|
|
11
|
-
export { ConfigSchemaForm, ConnectionFormDialog, ConnectionSelector, ProviderPicker, getProviderForm, listCustomBlocks, refetchStoreNodes, registerCustomBlock, resolveUiSpec, stripSubmitActions, useConnection, useConnectionDialog, useConnections, useConnectionsByProvider, useCreateConnection, useInitiateOAuth, useNodeExecution, useProviderByKey, useProviderCatalog, useProviders } from './chunk-CN6MX457.js';
|
|
12
10
|
import { createGlobalStoreClient } from './chunk-BQXHJIER.js';
|
|
13
11
|
export { createGlobalStoreClient, getGlobalStoreClient, resetGlobalStoreClient, setGlobalStoreClient } from './chunk-BQXHJIER.js';
|
|
14
12
|
import './chunk-PNOA7CQV.js';
|
|
15
|
-
export { WorkflowsList } from './chunk-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
export { useFlowStore } from './chunk-ZM4SSEVI.js';
|
|
13
|
+
export { WorkflowsList } from './chunk-S7FNNFPU.js';
|
|
14
|
+
import { QuotaExhaustedDialog, useFlowStore } from './chunk-JPHK5LAL.js';
|
|
15
|
+
export { FLUIDGRIDS_ENTITY_TYPES, tagLabel, useAvailableTags, useCreateTag, useDraftEntityTags, useEntityTags, useFlowStore, useReplaceEntityTags, useSearchTags, useTagEntity, useUntagEntity } from './chunk-JPHK5LAL.js';
|
|
16
|
+
import { useWorkflowDefinition, useWorkflowDefinitions, useDuplicateWorkflow } from './chunk-MH4AHYK3.js';
|
|
17
|
+
export { useActivateWorkflow, useCreateWorkflow, useCreateWorkflowVersion, useDashboardSummary, useDeactivateWorkflow, useDeleteWorkflow, useDuplicateWorkflow, useLazyWorkflowDefinition, useRestoreWorkflowVersion, useTriggerWorkflow, useUpdateWorkflow, useWorkflowDefinition, useWorkflowDefinitions, useWorkflowRun, useWorkflowRuns, useWorkflowVersions } from './chunk-MH4AHYK3.js';
|
|
21
18
|
export { ALLOW_ALL_PERMISSIONS, FLUIDGRIDS_PERMISSIONS, FluidGridsPermissionsProvider, SdkPermissionButton, SdkPermissionGate, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, evaluatePermissionCheck, useFluidGridsPermission } from './chunk-UIY2HBWA.js';
|
|
22
|
-
import { cn } from './chunk-3ZYUGTIT.js';
|
|
23
|
-
export { cn } from './chunk-3ZYUGTIT.js';
|
|
24
19
|
import { NodeEndpointConfigsDocument, NodeEndpointConfigDocument, NodeManifestDocument } from './chunk-V5UEEB74.js';
|
|
25
20
|
export { ActivateWorkflowDefinitionDocument, ActiveExecutionsDocument, AvailableFluidgridsTagsDocument, CancelExecutionDocument, CreateFluidgridsTagDocument, CreateWorkflowDefinitionDocument, CreateWorkflowVersionDocument, DashboardSummaryDocument, DeactivateWorkflowDefinitionDocument, DeleteWorkflowDefinitionDocument, DuplicateWorkflowDocument, EventRegistrationsDocument, ExecutionDetailDocument, ExecutionLogsDocument, ExecutionStatsDocument, ExecutionsListDocument, FluidgridsAvailableTagFieldsFragmentDoc, FluidgridsEntityTagsDocument, FluidgridsTagAssignmentFieldsFragmentDoc, ImportWorkflowTemplateDocument, NodeEndpointConfigDocument, NodeEndpointConfigsDocument, NodeManifestDocument, NodeSchemaIntrospectionDocument, NodeStatesDocument, NodeUsageStatusDocument, PauseExecutionDocument, RegisterNodeDocument, RemoveNodeFromWorkflowsDocument, ReplaceFluidgridsEntityTagsDocument, RestoreWorkflowVersionDocument, ResumeExecutionDocument, RetryNodeDocument, RunLogAppendedDocument, RunLogLineFieldsFragmentDoc, RunLogsDocument, SearchFluidgridsTagsDocument, TagFluidgridsEntityDocument, TerminateExecutionDocument, TriggerWorkflowDocument, UntagFluidgridsEntityDocument, UpdateWorkflowDefinitionDocument, UsageTimeSeriesDocument, WorkflowDefinitionDocument, WorkflowDefinitionsDocument, WorkflowDefinitionsTagsDocument, WorkflowRunDocument, WorkflowRunsDocument, WorkflowVersionsDocument, describeOperationError, throwIfResultError, useActivateWorkflowDefinitionMutation, useActiveExecutionsLazyQuery, useActiveExecutionsQuery, useActiveExecutionsSuspenseQuery, useAvailableFluidgridsTagsLazyQuery, useAvailableFluidgridsTagsQuery, useAvailableFluidgridsTagsSuspenseQuery, useCancelExecutionMutation, useCreateFluidgridsTagMutation, useCreateWorkflowDefinitionMutation, useCreateWorkflowVersionMutation, useDashboardSummaryLazyQuery, useDashboardSummaryQuery, useDashboardSummarySuspenseQuery, useDeactivateWorkflowDefinitionMutation, useDeleteWorkflowDefinitionMutation, useDuplicateWorkflowMutation, useEventRegistrationsLazyQuery, useEventRegistrationsQuery, useEventRegistrationsSuspenseQuery, useExecutionDetailLazyQuery, useExecutionDetailQuery, useExecutionDetailSuspenseQuery, useExecutionLogsLazyQuery, useExecutionLogsQuery, useExecutionLogsSuspenseQuery, useExecutionStatsLazyQuery, useExecutionStatsQuery, useExecutionStatsSuspenseQuery, useExecutionsListLazyQuery, useExecutionsListQuery, useExecutionsListSuspenseQuery, useFluidgridsEntityTagsLazyQuery, useFluidgridsEntityTagsQuery, useFluidgridsEntityTagsSuspenseQuery, useImportWorkflowTemplateMutation, useNodeEndpointConfigLazyQuery, useNodeEndpointConfigQuery, useNodeEndpointConfigSuspenseQuery, useNodeEndpointConfigsLazyQuery, useNodeEndpointConfigsQuery, useNodeEndpointConfigsSuspenseQuery, useNodeManifestLazyQuery, useNodeManifestQuery, useNodeManifestSuspenseQuery, useNodeSchemaIntrospectionLazyQuery, useNodeSchemaIntrospectionQuery, useNodeSchemaIntrospectionSuspenseQuery, useNodeStatesLazyQuery, useNodeStatesQuery, useNodeStatesSuspenseQuery, useNodeUsageStatusLazyQuery, useNodeUsageStatusQuery, useNodeUsageStatusSuspenseQuery, usePauseExecutionMutation, useRegisterNodeMutation, useRemoveNodeFromWorkflowsMutation, useReplaceFluidgridsEntityTagsMutation, useRestoreWorkflowVersionMutation, useResumeExecutionMutation, useRetryNodeMutation, useRunLogAppendedSubscription, useRunLogsLazyQuery, useRunLogsQuery, useRunLogsSuspenseQuery, useSearchFluidgridsTagsLazyQuery, useSearchFluidgridsTagsQuery, useSearchFluidgridsTagsSuspenseQuery, useTagFluidgridsEntityMutation, useTerminateExecutionMutation, useTriggerWorkflowMutation, useUntagFluidgridsEntityMutation, useUpdateWorkflowDefinitionMutation, useUsageTimeSeriesLazyQuery, useUsageTimeSeriesQuery, useUsageTimeSeriesSuspenseQuery, useWorkflowDefinitionLazyQuery, useWorkflowDefinitionQuery, useWorkflowDefinitionSuspenseQuery, useWorkflowDefinitionsLazyQuery, useWorkflowDefinitionsQuery, useWorkflowDefinitionsSuspenseQuery, useWorkflowDefinitionsTagsLazyQuery, useWorkflowDefinitionsTagsQuery, useWorkflowDefinitionsTagsSuspenseQuery, useWorkflowRunLazyQuery, useWorkflowRunQuery, useWorkflowRunSuspenseQuery, useWorkflowRunsLazyQuery, useWorkflowRunsQuery, useWorkflowRunsSuspenseQuery, useWorkflowVersionsLazyQuery, useWorkflowVersionsQuery, useWorkflowVersionsSuspenseQuery } from './chunk-V5UEEB74.js';
|
|
26
21
|
import { getFluidGridsClient, createFluidGridsClient } from './chunk-5BDQNSP3.js';
|
|
@@ -28,6 +23,10 @@ export { createFluidGridsClient, getFluidGridsClient, getFluidGridsClientSafe, i
|
|
|
28
23
|
import { getFluidGridsConfig } from './chunk-WWU2O2SR.js';
|
|
29
24
|
export { config, getFluidGridsConfig, getGraphQLEndpoint, resetFluidGridsConfig, setFluidGridsConfig } from './chunk-WWU2O2SR.js';
|
|
30
25
|
import './chunk-XQP33UJR.js';
|
|
26
|
+
import { Button as Button$1 } from './chunk-DBOMRIP5.js';
|
|
27
|
+
export { Badge, Button, badgeVariants, buttonVariants } from './chunk-DBOMRIP5.js';
|
|
28
|
+
import { cn } from './chunk-3ZYUGTIT.js';
|
|
29
|
+
export { cn } from './chunk-3ZYUGTIT.js';
|
|
31
30
|
import * as React4 from 'react';
|
|
32
31
|
import { lazy, Suspense, useState, useEffect, useMemo, useCallback, useRef } from 'react';
|
|
33
32
|
import { Routes, Route, Navigate, useParams, useNavigate } from 'react-router';
|
|
@@ -41,6 +40,7 @@ import { toast, Toaster as Toaster$1 } from 'sonner';
|
|
|
41
40
|
import { Icon } from '@iconify/react';
|
|
42
41
|
import { Button } from '@burdenoff/fe-libs/button';
|
|
43
42
|
import { ErrorBoundary } from '@burdenoff/fe-libs/shared/components';
|
|
43
|
+
import { isQuotaExhaustedError } from '@burdenoff/fe-libs/shared/utils';
|
|
44
44
|
import { ThemeProvider as ThemeProvider$1 } from '@burdenoff/fe-libs/shared/providers/shell';
|
|
45
45
|
import { Input, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, Badge, TooltipProvider, Tooltip, TooltipTrigger, TooltipContent, Tabs, TabsList, TabsTrigger, TabsContent, Skeleton, Card as Card$1, CardHeader, Switch, Label } from '@burdenoff/fe-libs/ui';
|
|
46
46
|
import { useActorProfiles, buildActorFallback } from '@burdenoff/fe-libs/shared';
|
|
@@ -55,15 +55,15 @@ import * as SwitchPrimitives from '@radix-ui/react-switch';
|
|
|
55
55
|
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
56
56
|
|
|
57
57
|
var WorkflowsList2 = lazy(
|
|
58
|
-
() => import('./WorkflowsList-
|
|
58
|
+
() => import('./WorkflowsList-L7EJW54K.js').then((m) => ({ default: m.WorkflowsList }))
|
|
59
59
|
);
|
|
60
60
|
var WorkflowBuilder2 = lazy(
|
|
61
|
-
() => import('./WorkflowBuilder-
|
|
61
|
+
() => import('./WorkflowBuilder-42S2S3PO.js').then((m) => ({
|
|
62
62
|
default: m.WorkflowBuilder
|
|
63
63
|
}))
|
|
64
64
|
);
|
|
65
65
|
var ExecutionsListPage2 = lazy(
|
|
66
|
-
() => import('./ExecutionsListPage-
|
|
66
|
+
() => import('./ExecutionsListPage-IZJPACQV.js').then((m) => ({
|
|
67
67
|
default: m.ExecutionsListPage
|
|
68
68
|
}))
|
|
69
69
|
);
|
|
@@ -603,6 +603,7 @@ function TemplatePreview() {
|
|
|
603
603
|
const [loading, setLoading] = useState(true);
|
|
604
604
|
const [error, setError] = useState(null);
|
|
605
605
|
const [importing, setImporting] = useState(false);
|
|
606
|
+
const [showQuotaExhausted, setShowQuotaExhausted] = useState(false);
|
|
606
607
|
const workflowsBase = window.location.pathname.replace(
|
|
607
608
|
/\/templates(\/.*)?$/,
|
|
608
609
|
""
|
|
@@ -677,6 +678,8 @@ function TemplatePreview() {
|
|
|
677
678
|
navigate(
|
|
678
679
|
`${workflowsBase}/workflow/${result.workflow.workflowKey}/${result.workflow.version}`
|
|
679
680
|
);
|
|
681
|
+
} else if (isQuotaExhaustedError(result.error?.cause ?? result.error)) {
|
|
682
|
+
setShowQuotaExhausted(true);
|
|
680
683
|
} else {
|
|
681
684
|
toast.error("Failed to use template", { description: result.message });
|
|
682
685
|
}
|
|
@@ -690,70 +693,83 @@ function TemplatePreview() {
|
|
|
690
693
|
}
|
|
691
694
|
};
|
|
692
695
|
const backToTemplates = () => navigate(`${workflowsBase}/templates`);
|
|
693
|
-
return /* @__PURE__ */
|
|
694
|
-
/* @__PURE__ */ jsxs("div", { className: "flex h-
|
|
695
|
-
/* @__PURE__ */ jsxs("div", { className: "flex
|
|
696
|
-
/* @__PURE__ */
|
|
697
|
-
|
|
696
|
+
return /* @__PURE__ */ jsxs(ThemeProvider, { children: [
|
|
697
|
+
/* @__PURE__ */ jsxs("div", { className: "flex h-full w-full flex-col overflow-hidden", children: [
|
|
698
|
+
/* @__PURE__ */ jsxs("div", { className: "flex h-14 shrink-0 items-center justify-between gap-3 border-b border-card-foreground/10 bg-gradient-to-r from-primary/40 to-transparent px-3", children: [
|
|
699
|
+
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
|
|
700
|
+
/* @__PURE__ */ jsx(
|
|
701
|
+
"button",
|
|
702
|
+
{
|
|
703
|
+
type: "button",
|
|
704
|
+
onClick: backToTemplates,
|
|
705
|
+
title: "Back to templates",
|
|
706
|
+
className: "flex size-9 shrink-0 items-center justify-center rounded-md text-card-foreground transition-colors hover:bg-card-foreground/10",
|
|
707
|
+
children: /* @__PURE__ */ jsx(Icon, { icon: "ion:arrow-back-outline", className: "size-5" })
|
|
708
|
+
}
|
|
709
|
+
),
|
|
710
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
|
|
711
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
712
|
+
/* @__PURE__ */ jsx("span", { className: "truncate text-sm font-semibold text-card-foreground", children: workflow?.name ?? template?.name ?? "Template preview" }),
|
|
713
|
+
/* @__PURE__ */ jsx("span", { className: "shrink-0 rounded-full bg-card-foreground/10 px-2 py-0.5 text-[10px] font-medium uppercase tracking-wide text-muted-foreground", children: "Preview \xB7 read-only" })
|
|
714
|
+
] }),
|
|
715
|
+
template?.description ? /* @__PURE__ */ jsx("span", { className: "block truncate text-xs text-muted-foreground", children: template.description }) : null
|
|
716
|
+
] })
|
|
717
|
+
] }),
|
|
718
|
+
/* @__PURE__ */ jsxs(
|
|
719
|
+
Button,
|
|
698
720
|
{
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
721
|
+
onClick: handleUse,
|
|
722
|
+
disabled: importing || !template,
|
|
723
|
+
className: "shrink-0 gap-2",
|
|
724
|
+
children: [
|
|
725
|
+
/* @__PURE__ */ jsx(
|
|
726
|
+
Icon,
|
|
727
|
+
{
|
|
728
|
+
icon: importing ? "svg-spinners:ring-resize" : "mdi:plus",
|
|
729
|
+
className: "size-4"
|
|
730
|
+
}
|
|
731
|
+
),
|
|
732
|
+
"Use this template"
|
|
733
|
+
]
|
|
704
734
|
}
|
|
705
|
-
)
|
|
706
|
-
/* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
|
|
707
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
708
|
-
/* @__PURE__ */ jsx("span", { className: "truncate text-sm font-semibold text-card-foreground", children: workflow?.name ?? template?.name ?? "Template preview" }),
|
|
709
|
-
/* @__PURE__ */ jsx("span", { className: "shrink-0 rounded-full bg-card-foreground/10 px-2 py-0.5 text-[10px] font-medium uppercase tracking-wide text-muted-foreground", children: "Preview \xB7 read-only" })
|
|
710
|
-
] }),
|
|
711
|
-
template?.description ? /* @__PURE__ */ jsx("span", { className: "block truncate text-xs text-muted-foreground", children: template.description }) : null
|
|
712
|
-
] })
|
|
735
|
+
)
|
|
713
736
|
] }),
|
|
714
|
-
/* @__PURE__ */
|
|
715
|
-
|
|
737
|
+
/* @__PURE__ */ jsx("div", { className: "relative min-h-0 w-full flex-1", children: /* @__PURE__ */ jsx(
|
|
738
|
+
ErrorBoundary,
|
|
716
739
|
{
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
740
|
+
fallback: () => /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-col items-center justify-center gap-3 p-8 text-center", children: [
|
|
741
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: "Something went wrong rendering this template preview." }),
|
|
742
|
+
/* @__PURE__ */ jsx(Button, { variant: "outline", onClick: backToTemplates, children: "Back to templates" })
|
|
743
|
+
] }),
|
|
744
|
+
children: loading ? /* @__PURE__ */ jsxs("div", { className: "flex h-full items-center justify-center gap-2 text-sm text-muted-foreground", children: [
|
|
745
|
+
/* @__PURE__ */ jsx(Icon, { icon: "svg-spinners:ring-resize", className: "size-4" }),
|
|
746
|
+
"Loading preview\u2026"
|
|
747
|
+
] }) : error ? /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-col items-center justify-center gap-3 p-8 text-center", children: [
|
|
721
748
|
/* @__PURE__ */ jsx(
|
|
722
749
|
Icon,
|
|
723
750
|
{
|
|
724
|
-
icon:
|
|
725
|
-
className: "size-
|
|
751
|
+
icon: "mdi:alert-circle-outline",
|
|
752
|
+
className: "size-8 text-muted-foreground"
|
|
726
753
|
}
|
|
727
754
|
),
|
|
728
|
-
"
|
|
729
|
-
|
|
755
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: error }),
|
|
756
|
+
/* @__PURE__ */ jsx(Button, { variant: "outline", onClick: backToTemplates, children: "Back to templates" })
|
|
757
|
+
] }) : workflow ? /* @__PURE__ */ jsx(FlowBuilderPage, { workflow, readOnly: true }) : null
|
|
730
758
|
}
|
|
731
|
-
)
|
|
759
|
+
) })
|
|
732
760
|
] }),
|
|
733
|
-
/* @__PURE__ */ jsx(
|
|
734
|
-
|
|
761
|
+
/* @__PURE__ */ jsx(
|
|
762
|
+
QuotaExhaustedDialog,
|
|
735
763
|
{
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
"Loading preview\u2026"
|
|
743
|
-
] }) : error ? /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-col items-center justify-center gap-3 p-8 text-center", children: [
|
|
744
|
-
/* @__PURE__ */ jsx(
|
|
745
|
-
Icon,
|
|
746
|
-
{
|
|
747
|
-
icon: "mdi:alert-circle-outline",
|
|
748
|
-
className: "size-8 text-muted-foreground"
|
|
749
|
-
}
|
|
750
|
-
),
|
|
751
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: error }),
|
|
752
|
-
/* @__PURE__ */ jsx(Button, { variant: "outline", onClick: backToTemplates, children: "Back to templates" })
|
|
753
|
-
] }) : workflow ? /* @__PURE__ */ jsx(FlowBuilderPage, { workflow, readOnly: true }) : null
|
|
764
|
+
open: showQuotaExhausted,
|
|
765
|
+
onOpenChange: setShowQuotaExhausted,
|
|
766
|
+
onUpgrade: () => {
|
|
767
|
+
setShowQuotaExhausted(false);
|
|
768
|
+
navigate("/billing");
|
|
769
|
+
}
|
|
754
770
|
}
|
|
755
|
-
)
|
|
756
|
-
] })
|
|
771
|
+
)
|
|
772
|
+
] });
|
|
757
773
|
}
|
|
758
774
|
function WorkflowEmbedPage({
|
|
759
775
|
globalGraphqlUrl
|
|
@@ -5528,6 +5544,7 @@ function TemplatesPage() {
|
|
|
5528
5544
|
const [activeCategory, setActiveCategory] = useState("all");
|
|
5529
5545
|
const [duplicatingId, setDuplicatingId] = useState(null);
|
|
5530
5546
|
const [activeSource, setActiveSource] = useState("store");
|
|
5547
|
+
const [showQuotaExhausted, setShowQuotaExhausted] = useState(false);
|
|
5531
5548
|
const { workflows, loading, error, refetch } = useWorkflowDefinitions({
|
|
5532
5549
|
status: "ACTIVE" /* Active */,
|
|
5533
5550
|
limit: 100
|
|
@@ -5601,8 +5618,13 @@ function TemplatesPage() {
|
|
|
5601
5618
|
);
|
|
5602
5619
|
}
|
|
5603
5620
|
} catch (err) {
|
|
5604
|
-
|
|
5605
|
-
|
|
5621
|
+
const cause = err instanceof Error ? err.cause : void 0;
|
|
5622
|
+
if (isQuotaExhaustedError(cause) || isQuotaExhaustedError(err)) {
|
|
5623
|
+
setShowQuotaExhausted(true);
|
|
5624
|
+
} else {
|
|
5625
|
+
toast.error("Failed to create workflow from template");
|
|
5626
|
+
console.error("[TemplatesPage] Error duplicating workflow:", err);
|
|
5627
|
+
}
|
|
5606
5628
|
} finally {
|
|
5607
5629
|
setDuplicatingId(null);
|
|
5608
5630
|
}
|
|
@@ -5634,6 +5656,8 @@ function TemplatesPage() {
|
|
|
5634
5656
|
navigate(
|
|
5635
5657
|
`../workflow/${result.workflow.workflowKey}/${result.workflow.version}`
|
|
5636
5658
|
);
|
|
5659
|
+
} else if (isQuotaExhaustedError(result.error?.cause ?? result.error)) {
|
|
5660
|
+
setShowQuotaExhausted(true);
|
|
5637
5661
|
} else {
|
|
5638
5662
|
toast.error("Failed to import template", {
|
|
5639
5663
|
description: result.message
|
|
@@ -5789,7 +5813,18 @@ function TemplatesPage() {
|
|
|
5789
5813
|
}
|
|
5790
5814
|
) })
|
|
5791
5815
|
] })
|
|
5792
|
-
] })
|
|
5816
|
+
] }),
|
|
5817
|
+
/* @__PURE__ */ jsx(
|
|
5818
|
+
QuotaExhaustedDialog,
|
|
5819
|
+
{
|
|
5820
|
+
open: showQuotaExhausted,
|
|
5821
|
+
onOpenChange: setShowQuotaExhausted,
|
|
5822
|
+
onUpgrade: () => {
|
|
5823
|
+
setShowQuotaExhausted(false);
|
|
5824
|
+
navigate("/billing");
|
|
5825
|
+
}
|
|
5826
|
+
}
|
|
5827
|
+
)
|
|
5793
5828
|
] });
|
|
5794
5829
|
}
|
|
5795
5830
|
var NODE_ENDPOINT_CONFIGS = NodeEndpointConfigsDocument;
|