Commit Graph

8 Commits

Author SHA1 Message Date
Maofeng 23fa6137ff feat(console-web): add variant-based UI primitives
Introduce cva-driven Button, form, card, table, and segmented controls.

Use clsx and tailwind-merge through a shared cn helper so callers can override component defaults without relying on global semantic CSS. Control sizes define minimum heights while icon-only actions retain stable square dimensions.
2026-07-30 15:16:02 +08:00
Maofeng 868da49a52 feat(console-web): add swinging iframe load progress
- place an indeterminate progress track below the loading label
- animate the indicator between both ends of the track
- expose an accessible progressbar label for the active view
- honor reduced-motion preferences with a static indicator
2026-07-30 10:11:52 +08:00
Maofeng 391901a71a docs(console-web): define browser tab state ownership
- distinguish Host-global, tab-shell, and Page-private state
- describe the cross-tab handshake and ordering guards
- document mounted and keep-alive Page synchronization rules
- record the BroadcastChannel fallback behavior
2026-07-30 09:57:16 +08:00
Maofeng 88a7fba0b0 feat(console-web): synchronize Host state across tabs
- separate global Host state from tab-local shell and Page state
- replicate control-plane snapshots through a versioned BroadcastChannel
- handshake new tabs without publishing empty startup state
- reject self, stale, and malformed cross-tab messages
- suppress broadcast echoes while applying remote snapshots
- publish API snapshots and connection state atomically
- keep Page state private and update only mounted iframe documents
- test initial synchronization and protocol rejection paths
2026-07-30 09:57:06 +08:00
Maofeng 93f4a505ba docs(console-web): explain iframe retention lifecycle
- document opt-in page policy and the bounded cache
- define activate, deactivate, and dispose responsibilities
- explain hidden-frame state and command handling
- provide a Solid activity accessor example
2026-07-30 09:43:27 +08:00
Maofeng 1b2c50c951 feat(console-web): add bounded iframe keep-alive
- opt service and settings pages into document retention
- preserve iframe identity and local Solid state across navigation
- cap retained documents with deterministic LRU eviction
- deliver activate, deactivate, and dispose lifecycle messages
- reject commands emitted by inactive page documents
- expose page activity as a Solid accessor
- test retention, recreation, eviction, and invalid limits
2026-07-30 09:43:19 +08:00
Maofeng ccad05fa5a docs(console): document Host-page and embedded build workflows
- explain the persistent Host and disposable iframe ownership model
- define SDK compatibility and PWA cache boundaries
- document independent debug servers and release embedding
- record Node, npm, NPM, and WASMELD_BUILD_WEB requirements
- update repository structure and startup commands
2026-07-30 09:22:55 +08:00
Maofeng 70ee5e33da feat(console-web): replace TanStack UI with Solid host pages
- move the management frontend under the wasmeld-console crate
- use a persistent Host shell with disposable iframe page documents
- version Host/Page postMessage state and command contracts
- migrate runtime, service, WIT, invocation, and settings workflows
- add Tailwind CSS v4, responsive layouts, and Host-owned dialogs
- emit a dependency-free PWA worker with API cache exclusions
- remove the superseded root TanStack Start application
2026-07-30 09:22:55 +08:00