- Fix duplicate function showToast declaration causing infinite recursion
(showToast declared twice → function hoisting → _origShowToast === self)
Progress bar now inlined directly into _displayToast; Module 47 removed
- Notification bell now opens a proper dropdown panel with unread items,
per-item click-to-read, "Mark all read", close on outside click/Esc
- Ticket detail drawer now has real editable fields (title, status,
priority, assignee, description textarea, comment box) instead of
read-only KV pairs; Save Changes and Post Comment buttons functional
- Advanced ▾ filter dropdown: status/priority/assignee selects + Apply/Reset
- Bulk Actions dropdown: Close/Reassign/Export/Delete with toast feedback
- Generic .lt-dropdown-trigger toggle system (works for any future dropdown)
- Add CSS sections 76 (notification panel) and 77 (dropdown widget + .lt-textarea)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix lt.clipboard.init() → initCopyButtons() (crashed init handler
before context menu, split pane, lightbox, theme btn could register)
- Add lt.pagination module (Module 55) with ellipsis rendering,
prev/next, onChange callback; wire demo-pagination nav
- Upgrade lt.sortable for cross-list group dragging (shared module-level
drag state enables kanban card movement between columns)
- Wire kanban columns (open/pending/inprogress/closed) to lt.sortable
with group:'kanban' for drag-and-drop between columns
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Unified CSS, JavaScript utilities, HTML template, and framework skeleton
files for Tinker Tickets (PHP), PULSE (Node.js), and GANDALF (Flask).
Includes aesthetic_diff.md documenting every divergence between the three
apps with prioritised recommendations for convergence.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>