diff --git a/docs/components/DocsRepl.vue b/docs/components/DocsRepl.vue index 91c5da48..126ef465 100644 --- a/docs/components/DocsRepl.vue +++ b/docs/components/DocsRepl.vue @@ -78,6 +78,7 @@ onMounted(async () => { '@vue-flow/controls': `${location.origin}/vue-flow-controls.mjs`, '@vue-flow/minimap': `${location.origin}/vue-flow-minimap.mjs`, '@vue-flow/core': `${location.origin}/vue-flow-core.mjs`, + '@vue-flow/node-resizer': `${location.origin}/vue-flow-node-resizer.mjs`, '@vue-flow/node-toolbar': `${location.origin}/vue-flow-node-toolbar.mjs`, ...additionalImports, }, diff --git a/docs/components/examples/index.ts b/docs/components/examples/index.ts index d2b85aac..c68ff920 100644 --- a/docs/components/examples/index.ts +++ b/docs/components/examples/index.ts @@ -18,6 +18,7 @@ import { TeleportApp, TeleportCSS, TeleportSidebar, TeleportableNode, Teleportab import { TransitionApp, TransitionCSS, TransitionEdge } from './transition' import { IntersectionApp, IntersectionCSS, IntersectionElements } from './intersection' import { SnapToHandleApp, SnappableConnectionLine } from './snap-to-handle' +import { NodeResizerApp, ResizableNode } from './node-resizer' import { ToolbarApp, ToolbarNode } from './node-toolbar' export const exampleImports = { @@ -120,6 +121,10 @@ export const exampleImports = { 'App.vue': SnapToHandleApp, 'SnappableConnectionLine.vue': SnappableConnectionLine, }, + resizable: { + 'App.vue': NodeResizerApp, + 'SnappableConnectionLine.vue': ResizableNode, + }, toolbar: { 'App.vue': ToolbarApp, 'ToolbarNode.vue': ToolbarNode, diff --git a/docs/components/examples/node-resizer/App.vue b/docs/components/examples/node-resizer/App.vue new file mode 100644 index 00000000..b279d4d0 --- /dev/null +++ b/docs/components/examples/node-resizer/App.vue @@ -0,0 +1,23 @@ + + + diff --git a/docs/components/examples/node-resizer/ResizableNode.vue b/docs/components/examples/node-resizer/ResizableNode.vue new file mode 100644 index 00000000..c52dc3a4 --- /dev/null +++ b/docs/components/examples/node-resizer/ResizableNode.vue @@ -0,0 +1,15 @@ + + + diff --git a/docs/components/examples/node-resizer/index.ts b/docs/components/examples/node-resizer/index.ts new file mode 100644 index 00000000..ec377bdf --- /dev/null +++ b/docs/components/examples/node-resizer/index.ts @@ -0,0 +1,2 @@ +export { default as NodeResizerApp } from './App.vue?raw' +export { default as ResizableNode } from './ResizableNode.vue?raw' diff --git a/docs/components/examples/node-resizer/style.css b/docs/components/examples/node-resizer/style.css new file mode 100644 index 00000000..49e8491f --- /dev/null +++ b/docs/components/examples/node-resizer/style.css @@ -0,0 +1 @@ +@import 'https://cdn.jsdelivr.net/npm/@vue-flow/node-resizer@latest/dist/style.css'; diff --git a/docs/package.json b/docs/package.json index 28697c69..239f8b13 100644 --- a/docs/package.json +++ b/docs/package.json @@ -20,6 +20,7 @@ "@vue-flow/controls": "workspace:*", "@vue-flow/core": "workspace:*", "@vue-flow/minimap": "workspace:*", + "@vue-flow/node-resizer": "workspace:*", "@vue-flow/node-toolbar": "workspace:*", "@vue/repl": "1.1.2", "blobity": "^0.2.1", diff --git a/docs/src/.vitepress/config.ts b/docs/src/.vitepress/config.ts index baae04b0..8ff03c55 100644 --- a/docs/src/.vitepress/config.ts +++ b/docs/src/.vitepress/config.ts @@ -211,6 +211,7 @@ export default defineConfigWithTheme({ { text: 'Custom Node', link: '/examples/nodes/' }, { text: 'Update Node', link: '/examples/nodes/update-node' }, { text: 'Nested Nodes', link: '/examples/nodes/nesting' }, + { text: 'Node Resizer', link: '/examples/nodes/node-resizer' }, { text: 'Node Toolbar', link: '/examples/nodes/node-toolbar' }, ], }, diff --git a/docs/src/.vitepress/plugins/copy.ts b/docs/src/.vitepress/plugins/copy.ts index 7dd8f925..ada379f1 100644 --- a/docs/src/.vitepress/plugins/copy.ts +++ b/docs/src/.vitepress/plugins/copy.ts @@ -20,6 +20,10 @@ export function copyVueFlowPlugin(): Plugin { path: '../../../node_modules/@vue-flow/minimap/dist/', pkgName: 'vue-flow-minimap.mjs', }, + { + path: '../../../node_modules/@vue-flow/node-resizer/dist/', + pkgName: 'vue-flow-node-resizer.mjs', + }, { path: '../../../node_modules/@vue-flow/node-toolbar/dist/', pkgName: 'vue-flow-node-toolbar.mjs', diff --git a/docs/src/components.d.ts b/docs/src/components.d.ts index d1a7b145..38e58499 100644 --- a/docs/src/components.d.ts +++ b/docs/src/components.d.ts @@ -31,6 +31,7 @@ declare module '@vue/runtime-core' { Output: typeof import('./../components/home/nodes/Output.vue')['default'] PiniaExample: typeof import('./../components/examples/pinia/PiniaExample.vue')['default'] Repl: typeof import('./../components/Repl.vue')['default'] + ResizableNode: typeof import('./../components/examples/node-resizer/ResizableNode.vue')['default'] RGB: typeof import('./../components/home/flows/RGB.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] diff --git a/docs/src/examples/nodes/node-resizer.md b/docs/src/examples/nodes/node-resizer.md new file mode 100644 index 00000000..bc88d053 --- /dev/null +++ b/docs/src/examples/nodes/node-resizer.md @@ -0,0 +1,7 @@ +# Node Resizer + +The node resizer is a component that can be used to resize a node. + +
+ +
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 44617c62..306628b7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -40,6 +40,7 @@ importers: '@vercel/analytics': ^0.1.5 '@vue-flow/additional-components': workspace:* '@vue-flow/core': workspace:* + '@vue-flow/node-resizer': workspace:* '@vue/repl': 1.1.2 '@windicss/plugin-scrollbar': ^1.2.3 blobity: ^0.2.1 @@ -66,6 +67,7 @@ importers: '@vercel/analytics': 0.1.5_react@18.2.0 '@vue-flow/additional-components': link:../packages/additional-components '@vue-flow/core': link:../packages/core + '@vue-flow/node-resizer': link:../packages/node-resizer '@vue/repl': 1.1.2_vue@3.2.37 blobity: 0.2.1_react@18.2.0+vue@3.2.37 canvas-confetti: 1.6.0