@mindlogic-ai/logician-ui 3.1.0 → 3.2.0-alpha.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.
- package/dist/components/Icon/_constants/iconList.d.ts +1 -1
- package/dist/components/Icon/_constants/iconList.d.ts.map +1 -1
- package/dist/components/Icon/_constants/iconList.js +18 -0
- package/dist/components/Icon/_constants/iconList.js.map +1 -1
- package/dist/components/Icon/_constants/iconList.mjs +20 -2
- package/dist/components/Icon/_constants/iconList.mjs.map +1 -1
- package/dist/components/Icon/index.d.ts +2 -1
- package/dist/components/Icon/index.d.ts.map +1 -1
- package/dist/components/Icon/index.js +20 -1
- package/dist/components/Icon/index.js.map +1 -1
- package/dist/components/Icon/index.mjs +4 -2
- package/dist/components/Icon/index.mjs.map +1 -1
- package/dist/components/Tree/Tree.d.ts +20 -0
- package/dist/components/Tree/Tree.d.ts.map +1 -0
- package/dist/components/Tree/Tree.js +43 -0
- package/dist/components/Tree/Tree.js.map +1 -0
- package/dist/components/Tree/Tree.mjs +41 -0
- package/dist/components/Tree/Tree.mjs.map +1 -0
- package/dist/components/Tree/Tree.types.d.ts +21 -0
- package/dist/components/Tree/Tree.types.d.ts.map +1 -0
- package/dist/components/Tree/TreeBranch.d.ts +3 -0
- package/dist/components/Tree/TreeBranch.d.ts.map +1 -0
- package/dist/components/Tree/TreeBranch.js +14 -0
- package/dist/components/Tree/TreeBranch.js.map +1 -0
- package/dist/components/Tree/TreeBranch.mjs +12 -0
- package/dist/components/Tree/TreeBranch.mjs.map +1 -0
- package/dist/components/Tree/TreeBranchContent.d.ts +3 -0
- package/dist/components/Tree/TreeBranchContent.d.ts.map +1 -0
- package/dist/components/Tree/TreeBranchContent.js +14 -0
- package/dist/components/Tree/TreeBranchContent.js.map +1 -0
- package/dist/components/Tree/TreeBranchContent.mjs +12 -0
- package/dist/components/Tree/TreeBranchContent.mjs.map +1 -0
- package/dist/components/Tree/TreeBranchControl.d.ts +3 -0
- package/dist/components/Tree/TreeBranchControl.d.ts.map +1 -0
- package/dist/components/Tree/TreeBranchControl.js +19 -0
- package/dist/components/Tree/TreeBranchControl.js.map +1 -0
- package/dist/components/Tree/TreeBranchControl.mjs +17 -0
- package/dist/components/Tree/TreeBranchControl.mjs.map +1 -0
- package/dist/components/Tree/TreeBranchIndentGuide.d.ts +3 -0
- package/dist/components/Tree/TreeBranchIndentGuide.d.ts.map +1 -0
- package/dist/components/Tree/TreeBranchIndentGuide.js +20 -0
- package/dist/components/Tree/TreeBranchIndentGuide.js.map +1 -0
- package/dist/components/Tree/TreeBranchIndentGuide.mjs +18 -0
- package/dist/components/Tree/TreeBranchIndentGuide.mjs.map +1 -0
- package/dist/components/Tree/TreeBranchIndicator.d.ts +3 -0
- package/dist/components/Tree/TreeBranchIndicator.d.ts.map +1 -0
- package/dist/components/Tree/TreeBranchIndicator.js +15 -0
- package/dist/components/Tree/TreeBranchIndicator.js.map +1 -0
- package/dist/components/Tree/TreeBranchIndicator.mjs +13 -0
- package/dist/components/Tree/TreeBranchIndicator.mjs.map +1 -0
- package/dist/components/Tree/TreeBranchText.d.ts +3 -0
- package/dist/components/Tree/TreeBranchText.d.ts.map +1 -0
- package/dist/components/Tree/TreeBranchText.js +14 -0
- package/dist/components/Tree/TreeBranchText.js.map +1 -0
- package/dist/components/Tree/TreeBranchText.mjs +12 -0
- package/dist/components/Tree/TreeBranchText.mjs.map +1 -0
- package/dist/components/Tree/TreeBranchTrigger.d.ts +3 -0
- package/dist/components/Tree/TreeBranchTrigger.d.ts.map +1 -0
- package/dist/components/Tree/TreeBranchTrigger.js +15 -0
- package/dist/components/Tree/TreeBranchTrigger.js.map +1 -0
- package/dist/components/Tree/TreeBranchTrigger.mjs +13 -0
- package/dist/components/Tree/TreeBranchTrigger.mjs.map +1 -0
- package/dist/components/Tree/TreeItem.d.ts +3 -0
- package/dist/components/Tree/TreeItem.d.ts.map +1 -0
- package/dist/components/Tree/TreeItem.js +25 -0
- package/dist/components/Tree/TreeItem.js.map +1 -0
- package/dist/components/Tree/TreeItem.mjs +23 -0
- package/dist/components/Tree/TreeItem.mjs.map +1 -0
- package/dist/components/Tree/TreeItemIndicator.d.ts +3 -0
- package/dist/components/Tree/TreeItemIndicator.d.ts.map +1 -0
- package/dist/components/Tree/TreeItemIndicator.js +14 -0
- package/dist/components/Tree/TreeItemIndicator.js.map +1 -0
- package/dist/components/Tree/TreeItemIndicator.mjs +12 -0
- package/dist/components/Tree/TreeItemIndicator.mjs.map +1 -0
- package/dist/components/Tree/TreeItemText.d.ts +3 -0
- package/dist/components/Tree/TreeItemText.d.ts.map +1 -0
- package/dist/components/Tree/TreeItemText.js +14 -0
- package/dist/components/Tree/TreeItemText.js.map +1 -0
- package/dist/components/Tree/TreeItemText.mjs +12 -0
- package/dist/components/Tree/TreeItemText.mjs.map +1 -0
- package/dist/components/Tree/TreeLabel.d.ts +3 -0
- package/dist/components/Tree/TreeLabel.d.ts.map +1 -0
- package/dist/components/Tree/TreeLabel.js +14 -0
- package/dist/components/Tree/TreeLabel.js.map +1 -0
- package/dist/components/Tree/TreeLabel.mjs +12 -0
- package/dist/components/Tree/TreeLabel.mjs.map +1 -0
- package/dist/components/Tree/TreeNode.d.ts +5 -0
- package/dist/components/Tree/TreeNode.d.ts.map +1 -0
- package/dist/components/Tree/TreeNode.js +9 -0
- package/dist/components/Tree/TreeNode.js.map +1 -0
- package/dist/components/Tree/TreeNode.mjs +7 -0
- package/dist/components/Tree/TreeNode.mjs.map +1 -0
- package/dist/components/Tree/TreeNodeCheckbox.d.ts +3 -0
- package/dist/components/Tree/TreeNodeCheckbox.d.ts.map +1 -0
- package/dist/components/Tree/TreeNodeCheckbox.js +14 -0
- package/dist/components/Tree/TreeNodeCheckbox.js.map +1 -0
- package/dist/components/Tree/TreeNodeCheckbox.mjs +12 -0
- package/dist/components/Tree/TreeNodeCheckbox.mjs.map +1 -0
- package/dist/components/Tree/TreeNodeContext.d.ts +2 -0
- package/dist/components/Tree/TreeNodeContext.d.ts.map +1 -0
- package/dist/components/Tree/TreeNodeContext.js +9 -0
- package/dist/components/Tree/TreeNodeContext.js.map +1 -0
- package/dist/components/Tree/TreeNodeContext.mjs +7 -0
- package/dist/components/Tree/TreeNodeContext.mjs.map +1 -0
- package/dist/components/Tree/TreeNodeProvider.d.ts +5 -0
- package/dist/components/Tree/TreeNodeProvider.d.ts.map +1 -0
- package/dist/components/Tree/TreeNodeProvider.js +9 -0
- package/dist/components/Tree/TreeNodeProvider.js.map +1 -0
- package/dist/components/Tree/TreeNodeProvider.mjs +7 -0
- package/dist/components/Tree/TreeNodeProvider.mjs.map +1 -0
- package/dist/components/Tree/TreeRoot.d.ts +3 -0
- package/dist/components/Tree/TreeRoot.d.ts.map +1 -0
- package/dist/components/Tree/TreeRoot.js +14 -0
- package/dist/components/Tree/TreeRoot.js.map +1 -0
- package/dist/components/Tree/TreeRoot.mjs +12 -0
- package/dist/components/Tree/TreeRoot.mjs.map +1 -0
- package/dist/components/Tree/TreeTree.d.ts +3 -0
- package/dist/components/Tree/TreeTree.d.ts.map +1 -0
- package/dist/components/Tree/TreeTree.js +14 -0
- package/dist/components/Tree/TreeTree.js.map +1 -0
- package/dist/components/Tree/TreeTree.mjs +12 -0
- package/dist/components/Tree/TreeTree.mjs.map +1 -0
- package/dist/components/Tree/index.d.ts +23 -0
- package/dist/components/Tree/index.d.ts.map +1 -0
- package/dist/components/Workflow/Workflow.d.ts +3 -0
- package/dist/components/Workflow/Workflow.d.ts.map +1 -0
- package/dist/components/Workflow/Workflow.js +109 -0
- package/dist/components/Workflow/Workflow.js.map +1 -0
- package/dist/components/Workflow/Workflow.mjs +107 -0
- package/dist/components/Workflow/Workflow.mjs.map +1 -0
- package/dist/components/Workflow/Workflow.translations.json.js +164 -0
- package/dist/components/Workflow/Workflow.translations.json.js.map +1 -0
- package/dist/components/Workflow/Workflow.translations.json.mjs +138 -0
- package/dist/components/Workflow/Workflow.translations.json.mjs.map +1 -0
- package/dist/components/Workflow/Workflow.types.d.ts +435 -0
- package/dist/components/Workflow/Workflow.types.d.ts.map +1 -0
- package/dist/components/Workflow/Workflow.types.js +19 -0
- package/dist/components/Workflow/Workflow.types.js.map +1 -0
- package/dist/components/Workflow/Workflow.types.mjs +16 -0
- package/dist/components/Workflow/Workflow.types.mjs.map +1 -0
- package/dist/components/Workflow/WorkflowContext/WorkflowContext.d.ts +10 -0
- package/dist/components/Workflow/WorkflowContext/WorkflowContext.d.ts.map +1 -0
- package/dist/components/Workflow/WorkflowContext/WorkflowContext.js +163 -0
- package/dist/components/Workflow/WorkflowContext/WorkflowContext.js.map +1 -0
- package/dist/components/Workflow/WorkflowContext/WorkflowContext.mjs +159 -0
- package/dist/components/Workflow/WorkflowContext/WorkflowContext.mjs.map +1 -0
- package/dist/components/Workflow/WorkflowContext/WorkflowContext.types.d.ts +117 -0
- package/dist/components/Workflow/WorkflowContext/WorkflowContext.types.d.ts.map +1 -0
- package/dist/components/Workflow/WorkflowContext/index.d.ts +3 -0
- package/dist/components/Workflow/WorkflowContext/index.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/Canvas/BranchLabelBadge.d.ts +19 -0
- package/dist/components/Workflow/canvas/Canvas/BranchLabelBadge.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/Canvas/BranchLabelBadge.js +44 -0
- package/dist/components/Workflow/canvas/Canvas/BranchLabelBadge.js.map +1 -0
- package/dist/components/Workflow/canvas/Canvas/BranchLabelBadge.mjs +42 -0
- package/dist/components/Workflow/canvas/Canvas/BranchLabelBadge.mjs.map +1 -0
- package/dist/components/Workflow/canvas/Canvas/Canvas.d.ts +10 -0
- package/dist/components/Workflow/canvas/Canvas/Canvas.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/Canvas/Canvas.js +531 -0
- package/dist/components/Workflow/canvas/Canvas/Canvas.js.map +1 -0
- package/dist/components/Workflow/canvas/Canvas/Canvas.mjs +529 -0
- package/dist/components/Workflow/canvas/Canvas/Canvas.mjs.map +1 -0
- package/dist/components/Workflow/canvas/Canvas/Canvas.styles.d.ts +53 -0
- package/dist/components/Workflow/canvas/Canvas/Canvas.styles.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/Canvas/Canvas.styles.js +96 -0
- package/dist/components/Workflow/canvas/Canvas/Canvas.styles.js.map +1 -0
- package/dist/components/Workflow/canvas/Canvas/Canvas.styles.mjs +93 -0
- package/dist/components/Workflow/canvas/Canvas/Canvas.styles.mjs.map +1 -0
- package/dist/components/Workflow/canvas/Canvas/CanvasControls.d.ts +27 -0
- package/dist/components/Workflow/canvas/Canvas/CanvasControls.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/Canvas/CanvasControls.js +70 -0
- package/dist/components/Workflow/canvas/Canvas/CanvasControls.js.map +1 -0
- package/dist/components/Workflow/canvas/Canvas/CanvasControls.mjs +68 -0
- package/dist/components/Workflow/canvas/Canvas/CanvasControls.mjs.map +1 -0
- package/dist/components/Workflow/canvas/Canvas/LabeledEdge.d.ts +10 -0
- package/dist/components/Workflow/canvas/Canvas/LabeledEdge.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/Canvas/LabeledEdge.js +106 -0
- package/dist/components/Workflow/canvas/Canvas/LabeledEdge.js.map +1 -0
- package/dist/components/Workflow/canvas/Canvas/LabeledEdge.mjs +104 -0
- package/dist/components/Workflow/canvas/Canvas/LabeledEdge.mjs.map +1 -0
- package/dist/components/Workflow/canvas/Canvas/edgeLabelVariant.d.ts +13 -0
- package/dist/components/Workflow/canvas/Canvas/edgeLabelVariant.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/Canvas/edgeLabelVariant.js +18 -0
- package/dist/components/Workflow/canvas/Canvas/edgeLabelVariant.js.map +1 -0
- package/dist/components/Workflow/canvas/Canvas/edgeLabelVariant.mjs +16 -0
- package/dist/components/Workflow/canvas/Canvas/edgeLabelVariant.mjs.map +1 -0
- package/dist/components/Workflow/canvas/Canvas/index.d.ts +2 -0
- package/dist/components/Workflow/canvas/Canvas/index.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/CollapsibleSection/CollapsibleSection.d.ts +30 -0
- package/dist/components/Workflow/canvas/CollapsibleSection/CollapsibleSection.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/CollapsibleSection/CollapsibleSection.js +34 -0
- package/dist/components/Workflow/canvas/CollapsibleSection/CollapsibleSection.js.map +1 -0
- package/dist/components/Workflow/canvas/CollapsibleSection/CollapsibleSection.mjs +32 -0
- package/dist/components/Workflow/canvas/CollapsibleSection/CollapsibleSection.mjs.map +1 -0
- package/dist/components/Workflow/canvas/CollapsibleSection/index.d.ts +2 -0
- package/dist/components/Workflow/canvas/CollapsibleSection/index.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/DrawerShell/DrawerHeader.d.ts +37 -0
- package/dist/components/Workflow/canvas/DrawerShell/DrawerHeader.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/DrawerShell/DrawerHeader.js +33 -0
- package/dist/components/Workflow/canvas/DrawerShell/DrawerHeader.js.map +1 -0
- package/dist/components/Workflow/canvas/DrawerShell/DrawerHeader.mjs +31 -0
- package/dist/components/Workflow/canvas/DrawerShell/DrawerHeader.mjs.map +1 -0
- package/dist/components/Workflow/canvas/DrawerShell/DrawerIssues.d.ts +16 -0
- package/dist/components/Workflow/canvas/DrawerShell/DrawerIssues.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/DrawerShell/DrawerIssues.js +54 -0
- package/dist/components/Workflow/canvas/DrawerShell/DrawerIssues.js.map +1 -0
- package/dist/components/Workflow/canvas/DrawerShell/DrawerIssues.mjs +52 -0
- package/dist/components/Workflow/canvas/DrawerShell/DrawerIssues.mjs.map +1 -0
- package/dist/components/Workflow/canvas/DrawerShell/DrawerShell.d.ts +27 -0
- package/dist/components/Workflow/canvas/DrawerShell/DrawerShell.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/DrawerShell/DrawerShell.js +178 -0
- package/dist/components/Workflow/canvas/DrawerShell/DrawerShell.js.map +1 -0
- package/dist/components/Workflow/canvas/DrawerShell/DrawerShell.mjs +176 -0
- package/dist/components/Workflow/canvas/DrawerShell/DrawerShell.mjs.map +1 -0
- package/dist/components/Workflow/canvas/DrawerShell/index.d.ts +3 -0
- package/dist/components/Workflow/canvas/DrawerShell/index.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/EdgeInspector/BuiltInEdgeInspector.d.ts +12 -0
- package/dist/components/Workflow/canvas/EdgeInspector/BuiltInEdgeInspector.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/EdgeInspector/BuiltInEdgeInspector.js +68 -0
- package/dist/components/Workflow/canvas/EdgeInspector/BuiltInEdgeInspector.js.map +1 -0
- package/dist/components/Workflow/canvas/EdgeInspector/BuiltInEdgeInspector.mjs +66 -0
- package/dist/components/Workflow/canvas/EdgeInspector/BuiltInEdgeInspector.mjs.map +1 -0
- package/dist/components/Workflow/canvas/EdgeInspector/endpointTitle.d.ts +19 -0
- package/dist/components/Workflow/canvas/EdgeInspector/endpointTitle.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/EdgeInspector/endpointTitle.js +35 -0
- package/dist/components/Workflow/canvas/EdgeInspector/endpointTitle.js.map +1 -0
- package/dist/components/Workflow/canvas/EdgeInspector/endpointTitle.mjs +32 -0
- package/dist/components/Workflow/canvas/EdgeInspector/endpointTitle.mjs.map +1 -0
- package/dist/components/Workflow/canvas/EdgeInspector/index.d.ts +3 -0
- package/dist/components/Workflow/canvas/EdgeInspector/index.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/FieldWrapper/FieldWrapper.d.ts +54 -0
- package/dist/components/Workflow/canvas/FieldWrapper/FieldWrapper.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/FieldWrapper/FieldWrapper.js +56 -0
- package/dist/components/Workflow/canvas/FieldWrapper/FieldWrapper.js.map +1 -0
- package/dist/components/Workflow/canvas/FieldWrapper/FieldWrapper.mjs +54 -0
- package/dist/components/Workflow/canvas/FieldWrapper/FieldWrapper.mjs.map +1 -0
- package/dist/components/Workflow/canvas/FieldWrapper/index.d.ts +3 -0
- package/dist/components/Workflow/canvas/FieldWrapper/index.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/FloatingCard/FloatingCard.d.ts +16 -0
- package/dist/components/Workflow/canvas/FloatingCard/FloatingCard.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/FloatingCard/FloatingCard.js +25 -0
- package/dist/components/Workflow/canvas/FloatingCard/FloatingCard.js.map +1 -0
- package/dist/components/Workflow/canvas/FloatingCard/FloatingCard.mjs +22 -0
- package/dist/components/Workflow/canvas/FloatingCard/FloatingCard.mjs.map +1 -0
- package/dist/components/Workflow/canvas/FloatingCard/index.d.ts +2 -0
- package/dist/components/Workflow/canvas/FloatingCard/index.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/GenericNode/GenericNode.d.ts +14 -0
- package/dist/components/Workflow/canvas/GenericNode/GenericNode.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/GenericNode/GenericNode.js +61 -0
- package/dist/components/Workflow/canvas/GenericNode/GenericNode.js.map +1 -0
- package/dist/components/Workflow/canvas/GenericNode/GenericNode.mjs +59 -0
- package/dist/components/Workflow/canvas/GenericNode/GenericNode.mjs.map +1 -0
- package/dist/components/Workflow/canvas/GenericNode/GenericNode.types.d.ts +11 -0
- package/dist/components/Workflow/canvas/GenericNode/GenericNode.types.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/GenericNode/index.d.ts +3 -0
- package/dist/components/Workflow/canvas/GenericNode/index.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/GraphErrorBanner/GraphErrorBanner.d.ts +15 -0
- package/dist/components/Workflow/canvas/GraphErrorBanner/GraphErrorBanner.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/GraphErrorBanner/GraphErrorBanner.js +145 -0
- package/dist/components/Workflow/canvas/GraphErrorBanner/GraphErrorBanner.js.map +1 -0
- package/dist/components/Workflow/canvas/GraphErrorBanner/GraphErrorBanner.mjs +143 -0
- package/dist/components/Workflow/canvas/GraphErrorBanner/GraphErrorBanner.mjs.map +1 -0
- package/dist/components/Workflow/canvas/GraphErrorBanner/index.d.ts +2 -0
- package/dist/components/Workflow/canvas/GraphErrorBanner/index.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/IconTile/IconTile.d.ts +10 -0
- package/dist/components/Workflow/canvas/IconTile/IconTile.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/IconTile/IconTile.js +21 -0
- package/dist/components/Workflow/canvas/IconTile/IconTile.js.map +1 -0
- package/dist/components/Workflow/canvas/IconTile/IconTile.mjs +19 -0
- package/dist/components/Workflow/canvas/IconTile/IconTile.mjs.map +1 -0
- package/dist/components/Workflow/canvas/IconTile/IconTile.styles.d.ts +18 -0
- package/dist/components/Workflow/canvas/IconTile/IconTile.styles.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/IconTile/IconTile.styles.js +40 -0
- package/dist/components/Workflow/canvas/IconTile/IconTile.styles.js.map +1 -0
- package/dist/components/Workflow/canvas/IconTile/IconTile.styles.mjs +37 -0
- package/dist/components/Workflow/canvas/IconTile/IconTile.styles.mjs.map +1 -0
- package/dist/components/Workflow/canvas/IconTile/IconTile.types.d.ts +15 -0
- package/dist/components/Workflow/canvas/IconTile/IconTile.types.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/IconTile/index.d.ts +4 -0
- package/dist/components/Workflow/canvas/IconTile/index.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/IssueList/IssueList.d.ts +24 -0
- package/dist/components/Workflow/canvas/IssueList/IssueList.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/IssueList/IssueList.js +34 -0
- package/dist/components/Workflow/canvas/IssueList/IssueList.js.map +1 -0
- package/dist/components/Workflow/canvas/IssueList/IssueList.mjs +32 -0
- package/dist/components/Workflow/canvas/IssueList/IssueList.mjs.map +1 -0
- package/dist/components/Workflow/canvas/IssueList/index.d.ts +2 -0
- package/dist/components/Workflow/canvas/IssueList/index.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/NodePalette/NodePalette.d.ts +9 -0
- package/dist/components/Workflow/canvas/NodePalette/NodePalette.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/NodePalette/NodePalette.js +94 -0
- package/dist/components/Workflow/canvas/NodePalette/NodePalette.js.map +1 -0
- package/dist/components/Workflow/canvas/NodePalette/NodePalette.mjs +92 -0
- package/dist/components/Workflow/canvas/NodePalette/NodePalette.mjs.map +1 -0
- package/dist/components/Workflow/canvas/NodePalette/NodePalette.styles.d.ts +7 -0
- package/dist/components/Workflow/canvas/NodePalette/NodePalette.styles.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/NodePalette/NodePalette.styles.js +13 -0
- package/dist/components/Workflow/canvas/NodePalette/NodePalette.styles.js.map +1 -0
- package/dist/components/Workflow/canvas/NodePalette/NodePalette.styles.mjs +10 -0
- package/dist/components/Workflow/canvas/NodePalette/NodePalette.styles.mjs.map +1 -0
- package/dist/components/Workflow/canvas/NodePalette/NodePaletteToggle.d.ts +10 -0
- package/dist/components/Workflow/canvas/NodePalette/NodePaletteToggle.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/NodePalette/NodePaletteToggle.js +28 -0
- package/dist/components/Workflow/canvas/NodePalette/NodePaletteToggle.js.map +1 -0
- package/dist/components/Workflow/canvas/NodePalette/NodePaletteToggle.mjs +26 -0
- package/dist/components/Workflow/canvas/NodePalette/NodePaletteToggle.mjs.map +1 -0
- package/dist/components/Workflow/canvas/NodePalette/index.d.ts +4 -0
- package/dist/components/Workflow/canvas/NodePalette/index.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/NodeShell/NodeShell.d.ts +3 -0
- package/dist/components/Workflow/canvas/NodeShell/NodeShell.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/NodeShell/NodeShell.js +137 -0
- package/dist/components/Workflow/canvas/NodeShell/NodeShell.js.map +1 -0
- package/dist/components/Workflow/canvas/NodeShell/NodeShell.mjs +135 -0
- package/dist/components/Workflow/canvas/NodeShell/NodeShell.mjs.map +1 -0
- package/dist/components/Workflow/canvas/NodeShell/NodeShell.styles.d.ts +66 -0
- package/dist/components/Workflow/canvas/NodeShell/NodeShell.styles.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/NodeShell/NodeShell.styles.js +87 -0
- package/dist/components/Workflow/canvas/NodeShell/NodeShell.styles.js.map +1 -0
- package/dist/components/Workflow/canvas/NodeShell/NodeShell.styles.mjs +77 -0
- package/dist/components/Workflow/canvas/NodeShell/NodeShell.styles.mjs.map +1 -0
- package/dist/components/Workflow/canvas/NodeShell/NodeShell.types.d.ts +35 -0
- package/dist/components/Workflow/canvas/NodeShell/NodeShell.types.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/NodeShell/index.d.ts +4 -0
- package/dist/components/Workflow/canvas/NodeShell/index.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/SeverityDot/SeverityDot.d.ts +15 -0
- package/dist/components/Workflow/canvas/SeverityDot/SeverityDot.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/SeverityDot/SeverityDot.js +14 -0
- package/dist/components/Workflow/canvas/SeverityDot/SeverityDot.js.map +1 -0
- package/dist/components/Workflow/canvas/SeverityDot/SeverityDot.mjs +12 -0
- package/dist/components/Workflow/canvas/SeverityDot/SeverityDot.mjs.map +1 -0
- package/dist/components/Workflow/canvas/SeverityDot/index.d.ts +2 -0
- package/dist/components/Workflow/canvas/SeverityDot/index.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/issueSeverity.d.ts +23 -0
- package/dist/components/Workflow/canvas/issueSeverity.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/issueSeverity.js +51 -0
- package/dist/components/Workflow/canvas/issueSeverity.js.map +1 -0
- package/dist/components/Workflow/canvas/issueSeverity.mjs +47 -0
- package/dist/components/Workflow/canvas/issueSeverity.mjs.map +1 -0
- package/dist/components/Workflow/canvas/useFieldFocusRequest.d.ts +14 -0
- package/dist/components/Workflow/canvas/useFieldFocusRequest.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/useFieldFocusRequest.js +48 -0
- package/dist/components/Workflow/canvas/useFieldFocusRequest.js.map +1 -0
- package/dist/components/Workflow/canvas/useFieldFocusRequest.mjs +46 -0
- package/dist/components/Workflow/canvas/useFieldFocusRequest.mjs.map +1 -0
- package/dist/components/Workflow/canvas/workflowLabelProps.d.ts +12 -0
- package/dist/components/Workflow/canvas/workflowLabelProps.d.ts.map +1 -0
- package/dist/components/Workflow/canvas/workflowLabelProps.js +17 -0
- package/dist/components/Workflow/canvas/workflowLabelProps.js.map +1 -0
- package/dist/components/Workflow/canvas/workflowLabelProps.mjs +15 -0
- package/dist/components/Workflow/canvas/workflowLabelProps.mjs.map +1 -0
- package/dist/components/Workflow/connectionRules.d.ts +59 -0
- package/dist/components/Workflow/connectionRules.d.ts.map +1 -0
- package/dist/components/Workflow/connectionRules.js +150 -0
- package/dist/components/Workflow/connectionRules.js.map +1 -0
- package/dist/components/Workflow/connectionRules.mjs +145 -0
- package/dist/components/Workflow/connectionRules.mjs.map +1 -0
- package/dist/components/Workflow/createNode.d.ts +27 -0
- package/dist/components/Workflow/createNode.d.ts.map +1 -0
- package/dist/components/Workflow/createNode.js +66 -0
- package/dist/components/Workflow/createNode.js.map +1 -0
- package/dist/components/Workflow/createNode.mjs +62 -0
- package/dist/components/Workflow/createNode.mjs.map +1 -0
- package/dist/components/Workflow/graphHistory.d.ts +23 -0
- package/dist/components/Workflow/graphHistory.d.ts.map +1 -0
- package/dist/components/Workflow/graphHistory.js +73 -0
- package/dist/components/Workflow/graphHistory.js.map +1 -0
- package/dist/components/Workflow/graphHistory.mjs +70 -0
- package/dist/components/Workflow/graphHistory.mjs.map +1 -0
- package/dist/components/Workflow/graphObserver.d.ts +13 -0
- package/dist/components/Workflow/graphObserver.d.ts.map +1 -0
- package/dist/components/Workflow/graphObserver.js +11 -0
- package/dist/components/Workflow/graphObserver.js.map +1 -0
- package/dist/components/Workflow/graphObserver.mjs +8 -0
- package/dist/components/Workflow/graphObserver.mjs.map +1 -0
- package/dist/components/Workflow/graphReducer.d.ts +75 -0
- package/dist/components/Workflow/graphReducer.d.ts.map +1 -0
- package/dist/components/Workflow/graphReducer.js +122 -0
- package/dist/components/Workflow/graphReducer.js.map +1 -0
- package/dist/components/Workflow/graphReducer.mjs +119 -0
- package/dist/components/Workflow/graphReducer.mjs.map +1 -0
- package/dist/components/Workflow/index.d.ts +22 -0
- package/dist/components/Workflow/index.d.ts.map +1 -0
- package/dist/components/Workflow/layout/autoLayout.d.ts +49 -0
- package/dist/components/Workflow/layout/autoLayout.d.ts.map +1 -0
- package/dist/components/Workflow/layout/autoLayout.js +149 -0
- package/dist/components/Workflow/layout/autoLayout.js.map +1 -0
- package/dist/components/Workflow/layout/autoLayout.mjs +146 -0
- package/dist/components/Workflow/layout/autoLayout.mjs.map +1 -0
- package/dist/components/Workflow/stories/toyNodeTypes.d.ts +40 -0
- package/dist/components/Workflow/stories/toyNodeTypes.d.ts.map +1 -0
- package/dist/components/Workflow/useWorkflowIssueMessage.d.ts +15 -0
- package/dist/components/Workflow/useWorkflowIssueMessage.d.ts.map +1 -0
- package/dist/components/Workflow/useWorkflowIssueMessage.js +45 -0
- package/dist/components/Workflow/useWorkflowIssueMessage.js.map +1 -0
- package/dist/components/Workflow/useWorkflowIssueMessage.mjs +43 -0
- package/dist/components/Workflow/useWorkflowIssueMessage.mjs.map +1 -0
- package/dist/components/Workflow/useWorkflowKeyboard.d.ts +10 -0
- package/dist/components/Workflow/useWorkflowKeyboard.d.ts.map +1 -0
- package/dist/components/Workflow/useWorkflowKeyboard.js +116 -0
- package/dist/components/Workflow/useWorkflowKeyboard.js.map +1 -0
- package/dist/components/Workflow/useWorkflowKeyboard.mjs +114 -0
- package/dist/components/Workflow/useWorkflowKeyboard.mjs.map +1 -0
- package/dist/icons.js +17 -0
- package/dist/icons.js.map +1 -1
- package/dist/icons.mjs +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +78 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +33 -1
- package/dist/index.mjs.map +1 -1
- package/dist/test-support/setup.d.ts +5 -0
- package/dist/test-support/setup.d.ts.map +1 -0
- package/package.json +10 -2
- package/src/components/Icon/_constants/iconList.ts +35 -0
- package/src/components/Icon/index.tsx +20 -0
- package/src/components/Tree/Tree.stories.tsx +564 -0
- package/src/components/Tree/Tree.tsx +37 -0
- package/src/components/Tree/Tree.types.ts +51 -0
- package/src/components/Tree/TreeBranch.tsx +11 -0
- package/src/components/Tree/TreeBranchContent.tsx +21 -0
- package/src/components/Tree/TreeBranchControl.tsx +28 -0
- package/src/components/Tree/TreeBranchIndentGuide.tsx +20 -0
- package/src/components/Tree/TreeBranchIndicator.tsx +27 -0
- package/src/components/Tree/TreeBranchText.tsx +19 -0
- package/src/components/Tree/TreeBranchTrigger.tsx +25 -0
- package/src/components/Tree/TreeItem.tsx +33 -0
- package/src/components/Tree/TreeItemIndicator.tsx +20 -0
- package/src/components/Tree/TreeItemText.tsx +19 -0
- package/src/components/Tree/TreeLabel.tsx +19 -0
- package/src/components/Tree/TreeNode.tsx +6 -0
- package/src/components/Tree/TreeNodeCheckbox.tsx +12 -0
- package/src/components/Tree/TreeNodeContext.tsx +3 -0
- package/src/components/Tree/TreeNodeProvider.tsx +6 -0
- package/src/components/Tree/TreeRoot.tsx +11 -0
- package/src/components/Tree/TreeTree.tsx +11 -0
- package/src/components/Tree/index.ts +42 -0
- package/src/components/Workflow/README.md +362 -0
- package/src/components/Workflow/Workflow.translations.json +112 -0
- package/src/components/Workflow/Workflow.tsx +189 -0
- package/src/components/Workflow/Workflow.types.ts +496 -0
- package/src/components/Workflow/WorkflowContext/WorkflowContext.tsx +215 -0
- package/src/components/Workflow/WorkflowContext/WorkflowContext.types.ts +122 -0
- package/src/components/Workflow/WorkflowContext/index.ts +10 -0
- package/src/components/Workflow/WorkflowContext/workflowSelection.test.tsx +93 -0
- package/src/components/Workflow/canvas/Canvas/BranchLabelBadge.tsx +69 -0
- package/src/components/Workflow/canvas/Canvas/Canvas.styles.ts +91 -0
- package/src/components/Workflow/canvas/Canvas/Canvas.tsx +773 -0
- package/src/components/Workflow/canvas/Canvas/CanvasControls.tsx +178 -0
- package/src/components/Workflow/canvas/Canvas/LabeledEdge.tsx +198 -0
- package/src/components/Workflow/canvas/Canvas/edgeLabelVariant.test.ts +26 -0
- package/src/components/Workflow/canvas/Canvas/edgeLabelVariant.ts +23 -0
- package/src/components/Workflow/canvas/Canvas/index.ts +1 -0
- package/src/components/Workflow/canvas/CollapsibleSection/CollapsibleSection.tsx +96 -0
- package/src/components/Workflow/canvas/CollapsibleSection/index.ts +4 -0
- package/src/components/Workflow/canvas/DrawerShell/DrawerHeader.tsx +104 -0
- package/src/components/Workflow/canvas/DrawerShell/DrawerIssues.tsx +115 -0
- package/src/components/Workflow/canvas/DrawerShell/DrawerShell.tsx +408 -0
- package/src/components/Workflow/canvas/DrawerShell/index.ts +2 -0
- package/src/components/Workflow/canvas/EdgeInspector/BuiltInEdgeInspector.tsx +135 -0
- package/src/components/Workflow/canvas/EdgeInspector/endpointTitle.ts +38 -0
- package/src/components/Workflow/canvas/EdgeInspector/index.ts +2 -0
- package/src/components/Workflow/canvas/FieldWrapper/FieldWrapper.tsx +118 -0
- package/src/components/Workflow/canvas/FieldWrapper/index.ts +6 -0
- package/src/components/Workflow/canvas/FloatingCard/FloatingCard.tsx +37 -0
- package/src/components/Workflow/canvas/FloatingCard/index.ts +1 -0
- package/src/components/Workflow/canvas/GenericNode/GenericNode.tsx +114 -0
- package/src/components/Workflow/canvas/GenericNode/GenericNode.types.ts +10 -0
- package/src/components/Workflow/canvas/GenericNode/index.ts +5 -0
- package/src/components/Workflow/canvas/GraphErrorBanner/GraphErrorBanner.tsx +284 -0
- package/src/components/Workflow/canvas/GraphErrorBanner/index.ts +1 -0
- package/src/components/Workflow/canvas/IconTile/IconTile.styles.ts +40 -0
- package/src/components/Workflow/canvas/IconTile/IconTile.tsx +36 -0
- package/src/components/Workflow/canvas/IconTile/IconTile.types.ts +13 -0
- package/src/components/Workflow/canvas/IconTile/index.ts +7 -0
- package/src/components/Workflow/canvas/IssueList/IssueList.tsx +84 -0
- package/src/components/Workflow/canvas/IssueList/index.ts +1 -0
- package/src/components/Workflow/canvas/NodePalette/NodePalette.styles.ts +7 -0
- package/src/components/Workflow/canvas/NodePalette/NodePalette.tsx +180 -0
- package/src/components/Workflow/canvas/NodePalette/NodePaletteToggle.tsx +39 -0
- package/src/components/Workflow/canvas/NodePalette/index.ts +3 -0
- package/src/components/Workflow/canvas/NodeShell/NodeShell.styles.ts +84 -0
- package/src/components/Workflow/canvas/NodeShell/NodeShell.tsx +321 -0
- package/src/components/Workflow/canvas/NodeShell/NodeShell.types.ts +45 -0
- package/src/components/Workflow/canvas/NodeShell/index.ts +8 -0
- package/src/components/Workflow/canvas/SeverityDot/SeverityDot.tsx +33 -0
- package/src/components/Workflow/canvas/SeverityDot/index.ts +1 -0
- package/src/components/Workflow/canvas/issueSeverity.ts +48 -0
- package/src/components/Workflow/canvas/useFieldFocusRequest.ts +54 -0
- package/src/components/Workflow/canvas/workflowLabelProps.ts +11 -0
- package/src/components/Workflow/connectionRules.test.ts +326 -0
- package/src/components/Workflow/connectionRules.ts +190 -0
- package/src/components/Workflow/createNode.test.ts +61 -0
- package/src/components/Workflow/createNode.ts +67 -0
- package/src/components/Workflow/graphHistory.test.ts +178 -0
- package/src/components/Workflow/graphHistory.ts +91 -0
- package/src/components/Workflow/graphObserver.ts +21 -0
- package/src/components/Workflow/graphReducer.test.ts +314 -0
- package/src/components/Workflow/graphReducer.ts +196 -0
- package/src/components/Workflow/index.ts +74 -0
- package/src/components/Workflow/layout/autoLayout.test.ts +170 -0
- package/src/components/Workflow/layout/autoLayout.ts +200 -0
- package/src/components/Workflow/stories/Workflow.stories.tsx +111 -0
- package/src/components/Workflow/stories/toyNodeTypes.tsx +146 -0
- package/src/components/Workflow/useWorkflowIssueMessage.test.ts +101 -0
- package/src/components/Workflow/useWorkflowIssueMessage.ts +49 -0
- package/src/components/Workflow/useWorkflowKeyboard.ts +126 -0
- package/src/index.ts +2 -0
- package/src/test-support/setup.ts +11 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Unique id for edges and other internal graph elements that aren't referenced
|
|
6
|
+
* by name in user content. Node IDs use `nextNodeId` for memorable
|
|
7
|
+
* `{kind}_{N}` ids instead.
|
|
8
|
+
*/
|
|
9
|
+
function genId(prefix) {
|
|
10
|
+
if (typeof crypto !== 'undefined' && 'randomUUID' in crypto) {
|
|
11
|
+
return `${prefix}_${crypto.randomUUID()}`;
|
|
12
|
+
}
|
|
13
|
+
return `${prefix}_${Date.now().toString(36)}_${Math.random()
|
|
14
|
+
.toString(36)
|
|
15
|
+
.slice(2, 8)}`;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Next sequential id for a node of the given kind, given the current node
|
|
19
|
+
* list. Returns ids like `agent_1`, `classify_2`, `guardrail_1`, etc., so
|
|
20
|
+
* authors can type them verbatim into `{{...}}` references.
|
|
21
|
+
*
|
|
22
|
+
* Start is a singleton — always `start`. Existing seeded graphs use hand-named
|
|
23
|
+
* ids like `agent_main` / `guard_out`; those don't match the `kind_<digits>`
|
|
24
|
+
* pattern and are ignored when computing the next number, so a fresh `agent`
|
|
25
|
+
* dropped next to `agent_main` becomes `agent_1`, not `agent_2`.
|
|
26
|
+
*/
|
|
27
|
+
function nextNodeId(kind, nodes) {
|
|
28
|
+
if (kind === 'start')
|
|
29
|
+
return 'start';
|
|
30
|
+
const re = new RegExp(`^${kind}_(\\d+)$`);
|
|
31
|
+
let max = 0;
|
|
32
|
+
for (const n of nodes) {
|
|
33
|
+
const m = re.exec(n.id);
|
|
34
|
+
if (m) {
|
|
35
|
+
const v = Number.parseInt(m[1], 10);
|
|
36
|
+
if (Number.isFinite(v) && v > max)
|
|
37
|
+
max = v;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return `${kind}_${max + 1}`;
|
|
41
|
+
}
|
|
42
|
+
/** Offset applied to a duplicated node so it doesn't sit exactly on top. */
|
|
43
|
+
const DUPLICATE_OFFSET = 40;
|
|
44
|
+
/**
|
|
45
|
+
* A copy of `node` with a fresh sequential id, a deep-cloned config, and a
|
|
46
|
+
* slight offset. Pass the current node list so the duplicate's id continues
|
|
47
|
+
* the per-kind counter. If two duplicates race within the same React batch
|
|
48
|
+
* the second collides and the reducer's existing `addNode` dedupe drops it
|
|
49
|
+
* — one missing duplicate, no corrupt state.
|
|
50
|
+
*/
|
|
51
|
+
function cloneNode(node, nodes) {
|
|
52
|
+
return {
|
|
53
|
+
id: nextNodeId(node.kind, nodes),
|
|
54
|
+
kind: node.kind,
|
|
55
|
+
position: {
|
|
56
|
+
x: node.position.x + DUPLICATE_OFFSET,
|
|
57
|
+
y: node.position.y + DUPLICATE_OFFSET,
|
|
58
|
+
},
|
|
59
|
+
config: structuredClone(node.config),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
exports.cloneNode = cloneNode;
|
|
64
|
+
exports.genId = genId;
|
|
65
|
+
exports.nextNodeId = nextNodeId;
|
|
66
|
+
//# sourceMappingURL=createNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createNode.js","sources":["../../../src/components/Workflow/createNode.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAEA;;;;AAIG;AACG,SAAU,KAAK,CAAC,MAAc,EAAA;IAClC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,YAAY,IAAI,MAAM,EAAE;QAC3D,OAAO,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,MAAM,CAAC,UAAU,EAAE,EAAE;IAC3C;AACA,IAAA,OAAO,GAAG,MAAM,CAAA,CAAA,EAAI,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM;SACvD,QAAQ,CAAC,EAAE;AACX,SAAA,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AAClB;AAEA;;;;;;;;;AASG;AACG,SAAU,UAAU,CACxB,IAAY,EACZ,KAA+B,EAAA;IAE/B,IAAI,IAAI,KAAK,OAAO;AAAE,QAAA,OAAO,OAAO;IACpC,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,CAAA,CAAA,EAAI,IAAI,CAAA,QAAA,CAAU,CAAC;IACzC,IAAI,GAAG,GAAG,CAAC;AACX,IAAA,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;QACrB,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,EAAE;AACL,YAAA,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACnC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;gBAAE,GAAG,GAAG,CAAC;QAC5C;IACF;AACA,IAAA,OAAO,GAAG,IAAI,CAAA,CAAA,EAAI,GAAG,GAAG,CAAC,EAAE;AAC7B;AAEA;AACA,MAAM,gBAAgB,GAAG,EAAE;AAE3B;;;;;;AAMG;AACG,SAAU,SAAS,CACvB,IAAe,EACf,KAA+B,EAAA;IAE/B,OAAO;QACL,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;QAChC,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,QAAA,QAAQ,EAAE;AACR,YAAA,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,gBAAgB;AACrC,YAAA,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,gBAAgB;AACtC,SAAA;AACD,QAAA,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;KACrC;AACH;;;;;;"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
/**
|
|
3
|
+
* Unique id for edges and other internal graph elements that aren't referenced
|
|
4
|
+
* by name in user content. Node IDs use `nextNodeId` for memorable
|
|
5
|
+
* `{kind}_{N}` ids instead.
|
|
6
|
+
*/
|
|
7
|
+
function genId(prefix) {
|
|
8
|
+
if (typeof crypto !== 'undefined' && 'randomUUID' in crypto) {
|
|
9
|
+
return `${prefix}_${crypto.randomUUID()}`;
|
|
10
|
+
}
|
|
11
|
+
return `${prefix}_${Date.now().toString(36)}_${Math.random()
|
|
12
|
+
.toString(36)
|
|
13
|
+
.slice(2, 8)}`;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Next sequential id for a node of the given kind, given the current node
|
|
17
|
+
* list. Returns ids like `agent_1`, `classify_2`, `guardrail_1`, etc., so
|
|
18
|
+
* authors can type them verbatim into `{{...}}` references.
|
|
19
|
+
*
|
|
20
|
+
* Start is a singleton — always `start`. Existing seeded graphs use hand-named
|
|
21
|
+
* ids like `agent_main` / `guard_out`; those don't match the `kind_<digits>`
|
|
22
|
+
* pattern and are ignored when computing the next number, so a fresh `agent`
|
|
23
|
+
* dropped next to `agent_main` becomes `agent_1`, not `agent_2`.
|
|
24
|
+
*/
|
|
25
|
+
function nextNodeId(kind, nodes) {
|
|
26
|
+
if (kind === 'start')
|
|
27
|
+
return 'start';
|
|
28
|
+
const re = new RegExp(`^${kind}_(\\d+)$`);
|
|
29
|
+
let max = 0;
|
|
30
|
+
for (const n of nodes) {
|
|
31
|
+
const m = re.exec(n.id);
|
|
32
|
+
if (m) {
|
|
33
|
+
const v = Number.parseInt(m[1], 10);
|
|
34
|
+
if (Number.isFinite(v) && v > max)
|
|
35
|
+
max = v;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return `${kind}_${max + 1}`;
|
|
39
|
+
}
|
|
40
|
+
/** Offset applied to a duplicated node so it doesn't sit exactly on top. */
|
|
41
|
+
const DUPLICATE_OFFSET = 40;
|
|
42
|
+
/**
|
|
43
|
+
* A copy of `node` with a fresh sequential id, a deep-cloned config, and a
|
|
44
|
+
* slight offset. Pass the current node list so the duplicate's id continues
|
|
45
|
+
* the per-kind counter. If two duplicates race within the same React batch
|
|
46
|
+
* the second collides and the reducer's existing `addNode` dedupe drops it
|
|
47
|
+
* — one missing duplicate, no corrupt state.
|
|
48
|
+
*/
|
|
49
|
+
function cloneNode(node, nodes) {
|
|
50
|
+
return {
|
|
51
|
+
id: nextNodeId(node.kind, nodes),
|
|
52
|
+
kind: node.kind,
|
|
53
|
+
position: {
|
|
54
|
+
x: node.position.x + DUPLICATE_OFFSET,
|
|
55
|
+
y: node.position.y + DUPLICATE_OFFSET,
|
|
56
|
+
},
|
|
57
|
+
config: structuredClone(node.config),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export { cloneNode, genId, nextNodeId };
|
|
62
|
+
//# sourceMappingURL=createNode.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createNode.mjs","sources":["../../../src/components/Workflow/createNode.ts"],"sourcesContent":[null],"names":[],"mappings":";AAEA;;;;AAIG;AACG,SAAU,KAAK,CAAC,MAAc,EAAA;IAClC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,YAAY,IAAI,MAAM,EAAE;QAC3D,OAAO,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,MAAM,CAAC,UAAU,EAAE,EAAE;IAC3C;AACA,IAAA,OAAO,GAAG,MAAM,CAAA,CAAA,EAAI,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM;SACvD,QAAQ,CAAC,EAAE;AACX,SAAA,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AAClB;AAEA;;;;;;;;;AASG;AACG,SAAU,UAAU,CACxB,IAAY,EACZ,KAA+B,EAAA;IAE/B,IAAI,IAAI,KAAK,OAAO;AAAE,QAAA,OAAO,OAAO;IACpC,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,CAAA,CAAA,EAAI,IAAI,CAAA,QAAA,CAAU,CAAC;IACzC,IAAI,GAAG,GAAG,CAAC;AACX,IAAA,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;QACrB,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,EAAE;AACL,YAAA,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACnC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;gBAAE,GAAG,GAAG,CAAC;QAC5C;IACF;AACA,IAAA,OAAO,GAAG,IAAI,CAAA,CAAA,EAAI,GAAG,GAAG,CAAC,EAAE;AAC7B;AAEA;AACA,MAAM,gBAAgB,GAAG,EAAE;AAE3B;;;;;;AAMG;AACG,SAAU,SAAS,CACvB,IAAe,EACf,KAA+B,EAAA;IAE/B,OAAO;QACL,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;QAChC,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,QAAA,QAAQ,EAAE;AACR,YAAA,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,gBAAgB;AACrC,YAAA,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,gBAAgB;AACtC,SAAA;AACD,QAAA,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;KACrC;AACH;;;;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type GraphAction } from './graphReducer';
|
|
2
|
+
import type { Graph } from './Workflow.types';
|
|
3
|
+
/** Max retained undo steps. Older steps are dropped once exceeded. */
|
|
4
|
+
export declare const MAX_HISTORY = 50;
|
|
5
|
+
export type HistoryState = {
|
|
6
|
+
past: Graph[];
|
|
7
|
+
present: Graph;
|
|
8
|
+
future: Graph[];
|
|
9
|
+
/**
|
|
10
|
+
* Coalescing key of the action that produced `present`. A new action with
|
|
11
|
+
* the same key merges into the current step instead of pushing a new one,
|
|
12
|
+
* so a burst of edits to one node stays a single undo unit.
|
|
13
|
+
*/
|
|
14
|
+
lastKey: string | null;
|
|
15
|
+
};
|
|
16
|
+
export type HistoryAction = GraphAction | {
|
|
17
|
+
type: 'undo';
|
|
18
|
+
} | {
|
|
19
|
+
type: 'redo';
|
|
20
|
+
};
|
|
21
|
+
export declare const initHistory: (graph: Graph) => HistoryState;
|
|
22
|
+
export declare function historyReducer(state: HistoryState, action: HistoryAction): HistoryState;
|
|
23
|
+
//# sourceMappingURL=graphHistory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphHistory.d.ts","sourceRoot":"","sources":["../../../src/components/Workflow/graphHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAgB,MAAM,gBAAgB,CAAC;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,sEAAsE;AACtE,eAAO,MAAM,WAAW,KAAK,CAAC;AAE9B,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB;;;;OAIG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9E,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,KAAG,YAKzC,CAAC;AAmBH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,aAAa,GACpB,YAAY,CA2Cd"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var graphReducer = require('./graphReducer.js');
|
|
5
|
+
|
|
6
|
+
const initHistory = (graph) => ({
|
|
7
|
+
past: [],
|
|
8
|
+
present: graph,
|
|
9
|
+
future: [],
|
|
10
|
+
lastKey: null,
|
|
11
|
+
});
|
|
12
|
+
/**
|
|
13
|
+
* Key used to collapse a run of edits into one undo step. `updateNodeConfig`
|
|
14
|
+
* / `updateNodePosition` targeting the same node coalesce (typing a prompt or
|
|
15
|
+
* dragging a node is one undo); structural actions return `null` (never
|
|
16
|
+
* coalesce).
|
|
17
|
+
*/
|
|
18
|
+
const coalesceKey = (action) => {
|
|
19
|
+
switch (action.type) {
|
|
20
|
+
case 'updateNodeConfig':
|
|
21
|
+
case 'updateNodePosition':
|
|
22
|
+
case 'updateEdge':
|
|
23
|
+
return `${action.type}:${action.id}`;
|
|
24
|
+
default:
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
function historyReducer(state, action) {
|
|
29
|
+
if (action.type === 'undo') {
|
|
30
|
+
if (state.past.length === 0)
|
|
31
|
+
return state;
|
|
32
|
+
return {
|
|
33
|
+
past: state.past.slice(0, -1),
|
|
34
|
+
present: state.past[state.past.length - 1],
|
|
35
|
+
future: [state.present, ...state.future],
|
|
36
|
+
lastKey: null,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
if (action.type === 'redo') {
|
|
40
|
+
if (state.future.length === 0)
|
|
41
|
+
return state;
|
|
42
|
+
const [next, ...rest] = state.future;
|
|
43
|
+
return {
|
|
44
|
+
past: [...state.past, state.present],
|
|
45
|
+
present: next,
|
|
46
|
+
future: rest,
|
|
47
|
+
lastKey: null,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
const present = graphReducer.graphReducer(state.present, action);
|
|
51
|
+
// Pure no-op actions (dedupe guards, unknown ids) must not create history.
|
|
52
|
+
if (present === state.present)
|
|
53
|
+
return state;
|
|
54
|
+
// `replace` is an external resync (draft load, server push), not a user
|
|
55
|
+
// edit — it establishes a fresh baseline, so history is cleared.
|
|
56
|
+
if (action.type === 'replace') {
|
|
57
|
+
return { past: [], present, future: [], lastKey: null };
|
|
58
|
+
}
|
|
59
|
+
const key = coalesceKey(action);
|
|
60
|
+
if (key !== null && key === state.lastKey) {
|
|
61
|
+
return { ...state, present };
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
past: [...state.past, state.present].slice(-50),
|
|
65
|
+
present,
|
|
66
|
+
future: [],
|
|
67
|
+
lastKey: key,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
exports.historyReducer = historyReducer;
|
|
72
|
+
exports.initHistory = initHistory;
|
|
73
|
+
//# sourceMappingURL=graphHistory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphHistory.js","sources":["../../../src/components/Workflow/graphHistory.ts"],"sourcesContent":[null],"names":["graphReducer"],"mappings":";;;;;MAoBa,WAAW,GAAG,CAAC,KAAY,MAAoB;AAC1D,IAAA,IAAI,EAAE,EAAE;AACR,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,MAAM,EAAE,EAAE;AACV,IAAA,OAAO,EAAE,IAAI;AACd,CAAA;AAED;;;;;AAKG;AACH,MAAM,WAAW,GAAG,CAAC,MAAmB,KAAmB;AACzD,IAAA,QAAQ,MAAM,CAAC,IAAI;AACjB,QAAA,KAAK,kBAAkB;AACvB,QAAA,KAAK,oBAAoB;AACzB,QAAA,KAAK,YAAY;YACf,OAAO,CAAA,EAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,CAAA,CAAE;AACtC,QAAA;AACE,YAAA,OAAO,IAAI;;AAEjB,CAAC;AAEK,SAAU,cAAc,CAC5B,KAAmB,EACnB,MAAqB,EAAA;AAErB,IAAA,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;AAC1B,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,KAAK;QACzC,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AAC7B,YAAA,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1C,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;AACxC,YAAA,OAAO,EAAE,IAAI;SACd;IACH;AAEA,IAAA,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;AAC1B,QAAA,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,KAAK;QAC3C,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM;QACpC,OAAO;YACL,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;AACpC,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,OAAO,EAAE,IAAI;SACd;IACH;IAEA,MAAM,OAAO,GAAGA,yBAAY,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC;;AAEnD,IAAA,IAAI,OAAO,KAAK,KAAK,CAAC,OAAO;AAAE,QAAA,OAAO,KAAK;;;AAI3C,IAAA,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;AAC7B,QAAA,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;IACzD;AAEA,IAAA,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC;IAC/B,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,OAAO,EAAE;AACzC,QAAA,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE;IAC9B;IAEA,OAAO;AACL,QAAA,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAY,CAAC;QACxD,OAAO;AACP,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,OAAO,EAAE,GAAG;KACb;AACH;;;;;"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { graphReducer } from './graphReducer.mjs';
|
|
3
|
+
|
|
4
|
+
const initHistory = (graph) => ({
|
|
5
|
+
past: [],
|
|
6
|
+
present: graph,
|
|
7
|
+
future: [],
|
|
8
|
+
lastKey: null,
|
|
9
|
+
});
|
|
10
|
+
/**
|
|
11
|
+
* Key used to collapse a run of edits into one undo step. `updateNodeConfig`
|
|
12
|
+
* / `updateNodePosition` targeting the same node coalesce (typing a prompt or
|
|
13
|
+
* dragging a node is one undo); structural actions return `null` (never
|
|
14
|
+
* coalesce).
|
|
15
|
+
*/
|
|
16
|
+
const coalesceKey = (action) => {
|
|
17
|
+
switch (action.type) {
|
|
18
|
+
case 'updateNodeConfig':
|
|
19
|
+
case 'updateNodePosition':
|
|
20
|
+
case 'updateEdge':
|
|
21
|
+
return `${action.type}:${action.id}`;
|
|
22
|
+
default:
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
function historyReducer(state, action) {
|
|
27
|
+
if (action.type === 'undo') {
|
|
28
|
+
if (state.past.length === 0)
|
|
29
|
+
return state;
|
|
30
|
+
return {
|
|
31
|
+
past: state.past.slice(0, -1),
|
|
32
|
+
present: state.past[state.past.length - 1],
|
|
33
|
+
future: [state.present, ...state.future],
|
|
34
|
+
lastKey: null,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
if (action.type === 'redo') {
|
|
38
|
+
if (state.future.length === 0)
|
|
39
|
+
return state;
|
|
40
|
+
const [next, ...rest] = state.future;
|
|
41
|
+
return {
|
|
42
|
+
past: [...state.past, state.present],
|
|
43
|
+
present: next,
|
|
44
|
+
future: rest,
|
|
45
|
+
lastKey: null,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
const present = graphReducer(state.present, action);
|
|
49
|
+
// Pure no-op actions (dedupe guards, unknown ids) must not create history.
|
|
50
|
+
if (present === state.present)
|
|
51
|
+
return state;
|
|
52
|
+
// `replace` is an external resync (draft load, server push), not a user
|
|
53
|
+
// edit — it establishes a fresh baseline, so history is cleared.
|
|
54
|
+
if (action.type === 'replace') {
|
|
55
|
+
return { past: [], present, future: [], lastKey: null };
|
|
56
|
+
}
|
|
57
|
+
const key = coalesceKey(action);
|
|
58
|
+
if (key !== null && key === state.lastKey) {
|
|
59
|
+
return { ...state, present };
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
past: [...state.past, state.present].slice(-50),
|
|
63
|
+
present,
|
|
64
|
+
future: [],
|
|
65
|
+
lastKey: key,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export { historyReducer, initHistory };
|
|
70
|
+
//# sourceMappingURL=graphHistory.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphHistory.mjs","sources":["../../../src/components/Workflow/graphHistory.ts"],"sourcesContent":[null],"names":[],"mappings":";;;MAoBa,WAAW,GAAG,CAAC,KAAY,MAAoB;AAC1D,IAAA,IAAI,EAAE,EAAE;AACR,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,MAAM,EAAE,EAAE;AACV,IAAA,OAAO,EAAE,IAAI;AACd,CAAA;AAED;;;;;AAKG;AACH,MAAM,WAAW,GAAG,CAAC,MAAmB,KAAmB;AACzD,IAAA,QAAQ,MAAM,CAAC,IAAI;AACjB,QAAA,KAAK,kBAAkB;AACvB,QAAA,KAAK,oBAAoB;AACzB,QAAA,KAAK,YAAY;YACf,OAAO,CAAA,EAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,CAAA,CAAE;AACtC,QAAA;AACE,YAAA,OAAO,IAAI;;AAEjB,CAAC;AAEK,SAAU,cAAc,CAC5B,KAAmB,EACnB,MAAqB,EAAA;AAErB,IAAA,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;AAC1B,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,KAAK;QACzC,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AAC7B,YAAA,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1C,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;AACxC,YAAA,OAAO,EAAE,IAAI;SACd;IACH;AAEA,IAAA,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;AAC1B,QAAA,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,KAAK;QAC3C,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM;QACpC,OAAO;YACL,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;AACpC,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,OAAO,EAAE,IAAI;SACd;IACH;IAEA,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC;;AAEnD,IAAA,IAAI,OAAO,KAAK,KAAK,CAAC,OAAO;AAAE,QAAA,OAAO,KAAK;;;AAI3C,IAAA,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;AAC7B,QAAA,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;IACzD;AAEA,IAAA,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC;IAC/B,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,OAAO,EAAE;AACzC,QAAA,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE;IAC9B;IAEA,OAAO;AACL,QAAA,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAY,CAAC;QACxD,OAAO;AACP,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,OAAO,EAAE,GAAG;KACb;AACH;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Graph } from './Workflow.types';
|
|
2
|
+
/**
|
|
3
|
+
* Optional ancestor-provided hook to observe an uncontrolled <Workflow>'s
|
|
4
|
+
* graph without taking over its state (which `graph` + `onGraphChange` would).
|
|
5
|
+
*
|
|
6
|
+
* Used by the Storybook JSON-preview decorator so every story can render the
|
|
7
|
+
* serialized graph payload. No provider exists in production, so <Workflow>
|
|
8
|
+
* treats it as a no-op.
|
|
9
|
+
*/
|
|
10
|
+
export type WorkflowGraphObserver = (graph: Graph) => void;
|
|
11
|
+
export declare const WorkflowGraphObserverContext: import("react").Context<WorkflowGraphObserver>;
|
|
12
|
+
export declare const useWorkflowGraphObserver: () => WorkflowGraphObserver;
|
|
13
|
+
//# sourceMappingURL=graphObserver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphObserver.d.ts","sourceRoot":"","sources":["../../../src/components/Workflow/graphObserver.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;AAE3D,eAAO,MAAM,4BAA4B,gDACU,CAAC;AAEpD,eAAO,MAAM,wBAAwB,6BACK,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var React = require('react');
|
|
5
|
+
|
|
6
|
+
const WorkflowGraphObserverContext = React.createContext(null);
|
|
7
|
+
const useWorkflowGraphObserver = () => React.useContext(WorkflowGraphObserverContext);
|
|
8
|
+
|
|
9
|
+
exports.WorkflowGraphObserverContext = WorkflowGraphObserverContext;
|
|
10
|
+
exports.useWorkflowGraphObserver = useWorkflowGraphObserver;
|
|
11
|
+
//# sourceMappingURL=graphObserver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphObserver.js","sources":["../../../src/components/Workflow/graphObserver.ts"],"sourcesContent":[null],"names":["createContext","useContext"],"mappings":";;;;;MAgBa,4BAA4B,GACvCA,mBAAa,CAA+B,IAAI;AAE3C,MAAM,wBAAwB,GAAG,MACtCC,gBAAU,CAAC,4BAA4B;;;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { createContext, useContext } from 'react';
|
|
3
|
+
|
|
4
|
+
const WorkflowGraphObserverContext = createContext(null);
|
|
5
|
+
const useWorkflowGraphObserver = () => useContext(WorkflowGraphObserverContext);
|
|
6
|
+
|
|
7
|
+
export { WorkflowGraphObserverContext, useWorkflowGraphObserver };
|
|
8
|
+
//# sourceMappingURL=graphObserver.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphObserver.mjs","sources":["../../../src/components/Workflow/graphObserver.ts"],"sourcesContent":[null],"names":[],"mappings":";;;MAgBa,4BAA4B,GACvC,aAAa,CAA+B,IAAI;AAE3C,MAAM,wBAAwB,GAAG,MACtC,UAAU,CAAC,4BAA4B;;;;"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { Graph, GraphEdge, GraphNode, Position } from './Workflow.types';
|
|
2
|
+
export type GraphAction = {
|
|
3
|
+
type: 'addNode';
|
|
4
|
+
node: GraphNode;
|
|
5
|
+
} | {
|
|
6
|
+
/**
|
|
7
|
+
* Adds a node and, when `autoConnectFrom` is supplied, an edge from that
|
|
8
|
+
* source node into the new node — both in a single reducer transition so
|
|
9
|
+
* one undo step reverts the node and the auto-edge together.
|
|
10
|
+
*/
|
|
11
|
+
type: 'addNodeWithEdge';
|
|
12
|
+
node: GraphNode;
|
|
13
|
+
autoConnectFrom: {
|
|
14
|
+
edge: GraphEdge;
|
|
15
|
+
} | null;
|
|
16
|
+
} | {
|
|
17
|
+
type: 'updateNodePosition';
|
|
18
|
+
id: string;
|
|
19
|
+
position: Position;
|
|
20
|
+
} | {
|
|
21
|
+
/**
|
|
22
|
+
* Repositions many nodes in one transition — the one-click auto-arrange.
|
|
23
|
+
* Positions are precomputed by `autoLayout`; a node absent from the map
|
|
24
|
+
* keeps its current position. Unlike `replace` this is an in-place user
|
|
25
|
+
* edit, so it pushes a SINGLE undo step (and leaves the rest of the undo
|
|
26
|
+
* stack intact) rather than resetting history.
|
|
27
|
+
*/
|
|
28
|
+
type: 'arrangeNodes';
|
|
29
|
+
positions: Record<string, Position>;
|
|
30
|
+
} | {
|
|
31
|
+
type: 'updateNodeConfig';
|
|
32
|
+
id: string;
|
|
33
|
+
config: unknown;
|
|
34
|
+
/**
|
|
35
|
+
* Renames an output handle id on the node's outbound edges in the SAME
|
|
36
|
+
* transition. Some handle ids derive from mutable config (Classify:
|
|
37
|
+
* `cat_<name>`); moving the edge atomically keeps React Flow from pruning
|
|
38
|
+
* it as an orphan when the id changes.
|
|
39
|
+
*/
|
|
40
|
+
remapEdgeHandle?: {
|
|
41
|
+
from: string;
|
|
42
|
+
to: string;
|
|
43
|
+
};
|
|
44
|
+
} | {
|
|
45
|
+
type: 'deleteNode';
|
|
46
|
+
id: string;
|
|
47
|
+
} | {
|
|
48
|
+
type: 'addEdge';
|
|
49
|
+
edge: GraphEdge;
|
|
50
|
+
} | {
|
|
51
|
+
type: 'reconnectEdge';
|
|
52
|
+
id: string;
|
|
53
|
+
source: string;
|
|
54
|
+
target: string;
|
|
55
|
+
sourceHandle?: string;
|
|
56
|
+
targetHandle?: string;
|
|
57
|
+
} | {
|
|
58
|
+
type: 'deleteEdge';
|
|
59
|
+
id: string;
|
|
60
|
+
} | {
|
|
61
|
+
/**
|
|
62
|
+
* Merges a partial patch into an edge by id (e.g. its `label`). Endpoint
|
|
63
|
+
* moves go through `reconnectEdge`; this is for non-structural fields so
|
|
64
|
+
* label edits stay undoable through `graphHistory`.
|
|
65
|
+
*/
|
|
66
|
+
type: 'updateEdge';
|
|
67
|
+
id: string;
|
|
68
|
+
patch: Partial<Omit<GraphEdge, 'id'>>;
|
|
69
|
+
} | {
|
|
70
|
+
type: 'replace';
|
|
71
|
+
graph: Graph;
|
|
72
|
+
};
|
|
73
|
+
export declare function graphReducer(state: Graph, action: GraphAction): Graph;
|
|
74
|
+
export declare const emptyGraph: Graph;
|
|
75
|
+
//# sourceMappingURL=graphReducer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphReducer.d.ts","sourceRoot":"","sources":["../../../src/components/Workflow/graphReducer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE9E,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GACpC;IACE;;;;OAIG;IACH,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,eAAe,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,GAAG,IAAI,CAAC;CAC7C,GACD;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,GAC9D;IACE;;;;;;OAMG;IACH,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CACrC,GACD;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB;;;;;OAKG;IACH,eAAe,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD,GACD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GACpC;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GACD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAClC;IACE;;;;OAIG;IACH,IAAI,EAAE,YAAY,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;CACvC,GACD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAetC,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,GAAG,KAAK,CAuHrE;AAED,eAAO,MAAM,UAAU,EAAE,KAAgC,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
/** Normalize null-vs-undefined for optional handle ids so dedupe works. */
|
|
5
|
+
function normEdge(edge) {
|
|
6
|
+
return {
|
|
7
|
+
...edge,
|
|
8
|
+
sourceHandle: edge.sourceHandle ?? undefined,
|
|
9
|
+
targetHandle: edge.targetHandle ?? undefined,
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
function normGraph(graph) {
|
|
13
|
+
return { ...graph, edges: graph.edges.map(normEdge) };
|
|
14
|
+
}
|
|
15
|
+
function graphReducer(state, action) {
|
|
16
|
+
switch (action.type) {
|
|
17
|
+
case 'addNode':
|
|
18
|
+
if (state.nodes.some((n) => n.id === action.node.id))
|
|
19
|
+
return state;
|
|
20
|
+
return { ...state, nodes: [...state.nodes, action.node] };
|
|
21
|
+
case 'addNodeWithEdge': {
|
|
22
|
+
if (state.nodes.some((n) => n.id === action.node.id))
|
|
23
|
+
return state;
|
|
24
|
+
const nodes = [...state.nodes, action.node];
|
|
25
|
+
if (!action.autoConnectFrom)
|
|
26
|
+
return { ...state, nodes };
|
|
27
|
+
const edge = normEdge(action.autoConnectFrom.edge);
|
|
28
|
+
// The auto-edge is freshly generated and references a brand-new node id,
|
|
29
|
+
// so it can't collide; append it alongside the node.
|
|
30
|
+
return { nodes, edges: [...state.edges, edge] };
|
|
31
|
+
}
|
|
32
|
+
case 'updateNodePosition':
|
|
33
|
+
return {
|
|
34
|
+
...state,
|
|
35
|
+
nodes: state.nodes.map((n) => n.id === action.id ? { ...n, position: action.position } : n),
|
|
36
|
+
};
|
|
37
|
+
case 'arrangeNodes': {
|
|
38
|
+
// Skip nodes that don't move so an arrange producing the current layout
|
|
39
|
+
// collapses to the same reference — `historyReducer` then treats it as a
|
|
40
|
+
// no-op and records no undo step.
|
|
41
|
+
let moved = false;
|
|
42
|
+
const nodes = state.nodes.map((n) => {
|
|
43
|
+
const next = action.positions[n.id];
|
|
44
|
+
if (!next || (next.x === n.position.x && next.y === n.position.y)) {
|
|
45
|
+
return n;
|
|
46
|
+
}
|
|
47
|
+
moved = true;
|
|
48
|
+
return { ...n, position: next };
|
|
49
|
+
});
|
|
50
|
+
return moved ? { ...state, nodes } : state;
|
|
51
|
+
}
|
|
52
|
+
case 'updateNodeConfig': {
|
|
53
|
+
const nodes = state.nodes.map((n) => n.id === action.id ? { ...n, config: action.config } : n);
|
|
54
|
+
const remap = action.remapEdgeHandle;
|
|
55
|
+
if (!remap)
|
|
56
|
+
return { ...state, nodes };
|
|
57
|
+
const edges = state.edges.map((e) => e.source === action.id && (e.sourceHandle ?? undefined) === remap.from
|
|
58
|
+
? { ...e, sourceHandle: remap.to }
|
|
59
|
+
: e);
|
|
60
|
+
return { ...state, nodes, edges };
|
|
61
|
+
}
|
|
62
|
+
case 'deleteNode':
|
|
63
|
+
return {
|
|
64
|
+
nodes: state.nodes.filter((n) => n.id !== action.id),
|
|
65
|
+
edges: state.edges.filter((e) => e.source !== action.id && e.target !== action.id),
|
|
66
|
+
};
|
|
67
|
+
case 'addEdge': {
|
|
68
|
+
const edge = normEdge(action.edge);
|
|
69
|
+
if (state.edges.some((e) => e.id === edge.id))
|
|
70
|
+
return state;
|
|
71
|
+
const dup = state.edges.some((e) => e.source === edge.source &&
|
|
72
|
+
(e.sourceHandle ?? undefined) === edge.sourceHandle &&
|
|
73
|
+
e.target === edge.target &&
|
|
74
|
+
(e.targetHandle ?? undefined) === edge.targetHandle);
|
|
75
|
+
if (dup)
|
|
76
|
+
return state;
|
|
77
|
+
return { ...state, edges: [...state.edges, edge] };
|
|
78
|
+
}
|
|
79
|
+
case 'reconnectEdge': {
|
|
80
|
+
const existing = state.edges.find((e) => e.id === action.id);
|
|
81
|
+
if (!existing)
|
|
82
|
+
return state;
|
|
83
|
+
const next = normEdge({
|
|
84
|
+
...existing,
|
|
85
|
+
source: action.source,
|
|
86
|
+
target: action.target,
|
|
87
|
+
sourceHandle: action.sourceHandle,
|
|
88
|
+
targetHandle: action.targetHandle,
|
|
89
|
+
});
|
|
90
|
+
// A reconnect can land on endpoints that already have an identical edge;
|
|
91
|
+
// isValidConnection doesn't dedupe, so guard here and no-op the move.
|
|
92
|
+
const dup = state.edges.some((e) => e.id !== next.id &&
|
|
93
|
+
e.source === next.source &&
|
|
94
|
+
(e.sourceHandle ?? undefined) === next.sourceHandle &&
|
|
95
|
+
e.target === next.target &&
|
|
96
|
+
(e.targetHandle ?? undefined) === next.targetHandle);
|
|
97
|
+
if (dup)
|
|
98
|
+
return state;
|
|
99
|
+
return {
|
|
100
|
+
...state,
|
|
101
|
+
edges: state.edges.map((e) => (e.id === next.id ? next : e)),
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
case 'deleteEdge':
|
|
105
|
+
return { ...state, edges: state.edges.filter((e) => e.id !== action.id) };
|
|
106
|
+
case 'updateEdge': {
|
|
107
|
+
if (!state.edges.some((e) => e.id === action.id))
|
|
108
|
+
return state;
|
|
109
|
+
return {
|
|
110
|
+
...state,
|
|
111
|
+
edges: state.edges.map((e) => e.id === action.id ? normEdge({ ...e, ...action.patch }) : e),
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
case 'replace':
|
|
115
|
+
return normGraph(action.graph);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
const emptyGraph = { nodes: [], edges: [] };
|
|
119
|
+
|
|
120
|
+
exports.emptyGraph = emptyGraph;
|
|
121
|
+
exports.graphReducer = graphReducer;
|
|
122
|
+
//# sourceMappingURL=graphReducer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphReducer.js","sources":["../../../src/components/Workflow/graphReducer.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AA6DA;AACA,SAAS,QAAQ,CAAC,IAAe,EAAA;IAC/B,OAAO;AACL,QAAA,GAAG,IAAI;AACP,QAAA,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,SAAS;AAC5C,QAAA,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,SAAS;KAC7C;AACH;AAEA,SAAS,SAAS,CAAC,KAAY,EAAA;AAC7B,IAAA,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AACvD;AAEM,SAAU,YAAY,CAAC,KAAY,EAAE,MAAmB,EAAA;AAC5D,IAAA,QAAQ,MAAM,CAAC,IAAI;AACjB,QAAA,KAAK,SAAS;YACZ,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AAAE,gBAAA,OAAO,KAAK;AAClE,YAAA,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE;QAE3D,KAAK,iBAAiB,EAAE;YACtB,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AAAE,gBAAA,OAAO,KAAK;AAClE,YAAA,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,eAAe;AAAE,gBAAA,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE;YACvD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC;;;AAGlD,YAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;QACjD;AAEA,QAAA,KAAK,oBAAoB;YACvB,OAAO;AACL,gBAAA,GAAG,KAAK;AACR,gBAAA,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KACvB,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAC7D;aACF;QAEH,KAAK,cAAc,EAAE;;;;YAInB,IAAI,KAAK,GAAG,KAAK;YACjB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;gBAClC,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AACjE,oBAAA,OAAO,CAAC;gBACV;gBACA,KAAK,GAAG,IAAI;gBACZ,OAAO,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;AACjC,YAAA,CAAC,CAAC;AACF,YAAA,OAAO,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK;QAC5C;QAEA,KAAK,kBAAkB,EAAE;AACvB,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAC9B,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACzD;AACD,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe;AACpC,YAAA,IAAI,CAAC,KAAK;AAAE,gBAAA,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE;AACtC,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAC9B,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,SAAS,MAAM,KAAK,CAAC;kBAC9D,EAAE,GAAG,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE;kBAC9B,CAAC,CACN;YACD,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QACnC;AAEA,QAAA,KAAK,YAAY;YACf,OAAO;AACL,gBAAA,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC;gBACpD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CACvB,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,CACxD;aACF;QAEH,KAAK,SAAS,EAAE;YACd,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;AAClC,YAAA,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;AAAE,gBAAA,OAAO,KAAK;AAC3D,YAAA,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAC1B,CAAC,CAAC,KACA,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;gBACxB,CAAC,CAAC,CAAC,YAAY,IAAI,SAAS,MAAM,IAAI,CAAC,YAAY;AACnD,gBAAA,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;gBACxB,CAAC,CAAC,CAAC,YAAY,IAAI,SAAS,MAAM,IAAI,CAAC,YAAY,CACtD;AACD,YAAA,IAAI,GAAG;AAAE,gBAAA,OAAO,KAAK;AACrB,YAAA,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;QACpD;QAEA,KAAK,eAAe,EAAE;YACpB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC;AAC5D,YAAA,IAAI,CAAC,QAAQ;AAAE,gBAAA,OAAO,KAAK;YAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC;AACpB,gBAAA,GAAG,QAAQ;gBACX,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,YAAY,EAAE,MAAM,CAAC,YAAY;AAClC,aAAA,CAAC;;;AAGF,YAAA,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAC1B,CAAC,CAAC,KACA,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;AAChB,gBAAA,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;gBACxB,CAAC,CAAC,CAAC,YAAY,IAAI,SAAS,MAAM,IAAI,CAAC,YAAY;AACnD,gBAAA,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;gBACxB,CAAC,CAAC,CAAC,YAAY,IAAI,SAAS,MAAM,IAAI,CAAC,YAAY,CACtD;AACD,YAAA,IAAI,GAAG;AAAE,gBAAA,OAAO,KAAK;YACrB,OAAO;AACL,gBAAA,GAAG,KAAK;AACR,gBAAA,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;aAC7D;QACH;AAEA,QAAA,KAAK,YAAY;YACf,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,EAAE;QAE3E,KAAK,YAAY,EAAE;AACjB,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC;AAAE,gBAAA,OAAO,KAAK;YAC9D,OAAO;AACL,gBAAA,GAAG,KAAK;AACR,gBAAA,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KACvB,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAC7D;aACF;QACH;AAEA,QAAA,KAAK,SAAS;AACZ,YAAA,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;;AAEpC;AAEO,MAAM,UAAU,GAAU,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;;;;;"}
|