@open-mercato/core 0.4.2-canary-ec4978dbb3 → 0.4.2-canary-9074fd41ce

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 (155) hide show
  1. package/dist/generated/entities.ids.generated.js +0 -1
  2. package/dist/generated/entities.ids.generated.js.map +2 -2
  3. package/dist/generated/entity-fields-registry.js +0 -2
  4. package/dist/generated/entity-fields-registry.js.map +2 -2
  5. package/dist/modules/business_rules/data/validators.js +0 -34
  6. package/dist/modules/business_rules/data/validators.js.map +2 -2
  7. package/dist/modules/business_rules/index.js +1 -21
  8. package/dist/modules/business_rules/index.js.map +2 -2
  9. package/dist/modules/business_rules/lib/rule-engine.js +1 -182
  10. package/dist/modules/business_rules/lib/rule-engine.js.map +2 -2
  11. package/dist/modules/sales/acl.js +0 -1
  12. package/dist/modules/sales/acl.js.map +2 -2
  13. package/dist/modules/sales/backend/sales/documents/[id]/page.js +0 -12
  14. package/dist/modules/sales/backend/sales/documents/[id]/page.js.map +2 -2
  15. package/dist/modules/sales/commands/documents.js +0 -62
  16. package/dist/modules/sales/commands/documents.js.map +2 -2
  17. package/dist/modules/sales/lib/dictionaries.js +0 -3
  18. package/dist/modules/sales/lib/dictionaries.js.map +2 -2
  19. package/dist/modules/workflows/acl.js +0 -2
  20. package/dist/modules/workflows/acl.js.map +2 -2
  21. package/dist/modules/workflows/api/instances/route.js +6 -18
  22. package/dist/modules/workflows/api/instances/route.js.map +2 -2
  23. package/dist/modules/workflows/api/tasks/route.js +1 -6
  24. package/dist/modules/workflows/api/tasks/route.js.map +2 -2
  25. package/dist/modules/workflows/backend/definitions/[id]/page.js +1 -9
  26. package/dist/modules/workflows/backend/definitions/[id]/page.js.map +2 -2
  27. package/dist/modules/workflows/backend/definitions/[id]/page.meta.js +1 -1
  28. package/dist/modules/workflows/backend/definitions/[id]/page.meta.js.map +2 -2
  29. package/dist/modules/workflows/backend/definitions/create/page.js +15 -24
  30. package/dist/modules/workflows/backend/definitions/create/page.js.map +2 -2
  31. package/dist/modules/workflows/backend/definitions/create/page.meta.js +1 -1
  32. package/dist/modules/workflows/backend/definitions/create/page.meta.js.map +2 -2
  33. package/dist/modules/workflows/backend/definitions/visual-editor/page.js +132 -150
  34. package/dist/modules/workflows/backend/definitions/visual-editor/page.js.map +2 -2
  35. package/dist/modules/workflows/backend/definitions/visual-editor/page.meta.js +1 -1
  36. package/dist/modules/workflows/backend/definitions/visual-editor/page.meta.js.map +2 -2
  37. package/dist/modules/workflows/backend/events/[id]/page.js +1 -1
  38. package/dist/modules/workflows/backend/events/[id]/page.js.map +2 -2
  39. package/dist/modules/workflows/backend/events/[id]/page.meta.js +2 -2
  40. package/dist/modules/workflows/backend/events/[id]/page.meta.js.map +2 -2
  41. package/dist/modules/workflows/backend/instances/[id]/page.meta.js +2 -2
  42. package/dist/modules/workflows/backend/instances/[id]/page.meta.js.map +2 -2
  43. package/dist/modules/workflows/backend/tasks/[id]/page.js +1 -1
  44. package/dist/modules/workflows/backend/tasks/[id]/page.js.map +2 -2
  45. package/dist/modules/workflows/backend/tasks/[id]/page.meta.js +2 -2
  46. package/dist/modules/workflows/backend/tasks/[id]/page.meta.js.map +2 -2
  47. package/dist/modules/workflows/backend/tasks/page.js +6 -5
  48. package/dist/modules/workflows/backend/tasks/page.js.map +2 -2
  49. package/dist/modules/workflows/cli.js +3 -81
  50. package/dist/modules/workflows/cli.js.map +3 -3
  51. package/dist/modules/workflows/data/entities.js +1 -64
  52. package/dist/modules/workflows/data/entities.js.map +2 -2
  53. package/dist/modules/workflows/data/validators.js +0 -115
  54. package/dist/modules/workflows/data/validators.js.map +2 -2
  55. package/dist/modules/workflows/examples/checkout-demo-definition.json +5 -1
  56. package/dist/modules/workflows/lib/activity-executor.js +13 -75
  57. package/dist/modules/workflows/lib/activity-executor.js.map +2 -2
  58. package/dist/modules/workflows/lib/graph-utils.js +2 -71
  59. package/dist/modules/workflows/lib/graph-utils.js.map +2 -2
  60. package/dist/modules/workflows/lib/seeds.js +5 -22
  61. package/dist/modules/workflows/lib/seeds.js.map +2 -2
  62. package/dist/modules/workflows/lib/start-validator.js +23 -33
  63. package/dist/modules/workflows/lib/start-validator.js.map +2 -2
  64. package/dist/modules/workflows/lib/transition-handler.js +45 -157
  65. package/dist/modules/workflows/lib/transition-handler.js.map +3 -3
  66. package/generated/entities.ids.generated.ts +0 -1
  67. package/generated/entity-fields-registry.ts +0 -2
  68. package/package.json +2 -2
  69. package/src/modules/business_rules/data/validators.ts +0 -40
  70. package/src/modules/business_rules/index.ts +0 -25
  71. package/src/modules/business_rules/lib/rule-engine.ts +1 -281
  72. package/src/modules/sales/acl.ts +0 -1
  73. package/src/modules/sales/backend/sales/documents/[id]/page.tsx +0 -16
  74. package/src/modules/sales/commands/documents.ts +1 -74
  75. package/src/modules/sales/lib/dictionaries.ts +0 -3
  76. package/src/modules/workflows/acl.ts +0 -2
  77. package/src/modules/workflows/api/instances/route.ts +7 -21
  78. package/src/modules/workflows/api/tasks/route.ts +1 -7
  79. package/src/modules/workflows/backend/definitions/[id]/page.meta.ts +1 -1
  80. package/src/modules/workflows/backend/definitions/[id]/page.tsx +0 -9
  81. package/src/modules/workflows/backend/definitions/create/page.meta.ts +1 -1
  82. package/src/modules/workflows/backend/definitions/create/page.tsx +0 -9
  83. package/src/modules/workflows/backend/definitions/visual-editor/page.meta.ts +1 -1
  84. package/src/modules/workflows/backend/definitions/visual-editor/page.tsx +3 -21
  85. package/src/modules/workflows/backend/events/[id]/page.meta.ts +2 -2
  86. package/src/modules/workflows/backend/events/[id]/page.tsx +1 -1
  87. package/src/modules/workflows/backend/instances/[id]/page.meta.ts +2 -2
  88. package/src/modules/workflows/backend/tasks/[id]/page.meta.ts +2 -2
  89. package/src/modules/workflows/backend/tasks/[id]/page.tsx +1 -1
  90. package/src/modules/workflows/backend/tasks/page.tsx +6 -5
  91. package/src/modules/workflows/cli.ts +0 -111
  92. package/src/modules/workflows/data/entities.ts +0 -124
  93. package/src/modules/workflows/data/validators.ts +0 -138
  94. package/src/modules/workflows/examples/checkout-demo-definition.json +5 -1
  95. package/src/modules/workflows/i18n/en.json +0 -71
  96. package/src/modules/workflows/lib/activity-executor.ts +16 -129
  97. package/src/modules/workflows/lib/graph-utils.ts +2 -117
  98. package/src/modules/workflows/lib/seeds.ts +8 -34
  99. package/src/modules/workflows/lib/start-validator.ts +28 -38
  100. package/src/modules/workflows/lib/transition-handler.ts +55 -208
  101. package/dist/generated/entities/workflow_event_trigger/index.js +0 -33
  102. package/dist/generated/entities/workflow_event_trigger/index.js.map +0 -7
  103. package/dist/modules/auth/events.js +0 -30
  104. package/dist/modules/auth/events.js.map +0 -7
  105. package/dist/modules/business_rules/api/execute/[ruleId]/route.js +0 -145
  106. package/dist/modules/business_rules/api/execute/[ruleId]/route.js.map +0 -7
  107. package/dist/modules/catalog/events.js +0 -34
  108. package/dist/modules/catalog/events.js.map +0 -7
  109. package/dist/modules/customers/events.js +0 -49
  110. package/dist/modules/customers/events.js.map +0 -7
  111. package/dist/modules/directory/events.js +0 -23
  112. package/dist/modules/directory/events.js.map +0 -7
  113. package/dist/modules/sales/events.js +0 -63
  114. package/dist/modules/sales/events.js.map +0 -7
  115. package/dist/modules/sales/lib/frontend/documentDataEvents.js +0 -25
  116. package/dist/modules/sales/lib/frontend/documentDataEvents.js.map +0 -7
  117. package/dist/modules/workflows/components/DefinitionTriggersEditor.js +0 -481
  118. package/dist/modules/workflows/components/DefinitionTriggersEditor.js.map +0 -7
  119. package/dist/modules/workflows/components/EventTriggersEditor.js +0 -553
  120. package/dist/modules/workflows/components/EventTriggersEditor.js.map +0 -7
  121. package/dist/modules/workflows/events.js +0 -38
  122. package/dist/modules/workflows/events.js.map +0 -7
  123. package/dist/modules/workflows/examples/order-approval-definition.json +0 -257
  124. package/dist/modules/workflows/examples/order-approval-guard-rules.json +0 -32
  125. package/dist/modules/workflows/lib/event-trigger-service.js +0 -308
  126. package/dist/modules/workflows/lib/event-trigger-service.js.map +0 -7
  127. package/dist/modules/workflows/migrations/Migration20260123143500.js +0 -36
  128. package/dist/modules/workflows/migrations/Migration20260123143500.js.map +0 -7
  129. package/dist/modules/workflows/subscribers/event-trigger.js +0 -78
  130. package/dist/modules/workflows/subscribers/event-trigger.js.map +0 -7
  131. package/dist/modules/workflows/widgets/injection/order-approval/widget.client.js +0 -323
  132. package/dist/modules/workflows/widgets/injection/order-approval/widget.client.js.map +0 -7
  133. package/dist/modules/workflows/widgets/injection/order-approval/widget.js +0 -17
  134. package/dist/modules/workflows/widgets/injection/order-approval/widget.js.map +0 -7
  135. package/dist/modules/workflows/widgets/injection-table.js +0 -19
  136. package/dist/modules/workflows/widgets/injection-table.js.map +0 -7
  137. package/generated/entities/workflow_event_trigger/index.ts +0 -15
  138. package/src/modules/auth/events.ts +0 -39
  139. package/src/modules/business_rules/api/execute/[ruleId]/route.ts +0 -163
  140. package/src/modules/catalog/events.ts +0 -45
  141. package/src/modules/customers/events.ts +0 -63
  142. package/src/modules/directory/events.ts +0 -31
  143. package/src/modules/sales/events.ts +0 -82
  144. package/src/modules/sales/lib/frontend/documentDataEvents.ts +0 -28
  145. package/src/modules/workflows/components/DefinitionTriggersEditor.tsx +0 -581
  146. package/src/modules/workflows/components/EventTriggersEditor.tsx +0 -664
  147. package/src/modules/workflows/events.ts +0 -49
  148. package/src/modules/workflows/examples/order-approval-definition.json +0 -257
  149. package/src/modules/workflows/examples/order-approval-guard-rules.json +0 -32
  150. package/src/modules/workflows/lib/event-trigger-service.ts +0 -557
  151. package/src/modules/workflows/migrations/Migration20260123143500.ts +0 -38
  152. package/src/modules/workflows/subscribers/event-trigger.ts +0 -109
  153. package/src/modules/workflows/widgets/injection/order-approval/widget.client.tsx +0 -446
  154. package/src/modules/workflows/widgets/injection/order-approval/widget.ts +0 -16
  155. package/src/modules/workflows/widgets/injection-table.ts +0 -21
