dioxus-dnd 3.1.0

Modular, accessible drag-and-drop for Dioxus: sortable lists, kanban boards, trees, grids, file drops, multi-select, touch support and more
Documentation
#![doc = include_str!("../README.md")]
#![allow(non_snake_case)]

pub mod core;

pub mod a11y;
pub mod animate;
pub mod autoscroll;
pub mod board;
pub mod canvas;
pub mod debug;
#[cfg(feature = "desktop")]
pub mod desktop;
pub mod dragout;
pub mod external;
pub mod files;
pub mod grid;
pub mod multiselect;
pub mod sortable;
mod sortable_kernel;
pub mod test;
pub mod tree;

/// One-stop import: `use dioxus_dnd::prelude::*;`
pub mod prelude {
    pub use crate::a11y::{LiveRegion, ReorderButtons};
    pub use crate::animate::FlipItem;
    pub use crate::autoscroll::{edge_delta, frame_delta, AutoScroll, ScrollAxis};
    pub use crate::board::{
        apply_move, BoardColumn, BoardItem, BoardPayload, BoardSlot, ContainerId, MoveEvent,
    };
    pub use crate::bridge_drop_zone;
    pub use crate::canvas::{
        canvas_keyboard_pointer, canvas_position, canvas_to_client, client_to_canvas, Bounds,
        CanvasDrop, CanvasDropZone, CanvasKeyboardPlacement, SnapGrid,
    };
    pub use crate::core::{
        apply_clone_or_move, apply_list_clone_or_move, apply_modifiers, client_point, edge_of,
        effective_effect, element_point, rank_collisions, screen_delta_to_world, screen_to_world,
        transition, try_apply_clone_or_move, try_apply_list_clone_or_move, use_bridge_world,
        use_dnd, use_dnd_model, use_dnd_monitor, use_dnd_provider, use_dnd_strings, use_dnd_world,
        use_joined_window, use_rect_refresh, use_zone_id, use_zone_registry, world_delta_to_screen,
        world_to_screen, ActivationConstraint, ActivationPolicy, Activator, ApplyDropError,
        BridgeDropZone, BridgeGeometry, BridgeWorld, CancelReason, CanvasViewport, Collision,
        CollisionDetector, CollisionRequest, CollisionStrategy, Direction, DndContext, DndEvent,
        DndProvider, DndScope, DndStrings, DndWorld, DragHandle, DragId, DragMode, DragModifier,
        DragOverlay, DragSnapshot, DragStart, DragState, Draggable, DropEffect, DropEffects,
        DropOutcome, DropQuery, DropReceipt, DropZone, Edge, EdgeSet, GestureEffect, GestureEvent,
        GesturePhase, JoinedWindow, ModifierCtx, NoDrag, ParentZone, Point, PointerKind, Rect,
        RectRefresh, ReleasePolicy, SettleSlot, TouchSense, WindowGeometry, WindowKey,
        ZoneCandidate, ZoneId, ZoneRecord, ZoneRegistration, ZoneRegistry,
    };
    pub use crate::debug::DndDebugOverlay;
    #[cfg(feature = "desktop")]
    pub use crate::desktop::MultiWindowProvider;
    #[cfg(feature = "serde")]
    pub use crate::dragout::TypedDragSource;
    pub use crate::dragout::{ExternalDragSource, OutboundContent};
    pub use crate::external::{classify, ExternalDrop, ExternalDropZone, ExternalPayload};
    #[cfg(feature = "serde")]
    pub use crate::external::{TypedDrop, TypedDropZone};
    pub use crate::files::{FileDrop, FileDropZone, FileFilter, FileRejection};
    pub use crate::grid::{cell_of, index_of, SortableGrid};
    pub use crate::multiselect::{
        use_selection, use_selection_from_signal, SelectableDraggable, Selection, SelectionCount,
    };
    pub use crate::sortable::{
        apply_reorder, apply_sort, apply_swap, displacement, project_layout, Axis, DropPlacement,
        ItemTransform, Placement, ReorderEvent, ReorderMode, SortEvent, SortStrategy,
        SortableCollection, SortableGroup, SortableGroupId, SortableHandle, SortableItem,
        SortableList, SortablePayload, SortableProvider,
    };
    pub use crate::tree::{
        intent_from_offset, would_create_cycle, DropIntent, NodeId, TreeDropEvent, TreeNodeTarget,
    };
}