lnp #243

Closed
niddelicious wants to merge 2 commits from copilot/assess-vue-and-vuetify-structure into main
niddelicious commented 2026-05-09 09:07:23 +00:00 (Migrated from github.com)

Description

Brief description of the changes made in this PR.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Refactoring (code change that neither fixes a bug nor adds a feature)
  • Performance improvement
  • Test coverage improvement

Testing

  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • I have tested this manually (if applicable)

Code Quality

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • My changes generate no new warnings or errors

CI/CD Checks

  • All automated tests pass
  • Code formatting (Pint) passes
  • JavaScript/TypeScript linting passes
  • Build process completes successfully

Additional Notes

Any additional information that would be helpful for reviewers.

## Description Brief description of the changes made in this PR. ## Type of Change - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) - [ ] Documentation update - [ ] Refactoring (code change that neither fixes a bug nor adds a feature) - [ ] Performance improvement - [ ] Test coverage improvement ## Testing - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] New and existing unit tests pass locally with my changes - [ ] I have tested this manually (if applicable) ## Code Quality - [ ] My code follows the style guidelines of this project - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] My changes generate no new warnings or errors ## CI/CD Checks - [ ] All automated tests pass - [ ] Code formatting (Pint) passes - [ ] JavaScript/TypeScript linting passes - [ ] Build process completes successfully ## Additional Notes Any additional information that would be helpful for reviewers.
copilot-pull-request-reviewer[bot] (Migrated from github.com) reviewed 2026-05-09 09:07:29 +00:00
copilot-pull-request-reviewer[bot] (Migrated from github.com) left a comment

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.
coderabbitai[bot] commented 2026-05-09 09:07:31 +00:00 (Migrated from github.com)

Important

Review skipped

Too many files!

This PR contains 297 files, which is 147 over the limit of 150. Please upgrade to Pro or Pro Plus to get higher limits.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Free

Run ID: 2176c6b6-6f38-46b6-b557-5cfb329fd808

📥 Commits

Reviewing files that changed from the base of the PR and between 8e61f51618 and b236c653cc.

