@datatechsolutions/ui 2.11.78 → 2.11.79

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.
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import '../chunk-JB6RNAD2.mjs';
3
3
  export { topologicalSortAgents, validateGraphNodeConfigs, validateNodeConfig, validateWorkflowGraph } from '../chunk-53SRKVKQ.mjs';
4
- import { Workspace, useModalStore, CATEGORY_COLORS, CATEGORY_PILL_COLORS, ICON_MAP, WorkflowCanvas, getEntityIcon, getEntityGradient, useWorkflowStore, LOGIC_ICON_MAP, LOGIC_NODE_GRADIENTS, getFrameworkMeta, getCompatibleModels, isModelCompatibleWithFramework, FRAMEWORK_META, isFrameworkCompatibleWithProviders } from '../chunk-3VHSRL3N.mjs';
5
- export { AgentFlowNode, AgentToolFlowNode, AnswerFlowNode, AnthropicIcon, CodeFlowNode, CrewAIIcon, DocumentExtractorFlowNode, EndFlowNode, EntityFlowNode, FRAMEWORK_META, GoogleADKIcon, GroupFlowNode, HttpRequestFlowNode, IfElseFlowNode, IterationFlowNode, IterationStartFlowNode, KnowledgeBaseFlowNode, LOGIC_ICON_MAP, LOGIC_NODE_BADGE_COLORS, LOGIC_NODE_GRADIENTS, LOGIC_NODE_HANDLE_COLORS, LangChainIcon, ListOperatorFlowNode, LogicNodeModal, MINIMAP_NODE_COLORS, ModelProviderFlowNode, NODE_EXECUTION_ACCENT_COLORS, NodeCard, NodeContextMenu, NoteFlowNode, OpenAIIcon, PanelContextMenu, ParameterExtractorFlowNode, QuestionClassifierFlowNode, RuleFlowNode, SelectionContextMenu, StartFlowNode, StrandsIcon, TemplateTransformFlowNode, ToolFlowNode, VariableAggregatorFlowNode, VariableAssignerFlowNode, WorkflowBuilderProvider, Workspace, getCompatibleModels, getDefaultFrameworkForModel, getEntityBadgeColor, getEntityGradient, getEntityHandleColor, getEntityIcon, getEntityMinimapColor, getFrameworkMeta, getNodeExecutionAccent, getNodeExecutionAccentRgb, isModelCompatibleWithFramework, useModalStore, useWorkflowBuilderClient, useWorkflowBuilderClientOptional, useWorkflowStore } from '../chunk-3VHSRL3N.mjs';
4
+ import { Workspace, useModalStore, CATEGORY_COLORS, CATEGORY_PILL_COLORS, ICON_MAP, WorkflowCanvas, getEntityIcon, getEntityGradient, useWorkflowStore, LOGIC_ICON_MAP, LOGIC_NODE_GRADIENTS, getFrameworkMeta, getCompatibleModels, isModelCompatibleWithFramework, FRAMEWORK_META, isFrameworkCompatibleWithProviders } from '../chunk-J3OYJ44D.mjs';
5
+ export { AgentFlowNode, AgentToolFlowNode, AnswerFlowNode, AnthropicIcon, CodeFlowNode, CrewAIIcon, DocumentExtractorFlowNode, EndFlowNode, EntityFlowNode, FRAMEWORK_META, GoogleADKIcon, GroupFlowNode, HttpRequestFlowNode, IfElseFlowNode, IterationFlowNode, IterationStartFlowNode, KnowledgeBaseFlowNode, LOGIC_ICON_MAP, LOGIC_NODE_BADGE_COLORS, LOGIC_NODE_GRADIENTS, LOGIC_NODE_HANDLE_COLORS, LangChainIcon, ListOperatorFlowNode, LogicNodeModal, MINIMAP_NODE_COLORS, ModelProviderFlowNode, NODE_EXECUTION_ACCENT_COLORS, NodeCard, NodeContextMenu, NoteFlowNode, OpenAIIcon, PanelContextMenu, ParameterExtractorFlowNode, QuestionClassifierFlowNode, RuleFlowNode, SelectionContextMenu, StartFlowNode, StrandsIcon, TemplateTransformFlowNode, ToolFlowNode, VariableAggregatorFlowNode, VariableAssignerFlowNode, WorkflowBuilderProvider, Workspace, getCompatibleModels, getDefaultFrameworkForModel, getEntityBadgeColor, getEntityGradient, getEntityHandleColor, getEntityIcon, getEntityMinimapColor, getFrameworkMeta, getNodeExecutionAccent, getNodeExecutionAccentRgb, isModelCompatibleWithFramework, useModalStore, useWorkflowBuilderClient, useWorkflowBuilderClientOptional, useWorkflowStore } from '../chunk-J3OYJ44D.mjs';
6
6
  import { GlassModal, Button, FormInput, FormTextarea, FormSelect, FormGrid, Badge, ToggleSwitch, Input, DynamicIslandConfirm } from '../chunk-LLFU42KC.mjs';
