@burdenoff/fluidgrids-fe-sdk 2026.803.2 → 2026.803.4
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/ExecutionsListPage-IZJPACQV.js +8 -0
- package/dist/{ExecutionsListPage-5S7FYMT3.js.map → ExecutionsListPage-IZJPACQV.js.map} +1 -1
- package/dist/{WorkflowBuilder-UVG6GJ6F.js → WorkflowBuilder-WMAHTZEI.js} +6 -6
- package/dist/{WorkflowBuilder-UVG6GJ6F.js.map → WorkflowBuilder-WMAHTZEI.js.map} +1 -1
- package/dist/WorkflowsList-BXESQVAH.js +11 -0
- package/dist/{WorkflowsList-5DQBGMWK.js.map → WorkflowsList-BXESQVAH.js.map} +1 -1
- package/dist/{blocks-LFAFGFT4.js → blocks-7KN7ZRE6.js} +3 -3
- package/dist/{blocks-LFAFGFT4.js.map → blocks-7KN7ZRE6.js.map} +1 -1
- package/dist/{chunk-CN6MX457.js → chunk-7LLCYNKY.js} +19 -6
- package/dist/chunk-7LLCYNKY.js.map +1 -0
- package/dist/{chunk-CCB7SLHT.js → chunk-CBUOMHGH.js} +24 -6
- package/dist/chunk-CBUOMHGH.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-WZBJIBUX.js → chunk-MH4AHYK3.js} +3 -3
- package/dist/{chunk-WZBJIBUX.js.map → chunk-MH4AHYK3.js.map} +1 -1
- package/dist/{chunk-F2CI6H7E.js → chunk-OAPYQFQU.js} +23 -3
- package/dist/chunk-OAPYQFQU.js.map +1 -0
- package/dist/{chunk-WWKY5CJ4.js → chunk-Z3NRSPTV.js} +49 -32
- package/dist/chunk-Z3NRSPTV.js.map +1 -0
- package/dist/index.js +102 -65
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/ExecutionsListPage-5S7FYMT3.js +0 -8
- package/dist/WorkflowsList-5DQBGMWK.js +0 -11
- package/dist/chunk-CCB7SLHT.js.map +0 -1
- package/dist/chunk-CN6MX457.js.map +0 -1
- package/dist/chunk-F2CI6H7E.js.map +0 -1
- package/dist/chunk-WWKY5CJ4.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/useEntityTags.ts","../src/components/shared/QuotaExhaustedDialog.tsx"],"names":[],"mappings":"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","file":"chunk-OAPYQFQU.js","sourcesContent":["/**\n * Entity tag hooks — thin wrappers over the generic FluidGrids tag API\n * (wspace-workflow-svc `tags` module → wspace-tags-svc).\n *\n * Uses the shared Apollo client directly rather than generated hooks, matching\n * the convention in useWorkflows.ts (works in embeds and other contexts that\n * mount the SDK without an ApolloProvider above them).\n */\nimport { useCallback, useEffect, useState } from \"react\";\n\nimport { getFluidGridsClient } from \"../graphql/client\";\nimport {\n AvailableFluidgridsTagsDocument,\n CreateFluidgridsTagDocument,\n FluidgridsEntityTagsDocument,\n ReplaceFluidgridsEntityTagsDocument,\n SearchFluidgridsTagsDocument,\n TagFluidgridsEntityDocument,\n UntagFluidgridsEntityDocument,\n WorkflowDefinitionsTagsDocument,\n} from \"../generated/operations\";\n\n/** Entity types accepted by the FluidGrids tag API. */\nexport const FLUIDGRIDS_ENTITY_TYPES = [\"FLUIDGRIDS_WORKFLOW\"] as const;\nexport type FluidgridsEntityType = (typeof FLUIDGRIDS_ENTITY_TYPES)[number];\n\nexport interface EntityTagAssignment {\n id: string;\n tagId: string;\n entityType: string;\n entityId: string;\n source: string;\n assignedAt?: string | null;\n tagInfo?: {\n id: string;\n key?: string | null;\n label?: string | null;\n color?: string | null;\n } | null;\n}\n\nexport interface AvailableTag {\n id: string;\n key: string;\n label: string;\n color?: string | null;\n}\n\n/** Display label for an assignment, degrading to the tag id when tags-svc omits the projection. */\nexport function tagLabel(assignment: EntityTagAssignment): string {\n return (\n assignment.tagInfo?.label ??\n assignment.tagInfo?.key ??\n assignment.tagId.slice(0, 8)\n );\n}\n\n/** Tags currently assigned to an entity. */\nexport function useEntityTags(entityType: string, entityId?: string) {\n const [tags, setTags] = useState<EntityTagAssignment[]>([]);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n\n const refetch = useCallback(async (): Promise<EntityTagAssignment[]> => {\n if (!entityId) {\n setTags([]);\n return [];\n }\n setLoading(true);\n setError(null);\n try {\n const { data } = await getFluidGridsClient().query<{\n fluidgridsEntityTags: EntityTagAssignment[];\n }>({\n query: FluidgridsEntityTagsDocument,\n variables: { input: { entityType, entityId } },\n fetchPolicy: \"network-only\",\n });\n const next = data?.fluidgridsEntityTags ?? [];\n setTags(next);\n return next;\n } catch (err) {\n setError(err as Error);\n return [];\n } finally {\n setLoading(false);\n }\n }, [entityType, entityId]);\n\n useEffect(() => {\n void refetch();\n }, [refetch]);\n\n return { tags, loading, error, refetch };\n}\n\n/** All assignable tags in the workspace. */\nexport function useAvailableTags(limit = 50, options: { skip?: boolean } = {}) {\n const [availableTags, setAvailableTags] = useState<AvailableTag[]>([]);\n const [loading, setLoading] = useState(false);\n const skip = options.skip ?? false;\n\n const fetchTags = useCallback(async () => {\n if (skip) return;\n setLoading(true);\n try {\n const { data } = await getFluidGridsClient().query<{\n availableFluidgridsTags: AvailableTag[];\n }>({\n query: AvailableFluidgridsTagsDocument,\n variables: { limit },\n fetchPolicy: \"network-only\",\n });\n setAvailableTags(data?.availableFluidgridsTags ?? []);\n } catch {\n // Non-fatal: the picker still allows inline creation.\n setAvailableTags([]);\n } finally {\n setLoading(false);\n }\n }, [limit, skip]);\n\n useEffect(() => {\n void fetchTags();\n }, [fetchTags]);\n\n return { availableTags, loading, refetch: fetchTags };\n}\n\n/** Search assignable tags by label. */\nexport function useSearchTags() {\n return useCallback(\n async (query: string, limit = 20): Promise<AvailableTag[]> => {\n if (!query.trim()) return [];\n try {\n const { data } = await getFluidGridsClient().query<{\n searchFluidgridsTags: AvailableTag[];\n }>({\n query: SearchFluidgridsTagsDocument,\n variables: { query, limit },\n fetchPolicy: \"network-only\",\n });\n return data?.searchFluidgridsTags ?? [];\n } catch {\n return [];\n }\n },\n [],\n );\n}\n\n/** Assign a tag to an entity. */\nexport function useTagEntity() {\n return useCallback(\n async (\n entityType: string,\n entityId: string,\n tagId: string,\n ): Promise<boolean> => {\n const { data } = await getFluidGridsClient().mutate<{\n tagFluidgridsEntity: EntityTagAssignment;\n }>({\n mutation: TagFluidgridsEntityDocument,\n variables: { input: { entityType, entityId, tagId, source: \"MANUAL\" } },\n });\n return Boolean(data?.tagFluidgridsEntity);\n },\n [],\n );\n}\n\n/** Remove a tag from an entity. */\nexport function useUntagEntity() {\n return useCallback(\n async (\n entityType: string,\n entityId: string,\n tagId: string,\n ): Promise<boolean> => {\n const { data } = await getFluidGridsClient().mutate<{\n untagFluidgridsEntity: boolean;\n }>({\n mutation: UntagFluidgridsEntityDocument,\n variables: { input: { entityType, entityId, tagId } },\n });\n return Boolean(data?.untagFluidgridsEntity);\n },\n [],\n );\n}\n\n/** Replace the full tag set on an entity. */\nexport function useReplaceEntityTags() {\n return useCallback(\n async (entityType: string, entityId: string, tagIds: string[]) => {\n const { data } = await getFluidGridsClient().mutate<{\n replaceFluidgridsEntityTags: EntityTagAssignment[];\n }>({\n mutation: ReplaceFluidgridsEntityTagsDocument,\n variables: { input: { entityType, entityId, tagIds } },\n });\n return data?.replaceFluidgridsEntityTags ?? [];\n },\n [],\n );\n}\n\n/** Create a new assignable tag (inline creation from the picker). */\nexport function useCreateTag() {\n return useCallback(\n async (label: string, color?: string): Promise<AvailableTag | null> => {\n const { data } = await getFluidGridsClient().mutate<{\n createFluidgridsTag: AvailableTag;\n }>({\n mutation: CreateFluidgridsTagDocument,\n variables: { input: { label, color } },\n });\n return data?.createFluidgridsTag ?? null;\n },\n [],\n );\n}\n\n/**\n * Create-time tagging: collect tag ids while the entity does not exist yet,\n * then flush them once it does.\n *\n * The flush is best-effort — the entity already exists by then, so a tag\n * failure must never block navigation; the detail-surface picker lets the\n * user retry.\n */\nexport function useDraftEntityTags(entityType: FluidgridsEntityType) {\n const [draftTagIds, setDraftTagIds] = useState<string[]>([]);\n const tagEntity = useTagEntity();\n\n const flushTags = useCallback(\n async (entityId: string) => {\n if (!entityId || draftTagIds.length === 0) return;\n await Promise.all(\n draftTagIds.map((tagId) =>\n tagEntity(entityType, entityId, tagId).catch(() => false),\n ),\n );\n },\n [draftTagIds, entityType, tagEntity],\n );\n\n return { draftTagIds, setDraftTagIds, flushTags };\n}\n\n/**\n * Tag overlay for the workflow list: workflowKey -> assignments.\n *\n * Deliberately a separate query from WorkflowDefinitions. If `tagAssignments`\n * is missing from the supergraph (backend not yet deployed, Hive CDN still\n * reconciling) this query fails on its own and the list still renders — it\n * just shows no chips and no tag filter.\n */\nexport function useWorkflowTagOverlay(limit = 100) {\n const [tagsByKey, setTagsByKey] = useState<\n Record<string, EntityTagAssignment[]>\n >({});\n\n const fetchOverlay = useCallback(async () => {\n try {\n const { data } = await getFluidGridsClient().query<{\n workflowDefinitions: {\n items: Array<{\n workflowKey: string;\n tagAssignments?: EntityTagAssignment[] | null;\n }>;\n };\n }>({\n query: WorkflowDefinitionsTagsDocument,\n variables: { input: { limit } },\n fetchPolicy: \"network-only\",\n });\n const next: Record<string, EntityTagAssignment[]> = {};\n for (const item of data?.workflowDefinitions?.items ?? []) {\n const assignments = item.tagAssignments ?? [];\n // Rows are per version and every version shares the workflowKey's tag\n // set — first non-empty wins.\n if (assignments.length > 0 && !next[item.workflowKey]) {\n next[item.workflowKey] = assignments;\n }\n }\n setTagsByKey(next);\n } catch {\n // Tags are decoration — never let this break the list.\n setTagsByKey({});\n }\n }, [limit]);\n\n useEffect(() => {\n void fetchOverlay();\n }, [fetchOverlay]);\n\n return { tagsByKey, refetch: fetchOverlay };\n}\n","import {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from \"@burdenoff/fe-libs/ui\";\n\ninterface QuotaExhaustedDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n /** Called when the user clicks \"View Billing\". */\n onUpgrade: () => void;\n title?: string;\n description?: string;\n}\n\n/**\n * Alert shown when a workflow-creating action (save/duplicate/import) is\n * rejected with `QUOTA_EXHAUSTED` for `fluidgrids.workflows.count`. Mirrors\n * the \"Folder Limit Reached\" dialog in microfe-files' BrowserPage.tsx, built\n * on the same `AlertDialog` primitives already used elsewhere in this SDK\n * (see card-workflow.tsx's delete-confirmation dialog).\n */\nexport function QuotaExhaustedDialog({\n open,\n onOpenChange,\n onUpgrade,\n title = \"Workflow Limit Reached\",\n description = \"You've reached the workflow limit for your plan. Upgrade your plan to create more workflows.\",\n}: QuotaExhaustedDialogProps) {\n return (\n <AlertDialog open={open} onOpenChange={onOpenChange}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>{title}</AlertDialogTitle>\n <AlertDialogDescription>{description}</AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>Dismiss</AlertDialogCancel>\n <AlertDialogAction onClick={onUpgrade}>\n View Billing\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n}\n"]}
|
|
@@ -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, NodeTypeIcon, NODES_METADATA, isNodeConfigsInitialized, NODE_CONFIGS, isImageIcon, 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, NodeTypeIcon, NODES_METADATA, isNodeConfigsInitialized, NODE_CONFIGS, isImageIcon, NODES, NodePropertyPanel, resolveInputHandles } from './chunk-7LLCYNKY.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
|
-
import { useEntityTags, useTagEntity, useUntagEntity } from './chunk-
|
|
7
|
-
import { useLazyWorkflowDefinition, useCreateWorkflow, useWorkflowVersions, useRestoreWorkflowVersion, useActivateWorkflow, useDeleteWorkflow, useDeactivateWorkflow } from './chunk-
|
|
6
|
+
import { useEntityTags, useTagEntity, useUntagEntity, QuotaExhaustedDialog } from './chunk-OAPYQFQU.js';
|
|
7
|
+
import { useLazyWorkflowDefinition, useCreateWorkflow, useWorkflowVersions, useRestoreWorkflowVersion, useActivateWorkflow, useDeleteWorkflow, useDeactivateWorkflow } from './chunk-MH4AHYK3.js';
|
|
8
8
|
import { useFlowStore } from './chunk-ZM4SSEVI.js';
|
|
9
9
|
import { SdkPermissionButton, FLUIDGRIDS_PERMISSIONS } from './chunk-UIY2HBWA.js';
|
|
10
10
|
import { cn } from './chunk-3ZYUGTIT.js';
|
|
@@ -2225,7 +2225,8 @@ function useImportWorkflowTemplate() {
|
|
|
2225
2225
|
workflow: null,
|
|
2226
2226
|
message: importError.message,
|
|
2227
2227
|
installedNodes: [],
|
|
2228
|
-
requiredCredentials: []
|
|
2228
|
+
requiredCredentials: [],
|
|
2229
|
+
error: importError
|
|
2229
2230
|
};
|
|
2230
2231
|
} finally {
|
|
2231
2232
|
setImporting(false);
|
|
@@ -4291,7 +4292,7 @@ function DesktopSidebarFragment({
|
|
|
4291
4292
|
if (nodes) {
|
|
4292
4293
|
const requiredNodeTypes = [];
|
|
4293
4294
|
try {
|
|
4294
|
-
const { NODE_CONFIGS: NODE_CONFIGS3, ensureNodeConfigsLoaded: ensureNodeConfigsLoaded2 } = await import('./blocks-
|
|
4295
|
+
const { NODE_CONFIGS: NODE_CONFIGS3, ensureNodeConfigsLoaded: ensureNodeConfigsLoaded2 } = await import('./blocks-7KN7ZRE6.js');
|
|
4295
4296
|
await ensureNodeConfigsLoaded2().catch(() => {
|
|
4296
4297
|
});
|
|
4297
4298
|
const workflowNodeTypes = [
|
|
@@ -11212,7 +11213,8 @@ function useFlowValidator(onValidate) {
|
|
|
11212
11213
|
return [isValidating, validate];
|
|
11213
11214
|
}
|
|
11214
11215
|
var SaveFlowButton = ({ className }) => {
|
|
11215
|
-
const
|
|
11216
|
+
const navigate = useNavigate();
|
|
11217
|
+
const { saveToBackend, isSaving, quotaExhausted, dismissQuotaExhausted } = useSaveWorkflow();
|
|
11216
11218
|
const [isValidating, validateFlow] = useFlowValidator(async (isValid) => {
|
|
11217
11219
|
if (isValid) {
|
|
11218
11220
|
await saveToBackend();
|
|
@@ -11222,30 +11224,45 @@ var SaveFlowButton = ({ className }) => {
|
|
|
11222
11224
|
});
|
|
11223
11225
|
}
|
|
11224
11226
|
});
|
|
11225
|
-
return /* @__PURE__ */
|
|
11226
|
-
|
|
11227
|
-
|
|
11228
|
-
|
|
11229
|
-
|
|
11230
|
-
|
|
11231
|
-
|
|
11232
|
-
|
|
11233
|
-
|
|
11234
|
-
|
|
11235
|
-
|
|
11236
|
-
|
|
11237
|
-
|
|
11238
|
-
|
|
11239
|
-
|
|
11240
|
-
|
|
11241
|
-
|
|
11242
|
-
|
|
11243
|
-
|
|
11244
|
-
|
|
11227
|
+
return /* @__PURE__ */ jsxs("div", { children: [
|
|
11228
|
+
/* @__PURE__ */ jsx(
|
|
11229
|
+
SdkPermissionButton,
|
|
11230
|
+
{
|
|
11231
|
+
permission: [
|
|
11232
|
+
FLUIDGRIDS_PERMISSIONS.WORKFLOW_UPDATE,
|
|
11233
|
+
FLUIDGRIDS_PERMISSIONS.WORKFLOW_CREATE
|
|
11234
|
+
],
|
|
11235
|
+
deniedTooltip: "You don't have permission to save workflows",
|
|
11236
|
+
children: /* @__PURE__ */ jsxs(
|
|
11237
|
+
Button$1,
|
|
11238
|
+
{
|
|
11239
|
+
onClick: validateFlow,
|
|
11240
|
+
disabled: isValidating || isSaving,
|
|
11241
|
+
variant: "outline",
|
|
11242
|
+
size: "sm",
|
|
11243
|
+
className: cn$1("flex gap-4", className),
|
|
11244
|
+
children: [
|
|
11245
|
+
/* @__PURE__ */ jsx(Icon, { icon: "fluent:save-28-filled" }),
|
|
11246
|
+
isSaving ? "Saving..." : "Save"
|
|
11247
|
+
]
|
|
11248
|
+
}
|
|
11249
|
+
)
|
|
11250
|
+
}
|
|
11251
|
+
),
|
|
11252
|
+
/* @__PURE__ */ jsx(
|
|
11253
|
+
QuotaExhaustedDialog,
|
|
11254
|
+
{
|
|
11255
|
+
open: quotaExhausted,
|
|
11256
|
+
onOpenChange: (open) => {
|
|
11257
|
+
if (!open) dismissQuotaExhausted();
|
|
11258
|
+
},
|
|
11259
|
+
onUpgrade: () => {
|
|
11260
|
+
dismissQuotaExhausted();
|
|
11261
|
+
navigate("/billing");
|
|
11245
11262
|
}
|
|
11246
|
-
|
|
11247
|
-
|
|
11248
|
-
|
|
11263
|
+
}
|
|
11264
|
+
)
|
|
11265
|
+
] });
|
|
11249
11266
|
};
|
|
11250
11267
|
var PLACEHOLDER_JSON = `{
|
|
11251
11268
|
"message": "Hello, what can you help me with?",
|
|
@@ -15036,7 +15053,7 @@ function WorkflowItem({
|
|
|
15036
15053
|
};
|
|
15037
15054
|
const requiredNodeTypes = [];
|
|
15038
15055
|
try {
|
|
15039
|
-
const { NODE_CONFIGS: NODE_CONFIGS3, ensureNodeConfigsLoaded: ensureNodeConfigsLoaded2 } = await import('./blocks-
|
|
15056
|
+
const { NODE_CONFIGS: NODE_CONFIGS3, ensureNodeConfigsLoaded: ensureNodeConfigsLoaded2 } = await import('./blocks-7KN7ZRE6.js');
|
|
15040
15057
|
await ensureNodeConfigsLoaded2().catch(() => {
|
|
15041
15058
|
});
|
|
15042
15059
|
const workflowNodeTypes = [
|
|
@@ -15334,5 +15351,5 @@ function WorkflowBuilder() {
|
|
|
15334
15351
|
}
|
|
15335
15352
|
|
|
15336
15353
|
export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, EntityTagPicker, FlowBuilderPage, FluidGridsProvider, TemplateCard, WorkflowBuilder, useFluidGridsContext, useImportWorkflowTemplate, useWorkflowTemplates };
|
|
15337
|
-
//# sourceMappingURL=chunk-
|
|
15338
|
-
//# sourceMappingURL=chunk-
|
|
15354
|
+
//# sourceMappingURL=chunk-Z3NRSPTV.js.map
|
|
15355
|
+
//# sourceMappingURL=chunk-Z3NRSPTV.js.map
|