syncfusion-react-treeview
Implement Syncfusion React TreeView component for hierarchical data display with node selection, drag-drop reordering, inline editing, and custom templating. Use this when building organizational charts, file systems, navigation trees, or any multi-level hierarchical interface. Covers selection modes, checkboxes, filtering, sorting, keyboard navigation, accessibility, and performance optimization with stateless templates.
What this skill does
# Syncfusion React TreeView - Comprehensive Implementation Guide
Master the Syncfusion React TreeView component for building powerful hierarchical data interfaces with advanced features, performance optimization, and enterprise-grade functionality.
## Quick Start Navigation
**Just Getting Started?**
→ Read [Getting Started](references/getting-started.md) - Installation, setup, first TreeView
**Need to Display Hierarchical Data?**
→ See [Data Binding](references/data-binding.md) - All binding patterns (hierarchical, self-referential, remote, load-on-demand)
**Working with Node Templates?**
→ Check [Templates and Rendering](references/templates-and-rendering.md) - nodeTemplate, **statelessTemplates (performance)**, drawNode callback, JSX/HTML templates
**Want to CRUD Nodes Programmatically?**
→ Learn [Node Operations](references/node-operations.md) - Add, remove, update, move, refresh nodes dynamically
**Need Checkboxes or Multi-Select?**
→ Read [Selection and Checking](references/selection-and-checking.md) - Single/multi-selection, checkboxes, parent-child sync, three-state
**Implementing Drag-Drop?**
→ See [Drag-Drop and Reordering](references/drag-drop-and-reordering.md) - Single/multi-node drag, validation, restrictions
**Allowing Node Editing?**
→ Check [Inline Editing](references/inline-editing.md) - Edit modes, validation, edit events, keyboard shortcuts
**Need to Filter or Search?**
→ Learn [Filtering and Searching](references/filtering-and-searching.md) - Text filtering, parent chain inclusion, Predicate queries, dynamic filtering
**Want Custom Sorting?**
→ See [Sorting and Ordering](references/sorting-and-ordering.md) - Global sort, level-wise sorting, custom algorithms, sortOrder property
**Customizing Appearance?**
→ Read [Customization and Styling](references/customization-styling.md) - CSS, icons, level-based styling, full-row selection, hover effects
**Keyboard Navigation & A11y?**
→ Check [Keyboard Navigation and Accessibility](references/keyboard-and-accessibility.md) - Shortcuts, ARIA, screen readers, WCAG 2.1 compliance
**Advanced Features Needed?**
→ See [Advanced Features](references/advanced-features.md) - Load-on-demand, state persistence, RTL, localization, accordion pattern
**Working with Context Menus?**
→ Learn [Context Menu Integration](references/context-menu-integration.md) - Menu operations, node management via menu, menu state
---
## Component Overview
The **TreeViewComponent** from `@syncfusion/ej2-react-navigations` is a versatile hierarchical data display component with enterprise features:
### Core Capabilities
| Capability | Details |
|-----------|---------|
| **Data Display** | Hierarchical, self-referential, remote (OData/WebAPI), load-on-demand |
| **Node Operations** | Create, Read, Update, Delete (CRUD) nodes dynamically |
| **Selection** | Single/multiple selection, checkboxes, three-state, auto parent-child sync |
| **Editing** | Inline editing with validation, programmatic edit control |
| **Customization** | Node templates (including **stateless optimization**), custom icons, CSS styling by level |
| **Interaction** | Drag-drop (single/multi), context menus, tooltips, keyboard shortcuts |
| **Performance** | Load-on-demand, stateless templates, filtering, sorting optimization |
| **Accessibility** | WCAG 2.1 keyboard navigation, ARIA attributes, screen reader support |
| **Internationalization** | RTL support, localization, multiple language packs |
| **State Management** | Session persistence, programmatic node access |
### Key Properties Overview
```tsx
<TreeViewComponent
// Data
fields={{ dataSource, id, text, parentID, child, hasChildren, expanded }}
// Selection & Checking
allowMultiSelection={true}
showCheckBox={true}
autoCheck={true}
checkedNodes={[]}
selectedNodes={[]}
// Interaction
allowDragAndDrop={true}
allowEditing={true}
// Customization
nodeTemplate={templateFunction}
statelessTemplates={['nodeTemplate']} // NEW: Performance optimization
cssClass="custom"
// Display
allowTextWrap={true}
fullRowSelect={true}
// Behavior
loadOnDemand={true}
expandOn="Click" // or "DoubleClick" or "None" (accordion)
sortOrder="Ascending"
// Persistence & Internationalization
enablePersistence={true}
enableRtl={false}
locale="en-US"
// Events
onNodeSelected={handleSelect}
onNodeExpanded={handleExpand}
onNodeDropped={handleDrop}
// ... many more events
/>
```
---
## Complete Feature Map
### 1. Data Binding (5 Methods)
- ✅ Hierarchical nested arrays
- ✅ Self-referential (parentID) model
- ✅ Remote OData v4
- ✅ Remote Web API
- ✅ Load-on-demand lazy loading
### 2. Node Operations (11 Methods)
- ✅ addNodes() - Create nodes
- ✅ removeNodes() - Delete nodes
- ✅ updateNode() - Modify node text
- ✅ refreshNode() - Refresh from backend
- ✅ moveNodes() - Move to different parent
- ✅ getNode() - Get node by element
- ✅ getTreeData() - Get all data
- ✅ beginEdit()/endEdit() - Programmatic edit control
- ✅ expandAll()/collapseAll() - Bulk operations
- ✅ selectNodes()/clearSelection() - Selection control
### 3. Node Templates (3 Types)
- ✅ **String templates** with ${...} interpolation
- ✅ **HTML element ID** references
- ✅ **JSX function** components
- ✅ **statelessTemplates** - Performance optimization (ignore state updates)
- ✅ **drawNode** callback - Alternative custom rendering method
### 4. Selection System (2 Modes)
- ✅ Single selection
- ✅ Multi-selection with Ctrl/Shift keyboard
- ✅ Checkbox mode with three-state support
- ✅ Parent-child auto-sync (autoCheck)
- ✅ Independent checkbox mode (autoCheck=false)
### 5. Drag-Drop (2 Scopes)
- ✅ Single-node drag
- ✅ Multi-node drag (requires allowMultiSelection)
- ✅ Drop validation with indicators (+, -, in-between)
- ✅ Restrict drag-drop per node type
- ✅ Custom drag area (dragArea property)
### 6. Editing
- ✅ Inline edit (double-click or F2)
- ✅ Input validation
- ✅ Programmatic edit (beginEdit/endEdit)
- ✅ Edit event cancellation
### 7. Filtering & Searching (Advanced)
- ✅ Text-based filtering
- ✅ Parent chain inclusion in results
- ✅ DataManager with Predicate queries
- ✅ Dynamic filter updates
### 8. Sorting (2 Levels)
- ✅ Global sorting (ascending/descending)
- ✅ Level-wise custom sorting
- ✅ DataManager Query integration
- ✅ Custom sort algorithms
### 9. Customization
- ✅ CSS class styling by level
- ✅ Custom expand/collapse icons
- ✅ Dynamic icon per node
- ✅ Full-row selection styling
- ✅ Multi-line text wrapping
- ✅ Icon visibility toggle (hover effects)
### 10. Keyboard Navigation (15+ Shortcuts)
- ✅ Arrow keys for navigation
- ✅ Home/End for first/last node
- ✅ F2 for inline edit
- ✅ Enter to confirm/select
- ✅ Escape to cancel
- ✅ Ctrl+Click for multi-select
- ✅ Shift+Click for range select
### 11. Accessibility
- ✅ WCAG 2.1 AA keyboard support
- ✅ ARIA attributes (roles, properties, states)
- ✅ Screen reader announcements
- ✅ Focus management
- ✅ Semantic HTML structure
### 12. Advanced Features
- ✅ Load-on-demand with lazy loading
- ✅ State persistence across sessions
- ✅ RTL (right-to-left) support
- ✅ Localization (16+ languages)
- ✅ Accordion pattern (expandOn='None')
- ✅ Event cancellation (preventable events)
- ✅ Virtual scrolling for large datasets
### 13. Integration
- ✅ Context menu integration
- ✅ Toolbar integration
- ✅ Tooltip support
- ✅ Data operations via menu
### 14. Events (19 Events)
- ✅ created, dataBound
- ✅ nodeSelected, nodeSelecting, nodeClicked, nodeDoubleClicked
- ✅ nodeExpanded, nodeExpanding, nodeCollapsed, nodeCollapsing
- ✅ nodeEdited, nodeEditing
- ✅ nodeDragStart, nodeDragging, nodeDragStop, nodeDropped
- ✅ nodeChecked, nodeChecking
- ✅ drawNode, keyPress
---
## Skill Progression Path
### Beginner Level (Start Here)
1. **Getting Started** - Installation, basic component, hierarchical data
2. **Data Binding** - Learn all 5 binding patterns
3. **Basic Selection** - Single selection,Related in Design
contribute
IncludedLocal-only OSS contribution command center. Auto-refreshes the user's in-flight PR and issue state on invoke so conversations start with full context — no need to brief Claude on what's in flight. Helps the user find issues to contribute to on GitHub, builds per-repo dossiers of what each upstream expects (CLA, DCO, branch convention, AI policy, draft-first, review bots, issue templates), runs deterministic gates before any external action so AI-assisted contributions don't reach maintainers as slop. State is markdown-only: candidate files at ~/.contribute-system/candidates/, repo dossiers at ~/.contribute-system/research/, append-only event log at ~/.contribute-system/log.jsonl. No database, no cloud calls. Use when the user asks about their PRs / issues / contributions, wants to find new work to take on, claim an issue, build/refresh a repo's dossier, or draft a Design Issue or PR. Trigger with "/contribute", "what's my PR status", "find a contribution", "claim issue X", "draft a Design Issue for Y", "refresh dossier for Z".
architectural-analysis
IncludedUser-triggered deep architectural analysis of a codebase or scoped subtree across eight modes — information architecture, data flow, integration points, UI surfaces, interaction patterns, data model, control flow, and failure modes. This skill should be used when the user asks to "diagram this codebase," "map the architecture," "show the data flow," "give me an ERD," "trace control flow," "find the integration points," "verify the layout pattern," "audit the UX architecture," or any similar request whose primary deliverable is mermaid diagrams plus cited reports under docs/architecture/. Dispatches haiku/sonnet sub-agents in parallel for per-mode exploration, then verifies every citation mechanically before any node lands in a diagram. Not for one-off prose explanations of code (use code-explanation) or for high-level system design from scratch (use system-design).
mcp
IncludedModel Context Protocol (MCP) server development and tool management. Languages: Python, TypeScript. Capabilities: build MCP servers, integrate external APIs, discover/execute MCP tools, manage multi-server configs, design agent-centric tools. Actions: create, build, integrate, discover, execute, configure MCP servers/tools. Keywords: MCP, Model Context Protocol, MCP server, MCP tool, stdio transport, SSE transport, tool discovery, resource provider, prompt template, external API integration, Gemini CLI MCP, Claude MCP, agent tools, tool execution, server config. Use when: building MCP servers, integrating external APIs as MCP tools, discovering available MCP tools, executing MCP capabilities, configuring multi-server setups, designing tools for AI agents.
react-native-skia
IncludedDesign, build, debug, and optimise high-polish animated graphics in React Native or Expo using @shopify/react-native-skia, Reanimated, and Gesture Handler. Use when the user wants canvas-driven UI, shaders, paths, rich text, image filters, sprite fields, Skottie, video frames, snapshots, web CanvasKit setup, or performance tuning for custom motion-heavy elements such as loaders, hero art, cards, charts, progress indicators, particle systems, or gesture-driven surfaces. Also use when the user asks for fluid, glow, glass, blob, parallax, 60fps/120fps, or GPU-friendly animated effects in React Native, even if they do not explicitly say "Skia". Do not use for ordinary form/layout work with standard views.
plaid
IncludedProduct Led AI Development — guides founders from idea to launched product. Six capabilities: Idea (discover a product idea), Validate (pressure-test the idea against fatal flaws, problem reality, competition, and 2-week MVP feasibility), Plan (vision intake + document generation), Design (translate image references into a design.md spec), Launch (go-to-market strategy), and Build (roadmap execution). Use when someone says "PLAID", "plaid idea", "help me find an idea", "product idea", "idea from my business", "idea from my expertise", "plaid validate", "validate my idea", "pressure-test", "is this idea good", "find fatal flaws", "validate the problem", "plan a product", "define my vision", "generate a PRD", "product strategy", "plaid design", "design from image", "translate image to design", "create design.md", "extract design tokens", "plaid launch", "go-to-market", "launch plan", "GTM strategy", "launch playbook", "plaid build", "build the app", "start building", or "execute the roadmap".
nextjs-framer-motion-animations
IncludedAdds production-safe Motion for React or Framer Motion animations to Next.js apps, including reveal, hover and tap micro-interactions, whileInView, stagger, AnimatePresence, layout and layoutId transitions, reorder, scroll-linked UI, and lightweight route-content transitions. Use when the user asks to add, refactor, or debug Motion or Framer Motion in App Router or Pages Router codebases, especially around server/client boundaries, reduced motion, LazyMotion, bundle size, hydration, or route transitions. Avoid for GSAP-style timelines, WebGL or 3D scenes, heavy scroll storytelling, or CSS-only effects unless Motion is explicitly requested.