<commit_before>

Project
  keep track of the "toolbox" (create panel) and also what is selected.
  serialize
  load serialized stuff

Storage
  localStorage autosave
  undo/redo







Documentation
  summary descriptions of modules




View

  Outline
    Reorder with drag
    Show "relevant" attributes

  Expression
    Maybe factor a Code view
    color picker
    autocomplete
    arrow keys between them and EditableText
    drag an attribute to transclude
    click an attribute to transclude
    displaying expression values





Add thumbnails everywhere
Add view matrix to shapes (instead of modifying the root shape)
Create panel


Rename:
  Node.children -> childNodes
  Node.childrenOfType -> childVariantsOf

Maybe move PathComponent attributes into Path element and TextComponent attributes into Text element


Needs cleanup
  jsEvaluate, spread - move them into their own folder?
  Attribute - error handling throw catches everywhere.<commit_msg>Writing todo’s<commit_after>

Project
  keep track of the "toolbox" (create panel) and also what is selected.
  serialize
  load serialized stuff

Storage
  localStorage autosave
  undo/redo

CSS
  get stylus to convert -vendor stuff so it works in Safari, etc.





Documentation
  summary descriptions of modules




View

  Outline
    Reorder with drag
    Show "relevant" attributes

  Expression
    Maybe factor a Code view
    color picker
    autocomplete
    arrow keys between them and EditableText
    drag an attribute to transclude
    click an attribute to transclude
    displaying expression values



Hovering and selection
  We need a notion of ParticularElement
    constructor: (@element, @indices)
    resolveSpread: (spread)
      traverses spread by taking the indices in order
      this is used for drag operations (get accumulatedMatrix.asSpread() then resolve it to the particularElement)

    isEqualTo: (particularElement)
      needed for selection in canvas logic

    isWithin: (particularElement)
      for knowing when to highlight graphics









Add thumbnails everywhere
Add view matrix to shapes (instead of modifying the root shape)
Create panel


Rename:
  Node.children -> childNodes
  Node.childrenOfType -> childVariantsOf

Maybe move PathComponent attributes into Path element and TextComponent attributes into Text element


Needs cleanup
  jsEvaluate, spread - move them into their own folder?
  Attribute - error handling throw catches everywhere.

Nice to have
  Would be great if build process were faster. Maybe add a build-vendor step and then when building apparatus exclude those files,
    https://lincolnloop.com/blog/speedy-browserifying-multiple-bundles/
{'fraction_non_alphanumeric': 0.032499066118789686, 'fraction_numerical': 0.0, 'mean_word_length': 3.577777777777778, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 7, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5542150', 'n_tokens_mistral': 704, 'n_tokens_neox': 647, 'n_words': 316}