Commit Graph

2 Commits

Author SHA1 Message Date
Koshi
c246e23a2f fix: use ref for renameOpenedAt for proper Vue reactivity 2026-04-06 03:06:00 +02:00
Koshi
64b895028a feat: add collapsible input groups for app builder mode
Add input groups to the app builder, allowing users to organize widgets
into named collapsible groups with drag-and-drop reordering, side-by-side
pairing, and cross-group item movement.

- InputGroupAccordion: Reka UI Collapsible component with rename,
  ungroup confirmation dialog, builder/app mode rendering
- inputGroupStore: Pinia store with full CRUD, persistence to
  linearData, auto-delete empty groups, pair management
- useGroupDrop: pragmatic-drag-and-drop directives for within-group
  reorder, cross-group moves, and DraggableList mouseup bridge
- useInputGroups: pure functions for resolving items, auto-naming,
  pair grouping
- itemKeyHelper: key format utilities for input/group item keys
- UngroupConfirmDialog: extracted Reka UI Dialog component
- PopoverMenuItem: local type replacing PrimeVue MenuItem import
- "Add to group" / "New group" in widget context menu
- "Create group" button pinned at bottom (builder mode)
- Drag ungrouped inputs into groups, drag out to ungroup
- 56 unit tests across 4 test files

Follow-up: Unified ordering of ungrouped inputs and groups (reorder/swap
positions between them) is scoped for a separate PR to keep LOC manageable.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 02:42:48 +02:00