Files ignored due to path filters (3)
  • coverage/favicon.png is excluded by !**/*.png
  • coverage/sort-arrow-sprite.png is excluded by !**/*.png
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (297)
  • .eslintignore
  • .eslintrc.cjs
  • CHANGELOG.md
  • DEVLOG.md
  • IMPROVEMENT_CHECKLIST.md
  • __mocks__/@inertiajs/vue3.ts
  • app/Http/Controllers/Api/LedgerApiController.php
  • coverage/Components/CurrencyField.vue.html
  • coverage/Components/FAB/UniversalFAB.vue.html
  • coverage/Components/FAB/index.html
  • coverage/Components/index.html
  • coverage/Composables/index.html
  • coverage/Composables/useApiError.ts.html
  • coverage/Composables/useClearStores.ts.html
  • coverage/Composables/useCurrency.ts.html
  • coverage/Composables/useCurrencyFields.ts.html
  • coverage/Composables/useDate.ts.html
  • coverage/Composables/useDateRange.js.html
  • coverage/Composables/useExpenseCalculations.ts.html
  • coverage/Composables/useFab.ts.html
  • coverage/Composables/useNumbers.ts.html
  • coverage/Composables/usePWA.ts.html
  • coverage/Composables/usePageCache.ts.html
  • coverage/Composables/usePercentage.ts.html
  • coverage/Composables/useRestoreBaseUrl.ts.html
  • coverage/Composables/useString.js.html
  • coverage/Composables/useTemplateManagement.ts.html
  • coverage/Composables/useTheme.ts.html
  • coverage/Composables/useToast.ts.html
  • coverage/Composables/useUserSettings.ts.html
  • coverage/Pages/Dashboard.vue.html
  • coverage/Pages/index.html
  • coverage/base.css
  • coverage/block-navigation.js
  • coverage/clover.xml
  • coverage/coverage-final.json
  • coverage/index.html
  • coverage/prettify.css
  • coverage/prettify.js
  • coverage/sorter.js
  • coverage/stores/balanceStore.ts.html
  • coverage/stores/calendarStore.ts.html
  • coverage/stores/currencyStore.ts.html
  • coverage/stores/dashboardStore.ts.html
  • coverage/stores/fabStore.ts.html
  • coverage/stores/financeStore.ts.html
  • coverage/stores/index.html
  • coverage/stores/ledgerStore.ts.html
  • coverage/stores/themeStore.ts.html
  • coverage/stores/transactionStore.ts.html
  • coverage/stores/userSettingsStore.ts.html
  • docs/procedures/REFACTORING_PLAN.md
  • eslint.config.js
  • jsconfig.json
  • lint-detailed.txt
  • lint-results.json
  • package.json
  • resources/js/Components/Breadcrumbs.vue
  • resources/js/Components/Calendar/AnnualEventFabContent.vue
  • resources/js/Components/Calendar/AnnualEventModal.vue
  • resources/js/Components/Calendar/TaskCategoryModal.vue
  • resources/js/Components/Calendar/TaskChip.vue
  • resources/js/Components/Calendar/TaskFormModal.vue
  • resources/js/Components/Calendar/TasksFabContent.vue
  • resources/js/Components/CategorySummaryList.vue
  • resources/js/Components/Checkbox.vue
  • resources/js/Components/Credit/CreditsFabContent.vue
  • resources/js/Components/CreditCard/CreditCardsFabContent.vue
  • resources/js/Components/CurrencyField.vue
  • resources/js/Components/DangerButton.vue
  • resources/js/Components/FAB/FabActionButton.vue
  • resources/js/Components/FAB/FabExtensionButton.vue
  • resources/js/Components/FAB/FabMenu.vue
  • resources/js/Components/FAB/FabQuickNavButton.vue
  • resources/js/Components/FAB/FabQuickPurchaseButton.vue
  • resources/js/Components/FAB/UniversalFAB.vue
  • resources/js/Components/FAB/UniversalFabActions.vue
  • resources/js/Components/Finance/TemplatesColumn.vue
  • resources/js/Components/Finance/TemplatesFabContent.vue
  • resources/js/Components/HelpSection.vue
  • resources/js/Components/Inputs/IconPicker.vue
  • resources/js/Components/Ledger/LedgerFilterFab.vue
  • resources/js/Components/Ledger/LedgerFilterFabContent.vue
  • resources/js/Components/LedgerSummaryCard.vue
  • resources/js/Components/LoadingSpinner.vue
  • resources/js/Components/Mortgage/MortgageViewFabContent.vue
  • resources/js/Components/Mortgage/MortgagesFabContent.vue
  • resources/js/Components/PageRefreshIndicator.vue
  • resources/js/Components/PrimaryButton.vue
  • resources/js/Components/Purchases/AddPurchaseButton.vue
  • resources/js/Components/Purchases/CsvPurchaseImport.vue
  • resources/js/Components/Purchases/PurchaseFormModal.vue
  • resources/js/Components/Purchases/PurchaseList.vue
  • resources/js/Components/Purchases/PurchasesFabContent.vue
  • resources/js/Components/SecondaryButton.vue
  • resources/js/Components/ToastSnackbar.vue
  • resources/js/Components/TransactionList.vue
  • resources/js/Components/YearSelector.vue
  • resources/js/Composables/TemplateManagement/categoryOperations.ts
  • resources/js/Composables/TemplateManagement/index.ts
  • resources/js/Composables/TemplateManagement/intervalCalculations.ts
  • resources/js/Composables/TemplateManagement/templateOperations.ts
  • resources/js/Composables/TemplateManagement/templateToggle.ts
  • resources/js/Composables/TemplateManagement/types.ts
  • resources/js/Composables/useAccordionData.ts
  • resources/js/Composables/useExpenseCalculations.ts
  • resources/js/Composables/useNumbers.ts
  • resources/js/Composables/useRestoreBaseUrl.ts
  • resources/js/Composables/useTemplateManagement.ts
  • resources/js/Composables/useTheme.ts
  • resources/js/Composables/useUserSettings.ts
  • resources/js/Data/Help/calendarHelp.ts
  • resources/js/Data/Help/creditsHelp.ts
  • resources/js/Data/Help/dashboardHelp.ts
  • resources/js/Data/Help/financeHelp.ts
  • resources/js/Data/Help/ledgerHelp.ts
  • resources/js/Data/Help/mortgagesHelp.ts
  • resources/js/Data/Help/purchasesHelp.ts
  • resources/js/Data/Help/settingsHelp.ts
  • resources/js/Data/Help/templatesHelp.ts
  • resources/js/Data/helpData.ts
  • resources/js/Layouts/AuthenticatedLayout.vue
  • resources/js/Layouts/GuestLayout.vue
  • resources/js/Layouts/Partials/AppBar.vue
  • resources/js/Layouts/Partials/AppFooter.vue
  • resources/js/Layouts/Partials/NavLinks.ts
  • resources/js/Layouts/Partials/NavigationDrawer.vue
  • resources/js/Pages/Auth/ConfirmPassword.vue
  • resources/js/Pages/Auth/ForgotPassword.vue
  • resources/js/Pages/Auth/Login.vue
  • resources/js/Pages/Auth/Register.vue
  • resources/js/Pages/Auth/ResetPassword.vue
  • resources/js/Pages/Auth/VerifyEmail.vue
  • resources/js/Pages/Balance/Index.vue
  • resources/js/Pages/Balance/MonthView.vue
  • resources/js/Pages/Balance/Partials/DateCycleAlert.vue
  • resources/js/Pages/Balance/Partials/MonthCard.vue
  • resources/js/Pages/Calendar/AnnualEvents.vue
  • resources/js/Pages/Calendar/Index.vue
  • resources/js/Pages/Calendar/Partials/BatchEditCalendarForm.vue
  • resources/js/Pages/Calendar/Partials/CalendarGrid.vue
  • resources/js/Pages/Calendar/Partials/CalendarStatistics.vue
  • resources/js/Pages/Calendar/Partials/DayCell.vue
  • resources/js/Pages/Calendar/Partials/MonthView.vue
  • resources/js/Pages/Calendar/TaskBoard.vue
  • resources/js/Pages/Changelog/Index.vue
  • resources/js/Pages/Credit/Index.vue
  • resources/js/Pages/Credit/Partials/CreditCardCalculator.vue
  • resources/js/Pages/Credit/Partials/CreditCardPurchases.vue
  • resources/js/Pages/Credit/Partials/CreditCardStatements.vue
  • resources/js/Pages/Credit/Partials/CreditDialog.vue
  • resources/js/Pages/Credit/Partials/CreditSummary.vue
  • resources/js/Pages/Credit/Partials/CreditTable.vue
  • resources/js/Pages/Credit/Partials/PaymentSchedule.vue
  • resources/js/Pages/Credit/Show.vue
  • resources/js/Pages/CreditCard/Index.vue
  • resources/js/Pages/CreditCard/Partials/CreditCardCalculator.vue
  • resources/js/Pages/CreditCard/Partials/CreditCardDialog.vue
  • resources/js/Pages/CreditCard/Partials/CreditCardTable.vue
  • resources/js/Pages/Dashboard.vue
  • resources/js/Pages/Dashboard/Partials/AnnualEventsSummaryCard.vue
  • resources/js/Pages/Dashboard/Partials/BalanceSummaryCard.vue
  • resources/js/Pages/Dashboard/Partials/CalendarSummaryCard.vue
  • resources/js/Pages/Dashboard/Partials/DashboardCard.vue
  • resources/js/Pages/Dashboard/Partials/DashboardMasonryGrid.vue
  • resources/js/Pages/Dashboard/Partials/LedgerCard.vue
  • resources/js/Pages/Dashboard/Partials/TasksSummaryCard.vue
  • resources/js/Pages/Dashboard/Partials/TodaysTasksCard.vue
  • resources/js/Pages/Dashboard/Partials/UpcomingTasksCard.vue
  • resources/js/Pages/Empty.vue
  • resources/js/Pages/Finance/Index.vue
  • resources/js/Pages/Finance/Partials/CategoryDialogManager.vue
  • resources/js/Pages/Finance/Partials/TemplateDialogManager.vue
  • resources/js/Pages/Finance/Purchases/Index.vue
  • resources/js/Pages/Finance/Templates.vue
  • resources/js/Pages/Help/Index.vue
  • resources/js/Pages/Mortgage/Index.vue
  • resources/js/Pages/Mortgage/Partials/BurnDownChart.vue
  • resources/js/Pages/Mortgage/Partials/DeleteConfirmationDialog.vue
  • resources/js/Pages/Mortgage/Partials/InterestRateChart.vue
  • resources/js/Pages/Mortgage/Partials/InterestRateDialog.vue
  • resources/js/Pages/Mortgage/Partials/InterestRateHistory.vue
  • resources/js/Pages/Mortgage/Partials/MilestoneForm.vue
  • resources/js/Pages/Mortgage/Partials/MortgageDetails.vue
  • resources/js/Pages/Mortgage/Partials/MortgageDialog.vue
  • resources/js/Pages/Mortgage/Partials/MortgageForm.vue
  • resources/js/Pages/Mortgage/Partials/MortgageTable.vue
  • resources/js/Pages/Mortgage/Partials/PaymentActualization.vue
  • resources/js/Pages/Mortgage/Partials/PaymentEditDialog.vue
  • resources/js/Pages/Mortgage/Partials/PaymentHistory.vue
  • resources/js/Pages/Mortgage/Show.vue
  • resources/js/Pages/Profile/Edit.vue
  • resources/js/Pages/Profile/Partials/DeleteUserForm.vue
  • resources/js/Pages/Profile/Partials/UpdatePasswordForm.vue
  • resources/js/Pages/Profile/Partials/UpdateProfileInformationForm.vue
  • resources/js/Pages/Settings/Index.vue
  • resources/js/Pages/Settings/Partials/CurrencyForm.vue
  • resources/js/Pages/Settings/Partials/DateCycleForm.vue
  • resources/js/Pages/Settings/Partials/ParentSettingsForm.vue
  • resources/js/Pages/Settings/Partials/QuickNavigationForm.vue
  • resources/js/Pages/Settings/Partials/QuickPurchasesSelectionForm.vue
  • resources/js/Pages/Settings/Partials/TaskSettingsForm.vue
  • resources/js/Pages/Transactions/CombinedLedger.vue
  • resources/js/Pages/Transactions/Ledger/Partials/AddTransactionModal.vue
  • resources/js/Pages/Transactions/Manage.vue
  • resources/js/Pages/Transactions/Partials/Accordion/CreditsSection.vue
  • resources/js/Pages/Transactions/Partials/Accordion/ExpenseSection.vue
  • resources/js/Pages/Transactions/Partials/Accordion/IncomeSection.vue
  • resources/js/Pages/Transactions/Partials/Accordion/MortgagesSection.vue
  • resources/js/Pages/Transactions/Partials/Accordion/PurchasesSection.vue
  • resources/js/Pages/Transactions/Partials/CategoryDeleteDialog.vue
  • resources/js/Pages/Transactions/Partials/CategoryDialog.vue
  • resources/js/Pages/Transactions/Partials/CategoryManagement.vue
  • resources/js/Pages/Transactions/Partials/CategoryTotalsRow.vue
  • resources/js/Pages/Transactions/Partials/CombinedMonthlyAccordion.vue
  • resources/js/Pages/Transactions/Partials/CombinedMonthlyAccordion.vue.backup
  • resources/js/Pages/Transactions/Partials/CombinedMonthlyTotalsRow.vue
  • resources/js/Pages/Transactions/Partials/FlashMessages.vue
  • resources/js/Pages/Transactions/Partials/MonthActionsBar.vue
  • resources/js/Pages/Transactions/Partials/MortgagePaymentRow.vue
  • resources/js/Pages/Transactions/Partials/TransactionDeleteDialog.vue
  • resources/js/Pages/Transactions/Partials/TransactionDialog.vue
  • resources/js/Pages/Transactions/Partials/TransactionManagement.vue
  • resources/js/Pages/Transactions/Partials/TransactionRow.vue
  • resources/js/Pages/Welcome.vue
  • resources/js/__tests__/components/CurrencyField.spec.ts
  • resources/js/__tests__/components/Dashboard.spec.ts
  • resources/js/__tests__/components/UniversalFAB.spec.ts
  • resources/js/__tests__/composables/useApiError.spec.ts
  • resources/js/__tests__/composables/useClearStores.spec.ts
  • resources/js/__tests__/composables/useCurrency.spec.ts
  • resources/js/__tests__/composables/useCurrencyFields.spec.ts
  • resources/js/__tests__/composables/useDate.spec.ts
  • resources/js/__tests__/composables/useDateRange.spec.ts
  • resources/js/__tests__/composables/useExpenseCalculations.spec.ts
  • resources/js/__tests__/composables/useFab.spec.ts
  • resources/js/__tests__/composables/useNumbers.spec.ts
  • resources/js/__tests__/composables/usePWA.spec.ts
  • resources/js/__tests__/composables/usePageCache.spec.ts
  • resources/js/__tests__/composables/usePercentage.spec.ts
  • resources/js/__tests__/composables/useRestoreBaseUrl.spec.ts
  • resources/js/__tests__/composables/useString.spec.ts
  • resources/js/__tests__/composables/useTemplateManagement.spec.ts
  • resources/js/__tests__/composables/useTheme.spec.ts
  • resources/js/__tests__/composables/useToast.spec.ts
  • resources/js/__tests__/composables/useUserSettings.spec.ts
  • resources/js/__tests__/setup.ts
  • resources/js/__tests__/stores/balanceStore.spec.ts
  • resources/js/__tests__/stores/calendarStore.spec.ts
  • resources/js/__tests__/stores/currencyStore.spec.ts
  • resources/js/__tests__/stores/dashboardStore.spec.ts
  • resources/js/__tests__/stores/fabStore.spec.ts
  • resources/js/__tests__/stores/financeStore.spec.ts
  • resources/js/__tests__/stores/ledgerStore.spec.ts
  • resources/js/__tests__/stores/themeStore.spec.ts
  • resources/js/__tests__/stores/transactionStore.spec.ts
  • resources/js/__tests__/stores/userSettingsStore.spec.ts
  • resources/js/__tests__/utils/createMockPage.ts
  • resources/js/__tests__/utils/mountWithPlugins.ts
  • resources/js/__tests__/utils/withSetup.ts
  • resources/js/app.ts
  • resources/js/bootstrap.ts
  • resources/js/stores/CalendarStore/api.ts
  • resources/js/stores/CalendarStore/cache.ts
  • resources/js/stores/CalendarStore/getters.ts
  • resources/js/stores/CalendarStore/index.ts
  • resources/js/stores/CalendarStore/mutations.ts
  • resources/js/stores/CalendarStore/state.ts
  • resources/js/stores/CalendarStore/types.ts
  • resources/js/stores/CurrencyStore/actions.ts
  • resources/js/stores/CurrencyStore/formatters.ts
  • resources/js/stores/CurrencyStore/getters.ts
  • resources/js/stores/CurrencyStore/index.ts
  • resources/js/stores/CurrencyStore/state.ts
  • resources/js/stores/CurrencyStore/types.ts
  • resources/js/stores/CurrencyStore/utilities.ts
  • resources/js/stores/DashboardStore/actions.ts
  • resources/js/stores/DashboardStore/api.ts
  • resources/js/stores/DashboardStore/index.ts
  • resources/js/stores/DashboardStore/state.ts
  • resources/js/stores/DashboardStore/types.ts
  • resources/js/stores/FinanceStore/api.ts
  • resources/js/stores/FinanceStore/getters.ts
  • resources/js/stores/FinanceStore/index.ts
  • resources/js/stores/FinanceStore/mutations.ts
  • resources/js/stores/FinanceStore/state.ts
  • resources/js/stores/FinanceStore/types.ts
  • resources/js/stores/FinanceStore/utilities.ts
  • resources/js/stores/LedgerStore/api.ts
  • resources/js/stores/LedgerStore/cache.ts
  • resources/js/stores/LedgerStore/getters.ts
  • resources/js/stores/LedgerStore/index.ts
  • resources/js/stores/LedgerStore/mutations.ts
  • resources/js/stores/LedgerStore/state.ts
  • resources/js/stores/LedgerStore/types.ts
  • resources/js/stores/TransactionStore/index.ts
  • resources/js/stores/TransactionStore/operations.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Note

