# @metabuilder/hooks-core Core React hooks for workflow UI applications built with Redux. **Key Feature**: Service-independent hooks - use these with any Redux-compatible workflow implementation. ## What's Included ### Canvas Hooks - `useCanvasZoom` - Manage canvas zoom level - `useCanvasPan` - Manage canvas pan/translation - `useCanvasSelection` - Manage selected items on canvas - `useCanvasSettings` - Manage grid, snap, and other canvas settings - `useCanvasGridUtils` - Grid calculations and utilities ### Editor Hooks - `useEditor` - Aggregated editor state - `useEditorZoom` - Node editor zoom control - `useEditorPan` - Node editor pan control - `useEditorNodes` - Node selection and manipulation - `useEditorEdges` - Edge/connection selection - `useEditorSelection` - General selection state - `useEditorClipboard` - Copy/paste operations - `useEditorHistory` - Undo/redo history ### UI Hooks - `useUI` - Aggregated UI state - `useUIModals` - Modal dialog state - `useUINotifications` - Toast/notification management - `useUILoading` - Global loading state - `useUITheme` - Theme (light/dark) management - `useUISidebar` - Sidebar visibility state ### Utility Hooks - `useCanvasVirtualization` - Virtual scrolling for large canvas - `useResponsiveSidebar` - Responsive sidebar behavior - `usePasswordValidation` - Password strength validation ## Installation ```bash npm install @metabuilder/hooks-core react react-redux @metabuilder/redux-slices ``` ## Usage ```typescript import { useCanvasZoom, useEditorSelection, useUIModals } from '@metabuilder/hooks-core' import { Provider } from 'react-redux' import { store } from '@metabuilder/redux-slices' // Or your own store function WorkflowEditor() { const { zoom, zoomIn, zoomOut } = useCanvasZoom() const { selectedNodeIds, selectNode } = useEditorSelection() const { openModal } = useUIModals() return (