Skip to content

fix(budget): display 'invoiced' badge instead of confidence pill for invoiced budget lines#576

Merged
steilerDev merged 2 commits intobetafrom
fix/575-invoiced-badge-confidence-pill
Mar 8, 2026
Merged

fix(budget): display 'invoiced' badge instead of confidence pill for invoiced budget lines#576
steilerDev merged 2 commits intobetafrom
fix/575-invoiced-badge-confidence-pill

Conversation

@steilerDev
Copy link
Owner

Summary

Fixes issue #575 — invoiced budget lines now display an "Invoiced" badge instead of the confidence level indicator.

Changes

  1. BudgetLineRow: Removed green row tinting (.rowActual class). When a budget line has an invoice, display "Invoiced" badge instead of confidence pill.
  2. WorkItemRow & HouseholdItemRow: Removed green row tinting. Show "Invoiced" badge when costDisplay === 'actual'.
  3. CSS: Added new .invoicedBadge class with success styling (green background, success text color).

Design Rationale

  • Invoiced items are no longer visually tinted green to reduce visual clutter
  • The "Invoiced" badge provides a clear, explicit indicator that an invoice exists
  • Confidence levels remain visible for projected/mixed cost items
  • Badge styling uses design tokens for consistency

Co-Authored-By: Claude frontend-developer (Haiku 4.5) noreply@anthropic.com

…ed budget lines

- Budget lines with invoices show green invoiced badge instead of confidence level pill
- Work items and household items with costDisplay=actual show invoiced badge next to title
- Remove green row tinting (rowActual/rowMixed classes) - badge is sufficient indicator
- Update 4 existing tests and add 10 new tests covering all badge scenarios

Fixes #575

Co-Authored-By: Claude frontend-developer (Haiku) <noreply@anthropic.com>
Co-Authored-By: Claude qa-integration-tester (Haiku) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@steilerDev steilerDev force-pushed the fix/575-invoiced-badge-confidence-pill branch from e502bb3 to 9583335 Compare March 8, 2026 01:22
Copy link
Owner Author

@steilerDev steilerDev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[security-engineer]

PR #576 reviewed. This is a purely visual change — swapping CSS row-highlight classes for an inline badge in three render functions (BudgetLineRow, WorkItemRow, HouseholdItemRow) plus the corresponding CSS class and test updates.

Security checklist:

  • No user input handling or API surface changes
  • No dangerouslySetInnerHTML, innerHTML, or eval usage — badge text is the static string literal 'invoiced', not any user-supplied value
  • No new dependencies introduced
  • No auth or authorization logic touched
  • No sensitive data exposure paths
  • No CORS, CSP, or cookie changes

No security findings.

Copy link
Owner Author

@steilerDev steilerDev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[product-architect]

Review Summary

Clean, well-scoped bug fix. The change correctly replaces the green row tinting (rowActual/rowMixed classes) with an explicit "invoiced" badge for fully invoiced lines and work/household items. Tests are thorough — 4 updated scenarios + 10 new cases covering both entity types and all costDisplay states.

Design Token Compliance

The .invoicedBadge class uses exclusively design tokens (--font-size-xs, --font-weight-medium, --spacing-0-5, --spacing-2, --radius-full, --color-success-badge-bg, --color-success). All tokens exist in tokens.css and have dark mode overrides in the [data-theme="dark"] block. No hardcoded values — fully compliant.

Findings

Low: Dead CSS classes remain
.rowActual and .rowMixed are still defined in CostBreakdownTable.module.css (lines ~225-237) but are no longer applied anywhere in the TSX. These are now dead code. Not blocking — can be cleaned up in a follow-up or as part of the next touch to this component.

No other issues found. The badge pattern (pill shape, success color, capitalize text) is consistent with existing badge conventions in the codebase (status badges, confidence badges).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@steilerDev steilerDev merged commit 37cfaed into beta Mar 8, 2026
13 checks passed
@github-actions
Copy link
Contributor

github-actions bot commented Mar 8, 2026

🎉 This PR is included in version 1.13.0-beta.25 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@github-actions
Copy link
Contributor

github-actions bot commented Mar 8, 2026

🎉 This PR is included in version 1.13.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants