From 4d0978343f457278fbd82e79cdf99bf645ff75da Mon Sep 17 00:00:00 2001 From: Braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Tue, 3 Dec 2024 15:12:24 +0100 Subject: [PATCH] docs(examples): add loopback edge example (#1708) docs(examples): add loopback example Signed-off-by: braks <78412429+bcakmakoglu@users.noreply.github.com> --- docs/examples/index.ts | 7 +- docs/examples/loopback/App.vue | 65 ++++++++++++++ docs/examples/loopback/LoopbackEdge.vue | 113 ++++++++++++++++++++++++ docs/examples/loopback/index.ts | 3 + docs/examples/loopback/style.css | 26 ++++++ docs/src/.vitepress/config.mts | 1 + docs/src/examples/edges/loopback.md | 8 ++ 7 files changed, 222 insertions(+), 1 deletion(-) create mode 100644 docs/examples/loopback/App.vue create mode 100644 docs/examples/loopback/LoopbackEdge.vue create mode 100644 docs/examples/loopback/index.ts create mode 100644 docs/examples/loopback/style.css create mode 100644 docs/src/examples/edges/loopback.md diff --git a/docs/examples/index.ts b/docs/examples/index.ts index cf9f6141..9504f687 100644 --- a/docs/examples/index.ts +++ b/docs/examples/index.ts @@ -20,7 +20,7 @@ import { NodeResizerApp, ResizableNode } from './node-resizer' import { ToolbarApp, ToolbarNode } from './node-toolbar' import { LayoutApp, LayoutEdge, LayoutElements, LayoutIcon, LayoutNode, useLayout, useRunProcess, useShuffle } from './layout' import { SimpleLayoutApp, SimpleLayoutElements, SimpleLayoutIcon, useSimpleLayout } from './layout-simple' - +import { LoopbackApp, LoopbackCSS, LoopbackEdge } from './loopback' import { MathApp, MathCSS, MathElements, MathIcon, MathOperatorNode, MathResultNode, MathValueNode } from './math' import { ConfirmApp, ConfirmDialog, useDialog } from './confirm-delete' @@ -165,4 +165,9 @@ export const exampleImports = { 'Dialog.vue': ConfirmDialog, 'useDialog.js': useDialog, }, + loopback: { + 'App.vue': LoopbackApp, + 'LoopbackEdge.vue': LoopbackEdge, + 'style.css': LoopbackCSS, + }, } diff --git a/docs/examples/loopback/App.vue b/docs/examples/loopback/App.vue new file mode 100644 index 00000000..782b1177 --- /dev/null +++ b/docs/examples/loopback/App.vue @@ -0,0 +1,65 @@ + + + diff --git a/docs/examples/loopback/LoopbackEdge.vue b/docs/examples/loopback/LoopbackEdge.vue new file mode 100644 index 00000000..7335fe0e --- /dev/null +++ b/docs/examples/loopback/LoopbackEdge.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/docs/examples/loopback/index.ts b/docs/examples/loopback/index.ts new file mode 100644 index 00000000..073ee57a --- /dev/null +++ b/docs/examples/loopback/index.ts @@ -0,0 +1,3 @@ +export { default as LoopbackApp } from './App.vue?raw' +export { default as LoopbackEdge } from './LoopbackEdge.vue?raw' +export { default as LoopbackCSS } from './style.css?inline' diff --git a/docs/examples/loopback/style.css b/docs/examples/loopback/style.css new file mode 100644 index 00000000..c337d1d1 --- /dev/null +++ b/docs/examples/loopback/style.css @@ -0,0 +1,26 @@ +.vue-flow__panel { + background-color: #2d3748; + padding: 10px; + border-radius: 8px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); + color: white; + display: flex; + flex-direction: column; + gap: 1rem; + font-size: 12px; + font-weight: 600; + width: 100px; +} + + +.vue-flow__panel label { + display: flex; + justify-content: space-between; + align-items: center; + gap: 5px; + cursor: pointer; +} + +.vue-flow__panel label input { + cursor: pointer; +} diff --git a/docs/src/.vitepress/config.mts b/docs/src/.vitepress/config.mts index 8df6d358..82f774f0 100644 --- a/docs/src/.vitepress/config.mts +++ b/docs/src/.vitepress/config.mts @@ -245,6 +245,7 @@ export default defineConfigWithTheme({ { text: 'Custom Connection Line', link: '/examples/edges/connection-line' }, { text: 'Connection Validation', link: '/examples/edges/validation' }, { text: 'Connection Radius', link: '/examples/edges/connection-radius' }, + { text: 'Loopback Edge', link: '/examples/edges/loopback' }, ], }, ], diff --git a/docs/src/examples/edges/loopback.md b/docs/src/examples/edges/loopback.md new file mode 100644 index 00000000..6a0d8451 --- /dev/null +++ b/docs/src/examples/edges/loopback.md @@ -0,0 +1,8 @@ +# Loopback Edges + +Loopback edges are edges that connect a node to itself. They are useful for representing self-referential relationships. +This example walks you through creating loopback edges using Vue Flow and custom edges. + +
+ +