Commit Graph
21 Commits
Author SHA1 Message Date
hypercross 5097aba842 refactor: implement scroll container context and flex layout
Switch from fixed positioning to a flexbox-based layout for the
main application structure. This introduces a `ScrollContainerCtx` to
provide access to the main scrollable element, allowing child
components like `FileTree` and `RevealManager` to perform accurate
scrolling and positioning relative to the container instead of the
window.

refactor: set JournalPanel height to full
2026-07-08 15:03:31 +08:00
hypercross 3690d13407 refactor: extract persistence and reveal logic into new stores
Move localStorage and URL parameter management from `journalStream`
to a dedicated `persistence` store. Relocate DOM reveal and heading
injection logic to a new `reveal` store to improve separation of
concerns.
2026-07-07 18:10:43 +08:00
hypercross ef7295ff7a fix(sidebar): add correct node identity to heading set 2026-07-07 13:26:35 +08:00
hypercross 574d17f201 refactor: improve heading revelation logic
Rewrite `addRevealedClasses` to use a two-pass approach that correctly
cascades revealed status from child headings to parent headings. This
ensures that if a sub-heading is revealed, its parent headings are
also treated as revealed, maintaining proper visibility hierarchy.
2026-07-07 12:56:28 +08:00
hypercross ced9a4f8f2 feat: implement content reveal mechanism via DOM traversal
Add `addRevealedClasses` to apply `revealed` or `concealed` CSS classes
to article elements based on the current heading hierarchy and
revealed paths. Update `Article` to expose its DOM element via an
`onDom` callback.
2026-07-07 10:56:19 +08:00
hypercross adf28a7cf1 feat: implement visibility logic for sidebar nodes
Add support for hiding file tree nodes and headings based on path
revelation status. This allows the sidebar to dynamically show only
the relevant parts of the file structure and table of contents.
2026-07-07 09:27:04 +08:00
hypercross 862ba9c01b feat: simplify journal connection via WebSocket upgrade
Refactor the journal server to run over WebSockets on the existing
HTTP server instead of a separate MQTT TCP port. This removes the need
for a separate port configuration and simplifies the connection flow
by auto-connecting to the current host.

- Remove `--mqtt-port` CLI option
- Attach Aedes broker to the HTTP server via WebSocket upgrade
- Update UI to remove manual broker URL and player name inputs
- Add "Content Source" access from the sidebar
- Update JournalPanel to auto-connect to the local server
2026-07-06 15:30:21 +08:00
hyper 53c8ce0677 feat(viewer): Add data source dialog
Introduce a dialog for switching between built-in content and a
user-selected local folder. Persist the folder handle in IndexedDB
so the selection survives page refreshes. Scan the folder for .md,
.yarn, and .csv files to build the file index.

Update App and Sidebar to pass file tree and heading data, and
add TypeScript declarations for the File System Access API.
2026-06-30 19:20:08 +08:00
hypercross 32e91f7dc8 refactor: sidebar color 2026-03-25 09:42:58 +08:00
hypercross 30ddcfc32d refactor: layout 2026-03-23 19:01:42 +08:00
hypercross c5e091da08 fix: toc uri 2026-03-22 10:11:41 +08:00
hypercross 206e799f34 fix: toc details 2026-03-22 01:47:26 +08:00
hypercross 94abd3e469 refactor: toc on right on xl 2026-03-22 01:41:37 +08:00
hypercross 807ce5a406 refactor: reorg 2026-02-27 12:34:55 +08:00
hypercross 2ab6ed9687 feat: reactive sidebar 2026-02-26 15:22:40 +08:00
hypercross 53faa775be fix: heading 2026-02-26 15:10:03 +08:00
hypercross c923d80d30 refactor: FileTree 2026-02-26 15:04:17 +08:00
hypercross 1ea2899bf4 refactor: animated sidebar 2026-02-26 15:02:28 +08:00
hypercross 83e8a89f22 fix: opacity 2026-02-26 14:57:18 +08:00
hypercross e262a83aac fix: index loading 2026-02-26 14:30:09 +08:00
hypercross ba7b264a97 feat: ai's attempt 2026-02-26 14:24:48 +08:00