aura-glass
Version:
A comprehensive glassmorphism design system for React applications with 142+ production-ready components
151 lines • 3.32 kB
TypeScript
import React from "react";
export interface DragData {
id: string;
type: string;
data?: any;
}
export interface GlassDraggableProps {
/**
* Unique identifier for the draggable item
*/
id: string;
/**
* Drag type/category
*/
type: string;
/**
* Additional data to pass during drag
*/
data?: any;
/**
* Drag handle element
*/
handle?: React.ReactNode;
/**
* Children to render
*/
children: React.ReactNode;
/**
* Enable dragging
*/
disabled?: boolean;
/**
* Drag start handler
*/
onDragStart?: (data: DragData) => void;
/**
* Drag end handler
*/
onDragEnd?: (data: DragData) => void;
/**
* Custom className
*/
className?: string;
}
interface DragContextType {
draggedItem: DragData | null;
isDragging: boolean;
dragOffset: {
x: number;
y: number;
};
setDraggedItem: (item: DragData | null) => void;
setIsDragging: (dragging: boolean) => void;
setDragOffset: (offset: {
x: number;
y: number;
}) => void;
}
export declare const useDragContext: () => DragContextType | {
isDragging: boolean;
dragOffset: {
x: number;
y: number;
};
setIsDragging: () => void;
setDragOffset: () => void;
};
/**
* GlassDraggable component
* Makes any element draggable with visual feedback
*/
export declare const GlassDraggable: React.FC<GlassDraggableProps>;
/**
* GlassDroppable component
* Drop zone that accepts draggable items
*/
export interface GlassDroppableProps {
/**
* Unique identifier for the drop zone
*/
id: string;
/**
* Accepted drag types
*/
accept?: string[];
/**
* Children to render
*/
children: React.ReactNode;
/**
* Disable dropping
*/
disabled?: boolean;
/**
* Drop handler
*/
onDrop?: (data: DragData, dropZoneId: string) => void;
/**
* Drag over handler
*/
onDragOver?: (data: DragData, dropZoneId: string) => void;
/**
* Drag leave handler
*/
onDragLeave?: (data: DragData, dropZoneId: string) => void;
/**
* Custom className
*/
className?: string;
}
export declare const GlassDroppable: React.FC<GlassDroppableProps>;
/**
* GlassSortable component
* Sortable list with drag-and-drop reordering
*/
export interface SortableItem {
id: string;
content: React.ReactNode;
data?: any;
}
export interface GlassSortableProps {
/**
* Items to sort
*/
items: SortableItem[];
/**
* Sort direction
*/
direction?: "vertical" | "horizontal";
/**
* Item change handler
*/
onChange?: (items: SortableItem[]) => void;
/**
* Custom className
*/
className?: string;
}
export declare const GlassSortable: React.FC<GlassSortableProps>;
/**
* DragProvider component
* Provides drag context for advanced drag-and-drop scenarios
*/
export interface DragProviderProps {
children: React.ReactNode;
onDragStart?: (data: DragData) => void;
onDragEnd?: (data: DragData) => void;
}
export declare const DragProvider: React.FC<DragProviderProps>;
export default GlassDraggable;
//# sourceMappingURL=GlassDraggable.d.ts.map