Skip to content

Integrate shared/ui into widgets/version-footer (PRD-018 SC-2 batch 1/3) #82

@fedorovvvv

Description

@fedorovvvv

Sub-issue of #81. Batch 1/3 of the shared/ui follow-up integration deferred from #68.

Refs: PRD-018 SC-2 · RFC-016 · EVID-022 · closing EvidencePack EVID-023.

Closed by PR #85 (commit 434e179 for this batch).

Why

widgets/version-footer/ is the smallest integration surface and is a good first batch — it exercises ~half of the visual-atom primitives (Badge, Button, Progress, Spinner, Alert) on a single, well-contained widget. Landing it first establishes the migration pattern (atom-by-atom replacement, no behavioural change) before the larger mosaic surface in batch 2.

What landed

widgets/version-footer/ui/UpdateButton.svelte (commit 434e179):

  • Inline <button class="update-btn"><Button variant="secondary" size="sm">
  • Outer .update-btn-pos wrapper kept for fixed positioning (50/50 split: positioning stays inline, visual atom is now a primitive).
  • Inner glow dot + UPDATE label + arrow + version chip kept as decorative spans.

UpdateDialog.svelte and VersionFooter.svelte reviewed and intentionally not modified — UpdateDialog already uses Dialog/Button/Code primitives; VersionFooter is fixed-positioned chrome (single bordered pill spanning two text segments), not an atom-mappable surface. Documented in PR description.

Acceptance criteria

  • grep -RIn '<style>' template/src/widgets/version-footer shows only layout/motion styles, not atom styles. Verified post-merge: 3 style blocks remain (UpdateButton/UpdateDialog/VersionFooter), zero atom selectors (grep -E '\.(btn|badge|alert|progress|spinner)\s*\{' returns nothing).
  • No new ad-hoc reimplementation of an atom that already exists in @/shared/ui.
  • npm run check passes (0 errors, 0 warnings, 1039 files).
  • Visual smoke in Chrome on / (footer visible) — 0 console errors, dual-theme parity (light + dark verified via MCP).
  • Bundle delta inside PRD-018 NFR-002 budget. Pre-merge measurement against develop: net diff is −7 LOC in this widget (33 lines removed, 26 added), so primitive use does not increase JS by any measurable amount. Pre-Create and promote components #68 cumulative baseline not re-measured (would require checkout-and-build of the old commit), but PR-internal effect is neutral/negative.
  • Diff is reviewable in one pass — UpdateButton.svelte single-file change, well under the 300-LOC target.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions