verstak/internal/core/nodes
mirivlad c941f05dab gui: sidebar tree UX fixes — has_children, preserve expanded, double-click, DnD visual
- Backend: add HasChildren field to NodeDTO; ListWorkspaceTree/ListChildren
  populate it by querying CountChildren for container types
- Node repository: add CountChildren(parentID, types...) method
- TreeNode: toggle shown only when has_children (not isContainer); double-click
  on row = expand/collapse; icon click = expand/collapse; drop-valid class via
  DOM classList for DnD highlight; auto-expand collapsed container on 500ms
  hover during drag; auto-scroll near edge during drag
- App.svelte: selectNode no longer resets workspaceTree/expanded; new
  reloadTreePreservingExpanded() helper re-fetches children for all expanded
  nodes after DnD move / delete; deleteWorkspaceNode preserves expanded state
2026-06-03 03:48:53 +08:00
..
node.go refactor: implement template-driven node tree and human-readable vault layout 2026-06-02 12:47:06 +08:00
node_test.go refactor: implement template-driven node tree and human-readable vault layout 2026-06-02 12:47:06 +08:00
repository.go gui: sidebar tree UX fixes — has_children, preserve expanded, double-click, DnD visual 2026-06-03 03:48:53 +08:00
repository_test.go refactor: implement template-driven node tree and human-readable vault layout 2026-06-02 12:47:06 +08:00
types.go refactor: implement template-driven node tree and human-readable vault layout 2026-06-02 12:47:06 +08:00