@echothink-ui/workflow 0.1.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.tsx","../src/components/ApprovalWorkflowEditor.tsx","../src/components/ConditionBuilder.tsx","../src/components/PipelineStage.tsx","../src/components/ProcessDesigner.tsx","../src/components/ProcessTimeline.tsx","../src/components/RuleBuilder.tsx","../src/components/RuleSimulationPanel.tsx","../src/components/WorkflowHandoffPanel.tsx","../src/components/WorkflowPipelineView.tsx"],"sourcesContent":["import \"./styles.css\";\n\nexport type {\n ApprovalWorkflowEditorProps,\n ConditionBuilderProps,\n PipelineStageProps,\n ProcessDesignerProps,\n ProcessEdge,\n ProcessNode,\n ProcessTimelineProps,\n RuleBuilderProps,\n RuleSimulationPanelProps,\n RuleSimulationResult,\n RuleSimulationSample,\n WorkflowHandoffPanelProps,\n WorkflowPipelineViewProps,\n WorkflowRule,\n WorkflowRuleCondition,\n WorkflowStage\n} from \"./components/types\";\nexport { ApprovalWorkflowEditor } from \"./components/ApprovalWorkflowEditor\";\nexport { ConditionBuilder } from \"./components/ConditionBuilder\";\nexport { PipelineStage } from \"./components/PipelineStage\";\nexport { ProcessDesigner } from \"./components/ProcessDesigner\";\nexport { ProcessTimeline } from \"./components/ProcessTimeline\";\nexport { RuleBuilder } from \"./components/RuleBuilder\";\nexport { RuleSimulationPanel } from \"./components/RuleSimulationPanel\";\nexport { WorkflowHandoffPanel } from \"./components/WorkflowHandoffPanel\";\nexport { WorkflowPipelineView } from \"./components/WorkflowPipelineView\";\n\nexport const WorkflowComponentNames = [\n \"WorkflowPipelineView\",\n \"PipelineStage\",\n \"ProcessDesigner\",\n \"RuleBuilder\",\n \"ConditionBuilder\",\n \"RuleSimulationPanel\",\n \"WorkflowHandoffPanel\",\n \"ApprovalWorkflowEditor\",\n \"ProcessTimeline\"\n] as const;\nexport type WorkflowComponentName = (typeof WorkflowComponentNames)[number];\n","import * as React from \"react\";\nimport { Button, Checkbox, TextInput } from \"@echothink-ui/core\";\nimport type { ApprovalWorkflowEditorProps } from \"./types\";\n\nexport function ApprovalWorkflowEditor({ steps = [], onChange, className, ...props }: ApprovalWorkflowEditorProps) {\n const update = (index: number, next: NonNullable<ApprovalWorkflowEditorProps[\"steps\"]>[number]) => {\n const nextSteps = [...steps];\n nextSteps[index] = next;\n onChange?.(nextSteps);\n };\n\n return (\n <section\n {...props}\n className={`eth-workflow-approval-editor ${className ?? \"\"}`}\n data-eth-component=\"ApprovalWorkflowEditor\"\n >\n {steps.map((step, index) => (\n <div key={step.id} className=\"eth-workflow-approval-editor__step\">\n <TextInput value={step.label} onChange={(event) => update(index, { ...step, label: event.currentTarget.value })} aria-label=\"Step label\" />\n <TextInput value={step.approver ?? \"\"} onChange={(event) => update(index, { ...step, approver: event.currentTarget.value })} aria-label=\"Approver\" />\n <Checkbox checked={Boolean(step.required)} label=\"Required\" onChange={(event) => update(index, { ...step, required: event.currentTarget.checked })} />\n </div>\n ))}\n <Button\n intent=\"secondary\"\n density=\"compact\"\n onClick={() => onChange?.([...steps, { id: `step-${steps.length + 1}`, label: \"Approval step\", required: true }])}\n >\n Add approval\n </Button>\n </section>\n );\n}\n","import * as React from \"react\";\nimport { FormField, Select, TextInput } from \"@echothink-ui/core\";\nimport type { ConditionBuilderProps, WorkflowRuleCondition } from \"./types\";\n\nconst operators: Array<{ value: WorkflowRuleCondition[\"operator\"]; label: string }> = [\n { value: \"equals\", label: \"Equals\" },\n { value: \"not-equals\", label: \"Does not equal\" },\n { value: \"contains\", label: \"Contains\" },\n { value: \"gt\", label: \"Greater than\" },\n { value: \"gte\", label: \"Greater than or equal\" },\n { value: \"lt\", label: \"Less than\" },\n { value: \"lte\", label: \"Less than or equal\" },\n { value: \"exists\", label: \"Exists\" }\n];\n\nexport function ConditionBuilder({ value, onChange, variables = [], className, ...props }: ConditionBuilderProps) {\n const fieldOptions = variables.length\n ? variables.map((field) => ({ value: field, label: field }))\n : [{ value: value.field, label: value.field || \"field\" }];\n const update = <K extends keyof WorkflowRuleCondition>(key: K, nextValue: WorkflowRuleCondition[K]) => {\n onChange({ ...value, [key]: nextValue });\n };\n\n return (\n <section\n {...props}\n className={`eth-workflow-condition-builder ${className ?? \"\"}`}\n data-eth-component=\"ConditionBuilder\"\n >\n <FormField label=\"Field\">\n <Select value={value.field} options={fieldOptions} onChange={(event) => update(\"field\", event.currentTarget.value)} />\n </FormField>\n <FormField label=\"Operator\">\n <Select value={value.operator} options={operators} onChange={(event) => update(\"operator\", event.currentTarget.value as WorkflowRuleCondition[\"operator\"])} />\n </FormField>\n <FormField label=\"Value\">\n <TextInput value={value.value ?? \"\"} onChange={(event) => update(\"value\", event.currentTarget.value)} disabled={value.operator === \"exists\"} />\n </FormField>\n </section>\n );\n}\n","import * as React from \"react\";\nimport { StatusDot } from \"@echothink-ui/core\";\nimport type { PipelineStageProps } from \"./types\";\n\nexport function PipelineStage({ stage, active, onSelect, className, ...props }: PipelineStageProps) {\n const content = (\n <>\n <StatusDot status={stage.status} label={stage.status} />\n <strong>{stage.label}</strong>\n {stage.durationMs !== undefined ? <small>{stage.durationMs}ms</small> : null}\n </>\n );\n\n return onSelect ? (\n <button\n {...props}\n type=\"button\"\n className={`eth-workflow-pipeline-stage ${active ? \"eth-workflow-pipeline-stage--active\" : \"\"} ${className ?? \"\"}`}\n data-eth-component=\"PipelineStage\"\n onClick={() => onSelect(stage.id)}\n >\n {content}\n </button>\n ) : (\n <article\n {...props}\n className={`eth-workflow-pipeline-stage ${active ? \"eth-workflow-pipeline-stage--active\" : \"\"} ${className ?? \"\"}`}\n data-eth-component=\"PipelineStage\"\n >\n {content}\n </article>\n );\n}\n","import * as React from \"react\";\nimport { Button } from \"@echothink-ui/core\";\nimport type { ProcessDesignerProps, ProcessNode } from \"./types\";\n\nexport function ProcessDesigner({\n nodes,\n edges,\n onNodeMove,\n onAddNode,\n onConnect,\n className,\n ...props\n}: ProcessDesignerProps) {\n const svgRef = React.useRef<SVGSVGElement>(null);\n const [positions, setPositions] = React.useState(() => initialPositions(nodes));\n const [draggingId, setDraggingId] = React.useState<string | null>(null);\n const [selectedNodeId, setSelectedNodeId] = React.useState<string | null>(null);\n\n React.useEffect(() => {\n setPositions(initialPositions(nodes));\n }, [nodes]);\n\n const pointFromEvent = (event: React.MouseEvent<SVGSVGElement>) => {\n const rect = svgRef.current?.getBoundingClientRect();\n if (!rect) return { x: 0, y: 0 };\n return {\n x: ((event.clientX - rect.left) / rect.width) * 900,\n y: ((event.clientY - rect.top) / rect.height) * 420\n };\n };\n\n const move = (event: React.MouseEvent<SVGSVGElement>) => {\n if (!draggingId) return;\n const point = pointFromEvent(event);\n setPositions((current) => ({ ...current, [draggingId]: point }));\n };\n\n const stop = () => {\n if (!draggingId) return;\n const point = positions[draggingId];\n if (point) onNodeMove?.(draggingId, point.x, point.y);\n setDraggingId(null);\n };\n\n const clickNode = (id: string) => {\n if (selectedNodeId && selectedNodeId !== id) {\n onConnect?.(selectedNodeId, id);\n setSelectedNodeId(null);\n } else {\n setSelectedNodeId(id);\n }\n };\n\n return (\n <section\n {...props}\n className={`eth-workflow-process-designer ${className ?? \"\"}`}\n data-eth-component=\"ProcessDesigner\"\n >\n <header>\n <h3>Process designer</h3>\n {onAddNode ? <Button intent=\"secondary\" density=\"compact\" onClick={onAddNode}>Add node</Button> : null}\n </header>\n <svg\n ref={svgRef}\n viewBox=\"0 0 900 420\"\n role=\"img\"\n aria-label=\"Process graph\"\n onMouseMove={move}\n onMouseUp={stop}\n onMouseLeave={stop}\n >\n {edges.map((edge, index) => {\n const from = positions[edge.from];\n const to = positions[edge.to];\n if (!from || !to) return null;\n const midX = (from.x + to.x) / 2;\n const midY = (from.y + to.y) / 2;\n return (\n <g key={`${edge.from}-${edge.to}-${index}`}>\n <line x1={from.x} y1={from.y} x2={to.x} y2={to.y} stroke=\"var(--eth-color-border-strong)\" strokeWidth={2} markerEnd=\"url(#eth-workflow-arrow)\" />\n {edge.label ? <text x={midX} y={midY - 6} textAnchor=\"middle\" fontSize={12}>{edge.label}</text> : null}\n </g>\n );\n })}\n <defs>\n <marker id=\"eth-workflow-arrow\" viewBox=\"0 0 10 10\" refX=\"8\" refY=\"5\" markerWidth=\"6\" markerHeight=\"6\" orient=\"auto-start-reverse\">\n <path d=\"M 0 0 L 10 5 L 0 10 z\" fill=\"var(--eth-color-border-strong)\" />\n </marker>\n </defs>\n {nodes.map((node) => {\n const point = positions[node.id];\n if (!point) return null;\n return (\n <g\n key={node.id}\n transform={`translate(${point.x}, ${point.y})`}\n className={`eth-workflow-process-designer__node eth-workflow-process-designer__node--${node.type} ${selectedNodeId === node.id ? \"eth-workflow-process-designer__node--selected\" : \"\"}`}\n onMouseDown={(event) => { event.preventDefault(); setDraggingId(node.id); }}\n onClick={() => clickNode(node.id)}\n >\n {node.type === \"decision\" ? (\n <polygon points=\"0,-32 54,0 0,32 -54,0\" fill=\"var(--eth-color-layer-01)\" stroke=\"var(--eth-color-border-strong)\" strokeWidth={2} />\n ) : (\n <rect x={-62} y={-28} width={124} height={56} rx={0} fill=\"var(--eth-color-layer-01)\" stroke=\"var(--eth-color-border-strong)\" strokeWidth={2} />\n )}\n <text textAnchor=\"middle\" dominantBaseline=\"middle\" fontSize={13}>{node.label}</text>\n </g>\n );\n })}\n </svg>\n </section>\n );\n}\n\nfunction initialPositions(nodes: ProcessNode[]) {\n const positions: Record<string, { x: number; y: number }> = {};\n nodes.forEach((node, index) => {\n positions[node.id] = {\n x: node.x ?? 100 + (index % 5) * 170,\n y: node.y ?? 90 + Math.floor(index / 5) * 120\n };\n });\n return positions;\n}\n","import * as React from \"react\";\nimport { StatusDot } from \"@echothink-ui/core\";\nimport type { ProcessTimelineProps } from \"./types\";\n\nexport function ProcessTimeline({ events = [], className, ...props }: ProcessTimelineProps) {\n return (\n <section\n {...props}\n className={`eth-workflow-process-timeline ${className ?? \"\"}`}\n data-eth-component=\"ProcessTimeline\"\n >\n <ol>\n {events.map((event) => (\n <li key={event.id}>\n {event.status ? <StatusDot status={event.status} /> : null}\n <span>{event.label}</span>\n {event.timestamp ? <time dateTime={event.timestamp}>{event.timestamp}</time> : null}\n </li>\n ))}\n </ol>\n </section>\n );\n}\n","import * as React from \"react\";\nimport { Button, FormField, Select } from \"@echothink-ui/core\";\nimport { ConditionBuilder } from \"./ConditionBuilder\";\nimport type { RuleBuilderProps, WorkflowRule } from \"./types\";\n\nconst defaultRule: WorkflowRule = {\n combinator: \"all\",\n conditions: [{ field: \"\", operator: \"equals\", value: \"\" }]\n};\n\nexport function RuleBuilder({ value, onChange, variables = [], className, ...props }: RuleBuilderProps) {\n const [internalRule, setInternalRule] = React.useState<WorkflowRule>(value ?? defaultRule);\n const rule = value ?? internalRule;\n const commit = (nextRule: WorkflowRule) => {\n setInternalRule(nextRule);\n onChange?.(nextRule);\n };\n\n return (\n <section\n {...props}\n className={`eth-workflow-rule-builder ${className ?? \"\"}`}\n data-eth-component=\"RuleBuilder\"\n >\n <FormField label=\"Match\">\n <Select\n value={rule.combinator}\n options={[\n { value: \"all\", label: \"All conditions\" },\n { value: \"any\", label: \"Any condition\" }\n ]}\n onChange={(event) => commit({ ...rule, combinator: event.currentTarget.value as WorkflowRule[\"combinator\"] })}\n />\n </FormField>\n <div className=\"eth-workflow-rule-builder__conditions\">\n {rule.conditions.map((condition, index) => (\n <div key={index} className=\"eth-workflow-rule-builder__condition\">\n <ConditionBuilder\n value={condition}\n variables={variables}\n onChange={(nextCondition) => {\n const conditions = [...rule.conditions];\n conditions[index] = nextCondition;\n commit({ ...rule, conditions });\n }}\n />\n <Button\n intent=\"ghost\"\n density=\"compact\"\n onClick={() => commit({ ...rule, conditions: rule.conditions.filter((_, itemIndex) => itemIndex !== index) })}\n >\n Remove\n </Button>\n </div>\n ))}\n </div>\n <Button\n intent=\"secondary\"\n density=\"compact\"\n onClick={() => commit({ ...rule, conditions: [...rule.conditions, { field: variables[0] ?? \"\", operator: \"equals\", value: \"\" }] })}\n >\n Add condition\n </Button>\n </section>\n );\n}\n","import * as React from \"react\";\nimport { Button } from \"@echothink-ui/core\";\nimport { DataTable, type DataColumn } from \"@echothink-ui/data\";\nimport type { RuleSimulationPanelProps, RuleSimulationSample } from \"./types\";\n\ntype SimulationRow = RuleSimulationSample & {\n actualOutcome?: unknown;\n matched?: boolean;\n};\n\nexport function RuleSimulationPanel({\n rule,\n sampleInputs,\n results = [],\n onRun,\n className,\n ...props\n}: RuleSimulationPanelProps) {\n const resultMap = new Map(results.map((result) => [result.sampleId, result]));\n const rows: SimulationRow[] = sampleInputs.map((sample) => ({\n ...sample,\n actualOutcome: resultMap.get(sample.id)?.actualOutcome,\n matched: resultMap.get(sample.id)?.matched\n }));\n const columns: DataColumn<SimulationRow>[] = [\n { key: \"label\", header: \"Sample\" },\n { key: \"data\", header: \"Input\", render: (row) => <code>{JSON.stringify(row.data)}</code> },\n { key: \"expectedOutcome\", header: \"Expected\", render: (row) => <code>{JSON.stringify(row.expectedOutcome)}</code> },\n { key: \"actualOutcome\", header: \"Actual\", render: (row) => <code>{JSON.stringify(row.actualOutcome)}</code> },\n { key: \"matched\", header: \"Matched\", render: (row) => (row.matched ? \"Yes\" : row.matched === false ? \"No\" : \"Not run\") }\n ];\n\n return (\n <section\n {...props}\n className={`eth-workflow-rule-simulation ${className ?? \"\"}`}\n data-eth-component=\"RuleSimulationPanel\"\n >\n <header>\n <h3>Rule simulation</h3>\n {onRun ? <Button onClick={onRun}>Run</Button> : null}\n </header>\n <pre className=\"eth-workflow-rule-simulation__rule\"><code>{JSON.stringify(rule, null, 2)}</code></pre>\n <DataTable rows={rows} columns={columns} rowKey=\"id\" />\n </section>\n );\n}\n","import * as React from \"react\";\nimport { Button, FormField, Select, StatusDot, Textarea } from \"@echothink-ui/core\";\nimport type { WorkflowHandoffPanelProps } from \"./types\";\n\nexport function WorkflowHandoffPanel({\n item,\n assigneeOptions = [],\n onSubmit,\n className,\n ...props\n}: WorkflowHandoffPanelProps) {\n const [assigneeId, setAssigneeId] = React.useState(assigneeOptions[0]?.id ?? \"\");\n const [reason, setReason] = React.useState(\"\");\n\n return (\n <section\n {...props}\n className={`eth-workflow-handoff-panel ${className ?? \"\"}`}\n data-eth-component=\"WorkflowHandoffPanel\"\n >\n <header>\n <h3>Workflow handoff</h3>\n {item?.status ? <StatusDot status={item.status} label={item.status} /> : null}\n </header>\n {item ? <p>{item.label}</p> : null}\n <form onSubmit={(event) => { event.preventDefault(); onSubmit?.({ assigneeId, reason }); }}>\n <FormField label=\"Assignee\">\n <Select\n value={assigneeId}\n options={assigneeOptions.map((option) => ({ value: option.id, label: option.kind ? `${option.label} (${option.kind})` : option.label }))}\n onChange={(event) => setAssigneeId(event.currentTarget.value)}\n />\n </FormField>\n <FormField label=\"Reason\">\n <Textarea value={reason} rows={4} onChange={(event) => setReason(event.currentTarget.value)} />\n </FormField>\n <Button type=\"submit\" disabled={!assigneeId}>Handoff</Button>\n </form>\n </section>\n );\n}\n","import * as React from \"react\";\nimport { PipelineStage } from \"./PipelineStage\";\nimport type { WorkflowPipelineViewProps } from \"./types\";\n\nexport function WorkflowPipelineView({\n stages,\n activeStageId,\n onSelect,\n className,\n ...props\n}: WorkflowPipelineViewProps) {\n return (\n <section\n {...props}\n className={`eth-workflow-pipeline-view ${className ?? \"\"}`}\n data-eth-component=\"WorkflowPipelineView\"\n aria-label=\"Workflow pipeline\"\n >\n <ol className=\"eth-workflow-pipeline-view__stages\">\n {stages.map((stage, index) => (\n <li key={stage.id}>\n <PipelineStage\n stage={stage}\n active={stage.id === activeStageId}\n onSelect={onSelect}\n aria-posinset={index + 1}\n aria-setsize={stages.length}\n />\n </li>\n ))}\n </ol>\n </section>\n );\n}\n"],"mappings":"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","names":["import_core","import_jsx_runtime","import_core","import_jsx_runtime","import_core","import_jsx_runtime","import_core","import_jsx_runtime","React","import_core","import_jsx_runtime","import_core","import_jsx_runtime","React","import_core","import_jsx_runtime","import_jsx_runtime"]}
package/dist/index.css ADDED
@@ -0,0 +1,268 @@
1
+ @import "@echothink-ui/core/styles.css";
2
+
3
+ /* src/styles.css */
4
+ .eth-workflow-pipeline-view,
5
+ .eth-workflow-handoff-panel,
6
+ .eth-workflow-process-designer,
7
+ .eth-workflow-rule-builder,
8
+ .eth-workflow-condition-builder,
9
+ .eth-workflow-rule-simulation,
10
+ .eth-workflow-approval-editor,
11
+ .eth-workflow-process-timeline,
12
+ .eth-pipeline-stage,
13
+ .eth-process-designer,
14
+ .eth-rule-builder,
15
+ .eth-condition-builder,
16
+ .eth-rule-simulation,
17
+ .eth-workflow-handoff {
18
+ color: var(--eth-color-text-primary);
19
+ font-family: var(--eth-font-family);
20
+ }
21
+ .eth-workflow-pipeline-view,
22
+ .eth-workflow-handoff,
23
+ .eth-workflow-handoff-panel {
24
+ display: block;
25
+ overflow-x: auto;
26
+ padding-block-end: var(--eth-space-sm);
27
+ }
28
+ .eth-workflow-pipeline-view__stages {
29
+ align-items: stretch;
30
+ display: flex;
31
+ gap: var(--eth-space-md);
32
+ list-style: none;
33
+ margin: 0;
34
+ min-inline-size: max-content;
35
+ padding: 0;
36
+ }
37
+ .eth-workflow-pipeline-view__stages > li {
38
+ display: flex;
39
+ }
40
+ .eth-workflow-pipeline-stage,
41
+ .eth-pipeline-stage {
42
+ align-items: flex-start;
43
+ background: var(--eth-color-layer-01);
44
+ border: 1px solid var(--eth-color-border-subtle);
45
+ border-inline-start: 4px solid transparent;
46
+ border-radius: 0;
47
+ color: var(--eth-color-text-primary);
48
+ display: grid;
49
+ gap: var(--eth-space-sm);
50
+ font: inherit;
51
+ inline-size: 14rem;
52
+ min-block-size: 8rem;
53
+ padding: var(--eth-space-lg);
54
+ text-align: start;
55
+ transition: background-color 110ms cubic-bezier(0.2, 0, 0.38, 0.9), border-color 110ms cubic-bezier(0.2, 0, 0.38, 0.9);
56
+ }
57
+ button.eth-workflow-pipeline-stage,
58
+ button.eth-pipeline-stage {
59
+ cursor: pointer;
60
+ }
61
+ button.eth-workflow-pipeline-stage:hover,
62
+ button.eth-pipeline-stage:hover {
63
+ background: var(--eth-color-layer-hover);
64
+ }
65
+ .eth-workflow-pipeline-stage:focus-visible,
66
+ .eth-pipeline-stage:focus-visible {
67
+ outline: 2px solid var(--eth-color-focus);
68
+ outline-offset: -2px;
69
+ }
70
+ .eth-workflow-pipeline-stage--active,
71
+ .eth-pipeline-stage--active {
72
+ border-inline-start-color: var(--eth-color-interactive-primary);
73
+ }
74
+ .eth-workflow-pipeline-stage strong,
75
+ .eth-pipeline-stage strong {
76
+ font-weight: 600;
77
+ }
78
+ .eth-workflow-pipeline-stage small,
79
+ .eth-pipeline-stage small {
80
+ color: var(--eth-color-text-secondary);
81
+ }
82
+ .eth-workflow-process-designer,
83
+ .eth-process-designer {
84
+ background: var(--eth-color-background);
85
+ border: 1px solid var(--eth-color-border-subtle);
86
+ border-radius: 0;
87
+ display: grid;
88
+ gap: var(--eth-space-lg);
89
+ padding: var(--eth-space-lg);
90
+ }
91
+ .eth-workflow-process-designer > header,
92
+ .eth-process-designer > header,
93
+ .eth-workflow-handoff-panel > header,
94
+ .eth-workflow-rule-simulation > header {
95
+ align-items: center;
96
+ display: flex;
97
+ gap: var(--eth-space-md);
98
+ justify-content: space-between;
99
+ }
100
+ .eth-workflow-process-designer h3,
101
+ .eth-process-designer h3,
102
+ .eth-workflow-handoff-panel h3,
103
+ .eth-workflow-rule-simulation h3 {
104
+ margin: 0;
105
+ }
106
+ .eth-workflow-process-designer svg,
107
+ .eth-process-designer svg {
108
+ background-color: var(--eth-color-layer-01);
109
+ background-image: radial-gradient(var(--eth-color-border-subtle) 1px, transparent 1px);
110
+ background-size: var(--eth-space-2xl) var(--eth-space-2xl);
111
+ border: 1px solid var(--eth-color-border-subtle);
112
+ border-radius: 0;
113
+ display: block;
114
+ inline-size: 100%;
115
+ min-block-size: 26rem;
116
+ touch-action: none;
117
+ }
118
+ .eth-workflow-process-designer line,
119
+ .eth-process-designer line {
120
+ stroke: var(--eth-color-border-strong);
121
+ }
122
+ .eth-workflow-process-designer marker path,
123
+ .eth-process-designer marker path {
124
+ fill: var(--eth-color-border-strong);
125
+ }
126
+ .eth-workflow-process-designer text,
127
+ .eth-process-designer text {
128
+ fill: var(--eth-color-text-primary);
129
+ font-family: var(--eth-font-family);
130
+ }
131
+ .eth-workflow-process-designer__node {
132
+ cursor: grab;
133
+ }
134
+ .eth-workflow-process-designer__node:active {
135
+ cursor: grabbing;
136
+ }
137
+ .eth-workflow-process-designer__node rect,
138
+ .eth-workflow-process-designer__node polygon {
139
+ fill: var(--eth-color-layer-01);
140
+ rx: 0;
141
+ stroke: var(--eth-color-border-strong);
142
+ transition:
143
+ fill 110ms cubic-bezier(0.2, 0, 0.38, 0.9),
144
+ stroke 110ms cubic-bezier(0.2, 0, 0.38, 0.9),
145
+ stroke-width 110ms cubic-bezier(0.2, 0, 0.38, 0.9);
146
+ }
147
+ .eth-workflow-process-designer__node:hover rect,
148
+ .eth-workflow-process-designer__node:hover polygon {
149
+ fill: var(--eth-color-layer-hover);
150
+ }
151
+ .eth-workflow-process-designer__node--selected rect,
152
+ .eth-workflow-process-designer__node--selected polygon {
153
+ stroke: var(--eth-color-focus);
154
+ stroke-width: 3px;
155
+ }
156
+ .eth-workflow-process-designer__node--decision polygon {
157
+ stroke: var(--eth-color-warning);
158
+ }
159
+ .eth-workflow-process-designer__node--start rect {
160
+ stroke: var(--eth-color-success);
161
+ }
162
+ .eth-workflow-process-designer__node--end rect {
163
+ stroke: var(--eth-color-info);
164
+ }
165
+ .eth-workflow-rule-builder,
166
+ .eth-workflow-condition-builder,
167
+ .eth-rule-builder,
168
+ .eth-condition-builder {
169
+ display: grid;
170
+ gap: var(--eth-space-lg);
171
+ }
172
+ .eth-workflow-rule-builder__conditions {
173
+ display: grid;
174
+ gap: var(--eth-space-lg);
175
+ }
176
+ .eth-workflow-rule-builder__condition {
177
+ border: 1px solid var(--eth-color-border-subtle);
178
+ display: grid;
179
+ gap: var(--eth-space-md);
180
+ padding: var(--eth-space-lg);
181
+ }
182
+ .eth-workflow-condition-builder,
183
+ .eth-condition-builder {
184
+ grid-template-columns: repeat(3, minmax(0, 1fr));
185
+ }
186
+ .eth-workflow-rule-simulation,
187
+ .eth-rule-simulation {
188
+ border: 1px solid var(--eth-color-border-subtle);
189
+ border-radius: 0;
190
+ display: grid;
191
+ gap: var(--eth-space-lg);
192
+ padding: var(--eth-space-lg);
193
+ }
194
+ .eth-workflow-rule-simulation__rule {
195
+ background: var(--eth-color-layer-02);
196
+ border: 1px solid var(--eth-color-border-subtle);
197
+ color: var(--eth-color-text-primary);
198
+ font-family: var(--eth-font-mono);
199
+ margin: 0;
200
+ overflow: auto;
201
+ padding: var(--eth-space-md);
202
+ }
203
+ .eth-workflow-handoff-panel {
204
+ background: var(--eth-color-layer-01);
205
+ border: 1px solid var(--eth-color-border-subtle);
206
+ border-radius: 0;
207
+ display: grid;
208
+ gap: var(--eth-space-lg);
209
+ min-inline-size: min(36rem, 100%);
210
+ padding: var(--eth-space-lg);
211
+ }
212
+ .eth-workflow-handoff-panel p {
213
+ color: var(--eth-color-text-secondary);
214
+ margin: 0;
215
+ }
216
+ .eth-workflow-handoff-panel form {
217
+ display: grid;
218
+ gap: var(--eth-space-lg);
219
+ }
220
+ .eth-workflow-approval-editor {
221
+ display: grid;
222
+ gap: var(--eth-space-lg);
223
+ }
224
+ .eth-workflow-approval-editor__step {
225
+ align-items: center;
226
+ border: 1px solid var(--eth-color-border-subtle);
227
+ display: grid;
228
+ gap: var(--eth-space-md);
229
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
230
+ padding: var(--eth-space-md);
231
+ }
232
+ .eth-workflow-process-timeline {
233
+ display: grid;
234
+ gap: var(--eth-space-lg);
235
+ }
236
+ .eth-workflow-process-timeline ol {
237
+ border-inline-start: 1px solid var(--eth-color-border-subtle);
238
+ display: grid;
239
+ gap: var(--eth-space-md);
240
+ list-style: none;
241
+ margin: 0;
242
+ padding: 0 0 0 var(--eth-space-lg);
243
+ }
244
+ .eth-workflow-process-timeline li {
245
+ align-items: center;
246
+ display: flex;
247
+ gap: var(--eth-space-sm);
248
+ }
249
+ .eth-workflow-process-timeline time {
250
+ color: var(--eth-color-text-secondary);
251
+ font-size: calc(0.75rem * var(--eth-text-scale, 1));
252
+ margin-inline-start: auto;
253
+ }
254
+ @media (max-width: 42rem) {
255
+ .eth-workflow-condition-builder,
256
+ .eth-condition-builder,
257
+ .eth-workflow-approval-editor__step {
258
+ grid-template-columns: 1fr;
259
+ }
260
+ .eth-workflow-process-designer > header,
261
+ .eth-process-designer > header,
262
+ .eth-workflow-handoff-panel > header,
263
+ .eth-workflow-rule-simulation > header {
264
+ align-items: stretch;
265
+ flex-direction: column;
266
+ }
267
+ }
268
+ /*# sourceMappingURL=index.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/styles.css"],"sourcesContent":["@import \"@echothink-ui/core/styles.css\";\n\n/* Carbon-aligned styles for this package's custom components */\n\n.eth-workflow-pipeline-view,\n.eth-workflow-handoff-panel,\n.eth-workflow-process-designer,\n.eth-workflow-rule-builder,\n.eth-workflow-condition-builder,\n.eth-workflow-rule-simulation,\n.eth-workflow-approval-editor,\n.eth-workflow-process-timeline,\n.eth-pipeline-stage,\n.eth-process-designer,\n.eth-rule-builder,\n.eth-condition-builder,\n.eth-rule-simulation,\n.eth-workflow-handoff {\n color: var(--eth-color-text-primary);\n font-family: var(--eth-font-family);\n}\n\n.eth-workflow-pipeline-view,\n.eth-workflow-handoff,\n.eth-workflow-handoff-panel {\n display: block;\n overflow-x: auto;\n padding-block-end: var(--eth-space-sm);\n}\n\n.eth-workflow-pipeline-view__stages {\n align-items: stretch;\n display: flex;\n gap: var(--eth-space-md);\n list-style: none;\n margin: 0;\n min-inline-size: max-content;\n padding: 0;\n}\n\n.eth-workflow-pipeline-view__stages > li {\n display: flex;\n}\n\n.eth-workflow-pipeline-stage,\n.eth-pipeline-stage {\n align-items: flex-start;\n background: var(--eth-color-layer-01);\n border: 1px solid var(--eth-color-border-subtle);\n border-inline-start: 4px solid transparent;\n border-radius: 0;\n color: var(--eth-color-text-primary);\n display: grid;\n gap: var(--eth-space-sm);\n font: inherit;\n inline-size: 14rem;\n min-block-size: 8rem;\n padding: var(--eth-space-lg);\n text-align: start;\n transition:\n background-color 110ms cubic-bezier(0.2, 0, 0.38, 0.9),\n border-color 110ms cubic-bezier(0.2, 0, 0.38, 0.9);\n}\n\nbutton.eth-workflow-pipeline-stage,\nbutton.eth-pipeline-stage {\n cursor: pointer;\n}\n\nbutton.eth-workflow-pipeline-stage:hover,\nbutton.eth-pipeline-stage:hover {\n background: var(--eth-color-layer-hover);\n}\n\n.eth-workflow-pipeline-stage:focus-visible,\n.eth-pipeline-stage:focus-visible {\n outline: 2px solid var(--eth-color-focus);\n outline-offset: -2px;\n}\n\n.eth-workflow-pipeline-stage--active,\n.eth-pipeline-stage--active {\n border-inline-start-color: var(--eth-color-interactive-primary);\n}\n\n.eth-workflow-pipeline-stage strong,\n.eth-pipeline-stage strong {\n font-weight: 600;\n}\n\n.eth-workflow-pipeline-stage small,\n.eth-pipeline-stage small {\n color: var(--eth-color-text-secondary);\n}\n\n.eth-workflow-process-designer,\n.eth-process-designer {\n background: var(--eth-color-background);\n border: 1px solid var(--eth-color-border-subtle);\n border-radius: 0;\n display: grid;\n gap: var(--eth-space-lg);\n padding: var(--eth-space-lg);\n}\n\n.eth-workflow-process-designer > header,\n.eth-process-designer > header,\n.eth-workflow-handoff-panel > header,\n.eth-workflow-rule-simulation > header {\n align-items: center;\n display: flex;\n gap: var(--eth-space-md);\n justify-content: space-between;\n}\n\n.eth-workflow-process-designer h3,\n.eth-process-designer h3,\n.eth-workflow-handoff-panel h3,\n.eth-workflow-rule-simulation h3 {\n margin: 0;\n}\n\n.eth-workflow-process-designer svg,\n.eth-process-designer svg {\n background-color: var(--eth-color-layer-01);\n background-image: radial-gradient(var(--eth-color-border-subtle) 1px, transparent 1px);\n background-size: var(--eth-space-2xl) var(--eth-space-2xl);\n border: 1px solid var(--eth-color-border-subtle);\n border-radius: 0;\n display: block;\n inline-size: 100%;\n min-block-size: 26rem;\n touch-action: none;\n}\n\n.eth-workflow-process-designer line,\n.eth-process-designer line {\n stroke: var(--eth-color-border-strong);\n}\n\n.eth-workflow-process-designer marker path,\n.eth-process-designer marker path {\n fill: var(--eth-color-border-strong);\n}\n\n.eth-workflow-process-designer text,\n.eth-process-designer text {\n fill: var(--eth-color-text-primary);\n font-family: var(--eth-font-family);\n}\n\n.eth-workflow-process-designer__node {\n cursor: grab;\n}\n\n.eth-workflow-process-designer__node:active {\n cursor: grabbing;\n}\n\n.eth-workflow-process-designer__node rect,\n.eth-workflow-process-designer__node polygon {\n fill: var(--eth-color-layer-01);\n rx: 0;\n stroke: var(--eth-color-border-strong);\n transition:\n fill 110ms cubic-bezier(0.2, 0, 0.38, 0.9),\n stroke 110ms cubic-bezier(0.2, 0, 0.38, 0.9),\n stroke-width 110ms cubic-bezier(0.2, 0, 0.38, 0.9);\n}\n\n.eth-workflow-process-designer__node:hover rect,\n.eth-workflow-process-designer__node:hover polygon {\n fill: var(--eth-color-layer-hover);\n}\n\n.eth-workflow-process-designer__node--selected rect,\n.eth-workflow-process-designer__node--selected polygon {\n stroke: var(--eth-color-focus);\n stroke-width: 3px;\n}\n\n.eth-workflow-process-designer__node--decision polygon {\n stroke: var(--eth-color-warning);\n}\n\n.eth-workflow-process-designer__node--start rect {\n stroke: var(--eth-color-success);\n}\n\n.eth-workflow-process-designer__node--end rect {\n stroke: var(--eth-color-info);\n}\n\n.eth-workflow-rule-builder,\n.eth-workflow-condition-builder,\n.eth-rule-builder,\n.eth-condition-builder {\n display: grid;\n gap: var(--eth-space-lg);\n}\n\n.eth-workflow-rule-builder__conditions {\n display: grid;\n gap: var(--eth-space-lg);\n}\n\n.eth-workflow-rule-builder__condition {\n border: 1px solid var(--eth-color-border-subtle);\n display: grid;\n gap: var(--eth-space-md);\n padding: var(--eth-space-lg);\n}\n\n.eth-workflow-condition-builder,\n.eth-condition-builder {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n\n.eth-workflow-rule-simulation,\n.eth-rule-simulation {\n border: 1px solid var(--eth-color-border-subtle);\n border-radius: 0;\n display: grid;\n gap: var(--eth-space-lg);\n padding: var(--eth-space-lg);\n}\n\n.eth-workflow-rule-simulation__rule {\n background: var(--eth-color-layer-02);\n border: 1px solid var(--eth-color-border-subtle);\n color: var(--eth-color-text-primary);\n font-family: var(--eth-font-mono);\n margin: 0;\n overflow: auto;\n padding: var(--eth-space-md);\n}\n\n.eth-workflow-handoff-panel {\n background: var(--eth-color-layer-01);\n border: 1px solid var(--eth-color-border-subtle);\n border-radius: 0;\n display: grid;\n gap: var(--eth-space-lg);\n min-inline-size: min(36rem, 100%);\n padding: var(--eth-space-lg);\n}\n\n.eth-workflow-handoff-panel p {\n color: var(--eth-color-text-secondary);\n margin: 0;\n}\n\n.eth-workflow-handoff-panel form {\n display: grid;\n gap: var(--eth-space-lg);\n}\n\n.eth-workflow-approval-editor {\n display: grid;\n gap: var(--eth-space-lg);\n}\n\n.eth-workflow-approval-editor__step {\n align-items: center;\n border: 1px solid var(--eth-color-border-subtle);\n display: grid;\n gap: var(--eth-space-md);\n grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;\n padding: var(--eth-space-md);\n}\n\n.eth-workflow-process-timeline {\n display: grid;\n gap: var(--eth-space-lg);\n}\n\n.eth-workflow-process-timeline ol {\n border-inline-start: 1px solid var(--eth-color-border-subtle);\n display: grid;\n gap: var(--eth-space-md);\n list-style: none;\n margin: 0;\n padding: 0 0 0 var(--eth-space-lg);\n}\n\n.eth-workflow-process-timeline li {\n align-items: center;\n display: flex;\n gap: var(--eth-space-sm);\n}\n\n.eth-workflow-process-timeline time {\n color: var(--eth-color-text-secondary);\n font-size: calc(0.75rem * var(--eth-text-scale, 1));\n margin-inline-start: auto;\n}\n\n@media (max-width: 42rem) {\n .eth-workflow-condition-builder,\n .eth-condition-builder,\n .eth-workflow-approval-editor__step {\n grid-template-columns: 1fr;\n }\n\n .eth-workflow-process-designer > header,\n .eth-process-designer > header,\n .eth-workflow-handoff-panel > header,\n .eth-workflow-rule-simulation > header {\n align-items: stretch;\n flex-direction: column;\n }\n}\n"],"mappings":";;;AAIA,CAAC;AACD,CAAC;AACD,CAAC;AACD,CAAC;AACD,CAAC;AACD,CAAC;AACD,CAAC;AACD,CAAC;AACD,CAAC;AACD,CAAC;AACD,CAAC;AACD,CAAC;AACD,CAAC;AACD,CAAC;AACC,SAAO,IAAI;AACX,eAAa,IAAI;AACnB;AAEA,CAlBC;AAmBD,CANC;AAOD,CAnBC;AAoBC,WAAS;AACT,cAAY;AACZ,qBAAmB,IAAI;AACzB;AAEA,CAAC;AACC,eAAa;AACb,WAAS;AACT,OAAK,IAAI;AACT,cAAY;AACZ,UAAQ;AACR,mBAAiB;AACjB,WAAS;AACX;AAEA,CAVC,mCAUmC,EAAE;AACpC,WAAS;AACX;AAEA,CAAC;AACD,CAjCC;AAkCC,eAAa;AACb,cAAY,IAAI;AAChB,UAAQ,IAAI,MAAM,IAAI;AACtB,uBAAqB,IAAI,MAAM;AAC/B,iBAAe;AACf,SAAO,IAAI;AACX,WAAS;AACT,OAAK,IAAI;AACT,QAAM;AACN,eAAa;AACb,kBAAgB;AAChB,WAAS,IAAI;AACb,cAAY;AACZ,cACE,iBAAiB,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EACtD,aAAa,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE;AAClD;AAEA,MAAM,CApBL;AAqBD,MAAM,CArDL;AAsDC,UAAQ;AACV;AAEA,MAAM,CAzBL,2BAyBiC;AAClC,MAAM,CA1DL,kBA0DwB;AACvB,cAAY,IAAI;AAClB;AAEA,CA9BC,2BA8B2B;AAC5B,CA/DC,kBA+DkB;AACjB,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB;AAClB;AAEA,CAAC;AACD,CAAC;AACC,6BAA2B,IAAI;AACjC;AAEA,CAzCC,4BAyC4B;AAC7B,CA1EC,mBA0EmB;AAClB,eAAa;AACf;AAEA,CA9CC,4BA8C4B;AAC7B,CA/EC,mBA+EmB;AAClB,SAAO,IAAI;AACb;AAEA,CAzFC;AA0FD,CAnFC;AAoFC,cAAY,IAAI;AAChB,UAAQ,IAAI,MAAM,IAAI;AACtB,iBAAe;AACf,WAAS;AACT,OAAK,IAAI;AACT,WAAS,IAAI;AACf;AAEA,CAnGC,8BAmG8B,EAAE;AACjC,CA7FC,qBA6FqB,EAAE;AACxB,CAtGC,2BAsG2B,EAAE;AAC9B,CAnGC,6BAmG6B,EAAE;AAC9B,eAAa;AACb,WAAS;AACT,OAAK,IAAI;AACT,mBAAiB;AACnB;AAEA,CA7GC,8BA6G8B;AAC/B,CAvGC,qBAuGqB;AACtB,CAhHC,2BAgH2B;AAC5B,CA7GC,6BA6G6B;AAC5B,UAAQ;AACV;AAEA,CApHC,8BAoH8B;AAC/B,CA9GC,qBA8GqB;AACpB,oBAAkB,IAAI;AACtB,oBAAkB,gBAAgB,IAAI,2BAA2B,GAAG,EAAE,YAAY;AAClF,mBAAiB,IAAI,iBAAiB,IAAI;AAC1C,UAAQ,IAAI,MAAM,IAAI;AACtB,iBAAe;AACf,WAAS;AACT,eAAa;AACb,kBAAgB;AAChB,gBAAc;AAChB;AAEA,CAjIC,8BAiI8B;AAC/B,CA3HC,qBA2HqB;AACpB,UAAQ,IAAI;AACd;AAEA,CAtIC,8BAsI8B,OAAO;AACtC,CAhIC,qBAgIqB,OAAO;AAC3B,QAAM,IAAI;AACZ;AAEA,CA3IC,8BA2I8B;AAC/B,CArIC,qBAqIqB;AACpB,QAAM,IAAI;AACV,eAAa,IAAI;AACnB;AAEA,CAAC;AACC,UAAQ;AACV;AAEA,CAJC,mCAImC;AAClC,UAAQ;AACV;AAEA,CARC,oCAQoC;AACrC,CATC,oCASoC;AACnC,QAAM,IAAI;AACV,MAAI;AACJ,UAAQ,IAAI;AACZ;AAAA,IACE,KAAK,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI;AAAA,IAC1C,OAAO,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI;AAAA,IAC5C,aAAa,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE;AAClD;AAEA,CAnBC,mCAmBmC,OAAO;AAC3C,CApBC,mCAoBmC,OAAO;AACzC,QAAM,IAAI;AACZ;AAEA,CAAC,8CAA8C;AAC/C,CADC,8CAC8C;AAC7C,UAAQ,IAAI;AACZ,gBAAc;AAChB;AAEA,CAAC,8CAA8C;AAC7C,UAAQ,IAAI;AACd;AAEA,CAAC,2CAA2C;AAC1C,UAAQ,IAAI;AACd;AAEA,CAAC,yCAAyC;AACxC,UAAQ,IAAI;AACd;AAEA,CA1LC;AA2LD,CA1LC;AA2LD,CArLC;AAsLD,CArLC;AAsLC,WAAS;AACT,OAAK,IAAI;AACX;AAEA,CAAC;AACC,WAAS;AACT,OAAK,IAAI;AACX;AAEA,CAAC;AACC,UAAQ,IAAI,MAAM,IAAI;AACtB,WAAS;AACT,OAAK,IAAI;AACT,WAAS,IAAI;AACf;AAEA,CA7MC;AA8MD,CAvMC;AAwMC,yBAAuB,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE;AAC7C;AAEA,CAjNC;AAkND,CA3MC;AA4MC,UAAQ,IAAI,MAAM,IAAI;AACtB,iBAAe;AACf,WAAS;AACT,OAAK,IAAI;AACT,WAAS,IAAI;AACf;AAEA,CAAC;AACC,cAAY,IAAI;AAChB,UAAQ,IAAI,MAAM,IAAI;AACtB,SAAO,IAAI;AACX,eAAa,IAAI;AACjB,UAAQ;AACR,YAAU;AACV,WAAS,IAAI;AACf;AAEA,CAxOC;AAyOC,cAAY,IAAI;AAChB,UAAQ,IAAI,MAAM,IAAI;AACtB,iBAAe;AACf,WAAS;AACT,OAAK,IAAI;AACT,mBAAiB,IAAI,KAAK,EAAE;AAC5B,WAAS,IAAI;AACf;AAEA,CAlPC,2BAkP2B;AAC1B,SAAO,IAAI;AACX,UAAQ;AACV;AAEA,CAvPC,2BAuP2B;AAC1B,WAAS;AACT,OAAK,IAAI;AACX;AAEA,CAvPC;AAwPC,WAAS;AACT,OAAK,IAAI;AACX;AAEA,CAAC;AACC,eAAa;AACb,UAAQ,IAAI,MAAM,IAAI;AACtB,WAAS;AACT,OAAK,IAAI;AACT,yBAAuB,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,KAAK;AACrD,WAAS,IAAI;AACf;AAEA,CApQC;AAqQC,WAAS;AACT,OAAK,IAAI;AACX;AAEA,CAzQC,8BAyQ8B;AAC7B,uBAAqB,IAAI,MAAM,IAAI;AACnC,WAAS;AACT,OAAK,IAAI;AACT,cAAY;AACZ,UAAQ;AACR,WAAS,EAAE,EAAE,EAAE,IAAI;AACrB;AAEA,CAlRC,8BAkR8B;AAC7B,eAAa;AACb,WAAS;AACT,OAAK,IAAI;AACX;AAEA,CAxRC,8BAwR8B;AAC7B,SAAO,IAAI;AACX,aAAW,KAAK,QAAQ,EAAE,IAAI,gBAAgB,EAAE;AAChD,uBAAqB;AACvB;AAEA,QAAO,WAAY;AACjB,GAlSD;AAAA,EAmSC,CA5RD;AAAA,EA6RC,CAtCD;AAuCG,2BAAuB;AACzB;AAEA,GA1SD,8BA0SgC,EAAE;AAAA,EACjC,CApSD,qBAoSuB,EAAE;AAAA,EACxB,CA7SD,2BA6S6B,EAAE;AAAA,EAC9B,CA1SD,6BA0S+B,EAAE;AAC9B,iBAAa;AACb,oBAAgB;AAClB;AACF;","names":[]}
@@ -0,0 +1,13 @@
1
+ import "./styles.css";
2
+ export type { ApprovalWorkflowEditorProps, ConditionBuilderProps, PipelineStageProps, ProcessDesignerProps, ProcessEdge, ProcessNode, ProcessTimelineProps, RuleBuilderProps, RuleSimulationPanelProps, RuleSimulationResult, RuleSimulationSample, WorkflowHandoffPanelProps, WorkflowPipelineViewProps, WorkflowRule, WorkflowRuleCondition, WorkflowStage } from "./components/types";
3
+ export { ApprovalWorkflowEditor } from "./components/ApprovalWorkflowEditor";
4
+ export { ConditionBuilder } from "./components/ConditionBuilder";
5
+ export { PipelineStage } from "./components/PipelineStage";
6
+ export { ProcessDesigner } from "./components/ProcessDesigner";
7
+ export { ProcessTimeline } from "./components/ProcessTimeline";
8
+ export { RuleBuilder } from "./components/RuleBuilder";
9
+ export { RuleSimulationPanel } from "./components/RuleSimulationPanel";
10
+ export { WorkflowHandoffPanel } from "./components/WorkflowHandoffPanel";
11
+ export { WorkflowPipelineView } from "./components/WorkflowPipelineView";
12
+ export declare const WorkflowComponentNames: readonly ["WorkflowPipelineView", "PipelineStage", "ProcessDesigner", "RuleBuilder", "ConditionBuilder", "RuleSimulationPanel", "WorkflowHandoffPanel", "ApprovalWorkflowEditor", "ProcessTimeline"];
13
+ export type WorkflowComponentName = (typeof WorkflowComponentNames)[number];