Skip to content

Library of smart objects

i want a decent UX for a library of SO files in D_Library.svelte

Remaining work

  • library -- save to local storage, export to fs

Done

  • 2 new buttons below list (adding to import, reinstall)
    • replace -- loads selected library item as new scene
    • insert -- adds selected item as child of selected SO (or root)
      • writes .s and .l formulas on the two non-forward axes
    • click selects row, buttons act on selection
  • add child -> disaster
  • move reset button -> D_Library
  • move library up -> between preferences and selection
  • add reset button to bottom row of library -> delete all and restore from src/assets
  • open library -> 1/2 second hesitation (unnecessary! file io?)
  • replace hr in library with separator
  • remove translate all button
  • detect file hierarchy
    • all name references -> search recursively (glob changed to **/*.di, names preserve folder path)
    • remove list indentation
      • create a segmented control (each folder = segment)
      • only list files in the chosen segment's folder
    • list indented by folder
      • folder name has same collapse-toggle triangle as parts

  • decide where the files are stored/uploadable from
    1. bundled defaults ship in src/assets/*.di via glob import
    2. user-created files stored in IndexedDB (keyed by name)
    3. library panel merges both sources (user files override bundled with same name)
    4. + library saves to IDB + anchor-downloads to disk (durable backup)
    5. export anchor-downloads only (no IDB save)
  • scan the files there, create list of clickable items (table with two columns)
    • name
    • size
  • click -> replaces existing graph with SO from file clicked on
  • OPTION-click -> inserts SO as child of selected SO
  • ability to clear current SO (repurpose reset button -> erase all children)
  • ability to add current root SO -> library (IDB + download)
  • library panel reads from bundled glob + IDB
  • removed export button (redundant with save)
  • moved clear to D_Selection as "delete all children", disabled when selected SO has no children
  • moved show/hide back to name-row
  • add child pushed to far right of actions-row
  • unified slot padding to 8px, all vertical gaps to 8px
  • disabled cells use accent color
  • reset preferences button (clears localStorage except scene/library, reloads)