@burdenoff/fluidgrids-fe-sdk 2026.616.1 → 2026.616.2
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/{TemplateConfigurationModal-UJAGRE7X.js → TemplateConfigurationModal-FPQR7W4M.js} +3 -3
- package/dist/{TemplateConfigurationModal-UJAGRE7X.js.map → TemplateConfigurationModal-FPQR7W4M.js.map} +1 -1
- package/dist/{WorkflowBuilder-TIT4KURD.js → WorkflowBuilder-BIAKKNKM.js} +6 -6
- package/dist/{WorkflowBuilder-TIT4KURD.js.map → WorkflowBuilder-BIAKKNKM.js.map} +1 -1
- package/dist/WorkflowsList-J33J7EIF.js +8 -0
- package/dist/{WorkflowsList-CLI32VRE.js.map → WorkflowsList-J33J7EIF.js.map} +1 -1
- package/dist/{chunk-NDJSUC4W.js → chunk-7VEOUEIN.js} +21 -21
- package/dist/chunk-7VEOUEIN.js.map +1 -0
- package/dist/{chunk-6FP5I5EG.js → chunk-C5VIFUNU.js} +3 -3
- package/dist/{chunk-6FP5I5EG.js.map → chunk-C5VIFUNU.js.map} +1 -1
- package/dist/{chunk-GSS5PHRL.js → chunk-M2KBI2FX.js} +3 -3
- package/dist/{chunk-GSS5PHRL.js.map → chunk-M2KBI2FX.js.map} +1 -1
- package/dist/{chunk-XVHQN2UK.js → chunk-TYOU6RYA.js} +781 -866
- package/dist/chunk-TYOU6RYA.js.map +1 -0
- package/dist/{chunk-CGKBAJMM.js → chunk-Z2ZEVYDE.js} +2 -2
- package/dist/chunk-Z2ZEVYDE.js.map +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.js +12 -12
- package/dist/index.js.map +1 -1
- package/dist/useImportWorkflowTemplate-P62I2ADG.js +11 -0
- package/dist/{useImportWorkflowTemplate-RCPS4OTA.js.map → useImportWorkflowTemplate-P62I2ADG.js.map} +1 -1
- package/package.json +1 -1
- package/dist/WorkflowsList-CLI32VRE.js +0 -8
- package/dist/chunk-CGKBAJMM.js.map +0 -1
- package/dist/chunk-NDJSUC4W.js.map +0 -1
- package/dist/chunk-XVHQN2UK.js.map +0 -1
- package/dist/useImportWorkflowTemplate-RCPS4OTA.js +0 -11
package/dist/{TemplateConfigurationModal-UJAGRE7X.js → TemplateConfigurationModal-FPQR7W4M.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Label } from './chunk-G7B4SYFM.js';
|
|
2
|
-
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, Input, DialogFooter } from './chunk-
|
|
2
|
+
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, Input, DialogFooter } from './chunk-7VEOUEIN.js';
|
|
3
3
|
import { Badge, Button } from './chunk-Z54K22LP.js';
|
|
4
4
|
import { useState, useMemo } from 'react';
|
|
5
5
|
import { Sparkles, KeyRound, Download, CheckCircle2, ShoppingCart, AlertTriangle, Loader2 } from 'lucide-react';
|
|
@@ -254,5 +254,5 @@ function TemplateInputField({
|
|
|
254
254
|
}
|
|
255
255
|
|
|
256
256
|
export { TemplateConfigurationModal };
|
|
257
|
-
//# sourceMappingURL=TemplateConfigurationModal-
|
|
258
|
-
//# sourceMappingURL=TemplateConfigurationModal-
|
|
257
|
+
//# sourceMappingURL=TemplateConfigurationModal-FPQR7W4M.js.map
|
|
258
|
+
//# sourceMappingURL=TemplateConfigurationModal-FPQR7W4M.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/builder/components/flow-builder/components/templates/TemplateConfigurationModal.tsx"],"names":[],"mappings":"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","file":"TemplateConfigurationModal-UJAGRE7X.js","sourcesContent":["import { useState, useMemo } from \"react\";\nimport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogDescription,\n DialogFooter,\n} from \"../../../../../ui/dialog\";\nimport { Input } from \"../../../../../ui/input\";\nimport { Button } from \"../../../../../ui/button\";\nimport { Badge } from \"../../../../../ui/badge\";\nimport { Label } from \"../../../../../ui/label\";\nimport type { StoreProduct } from \"../../../../../generated/global-types\";\nimport type {\n WorkflowTemplateContent,\n TemplateNodeCheckResult,\n TemplateRequiredInput,\n} from \"../../../../../types/workflow-template-content\";\nimport {\n Loader2,\n CheckCircle2,\n Download,\n ShoppingCart,\n KeyRound,\n Sparkles,\n AlertTriangle,\n} from \"lucide-react\";\n\nexport interface TemplateConfigurationModalProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n template: StoreProduct | null;\n content: WorkflowTemplateContent | null;\n nodeCheckResult: TemplateNodeCheckResult | null;\n onConfirm: (config: {\n name: string;\n templateInputs: Record<string, string | number>;\n }) => void;\n importing?: boolean;\n}\n\n/**\n * Configuration modal shown before importing a template that has:\n * - Required user inputs (e.g., Slack webhook URL)\n * - Missing node dependencies\n * - Required credential types\n *\n * Allows the user to review what will happen and fill in required fields.\n */\nexport function TemplateConfigurationModal({\n open,\n onOpenChange,\n template,\n content,\n nodeCheckResult,\n onConfirm,\n importing = false,\n}: TemplateConfigurationModalProps) {\n const [workflowName, setWorkflowName] = useState(\n content?.defaultWorkflowName || template?.name || \"\",\n );\n const [inputValues, setInputValues] = useState<Record<string, string>>({});\n\n // Reset form when template changes\n useMemo(() => {\n if (template) {\n setWorkflowName(content?.defaultWorkflowName || template.name || \"\");\n // Pre-fill default values\n const defaults: Record<string, string> = {};\n if (content?.requiredInputs) {\n for (const input of content.requiredInputs) {\n if (input.defaultValue) {\n defaults[input.name] = input.defaultValue;\n }\n }\n }\n setInputValues(defaults);\n }\n }, [template?.id]);\n\n const requiredInputs = content?.requiredInputs || [];\n const hasRequiredInputs = requiredInputs.length > 0;\n const hasMissingNodes =\n nodeCheckResult &&\n (nodeCheckResult.missing.length > 0 ||\n nodeCheckResult.missingPaid.length > 0);\n const hasRequiredCredentials =\n (content?.requiredCredentialTypes?.length ?? 0) > 0;\n const hasPaidBlockers = (nodeCheckResult?.missingPaid.length ?? 0) > 0;\n\n // Check if all required fields are filled\n const isValid = useMemo(() => {\n if (!workflowName.trim()) return false;\n for (const input of requiredInputs) {\n if (input.required && !inputValues[input.name]?.trim()) {\n return false;\n }\n }\n return true;\n }, [workflowName, inputValues, requiredInputs]);\n\n const handleInputChange = (name: string, value: string) => {\n setInputValues((prev) => ({ ...prev, [name]: value }));\n };\n\n const handleConfirm = () => {\n onConfirm({\n name: workflowName.trim(),\n templateInputs: inputValues,\n });\n };\n\n if (!template || !content) return null;\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent\n size=\"lg\"\n className=\"!flex !flex-col !max-h-[85vh] overflow-hidden p-0 gap-0\"\n >\n <DialogHeader className=\"px-6 pt-6 pb-4 border-b shrink-0\">\n <div className=\"flex items-center gap-2\">\n <Sparkles className=\"size-5 text-primary\" />\n <DialogTitle className=\"text-xl\">\n Import \"{template.name}\"\n </DialogTitle>\n </div>\n <DialogDescription>\n Configure and import this workflow template into your workspace\n </DialogDescription>\n </DialogHeader>\n\n {/* Scrollable Content */}\n <div className=\"flex-1 overflow-y-auto px-6 py-5 space-y-6\">\n {/* Workflow Name */}\n <div className=\"space-y-2\">\n <Label htmlFor=\"workflow-name\" className=\"text-sm font-medium\">\n Workflow Name\n </Label>\n <Input\n id=\"workflow-name\"\n value={workflowName}\n onChange={(e) => setWorkflowName(e.target.value)}\n placeholder=\"Enter workflow name\"\n />\n </div>\n\n {/* Required Configuration Inputs */}\n {hasRequiredInputs && (\n <div className=\"space-y-3\">\n <h4 className=\"text-sm font-semibold text-foreground flex items-center gap-2\">\n <KeyRound className=\"size-4\" />\n Required Configuration\n </h4>\n <div className=\"space-y-3\">\n {requiredInputs.map((input) => (\n <TemplateInputField\n key={input.name}\n input={input}\n value={inputValues[input.name] || \"\"}\n onChange={(value) => handleInputChange(input.name, value)}\n />\n ))}\n </div>\n </div>\n )}\n\n {/* Node Dependencies */}\n {nodeCheckResult && (\n <div className=\"space-y-3\">\n <h4 className=\"text-sm font-semibold text-foreground flex items-center gap-2\">\n <Download className=\"size-4\" />\n Node Dependencies\n </h4>\n <div className=\"space-y-2\">\n {/* Installed nodes */}\n {nodeCheckResult.installed.map((node) => (\n <div\n key={node.nodeType}\n className=\"flex items-center gap-2 text-sm\"\n >\n <CheckCircle2 className=\"size-4 text-green-500 shrink-0\" />\n <span>\n {node.displayName || node.nodeType} v{node.nodeVersion}\n </span>\n <Badge variant=\"secondary\" className=\"text-xs ml-auto\">\n Installed\n </Badge>\n </div>\n ))}\n\n {/* Missing free nodes (will be installed) */}\n {nodeCheckResult.missing.map((node) => (\n <div\n key={node.nodeType}\n className=\"flex items-center gap-2 text-sm\"\n >\n <Download className=\"size-4 text-blue-500 shrink-0\" />\n <span>\n {node.displayName || node.nodeType} v{node.nodeVersion}\n </span>\n <Badge\n variant=\"outline\"\n className=\"text-xs ml-auto border-blue-500/30 text-blue-500\"\n >\n Will install\n </Badge>\n </div>\n ))}\n\n {/* Missing paid nodes (need purchase) */}\n {nodeCheckResult.missingPaid.map((node) => (\n <div\n key={node.nodeType}\n className=\"flex items-center gap-2 text-sm\"\n >\n <ShoppingCart className=\"size-4 text-amber-500 shrink-0\" />\n <span>\n {node.displayName || node.nodeType} v{node.nodeVersion}\n </span>\n <Badge\n variant=\"outline\"\n className=\"text-xs ml-auto border-amber-500/30 text-amber-500\"\n >\n Purchase required\n </Badge>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {/* Required Credentials */}\n {hasRequiredCredentials && (\n <div className=\"space-y-3\">\n <h4 className=\"text-sm font-semibold text-foreground flex items-center gap-2\">\n <KeyRound className=\"size-4\" />\n Credentials Needed\n </h4>\n <p className=\"text-xs text-muted-foreground\">\n You'll need to configure these credentials after importing:\n </p>\n <div className=\"flex flex-wrap gap-2\">\n {content.requiredCredentialTypes?.map((cred) => (\n <Badge key={cred} variant=\"outline\" className=\"text-xs\">\n <KeyRound className=\"size-3 mr-1\" />\n {cred}\n </Badge>\n ))}\n </div>\n </div>\n )}\n\n {/* Info Banner */}\n <div className=\"rounded-lg bg-muted/50 p-3 text-sm text-muted-foreground\">\n <p>\n The workflow will be created as a <strong>DRAFT</strong>. You can\n review and edit it in the builder before activating.\n </p>\n </div>\n\n {/* Paid Node Blocker Warning */}\n {hasPaidBlockers && (\n <div className=\"rounded-lg bg-amber-500/10 border border-amber-500/30 p-3 text-sm text-amber-700 dark:text-amber-400 flex items-start gap-2\">\n <AlertTriangle className=\"size-4 mt-0.5 shrink-0\" />\n <div>\n <p className=\"font-medium\">Purchase required</p>\n <p className=\"mt-1 text-xs\">\n Some nodes require purchase from the store before this\n template can be fully imported. The workflow will be created\n but those nodes may not function until installed.\n </p>\n </div>\n </div>\n )}\n </div>\n\n {/* Footer */}\n <DialogFooter className=\"px-6 py-4 border-t shrink-0\">\n <Button\n variant=\"outline\"\n onClick={() => onOpenChange(false)}\n disabled={importing}\n >\n Cancel\n </Button>\n <Button onClick={handleConfirm} disabled={!isValid || importing}>\n {importing ? (\n <>\n <Loader2 className=\"size-4 mr-2 animate-spin\" />\n Importing...\n </>\n ) : (\n <>\n <Sparkles className=\"size-4 mr-2\" />\n Import & Open in Builder\n </>\n )}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n\n// ============================================================================\n// Sub-component: Template Input Field\n// ============================================================================\n\nfunction TemplateInputField({\n input,\n value,\n onChange,\n}: {\n input: TemplateRequiredInput;\n value: string;\n onChange: (value: string) => void;\n}) {\n return (\n <div className=\"space-y-1.5\">\n <Label htmlFor={`template-input-${input.name}`} className=\"text-sm\">\n {input.label}\n {input.required && <span className=\"text-destructive ml-1\">*</span>}\n </Label>\n {input.type === \"select\" && input.options ? (\n <select\n id={`template-input-${input.name}`}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n className=\"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring\"\n >\n <option value=\"\">Select...</option>\n {input.options.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n ) : (\n <Input\n id={`template-input-${input.name}`}\n type={\n input.type === \"secret\"\n ? \"password\"\n : input.type === \"number\"\n ? \"number\"\n : \"text\"\n }\n value={value}\n onChange={(e) => onChange(e.target.value)}\n placeholder={input.placeholder}\n />\n )}\n {input.helpText && (\n <p className=\"text-xs text-muted-foreground\">{input.helpText}</p>\n )}\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/builder/components/flow-builder/components/templates/TemplateConfigurationModal.tsx"],"names":[],"mappings":"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","file":"TemplateConfigurationModal-FPQR7W4M.js","sourcesContent":["import { useState, useMemo } from \"react\";\nimport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogDescription,\n DialogFooter,\n} from \"../../../../../ui/dialog\";\nimport { Input } from \"../../../../../ui/input\";\nimport { Button } from \"../../../../../ui/button\";\nimport { Badge } from \"../../../../../ui/badge\";\nimport { Label } from \"../../../../../ui/label\";\nimport type { StoreProduct } from \"../../../../../generated/global-types\";\nimport type {\n WorkflowTemplateContent,\n TemplateNodeCheckResult,\n TemplateRequiredInput,\n} from \"../../../../../types/workflow-template-content\";\nimport {\n Loader2,\n CheckCircle2,\n Download,\n ShoppingCart,\n KeyRound,\n Sparkles,\n AlertTriangle,\n} from \"lucide-react\";\n\nexport interface TemplateConfigurationModalProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n template: StoreProduct | null;\n content: WorkflowTemplateContent | null;\n nodeCheckResult: TemplateNodeCheckResult | null;\n onConfirm: (config: {\n name: string;\n templateInputs: Record<string, string | number>;\n }) => void;\n importing?: boolean;\n}\n\n/**\n * Configuration modal shown before importing a template that has:\n * - Required user inputs (e.g., Slack webhook URL)\n * - Missing node dependencies\n * - Required credential types\n *\n * Allows the user to review what will happen and fill in required fields.\n */\nexport function TemplateConfigurationModal({\n open,\n onOpenChange,\n template,\n content,\n nodeCheckResult,\n onConfirm,\n importing = false,\n}: TemplateConfigurationModalProps) {\n const [workflowName, setWorkflowName] = useState(\n content?.defaultWorkflowName || template?.name || \"\",\n );\n const [inputValues, setInputValues] = useState<Record<string, string>>({});\n\n // Reset form when template changes\n useMemo(() => {\n if (template) {\n setWorkflowName(content?.defaultWorkflowName || template.name || \"\");\n // Pre-fill default values\n const defaults: Record<string, string> = {};\n if (content?.requiredInputs) {\n for (const input of content.requiredInputs) {\n if (input.defaultValue) {\n defaults[input.name] = input.defaultValue;\n }\n }\n }\n setInputValues(defaults);\n }\n }, [template?.id]);\n\n const requiredInputs = content?.requiredInputs || [];\n const hasRequiredInputs = requiredInputs.length > 0;\n const hasMissingNodes =\n nodeCheckResult &&\n (nodeCheckResult.missing.length > 0 ||\n nodeCheckResult.missingPaid.length > 0);\n const hasRequiredCredentials =\n (content?.requiredCredentialTypes?.length ?? 0) > 0;\n const hasPaidBlockers = (nodeCheckResult?.missingPaid.length ?? 0) > 0;\n\n // Check if all required fields are filled\n const isValid = useMemo(() => {\n if (!workflowName.trim()) return false;\n for (const input of requiredInputs) {\n if (input.required && !inputValues[input.name]?.trim()) {\n return false;\n }\n }\n return true;\n }, [workflowName, inputValues, requiredInputs]);\n\n const handleInputChange = (name: string, value: string) => {\n setInputValues((prev) => ({ ...prev, [name]: value }));\n };\n\n const handleConfirm = () => {\n onConfirm({\n name: workflowName.trim(),\n templateInputs: inputValues,\n });\n };\n\n if (!template || !content) return null;\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent\n size=\"lg\"\n className=\"!flex !flex-col !max-h-[85vh] overflow-hidden p-0 gap-0\"\n >\n <DialogHeader className=\"px-6 pt-6 pb-4 border-b shrink-0\">\n <div className=\"flex items-center gap-2\">\n <Sparkles className=\"size-5 text-primary\" />\n <DialogTitle className=\"text-xl\">\n Import \"{template.name}\"\n </DialogTitle>\n </div>\n <DialogDescription>\n Configure and import this workflow template into your workspace\n </DialogDescription>\n </DialogHeader>\n\n {/* Scrollable Content */}\n <div className=\"flex-1 overflow-y-auto px-6 py-5 space-y-6\">\n {/* Workflow Name */}\n <div className=\"space-y-2\">\n <Label htmlFor=\"workflow-name\" className=\"text-sm font-medium\">\n Workflow Name\n </Label>\n <Input\n id=\"workflow-name\"\n value={workflowName}\n onChange={(e) => setWorkflowName(e.target.value)}\n placeholder=\"Enter workflow name\"\n />\n </div>\n\n {/* Required Configuration Inputs */}\n {hasRequiredInputs && (\n <div className=\"space-y-3\">\n <h4 className=\"text-sm font-semibold text-foreground flex items-center gap-2\">\n <KeyRound className=\"size-4\" />\n Required Configuration\n </h4>\n <div className=\"space-y-3\">\n {requiredInputs.map((input) => (\n <TemplateInputField\n key={input.name}\n input={input}\n value={inputValues[input.name] || \"\"}\n onChange={(value) => handleInputChange(input.name, value)}\n />\n ))}\n </div>\n </div>\n )}\n\n {/* Node Dependencies */}\n {nodeCheckResult && (\n <div className=\"space-y-3\">\n <h4 className=\"text-sm font-semibold text-foreground flex items-center gap-2\">\n <Download className=\"size-4\" />\n Node Dependencies\n </h4>\n <div className=\"space-y-2\">\n {/* Installed nodes */}\n {nodeCheckResult.installed.map((node) => (\n <div\n key={node.nodeType}\n className=\"flex items-center gap-2 text-sm\"\n >\n <CheckCircle2 className=\"size-4 text-green-500 shrink-0\" />\n <span>\n {node.displayName || node.nodeType} v{node.nodeVersion}\n </span>\n <Badge variant=\"secondary\" className=\"text-xs ml-auto\">\n Installed\n </Badge>\n </div>\n ))}\n\n {/* Missing free nodes (will be installed) */}\n {nodeCheckResult.missing.map((node) => (\n <div\n key={node.nodeType}\n className=\"flex items-center gap-2 text-sm\"\n >\n <Download className=\"size-4 text-blue-500 shrink-0\" />\n <span>\n {node.displayName || node.nodeType} v{node.nodeVersion}\n </span>\n <Badge\n variant=\"outline\"\n className=\"text-xs ml-auto border-blue-500/30 text-blue-500\"\n >\n Will install\n </Badge>\n </div>\n ))}\n\n {/* Missing paid nodes (need purchase) */}\n {nodeCheckResult.missingPaid.map((node) => (\n <div\n key={node.nodeType}\n className=\"flex items-center gap-2 text-sm\"\n >\n <ShoppingCart className=\"size-4 text-amber-500 shrink-0\" />\n <span>\n {node.displayName || node.nodeType} v{node.nodeVersion}\n </span>\n <Badge\n variant=\"outline\"\n className=\"text-xs ml-auto border-amber-500/30 text-amber-500\"\n >\n Purchase required\n </Badge>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {/* Required Credentials */}\n {hasRequiredCredentials && (\n <div className=\"space-y-3\">\n <h4 className=\"text-sm font-semibold text-foreground flex items-center gap-2\">\n <KeyRound className=\"size-4\" />\n Credentials Needed\n </h4>\n <p className=\"text-xs text-muted-foreground\">\n You'll need to configure these credentials after importing:\n </p>\n <div className=\"flex flex-wrap gap-2\">\n {content.requiredCredentialTypes?.map((cred) => (\n <Badge key={cred} variant=\"outline\" className=\"text-xs\">\n <KeyRound className=\"size-3 mr-1\" />\n {cred}\n </Badge>\n ))}\n </div>\n </div>\n )}\n\n {/* Info Banner */}\n <div className=\"rounded-lg bg-muted/50 p-3 text-sm text-muted-foreground\">\n <p>\n The workflow will be created as a <strong>DRAFT</strong>. You can\n review and edit it in the builder before activating.\n </p>\n </div>\n\n {/* Paid Node Blocker Warning */}\n {hasPaidBlockers && (\n <div className=\"rounded-lg bg-amber-500/10 border border-amber-500/30 p-3 text-sm text-amber-700 dark:text-amber-400 flex items-start gap-2\">\n <AlertTriangle className=\"size-4 mt-0.5 shrink-0\" />\n <div>\n <p className=\"font-medium\">Purchase required</p>\n <p className=\"mt-1 text-xs\">\n Some nodes require purchase from the store before this\n template can be fully imported. The workflow will be created\n but those nodes may not function until installed.\n </p>\n </div>\n </div>\n )}\n </div>\n\n {/* Footer */}\n <DialogFooter className=\"px-6 py-4 border-t shrink-0\">\n <Button\n variant=\"outline\"\n onClick={() => onOpenChange(false)}\n disabled={importing}\n >\n Cancel\n </Button>\n <Button onClick={handleConfirm} disabled={!isValid || importing}>\n {importing ? (\n <>\n <Loader2 className=\"size-4 mr-2 animate-spin\" />\n Importing...\n </>\n ) : (\n <>\n <Sparkles className=\"size-4 mr-2\" />\n Import & Open in Builder\n </>\n )}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n\n// ============================================================================\n// Sub-component: Template Input Field\n// ============================================================================\n\nfunction TemplateInputField({\n input,\n value,\n onChange,\n}: {\n input: TemplateRequiredInput;\n value: string;\n onChange: (value: string) => void;\n}) {\n return (\n <div className=\"space-y-1.5\">\n <Label htmlFor={`template-input-${input.name}`} className=\"text-sm\">\n {input.label}\n {input.required && <span className=\"text-destructive ml-1\">*</span>}\n </Label>\n {input.type === \"select\" && input.options ? (\n <select\n id={`template-input-${input.name}`}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n className=\"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring\"\n >\n <option value=\"\">Select...</option>\n {input.options.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n ) : (\n <Input\n id={`template-input-${input.name}`}\n type={\n input.type === \"secret\"\n ? \"password\"\n : input.type === \"number\"\n ? \"number\"\n : \"text\"\n }\n value={value}\n onChange={(e) => onChange(e.target.value)}\n placeholder={input.placeholder}\n />\n )}\n {input.helpText && (\n <p className=\"text-xs text-muted-foreground\">{input.helpText}</p>\n )}\n </div>\n );\n}\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { WorkflowBuilder } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
1
|
+
export { WorkflowBuilder } from './chunk-TYOU6RYA.js';
|
|
2
|
+
import './chunk-C5VIFUNU.js';
|
|
3
|
+
import './chunk-7VEOUEIN.js';
|
|
4
4
|
import './chunk-Z54K22LP.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-Z2ZEVYDE.js';
|
|
6
6
|
import './chunk-4FFPGQD3.js';
|
|
7
7
|
import './chunk-FGYVIXQ7.js';
|
|
8
8
|
import './chunk-LUGJJ7LL.js';
|
|
@@ -11,5 +11,5 @@ import './chunk-BQXHJIER.js';
|
|
|
11
11
|
import './chunk-5BDQNSP3.js';
|
|
12
12
|
import './chunk-WWU2O2SR.js';
|
|
13
13
|
import './chunk-XQP33UJR.js';
|
|
14
|
-
//# sourceMappingURL=WorkflowBuilder-
|
|
15
|
-
//# sourceMappingURL=WorkflowBuilder-
|
|
14
|
+
//# sourceMappingURL=WorkflowBuilder-BIAKKNKM.js.map
|
|
15
|
+
//# sourceMappingURL=WorkflowBuilder-BIAKKNKM.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"WorkflowBuilder-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"WorkflowBuilder-BIAKKNKM.js"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { WorkflowsList } from './chunk-M2KBI2FX.js';
|
|
2
|
+
import './chunk-Z2ZEVYDE.js';
|
|
3
|
+
import './chunk-4FFPGQD3.js';
|
|
4
|
+
import './chunk-FGYVIXQ7.js';
|
|
5
|
+
import './chunk-5BDQNSP3.js';
|
|
6
|
+
import './chunk-WWU2O2SR.js';
|
|
7
|
+
//# sourceMappingURL=WorkflowsList-J33J7EIF.js.map
|
|
8
|
+
//# sourceMappingURL=WorkflowsList-J33J7EIF.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"WorkflowsList-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"WorkflowsList-J33J7EIF.js"}
|
|
@@ -1,9 +1,26 @@
|
|
|
1
1
|
import { cn } from './chunk-Z54K22LP.js';
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
4
|
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
3
5
|
import { XIcon } from 'lucide-react';
|
|
4
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
5
|
-
import { forwardRef } from 'react';
|
|
6
6
|
|
|
7
|
+
var Input = forwardRef(
|
|
8
|
+
({ className, type, ...props }, ref) => {
|
|
9
|
+
return /* @__PURE__ */ jsx(
|
|
10
|
+
"input",
|
|
11
|
+
{
|
|
12
|
+
type,
|
|
13
|
+
className: cn(
|
|
14
|
+
"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
|
|
15
|
+
className
|
|
16
|
+
),
|
|
17
|
+
ref,
|
|
18
|
+
...props
|
|
19
|
+
}
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
);
|
|
23
|
+
Input.displayName = "Input";
|
|
7
24
|
function Dialog({
|
|
8
25
|
...props
|
|
9
26
|
}) {
|
|
@@ -132,24 +149,7 @@ function DialogDescription({
|
|
|
132
149
|
}
|
|
133
150
|
);
|
|
134
151
|
}
|
|
135
|
-
var Input = forwardRef(
|
|
136
|
-
({ className, type, ...props }, ref) => {
|
|
137
|
-
return /* @__PURE__ */ jsx(
|
|
138
|
-
"input",
|
|
139
|
-
{
|
|
140
|
-
type,
|
|
141
|
-
className: cn(
|
|
142
|
-
"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
|
|
143
|
-
className
|
|
144
|
-
),
|
|
145
|
-
ref,
|
|
146
|
-
...props
|
|
147
|
-
}
|
|
148
|
-
);
|
|
149
|
-
}
|
|
150
|
-
);
|
|
151
|
-
Input.displayName = "Input";
|
|
152
152
|
|
|
153
153
|
export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Input };
|
|
154
|
-
//# sourceMappingURL=chunk-
|
|
155
|
-
//# sourceMappingURL=chunk-
|
|
154
|
+
//# sourceMappingURL=chunk-7VEOUEIN.js.map
|
|
155
|
+
//# sourceMappingURL=chunk-7VEOUEIN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ui/input.tsx","../src/ui/dialog.tsx"],"names":["jsx"],"mappings":"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","file":"chunk-7VEOUEIN.js","sourcesContent":["import { forwardRef, type InputHTMLAttributes } from \"react\";\nimport { cn } from \"../utils/cn\";\n\nexport interface InputProps extends InputHTMLAttributes<HTMLInputElement> {}\n\nconst Input = forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n },\n);\nInput.displayName = \"Input\";\n\nexport { Input };\n","import * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { XIcon } from \"lucide-react\";\nimport { cn } from \"../utils/cn\";\n\nfunction Dialog({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n size = \"default\",\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean;\n size?: \"default\" | \"lg\" | \"xl\" | \"full\";\n}) {\n const sizeClasses = {\n default: \"sm:max-w-lg\",\n lg: \"sm:max-w-3xl\",\n xl: \"sm:max-w-[1400px] w-[90vw]\",\n full: \"sm:max-w-[95vw] w-[95vw]\",\n };\n\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n \"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none\",\n sizeClasses[size],\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none\"\n >\n <XIcon className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\"text-lg leading-none font-semibold\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useFlowStore } from './chunk-
|
|
1
|
+
import { useFlowStore } from './chunk-Z2ZEVYDE.js';
|
|
2
2
|
import { NodeEndpointConfigsDocument, NodeManifestDocument, TriggerWorkflowDocument, WorkflowRunDocument } from './chunk-FGYVIXQ7.js';
|
|
3
3
|
import { GetMyNodeInstallationsDocument, InstallWorkflowNodeDocument, InstallPurchasedNodeDocument } from './chunk-LUGJJ7LL.js';
|
|
4
4
|
import { useGlobalStoreClient, FluidGridsContext, useTemplateDetail } from './chunk-GSJOLO3A.js';
|
|
@@ -9439,5 +9439,5 @@ function useImportWorkflowTemplate() {
|
|
|
9439
9439
|
}
|
|
9440
9440
|
|
|
9441
9441
|
export { AVAILABLE_NODES, ConfigSchemaForm, ConnectionFormDialog, ConnectionSelector, HeaderWithIcon, NODES, NODES_METADATA, NODE_CONFIGS, NODE_TYPES, NodePropertyPanel, ProviderPicker, createNodeWithDefaultData, ensureNodeConfigsLoaded, getNodeDetail, getNodeMetadata, getProviderForm, isNodeConfigsInitialized, listCustomBlocks, onNodeTypesUpdate, registerCustomBlock, registerWorkflowNodeTypes, resolveUiSpec, stripSubmitActions, useConnection, useConnectionDialog, useConnections, useConnectionsByProvider, useCreateConnection, useImportWorkflowTemplate, useInitiateOAuth, useInstallNode, useInstalledNodes, useNodeExecution, useProviderByKey, useProviderCatalog, useProviders, useRefreshAvailableNodes };
|
|
9442
|
-
//# sourceMappingURL=chunk-
|
|
9443
|
-
//# sourceMappingURL=chunk-
|
|
9442
|
+
//# sourceMappingURL=chunk-C5VIFUNU.js.map
|
|
9443
|
+
//# sourceMappingURL=chunk-C5VIFUNU.js.map
|