From 54bc49cd2bbb2d2f77b20bd0b4a94d5c31baad4c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 15 Mar 2026 10:55:38 +0000 Subject: [PATCH] Resolve merge conflicts: sync OrbitImagesDemo.vue and registry JSON files with main Co-authored-by: DavidHDev <48634587+DavidHDev@users.noreply.github.com> --- package-lock.json | 2 +- package.json | 2 +- public/r/AnimatedList.json | 2 +- public/r/Carousel.json | 2 +- public/r/Counter.json | 2 +- public/r/Dock.json | 2 +- public/r/RotatingText.json | 2 +- public/r/Stack.json | 2 +- public/r/Stepper.json | 2 +- public/r/TextCursor.json | 2 +- public/r/TiltedCard.json | 2 +- public/r/TrueFocus.json | 2 +- src/demo/Animations/OrbitImagesDemo.vue | 139 ++++++++++++------------ 13 files changed, 82 insertions(+), 81 deletions(-) diff --git a/package-lock.json b/package-lock.json index 35d15e7..ad6e719 100644 --- a/package-lock.json +++ b/package-lock.json @@ -55,7 +55,7 @@ "typescript": "~5.8.0", "vite": "^7.0.0", "vite-plugin-vue-devtools": "^7.7.7", - "vue-tsc": "^2.2.10" + "vue-tsc": "^2.2.12" } }, "node_modules/@alvarosabu/utils": { diff --git a/package.json b/package.json index 3f5dcfc..6bd89bd 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "typescript": "~5.8.0", "vite": "^7.0.0", "vite-plugin-vue-devtools": "^7.7.7", - "vue-tsc": "^2.2.10" + "vue-tsc": "^2.2.12" }, "lint-staged": { "src/**/*.{js,ts,jsx,tsx,vue}": [ diff --git a/public/r/AnimatedList.json b/public/r/AnimatedList.json index 8fd98fa..0ce4454 100644 --- a/public/r/AnimatedList.json +++ b/public/r/AnimatedList.json @@ -1 +1 @@ -{"name":"AnimatedList","title":"AnimatedList","description":"List items enter with staggered motion variants for polished reveals.","type":"registry:component","add":"when-added","files":[{"type":"registry:component","role":"file","content":"\n\n\n","path":"AnimatedList/AnimatedList.vue","_imports_":[],"registryDependencies":[],"dependencies":[],"devDependencies":[]}],"registryDependencies":[],"dependencies":[{"ecosystem":"js","name":"motion-v","version":"^1.10.2"}],"devDependencies":[],"categories":["Components"]} \ No newline at end of file +{"name":"AnimatedList","title":"AnimatedList","description":"List items enter with staggered motion variants for polished reveals.","type":"registry:component","add":"when-added","files":[{"type":"registry:component","role":"file","content":"\n\n\n","path":"AnimatedList/AnimatedList.vue","_imports_":[],"registryDependencies":[],"dependencies":[],"devDependencies":[]}],"registryDependencies":[],"dependencies":[{"ecosystem":"js","name":"motion-v","version":"^1.5.0"}],"devDependencies":[],"categories":["Components"]} \ No newline at end of file diff --git a/public/r/Carousel.json b/public/r/Carousel.json index 1da492b..9153b49 100644 --- a/public/r/Carousel.json +++ b/public/r/Carousel.json @@ -1 +1 @@ -{"name":"Carousel","title":"Carousel","description":"Responsive carousel with touch gestures, looping and transitions.","type":"registry:component","add":"when-added","files":[{"type":"registry:component","role":"file","content":"\n\n\n\n\n","path":"Carousel/Carousel.vue","_imports_":[],"registryDependencies":[],"dependencies":[],"devDependencies":[]}],"registryDependencies":[],"dependencies":[{"ecosystem":"js","name":"motion-v","version":"^1.10.2"}],"devDependencies":[],"categories":["Components"]} \ No newline at end of file +{"name":"Carousel","title":"Carousel","description":"Responsive carousel with touch gestures, looping and transitions.","type":"registry:component","add":"when-added","files":[{"type":"registry:component","role":"file","content":"\n\n\n\n\n","path":"Carousel/Carousel.vue","_imports_":[],"registryDependencies":[],"dependencies":[],"devDependencies":[]}],"registryDependencies":[],"dependencies":[{"ecosystem":"js","name":"motion-v","version":"^1.5.0"}],"devDependencies":[],"categories":["Components"]} \ No newline at end of file diff --git a/public/r/Counter.json b/public/r/Counter.json index 43f76fb..8fc2b17 100644 --- a/public/r/Counter.json +++ b/public/r/Counter.json @@ -1 +1 @@ -{"name":"Counter","title":"Counter","description":"Flexible animated counter supporting increments + easing.","type":"registry:component","add":"when-added","files":[{"type":"registry:component","role":"file","content":"\n\n\n","path":"Counter/Counter.vue","_imports_":[],"registryDependencies":[],"dependencies":[],"devDependencies":[]}],"registryDependencies":[],"dependencies":[{"ecosystem":"js","name":"motion-v","version":"^1.10.2"}],"devDependencies":[],"categories":["Components"]} \ No newline at end of file +{"name":"Counter","title":"Counter","description":"Flexible animated counter supporting increments + easing.","type":"registry:component","add":"when-added","files":[{"type":"registry:component","role":"file","content":"\n\n\n","path":"Counter/Counter.vue","_imports_":[],"registryDependencies":[],"dependencies":[],"devDependencies":[]}],"registryDependencies":[],"dependencies":[{"ecosystem":"js","name":"motion-v","version":"^1.5.0"}],"devDependencies":[],"categories":["Components"]} \ No newline at end of file diff --git a/public/r/Dock.json b/public/r/Dock.json index 67dd279..665b660 100644 --- a/public/r/Dock.json +++ b/public/r/Dock.json @@ -1 +1 @@ -{"name":"Dock","title":"Dock","description":"macOS style magnifying dock with proximity scaling of icons.","type":"registry:component","add":"when-added","files":[{"type":"registry:component","role":"file","content":"\n\n\n\n\n","path":"Dock/Dock.vue","_imports_":[],"registryDependencies":[],"dependencies":[],"devDependencies":[]}],"registryDependencies":[],"dependencies":[{"ecosystem":"js","name":"motion-v","version":"^1.10.2"}],"devDependencies":[],"categories":["Components"]} \ No newline at end of file +{"name":"Dock","title":"Dock","description":"macOS style magnifying dock with proximity scaling of icons.","type":"registry:component","add":"when-added","files":[{"type":"registry:component","role":"file","content":"\n\n\n\n\n","path":"Dock/Dock.vue","_imports_":[],"registryDependencies":[],"dependencies":[],"devDependencies":[]}],"registryDependencies":[],"dependencies":[{"ecosystem":"js","name":"motion-v","version":"^1.5.0"}],"devDependencies":[],"categories":["Components"]} \ No newline at end of file diff --git a/public/r/RotatingText.json b/public/r/RotatingText.json index 3520600..68c31bb 100644 --- a/public/r/RotatingText.json +++ b/public/r/RotatingText.json @@ -1 +1 @@ -{"name":"RotatingText","title":"RotatingText","description":"Cycles through multiple phrases with 3D rotate / flip transitions.","type":"registry:component","add":"when-added","files":[{"type":"registry:component","role":"file","content":"\n\n\n","path":"RotatingText/RotatingText.vue","_imports_":[],"registryDependencies":[],"dependencies":[],"devDependencies":[]}],"registryDependencies":[],"dependencies":[{"ecosystem":"js","name":"motion-v","version":"^1.10.2"}],"devDependencies":[],"categories":["TextAnimations"]} \ No newline at end of file +{"name":"RotatingText","title":"RotatingText","description":"Cycles through multiple phrases with 3D rotate / flip transitions.","type":"registry:component","add":"when-added","files":[{"type":"registry:component","role":"file","content":"\n\n\n","path":"RotatingText/RotatingText.vue","_imports_":[],"registryDependencies":[],"dependencies":[],"devDependencies":[]}],"registryDependencies":[],"dependencies":[{"ecosystem":"js","name":"motion-v","version":"^1.5.0"}],"devDependencies":[],"categories":["TextAnimations"]} \ No newline at end of file diff --git a/public/r/Stack.json b/public/r/Stack.json index ceaadee..e80a304 100644 --- a/public/r/Stack.json +++ b/public/r/Stack.json @@ -1 +1 @@ -{"name":"Stack","title":"Stack","description":"Layered stack with swipe animations and smooth transitions.","type":"registry:component","add":"when-added","files":[{"type":"registry:component","role":"file","content":"\n\n\n","path":"Stack/Stack.vue","_imports_":[],"registryDependencies":[],"dependencies":[],"devDependencies":[]}],"registryDependencies":[],"dependencies":[{"ecosystem":"js","name":"motion-v","version":"^1.10.2"}],"devDependencies":[],"categories":["Components"]} \ No newline at end of file +{"name":"Stack","title":"Stack","description":"Layered stack with swipe animations and smooth transitions.","type":"registry:component","add":"when-added","files":[{"type":"registry:component","role":"file","content":"\n\n\n","path":"Stack/Stack.vue","_imports_":[],"registryDependencies":[],"dependencies":[],"devDependencies":[]}],"registryDependencies":[],"dependencies":[{"ecosystem":"js","name":"motion-v","version":"^1.5.0"}],"devDependencies":[],"categories":["Components"]} \ No newline at end of file diff --git a/public/r/Stepper.json b/public/r/Stepper.json index 2a9726f..89b0558 100644 --- a/public/r/Stepper.json +++ b/public/r/Stepper.json @@ -1 +1 @@ -{"name":"Stepper","title":"Stepper","description":"Animated multi-step progress indicator with active state transitions.","type":"registry:component","add":"when-added","files":[{"type":"registry:component","role":"file","content":"\n\n\n","path":"Stepper/Stepper.vue","_imports_":[],"registryDependencies":[],"dependencies":[],"devDependencies":[]}],"registryDependencies":[],"dependencies":[{"ecosystem":"js","name":"motion-v","version":"^1.10.2"}],"devDependencies":[],"categories":["Components"]} \ No newline at end of file +{"name":"Stepper","title":"Stepper","description":"Animated multi-step progress indicator with active state transitions.","type":"registry:component","add":"when-added","files":[{"type":"registry:component","role":"file","content":"\n\n\n","path":"Stepper/Stepper.vue","_imports_":[],"registryDependencies":[],"dependencies":[],"devDependencies":[]}],"registryDependencies":[],"dependencies":[{"ecosystem":"js","name":"motion-v","version":"^1.5.0"}],"devDependencies":[],"categories":["Components"]} \ No newline at end of file diff --git a/public/r/TextCursor.json b/public/r/TextCursor.json index 634e43b..110d2a8 100644 --- a/public/r/TextCursor.json +++ b/public/r/TextCursor.json @@ -1 +1 @@ -{"name":"TextCursor","title":"TextCursor","description":"Make any text element follow your cursor, leaving a trail of copies behind it.","type":"registry:component","add":"when-added","files":[{"type":"registry:component","role":"file","content":"\n\n\n\n\n","path":"TextCursor/TextCursor.vue","_imports_":[],"registryDependencies":[],"dependencies":[],"devDependencies":[]}],"registryDependencies":[],"dependencies":[{"ecosystem":"js","name":"motion-v","version":"^1.10.2"}],"devDependencies":[],"categories":["TextAnimations"]} \ No newline at end of file +{"name":"TextCursor","title":"TextCursor","description":"Make any text element follow your cursor, leaving a trail of copies behind it.","type":"registry:component","add":"when-added","files":[{"type":"registry:component","role":"file","content":"\n\n\n\n\n","path":"TextCursor/TextCursor.vue","_imports_":[],"registryDependencies":[],"dependencies":[],"devDependencies":[]}],"registryDependencies":[],"dependencies":[{"ecosystem":"js","name":"motion-v","version":"^1.5.0"}],"devDependencies":[],"categories":["TextAnimations"]} \ No newline at end of file diff --git a/public/r/TiltedCard.json b/public/r/TiltedCard.json index 20ecb58..2368b21 100644 --- a/public/r/TiltedCard.json +++ b/public/r/TiltedCard.json @@ -1 +1 @@ -{"name":"TiltedCard","title":"TiltedCard","description":"3D perspective tilt card reacting to pointer.","type":"registry:component","add":"when-added","files":[{"type":"registry:component","role":"file","content":"\n\n\n","path":"TiltedCard/TiltedCard.vue","_imports_":[],"registryDependencies":[],"dependencies":[],"devDependencies":[]}],"registryDependencies":[],"dependencies":[{"ecosystem":"js","name":"motion-v","version":"^1.10.2"}],"devDependencies":[],"categories":["Components"]} \ No newline at end of file +{"name":"TiltedCard","title":"TiltedCard","description":"3D perspective tilt card reacting to pointer.","type":"registry:component","add":"when-added","files":[{"type":"registry:component","role":"file","content":"\n\n\n","path":"TiltedCard/TiltedCard.vue","_imports_":[],"registryDependencies":[],"dependencies":[],"devDependencies":[]}],"registryDependencies":[],"dependencies":[{"ecosystem":"js","name":"motion-v","version":"^1.5.0"}],"devDependencies":[],"categories":["Components"]} \ No newline at end of file diff --git a/public/r/TrueFocus.json b/public/r/TrueFocus.json index a185e0d..5f95aa2 100644 --- a/public/r/TrueFocus.json +++ b/public/r/TrueFocus.json @@ -1 +1 @@ -{"name":"TrueFocus","title":"TrueFocus","description":"Applies dynamic blur / clarity based over a series of words in order.","type":"registry:component","add":"when-added","files":[{"type":"registry:component","role":"file","content":"\n\n\n\n\n","path":"TrueFocus/TrueFocus.vue","_imports_":[],"registryDependencies":[],"dependencies":[],"devDependencies":[]}],"registryDependencies":[],"dependencies":[{"ecosystem":"js","name":"motion-v","version":"^1.10.2"}],"devDependencies":[],"categories":["TextAnimations"]} \ No newline at end of file +{"name":"TrueFocus","title":"TrueFocus","description":"Applies dynamic blur / clarity based over a series of words in order.","type":"registry:component","add":"when-added","files":[{"type":"registry:component","role":"file","content":"\n\n\n","path":"TrueFocus/TrueFocus.vue","_imports_":[],"registryDependencies":[],"dependencies":[],"devDependencies":[]}],"registryDependencies":[],"dependencies":[{"ecosystem":"js","name":"motion-v","version":"^1.5.0"}],"devDependencies":[],"categories":["TextAnimations"]} \ No newline at end of file diff --git a/src/demo/Animations/OrbitImagesDemo.vue b/src/demo/Animations/OrbitImagesDemo.vue index fdbfffb..4d899b7 100644 --- a/src/demo/Animations/OrbitImagesDemo.vue +++ b/src/demo/Animations/OrbitImagesDemo.vue @@ -23,21 +23,71 @@ - + - + - + - + - + - + - + - + @@ -73,7 +123,8 @@ import PreviewSlider from '../../components/common/PreviewSlider.vue'; import PreviewSwitch from '../../components/common/PreviewSwitch.vue'; import PreviewSelect from '../../components/common/PreviewSelect.vue'; import RefreshButton from '../../components/common/RefreshButton.vue'; -import OrbitImages, { type OrbitShape } from '../../content/Animations/OrbitImages/OrbitImages.vue'; +import OrbitImages from '../../content/Animations/OrbitImages/OrbitImages.vue'; +import type { OrbitShape } from '../../content/Animations/OrbitImages/OrbitImages.vue'; import { orbitImages } from '@/constants/code/Animations/orbitImagesCode'; import { useForceRerender } from '@/composables/useForceRerender'; @@ -119,79 +170,29 @@ const directionOptions = [ const propData = [ { name: 'images', type: 'string[]', default: '[]', description: 'Array of image URLs to orbit along the path.' }, - { - name: 'altPrefix', - type: 'string', - default: '"Orbiting image"', - description: 'Prefix for auto-generated alt attributes.' - }, - { - name: 'shape', - type: 'OrbitShape', - default: '"ellipse"', - description: 'Preset shape: ellipse, circle, square, rectangle, triangle, star, heart, infinity, wave, or custom.' - }, - { - name: 'customPath', - type: 'string', - default: 'undefined', - description: 'Custom SVG path string (used when shape="custom").' - }, - { - name: 'baseWidth', - type: 'number', - default: '1400', - description: 'Base width for the design coordinate space used for responsive scaling.' - }, + { name: 'altPrefix', type: 'string', default: '"Orbiting image"', description: 'Prefix for auto-generated alt attributes.' }, + { name: 'shape', type: 'OrbitShape', default: '"ellipse"', description: 'Preset shape: ellipse, circle, square, rectangle, triangle, star, heart, infinity, wave, or custom.' }, + { name: 'customPath', type: 'string', default: 'undefined', description: 'Custom SVG path string (used when shape="custom").' }, + { name: 'baseWidth', type: 'number', default: '1400', description: 'Base width for the design coordinate space used for responsive scaling.' }, { name: 'radiusX', type: 'number', default: '700', description: 'Horizontal radius for ellipse/rectangle shapes.' }, { name: 'radiusY', type: 'number', default: '170', description: 'Vertical radius for ellipse/rectangle shapes.' }, - { - name: 'radius', - type: 'number', - default: '300', - description: 'Radius for circle, square, triangle, star, heart shapes.' - }, + { name: 'radius', type: 'number', default: '300', description: 'Radius for circle, square, triangle, star, heart shapes.' }, { name: 'starPoints', type: 'number', default: '5', description: 'Number of points for star shape.' }, { name: 'starInnerRatio', type: 'number', default: '0.5', description: 'Inner radius ratio for star (0-1).' }, - { - name: 'rotation', - type: 'number', - default: '-8', - description: 'Rotation angle of the entire orbit path in degrees.' - }, + { name: 'rotation', type: 'number', default: '-8', description: 'Rotation angle of the entire orbit path in degrees.' }, { name: 'duration', type: 'number', default: '40', description: 'Duration of one complete orbit in seconds.' }, { name: 'itemSize', type: 'number', default: '64', description: 'Width/height of each orbiting item in pixels.' }, { name: 'direction', type: '"normal" | "reverse"', default: '"normal"', description: 'Animation direction.' }, - { - name: 'fill', - type: 'boolean', - default: 'true', - description: 'Whether to distribute items evenly around the orbit.' - }, + { name: 'fill', type: 'boolean', default: 'true', description: 'Whether to distribute items evenly around the orbit.' }, { name: 'width', type: 'number | "100%"', default: '100', description: 'Container width in pixels or "100%".' }, { name: 'height', type: 'number | "auto"', default: '100', description: 'Container height in pixels or "auto".' }, { name: 'className', type: 'string', default: '""', description: 'Additional CSS class for the container.' }, { name: 'showPath', type: 'boolean', default: 'false', description: 'Whether to show the orbit path for debugging.' }, - { - name: 'pathColor', - type: 'string', - default: '"rgba(0,0,0,0.1)"', - description: 'Stroke color when showPath is true.' - }, + { name: 'pathColor', type: 'string', default: '"rgba(0,0,0,0.1)"', description: 'Stroke color when showPath is true.' }, { name: 'pathWidth', type: 'number', default: '2', description: 'Stroke width when showPath is true.' }, - { - name: 'easing', - type: 'string', - default: '"linear"', - description: 'Animation easing: linear, easeIn, easeOut, easeInOut.' - }, + { name: 'easing', type: 'string', default: '"linear"', description: 'Animation easing: linear, easeIn, easeOut, easeInOut.' }, { name: 'paused', type: 'boolean', default: 'false', description: 'Whether the animation is paused.' }, - { - name: 'responsive', - type: 'boolean', - default: 'false', - description: 'Enable responsive scaling based on container width.' - } + { name: 'responsive', type: 'boolean', default: 'false', description: 'Enable responsive scaling based on container width.' } ]; watch([shape, direction], () => {