- Foldable left panel (user profile) and right panel (task details) - Clicking a task in the list or graph node selects it and shows details - Both views (task list + graph) always mounted via absolute inset-0 for correct canvas dimensions; tabs toggle visibility with opacity - Graph node selection animation: other nodes repel outward (charge -600), then selected node smoothly slides to center (500ms cubic ease-out), then charge restores to -120 and graph stabilizes - Graph re-fits on tab switch and panel resize via ResizeObserver - Fix UUID string IDs throughout (backend returns UUIDs, not integers) - Add TaskDetailPanel, UserPanel components - Add CLAUDE.md project documentation Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
detect-newline 
Detect the dominant newline character of a string
Install
$ npm install detect-newline
Usage
const detectNewline = require('detect-newline');
detectNewline('foo\nbar\nbaz\r\n');
//=> '\n'
API
detectNewline(string)
Returns the detected newline or undefined when no newline character is found.
detectNewline.graceful(unknown)
Returns the detected newline or \n when no newline character is found or the input is not a string.
Related
- detect-newline-cli - CLI for this module
- detect-indent - Detect the indentation of code
License
MIT © Sindre Sorhus