-
Notifications
You must be signed in to change notification settings - Fork 1
Description
If you checkout the you
SortableTS: Cutting-Edge Drag & Drop Library - Seeking Contributors
Project Overview
SortableTS is a modern TypeScript library for drag-and-drop interfaces with a focus on developer experience, modern browser implementations, and a clean, maintainable architecture. The foundation has been established, but I'm now focusing on my startup and looking for contributors to continue development.
Current State
- ✅ Core architecture established across modules:
animation
,core
,dom
,utils
,cleanup.manager
, etc. - ✅ Example app successfully imports the compiled package from
dist/
- ✅ Example app includes dedicated sections for all planned features
Development Approach
The recommended workflow is:
- Each SortableTS feature should be implemented in its corresponding section of the example app
- Develop the feature in the package's TypeScript code in
src/
- Test functionality in the example app
- Maintain (or improve) the existing architecture (please don't simplify or downsize)
Features to Implement
Core Features
- Simple List - Basic draggable list implementation
- Shared Lists - Moving items between two different lists
- Cloning - Duplicating items when dragging
- Disable Sorting - Preventing items from being sorted in a list while still allowing drag to other lists
- Handles - Using specific handles to drag items instead of the entire item
- Filter - Filtering which items can be dragged
Advanced Examples
- Grid - Arranging items in a grid layout
- Nested Sortables - Lists that contain other sortable lists (highest priority)
- MultiDrag - Ability to select and drag multiple items at once
- Swap - Swapping items instead of inserting them
Architecture-First
The architecture must be maintained or improved to prevent the issues that arose with SortableJS. The modular design with separate concerns for animation, DOM manipulation, core logic, and utilities is intentional and critical for maintainability and adding features.
Future Direction
This project aims to eventually embrace Native JavaScript Signals for seamless integration with all frameworks.
Getting Started
- Clone the repository
- Install dependencies (
npm install
oryarn
) - Run the example app (
npm start
oryarn start
) - Choose a feature to implement
- Follow the development approach outlined above
Contribution Guidelines
- Maintain TypeScript typing throughout
- Write tests for new features
- Document your code and update examples
- Follow the existing architectural patterns
- Submit PRs with clear descriptions of changes
Thank you for considering contributing to SortableTS!