* Add budget color variables to theme
* Add isPositive check for budget amount styling
* Add budget number constants for positive, zero, and negative
* Add budget status constants for positive, zero, and negative
* Add budget number constants for positive, zero, and negative
* Update midnight.ts
* Create 6754.md
Add the ability to specify expected monthly contributions to the
crossover report. This will allow users to estimate the growth of their
investments more accurately instead of treating all account growth as
exponential investment returns. When the checkbox is unclicked, the
automatically calculated historical return value will be used. When the
checkbox is clicked, it will display two input fields. One for expected
investment growth, and one for expected monthly contributions to your
retirement accounts.
Signed-off-by: Jonathon Jongsma <jonathon@quotidian.org>
* Add 'Shades of Gray (light)' theme to catalog
* Update color format in customThemeCatalog.json
* [autofix.ci] apply automated fixes
* Add release notes for light custom theme enhancement
🎨 Light custom theme featuring shades of gray and a few colors.
* Reorder color values in customThemeCatalog.json
* Change color value
Updated a color value in the custom theme catalog.
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* Fix reports to correctly render categories with identical names
Use category id instead of name as the data key for chart lookups to prevent
collisions when multiple categories share the same display name.
* Enhance CustomTooltip in LineGraph and StackedBarGraph to utilize legend data for improved display names. This change introduces a new LegendEntity type and updates the tooltip rendering logic to map data keys to their corresponding names, ensuring clarity when displaying chart data.
* Enhance Average Goal Template to allow adjusting the budgetted amount from the average by a percent or fixed amount
* fix typos
* ensure check is for undefined, so zero doesn't cause edge cases
* typo in enhancement message
* scale by cents for fixed amount, fixup tests for this as well
* Add support for fixed values in Schedule template
* [autofix.ci] apply automated fixes
* Changed to 'fixed' from 'amount'. Added unparse logic for Average, also fixed Schedule unparse
* move to generic for syntax from specific number
* consider currency preferences when calculating fixed modifications
* lint
* [autofix.ci] apply automated fixes
* timeframe -> period
* percentage -> value
* pass currency for calculation
* lint
* import from proper local dir
* [autofix.ci] apply automated fixes
* script block around {number} to prevent mdx conflict
* match order of ops between schedule and average for percent adjustment
* diversify example
* Link to schedule>adjustments from average
* Removed example column in favor of extra context
Slight rewording to avoid 'average' overload
* rabbit nitpicks
* number
* period
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: youngcw <calebyoung94@gmail.com>
Change the "Switch budget file" menu option on mobile to navigate back
to the config/budget selection page instead of opening a modal. This
makes the behavior consistent with the "Switch file" button in settings.
Remove the now-unused BudgetFileSelectionModal component.
* Add new theme 'Theme from 1970' to customThemeCatalog
* Add release notes for 1970-inspired light theme
Added release notes for a new custom light theme inspired by 1970 colors.
* Replace theme screenshots with color palette preview
- Replace screenshot images in theme installer with 3x2 color palette grid
- Add colors array to catalog themes in customThemeCatalog.json
- Update CatalogTheme type to include optional colors property
- Remove getThemeScreenshotUrl function
- Extract ColorPalette component to separate file
- Update documentation to reflect color palette instead of screenshots
- Update tests to verify color palettes instead of images
- Extract actual theme colors from GitHub repositories
* Update ColorPalette component to use data-swatch attribute for color swatches in ThemeInstaller tests
* Update packages/desktop-client/src/data/customThemeCatalog.json
Co-authored-by: Michael Clark <5285928+MikesGlitch@users.noreply.github.com>
* Update color palettes for Simple Dark and Okabe Ito themes
Co-authored-by: matiss <matiss@mja.lv>
---------
Co-authored-by: Michael Clark <5285928+MikesGlitch@users.noreply.github.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
* Fix AuthSettings - hide if no server configured and show warning if offline
* Add release notes for auth settings fix
* Refactor AuthSettings component to always display OpenID label hint and remove offline condition check in tests
* Upgrade oxfmt/oxlint and migrate import sorting to oxfmt
Upgrade oxfmt from 0.22.0 to 0.26.0 and oxlint from 1.38.0 to 1.41.0.
Move import sorting configuration from oxlint (perfectionist/sort-imports)
to oxfmt's new experimentalSortImports feature, which provides native
import sorting support in the formatter.
* Add release notes for maintenance updates including oxlint and oxfmt upgrades
* Fix accessibility issues: use semantic HTML and correct tab indices
- Replace View with semantic h1 in ModalHeader
- Fix tabIndex from 1 to 0 in Menu component
- Remove disabled oxlint accessibility rules
- Update components to use proper semantic HTML elements
* Refactor button elements to semantic HTML in Autocomplete and CategoryAutocomplete components
- Replace button elements with div/View while maintaining role="button" for accessibility.
- Update styles and props accordingly to ensure consistent behavior.
- Adjust onClick types in Item and SecondaryItem components for better type safety.
* Add release notes for upcoming maintenance updates addressing various accessibility issues
* Refactor autocomplete components to improve text alignment and button semantics
- Added textAlign: 'left' style to AccountItem and PayeeItem for consistent text alignment.
- Removed type="button" from CategoryItem to streamline button semantics.
- Updated ItemContent to use the Button component instead of a button element, enhancing accessibility and consistency.
* Refactor budget and report components to improve text alignment
- Removed font: 'inherit' style from EnvelopeBudgetComponents and TrackingBudgetComponents for cleaner styling.
- Updated ActionableGridListItem and ReportCard components to replace font: 'inherit' with textAlign: 'left' for consistent text alignment.
* Update ActionableGridListItem to include font inheritance for improved styling consistency
* Refactor button elements to use the Button component for consistency and improved semantics
- Updated various components (EnvelopeBudgetComponents, IncomeCategoryMonth, CategoryMonth, ActionableGridListItem, ReportCard, DesktopLinkedNotes) to replace native button elements with the custom Button component.
- Adjusted styles and event handlers to align with the new Button implementation, ensuring consistent behavior and accessibility across the application.
* Update Button and ActionableGridListItem styles for consistency
- Set a fixed borderRadius of 4 for the Button component, ensuring uniformity across variants.
- Adjusted ActionableGridListItem to have a borderRadius of 0 for a cleaner design.
* Update CategoryAutocomplete to include button type attribute for improved semantics
* Update VRT screenshots
Auto-generated by VRT workflow
PR: #6679
* Update VRT screenshot for Payees search functionality
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Initial plan
* Fix mobile Calendar fatal error by correcting height constraint
The Virtualizer component in TransactionList requires its parent to have a defined height. Changed the View wrapper from height: '100%' to flex: 1 to properly distribute space within the flex container, accounting for the chevron button.
Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>
* Add DisplayPayeeProvider to fix mobile Calendar error
The TransactionListItem component uses useDisplayPayee hook which requires DisplayPayeeProvider context. Wrapped TransactionListMobile with DisplayPayeeProvider to fix "useDisplayPayee must be used within a DisplayPayeeContextProvider" error on mobile.
Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>
* Change flex to height for View component
* Add release notes for PR #6698
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Update customThemeCatalog.json
Add Simple Dark and Okabe Ito themes
* Add Simple Dark and Okabe Ito themes to theme catalog
* Update customThemeCatalog.json
* Fix flaky mobile payees VRT test by waiting for navbar animation to complete
Add wait timeout after dragNavbarDown() to ensure react-spring animation finishes before screenshots are taken.
* Add release notes for reducing payees e2e test flakiness
* Fix release note formatting: use sentence case and add period
Co-authored-by: matiss <matiss@mja.lv>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
* Refactor theme catalog fetching to use custom hook
- Move catalog fetching logic from ThemeInstaller to useThemeCatalog hook
- Fetch catalog asynchronously from GitHub instead of direct import
- Update tests to mock useThemeCatalog hook for faster test execution
- Remove catalog validation and translation dependencies from hook
* Remove redundant visibility checks for 'Demo Theme' button in ThemeInstaller tests and add assertion to verify presence of images.
* Refactor ThemeInstaller component to improve error handling and loading state display
- Change conditional rendering for catalog error to use ternary operator for clarity
- Simplify loading state display logic within the theme catalog view
- Ensure consistent styling and structure for theme items in the catalog
* Initialize loading state in useThemeCatalog hook to true
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* Apply import sorting with perfectionist/sort-named-imports rule
- Add perfectionist/sort-named-imports oxlint rule
- Sort named imports: value imports before type imports
- Update component-library and desktop-client files to match new rule
* Add release notes for linting updates on named imports