@@ -33,7 +33,6 @@ import { apiCall } from "@open-mercato/ui/backend/utils/apiCall";
33
33
  import { flash } from "@open-mercato/ui/backend/FlashMessages";
34
34
  import { CircleQuestionMark, Info, PanelTopClose, PanelTopOpen, Play, Save, Trash2 } from "lucide-react";
35
35
  import { NODE_TYPE_ICONS, NODE_TYPE_COLORS, NODE_TYPE_LABELS } from "../../../lib/node-type-icons.js";
36
- import { DefinitionTriggersEditor } from "../../../components/DefinitionTriggersEditor.js";
37
36
  function VisualEditorPage() {
38
37
  const t = useT();
39
38
  const router = useRouter();
@@ -59,7 +58,6 @@ function VisualEditorPage() {
59
58
  const [icon, setIcon] = useState("");
60
59
  const [effectiveFrom, setEffectiveFrom] = useState("");
61
60
  const [effectiveTo, setEffectiveTo] = useState("");
62
- const [triggers, setTriggers] = useState([]);
63
61
  useEffect(() => {
64
62
  const loadDefinition = async () => {
65
63
  if (!definitionId) {
@@ -87,7 +85,6 @@ function VisualEditorPage() {
87
85
  const graph = definitionToGraph(definition.definition);
88
86
  setNodes(graph.nodes);
89
87
  setEdges(graph.edges);
90
- setTriggers(definition.definition?.triggers || []);
91
88
  flash("Workflow loaded successfully", "success");
92
89
  } catch (error) {
93
90
  console.error("Error loading workflow definition:", error);
@@ -212,11 +209,7 @@ function VisualEditorPage() {
212
209
  flash(`Cannot save: ${criticalErrors.length} validation error(s) found. Please fix them first.`, "error");
213
210
  return;
214
211
  }
215
- const graphDefinition = graphToDefinition(nodes, edges, { includePositions: true });
216
- const definitionData = {
217
- ...graphDefinition,
218
- triggers: triggers.length > 0 ? triggers : void 0
219
- };
212
+ const definitionData = graphToDefinition(nodes, edges, { includePositions: true });
220
213
  const schemaResult = workflowDefinitionDataSchema.safeParse(definitionData);
221
214
  if (!schemaResult.success) {
222
215
  const firstIssue = schemaResult.error.issues[0];
@@ -272,7 +265,7 @@ function VisualEditorPage() {
272
265
  } finally {
273
266
  setIsSaving(false);
274
267
  }
275
- }, [nodes, edges, workflowId, workflowName, description, version, enabled, category, tags, triggers, definitionId, router]);
268
+ }, [nodes, edges, workflowId, workflowName, description, version, enabled, category, tags, definitionId, router]);
276
269
  const handleTest = useCallback(() => {
277
270
  const errors = validateWorkflowGraph(nodes, edges);
278
271
  const criticalErrors = errors.filter((e) => e.type === "error");
@@ -375,7 +368,6 @@ function VisualEditorPage() {
375
368
  setIcon("");
376
369
  setEffectiveFrom("");
377
370
  setEffectiveTo("");
378
- setTriggers([]);
379
371
  setShowClearConfirm(false);
380
372
  flash("Canvas cleared", "success");
381
373
  }, []);
@@ -474,152 +466,142 @@ function VisualEditorPage() {
474
466
  )
475
467
  ] })
476
468
  ] }) }),
