gitextract_bj15kzcs/ ├── .editorconfig ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE.md │ └── workflows/ │ └── run-e2e.yml ├── .gitignore ├── .yarnrc ├── CHANGELOG-1.0.0.md ├── CHANGELOG.md ├── LICENSE ├── README.md ├── config/ │ └── update-type-consts.js ├── custom_css.md ├── demo/ │ ├── index.html │ └── static/ │ ├── css/ │ │ └── main.5b0258e1.chunk.css │ └── js/ │ ├── 2.8e0d6703.chunk.js │ ├── 2.8e0d6703.chunk.js.LICENSE.txt │ ├── main.4efc5ba5.chunk.js │ └── runtime-main.b494567c.js ├── groupable.md ├── handbook/ │ └── handbook.md ├── jsdoc.json ├── lerna.json ├── package.json ├── packages/ │ ├── croact-moveable/ │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── index.umd.ts │ │ ├── tsconfig.declaration.json │ │ ├── tsconfig.json │ │ └── tslint.json │ ├── helper/ │ │ ├── .eslintignore │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── CHANGELOG.md │ │ ├── global.d.ts │ │ ├── jest.config.js │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src/ │ │ │ ├── GroupManager.ts │ │ │ ├── groups.ts │ │ │ ├── index.cjs.ts │ │ │ ├── index.ts │ │ │ ├── index.umd.ts │ │ │ └── types.ts │ │ ├── test/ │ │ │ └── unit/ │ │ │ ├── GroupManager.spec.ts │ │ │ └── utils.ts │ │ ├── tsconfig.build.json │ │ ├── tsconfig.declaration.json │ │ └── tsconfig.json │ ├── lit-moveable/ │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── demo/ │ │ │ ├── index.html │ │ │ └── index.ts │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── rollup.demo.config.js │ │ ├── src/ │ │ │ ├── LitMoveable.ts │ │ │ ├── index.ts │ │ │ └── types.ts │ │ ├── tsconfig.build.json │ │ ├── tsconfig.declaration.json │ │ └── tsconfig.json │ ├── moveable/ │ │ ├── .npmignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src/ │ │ │ ├── InnerMoveable.tsx │ │ │ ├── Moveable.tsx │ │ │ ├── MoveableManager.tsx │ │ │ ├── consts.ts │ │ │ ├── index.cjs.ts │ │ │ ├── index.ts │ │ │ ├── index.umd.ts │ │ │ ├── types.ts │ │ │ └── utils.ts │ │ ├── test/ │ │ │ └── manual/ │ │ │ ├── css.html │ │ │ ├── custom/ │ │ │ │ ├── changeTarget.html │ │ │ │ ├── custom-child.js │ │ │ │ └── custom-parent.js │ │ │ ├── dragapi.html │ │ │ ├── fixed.html │ │ │ ├── fixedgroup.html │ │ │ ├── groupDragTarget.html │ │ │ ├── groupandsnappable.html │ │ │ ├── iframe.html │ │ │ ├── input.html │ │ │ ├── resizable.html │ │ │ ├── selecto.html │ │ │ ├── snappable.html │ │ │ ├── text.html │ │ │ ├── updateSelecgtors.html │ │ │ └── updateSelecgtors2.html │ │ ├── tsconfig.declaration.json │ │ └── tsconfig.json │ ├── ngx-moveable/ │ │ ├── .browserslistrc │ │ ├── .editorconfig │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── angular.json │ │ ├── karma.conf.js │ │ ├── package.json │ │ ├── projects/ │ │ │ └── ngx-moveable/ │ │ │ ├── CHANGELOG.md │ │ │ ├── README.md │ │ │ ├── karma.conf.js │ │ │ ├── ng-package.json │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── consts.ts │ │ │ │ ├── ngx-moveable.component.ts │ │ │ │ ├── ngx-moveable.interface.ts │ │ │ │ ├── ngx-moveable.legacy.component.ts │ │ │ │ ├── ngx-moveable.module.ts │ │ │ │ ├── public-api.ts │ │ │ │ ├── test.ts │ │ │ │ └── types.ts │ │ │ ├── tsconfig.lib.json │ │ │ ├── tsconfig.lib.prod.json │ │ │ ├── tsconfig.spec.json │ │ │ └── tslint.json │ │ ├── src/ │ │ │ ├── app/ │ │ │ │ ├── app.component.css │ │ │ │ ├── app.component.html │ │ │ │ ├── app.component.spec.ts │ │ │ │ ├── app.component.ts │ │ │ │ └── app.module.ts │ │ │ ├── environments/ │ │ │ │ ├── environment.prod.ts │ │ │ │ └── environment.ts │ │ │ ├── index.html │ │ │ ├── main.ts │ │ │ ├── polyfills.ts │ │ │ ├── styles.css │ │ │ └── test.ts │ │ ├── tsconfig.app.json │ │ ├── tsconfig.base.json │ │ ├── tsconfig.json │ │ ├── tsconfig.spec.json │ │ └── tslint.json │ ├── preact-moveable/ │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── demo/ │ │ │ └── index.html │ │ ├── groupable.md │ │ ├── package.json │ │ ├── rollup.config.demo.js │ │ ├── rollup.config.js │ │ ├── src/ │ │ │ ├── demo/ │ │ │ │ ├── App.css │ │ │ │ ├── App.tsx │ │ │ │ └── index.tsx │ │ │ └── preact-moveable/ │ │ │ ├── Moveable.ts │ │ │ ├── index.ts │ │ │ └── types.ts │ │ ├── tsconfig.build.json │ │ ├── tsconfig.declaration.json │ │ ├── tsconfig.json │ │ └── tslint.json │ ├── react-moveable/ │ │ ├── .eslintignore │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── .storybook/ │ │ │ ├── main.js │ │ │ ├── manager.js │ │ │ ├── preview-head.html │ │ │ ├── preview.jsx │ │ │ ├── readme.js │ │ │ └── test-runner.js │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── croffle.config.js │ │ ├── global.d.ts │ │ ├── groupable.md │ │ ├── karma.conf.js │ │ ├── mocha.opts │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src/ │ │ │ ├── EventManager.ts │ │ │ ├── InitialMoveable.tsx │ │ │ ├── Moveable.tsx │ │ │ ├── MoveableGroup.tsx │ │ │ ├── MoveableIndividualGroup.tsx │ │ │ ├── MoveableManager.tsx │ │ │ ├── Snappable/ │ │ │ │ └── utils.ts │ │ │ ├── ables/ │ │ │ │ ├── AbleManager.ts │ │ │ │ ├── BeforeRenderable.ts │ │ │ │ ├── Clickable.ts │ │ │ │ ├── Clippable.tsx │ │ │ │ ├── Default.ts │ │ │ │ ├── DragArea.tsx │ │ │ │ ├── Draggable.tsx │ │ │ │ ├── Groupable.tsx │ │ │ │ ├── IndividualGroupable.tsx │ │ │ │ ├── Origin.tsx │ │ │ │ ├── OriginDraggable.tsx │ │ │ │ ├── Padding.tsx │ │ │ │ ├── Pinchable.ts │ │ │ │ ├── README.md │ │ │ │ ├── Renderable.ts │ │ │ │ ├── Resizable.ts │ │ │ │ ├── Rotatable.tsx │ │ │ │ ├── Roundable.tsx │ │ │ │ ├── Scalable.ts │ │ │ │ ├── Scrollable.ts │ │ │ │ ├── Snappable.tsx │ │ │ │ ├── Warpable.tsx │ │ │ │ ├── clippable/ │ │ │ │ │ └── utils.tsx │ │ │ │ ├── consts.ts │ │ │ │ ├── edgeDraggable.tsx │ │ │ │ ├── roundable/ │ │ │ │ │ └── borderRadius.tsx │ │ │ │ └── snappable/ │ │ │ │ ├── bounds.ts │ │ │ │ ├── getTotalGuidelines.ts │ │ │ │ ├── innerBounds.ts │ │ │ │ ├── names.ts │ │ │ │ ├── render.tsx │ │ │ │ ├── snap.ts │ │ │ │ ├── snapBounds.ts │ │ │ │ └── utils.ts │ │ │ ├── classNames.ts │ │ │ ├── consts.ts │ │ │ ├── externalTypes.ts │ │ │ ├── gesto/ │ │ │ │ ├── CustomGesto.ts │ │ │ │ ├── GestoData.ts │ │ │ │ ├── GestoUtils.ts │ │ │ │ └── getAbleGesto.ts │ │ │ ├── groupUtils.ts │ │ │ ├── index.esm.ts │ │ │ ├── index.ts │ │ │ ├── index.umd.ts │ │ │ ├── makeMoveable.ts │ │ │ ├── renderDirections.tsx │ │ │ ├── store/ │ │ │ │ └── Store.ts │ │ │ ├── types.ts │ │ │ ├── utils/ │ │ │ │ ├── calculateElementPosition.ts │ │ │ │ ├── calculateMatrixStack.ts │ │ │ │ ├── getElementInfo.ts │ │ │ │ ├── getFixedDirection.ts │ │ │ │ ├── getMatrixStackInfo.ts │ │ │ │ ├── getMoveableTargetInfo.ts │ │ │ │ └── persist.ts │ │ │ └── utils.tsx │ │ ├── stories/ │ │ │ ├── 1-Basic/ │ │ │ │ ├── 0-Basic.stories.tsx │ │ │ │ ├── ReactClippableApp.tsx │ │ │ │ ├── ReactDraggableApp.tsx │ │ │ │ ├── ReactOriginDraggableApp.tsx │ │ │ │ ├── ReactPinchableApp.tsx │ │ │ │ ├── ReactResizableApp.tsx │ │ │ │ ├── ReactRotatableApp.tsx │ │ │ │ ├── ReactRoundableApp.tsx │ │ │ │ ├── ReactScalableApp.tsx │ │ │ │ └── ReactWarpableApp.tsx │ │ │ ├── 2-Combination/ │ │ │ │ ├── 0-UseCSS.stories.tsx │ │ │ │ ├── ReactAllInOneApp.tsx │ │ │ │ ├── ReactDraggableOriginDraggableRotatableApp.tsx │ │ │ │ ├── ReactDraggableResizableRotatableApp.tsx │ │ │ │ └── ReactDraggableScalableRotatableApp.tsx │ │ │ ├── 3-Group/ │ │ │ │ ├── 0-Group.stories.tsx │ │ │ │ ├── ReactAllInOneApp.tsx │ │ │ │ ├── ReactDraggableResizableRotatableApp.tsx │ │ │ │ ├── ReactDraggableScalableRotatableApp.tsx │ │ │ │ ├── ReactFixedResizeGroupApp.tsx │ │ │ │ ├── ReactMultipleGroupApp.tsx │ │ │ │ └── ReactRoundableGroupApp.tsx │ │ │ ├── 3-IndiviualGroup/ │ │ │ │ ├── 0-Default.stories.tsx │ │ │ │ ├── ReactDraggableScalableRotatableApp.tsx │ │ │ │ └── ReactIndividualGroupablePropsApp.tsx │ │ │ ├── 4-Options/ │ │ │ │ ├── 0-Default.stories.tsx │ │ │ │ ├── ReactCheckInputApp.tsx │ │ │ │ ├── ReactControlPaddingApp.tsx │ │ │ │ ├── ReactDragFocusedInputApp.tsx │ │ │ │ ├── ReactDragTargetApp.tsx │ │ │ │ ├── ReactDragTargetSelfApp.tsx │ │ │ │ ├── ReactGroupPersistDataApp.tsx │ │ │ │ ├── ReactIndividualGroupPersistDataApp.tsx │ │ │ │ ├── ReactLinePaddingApp.tsx │ │ │ │ ├── ReactPaddingApp.tsx │ │ │ │ ├── ReactPersistDataApp.tsx │ │ │ │ ├── ReactRootContainerApp.tsx │ │ │ │ ├── ReactTransformedApp.tsx │ │ │ │ ├── ReactUseAccuratePositionApp.tsx │ │ │ │ ├── ReactUseMutationObserverApp.tsx │ │ │ │ ├── ReactUseResizeObserverApp.tsx │ │ │ │ ├── ReactUseResizeObserverGroupApp.tsx │ │ │ │ ├── ReactUseResizeObserverIndividualGroupApp.tsx │ │ │ │ ├── ReactViewContainerApp.tsx │ │ │ │ └── ReactZoomApp.tsx │ │ │ ├── 4-SVG/ │ │ │ │ ├── 0-SVG.stories.tsx │ │ │ │ ├── ReactOriginApp.tsx │ │ │ │ ├── ReactOriginFillboxApp.tsx │ │ │ │ ├── ReactPathApp.tsx │ │ │ │ ├── ReactSVGCircleApp.tsx │ │ │ │ ├── ReactSVGForeignObjectApp.tsx │ │ │ │ ├── ReactSVGForeignObjectInnerApp.tsx │ │ │ │ ├── ReactSVGGApp.tsx │ │ │ │ ├── ReactSVGGroupApp.tsx │ │ │ │ ├── ReactSVGLineApp.tsx │ │ │ │ ├── ReactSVGSVGApp.tsx │ │ │ │ └── ReactSVGTargetGApp.tsx │ │ │ ├── 5-Snap&Bound/ │ │ │ │ ├── 0-Snap&Bound.stories.tsx │ │ │ │ ├── ReactBoundResizableApp.tsx │ │ │ │ ├── ReactBoundRotatableApp.tsx │ │ │ │ ├── ReactBoundRotatableGroupApp.tsx │ │ │ │ ├── ReactBoundScalableApp.tsx │ │ │ │ ├── ReactInnerBoundResizableApp.tsx │ │ │ │ ├── ReactMaxSnapElementApp.tsx │ │ │ │ ├── ReactSnapContainerApp.tsx │ │ │ │ ├── ReactSnapElementsApp.tsx │ │ │ │ ├── ReactSnapElementsGroupApp.tsx │ │ │ │ ├── ReactSnapGridApp.tsx │ │ │ │ ├── ReactSnapGridGroupApp.tsx │ │ │ │ ├── ReactSnapGuidelinesApp.tsx │ │ │ │ └── ReactSnapRotationsApp.tsx │ │ │ ├── 5A-Advanced/ │ │ │ │ ├── 0-Moveable/ │ │ │ │ │ ├── Deafult.stories.tsx │ │ │ │ │ ├── ReactNoRelativeApp.tsx │ │ │ │ │ ├── ReactPositionFixedApp.tsx │ │ │ │ │ └── ReactSelectFormApp.tsx │ │ │ │ ├── 1-Draggable/ │ │ │ │ │ ├── Deafult.stories.tsx │ │ │ │ │ └── ReactEdgeDraggableWithEdgeApp.tsx │ │ │ │ ├── 2-Resizable/ │ │ │ │ │ ├── Deafult.stories.tsx │ │ │ │ │ ├── ReactFixedDirectionApp.tsx │ │ │ │ │ ├── ReactFlexApp.tsx │ │ │ │ │ ├── ReactGroupMinSizeApp.tsx │ │ │ │ │ └── ReactWithEdgeControlApp.tsx │ │ │ │ ├── 3-Scalable/ │ │ │ │ │ ├── Deafult.stories.tsx │ │ │ │ │ └── ReactScalableMinMaxApp.tsx │ │ │ │ ├── 4-Rotatable/ │ │ │ │ │ ├── Deafult.stories.tsx │ │ │ │ │ ├── ReactCustomOriginApp.tsx │ │ │ │ │ ├── ReactRotateWithControlsApp.tsx │ │ │ │ │ ├── ReactRotateWithResizeApp.tsx │ │ │ │ │ └── ReactSetRotationApp.tsx │ │ │ │ ├── 5-Snappable/ │ │ │ │ │ ├── Deafult.stories.tsx │ │ │ │ │ ├── ReactCustomElementGuidelinesApp.tsx │ │ │ │ │ └── ReactCustomGuidelinesApp.tsx │ │ │ │ └── 9-Clippable/ │ │ │ │ ├── Deafult.stories.tsx │ │ │ │ ├── ReactClipSnapApp.tsx │ │ │ │ ├── ReactClippableApp.tsx │ │ │ │ ├── ReactClippableResizableKeepRatioApp.tsx │ │ │ │ └── ReactClippedAreaApp.tsx │ │ │ ├── 6-CustomAble/ │ │ │ │ ├── 0-CustomAble.stories.tsx │ │ │ │ ├── ReactCustomRotatableApp.tsx │ │ │ │ ├── ReactDimensionViewableApp.tsx │ │ │ │ ├── ReactDragTargetAbleApp.tsx │ │ │ │ ├── ReactEditableApp.tsx │ │ │ │ └── ReactMouseEnterLeaveApp.tsx │ │ │ ├── 7-Request/ │ │ │ │ ├── 0-Request.stories.tsx │ │ │ │ ├── ReactAlignApp.tsx │ │ │ │ ├── ReactDraggableApp.tsx │ │ │ │ ├── ReactDraggableSnappableApp.tsx │ │ │ │ ├── ReactResizableApp.tsx │ │ │ │ ├── ReactResizableDeltaApp.tsx │ │ │ │ ├── ReactResizableGroupApp.tsx │ │ │ │ └── ReactResizableSnappableApp.tsx │ │ │ ├── 8-TreeShaking/ │ │ │ │ ├── 0-TreeShaking.stories.tsx │ │ │ │ └── TreeShakingApp.tsx │ │ │ ├── 9-Scrolling/ │ │ │ │ ├── 0-Scrollable.stories.tsx │ │ │ │ └── ReactScrollableApp.tsx │ │ │ ├── 99-Tests/ │ │ │ │ ├── Deafult.stories.tsx │ │ │ │ ├── ReactATagApp.tsx │ │ │ │ ├── ReactAccuracyApp.tsx │ │ │ │ ├── ReactAccurateElementGuideline2App.tsx │ │ │ │ ├── ReactAccurateElementGuidelineApp.tsx │ │ │ │ ├── ReactChangeTargetsOnClickApp.tsx │ │ │ │ ├── ReactChangingSnapContainerApp.tsx │ │ │ │ ├── ReactClickApp.tsx │ │ │ │ ├── ReactCustomElementApp.tsx │ │ │ │ ├── ReactCustomElementBoundsApp.tsx │ │ │ │ ├── ReactDragAPIApp.tsx │ │ │ │ ├── ReactDragStartGroupApp.tsx │ │ │ │ ├── ReactDragTargetApp.tsx │ │ │ │ ├── ReactFixedSnapApp.tsx │ │ │ │ ├── ReactFlexApp.tsx │ │ │ │ ├── ReactGroupDragAreaApp.tsx │ │ │ │ ├── ReactGroupPaddingApp.tsx │ │ │ │ ├── ReactHandleLargeNumberApp.tsx │ │ │ │ ├── ReactIframeApp.tsx │ │ │ │ ├── ReactInputApp.tsx │ │ │ │ ├── ReactLargeZoomElementGuidelinesApp.tsx │ │ │ │ ├── ReactNestedSVGApp.tsx │ │ │ │ ├── ReactNestedTargetApp.tsx │ │ │ │ ├── ReactNoTargetApp.tsx │ │ │ │ ├── ReactOverflowApp.tsx │ │ │ │ ├── ReactRequestBoundsApp.tsx │ │ │ │ ├── ReactRotateClippableApp.tsx │ │ │ │ ├── ReactSafariApp.tsx │ │ │ │ ├── ReactScalableKeepRatioApp.tsx │ │ │ │ ├── ReactStopDragApp.tsx │ │ │ │ ├── ReactTRSTargetApp.tsx │ │ │ │ ├── ReactTranslate50App.tsx │ │ │ │ ├── ReactWillChangeApp.tsx │ │ │ │ ├── ReactZoomedCursorApp.tsx │ │ │ │ ├── ReactZoomedSnapApp.tsx │ │ │ │ ├── ReactZoomedTargetApp.tsx │ │ │ │ ├── safari.css │ │ │ │ └── snap.css │ │ │ ├── 9A-Components/ │ │ │ │ ├── 0-Components.stories.tsx │ │ │ │ ├── ReactInfiniteViewerApp.tsx │ │ │ │ ├── ReactSelectoApp.tsx │ │ │ │ ├── ReactSelectoMultipleGroupApp.tsx │ │ │ │ ├── ReactSelectoMultipleGroupUngroupApp.tsx │ │ │ │ └── ReactSelectoNestedGroupApp.tsx │ │ │ ├── common.css │ │ │ ├── controls/ │ │ │ │ ├── default.ts │ │ │ │ └── group.ts │ │ │ ├── templates/ │ │ │ │ ├── default.css │ │ │ │ └── default.ts │ │ │ ├── tests/ │ │ │ │ └── GestoHelper.ts │ │ │ ├── utils/ │ │ │ │ ├── story.tsx │ │ │ │ └── testing.tsx │ │ │ └── utils.ts │ │ ├── tests/ │ │ │ └── types.ts │ │ ├── tsconfig.build.json │ │ ├── tsconfig.declaration.json │ │ ├── tsconfig.json │ │ ├── tsconfig.test.json │ │ └── types/ │ │ ├── index.js │ │ └── package.json │ ├── snappable/ │ │ ├── .eslintrc │ │ ├── jest.config.js │ │ ├── manual/ │ │ │ └── index.html │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src/ │ │ │ ├── BoundLine.ts │ │ │ ├── Snappable.ts │ │ │ ├── types.ts │ │ │ └── utils.ts │ │ ├── test/ │ │ │ └── bounds.spec.ts │ │ ├── tsconfig.build.json │ │ ├── tsconfig.declaration.json │ │ ├── tsconfig.json │ │ └── tsconfig.test.json │ ├── svelte-moveable/ │ │ ├── .gitignore │ │ ├── .npmrc │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── app.d.ts │ │ │ ├── app.html │ │ │ ├── lib/ │ │ │ │ ├── Moveable.svelte │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ └── index.umd.js │ │ │ └── routes/ │ │ │ └── +page.svelte │ │ ├── svelte.config.js │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── vue-moveable/ │ │ ├── .browserslistrc │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── demo/ │ │ │ ├── App.vue │ │ │ ├── index.ts │ │ │ └── shims-vue.d.ts │ │ ├── package.json │ │ ├── postcss.config.js │ │ ├── public/ │ │ │ └── index.html │ │ ├── rollup.config.js │ │ ├── src/ │ │ │ ├── Moveable.vue │ │ │ ├── Moveable.vue.d.ts │ │ │ ├── global.d.ts │ │ │ ├── index.ts │ │ │ └── index.umd.ts │ │ ├── tsconfig.declaration.json │ │ └── tsconfig.json │ └── vue3-moveable/ │ ├── .browserslistrc │ ├── .gitignore │ ├── CHANGELOG.md │ ├── README.md │ ├── index.html │ ├── package.json │ ├── src/ │ │ ├── App.vue │ │ ├── components/ │ │ │ ├── Moveable.vue │ │ │ ├── index.ts │ │ │ └── index.umd.ts │ │ ├── main.ts │ │ ├── style.css │ │ └── vite-env.d.ts │ ├── tsconfig.json │ ├── tsconfig.node.json │ └── vite.config.ts ├── static/ │ └── scripts/ │ └── custom.js ├── storybook/ │ ├── .gitignore │ ├── .storybook/ │ │ ├── frameworkStories.js │ │ ├── main.js │ │ ├── manager.js │ │ ├── preview-head.html │ │ ├── preview.jsx │ │ ├── readme.js │ │ └── test-runner.js │ ├── croffle.config.cjs │ ├── package.json │ ├── stories/ │ │ ├── 1-Basic/ │ │ │ ├── react/ │ │ │ │ ├── ReactClippableApp.tsx │ │ │ │ ├── ReactDraggableApp.tsx │ │ │ │ ├── ReactOriginDraggableApp.tsx │ │ │ │ ├── ReactPinchableApp.tsx │ │ │ │ ├── ReactResizableApp.tsx │ │ │ │ ├── ReactRotatableApp.tsx │ │ │ │ ├── ReactRoundableApp.tsx │ │ │ │ ├── ReactScalableApp.tsx │ │ │ │ └── ReactWarpableApp.tsx │ │ │ └── react-Basic.stories.tsx │ │ ├── 2-Combination/ │ │ │ ├── react/ │ │ │ │ ├── ReactAllInOneApp.tsx │ │ │ │ ├── ReactDraggableOriginDraggableRotatableApp.tsx │ │ │ │ ├── ReactDraggableResizableRotatableApp.tsx │ │ │ │ └── ReactDraggableScalableRotatableApp.tsx │ │ │ └── react-UseCSS.stories.tsx │ │ ├── 3-Group/ │ │ │ ├── react/ │ │ │ │ ├── ReactAllInOneApp.tsx │ │ │ │ ├── ReactDraggableResizableRotatableApp.tsx │ │ │ │ ├── ReactDraggableScalableRotatableApp.tsx │ │ │ │ ├── ReactMultipleGroupApp.tsx │ │ │ │ └── ReactRoundableGroupApp.tsx │ │ │ └── react-Group.stories.tsx │ │ ├── 3-IndiviualGroup/ │ │ │ ├── react/ │ │ │ │ ├── ReactDraggableScalableRotatableApp.tsx │ │ │ │ └── ReactIndividualGroupablePropsApp.tsx │ │ │ └── react-Default.stories.tsx │ │ ├── 4-Options/ │ │ │ ├── react/ │ │ │ │ ├── ReactCheckInputApp.tsx │ │ │ │ ├── ReactControlPaddingApp.tsx │ │ │ │ ├── ReactDragFocusedInputApp.tsx │ │ │ │ ├── ReactDragTargetApp.tsx │ │ │ │ ├── ReactGroupPersistDataApp.tsx │ │ │ │ ├── ReactIndividualGroupPersistDataApp.tsx │ │ │ │ ├── ReactLinePaddingApp.tsx │ │ │ │ ├── ReactPaddingApp.tsx │ │ │ │ ├── ReactPersistDataApp.tsx │ │ │ │ ├── ReactTransformedApp.tsx │ │ │ │ ├── ReactUseAccuratePositionApp.tsx │ │ │ │ ├── ReactUseMutationObserverApp.tsx │ │ │ │ ├── ReactUseResizeObserverApp.tsx │ │ │ │ ├── ReactUseResizeObserverGroupApp.tsx │ │ │ │ ├── ReactUseResizeObserverIndividualGroupApp.tsx │ │ │ │ ├── ReactViewContainerApp.tsx │ │ │ │ └── ReactZoomApp.tsx │ │ │ └── react-Default.stories.tsx │ │ ├── 4-SVG/ │ │ │ ├── react/ │ │ │ │ ├── ReactOriginApp.tsx │ │ │ │ ├── ReactOriginFillboxApp.tsx │ │ │ │ ├── ReactPathApp.tsx │ │ │ │ ├── ReactSVGCircleApp.tsx │ │ │ │ ├── ReactSVGGApp.tsx │ │ │ │ ├── ReactSVGGroupApp.tsx │ │ │ │ ├── ReactSVGLineApp.tsx │ │ │ │ ├── ReactSVGSVGApp.tsx │ │ │ │ └── ReactSVGTargetGApp.tsx │ │ │ └── react-SVG.stories.tsx │ │ ├── common.css │ │ ├── controls/ │ │ │ ├── default.ts │ │ │ └── group.ts │ │ ├── templates/ │ │ │ ├── default.css │ │ │ └── default.ts │ │ ├── tests/ │ │ │ └── GestoHelper.ts │ │ ├── utils/ │ │ │ ├── story.tsx │ │ │ ├── testing.tsx │ │ │ └── wrapper.tsx │ │ └── utils.ts │ ├── tsconfig.json │ └── vite.config.js └── test/ ├── index.html ├── jsdoc.js ├── portal.html ├── publish.d.ts └── publish.js