outliner_view 0.2.4 copy "outliner_view: ^0.2.4" to clipboard
outliner_view: ^0.2.4 copied to clipboard

A platform-agnostic Flutter outliner library with block-based editing, drag-and-drop reordering, and customizable rendering.

Changelog #

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased] #

Added #

  • editingBlockBuilder callback for custom editing widgets
    • Allows full customization of the editing experience
    • Provides access to TextEditingController, FocusNode, and onSubmitted callback
    • Works seamlessly with sensible defaults when not provided

Documentation #

  • Clarified dependency requirements in README and CLAUDE.md
    • Explained that both flutter_hooks and hooks_riverpod are required
    • flutter_hooks provides hook functions (useState, useEffect, etc.)
    • hooks_riverpod provides HookConsumerWidget for combining hooks with Riverpod
    • Both packages are needed in version 2.6.1 as hooks_riverpod doesn't re-export hooks

0.1.0 - 2025-10-20 #

Added #

  • Initial release of outliner_view library
  • Platform-agnostic hierarchical block-based editing
  • Core widgets: OutlinerListView, BlockWidget, DraggableBlockWidget
  • Immutable state management with Riverpod + Freezed
  • Drag-and-drop reordering with three drop zones (before, after, as-child)
  • Collapsible/expandable sections
  • Inline block editing with focus management
  • Customizable rendering via builder callbacks:
    • blockBuilder for custom block content when not editing
    • bulletBuilder for custom bullets/collapse indicators
    • textFieldDecorationBuilder for custom TextField styling
  • Configuration classes: BlockStyle and OutlinerConfig
  • Repository pattern for flexible persistence (OutlinerRepository interface)
  • Default in-memory repository implementation
  • Keyboard shortcuts support (Tab/Shift+Tab for indent/outdent, Enter for split)
  • Mobile-friendly focus tracking with convenience methods:
    • indentFocusedBlock(), outdentFocusedBlock(), removeFocusedBlock()
    • splitFocusedBlock(), addChildToFocusedBlock()
  • Comprehensive property-based tests using dartproptest
  • Example app demonstrating Material Design integration
  • Complete API documentation

Features #

  • Unlimited nesting depth for hierarchical blocks
  • Automatic prevention of circular parent-child relationships
  • No block duplication - all structural invariants maintained
  • Clean separation between library core and UI framework
  • Full customization without subclassing
0
likes
55
points
9
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A platform-agnostic Flutter outliner library with block-based editing, drag-and-drop reordering, and customizable rendering.

Repository (GitHub)

License

MIT (license)

Dependencies

flutter, flutter_hooks, flutter_riverpod, freezed_annotation, hooks_riverpod, json_annotation, uuid

More

Packages that depend on outliner_view