7
7
  import { useTranslations } from '../chunk-7VJ7CMMT.mjs';
8
8
  import '../chunk-QWG2FMUN.mjs';
@@ -1396,20 +1396,47 @@ function PipelineSettingsModal({ onSave }) {
1396
1396
  const open = activeModal === "pipeline-settings";
1397
1397
  const [nameValue, setNameValue] = useState("");
1398
1398
  const [descriptionValue, setDescriptionValue] = useState("");
1399
+ const [slugValue, setSlugValue] = useState("");
1400
+ const [isDraft, setIsDraft] = useState(true);
1401
+ const [isActive, setIsActive] = useState(true);
1399
1402
  const [isSaving, setIsSaving] = useState(false);
1403
+ const lifecycleAvailable = useMemo(() => {
1404
+ if (!data) return false;
1405
+ return data.isDraft !== void 0 || data.isActive !== void 0 || data.slug !== void 0;
1406
+ }, [data]);
1400
1407
  useEffect(() => {
1401
1408
  if (data) {
1402
1409
  setNameValue(data.name);
1403
1410
  setDescriptionValue(data.description);
1411
+ setSlugValue(data.slug ?? "");
1412
+ setIsDraft(data.isDraft ?? true);
1413
+ setIsActive(data.isActive ?? true);
1404
1414
  }
1405
1415
  }, [data]);
1406
1416
  const handleSubmit = async (event) => {
1407
1417
  event.preventDefault();
1408
1418
  const trimmedName = nameValue.trim();
1409
1419
  if (!trimmedName) return;
1420
+ const trimmedDescription = descriptionValue.trim();
1421
+ const trimmedSlug = slugValue.trim();
1422
+ const changes = {
1423
+ name: trimmedName,
1424
+ description: trimmedDescription
1425
+ };
1426
+ if (data) {
1427
+ if (trimmedSlug !== (data.slug ?? "")) {
1428
+ changes.slug = trimmedSlug.length > 0 ? trimmedSlug : null;
1429
+ }
1430
+ if (data.isDraft !== void 0 && isDraft !== data.isDraft) {
1431
+ changes.isDraft = isDraft;
1432
+ }
1433
+ if (data.isActive !== void 0 && isActive !== data.isActive) {
1434
+ changes.isActive = isActive;
1435
+ }
1436
+ }
1410
1437
  setIsSaving(true);
1411
1438
  try {
1412
- await onSave(trimmedName, descriptionValue.trim());
1439
+ await onSave(changes);
1413
1440
  closeModal();
1414
1441
  } catch {
1415
1442
  } finally {
@@ -1454,7 +1481,7 @@ function PipelineSettingsModal({ onSave }) {
1454
1481
  maxWidth: "md",
1455
1482
  footer,
1456
1483
  onSubmit: handleSubmit,
1457
- children: /* @__PURE__ */ jsxs("form", { id: "pipeline-settings-form", onSubmit: handleSubmit, className: "space-y-6", children: [
1484
+ children: /* @__PURE__ */ jsxs("form", { id: "pipeline-settings-form", onSubmit: handleSubmit, className: "space-y-5", children: [
1458
1485
  /* @__PURE__ */ jsx(
1459
1486
  FormInput,
1460
1487
  {
@@ -1474,7 +1501,54 @@ function PipelineSettingsModal({ onSave }) {
1474
1501
  placeholder: t("pipelineDescriptionPlaceholder"),
1475
1502
  rows: 4
1476
1503
  }
1477
- )
1504
+ ),
1505
+ lifecycleAvailable && /* @__PURE__ */ jsxs(Fragment, { children: [
1506
+ /* @__PURE__ */ jsx(
1507
+ FormInput,
1508
+ {
1509
+ label: t("pipelineSlug", { _: "Slug" }),
1510
+ value: slugValue,
1511
+ onValueChange: setSlugValue,
1512
+ placeholder: "fuel-pricing",
1513
+ hint: t("pipelineSlugHint", {
1514
+ _: "URL-friendly identifier. Leave blank to use the auto-generated one."
1515
+ })
1516
+ }
1517
+ ),
1518
+ /* @__PURE__ */ jsxs("fieldset", { className: "space-y-2 rounded-xl border border-gray-200/60 bg-gray-50/60 p-3 dark:border-white/10 dark:bg-white/5", children: [
1519
+ /* @__PURE__ */ jsx("legend", { className: "px-1 text-xs font-medium text-gray-600 dark:text-gray-300", children: t("pipelineLifecycle", { _: "Lifecycle" }) }),
1520
+ /* @__PURE__ */ jsxs("label", { className: "flex items-center justify-between gap-3 text-sm text-gray-700 dark:text-gray-200", children: [
1521
+ /* @__PURE__ */ jsxs("span", { children: [
1522
+ t("pipelineIsDraft", { _: "Draft mode" }),
1523
+ /* @__PURE__ */ jsx("span", { className: "ml-2 text-[11px] text-gray-400", children: isDraft ? t("pipelineIsDraftOn", { _: "Editable \u2014 changes do not affect runs." }) : t("pipelineIsDraftOff", { _: "Published \u2014 edits require a new version." }) })
1524
+ ] }),
1525
+ /* @__PURE__ */ jsx(
1526
+ "input",
1527
+ {
1528
+ type: "checkbox",
1529
+ checked: isDraft,
1530
+ onChange: (event) => setIsDraft(event.target.checked),
1531
+ className: "h-4 w-4 rounded border-gray-300 text-indigo-600 focus:ring-indigo-500"
1532
+ }
1533
+ )
1534
+ ] }),
1535
+ /* @__PURE__ */ jsxs("label", { className: "flex items-center justify-between gap-3 text-sm text-gray-700 dark:text-gray-200", children: [
1536
+ /* @__PURE__ */ jsxs("span", { children: [
1537
+ t("pipelineIsActive", { _: "Active" }),
1538
+ /* @__PURE__ */ jsx("span", { className: "ml-2 text-[11px] text-gray-400", children: isActive ? t("pipelineIsActiveOn", { _: "Visible in listings and runnable." }) : t("pipelineIsActiveOff", { _: "Archived \u2014 hidden from the default listing." }) })
1539
+ ] }),
1540
+ /* @__PURE__ */ jsx(
1541
+ "input",
1542
+ {
1543
+ type: "checkbox",
1544
+ checked: isActive,
1545
+ onChange: (event) => setIsActive(event.target.checked),
1546
+ className: "h-4 w-4 rounded border-gray-300 text-indigo-600 focus:ring-indigo-500"
1547
+ }
1548
+ )
1549
+ ] })
1550
+ ] })
1551
+ ] })
1478
1552
  ] })
1479
1553
  }
1480
1554
  );