Files
InvoiceShelf/resources/scripts-v2/features/customer-portal/index.ts
Darko Gjorgjijoski d91f6ff2e3 Phase 4b: Remaining features — payments, expenses, recurring
invoices, members, reports, settings, customer portal, modules,
installation

82 files, 14293 lines. Completes all feature modules:
- payments: CRUD with send/preview, payment modes
- expenses: CRUD with receipt upload, categories
- recurring-invoices: full frequency logic, limit by date/count
- members: list with roles, invite modal, pending invitations
- reports: sales, profit/loss, expenses, tax with date ranges
- settings: 14 settings views, number customizer, mail config
- customer-portal: consolidated store, 8 views, portal layout
- modules: marketplace index, detail/install, module cards
- installation: 8-step wizard with requirements/db/mail/account

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 07:30:00 +02:00

28 lines
1.1 KiB
TypeScript

export { customerPortalRoutes } from './routes'
export { useCustomerPortalStore } from './store'
export type {
CustomerPortalState,
CustomerPortalStore,
CustomerPortalMenuItem,
CustomerUserForm,
CustomerAddress,
CustomerLoginData,
DashboardData,
PaginatedListParams,
PaginatedResponse,
} from './store'
// Views
export { default as CustomerDashboardView } from './views/CustomerDashboardView.vue'
export { default as CustomerInvoicesView } from './views/CustomerInvoicesView.vue'
export { default as CustomerInvoiceDetailView } from './views/CustomerInvoiceDetailView.vue'
export { default as CustomerEstimatesView } from './views/CustomerEstimatesView.vue'
export { default as CustomerEstimateDetailView } from './views/CustomerEstimateDetailView.vue'
export { default as CustomerPaymentsView } from './views/CustomerPaymentsView.vue'
export { default as CustomerPaymentDetailView } from './views/CustomerPaymentDetailView.vue'
export { default as CustomerSettingsView } from './views/CustomerSettingsView.vue'
// Components
export { default as CustomerPortalLayout } from './components/CustomerPortalLayout.vue'