🎁 Summarized by CodeRabbit Free

Your organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/login.

Comment @coderabbitai help to get the list of available commands and usage tips.

<!-- This is an auto-generated comment: summarize by coderabbit.ai --> <!-- This is an auto-generated comment: skip review by coderabbit.ai --> > [!IMPORTANT] > ## Review skipped > > Too many files! > > This PR contains 297 files, which is 147 over the limit of 150. Please upgrade to Pro or Pro Plus to get higher limits. > > <details> > <summary>⚙️ Run configuration</summary> > > **Configuration used**: defaults > > **Review profile**: CHILL > > **Plan**: Free > > **Run ID**: `2176c6b6-6f38-46b6-b557-5cfb329fd808` > > </details> > > <details> > <summary>📥 Commits</summary> > > Reviewing files that changed from the base of the PR and between 8e61f51618d5c87bfc9d3fc4d4d09b3baea76aad and b236c653cc238376472db7c2892e825bfb536e82. > > </details> > > <details> > <summary>⛔ Files ignored due to path filters (3)</summary> > > * `coverage/favicon.png` is excluded by `!**/*.png` > * `coverage/sort-arrow-sprite.png` is excluded by `!**/*.png` > * `package-lock.json` is excluded by `!**/package-lock.json` > > </details> > > <details> > <summary>📒 Files selected for processing (297)</summary> > > * `.eslintignore` > * `.eslintrc.cjs` > * `CHANGELOG.md` > * `DEVLOG.md` > * `IMPROVEMENT_CHECKLIST.md` > * `__mocks__/@inertiajs/vue3.ts` > * `app/Http/Controllers/Api/LedgerApiController.php` > * `coverage/Components/CurrencyField.vue.html` > * `coverage/Components/FAB/UniversalFAB.vue.html` > * `coverage/Components/FAB/index.html` > * `coverage/Components/index.html` > * `coverage/Composables/index.html` > * `coverage/Composables/useApiError.ts.html` > * `coverage/Composables/useClearStores.ts.html` > * `coverage/Composables/useCurrency.ts.html` > * `coverage/Composables/useCurrencyFields.ts.html` > * `coverage/Composables/useDate.ts.html` > * `coverage/Composables/useDateRange.js.html` > * `coverage/Composables/useExpenseCalculations.ts.html` > * `coverage/Composables/useFab.ts.html` > * `coverage/Composables/useNumbers.ts.html` > * `coverage/Composables/usePWA.ts.html` > * `coverage/Composables/usePageCache.ts.html` > * `coverage/Composables/usePercentage.ts.html` > * `coverage/Composables/useRestoreBaseUrl.ts.html` > * `coverage/Composables/useString.js.html` > * `coverage/Composables/useTemplateManagement.ts.html` > * `coverage/Composables/useTheme.ts.html` > * `coverage/Composables/useToast.ts.html` > * `coverage/Composables/useUserSettings.ts.html` > * `coverage/Pages/Dashboard.vue.html` > * `coverage/Pages/index.html` > * `coverage/base.css` > * `coverage/block-navigation.js` > * `coverage/clover.xml` > * `coverage/coverage-final.json` > * `coverage/index.html` > * `coverage/prettify.css` > * `coverage/prettify.js` > * `coverage/sorter.js` > * `coverage/stores/balanceStore.ts.html` > * `coverage/stores/calendarStore.ts.html` > * `coverage/stores/currencyStore.ts.html` > * `coverage/stores/dashboardStore.ts.html` > * `coverage/stores/fabStore.ts.html` > * `coverage/stores/financeStore.ts.html` > * `coverage/stores/index.html` > * `coverage/stores/ledgerStore.ts.html` > * `coverage/stores/themeStore.ts.html` > * `coverage/stores/transactionStore.ts.html` > * `coverage/stores/userSettingsStore.ts.html` > * `docs/procedures/REFACTORING_PLAN.md` > * `eslint.config.js` > * `jsconfig.json` > * `lint-detailed.txt` > * `lint-results.json` > * `package.json` > * `resources/js/Components/Breadcrumbs.vue` > * `resources/js/Components/Calendar/AnnualEventFabContent.vue` > * `resources/js/Components/Calendar/AnnualEventModal.vue` > * `resources/js/Components/Calendar/TaskCategoryModal.vue` > * `resources/js/Components/Calendar/TaskChip.vue` > * `resources/js/Components/Calendar/TaskFormModal.vue` > * `resources/js/Components/Calendar/TasksFabContent.vue` > * `resources/js/Components/CategorySummaryList.vue` > * `resources/js/Components/Checkbox.vue` > * `resources/js/Components/Credit/CreditsFabContent.vue` > * `resources/js/Components/CreditCard/CreditCardsFabContent.vue` > * `resources/js/Components/CurrencyField.vue` > * `resources/js/Components/DangerButton.vue` > * `resources/js/Components/FAB/FabActionButton.vue` > * `resources/js/Components/FAB/FabExtensionButton.vue` > * `resources/js/Components/FAB/FabMenu.vue` > * `resources/js/Components/FAB/FabQuickNavButton.vue` > * `resources/js/Components/FAB/FabQuickPurchaseButton.vue` > * `resources/js/Components/FAB/UniversalFAB.vue` > * `resources/js/Components/FAB/UniversalFabActions.vue` > * `resources/js/Components/Finance/TemplatesColumn.vue` > * `resources/js/Components/Finance/TemplatesFabContent.vue` > * `resources/js/Components/HelpSection.vue` > * `resources/js/Components/Inputs/IconPicker.vue` > * `resources/js/Components/Ledger/LedgerFilterFab.vue` > * `resources/js/Components/Ledger/LedgerFilterFabContent.vue` > * `resources/js/Components/LedgerSummaryCard.vue` > * `resources/js/Components/LoadingSpinner.vue` > * `resources/js/Components/Mortgage/MortgageViewFabContent.vue` > * `resources/js/Components/Mortgage/MortgagesFabContent.vue` > * `resources/js/Components/PageRefreshIndicator.vue` > * `resources/js/Components/PrimaryButton.vue` > * `resources/js/Components/Purchases/AddPurchaseButton.vue` > * `resources/js/Components/Purchases/CsvPurchaseImport.vue` > * `resources/js/Components/Purchases/PurchaseFormModal.vue` > * `resources/js/Components/Purchases/PurchaseList.vue` > * `resources/js/Components/Purchases/PurchasesFabContent.vue` > * `resources/js/Components/SecondaryButton.vue` > * `resources/js/Components/ToastSnackbar.vue` > * `resources/js/Components/TransactionList.vue` > * `resources/js/Components/YearSelector.vue` > * `resources/js/Composables/TemplateManagement/categoryOperations.ts` > * `resources/js/Composables/TemplateManagement/index.ts` > * `resources/js/Composables/TemplateManagement/intervalCalculations.ts` > * `resources/js/Composables/TemplateManagement/templateOperations.ts` > * `resources/js/Composables/TemplateManagement/templateToggle.ts` > * `resources/js/Composables/TemplateManagement/types.ts` > * `resources/js/Composables/useAccordionData.ts` > * `resources/js/Composables/useExpenseCalculations.ts` > * `resources/js/Composables/useNumbers.ts` > * `resources/js/Composables/useRestoreBaseUrl.ts` > * `resources/js/Composables/useTemplateManagement.ts` > * `resources/js/Composables/useTheme.ts` > * `resources/js/Composables/useUserSettings.ts` > * `resources/js/Data/Help/calendarHelp.ts` > * `resources/js/Data/Help/creditsHelp.ts` > * `resources/js/Data/Help/dashboardHelp.ts` > * `resources/js/Data/Help/financeHelp.ts` > * `resources/js/Data/Help/ledgerHelp.ts` > * `resources/js/Data/Help/mortgagesHelp.ts` > * `resources/js/Data/Help/purchasesHelp.ts` > * `resources/js/Data/Help/settingsHelp.ts` > * `resources/js/Data/Help/templatesHelp.ts` > * `resources/js/Data/helpData.ts` > * `resources/js/Layouts/AuthenticatedLayout.vue` > * `resources/js/Layouts/GuestLayout.vue` > * `resources/js/Layouts/Partials/AppBar.vue` > * `resources/js/Layouts/Partials/AppFooter.vue` > * `resources/js/Layouts/Partials/NavLinks.ts` > * `resources/js/Layouts/Partials/NavigationDrawer.vue` > * `resources/js/Pages/Auth/ConfirmPassword.vue` > * `resources/js/Pages/Auth/ForgotPassword.vue` > * `resources/js/Pages/Auth/Login.vue` > * `resources/js/Pages/Auth/Register.vue` > * `resources/js/Pages/Auth/ResetPassword.vue` > * `resources/js/Pages/Auth/VerifyEmail.vue` > * `resources/js/Pages/Balance/Index.vue` > * `resources/js/Pages/Balance/MonthView.vue` > * `resources/js/Pages/Balance/Partials/DateCycleAlert.vue` > * `resources/js/Pages/Balance/Partials/MonthCard.vue` > * `resources/js/Pages/Calendar/AnnualEvents.vue` > * `resources/js/Pages/Calendar/Index.vue` > * `resources/js/Pages/Calendar/Partials/BatchEditCalendarForm.vue` > * `resources/js/Pages/Calendar/Partials/CalendarGrid.vue` > * `resources/js/Pages/Calendar/Partials/CalendarStatistics.vue` > * `resources/js/Pages/Calendar/Partials/DayCell.vue` > * `resources/js/Pages/Calendar/Partials/MonthView.vue` > * `resources/js/Pages/Calendar/TaskBoard.vue` > * `resources/js/Pages/Changelog/Index.vue` > * `resources/js/Pages/Credit/Index.vue` > * `resources/js/Pages/Credit/Partials/CreditCardCalculator.vue` > * `resources/js/Pages/Credit/Partials/CreditCardPurchases.vue` > * `resources/js/Pages/Credit/Partials/CreditCardStatements.vue` > * `resources/js/Pages/Credit/Partials/CreditDialog.vue` > * `resources/js/Pages/Credit/Partials/CreditSummary.vue` > * `resources/js/Pages/Credit/Partials/CreditTable.vue` > * `resources/js/Pages/Credit/Partials/PaymentSchedule.vue` > * `resources/js/Pages/Credit/Show.vue` > * `resources/js/Pages/CreditCard/Index.vue` > * `resources/js/Pages/CreditCard/Partials/CreditCardCalculator.vue` > * `resources/js/Pages/CreditCard/Partials/CreditCardDialog.vue` > * `resources/js/Pages/CreditCard/Partials/CreditCardTable.vue` > * `resources/js/Pages/Dashboard.vue` > * `resources/js/Pages/Dashboard/Partials/AnnualEventsSummaryCard.vue` > * `resources/js/Pages/Dashboard/Partials/BalanceSummaryCard.vue` > * `resources/js/Pages/Dashboard/Partials/CalendarSummaryCard.vue` > * `resources/js/Pages/Dashboard/Partials/DashboardCard.vue` > * `resources/js/Pages/Dashboard/Partials/DashboardMasonryGrid.vue` > * `resources/js/Pages/Dashboard/Partials/LedgerCard.vue` > * `resources/js/Pages/Dashboard/Partials/TasksSummaryCard.vue` > * `resources/js/Pages/Dashboard/Partials/TodaysTasksCard.vue` > * `resources/js/Pages/Dashboard/Partials/UpcomingTasksCard.vue` > * `resources/js/Pages/Empty.vue` > * `resources/js/Pages/Finance/Index.vue` > * `resources/js/Pages/Finance/Partials/CategoryDialogManager.vue` > * `resources/js/Pages/Finance/Partials/TemplateDialogManager.vue` > * `resources/js/Pages/Finance/Purchases/Index.vue` > * `resources/js/Pages/Finance/Templates.vue` > * `resources/js/Pages/Help/Index.vue` > * `resources/js/Pages/Mortgage/Index.vue` > * `resources/js/Pages/Mortgage/Partials/BurnDownChart.vue` > * `resources/js/Pages/Mortgage/Partials/DeleteConfirmationDialog.vue` > * `resources/js/Pages/Mortgage/Partials/InterestRateChart.vue` > * `resources/js/Pages/Mortgage/Partials/InterestRateDialog.vue` > * `resources/js/Pages/Mortgage/Partials/InterestRateHistory.vue` > * `resources/js/Pages/Mortgage/Partials/MilestoneForm.vue` > * `resources/js/Pages/Mortgage/Partials/MortgageDetails.vue` > * `resources/js/Pages/Mortgage/Partials/MortgageDialog.vue` > * `resources/js/Pages/Mortgage/Partials/MortgageForm.vue` > * `resources/js/Pages/Mortgage/Partials/MortgageTable.vue` > * `resources/js/Pages/Mortgage/Partials/PaymentActualization.vue` > * `resources/js/Pages/Mortgage/Partials/PaymentEditDialog.vue` > * `resources/js/Pages/Mortgage/Partials/PaymentHistory.vue` > * `resources/js/Pages/Mortgage/Show.vue` > * `resources/js/Pages/Profile/Edit.vue` > * `resources/js/Pages/Profile/Partials/DeleteUserForm.vue` > * `resources/js/Pages/Profile/Partials/UpdatePasswordForm.vue` > * `resources/js/Pages/Profile/Partials/UpdateProfileInformationForm.vue` > * `resources/js/Pages/Settings/Index.vue` > * `resources/js/Pages/Settings/Partials/CurrencyForm.vue` > * `resources/js/Pages/Settings/Partials/DateCycleForm.vue` > * `resources/js/Pages/Settings/Partials/ParentSettingsForm.vue` > * `resources/js/Pages/Settings/Partials/QuickNavigationForm.vue` > * `resources/js/Pages/Settings/Partials/QuickPurchasesSelectionForm.vue` > * `resources/js/Pages/Settings/Partials/TaskSettingsForm.vue` > * `resources/js/Pages/Transactions/CombinedLedger.vue` > * `resources/js/Pages/Transactions/Ledger/Partials/AddTransactionModal.vue` > * `resources/js/Pages/Transactions/Manage.vue` > * `resources/js/Pages/Transactions/Partials/Accordion/CreditsSection.vue` > * `resources/js/Pages/Transactions/Partials/Accordion/ExpenseSection.vue` > * `resources/js/Pages/Transactions/Partials/Accordion/IncomeSection.vue` > * `resources/js/Pages/Transactions/Partials/Accordion/MortgagesSection.vue` > * `resources/js/Pages/Transactions/Partials/Accordion/PurchasesSection.vue` > * `resources/js/Pages/Transactions/Partials/CategoryDeleteDialog.vue` > * `resources/js/Pages/Transactions/Partials/CategoryDialog.vue` > * `resources/js/Pages/Transactions/Partials/CategoryManagement.vue` > * `resources/js/Pages/Transactions/Partials/CategoryTotalsRow.vue` > * `resources/js/Pages/Transactions/Partials/CombinedMonthlyAccordion.vue` > * `resources/js/Pages/Transactions/Partials/CombinedMonthlyAccordion.vue.backup` > * `resources/js/Pages/Transactions/Partials/CombinedMonthlyTotalsRow.vue` > * `resources/js/Pages/Transactions/Partials/FlashMessages.vue` > * `resources/js/Pages/Transactions/Partials/MonthActionsBar.vue` > * `resources/js/Pages/Transactions/Partials/MortgagePaymentRow.vue` > * `resources/js/Pages/Transactions/Partials/TransactionDeleteDialog.vue` > * `resources/js/Pages/Transactions/Partials/TransactionDialog.vue` > * `resources/js/Pages/Transactions/Partials/TransactionManagement.vue` > * `resources/js/Pages/Transactions/Partials/TransactionRow.vue` > * `resources/js/Pages/Welcome.vue` > * `resources/js/__tests__/components/CurrencyField.spec.ts` > * `resources/js/__tests__/components/Dashboard.spec.ts` > * `resources/js/__tests__/components/UniversalFAB.spec.ts` > * `resources/js/__tests__/composables/useApiError.spec.ts` > * `resources/js/__tests__/composables/useClearStores.spec.ts` > * `resources/js/__tests__/composables/useCurrency.spec.ts` > * `resources/js/__tests__/composables/useCurrencyFields.spec.ts` > * `resources/js/__tests__/composables/useDate.spec.ts` > * `resources/js/__tests__/composables/useDateRange.spec.ts` > * `resources/js/__tests__/composables/useExpenseCalculations.spec.ts` > * `resources/js/__tests__/composables/useFab.spec.ts` > * `resources/js/__tests__/composables/useNumbers.spec.ts` > * `resources/js/__tests__/composables/usePWA.spec.ts` > * `resources/js/__tests__/composables/usePageCache.spec.ts` > * `resources/js/__tests__/composables/usePercentage.spec.ts` > * `resources/js/__tests__/composables/useRestoreBaseUrl.spec.ts` > * `resources/js/__tests__/composables/useString.spec.ts` > * `resources/js/__tests__/composables/useTemplateManagement.spec.ts` > * `resources/js/__tests__/composables/useTheme.spec.ts` > * `resources/js/__tests__/composables/useToast.spec.ts` > * `resources/js/__tests__/composables/useUserSettings.spec.ts` > * `resources/js/__tests__/setup.ts` > * `resources/js/__tests__/stores/balanceStore.spec.ts` > * `resources/js/__tests__/stores/calendarStore.spec.ts` > * `resources/js/__tests__/stores/currencyStore.spec.ts` > * `resources/js/__tests__/stores/dashboardStore.spec.ts` > * `resources/js/__tests__/stores/fabStore.spec.ts` > * `resources/js/__tests__/stores/financeStore.spec.ts` > * `resources/js/__tests__/stores/ledgerStore.spec.ts` > * `resources/js/__tests__/stores/themeStore.spec.ts` > * `resources/js/__tests__/stores/transactionStore.spec.ts` > * `resources/js/__tests__/stores/userSettingsStore.spec.ts` > * `resources/js/__tests__/utils/createMockPage.ts` > * `resources/js/__tests__/utils/mountWithPlugins.ts` > * `resources/js/__tests__/utils/withSetup.ts` > * `resources/js/app.ts` > * `resources/js/bootstrap.ts` > * `resources/js/stores/CalendarStore/api.ts` > * `resources/js/stores/CalendarStore/cache.ts` > * `resources/js/stores/CalendarStore/getters.ts` > * `resources/js/stores/CalendarStore/index.ts` > * `resources/js/stores/CalendarStore/mutations.ts` > * `resources/js/stores/CalendarStore/state.ts` > * `resources/js/stores/CalendarStore/types.ts` > * `resources/js/stores/CurrencyStore/actions.ts` > * `resources/js/stores/CurrencyStore/formatters.ts` > * `resources/js/stores/CurrencyStore/getters.ts` > * `resources/js/stores/CurrencyStore/index.ts` > * `resources/js/stores/CurrencyStore/state.ts` > * `resources/js/stores/CurrencyStore/types.ts` > * `resources/js/stores/CurrencyStore/utilities.ts` > * `resources/js/stores/DashboardStore/actions.ts` > * `resources/js/stores/DashboardStore/api.ts` > * `resources/js/stores/DashboardStore/index.ts` > * `resources/js/stores/DashboardStore/state.ts` > * `resources/js/stores/DashboardStore/types.ts` > * `resources/js/stores/FinanceStore/api.ts` > * `resources/js/stores/FinanceStore/getters.ts` > * `resources/js/stores/FinanceStore/index.ts` > * `resources/js/stores/FinanceStore/mutations.ts` > * `resources/js/stores/FinanceStore/state.ts` > * `resources/js/stores/FinanceStore/types.ts` > * `resources/js/stores/FinanceStore/utilities.ts` > * `resources/js/stores/LedgerStore/api.ts` > * `resources/js/stores/LedgerStore/cache.ts` > * `resources/js/stores/LedgerStore/getters.ts` > * `resources/js/stores/LedgerStore/index.ts` > * `resources/js/stores/LedgerStore/mutations.ts` > * `resources/js/stores/LedgerStore/state.ts` > * `resources/js/stores/LedgerStore/types.ts` > * `resources/js/stores/TransactionStore/index.ts` > * `resources/js/stores/TransactionStore/operations.ts` > > </details> > > You can disable this status message by setting the `reviews.review_status` to `false` in the CodeRabbit configuration file. > > Use the checkbox below for a quick retry: > - [ ] <!-- {"checkboxId": "e9bb8d72-00e8-4f67-9cb2-caf3b22574fe"} --> 🔍 Trigger review <!-- end of auto-generated comment: skip review by coderabbit.ai --> <!-- announcements_start --> > [!TIP] > <details> > <summary>💬 Introducing Slack Agent: The best way for teams to turn conversations into code.</summary> > > [Slack Agent](https://www.coderabbit.ai/agent) is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context. > > - Generate code and open pull requests > - Plan features and break down work > - Investigate incidents and troubleshoot customer tickets together > - Automate recurring tasks and respond to alerts with triggers > - Summarize progress and report instantly > > Built for teams: > > - **Shared memory** across your entire org—no repeating context > - **Per-thread sandboxes** to safely plan and execute work > - **Governance built-in**—scoped access, auditability, and budget controls > > One agent for your entire SDLC. Right inside Slack. > > 👉 [Get started](https://agent.coderabbit.ai/) > > </details> <!-- announcements_end --> <!-- tips_start --> --- > [!NOTE] > <details> > <summary>🎁 Summarized by CodeRabbit Free</summary> > > Your organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting <https://app.coderabbit.ai/login>. > > </details> <sub>Comment `@coderabbitai help` to get the list of available commands and usage tips.</sub> <!-- tips_end -->

Pull request closed

Sign in to join this conversation.
No description provided.