477
- showMetadata && /* @__PURE__ */ jsxs("div", { className: "bg-white border-b border-gray-200 px-6 py-4", children: [
478
- /* @__PURE__ */ jsxs("div", { className: "rounded-lg border bg-card p-4", children: [
479
- /* @__PURE__ */ jsx("h2", { className: "text-sm font-semibold uppercase text-muted-foreground mb-4", children: "Workflow Metadata" }),
480
- /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-3 gap-4", children: [
481
- /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
482
- /* @__PURE__ */ jsx(Label, { htmlFor: "workflowId", className: "text-xs", children: "Workflow ID *" }),
483
- /* @__PURE__ */ jsx(
484
- Input,
485
- {
486
- id: "workflowId",
487
- value: workflowId,
488
- onChange: (e) => setWorkflowId(e.target.value),
489
- placeholder: "checkout_workflow",
490
- disabled: !!definitionId
491
- }
492
- ),
493
- /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: definitionId ? "Cannot be changed when editing" : "Lowercase, numbers, hyphens, underscores" })
494
- ] }),
495
- /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
496
- /* @__PURE__ */ jsx(Label, { htmlFor: "workflowName", className: "text-xs", children: "Workflow Name *" }),
497
- /* @__PURE__ */ jsx(
498
- Input,
499
- {
500
- id: "workflowName",
501
- value: workflowName,
502
- onChange: (e) => setWorkflowName(e.target.value),
503
- placeholder: "Checkout Process"
504
- }
505
- )
506
- ] }),
507
- /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
508
- /* @__PURE__ */ jsx(Label, { htmlFor: "category", className: "text-xs", children: "Category" }),
509
- /* @__PURE__ */ jsx(
510
- Input,
511
- {
512
- id: "category",
513
- value: category,
514
- onChange: (e) => setCategory(e.target.value),
515
- placeholder: "E-Commerce"
516
- }
517
- )
518
- ] }),
519
- /* @__PURE__ */ jsxs("div", { className: "col-span-3 space-y-1", children: [
520
- /* @__PURE__ */ jsx(Label, { htmlFor: "description", className: "text-xs", children: "Description" }),
521
- /* @__PURE__ */ jsx(
522
- Textarea,
523
- {
524
- id: "description",
525
- value: description,
526
- onChange: (e) => setDescription(e.target.value),
527
- placeholder: "Describe the purpose of this workflow...",
528
- rows: 2
529
- }
530
- )
531
- ] }),
532
- /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
533
- /* @__PURE__ */ jsx(Label, { htmlFor: "version", className: "text-xs", children: "Version *" }),
534
- /* @__PURE__ */ jsx(
535
- Input,
536
- {
537
- id: "version",
538
- type: "number",
539
- value: version,
540
- onChange: (e) => setVersion(parseInt(e.target.value) || 1),
541
- min: 1,
542
- disabled: !!definitionId
543
- }
544
- ),
545
- /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Version number (increment for major changes)" })
546
- ] }),
547
- /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
548
- /* @__PURE__ */ jsx(Label, { className: "text-xs", children: "Enabled" }),
549
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 mt-2", children: [
550
- /* @__PURE__ */ jsx(
551
- Switch,
552
- {
553
- id: "enabled",
554
- checked: enabled,
555
- onCheckedChange: setEnabled
556
- }
557
- ),
558
- /* @__PURE__ */ jsx(Label, { htmlFor: "enabled", className: "text-sm font-normal cursor-pointer", children: "Only enabled workflows can be started" })
559
- ] })
560
- ] }),
561
- /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
562
- /* @__PURE__ */ jsx(Label, { className: "text-xs", children: "Tags" }),
563
- /* @__PURE__ */ jsx(
564
- TagsInput,
565
- {
566
- value: tags,
567
- onChange: setTags,
568
- placeholder: t("workflows.form.placeholders.tags")
569
- }
570
- ),
571
- /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: t("workflows.form.descriptions.tags") })
572
- ] }),
573
- /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
574
- /* @__PURE__ */ jsx(Label, { htmlFor: "icon", className: "text-xs", children: "Icon" }),
575
- /* @__PURE__ */ jsx(
576
- Input,
577
- {
578
- id: "icon",
579
- value: icon,
580
- onChange: (e) => setIcon(e.target.value),
581
- placeholder: "ShoppingCart"
582
- }
583
- ),
584
- /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Icon name for visual identification" })
585
- ] }),
586
- /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
587
- /* @__PURE__ */ jsx(Label, { htmlFor: "effectiveFrom", className: "text-xs", children: "Effective From" }),
588
- /* @__PURE__ */ jsx(
589
- Input,
590
- {
591
- id: "effectiveFrom",
592
- type: "date",
593
- value: effectiveFrom,
594
- onChange: (e) => setEffectiveFrom(e.target.value)
595
- }
596
- ),
597
- /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Workflow becomes active from this date" })
598
- ] }),
599
- /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
600
- /* @__PURE__ */ jsx(Label, { htmlFor: "effectiveTo", className: "text-xs", children: "Effective To" }),
469
+ showMetadata && /* @__PURE__ */ jsx("div", { className: "bg-white border-b border-gray-200 px-6 py-4", children: /* @__PURE__ */ jsxs("div", { className: "rounded-lg border bg-card p-4", children: [
470
+ /* @__PURE__ */ jsx("h2", { className: "text-sm font-semibold uppercase text-muted-foreground mb-4", children: "Workflow Metadata" }),
471
+ /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-3 gap-4", children: [
472
+ /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
473
+ /* @__PURE__ */ jsx(Label, { htmlFor: "workflowId", className: "text-xs", children: "Workflow ID *" }),
474
+ /* @__PURE__ */ jsx(
475
+ Input,
476
+ {
477
+ id: "workflowId",
478
+ value: workflowId,
479
+ onChange: (e) => setWorkflowId(e.target.value),
480
+ placeholder: "checkout_workflow",
481
+ disabled: !!definitionId
482
+ }
483
+ ),
484
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: definitionId ? "Cannot be changed when editing" : "Lowercase, numbers, hyphens, underscores" })
485
+ ] }),
486
+ /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
487
+ /* @__PURE__ */ jsx(Label, { htmlFor: "workflowName", className: "text-xs", children: "Workflow Name *" }),
488
+ /* @__PURE__ */ jsx(
489
+ Input,
490
+ {
491
+ id: "workflowName",
492
+ value: workflowName,
493
+ onChange: (e) => setWorkflowName(e.target.value),
494
+ placeholder: "Checkout Process"
495
+ }
496
+ )
497
+ ] }),
498
+ /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
499
+ /* @__PURE__ */ jsx(Label, { htmlFor: "category", className: "text-xs", children: "Category" }),
500
+ /* @__PURE__ */ jsx(
501
+ Input,
502
+ {
503
+ id: "category",
504
+ value: category,
505
+ onChange: (e) => setCategory(e.target.value),
506
+ placeholder: "E-Commerce"
507
+ }
508
+ )
509
+ ] }),
510
+ /* @__PURE__ */ jsxs("div", { className: "col-span-3 space-y-1", children: [
511
+ /* @__PURE__ */ jsx(Label, { htmlFor: "description", className: "text-xs", children: "Description" }),
512
+ /* @__PURE__ */ jsx(
513
+ Textarea,
514
+ {
515
+ id: "description",
516
+ value: description,
517
+ onChange: (e) => setDescription(e.target.value),
518
+ placeholder: "Describe the purpose of this workflow...",
519
+ rows: 2
520
+ }
521
+ )
522
+ ] }),
523
+ /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
524
+ /* @__PURE__ */ jsx(Label, { htmlFor: "version", className: "text-xs", children: "Version *" }),
525
+ /* @__PURE__ */ jsx(
526
+ Input,
527
+ {
528
+ id: "version",
529
+ type: "number",
530
+ value: version,
531
+ onChange: (e) => setVersion(parseInt(e.target.value) || 1),
532
+ min: 1,
533
+ disabled: !!definitionId
534
+ }
535
+ ),
536
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Version number (increment for major changes)" })
537
+ ] }),
538
+ /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
539
+ /* @__PURE__ */ jsx(Label, { className: "text-xs", children: "Enabled" }),
540
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 mt-2", children: [
601
541
  /* @__PURE__ */ jsx(
602
- Input,
542
+ Switch,
603
543
  {
604
- id: "effectiveTo",
605
- type: "date",
606
- value: effectiveTo,
607
- onChange: (e) => setEffectiveTo(e.target.value)
544
+ id: "enabled",
545
+ checked: enabled,
546
+ onCheckedChange: setEnabled
608
547
  }
609
548
  ),
