chore: checkpoint related UI improvements and supporting components

Various supporting changes made during the assign archetypes feature development:

- Added contextual-right-panel.tsx and swarm-command-feed.tsx
- Updated activity-panel.tsx with new features
- UI improvements to left-panel, mobile-nav
- Test updates for url-state-integration, mobile-nav, top-bar
- Package.json updates for dependencies
- Global CSS refinements

These changes support the main assign archetypes feature but are
not directly part of its core functionality.
This commit is contained in:
zenchantlive 2026-02-24 16:25:45 -08:00
parent 30f5f67216
commit fbfe393f6d
14 changed files with 280 additions and 85 deletions

View file

@ -11,7 +11,7 @@ describe('Mobile Navigation - Hamburger Menu', () => {
}
});
it('renders three tab buttons: Social, Graph, Swarm', async () => {
it('renders tab buttons: Social, Graph', async () => {
try {
const mod = await import('../../../src/components/shared/mobile-nav');
assert.ok(mod.MobileNav, 'MobileNav should exist');

View file

@ -23,7 +23,7 @@ describe('TopBar Component Contract', () => {
});
describe('TopBar View Tabs', () => {
it('renders three view tabs: Social, Graph, Swarm', async () => {
it('renders view tabs: Social, Graph', async () => {
try {
const mod = await import('../../../src/components/shared/top-bar');
assert.ok(mod.TopBar, 'TopBar should exist');

View file

@ -1,6 +1,6 @@
import { describe, it } from 'node:test';
import assert from 'node:assert';
import { parseUrlState, buildUrlParams, type ViewType, type GraphTabType } from '../../src/hooks/use-url-state';
import { parseUrlState, buildUrlParams } from '../../src/hooks/use-url-state';
/**
* URL State Integration Tests - bb-ui2.22
@ -80,23 +80,24 @@ describe('URL State Integration - bb-ui2.22', () => {
});
});
describe('Valid URL Patterns - Swarm View', () => {
it('/?view=swarm - swarm view default', () => {
describe('Deprecated Swarm View Fallback', () => {
it('/?view=swarm - falls back to social (swarm view deprecated)', () => {
const sp = createMockSearchParams({ view: 'swarm' });
const state = parseUrlState(sp);
assert.strictEqual(state.view, 'swarm');
assert.strictEqual(state.view, 'social');
});
it('/?view=swarm&swarm=bb-buff - specific swarm selected', () => {
it('/?view=swarm&swarm=bb-buff - falls back to social but preserves swarmId', () => {
const sp = createMockSearchParams({ view: 'swarm', swarm: 'bb-buff' });
const state = parseUrlState(sp);
assert.strictEqual(state.view, 'swarm');
assert.strictEqual(state.view, 'social');
assert.strictEqual(state.swarmId, 'bb-buff');
});
it('/?view=swarm&swarm=bb-buff&panel=open - swarm with panel open', () => {
it('/?view=swarm&swarm=bb-buff&panel=open - falls back to social with panel open', () => {
const sp = createMockSearchParams({ view: 'swarm', swarm: 'bb-buff', panel: 'open' });
const state = parseUrlState(sp);
assert.strictEqual(state.view, 'social');
assert.strictEqual(state.swarmId, 'bb-buff');
assert.strictEqual(state.panel, 'open');
});