TODO.md

Summary

Maintainability
Test Coverage
- [ ] Support Mouse Events
  - [X] Mouse Enter
  - [X] Mouse Leave
  - [X] Mouse Move
  - [X] Mouse Down
  - [X] Mouse Up
  - [X] Click
  - [ ] Mouse Events should piggy-back on the render queue if possible
- [X] Support removing objects when they're destroyed.
- [ ] Support sort order on #each — maybe destroy & recreate group?
- [ ] Create Various Shape Renderables
  - [X] Rectangle
  - [X] Vertical Line
  - [X] Horizontal Line
  - [ ] Text
    - [X] Basic Text
    - [ ] Text "Group" to support rendering other elements that are
          responsive to the size of the text (text background for example)
    - [ ] Easy Text wrapping?
  - [X] Path* (this needs some thought for canvas/svg compatibility)
    - [X] Add support for interpolation/smoothing on paths
    - [ ] Add Scale helpers for enter/exit state for array-like data.
  - [X] ~~Polygon (Same applies as path).~~ (Needed?)
- [ ] Support all possible shape properties
  - [X] Stroke Width
  - [X] Stroke Color
  - [X] Fill Color
  - [ ] Text Align
  - [ ] Text Vertical Align
  - [ ] Others?
- [X] Create Array Helpers
  - [X] Extent (Include "padding" option)
  - [X] Unique
- [ ] Create Scales (Feature Parity with D3?)
  - [X] Linear Scale
  - [X] Ordinal Scale
    - [ ] Color Scales
  - [ ] Date Scale
  - [X] Bind Scale to Renderable Property Helper
- [ ] Create Layout Engines
  - [ ] Force Direction
  - [ ] Collision Detection
  - [ ] Create Ways to Bind Layouts to shapes/renderables (AKA: Given data & property, get
        coordinate)
- [X] Create Stacked Groups (provides previous & next data)
  - [X] Stacked Bar
  - [ ] Pie
  - [ ] Stacked Area
- [X] Transition Enter State with Previous Scale
  - [X] How to handle Ordinal Scales where value didn't exist previously? (closest index?)
- [ ] Add Animation Easing Functions
  - [ ] Basic Quad Easing
  - [ ] Elastic Easing
  - [ ] Linear Easing
- [ ] Auto Height/Width options for
- [ ] Canvas High DPI: http://www.html5rocks.com/en/tutorials/canvas/hidpi/