610
- /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Workflow deactivates after this date" })
549
+ /* @__PURE__ */ jsx(Label, { htmlFor: "enabled", className: "text-sm font-normal cursor-pointer", children: "Only enabled workflows can be started" })
611
550
  ] })
551
+ ] }),
552
+ /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
553
+ /* @__PURE__ */ jsx(Label, { className: "text-xs", children: "Tags" }),
554
+ /* @__PURE__ */ jsx(
555
+ TagsInput,
556
+ {
557
+ value: tags,
558
+ onChange: setTags,
559
+ placeholder: t("workflows.form.placeholders.tags")
560
+ }
561
+ ),
562
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: t("workflows.form.descriptions.tags") })
563
+ ] }),
564
+ /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
565
+ /* @__PURE__ */ jsx(Label, { htmlFor: "icon", className: "text-xs", children: "Icon" }),
566
+ /* @__PURE__ */ jsx(
567
+ Input,
568
+ {
569
+ id: "icon",
570
+ value: icon,
571
+ onChange: (e) => setIcon(e.target.value),
572
+ placeholder: "ShoppingCart"
573
+ }
574
+ ),
575
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Icon name for visual identification" })
576
+ ] }),
577
+ /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
578
+ /* @__PURE__ */ jsx(Label, { htmlFor: "effectiveFrom", className: "text-xs", children: "Effective From" }),
579
+ /* @__PURE__ */ jsx(
580
+ Input,
581
+ {
582
+ id: "effectiveFrom",
583
+ type: "date",
584
+ value: effectiveFrom,
585
+ onChange: (e) => setEffectiveFrom(e.target.value)
586
+ }
587
+ ),
588
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Workflow becomes active from this date" })
589
+ ] }),
590
+ /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
591
+ /* @__PURE__ */ jsx(Label, { htmlFor: "effectiveTo", className: "text-xs", children: "Effective To" }),
592
+ /* @__PURE__ */ jsx(
593
+ Input,
594
+ {
595
+ id: "effectiveTo",
596
+ type: "date",
597
+ value: effectiveTo,
598
+ onChange: (e) => setEffectiveTo(e.target.value)
599
+ }
600
+ ),
601
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Workflow deactivates after this date" })
612
602
  ] })
613
- ] }),
614
- /* @__PURE__ */ jsx(
615
- DefinitionTriggersEditor,
616
- {
617
- value: triggers,
618
- onChange: setTriggers,
619
- className: "mt-4"
620
- }
621
- )
622
- ] }),
603
+ ] })
604
+ ] }) }),
623
605
  /* @__PURE__ */ jsxs(PageBody, { className: "flex-1 flex overflow-hidden", children: [
624
606
  /* @__PURE__ */ jsx("div", { className: "w-88 bg-white border-r border-gray-200 p-6 overflow-y-auto", children: /* @__PURE__ */ jsxs("div", { className: "rounded-lg border bg-card p-4", children: [
625
607
  /* @__PURE__ */ jsx("h2", { className: "text-sm font-semibold uppercase text-muted-foreground mb-2", children: "Step Palette" }),