You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
dev
52627e60bb
feat(eidos): port NavigationMenu (top-level site navigation w/ mega-menus)
#132. Eidos wrapper + types + recipe + canonical-depth demo. 7 parts:
Provider, List, Item, Trigger, Content, Link, Indicator. Soma owns
active-item state, hover delays (openDelay/skipDelayDuration/closeDelay),
hoverEnabled gate, loop arrow nav, data-motion directional swap,
Indicator rect CSS vars. Eidos paints the bar + trigger chrome +
Content panel + slide animations.
Reference parity (no air baseline — port directly from soma):
| Feature | soma | Radix | bits-ui | this port |
|---|---|---|---|---|
| Provider + List + Item + Trigger + Content + Link + Indicator | ✓ | ✓ | ✓ | ✓ |
| Hover open (openDelay/skipDelayDuration/closeDelay) | ✓ | ✓ | ✓ | ✓ |
| hoverEnabled (click-only mode) | ✓ | ⚠ | ✓ | ✓ |
| orientation horizontal + vertical | ✓ | ✓ | ⚠ | ✓ |
| dir / RTL | ✓ | ✓ | ✓ | ✓ |
| Indicator CSS vars (x/y/w/h rect) | ✓ | ✗ | ✗ | ✓ |
| data-motion directional swap (from-/to-start/end) | ✓ | ✓ | ⚠ | ✓ |
| forceMount on Content + Indicator | ✓ | ✓ | ✓ | ✓ |
| ARIA <nav> + translated aria-label | ✓ | ⚠ | ⚠ | ✓ |
| Keyboard nav (Arrow/Home/End/Enter/Space/Esc, ArrowDown → Content) | ✓ | ✓ | ✓ | ✓ |
| Sub (nested viewports) | ✗ | ✓ | ✓ | ⚠ deferred (matches soma) |
| Viewport (shared swap pane) | ✗ | ✓ | ✓ | ⚠ deferred |
| Modal variant (focus trap) | ✗ | ✓ | ✗ | ⚠ deferred |
| SafePolygon hover bridge | ✗ | ✗ | ✗ | ⚠ deferred |
Naming: matches soma's part names exactly. Both Trigger (button) and
Link (anchor) stay native — NOT routed through <Button> — because
top-nav has flat/borderless chrome distinct from action buttons. The
Link automatically picks up `aria-current="page"` styling for the
active route.
Variant set: only `size: 'sm' | 'md' | 'lg'` (no xs/xl). No
variant/color — NavigationMenu is chrome surface, not actionable
intent.
Fresh recipe — does NOT reuse dropdown-menu (floating click-driven)
or menubar (roving tabindex bar). NavigationMenu lives inline in the
page; per-item Content panels render via Floating but conceptually
attach to the bar. Indicator is a 2px underline that slides via CSS
vars (--navigation-menu-indicator-{x,y,w,h}) written by soma. Trigger
chevron rotates on [data-state='open']. Content animates via
data-motion directional slide on sibling swap.
Sidebar entry added under Navigation (between Pagination and a future
NavigationMenu entry).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
5 months ago |
|
.claude
|
sium: v2.0 → v2.2 — Issue idlangref, SiumProvider, progressive forms, plurals
|
6 months ago |
|
.idea
|
soma: tier 1/2 components, Field/NumberField integration, codex_audit fixes
|
6 months ago |
|
.kilo/plans
|
soma: 12 components, architecture docs, naming fixes, form tier complete
|
6 months ago |
|
.vscode
|
Initial commit: SvelteKit application with modular libraries
|
7 months ago |
|
routes/web
|
docs: consolidate kind contract + composition norms (sweep)
|
5 months ago |
|
scripts
|
feat(eidos foundation): vertebrate typography via named-style aliases + R-2.7
|
5 months ago |
|
src
|
feat(eidos): port NavigationMenu (top-level site navigation w/ mega-menus)
|
5 months ago |
|
static
|
Expand air component system and translator integration
|
6 months ago |
|
web/routes
|
feat(eidos): port NavigationMenu (top-level site navigation w/ mega-menus)
|
5 months ago |
|
.gitignore
|
uix: date-picker + date-range-picker components + component audit infra
|
5 months ago |
|
.npmrc
|
Initial commit: SvelteKit application with modular libraries
|
7 months ago |
|
.prettierignore
|
Generate Eidos base CSS artifact
|
5 months ago |
|
.prettierrc
|
Refactor active uix architecture
|
5 months ago |
|
AGENTS.md
|
docs: COMPONENT_AUDIT_GUIDE.md — inviolable pre-flight for component work
|
5 months ago |
|
CLAUDE.md
|
Continue Eidos component migration
|
5 months ago |
|
DATA_ATTRS.md
|
soma: tier 1/2 components, Field/NumberField integration, codex_audit fixes
|
6 months ago |
|
continue.md
|
docs(CONTINUE): refresh for next session — #118 + #120 + #127 closed
|
5 months ago |
|
package-lock.json
|
soma: tier 1/2 components, Field/NumberField integration, codex_audit fixes
|
6 months ago |
|
package.json
|
uix: rename morfo.translations → morfo.texts (idlangref discipline)
|
5 months ago |
|
svelte.config.js
|
Add ActiveClipboard service for Soma clipboard
|
5 months ago |
|
tsconfig.json
|
Initial commit: SvelteKit application with modular libraries
|
7 months ago |
|
tsconfig.tsbuildinfo
|
soma: refactor providers to follow terra patterns, fix translations, add table/number-field
|
6 months ago |
|
vite.config.ts
|
Add ActiveClipboard service for Soma clipboard
|
5 months ago |