@burdenoff/fluidgrids-fe-sdk 2026.716.12 → 2026.720.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.
Files changed (57) hide show
  1. package/dist/ExecutionDetailPage-6ASC7CJW.js +8 -0
  2. package/dist/{ExecutionDetailPage-4RT4QFRT.js.map → ExecutionDetailPage-6ASC7CJW.js.map} +1 -1
  3. package/dist/ExecutionsListPage-OWOKDVXQ.js +8 -0
  4. package/dist/{ExecutionsListPage-I63SHREF.js.map → ExecutionsListPage-OWOKDVXQ.js.map} +1 -1
  5. package/dist/{TemplateConfigurationModal-ZMCT3ZCH.js → TemplateConfigurationModal-MTR7VP6G.js} +6 -5
  6. package/dist/TemplateConfigurationModal-MTR7VP6G.js.map +1 -0
  7. package/dist/{TemplateDetailPanel-UXH6KPCH.js → TemplateDetailPanel-T3ZHXOHX.js} +4 -3
  8. package/dist/TemplateDetailPanel-T3ZHXOHX.js.map +1 -0
  9. package/dist/WorkflowBuilder-COJQ2YBJ.js +16 -0
  10. package/dist/{WorkflowBuilder-2VTEBTJ6.js.map → WorkflowBuilder-COJQ2YBJ.js.map} +1 -1
  11. package/dist/WorkflowsList-AY6ZANWN.js +10 -0
  12. package/dist/{WorkflowsList-4RBTKPUJ.js.map → WorkflowsList-AY6ZANWN.js.map} +1 -1
  13. package/dist/{blocks-XUSH3L5M.js → blocks-J3YIE73T.js} +6 -4
  14. package/dist/{blocks-XUSH3L5M.js.map → blocks-J3YIE73T.js.map} +1 -1
  15. package/dist/chunk-3ZYUGTIT.js +10 -0
  16. package/dist/chunk-3ZYUGTIT.js.map +1 -0
  17. package/dist/{chunk-WTKD76BY.js → chunk-52EJMXGS.js} +12 -8
  18. package/dist/chunk-52EJMXGS.js.map +1 -0
  19. package/dist/{chunk-G7B4SYFM.js → chunk-6QCBKN3P.js} +3 -3
  20. package/dist/{chunk-G7B4SYFM.js.map → chunk-6QCBKN3P.js.map} +1 -1
  21. package/dist/{chunk-Z54K22LP.js → chunk-DBOMRIP5.js} +4 -8
  22. package/dist/chunk-DBOMRIP5.js.map +1 -0
  23. package/dist/{chunk-JXH7PRTS.js → chunk-DVSO5MTE.js} +3 -3
  24. package/dist/{chunk-JXH7PRTS.js.map → chunk-DVSO5MTE.js.map} +1 -1
  25. package/dist/{chunk-6MZFOWEO.js → chunk-EQVBECAC.js} +2 -2
  26. package/dist/chunk-EQVBECAC.js.map +1 -0
  27. package/dist/{chunk-5SENVZ7D.js → chunk-JVARXRIW.js} +296 -108
  28. package/dist/chunk-JVARXRIW.js.map +1 -0
  29. package/dist/{chunk-7VEOUEIN.js → chunk-MRVS73S2.js} +3 -3
  30. package/dist/{chunk-7VEOUEIN.js.map → chunk-MRVS73S2.js.map} +1 -1
  31. package/dist/{chunk-UYPB5TWQ.js → chunk-PNOA7CQV.js} +5 -2
  32. package/dist/chunk-PNOA7CQV.js.map +1 -0
  33. package/dist/{chunk-DKEETQVV.js → chunk-S2Z7ZTGV.js} +41 -30
  34. package/dist/chunk-S2Z7ZTGV.js.map +1 -0
  35. package/dist/chunk-UIY2HBWA.js +156 -0
  36. package/dist/chunk-UIY2HBWA.js.map +1 -0
  37. package/dist/{chunk-5W4EAURJ.js → chunk-ZPBFAT6K.js} +64 -44
  38. package/dist/chunk-ZPBFAT6K.js.map +1 -0
  39. package/dist/{global-operations-5FLHXHG3.js → global-operations-KVVOANLT.js} +3 -3
  40. package/dist/{global-operations-5FLHXHG3.js.map → global-operations-KVVOANLT.js.map} +1 -1
  41. package/dist/index.d.ts +139 -2
  42. package/dist/index.js +22 -36
  43. package/dist/index.js.map +1 -1
  44. package/package.json +1 -1
  45. package/dist/ExecutionDetailPage-4RT4QFRT.js +0 -6
  46. package/dist/ExecutionsListPage-I63SHREF.js +0 -8
  47. package/dist/TemplateConfigurationModal-ZMCT3ZCH.js.map +0 -1
  48. package/dist/TemplateDetailPanel-UXH6KPCH.js.map +0 -1
  49. package/dist/WorkflowBuilder-2VTEBTJ6.js +0 -14
  50. package/dist/WorkflowsList-4RBTKPUJ.js +0 -8
  51. package/dist/chunk-5SENVZ7D.js.map +0 -1
  52. package/dist/chunk-5W4EAURJ.js.map +0 -1
  53. package/dist/chunk-6MZFOWEO.js.map +0 -1
  54. package/dist/chunk-DKEETQVV.js.map +0 -1
  55. package/dist/chunk-UYPB5TWQ.js.map +0 -1
  56. package/dist/chunk-WTKD76BY.js.map +0 -1
  57. package/dist/chunk-Z54K22LP.js.map +0 -1
@@ -0,0 +1,8 @@
1
+ export { ExecutionDetailPage } from './chunk-52EJMXGS.js';
2
+ import './chunk-EQVBECAC.js';
3
+ import './chunk-UIY2HBWA.js';
4
+ import './chunk-3ZYUGTIT.js';
5
+ import './chunk-4NTHFDKQ.js';
6
+ import './chunk-5BDQNSP3.js';
7
+ //# sourceMappingURL=ExecutionDetailPage-6ASC7CJW.js.map
8
+ //# sourceMappingURL=ExecutionDetailPage-6ASC7CJW.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"ExecutionDetailPage-4RT4QFRT.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"ExecutionDetailPage-6ASC7CJW.js"}
@@ -0,0 +1,8 @@
1
+ export { ExecutionsListPage } from './chunk-DVSO5MTE.js';
2
+ import './chunk-EQVBECAC.js';
3
+ import './chunk-OHIRHNRJ.js';
4
+ import './chunk-4NTHFDKQ.js';
5
+ import './chunk-5BDQNSP3.js';
6
+ import './chunk-WWU2O2SR.js';
7
+ //# sourceMappingURL=ExecutionsListPage-OWOKDVXQ.js.map
8
+ //# sourceMappingURL=ExecutionsListPage-OWOKDVXQ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"ExecutionsListPage-I63SHREF.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"ExecutionsListPage-OWOKDVXQ.js"}
@@ -1,6 +1,7 @@
1
- import { Label } from './chunk-G7B4SYFM.js';
2
- import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, Input, DialogFooter } from './chunk-7VEOUEIN.js';
3
- import { Badge, Button } from './chunk-Z54K22LP.js';
1
+ import { Label } from './chunk-6QCBKN3P.js';
2
+ import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, Input, DialogFooter } from './chunk-MRVS73S2.js';
3
+ import { Badge, Button } from './chunk-DBOMRIP5.js';
4
+ import './chunk-3ZYUGTIT.js';
4
5
  import { useState, useMemo } from 'react';
5
6
  import { Sparkles, KeyRound, Download, CheckCircle2, ShoppingCart, AlertTriangle, ExternalLink, Loader2 } from 'lucide-react';
6
7
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -303,5 +304,5 @@ function TemplateInputField({
303
304
  }
304
305
 
305
306
  export { TemplateConfigurationModal };
306
- //# sourceMappingURL=TemplateConfigurationModal-ZMCT3ZCH.js.map
307
- //# sourceMappingURL=TemplateConfigurationModal-ZMCT3ZCH.js.map
307
+ //# sourceMappingURL=TemplateConfigurationModal-MTR7VP6G.js.map
308
+ //# sourceMappingURL=TemplateConfigurationModal-MTR7VP6G.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/builder/components/flow-builder/components/templates/TemplateConfigurationModal.tsx"],"names":[],"mappings":"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","file":"TemplateConfigurationModal-MTR7VP6G.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 ExternalLink,\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 installProgress?: {\n current: number;\n total: number;\n nodeName: string;\n } | null;\n}\n\nexport function TemplateConfigurationModal({\n open,\n onOpenChange,\n template,\n content,\n nodeCheckResult,\n onConfirm,\n importing = false,\n installProgress,\n}: TemplateConfigurationModalProps) {\n const [workflowName, setWorkflowName] = useState(\n content?.defaultWorkflowName || template?.name || \"\",\n );\n const [inputValues, setInputValues] = useState<Record<string, string>>({});\n\n useMemo(() => {\n if (template) {\n setWorkflowName(content?.defaultWorkflowName || template.name || \"\");\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 hasMissingFreeNodes = (nodeCheckResult?.missing.length ?? 0) > 0;\n const hasRequiredCredentials =\n (content?.requiredCredentialTypes?.length ?? 0) > 0;\n const hasPaidBlockers = (nodeCheckResult?.missingPaid.length ?? 0) > 0;\n\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 const isInstalling = importing && !!installProgress;\n const isCreating = importing && !installProgress;\n\n const buttonLabel = hasPaidBlockers\n ? \"Purchase Required Nodes First\"\n : isInstalling\n ? `Installing nodes (${installProgress.current}/${installProgress.total})...`\n : isCreating\n ? \"Creating workflow...\"\n : hasMissingFreeNodes\n ? \"Install & Open in Builder\"\n : \"Import & Open in Builder\";\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 <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 {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 {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 {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\">\n Purchase required before importing\n </p>\n <p className=\"mt-1 text-xs\">\n The nodes marked \"Purchase required\" must be purchased from\n the store before this template can be imported.\n </p>\n <Button\n variant=\"link\"\n size=\"sm\"\n className=\"mt-1 h-auto p-0 text-xs text-amber-700 dark:text-amber-400 underline\"\n onClick={() => window.open(\"/store\", \"_blank\")}\n >\n <ExternalLink className=\"size-3 mr-1\" />\n Go to Store\n </Button>\n </div>\n </div>\n )}\n </div>\n\n <DialogFooter className=\"px-6 py-4 border-t shrink-0 flex-col gap-2\">\n {/* Install progress bar */}\n {installProgress && (\n <div className=\"w-full space-y-1.5\">\n <div className=\"flex items-center justify-between text-xs text-muted-foreground\">\n <span className=\"flex items-center gap-1.5\">\n <Loader2 className=\"size-3 animate-spin\" />\n Installing: {installProgress.nodeName}\n </span>\n <span>\n {installProgress.current} / {installProgress.total}\n </span>\n </div>\n <div className=\"h-1.5 w-full rounded-full bg-muted overflow-hidden\">\n <div\n className=\"h-full bg-primary transition-all duration-300\"\n style={{\n width: `${(installProgress.current / installProgress.total) * 100}%`,\n }}\n />\n </div>\n </div>\n )}\n\n <div className=\"flex w-full justify-end gap-2\">\n <Button\n variant=\"outline\"\n onClick={() => onOpenChange(false)}\n disabled={importing}\n >\n Cancel\n </Button>\n <Button\n onClick={handleConfirm}\n disabled={!isValid || importing || hasPaidBlockers}\n >\n {importing ? (\n <>\n <Loader2 className=\"size-4 mr-2 animate-spin\" />\n {buttonLabel}\n </>\n ) : (\n <>\n <Sparkles className=\"size-4 mr-2\" />\n {buttonLabel}\n </>\n )}\n </Button>\n </div>\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,4 +1,5 @@
1
- import { Button, Badge } from './chunk-Z54K22LP.js';
1
+ import { Button, Badge } from './chunk-DBOMRIP5.js';
2
+ import './chunk-3ZYUGTIT.js';
2
3
  import { X, Sparkles, Star, Download, Eye, User, Calendar, Tag, ExternalLink } from 'lucide-react';
3
4
  import { jsxs, jsx } from 'react/jsx-runtime';
4
5
 
@@ -168,5 +169,5 @@ function TemplateDetailPanel({
168
169
  }
169
170
 
170
171
  export { TemplateDetailPanel };
171
- //# sourceMappingURL=TemplateDetailPanel-UXH6KPCH.js.map
172
- //# sourceMappingURL=TemplateDetailPanel-UXH6KPCH.js.map
172
+ //# sourceMappingURL=TemplateDetailPanel-T3ZHXOHX.js.map
173
+ //# sourceMappingURL=TemplateDetailPanel-T3ZHXOHX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/builder/components/flow-builder/components/templates/TemplateDetailPanel.tsx"],"names":[],"mappings":"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","file":"TemplateDetailPanel-T3ZHXOHX.js","sourcesContent":["import { Button } from \"../../../../../ui/button\";\nimport { Badge } from \"../../../../../ui/badge\";\nimport type { StoreProduct } from \"../../../../../generated/global-types\";\nimport {\n X,\n Star,\n Download,\n Eye,\n Sparkles,\n ExternalLink,\n Calendar,\n User,\n Tag,\n} from \"lucide-react\";\n\nexport interface TemplateDetailPanelProps {\n template: StoreProduct;\n onClose: () => void;\n onUseTemplate: (template: StoreProduct) => void;\n}\n\nfunction formatNumber(count: number): string {\n if (count >= 1000000) {\n return `${(count / 1000000).toFixed(1)}M`;\n }\n if (count >= 1000) {\n return `${(count / 1000).toFixed(1)}k`;\n }\n return count.toString();\n}\n\nfunction formatDate(dateStr: string | null | undefined): string {\n if (!dateStr) return \"Unknown\";\n try {\n return new Date(dateStr).toLocaleDateString(\"en-US\", {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n });\n } catch {\n return \"Unknown\";\n }\n}\n\n/**\n * Side panel that slides in within the TemplatesModal when a template card is clicked.\n * Shows detailed information about the template before the user decides to import.\n */\nexport function TemplateDetailPanel({\n template,\n onClose,\n onUseTemplate,\n}: TemplateDetailPanelProps) {\n const previewImage = template.screenshots?.[0] || template.icon;\n const hasVideo = template.videoUrls && template.videoUrls.length > 0;\n\n return (\n <div className=\"w-full md:w-1/2 lg:w-2/5 border-l bg-background overflow-y-auto\">\n {/* Close Button */}\n <div className=\"sticky top-0 z-10 flex items-center justify-between px-4 py-3 bg-background border-b\">\n <h3 className=\"text-sm font-semibold truncate pr-4\">\n Template Details\n </h3>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n onClick={onClose}\n className=\"size-8 shrink-0\"\n >\n <X className=\"size-4\" />\n </Button>\n </div>\n\n <div className=\"p-4 space-y-5\">\n {/* Preview Image / Video */}\n <div className=\"relative aspect-video w-full rounded-lg overflow-hidden bg-gradient-to-br from-primary/5 to-primary/10\">\n {previewImage ? (\n <img\n src={previewImage}\n alt={template.name}\n className=\"w-full h-full object-cover\"\n />\n ) : (\n <div className=\"w-full h-full flex items-center justify-center\">\n <Sparkles className=\"size-16 text-primary/30\" />\n </div>\n )}\n\n {/* Pricing Badge */}\n <div className=\"absolute top-2 left-2\">\n {template.pricingModel === \"FREE\" ? (\n <Badge\n variant=\"secondary\"\n className=\"bg-green-500 text-white border-0\"\n >\n Free\n </Badge>\n ) : (\n <Badge\n variant=\"default\"\n className=\"bg-blue-500 text-white border-0\"\n >\n ${template.price?.toString() || \"0\"}\n </Badge>\n )}\n </div>\n\n {template.featured && (\n <div className=\"absolute top-2 right-2\">\n <Badge\n variant=\"default\"\n className=\"bg-gradient-to-r from-yellow-500 to-orange-500 text-white border-0 shadow-lg\"\n >\n <Star className=\"size-3 mr-1 fill-white\" />\n Featured\n </Badge>\n </div>\n )}\n </div>\n\n {/* Title & Description */}\n <div>\n <h2 className=\"text-lg font-bold\">{template.name}</h2>\n <p className=\"text-sm text-muted-foreground mt-1.5 leading-relaxed\">\n {template.longDescription ||\n template.description ||\n \"No description available\"}\n </p>\n </div>\n\n {/* Stats Row */}\n <div className=\"flex items-center gap-4 text-sm text-muted-foreground\">\n {template.rating && (\n <div className=\"flex items-center gap-1\">\n <Star className=\"size-4 fill-yellow-400 text-yellow-400\" />\n <span className=\"font-medium text-foreground\">\n {template.rating.toFixed(1)}\n </span>\n <span>({template.reviewCount || 0})</span>\n </div>\n )}\n <div className=\"flex items-center gap-1\">\n <Download className=\"size-4\" />\n <span>{formatNumber(template.downloads || 0)}</span>\n </div>\n <div className=\"flex items-center gap-1\">\n <Eye className=\"size-4\" />\n <span>{formatNumber(template.viewCount || 0)}</span>\n </div>\n </div>\n\n {/* Author */}\n <div className=\"flex items-center gap-2 text-sm\">\n <User className=\"size-4 text-muted-foreground\" />\n <span className=\"font-medium\">\n {template.authorName || template.publisher?.name || \"Unknown\"}\n </span>\n {template.publisher?.isVerified && (\n <Badge variant=\"secondary\" className=\"text-xs px-1.5 py-0\">\n Verified\n </Badge>\n )}\n </div>\n\n {/* Published Date */}\n {template.publishedAt && (\n <div className=\"flex items-center gap-2 text-sm text-muted-foreground\">\n <Calendar className=\"size-4\" />\n <span>Published {formatDate(template.publishedAt)}</span>\n </div>\n )}\n\n {/* Category & Tags */}\n {(template.category || (template.tags && template.tags.length > 0)) && (\n <div className=\"space-y-2\">\n <div className=\"flex items-center gap-2 text-sm text-muted-foreground\">\n <Tag className=\"size-4\" />\n <span>Category & Tags</span>\n </div>\n <div className=\"flex flex-wrap gap-1.5\">\n {template.category && (\n <Badge variant=\"default\" className=\"text-xs\">\n {template.category}\n </Badge>\n )}\n {template.tags?.map((tag) => (\n <Badge key={tag} variant=\"outline\" className=\"text-xs\">\n {tag}\n </Badge>\n ))}\n </div>\n </div>\n )}\n\n {/* Compatible Products */}\n {template.compatibleProducts &&\n template.compatibleProducts.length > 0 && (\n <div className=\"text-xs text-muted-foreground\">\n <span>Compatible with: </span>\n <span className=\"font-medium\">\n {template.compatibleProducts.join(\", \")}\n </span>\n </div>\n )}\n\n {/* Additional Screenshots */}\n {template.screenshots && template.screenshots.length > 1 && (\n <div className=\"space-y-2\">\n <h4 className=\"text-sm font-semibold\">Screenshots</h4>\n <div className=\"grid grid-cols-2 gap-2\">\n {template.screenshots.slice(1, 5).map((screenshot, i) => (\n <img\n key={i}\n src={screenshot}\n alt={`${template.name} screenshot ${i + 2}`}\n className=\"w-full h-auto rounded-md border\"\n />\n ))}\n </div>\n </div>\n )}\n\n {/* Action Buttons */}\n <div className=\"pt-2 space-y-2\">\n <Button className=\"w-full\" onClick={() => onUseTemplate(template)}>\n <Sparkles className=\"size-4 mr-2\" />\n Use This Template\n </Button>\n {template.publisher?.websiteUrl && (\n <Button variant=\"outline\" className=\"w-full\" asChild>\n <a\n href={template.publisher.websiteUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <ExternalLink className=\"size-4 mr-2\" />\n View Publisher\n </a>\n </Button>\n )}\n </div>\n </div>\n </div>\n );\n}\n"]}
@@ -0,0 +1,16 @@
1
+ export { WorkflowBuilder } from './chunk-JVARXRIW.js';
2
+ import './chunk-MRVS73S2.js';
3
+ import './chunk-DBOMRIP5.js';
4
+ import './chunk-S2Z7ZTGV.js';
5
+ import './chunk-BQXHJIER.js';
6
+ import './chunk-PNOA7CQV.js';
7
+ import './chunk-OHIRHNRJ.js';
8
+ import './chunk-KU64CCSV.js';
9
+ import './chunk-UIY2HBWA.js';
10
+ import './chunk-3ZYUGTIT.js';
11
+ import './chunk-4NTHFDKQ.js';
12
+ import './chunk-5BDQNSP3.js';
13
+ import './chunk-WWU2O2SR.js';
14
+ import './chunk-XQP33UJR.js';
15
+ //# sourceMappingURL=WorkflowBuilder-COJQ2YBJ.js.map
16
+ //# sourceMappingURL=WorkflowBuilder-COJQ2YBJ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"WorkflowBuilder-2VTEBTJ6.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"WorkflowBuilder-COJQ2YBJ.js"}
@@ -0,0 +1,10 @@
1
+ export { WorkflowsList } from './chunk-ZPBFAT6K.js';
2
+ import './chunk-OHIRHNRJ.js';
3
+ import './chunk-KU64CCSV.js';
4
+ import './chunk-UIY2HBWA.js';
5
+ import './chunk-3ZYUGTIT.js';
6
+ import './chunk-4NTHFDKQ.js';
7
+ import './chunk-5BDQNSP3.js';
8
+ import './chunk-WWU2O2SR.js';
9
+ //# sourceMappingURL=WorkflowsList-AY6ZANWN.js.map
10
+ //# sourceMappingURL=WorkflowsList-AY6ZANWN.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"WorkflowsList-4RBTKPUJ.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"WorkflowsList-AY6ZANWN.js"}
@@ -1,9 +1,11 @@
1
- export { AVAILABLE_NODES, NODES, NODES_METADATA, NODE_CONFIGS, NODE_TYPES, ensureNodeConfigsLoaded, fetchNodeManifest, isNodeConfigsInitialized, onNodeTypesUpdate, refetchStoreNodes, registerWorkflowNodeTypes } from './chunk-DKEETQVV.js';
1
+ export { AVAILABLE_NODES, NODES, NODES_METADATA, NODE_CONFIGS, NODE_TYPES, ensureNodeConfigsLoaded, fetchNodeManifest, isNodeConfigsInitialized, onNodeTypesUpdate, refetchStoreNodes, registerWorkflowNodeTypes } from './chunk-S2Z7ZTGV.js';
2
2
  import './chunk-BQXHJIER.js';
3
- import './chunk-UYPB5TWQ.js';
3
+ import './chunk-PNOA7CQV.js';
4
4
  import './chunk-KU64CCSV.js';
5
+ import './chunk-UIY2HBWA.js';
6
+ import './chunk-3ZYUGTIT.js';
5
7
  import './chunk-4NTHFDKQ.js';
6
8
  import './chunk-5BDQNSP3.js';
7
9
  import './chunk-WWU2O2SR.js';
8
- //# sourceMappingURL=blocks-XUSH3L5M.js.map
9
- //# sourceMappingURL=blocks-XUSH3L5M.js.map
10
+ //# sourceMappingURL=blocks-J3YIE73T.js.map
11
+ //# sourceMappingURL=blocks-J3YIE73T.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"blocks-XUSH3L5M.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"blocks-J3YIE73T.js"}
@@ -0,0 +1,10 @@
1
+ import { clsx } from 'clsx';
2
+ import { twMerge } from 'tailwind-merge';
3
+
4
+ function cn(...inputs) {
5
+ return twMerge(clsx(inputs));
6
+ }
7
+
8
+ export { cn };
9
+ //# sourceMappingURL=chunk-3ZYUGTIT.js.map
10
+ //# sourceMappingURL=chunk-3ZYUGTIT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/cn.ts"],"names":[],"mappings":";;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B","file":"chunk-3ZYUGTIT.js","sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"]}
@@ -1,4 +1,5 @@
1
- import { useExecution, useExecutionLogs, useExecutionActions, useAutoRefresh, ExecutionStatusBadge, NodeTimeline } from './chunk-6MZFOWEO.js';
1
+ import { useExecution, useExecutionLogs, useExecutionActions, useAutoRefresh, ExecutionStatusBadge, NodeTimeline } from './chunk-EQVBECAC.js';
2
+ import { useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS } from './chunk-UIY2HBWA.js';
2
3
  import { useState, useCallback } from 'react';
3
4
  import { useParams, useNavigate, Link } from 'react-router-dom';
4
5
  import { Icon } from '@iconify/react';
@@ -12,6 +13,9 @@ function ExecutionDetailPage() {
12
13
  const [activeTab, setActiveTab] = useState("timeline");
13
14
  const [autoRefreshEnabled, setAutoRefreshEnabled] = useState(true);
14
15
  const [showTerminateDialog, setShowTerminateDialog] = useState(false);
16
+ const { allowed: canControlRuns } = useFluidGridsPermission(
17
+ FLUIDGRIDS_PERMISSIONS.WORKFLOW_RUN_EXECUTE
18
+ );
15
19
  const { execution, loading, error, refetch } = useExecution(runId);
16
20
  const {
17
21
  logs,
@@ -220,7 +224,7 @@ function ExecutionDetailPage() {
220
224
  ),
221
225
  "Auto-refresh"
222
226
  ] }),
223
- execution.status === "RUNNING" && /* @__PURE__ */ jsxs(Fragment, { children: [
227
+ canControlRuns && execution.status === "RUNNING" && /* @__PURE__ */ jsxs(Fragment, { children: [
224
228
  /* @__PURE__ */ jsxs(
225
229
  Button,
226
230
  {
@@ -249,7 +253,7 @@ function ExecutionDetailPage() {
249
253
  }
250
254
  )
251
255
  ] }),
252
- execution.status === "WAITING" && /* @__PURE__ */ jsxs(Fragment, { children: [
256
+ canControlRuns && execution.status === "WAITING" && /* @__PURE__ */ jsxs(Fragment, { children: [
253
257
  /* @__PURE__ */ jsxs(
254
258
  Button,
255
259
  {
@@ -278,7 +282,7 @@ function ExecutionDetailPage() {
278
282
  }
279
283
  )
280
284
  ] }),
281
- execution.status === "PENDING" && /* @__PURE__ */ jsxs(
285
+ canControlRuns && execution.status === "PENDING" && /* @__PURE__ */ jsxs(
282
286
  Button,
283
287
  {
284
288
  variant: "outline",
@@ -291,7 +295,7 @@ function ExecutionDetailPage() {
291
295
  ]
292
296
  }
293
297
  ),
294
- (execution.status === "RUNNING" || execution.status === "WAITING") && /* @__PURE__ */ jsxs(
298
+ canControlRuns && (execution.status === "RUNNING" || execution.status === "WAITING") && /* @__PURE__ */ jsxs(
295
299
  Button,
296
300
  {
297
301
  variant: "outline",
@@ -380,7 +384,7 @@ function ExecutionDetailPage() {
380
384
  NodeTimeline,
381
385
  {
382
386
  nodeStates: execution.nodeStates ?? [],
383
- onRetryNode: handleRetryNode,
387
+ onRetryNode: canControlRuns ? handleRetryNode : void 0,
384
388
  onViewChildRun: handleViewChildRun
385
389
  }
386
390
  ) }),
@@ -520,5 +524,5 @@ function ExecutionDetailPage() {
520
524
  }
521
525
 
522
526
  export { ExecutionDetailPage };
523
- //# sourceMappingURL=chunk-WTKD76BY.js.map
524
- //# sourceMappingURL=chunk-WTKD76BY.js.map
527
+ //# sourceMappingURL=chunk-52EJMXGS.js.map
528
+ //# sourceMappingURL=chunk-52EJMXGS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/modules/executions/pages/ExecutionDetailPage.tsx"],"names":[],"mappings":"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","file":"chunk-52EJMXGS.js","sourcesContent":["import { useState, useCallback } from \"react\";\nimport { useParams, Link, useNavigate } from \"react-router-dom\";\nimport { Icon } from \"@iconify/react\";\nimport { Button } from \"@burdenoff/fe-libs/button\";\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from \"@burdenoff/fe-libs/ui\";\nimport { ExecutionStatusBadge, NodeTimeline } from \"../components\";\nimport {\n useExecution,\n useExecutionLogs,\n useExecutionActions,\n useAutoRefresh,\n} from \"../hooks/useExecutions\";\nimport { useFluidGridsPermission } from \"../../../permissions/PermissionsBridge\";\nimport { FLUIDGRIDS_PERMISSIONS } from \"../../../permissions/constants\";\n\ntype DetailTab = \"timeline\" | \"logs\" | \"input\" | \"context\";\n\nexport function ExecutionDetailPage() {\n const { runId } = useParams<{ runId: string }>();\n const navigate = useNavigate();\n\n const [activeTab, setActiveTab] = useState<DetailTab>(\"timeline\");\n const [autoRefreshEnabled, setAutoRefreshEnabled] = useState(true);\n const [showTerminateDialog, setShowTerminateDialog] = useState(false);\n const { allowed: canControlRuns } = useFluidGridsPermission(\n FLUIDGRIDS_PERMISSIONS.WORKFLOW_RUN_EXECUTE,\n );\n\n // Data fetching\n const { execution, loading, error, refetch } = useExecution(runId);\n const {\n logs,\n loading: logsLoading,\n refetch: refetchLogs,\n } = useExecutionLogs(runId, 100);\n const {\n pauseExecution,\n resumeExecution,\n cancelExecution,\n retryNode,\n terminateExecution,\n loading: actionLoading,\n } = useExecutionActions();\n\n // Auto-refresh for running executions\n const isActive =\n execution?.status === \"RUNNING\" ||\n execution?.status === \"PENDING\" ||\n execution?.status === \"WAITING\";\n\n useAutoRefresh(\n useCallback(() => {\n refetch();\n if (activeTab === \"logs\") {\n refetchLogs();\n }\n }, [refetch, refetchLogs, activeTab]),\n autoRefreshEnabled && isActive,\n 2000,\n );\n\n // Handlers\n const handlePause = async () => {\n if (!runId) return;\n await pauseExecution(runId);\n refetch();\n };\n\n const handleResume = async () => {\n if (!runId) return;\n await resumeExecution(runId);\n refetch();\n };\n\n const handleCancel = async () => {\n if (!runId) return;\n await cancelExecution(runId);\n refetch();\n };\n\n const handleTerminate = async () => {\n if (!runId) return;\n await terminateExecution(runId, \"User terminated\");\n setShowTerminateDialog(false);\n refetch();\n };\n\n const handleRetryNode = async (nodeId: string) => {\n if (!runId) return;\n await retryNode(runId, nodeId);\n refetch();\n };\n\n const handleViewChildRun = useCallback(\n (childRunId: string) => {\n navigate(`../runs/${childRunId}`);\n },\n [navigate],\n );\n\n // Formatting helpers\n const formatDuration = (ms?: number): string => {\n if (!ms) return \"-\";\n if (ms < 1000) return `${ms}ms`;\n if (ms < 60000) return `${(ms / 1000).toFixed(1)}s`;\n if (ms < 3600000)\n return `${Math.round(ms / 60000)}m ${Math.round((ms % 60000) / 1000)}s`;\n return `${Math.round(ms / 3600000)}h ${Math.round((ms % 3600000) / 60000)}m`;\n };\n\n const formatDateTime = (dateStr?: string): string => {\n if (!dateStr) return \"-\";\n const date = new Date(dateStr);\n return date.toLocaleString(\"en-US\", {\n month: \"short\",\n day: \"numeric\",\n year: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n });\n };\n\n // Loading state\n if (loading && !execution) {\n return (\n <div className=\"p-4 sm:p-6 bg-background-primary min-h-screen\">\n <div className=\"animate-pulse\">\n <div className=\"h-8 w-48 bg-background-tertiary rounded mb-4\" />\n <div className=\"h-4 w-32 bg-background-tertiary rounded mb-8\" />\n <div className=\"grid grid-cols-2 sm:grid-cols-4 gap-4 mb-6\">\n {[...Array(4)].map((_, i) => (\n <div key={i} className=\"h-24 bg-background-tertiary rounded-lg\" />\n ))}\n </div>\n <div className=\"h-96 bg-background-tertiary rounded-lg\" />\n </div>\n </div>\n );\n }\n\n // Error state\n if (error) {\n return (\n <div className=\"p-4 sm:p-6 bg-background-primary min-h-screen\">\n <Link\n to=\"../runs\"\n className=\"text-action-primary-text hover:underline text-sm mb-4 inline-block\"\n >\n ← Back to Executions\n </Link>\n <div className=\"bg-[var(--color-status-error-bg-subtle)] border border-[var(--color-status-error-border)] rounded-lg p-6 text-center\">\n <Icon\n icon=\"mdi:alert-circle\"\n className=\"mx-auto text-[var(--color-status-error-text)] mb-4\"\n width={48}\n />\n <h2 className=\"text-lg font-medium text-[var(--color-status-error-text)] mb-2\">\n Failed to load execution\n </h2>\n <p className=\"text-[var(--color-status-error-text)] mb-4\">\n {error.message}\n </p>\n <Button variant=\"outline\" onClick={refetch}>\n Try Again\n </Button>\n </div>\n </div>\n );\n }\n\n // Not found state\n if (!execution) {\n return (\n <div className=\"p-4 sm:p-6 bg-background-primary min-h-screen\">\n <Link\n to=\"../runs\"\n className=\"text-action-primary-text hover:underline text-sm mb-4 inline-block\"\n >\n ← Back to Executions\n </Link>\n <div className=\"bg-background-secondary border border-border-secondary rounded-lg p-6 text-center\">\n <Icon\n icon=\"mdi:file-find-outline\"\n className=\"mx-auto text-text-secondary mb-4\"\n width={48}\n />\n <h2 className=\"text-lg font-medium text-text-primary mb-2\">\n Execution not found\n </h2>\n <p className=\"text-text-secondary\">\n The execution with ID &quot;{runId}&quot; could not be found.\n </p>\n </div>\n </div>\n );\n }\n\n const tabs: Array<{ id: DetailTab; label: string; icon: string }> = [\n { id: \"timeline\", label: \"Timeline\", icon: \"mdi:timeline\" },\n { id: \"logs\", label: \"Logs\", icon: \"mdi:text-box-outline\" },\n { id: \"input\", label: \"Input Data\", icon: \"mdi:code-json\" },\n { id: \"context\", label: \"Context\", icon: \"mdi:information-outline\" },\n ];\n\n return (\n <div className=\"p-4 sm:p-6 bg-background-primary min-h-screen\">\n {/* Back link */}\n <Link\n to=\"../runs\"\n className=\"text-action-primary-text hover:underline text-sm mb-4 inline-block\"\n >\n ← Back to Executions\n </Link>\n\n {/* Sub-workflow parent breadcrumb */}\n {execution.parentRunId && (\n <div className=\"flex items-center gap-2 mb-3 text-sm\">\n <Icon icon=\"mdi:sitemap\" className=\"text-indigo-500\" width={16} />\n <span className=\"text-text-secondary\">Sub-workflow of</span>\n <Link\n to={`../runs/${execution.parentRunId}`}\n className=\"text-indigo-600 hover:underline font-medium\"\n >\n Parent Run {execution.parentRunId.slice(0, 12)}...\n </Link>\n </div>\n )}\n\n {/* Header */}\n <div className=\"flex flex-col lg:flex-row lg:items-start lg:justify-between gap-4 mb-6\">\n <div>\n <div className=\"flex items-center gap-3 mb-2\">\n <h1 className=\"text-2xl sm:text-3xl font-bold text-text-primary\">\n {execution.workflow?.name || execution.workflowKey}\n </h1>\n <ExecutionStatusBadge status={execution.status} size=\"lg\" />\n {execution.parentRunId && (\n <span className=\"px-2 py-0.5 text-xs bg-indigo-100 text-indigo-700 rounded\">\n Sub-Workflow\n </span>\n )}\n </div>\n <div className=\"flex flex-wrap items-center gap-4 text-sm text-text-secondary\">\n <span className=\"flex items-center gap-1\">\n <Icon icon=\"mdi:identifier\" width={16} />\n <code className=\"font-mono\">{execution.id.slice(0, 12)}...</code>\n </span>\n <span className=\"flex items-center gap-1\">\n <Icon icon=\"mdi:tag-outline\" width={16} />v{execution.version}\n </span>\n <span className=\"flex items-center gap-1\">\n <Icon icon=\"mdi:clock-outline\" width={16} />\n {formatDateTime(execution.startedAt || execution.createdAt)}\n </span>\n </div>\n </div>\n\n {/* Actions */}\n <div className=\"flex flex-wrap items-center gap-2\">\n {/* Auto-refresh toggle */}\n {isActive && (\n <label className=\"flex items-center gap-2 text-sm text-text-secondary mr-4\">\n <input\n type=\"checkbox\"\n checked={autoRefreshEnabled}\n onChange={(e) => setAutoRefreshEnabled(e.target.checked)}\n className=\"w-4 h-4 rounded\"\n />\n Auto-refresh\n </label>\n )}\n\n {/* Control buttons based on status */}\n {canControlRuns && execution.status === \"RUNNING\" && (\n <>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={handlePause}\n disabled={actionLoading}\n >\n <Icon icon=\"mdi:pause\" className=\"mr-1\" width={16} />\n Pause\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={handleCancel}\n disabled={actionLoading}\n className=\"border-[var(--color-status-warning-border)] text-[var(--color-status-warning-text)] hover:bg-[var(--color-status-warning-bg-subtle)]\"\n >\n <Icon icon=\"mdi:stop\" className=\"mr-1\" width={16} />\n Cancel\n </Button>\n </>\n )}\n\n {canControlRuns && execution.status === \"WAITING\" && (\n <>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={handleResume}\n disabled={actionLoading}\n >\n <Icon icon=\"mdi:play\" className=\"mr-1\" width={16} />\n Resume\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={handleCancel}\n disabled={actionLoading}\n className=\"border-[var(--color-status-warning-border)] text-[var(--color-status-warning-text)] hover:bg-[var(--color-status-warning-bg-subtle)]\"\n >\n <Icon icon=\"mdi:stop\" className=\"mr-1\" width={16} />\n Cancel\n </Button>\n </>\n )}\n\n {canControlRuns && execution.status === \"PENDING\" && (\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={handleCancel}\n disabled={actionLoading}\n >\n <Icon icon=\"mdi:stop\" className=\"mr-1\" width={16} />\n Cancel\n </Button>\n )}\n\n {canControlRuns &&\n (execution.status === \"RUNNING\" ||\n execution.status === \"WAITING\") && (\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => setShowTerminateDialog(true)}\n disabled={actionLoading}\n className=\"border-[var(--color-status-error-border)] text-[var(--color-status-error-text)] hover:bg-[var(--color-status-error-bg-subtle)]\"\n >\n <Icon icon=\"mdi:close-octagon\" className=\"mr-1\" width={16} />\n Terminate\n </Button>\n )}\n\n <Button variant=\"outline\" size=\"sm\" onClick={refetch}>\n <Icon icon=\"mdi:refresh\" className=\"mr-1\" width={16} />\n Refresh\n </Button>\n </div>\n </div>\n\n {/* Stats Grid */}\n <div className=\"grid grid-cols-2 sm:grid-cols-4 gap-4 mb-6\">\n <div className=\"bg-background-secondary rounded-lg border border-border-secondary p-4\">\n <div className=\"text-sm text-text-secondary\">Duration</div>\n <div className=\"text-xl font-bold text-text-primary mt-1\">\n {formatDuration(execution.duration)}\n </div>\n </div>\n <div className=\"bg-background-secondary rounded-lg border border-border-secondary p-4\">\n <div className=\"text-sm text-text-secondary\">Progress</div>\n <div className=\"flex items-center gap-2 mt-1\">\n <div className=\"flex-1 h-2 bg-background-tertiary rounded-full overflow-hidden\">\n <div\n className={`h-full ${\n execution.status === \"FAILED\"\n ? \"bg-[var(--color-status-error-bg)]\"\n : execution.status === \"COMPLETED\"\n ? \"bg-[var(--color-status-success-bg)]\"\n : \"bg-[var(--color-status-info-bg)]\"\n }`}\n style={{ width: `${execution.progress}%` }}\n />\n </div>\n <span className=\"text-xl font-bold text-text-primary\">\n {Math.round(execution.progress)}%\n </span>\n </div>\n </div>\n <div className=\"bg-background-secondary rounded-lg border border-border-secondary p-4\">\n <div className=\"text-sm text-text-secondary\">Nodes</div>\n <div className=\"flex items-center gap-2 mt-1\">\n <span className=\"text-xl font-bold text-[var(--color-status-success-text)]\">\n {execution.completedNodes ?? 0}\n </span>\n <span className=\"text-text-secondary\">/</span>\n <span className=\"text-xl font-bold text-text-primary\">\n {execution.totalNodes ?? 0}\n </span>\n {(execution.failedNodes ?? 0) > 0 && (\n <span className=\"text-sm text-[var(--color-status-error-text)] ml-2\">\n ({execution.failedNodes} failed)\n </span>\n )}\n </div>\n </div>\n <div className=\"bg-background-secondary rounded-lg border border-border-secondary p-4\">\n <div className=\"text-sm text-text-secondary\">Trigger</div>\n <div className=\"text-lg font-medium text-text-primary mt-1 truncate\">\n {execution.triggerNodeId}\n </div>\n </div>\n </div>\n\n {/* Error Banner */}\n {execution.errorMessage && (\n <div className=\"mb-6 p-4 bg-[var(--color-status-error-bg-subtle)] border border-[var(--color-status-error-border)] rounded-lg\">\n <div className=\"flex items-center gap-2 text-[var(--color-status-error-text)] mb-2\">\n <Icon icon=\"mdi:alert-circle\" width={20} />\n <span className=\"font-medium\">\n Error{execution.errorType ? ` (${execution.errorType})` : \"\"}\n </span>\n </div>\n <p className=\"text-[var(--color-status-error-text)]\">\n {execution.errorMessage}\n </p>\n </div>\n )}\n\n {/* Tabs */}\n <div className=\"border-b border-border-secondary mb-6\">\n <nav className=\"flex gap-4 -mb-px\">\n {tabs.map((tab) => (\n <button\n key={tab.id}\n onClick={() => setActiveTab(tab.id)}\n className={`\n flex items-center gap-2 px-4 py-3 border-b-2 text-sm font-medium transition-colors\n ${\n activeTab === tab.id\n ? \"border-action-primary-bg text-action-primary-text\"\n : \"border-transparent text-text-secondary hover:text-text-primary hover:border-border-primary\"\n }\n `}\n >\n <Icon icon={tab.icon} width={18} />\n {tab.label}\n </button>\n ))}\n </nav>\n </div>\n\n {/* Tab Content */}\n <div className=\"bg-background-secondary rounded-lg border border-border-secondary\">\n {activeTab === \"timeline\" && (\n <div className=\"p-4 sm:p-6\">\n <NodeTimeline\n nodeStates={execution.nodeStates ?? []}\n onRetryNode={canControlRuns ? handleRetryNode : undefined}\n onViewChildRun={handleViewChildRun}\n />\n </div>\n )}\n\n {activeTab === \"logs\" && (\n <div className=\"p-4 sm:p-6\">\n {logsLoading && logs.length === 0 ? (\n <div className=\"space-y-2\">\n {[...Array(5)].map((_, i) => (\n <div\n key={i}\n className=\"h-8 bg-background-tertiary rounded animate-pulse\"\n />\n ))}\n </div>\n ) : logs.length === 0 ? (\n <div className=\"text-center py-8 text-text-secondary\">\n <Icon\n icon=\"mdi:text-box-outline\"\n className=\"mx-auto mb-2\"\n width={32}\n />\n <p>No logs available</p>\n </div>\n ) : (\n <div className=\"space-y-1 font-mono text-sm max-h-[600px] overflow-auto\">\n {logs.map((log) => (\n <div\n key={log.id}\n className={`\n flex items-start gap-3 px-3 py-1.5 rounded\n ${\n log.level === \"ERROR\"\n ? \"bg-[var(--color-status-error-bg-subtle)] text-[var(--color-status-error-text)]\"\n : log.level === \"WARN\"\n ? \"bg-[var(--color-status-warning-bg-subtle)] text-[var(--color-status-warning-text)]\"\n : \"text-text-primary hover:bg-background-tertiary\"\n }\n `}\n >\n <span className=\"text-text-secondary text-xs whitespace-nowrap\">\n {new Date(log.timestamp).toLocaleTimeString()}\n </span>\n <span\n className={`\n text-xs px-1.5 py-0.5 rounded uppercase font-medium\n ${\n log.level === \"ERROR\"\n ? \"bg-[var(--color-status-error-bg)] text-[var(--color-status-error-text)]\"\n : log.level === \"WARN\"\n ? \"bg-[var(--color-status-warning-bg)] text-[var(--color-status-warning-text)]\"\n : log.level === \"INFO\"\n ? \"bg-[var(--color-status-info-bg)] text-[var(--color-status-info-text)]\"\n : \"bg-muted text-tertiary\"\n }\n `}\n >\n {log.level}\n </span>\n {log.nodeId && (\n <span className=\"text-xs text-text-secondary\">\n [{log.nodeId}]\n </span>\n )}\n <span className=\"flex-1\">{log.message}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n )}\n\n {activeTab === \"input\" && (\n <div className=\"p-4 sm:p-6\">\n <h3 className=\"text-lg font-medium text-text-primary mb-4\">\n Trigger Data\n </h3>\n <div className=\"bg-background-primary rounded p-4 max-h-[400px] overflow-auto\">\n <pre className=\"text-sm text-text-primary font-mono whitespace-pre-wrap break-words\">\n {JSON.stringify(execution.triggerData ?? null, null, 2)}\n </pre>\n </div>\n </div>\n )}\n\n {activeTab === \"context\" && (\n <div className=\"p-4 sm:p-6\">\n <div className=\"grid grid-cols-1 lg:grid-cols-2 gap-6\">\n <div>\n <h3 className=\"text-lg font-medium text-text-primary mb-4\">\n Execution Context\n </h3>\n <div className=\"bg-background-primary rounded p-4 max-h-[300px] overflow-auto\">\n <pre className=\"text-sm text-text-primary font-mono whitespace-pre-wrap break-words\">\n {JSON.stringify(execution.context ?? null, null, 2)}\n </pre>\n </div>\n </div>\n <div>\n <h3 className=\"text-lg font-medium text-text-primary mb-4\">\n Execution Details\n </h3>\n <div className=\"space-y-3\">\n <div className=\"flex justify-between py-2 border-b border-border-secondary\">\n <span className=\"text-text-secondary\">Run ID</span>\n <code className=\"font-mono text-text-primary\">\n {execution.id}\n </code>\n </div>\n <div className=\"flex justify-between py-2 border-b border-border-secondary\">\n <span className=\"text-text-secondary\">Workflow ID</span>\n <code className=\"font-mono text-text-primary\">\n {execution.workflowId}\n </code>\n </div>\n <div className=\"flex justify-between py-2 border-b border-border-secondary\">\n <span className=\"text-text-secondary\">Workflow Key</span>\n <span className=\"text-text-primary\">\n {execution.workflowKey}\n </span>\n </div>\n <div className=\"flex justify-between py-2 border-b border-border-secondary\">\n <span className=\"text-text-secondary\">Version</span>\n <span className=\"text-text-primary\">\n {execution.version}\n </span>\n </div>\n {execution.triggeredById && (\n <div className=\"flex justify-between py-2 border-b border-border-secondary\">\n <span className=\"text-text-secondary\">Triggered By</span>\n <span className=\"text-text-primary\">\n {execution.triggeredById}\n </span>\n </div>\n )}\n {execution.parentRunId && (\n <div className=\"flex justify-between py-2 border-b border-border-secondary\">\n <span className=\"text-text-secondary\">Parent Run</span>\n <Link\n to={`/runs/${execution.parentRunId}`}\n className=\"text-action-primary-text hover:underline font-mono\"\n >\n {execution.parentRunId.slice(0, 12)}...\n </Link>\n </div>\n )}\n <div className=\"flex justify-between py-2 border-b border-border-secondary\">\n <span className=\"text-text-secondary\">Created</span>\n <span className=\"text-text-primary\">\n {formatDateTime(execution.createdAt)}\n </span>\n </div>\n <div className=\"flex justify-between py-2 border-b border-border-secondary\">\n <span className=\"text-text-secondary\">Started</span>\n <span className=\"text-text-primary\">\n {formatDateTime(execution.startedAt)}\n </span>\n </div>\n {execution.completedAt && (\n <div className=\"flex justify-between py-2 border-b border-border-secondary\">\n <span className=\"text-text-secondary\">Completed</span>\n <span className=\"text-text-primary\">\n {formatDateTime(execution.completedAt)}\n </span>\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n )}\n </div>\n\n <AlertDialog\n open={showTerminateDialog}\n onOpenChange={setShowTerminateDialog}\n >\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>Terminate Execution</AlertDialogTitle>\n <AlertDialogDescription>\n Are you sure you want to force terminate this execution? This will\n immediately stop the running workflow and cannot be resumed.\n </AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel disabled={actionLoading}>\n Cancel\n </AlertDialogCancel>\n <AlertDialogAction\n onClick={handleTerminate}\n disabled={actionLoading}\n className=\"bg-destructive text-destructive-foreground hover:bg-destructive/90\"\n >\n {actionLoading ? \"Terminating...\" : \"Terminate\"}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n </div>\n );\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-Z54K22LP.js';
1
+ import { cn } from './chunk-3ZYUGTIT.js';
2
2
  import * as React from 'react';
3
3
  import * as LabelPrimitive from '@radix-ui/react-label';
4
4
  import { cva } from 'class-variance-authority';
@@ -18,5 +18,5 @@ var Label = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ j
18
18
  Label.displayName = LabelPrimitive.Root.displayName;
19
19
 
20
20
  export { Label };
21
- //# sourceMappingURL=chunk-G7B4SYFM.js.map
22
- //# sourceMappingURL=chunk-G7B4SYFM.js.map
21
+ //# sourceMappingURL=chunk-6QCBKN3P.js.map
22
+ //# sourceMappingURL=chunk-6QCBKN3P.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ui/label.tsx"],"names":[],"mappings":";;;;;;AAKA,IAAM,aAAA,GAAgB,GAAA;AAAA,EACpB;AACF,CAAA;AAEA,IAAM,KAAA,GAAc,iBAIlB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1B,GAAA;AAAA,EAAgB,cAAA,CAAA,IAAA;AAAA,EAAf;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,aAAA,EAAc,EAAG,SAAS,CAAA;AAAA,IACvC,GAAG;AAAA;AACN,CACD;AACD,KAAA,CAAM,cAA6B,cAAA,CAAA,IAAA,CAAK,WAAA","file":"chunk-G7B4SYFM.js","sourcesContent":["import * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../utils/cn\";\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n);\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n"]}
1
+ {"version":3,"sources":["../src/ui/label.tsx"],"names":[],"mappings":";;;;;;AAKA,IAAM,aAAA,GAAgB,GAAA;AAAA,EACpB;AACF,CAAA;AAEA,IAAM,KAAA,GAAc,iBAIlB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1B,GAAA;AAAA,EAAgB,cAAA,CAAA,IAAA;AAAA,EAAf;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,aAAA,EAAc,EAAG,SAAS,CAAA;AAAA,IACvC,GAAG;AAAA;AACN,CACD;AACD,KAAA,CAAM,cAA6B,cAAA,CAAA,IAAA,CAAK,WAAA","file":"chunk-6QCBKN3P.js","sourcesContent":["import * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../utils/cn\";\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n);\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n"]}
@@ -1,12 +1,8 @@
1
- import { clsx } from 'clsx';
2
- import { twMerge } from 'tailwind-merge';
1
+ import { cn } from './chunk-3ZYUGTIT.js';
3
2
  import { Slot } from '@radix-ui/react-slot';
4
3
  import { cva } from 'class-variance-authority';
5
4
  import { jsx } from 'react/jsx-runtime';
6
5
 
7
- function cn(...inputs) {
8
- return twMerge(clsx(inputs));
9
- }
10
6
  var buttonVariants = cva(
11
7
  'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*="size-"])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',
12
8
  {
@@ -77,6 +73,6 @@ function Badge({ className, variant, ...props }) {
77
73
  return /* @__PURE__ */ jsx("div", { className: cn(badgeVariants({ variant }), className), ...props });
78
74
  }
79
75
 
80
- export { Badge, Button, badgeVariants, buttonVariants, cn };
81
- //# sourceMappingURL=chunk-Z54K22LP.js.map
82
- //# sourceMappingURL=chunk-Z54K22LP.js.map
76
+ export { Badge, Button, badgeVariants, buttonVariants };
77
+ //# sourceMappingURL=chunk-DBOMRIP5.js.map
78
+ //# sourceMappingURL=chunk-DBOMRIP5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ui/button.tsx","../src/ui/badge.tsx"],"names":["cva","jsx"],"mappings":";;;;;AAKA,IAAM,cAAA,GAAiB,GAAA;AAAA,EACrB,sVAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,wDAAA;AAAA,QACT,WAAA,EAAa,mDAAA;AAAA,QACb,OAAA,EACE,6EAAA;AAAA,QACF,SAAA,EACE,8DAAA;AAAA,QACF,KAAA,EAAO,8CAAA;AAAA,QACP,IAAA,EAAM;AAAA,OACR;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,OAAA,EAAS,+BAAA;AAAA,QACT,EAAA,EAAI,qDAAA;AAAA,QACJ,EAAA,EAAI,+CAAA;AAAA,QACJ,EAAA,EAAI,sCAAA;AAAA,QACJ,IAAA,EAAM,QAAA;AAAA,QACN,SAAA,EAAW,QAAA;AAAA,QACX,SAAA,EAAW;AAAA;AACb,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAOA,SAAS,MAAA,CAAO;AAAA,EACd,SAAA;AAAA,EACA,OAAA,GAAU,SAAA;AAAA,EACV,IAAA,GAAO,SAAA;AAAA,EACP,OAAA,GAAU,KAAA;AAAA,EACV,GAAG;AACL,CAAA,EAAgB;AACd,EAAA,MAAM,IAAA,GAAO,UAAU,IAAA,GAAO,QAAA;AAC9B,EAAA,uBACE,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,QAAA;AAAA,MACV,cAAA,EAAc,OAAA;AAAA,MACd,WAAA,EAAW,IAAA;AAAA,MACX,SAAA,EAAW,GAAG,cAAA,CAAe,EAAE,SAAS,IAAA,EAAM,SAAA,EAAW,CAAC,CAAA;AAAA,MACzD,GAAG;AAAA;AAAA,GACN;AAEJ;ACtDA,IAAM,aAAA,GAAgBA,GAAAA;AAAA,EACpB,wKAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EACE,2EAAA;AAAA,QACF,SAAA,EACE,iFAAA;AAAA,QACF,WAAA,EACE,uFAAA;AAAA,QACF,OAAA,EAAS,iBAAA;AAAA,QACT,OAAA,EACE,sFAAA;AAAA,QACF,OAAA,EACE,0FAAA;AAAA,QACF,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AAKA,SAAS,MAAM,EAAE,SAAA,EAAW,OAAA,EAAS,GAAG,OAAM,EAAe;AAC3D,EAAA,uBACEC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,aAAA,CAAc,EAAE,OAAA,EAAS,CAAA,EAAG,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAE1E","file":"chunk-DBOMRIP5.js","sourcesContent":["import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../utils/cn\";\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*=\"size-\"])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive: \"bg-destructive text-white hover:bg-destructive/90\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n xs: \"h-7 rounded-md gap-1 px-2 text-xs has-[>svg]:px-1.5\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n \"icon-sm\": \"size-8\",\n \"icon-lg\": \"size-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nexport type ButtonProps = React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n };\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: ButtonProps) {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp\n data-slot=\"button\"\n data-variant={variant}\n data-size={size}\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport { type HTMLAttributes } from \"react\";\nimport { cn } from \"../utils/cn\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80\",\n outline: \"text-foreground\",\n success:\n \"border-transparent bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-100\",\n warning:\n \"border-transparent bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-100\",\n info: \"border-transparent bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-100\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nexport interface BadgeProps\n extends HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n );\n}\n\nexport { Badge, badgeVariants };\n"]}
@@ -1,4 +1,4 @@
1
- import { useExecutionsStore, useExecutionsWithStore, useExecutionStats, useExecutionActions, useAutoRefresh, ExecutionStats, ExecutionFilters, ExecutionTable, ExecutionCards, ExecutionTimeline, Pagination } from './chunk-6MZFOWEO.js';
1
+ import { useExecutionsStore, useExecutionsWithStore, useExecutionStats, useExecutionActions, useAutoRefresh, ExecutionStats, ExecutionFilters, ExecutionTable, ExecutionCards, ExecutionTimeline, Pagination } from './chunk-EQVBECAC.js';
2
2
  import { useWorkflowDefinitions } from './chunk-OHIRHNRJ.js';
3
3
  import { useRef, useCallback, useMemo } from 'react';
4
4
  import { useNavigate, useSearchParams } from 'react-router-dom';
@@ -268,5 +268,5 @@ function ExecutionsListPage() {
268
268
  }
269
269
 
270
270
  export { ExecutionsListPage };
271
- //# sourceMappingURL=chunk-JXH7PRTS.js.map
272
- //# sourceMappingURL=chunk-JXH7PRTS.js.map
271
+ //# sourceMappingURL=chunk-DVSO5MTE.js.map
272
+ //# sourceMappingURL=chunk-DVSO5MTE.js.map