diff --git a/.eslintrc.mjs b/.eslintrc.js
similarity index 100%
rename from .eslintrc.mjs
rename to .eslintrc.js
diff --git a/resources/scripts/App.vue b/resources/scripts/App.vue
index 521b699e..72504615 100644
--- a/resources/scripts/App.vue
+++ b/resources/scripts/App.vue
@@ -3,3 +3,6 @@
+
diff --git a/resources/scripts/InvoiceShelf.js b/resources/scripts/InvoiceShelf.js
index 9e69d3a1..06bbcf99 100644
--- a/resources/scripts/InvoiceShelf.js
+++ b/resources/scripts/InvoiceShelf.js
@@ -3,7 +3,6 @@ import App from '@/scripts/App.vue'
import { createI18n } from 'vue-i18n'
import messages from '/lang/locales'
import router from '@/scripts/router/index'
-import { defineGlobalComponents } from './global-components'
import utils from '@/scripts/helpers/utilities.js'
import _ from 'lodash'
import { VTooltip } from 'v-tooltip'
@@ -33,8 +32,6 @@ export default class InvoiceShelf {
start() {
this.executeCallbacks()
- defineGlobalComponents(app)
-
app.provide('$utils', utils)
const i18n = createI18n({
diff --git a/resources/scripts/admin/components/SelectNotePopup.vue b/resources/scripts/admin/components/SelectNotePopup.vue
index 822a8e2c..d9dbc3cf 100644
--- a/resources/scripts/admin/components/SelectNotePopup.vue
+++ b/resources/scripts/admin/components/SelectNotePopup.vue
@@ -152,6 +152,8 @@ import { useModalStore } from '@/scripts/stores/modal'
import NoteModal from '@/scripts/admin/components/modal-components/NoteModal.vue'
import { useUserStore } from '@/scripts/admin/stores/user'
import abilities from '@/scripts/admin/stub/abilities'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseInput from '@/scripts/components/base/BaseInput.vue'
const props = defineProps({
type: {
diff --git a/resources/scripts/admin/components/currency-exchange-rate/ExchangeRateBulkUpdate.vue b/resources/scripts/admin/components/currency-exchange-rate/ExchangeRateBulkUpdate.vue
index 2f058ccc..0a9fafa6 100644
--- a/resources/scripts/admin/components/currency-exchange-rate/ExchangeRateBulkUpdate.vue
+++ b/resources/scripts/admin/components/currency-exchange-rate/ExchangeRateBulkUpdate.vue
@@ -79,6 +79,10 @@ import { useI18n } from 'vue-i18n'
import useVuelidate from '@vuelidate/core'
import { required, helpers, numeric, decimal } from '@vuelidate/validators'
import { ValidateEach } from '@vuelidate/components'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseInput from '@/scripts/components/base/BaseInput.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
+import BaseCard from '@/scripts/components/base/BaseCard.vue'
const exchangeRateStore = useExchangeRateStore()
const notificationStore = useNotificationStore()
diff --git a/resources/scripts/admin/components/custom-fields/CreateCustomFields.vue b/resources/scripts/admin/components/custom-fields/CreateCustomFields.vue
index 70c9f059..528d1d2d 100644
--- a/resources/scripts/admin/components/custom-fields/CreateCustomFields.vue
+++ b/resources/scripts/admin/components/custom-fields/CreateCustomFields.vue
@@ -24,6 +24,7 @@ import lodash from 'lodash'
import { useCustomFieldStore } from '@/scripts/admin/stores/custom-field'
import { watch } from 'vue'
import SingleField from './CreateCustomFieldsSingle.vue'
+import BaseInputGrid from '@/scripts/components/base/BaseInputGrid.vue'
const customFieldStore = useCustomFieldStore()
diff --git a/resources/scripts/admin/components/custom-fields/CreateCustomFieldsSingle.vue b/resources/scripts/admin/components/custom-fields/CreateCustomFieldsSingle.vue
index 8b2320e6..74745325 100644
--- a/resources/scripts/admin/components/custom-fields/CreateCustomFieldsSingle.vue
+++ b/resources/scripts/admin/components/custom-fields/CreateCustomFieldsSingle.vue
@@ -19,6 +19,7 @@ import { defineAsyncComponent, computed } from 'vue'
import { useI18n } from 'vue-i18n'
import { helpers, requiredIf } from '@vuelidate/validators'
import useVuelidate from '@vuelidate/core'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
const props = defineProps({
field: {
diff --git a/resources/scripts/admin/components/custom-fields/types/DateTimeType.vue b/resources/scripts/admin/components/custom-fields/types/DateTimeType.vue
index f29a01ab..fda06e09 100644
--- a/resources/scripts/admin/components/custom-fields/types/DateTimeType.vue
+++ b/resources/scripts/admin/components/custom-fields/types/DateTimeType.vue
@@ -5,6 +5,7 @@
diff --git a/resources/scripts/admin/views/customers/partials/CustomerInfo.vue b/resources/scripts/admin/views/customers/partials/CustomerInfo.vue
index 75fcdbe0..4a4f4b7d 100644
--- a/resources/scripts/admin/views/customers/partials/CustomerInfo.vue
+++ b/resources/scripts/admin/views/customers/partials/CustomerInfo.vue
@@ -108,6 +108,10 @@
diff --git a/resources/scripts/admin/views/dashboard/DashboardStats.vue b/resources/scripts/admin/views/dashboard/DashboardStats.vue
index 6c392c35..20450466 100644
--- a/resources/scripts/admin/views/dashboard/DashboardStats.vue
+++ b/resources/scripts/admin/views/dashboard/DashboardStats.vue
@@ -62,6 +62,7 @@ import { inject } from 'vue'
import { useDashboardStore } from '@/scripts/admin/stores/dashboard'
import { useCompanyStore } from '@/scripts/admin/stores/company'
import { useUserStore } from '@/scripts/admin/stores/user'
+import BaseFormatMoney from '@/scripts/components/base/BaseFormatMoney.vue'
const utils = inject('utils')
diff --git a/resources/scripts/admin/views/dashboard/DashboardStatsPlaceholder.vue b/resources/scripts/admin/views/dashboard/DashboardStatsPlaceholder.vue
index a114818d..87d8b61d 100644
--- a/resources/scripts/admin/views/dashboard/DashboardStatsPlaceholder.vue
+++ b/resources/scripts/admin/views/dashboard/DashboardStatsPlaceholder.vue
@@ -18,3 +18,8 @@
+
diff --git a/resources/scripts/admin/views/dashboard/DashboardStatsSmPlaceholder.vue b/resources/scripts/admin/views/dashboard/DashboardStatsSmPlaceholder.vue
index 90ad7a11..23dc116f 100644
--- a/resources/scripts/admin/views/dashboard/DashboardStatsSmPlaceholder.vue
+++ b/resources/scripts/admin/views/dashboard/DashboardStatsSmPlaceholder.vue
@@ -29,3 +29,8 @@
+
diff --git a/resources/scripts/admin/views/dashboard/DashboardTable.vue b/resources/scripts/admin/views/dashboard/DashboardTable.vue
index 136526a7..7615e835 100644
--- a/resources/scripts/admin/views/dashboard/DashboardTable.vue
+++ b/resources/scripts/admin/views/dashboard/DashboardTable.vue
@@ -111,6 +111,9 @@ import { useUserStore } from '@/scripts/admin/stores/user'
import abilities from '@/scripts/admin/stub/abilities'
import InvoiceDropdown from '@/scripts/admin/components/dropdowns/InvoiceIndexDropdown.vue'
import EstimateDropdown from '@/scripts/admin/components/dropdowns/EstimateIndexDropdown.vue'
+import BaseFormatMoney from '@/scripts/components/base/BaseFormatMoney.vue'
+import BaseTable from '@/scripts/components/base/base-table/BaseTable.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
const dashboardStore = useDashboardStore()
diff --git a/resources/scripts/admin/views/errors/404.vue b/resources/scripts/admin/views/errors/404.vue
index 2137c657..96cbbcd7 100644
--- a/resources/scripts/admin/views/errors/404.vue
+++ b/resources/scripts/admin/views/errors/404.vue
@@ -40,6 +40,7 @@
diff --git a/resources/scripts/admin/views/modules/partials/ModulePlaceholder.vue b/resources/scripts/admin/views/modules/partials/ModulePlaceholder.vue
index b5f6c934..8b3794fc 100644
--- a/resources/scripts/admin/views/modules/partials/ModulePlaceholder.vue
+++ b/resources/scripts/admin/views/modules/partials/ModulePlaceholder.vue
@@ -8,7 +8,7 @@
-
+
@@ -102,3 +102,9 @@
+
diff --git a/resources/scripts/admin/views/payments/Create.vue b/resources/scripts/admin/views/payments/Create.vue
index 5716203e..d564b11e 100644
--- a/resources/scripts/admin/views/payments/Create.vue
+++ b/resources/scripts/admin/views/payments/Create.vue
@@ -285,6 +285,22 @@ import { useGlobalStore } from '@/scripts/admin/stores/global'
import SelectNotePopup from '@/scripts/admin/components/SelectNotePopup.vue'
import PaymentCustomFields from '@/scripts/admin/components/custom-fields/CreateCustomFields.vue'
import PaymentModeModal from '@/scripts/admin/components/modal-components/PaymentModeModal.vue'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseCustomInput from '@/scripts/components/base/BaseCustomInput.vue'
+import BaseSelectAction from '@/scripts/components/base/BaseSelectAction.vue'
+import BaseMultiselect from '@/scripts/components/base-select/BaseMultiselect.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
+import BaseMoney from '@/scripts/components/base/BaseMoney.vue'
+import BaseCustomerSelectInput from '@/scripts/components/base/BaseCustomerSelectInput.vue'
+import BaseInput from '@/scripts/components/base/BaseInput.vue'
+import BaseDatePicker from '@/scripts/components/base/BaseDatePicker.vue'
+import BaseInputGrid from '@/scripts/components/base/BaseInputGrid.vue'
+import BaseCard from '@/scripts/components/base/BaseCard.vue'
+import BaseBreadcrumbItem from '@/scripts/components/base/BaseBreadcrumbItem.vue'
+import BaseBreadcrumb from '@/scripts/components/base/BaseBreadcrumb.vue'
+import BasePageHeader from '@/scripts/components/base/BasePageHeader.vue'
+import BasePage from '@/scripts/components/base/BasePage.vue'
const route = useRoute()
const router = useRouter()
diff --git a/resources/scripts/admin/views/payments/Index.vue b/resources/scripts/admin/views/payments/Index.vue
index e28712fd..86034fa0 100644
--- a/resources/scripts/admin/views/payments/Index.vue
+++ b/resources/scripts/admin/views/payments/Index.vue
@@ -213,6 +213,24 @@ import abilities from '@/scripts/admin/stub/abilities'
import CapsuleIcon from '@/scripts/components/icons/empty/CapsuleIcon.vue'
import PaymentDropdown from '@/scripts/admin/components/dropdowns/PaymentIndexDropdown.vue'
import SendPaymentModal from '@/scripts/admin/components/modal-components/SendPaymentModal.vue'
+import BaseFormatMoney from '@/scripts/components/base/BaseFormatMoney.vue'
+import BaseText from '@/scripts/components/base/BaseText.vue'
+import BaseCheckbox from '@/scripts/components/base/BaseCheckbox.vue'
+import BaseTable from '@/scripts/components/base/base-table/BaseTable.vue'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseDropdownItem from '@/scripts/components/base/BaseDropdownItem.vue'
+import BaseDropdown from '@/scripts/components/base/BaseDropdown.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseEmptyPlaceholder from '@/scripts/components/base/BaseEmptyPlaceholder.vue'
+import BaseMultiselect from '@/scripts/components/base-select/BaseMultiselect.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
+import BaseInput from '@/scripts/components/base/BaseInput.vue'
+import BaseCustomerSelectInput from '@/scripts/components/base/BaseCustomerSelectInput.vue'
+import BaseFilterWrapper from '@/scripts/components/base/BaseFilterWrapper.vue'
+import BaseBreadcrumbItem from '@/scripts/components/base/BaseBreadcrumbItem.vue'
+import BaseBreadcrumb from '@/scripts/components/base/BaseBreadcrumb.vue'
+import BasePageHeader from '@/scripts/components/base/BasePageHeader.vue'
+import BasePage from '@/scripts/components/base/BasePage.vue'
const { t } = useI18n()
let showFilters = ref(false)
diff --git a/resources/scripts/admin/views/payments/View.vue b/resources/scripts/admin/views/payments/View.vue
index b33e2193..03c546bd 100644
--- a/resources/scripts/admin/views/payments/View.vue
+++ b/resources/scripts/admin/views/payments/View.vue
@@ -264,6 +264,17 @@ import SendPaymentModal from '@/scripts/admin/components/modal-components/SendPa
import LoadingIcon from '@/scripts/components/icons/LoadingIcon.vue'
import abilities from '@/scripts/admin/stub/abilities'
+import BaseFormatMoney from '@/scripts/components/base/BaseFormatMoney.vue'
+import BaseText from '@/scripts/components/base/BaseText.vue'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseRadio from '@/scripts/components/base/BaseRadio.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
+import BaseDropdownItem from '@/scripts/components/base/BaseDropdownItem.vue'
+import BaseDropdown from '@/scripts/components/base/BaseDropdown.vue'
+import BaseInput from '@/scripts/components/base/BaseInput.vue'
+import BasePageHeader from '@/scripts/components/base/BasePageHeader.vue'
+import BasePage from '@/scripts/components/base/BasePage.vue'
const route = useRoute()
diff --git a/resources/scripts/admin/views/recurring-invoices/Index.vue b/resources/scripts/admin/views/recurring-invoices/Index.vue
index 371fd58a..6fe90986 100644
--- a/resources/scripts/admin/views/recurring-invoices/Index.vue
+++ b/resources/scripts/admin/views/recurring-invoices/Index.vue
@@ -264,6 +264,28 @@ import SendInvoiceModal from '@/scripts/admin/components/modal-components/SendIn
import RecurringInvoiceIndexDropdown from '@/scripts/admin/components/dropdowns/RecurringInvoiceIndexDropdown.vue'
import MoonwalkerIcon from '@/scripts/components/icons/empty/MoonwalkerIcon.vue'
import abilities from '@/scripts/admin/stub/abilities'
+import BaseFormatMoney from '@/scripts/components/base/BaseFormatMoney.vue'
+import BaseRecurringInvoiceStatusLabel from '@/scripts/components/base/BaseRecurringInvoiceStatusLabel.vue'
+import BaseRecurringInvoiceStatusBadge from '@/scripts/components/base/BaseRecurringInvoiceStatusBadge.vue'
+import BaseText from '@/scripts/components/base/BaseText.vue'
+import BaseCheckbox from '@/scripts/components/base/BaseCheckbox.vue'
+import BaseTable from '@/scripts/components/base/base-table/BaseTable.vue'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseDropdownItem from '@/scripts/components/base/BaseDropdownItem.vue'
+import BaseDropdown from '@/scripts/components/base/BaseDropdown.vue'
+import BaseTab from '@/scripts/components/base/BaseTab.vue'
+import BaseTabGroup from '@/scripts/components/base/BaseTabGroup.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseEmptyPlaceholder from '@/scripts/components/base/BaseEmptyPlaceholder.vue'
+import BaseDatePicker from '@/scripts/components/base/BaseDatePicker.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
+import BaseMultiselect from '@/scripts/components/base-select/BaseMultiselect.vue'
+import BaseCustomerSelectInput from '@/scripts/components/base/BaseCustomerSelectInput.vue'
+import BaseFilterWrapper from '@/scripts/components/base/BaseFilterWrapper.vue'
+import BaseBreadcrumbItem from '@/scripts/components/base/BaseBreadcrumbItem.vue'
+import BaseBreadcrumb from '@/scripts/components/base/BaseBreadcrumb.vue'
+import BasePageHeader from '@/scripts/components/base/BasePageHeader.vue'
+import BasePage from '@/scripts/components/base/BasePage.vue'
const recurringInvoiceStore = useRecurringInvoiceStore()
const customerStore = useCustomerStore()
diff --git a/resources/scripts/admin/views/recurring-invoices/View.vue b/resources/scripts/admin/views/recurring-invoices/View.vue
index c3196ff5..324f09f8 100644
--- a/resources/scripts/admin/views/recurring-invoices/View.vue
+++ b/resources/scripts/admin/views/recurring-invoices/View.vue
@@ -27,6 +27,8 @@ import abilities from '@/scripts/admin/stub/abilities'
import RecurringInvoiceViewSidebar from '@/scripts/admin/views/recurring-invoices/partials/RecurringInvoiceViewSidebar.vue'
import RecurringInvoiceInfo from '@/scripts/admin/views/recurring-invoices/partials/RecurringInvoiceInfo.vue'
import RecurringInvoiceIndexDropdown from '@/scripts/admin/components/dropdowns/RecurringInvoiceIndexDropdown.vue'
+import BasePageHeader from '@/scripts/components/base/BasePageHeader.vue'
+import BasePage from '@/scripts/components/base/BasePage.vue'
const dialogStore = useDialogStore()
const recurringInvoiceStore = useRecurringInvoiceStore()
diff --git a/resources/scripts/admin/views/recurring-invoices/create/RecurringInvoiceCreate.vue b/resources/scripts/admin/views/recurring-invoices/create/RecurringInvoiceCreate.vue
index 85efd4d4..7cfbb588 100644
--- a/resources/scripts/admin/views/recurring-invoices/create/RecurringInvoiceCreate.vue
+++ b/resources/scripts/admin/views/recurring-invoices/create/RecurringInvoiceCreate.vue
@@ -166,6 +166,13 @@ import { useCustomerStore } from '@/scripts/admin/stores/customer'
import SelectTemplateModal from '@/scripts/admin/components/modal-components/SelectTemplateModal.vue'
import TaxTypeModal from '@/scripts/admin/components/modal-components/TaxTypeModal.vue'
import ItemModal from '@/scripts/admin/components/modal-components/ItemModal.vue'
+import BaseScrollPane from '@/scripts/components/base/BaseScrollPane.vue'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseBreadcrumbItem from '@/scripts/components/base/BaseBreadcrumbItem.vue'
+import BaseBreadcrumb from '@/scripts/components/base/BaseBreadcrumb.vue'
+import BasePageHeader from '@/scripts/components/base/BasePageHeader.vue'
+import BasePage from '@/scripts/components/base/BasePage.vue'
const recurringInvoiceStore = useRecurringInvoiceStore()
const companyStore = useCompanyStore()
diff --git a/resources/scripts/admin/views/recurring-invoices/create/RecurringInvoiceCreateBasicFields.vue b/resources/scripts/admin/views/recurring-invoices/create/RecurringInvoiceCreateBasicFields.vue
index d21c556d..985c14ce 100644
--- a/resources/scripts/admin/views/recurring-invoices/create/RecurringInvoiceCreateBasicFields.vue
+++ b/resources/scripts/admin/views/recurring-invoices/create/RecurringInvoiceCreateBasicFields.vue
@@ -189,6 +189,12 @@ import { useRoute } from 'vue-router'
import { useI18n } from 'vue-i18n'
import ExchangeRateConverter from '@/scripts/admin/components/estimate-invoice-common/ExchangeRateConverter.vue'
+import BaseInput from '@/scripts/components/base/BaseInput.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
+import BaseMultiselect from '@/scripts/components/base-select/BaseMultiselect.vue'
+import BaseDatePicker from '@/scripts/components/base/BaseDatePicker.vue'
+import BaseSwitch from '@/scripts/components/base/BaseSwitch.vue'
+import BaseCustomerSelectPopup from '@/scripts/components/base/BaseCustomerSelectPopup.vue'
const props = defineProps({
v: {
diff --git a/resources/scripts/admin/views/recurring-invoices/partials/Invoices.vue b/resources/scripts/admin/views/recurring-invoices/partials/Invoices.vue
index fa997aa3..305060e2 100644
--- a/resources/scripts/admin/views/recurring-invoices/partials/Invoices.vue
+++ b/resources/scripts/admin/views/recurring-invoices/partials/Invoices.vue
@@ -56,6 +56,10 @@ import { useRecurringInvoiceStore } from '@/scripts/admin/stores/recurring-invoi
import abilities from '@/scripts/admin/stub/abilities'
import InvoiceDropdown from '@/scripts/admin/components/dropdowns/InvoiceIndexDropdown.vue'
import SendInvoiceModal from '@/scripts/admin/components/modal-components/SendInvoiceModal.vue'
+import BaseInvoiceStatusLabel from '@/scripts/components/base/BaseInvoiceStatusLabel.vue'
+import BaseInvoiceStatusBadge from '@/scripts/components/base/BaseInvoiceStatusBadge.vue'
+import BaseFormatMoney from '@/scripts/components/base/BaseFormatMoney.vue'
+import BaseTable from '@/scripts/components/base/base-table/BaseTable.vue'
const recurringInvoiceStore = useRecurringInvoiceStore()
diff --git a/resources/scripts/admin/views/recurring-invoices/partials/RecurringInvoiceInfo.vue b/resources/scripts/admin/views/recurring-invoices/partials/RecurringInvoiceInfo.vue
index bdee42e5..a54d94db 100644
--- a/resources/scripts/admin/views/recurring-invoices/partials/RecurringInvoiceInfo.vue
+++ b/resources/scripts/admin/views/recurring-invoices/partials/RecurringInvoiceInfo.vue
@@ -69,6 +69,10 @@ import { ref, computed, watch, reactive, inject } from 'vue'
import { useRoute } from 'vue-router'
import { useRecurringInvoiceStore } from '@/scripts/admin/stores/recurring-invoice'
import Invoices from './Invoices.vue'
+import BaseHeading from '@/scripts/components/base/BaseHeading.vue'
+import BaseDescriptionListItem from '@/scripts/components/base/BaseDescriptionListItem.vue'
+import BaseDescriptionList from '@/scripts/components/base/BaseDescriptionList.vue'
+import BaseCard from '@/scripts/components/base/BaseCard.vue'
const recurringInvoiceStore = useRecurringInvoiceStore()
diff --git a/resources/scripts/admin/views/recurring-invoices/partials/RecurringInvoiceViewSidebar.vue b/resources/scripts/admin/views/recurring-invoices/partials/RecurringInvoiceViewSidebar.vue
index 3fb0e9f6..1c4fc1a5 100644
--- a/resources/scripts/admin/views/recurring-invoices/partials/RecurringInvoiceViewSidebar.vue
+++ b/resources/scripts/admin/views/recurring-invoices/partials/RecurringInvoiceViewSidebar.vue
@@ -7,6 +7,17 @@ import { debounce } from 'lodash'
import { useRecurringInvoiceStore } from '@/scripts/admin/stores/recurring-invoice'
import LoadingIcon from '@/scripts/components/icons/LoadingIcon.vue'
+import BaseFormatMoney from '@/scripts/components/base/BaseFormatMoney.vue'
+import BaseRecurringInvoiceStatusLabel from '@/scripts/components/base/BaseRecurringInvoiceStatusLabel.vue'
+import BaseRecurringInvoiceStatusBadge from '@/scripts/components/base/BaseRecurringInvoiceStatusBadge.vue'
+import BaseText from '@/scripts/components/base/BaseText.vue'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseRadio from '@/scripts/components/base/BaseRadio.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
+import BaseDropdownItem from '@/scripts/components/base/BaseDropdownItem.vue'
+import BaseDropdown from '@/scripts/components/base/BaseDropdown.vue'
+import BaseInput from '@/scripts/components/base/BaseInput.vue'
const recurringInvoiceStore = useRecurringInvoiceStore()
diff --git a/resources/scripts/admin/views/reports/ExpensesReport.vue b/resources/scripts/admin/views/reports/ExpensesReport.vue
index 85836669..1b836cd9 100644
--- a/resources/scripts/admin/views/reports/ExpensesReport.vue
+++ b/resources/scripts/admin/views/reports/ExpensesReport.vue
@@ -94,6 +94,11 @@ import moment from 'moment'
import { useCompanyStore } from '@/scripts/admin/stores/company'
import { useI18n } from 'vue-i18n'
import { useGlobalStore } from '@/scripts/admin/stores/global'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseDatePicker from '@/scripts/components/base/BaseDatePicker.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
+import BaseMultiselect from '@/scripts/components/base-select/BaseMultiselect.vue'
const globalStore = useGlobalStore()
const companyStore = useCompanyStore()
const { t } = useI18n()
diff --git a/resources/scripts/admin/views/reports/ProfitLossReport.vue b/resources/scripts/admin/views/reports/ProfitLossReport.vue
index d2ed6df1..04aaee1b 100644
--- a/resources/scripts/admin/views/reports/ProfitLossReport.vue
+++ b/resources/scripts/admin/views/reports/ProfitLossReport.vue
@@ -92,6 +92,11 @@ import moment from 'moment'
import { useCompanyStore } from '@/scripts/admin/stores/company'
import { useI18n } from 'vue-i18n'
import { useGlobalStore } from '@/scripts/admin/stores/global'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseDatePicker from '@/scripts/components/base/BaseDatePicker.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
+import BaseMultiselect from '@/scripts/components/base-select/BaseMultiselect.vue'
const globalStore = useGlobalStore()
const companyStore = useCompanyStore()
const { t } = useI18n()
diff --git a/resources/scripts/admin/views/reports/SalesReports.vue b/resources/scripts/admin/views/reports/SalesReports.vue
index 4fed5772..5dbcc253 100644
--- a/resources/scripts/admin/views/reports/SalesReports.vue
+++ b/resources/scripts/admin/views/reports/SalesReports.vue
@@ -106,6 +106,11 @@ import moment from 'moment'
import { useCompanyStore } from '@/scripts/admin/stores/company'
import { useI18n } from 'vue-i18n'
import { useGlobalStore } from '@/scripts/admin/stores/global'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseMultiselect from '@/scripts/components/base-select/BaseMultiselect.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
+import BaseDatePicker from '@/scripts/components/base/BaseDatePicker.vue'
const { t } = useI18n()
const globalStore = useGlobalStore()
diff --git a/resources/scripts/admin/views/reports/TaxReport.vue b/resources/scripts/admin/views/reports/TaxReport.vue
index d6f53941..8220ceb3 100644
--- a/resources/scripts/admin/views/reports/TaxReport.vue
+++ b/resources/scripts/admin/views/reports/TaxReport.vue
@@ -91,6 +91,11 @@ import moment from 'moment'
import { useCompanyStore } from '@/scripts/admin/stores/company'
import { useI18n } from 'vue-i18n'
import { useGlobalStore } from '@/scripts/admin/stores/global'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseDatePicker from '@/scripts/components/base/BaseDatePicker.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
+import BaseMultiselect from '@/scripts/components/base-select/BaseMultiselect.vue'
const globalStore = useGlobalStore()
globalStore.downloadReport = downloadReport
diff --git a/resources/scripts/admin/views/reports/layout/Index.vue b/resources/scripts/admin/views/reports/layout/Index.vue
index b852fe2c..161773e1 100644
--- a/resources/scripts/admin/views/reports/layout/Index.vue
+++ b/resources/scripts/admin/views/reports/layout/Index.vue
@@ -56,6 +56,14 @@ import ExpenseReport from '../ExpensesReport.vue'
import ProfitLossReport from '../ProfitLossReport.vue'
import TaxReport from '../TaxReport.vue'
import { useGlobalStore } from '@/scripts/admin/stores/global'
+import BaseTab from '@/scripts/components/base/BaseTab.vue'
+import BaseTabGroup from '@/scripts/components/base/BaseTabGroup.vue'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseBreadcrumbItem from '@/scripts/components/base/BaseBreadcrumbItem.vue'
+import BaseBreadcrumb from '@/scripts/components/base/BaseBreadcrumb.vue'
+import BasePageHeader from '@/scripts/components/base/BasePageHeader.vue'
+import BasePage from '@/scripts/components/base/BasePage.vue'
const globalStore = useGlobalStore()
diff --git a/resources/scripts/admin/views/settings/AccountSetting.vue b/resources/scripts/admin/views/settings/AccountSetting.vue
index caa1d461..b059942e 100644
--- a/resources/scripts/admin/views/settings/AccountSetting.vue
+++ b/resources/scripts/admin/views/settings/AccountSetting.vue
@@ -110,6 +110,14 @@ import {
} from '@vuelidate/validators'
import { useVuelidate } from '@vuelidate/core'
import { useCompanyStore } from '@/scripts/admin/stores/company'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseMultiselect from '@/scripts/components/base-select/BaseMultiselect.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
+import BaseInput from '@/scripts/components/base/BaseInput.vue'
+import BaseFileUploader from '@/scripts/components/base/BaseFileUploader.vue'
+import BaseInputGrid from '@/scripts/components/base/BaseInputGrid.vue'
+import BaseSettingCard from '@/scripts/components/base/BaseSettingCard.vue'
const userStore = useUserStore()
const globalStore = useGlobalStore()
diff --git a/resources/scripts/admin/views/settings/BackupSetting.vue b/resources/scripts/admin/views/settings/BackupSetting.vue
index 3b118d6a..36233bc3 100644
--- a/resources/scripts/admin/views/settings/BackupSetting.vue
+++ b/resources/scripts/admin/views/settings/BackupSetting.vue
@@ -75,6 +75,14 @@ import { useDiskStore } from '@/scripts/admin/stores/disk'
import { useDialogStore } from '@/scripts/stores/dialog'
import { useModalStore } from '@/scripts/stores/modal'
import BackupModal from '@/scripts/admin/components/modal-components/BackupModal.vue'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseDropdownItem from '@/scripts/components/base/BaseDropdownItem.vue'
+import BaseDropdown from '@/scripts/components/base/BaseDropdown.vue'
+import BaseTable from '@/scripts/components/base/base-table/BaseTable.vue'
+import BaseMultiselect from '@/scripts/components/base-select/BaseMultiselect.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseSettingCard from '@/scripts/components/base/BaseSettingCard.vue'
const dialogStore = useDialogStore()
const backupStore = useBackupStore()
diff --git a/resources/scripts/admin/views/settings/CompanyInfoSettings.vue b/resources/scripts/admin/views/settings/CompanyInfoSettings.vue
index ade292a0..9a334e47 100644
--- a/resources/scripts/admin/views/settings/CompanyInfoSettings.vue
+++ b/resources/scripts/admin/views/settings/CompanyInfoSettings.vue
@@ -142,6 +142,16 @@ import { required, minLength, helpers } from '@vuelidate/validators'
import { useVuelidate } from '@vuelidate/core'
import { useModalStore } from '@/scripts/stores/modal'
import DeleteCompanyModal from '@/scripts/admin/components/modal-components/DeleteCompanyModal.vue'
+import BaseDivider from '@/scripts/components/base/BaseDivider.vue'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseInput from '@/scripts/components/base/BaseInput.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
+import BaseTextarea from '@/scripts/components/base/BaseTextarea.vue'
+import BaseMultiselect from '@/scripts/components/base-select/BaseMultiselect.vue'
+import BaseInputGrid from '@/scripts/components/base/BaseInputGrid.vue'
+import BaseFileUploader from '@/scripts/components/base/BaseFileUploader.vue'
+import BaseSettingCard from '@/scripts/components/base/BaseSettingCard.vue'
const companyStore = useCompanyStore()
const globalStore = useGlobalStore()
diff --git a/resources/scripts/admin/views/settings/CustomFieldsSetting.vue b/resources/scripts/admin/views/settings/CustomFieldsSetting.vue
index 016d37f9..2ba1a937 100644
--- a/resources/scripts/admin/views/settings/CustomFieldsSetting.vue
+++ b/resources/scripts/admin/views/settings/CustomFieldsSetting.vue
@@ -80,6 +80,11 @@ import { useUserStore } from '@/scripts/admin/stores/user'
import CustomFieldDropdown from '@/scripts/admin/components/dropdowns/CustomFieldIndexDropdown.vue'
import CustomFieldModal from '@/scripts/admin/components/modal-components/custom-fields/CustomFieldModal.vue'
import abilities from '@/scripts/admin/stub/abilities'
+import BaseBadge from '@/scripts/components/base/BaseBadge.vue'
+import BaseTable from '@/scripts/components/base/base-table/BaseTable.vue'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseSettingCard from '@/scripts/components/base/BaseSettingCard.vue'
const modalStore = useModalStore()
const customFieldStore = useCustomFieldStore()
diff --git a/resources/scripts/admin/views/settings/ExchangeRateProviderSetting.vue b/resources/scripts/admin/views/settings/ExchangeRateProviderSetting.vue
index 8635058e..1fd524dd 100644
--- a/resources/scripts/admin/views/settings/ExchangeRateProviderSetting.vue
+++ b/resources/scripts/admin/views/settings/ExchangeRateProviderSetting.vue
@@ -82,6 +82,11 @@ import {
TrashIcon,
} from '@heroicons/vue/outline'
import BaseTable from '@/scripts/components/base/base-table/BaseTable.vue'
+import BaseDropdownItem from '@/scripts/components/base/BaseDropdownItem.vue'
+import BaseDropdown from '@/scripts/components/base/BaseDropdown.vue'
+import BaseBadge from '@/scripts/components/base/BaseBadge.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseCard from '@/scripts/components/base/BaseCard.vue'
// store
diff --git a/resources/scripts/admin/views/settings/ExpenseCategorySetting.vue b/resources/scripts/admin/views/settings/ExpenseCategorySetting.vue
index c0db9d01..95e314cd 100644
--- a/resources/scripts/admin/views/settings/ExpenseCategorySetting.vue
+++ b/resources/scripts/admin/views/settings/ExpenseCategorySetting.vue
@@ -50,6 +50,10 @@ import { ref, computed } from 'vue'
import { useI18n } from 'vue-i18n'
import ExpenseCategoryDropdown from '@/scripts/admin/components/dropdowns/ExpenseCategoryIndexDropdown.vue'
import CategoryModal from '@/scripts/admin/components/modal-components/CategoryModal.vue'
+import BaseTable from '@/scripts/components/base/base-table/BaseTable.vue'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseSettingCard from '@/scripts/components/base/BaseSettingCard.vue'
const categoryStore = useCategoryStore()
const dialogStore = useDialogStore()
diff --git a/resources/scripts/admin/views/settings/FileDiskSetting.vue b/resources/scripts/admin/views/settings/FileDiskSetting.vue
index def115af..c046b346 100644
--- a/resources/scripts/admin/views/settings/FileDiskSetting.vue
+++ b/resources/scripts/admin/views/settings/FileDiskSetting.vue
@@ -90,6 +90,15 @@ import { useModalStore } from '@/scripts/stores/modal'
import { ref, computed, reactive, onMounted, inject } from 'vue'
import { useI18n } from 'vue-i18n'
import FileDiskModal from '@/scripts/admin/components/modal-components/FileDiskModal.vue'
+import BaseSwitchSection from '@/scripts/components/base/BaseSwitchSection.vue'
+import BaseDivider from '@/scripts/components/base/BaseDivider.vue'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseDropdownItem from '@/scripts/components/base/BaseDropdownItem.vue'
+import BaseDropdown from '@/scripts/components/base/BaseDropdown.vue'
+import BaseBadge from '@/scripts/components/base/BaseBadge.vue'
+import BaseTable from '@/scripts/components/base/base-table/BaseTable.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseSettingCard from '@/scripts/components/base/BaseSettingCard.vue'
const utils = inject('utils')
diff --git a/resources/scripts/admin/views/settings/MailConfigSetting.vue b/resources/scripts/admin/views/settings/MailConfigSetting.vue
index eb01b272..9df344ba 100644
--- a/resources/scripts/admin/views/settings/MailConfigSetting.vue
+++ b/resources/scripts/admin/views/settings/MailConfigSetting.vue
@@ -39,6 +39,8 @@ import { useMailDriverStore } from '@/scripts/admin/stores/mail-driver'
import { useModalStore } from '@/scripts/stores/modal'
import MailTestModal from '@/scripts/admin/components/modal-components/MailTestModal.vue'
import { useI18n } from 'vue-i18n'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseSettingCard from '@/scripts/components/base/BaseSettingCard.vue'
let isSaving = ref(false)
let isFetchingInitialData = ref(false)
diff --git a/resources/scripts/admin/views/settings/NotesSetting.vue b/resources/scripts/admin/views/settings/NotesSetting.vue
index 320e3d5b..e67ed20c 100644
--- a/resources/scripts/admin/views/settings/NotesSetting.vue
+++ b/resources/scripts/admin/views/settings/NotesSetting.vue
@@ -49,6 +49,10 @@ import NoteDropdown from '@/scripts/admin/components/dropdowns/NoteIndexDropdown
import NoteModal from '@/scripts/admin/components/modal-components/NoteModal.vue'
import { useUserStore } from '@/scripts/admin/stores/user'
import abilities from '@/scripts/admin/stub/abilities'
+import BaseTable from '@/scripts/components/base/base-table/BaseTable.vue'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseSettingCard from '@/scripts/components/base/BaseSettingCard.vue'
const { t } = useI18n()
diff --git a/resources/scripts/admin/views/settings/NotificationsSetting.vue b/resources/scripts/admin/views/settings/NotificationsSetting.vue
index 42d55037..82740404 100644
--- a/resources/scripts/admin/views/settings/NotificationsSetting.vue
+++ b/resources/scripts/admin/views/settings/NotificationsSetting.vue
@@ -66,6 +66,13 @@ import { useI18n } from 'vue-i18n'
import { required, email, helpers } from '@vuelidate/validators'
import useVuelidate from '@vuelidate/core'
import { useCompanyStore } from '@/scripts/admin/stores/company'
+import BaseSwitchSection from '@/scripts/components/base/BaseSwitchSection.vue'
+import BaseDivider from '@/scripts/components/base/BaseDivider.vue'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseInput from '@/scripts/components/base/BaseInput.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
+import BaseSettingCard from '@/scripts/components/base/BaseSettingCard.vue'
const companyStore = useCompanyStore()
diff --git a/resources/scripts/admin/views/settings/PaymentsModeSetting.vue b/resources/scripts/admin/views/settings/PaymentsModeSetting.vue
index e1f2b000..224b6fa7 100644
--- a/resources/scripts/admin/views/settings/PaymentsModeSetting.vue
+++ b/resources/scripts/admin/views/settings/PaymentsModeSetting.vue
@@ -44,6 +44,10 @@ import { useDialogStore } from '@/scripts/stores/dialog'
import { useModalStore } from '@/scripts/stores/modal'
import PaymentModeModal from '@/scripts/admin/components/modal-components/PaymentModeModal.vue'
import PaymentModeDropdown from '@/scripts/admin/components/dropdowns/PaymentModeIndexDropdown.vue'
+import BaseTable from '@/scripts/components/base/base-table/BaseTable.vue'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseSettingCard from '@/scripts/components/base/BaseSettingCard.vue'
const modalStore = useModalStore()
const dialogStore = useDialogStore()
diff --git a/resources/scripts/admin/views/settings/PreferencesSetting.vue b/resources/scripts/admin/views/settings/PreferencesSetting.vue
index bbd7d6d3..0b7d43aa 100644
--- a/resources/scripts/admin/views/settings/PreferencesSetting.vue
+++ b/resources/scripts/admin/views/settings/PreferencesSetting.vue
@@ -105,7 +105,7 @@
class="w-full"
/>
-
+
diff --git a/resources/scripts/admin/views/settings/customization/NumberCustomizer.vue b/resources/scripts/admin/views/settings/customization/NumberCustomizer.vue
index 5d74f306..e0401831 100644
--- a/resources/scripts/admin/views/settings/customization/NumberCustomizer.vue
+++ b/resources/scripts/admin/views/settings/customization/NumberCustomizer.vue
@@ -205,6 +205,12 @@ import { useCompanyStore } from '@/scripts/admin/stores/company'
import { useGlobalStore } from '@/scripts/admin/stores/global'
import DragIcon from '@/scripts/components/icons/DragIcon.vue'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseDropdownItem from '@/scripts/components/base/BaseDropdownItem.vue'
+import BaseDropdown from '@/scripts/components/base/BaseDropdown.vue'
+import BaseInput from '@/scripts/components/base/BaseInput.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
const props = defineProps({
type: {
diff --git a/resources/scripts/admin/views/settings/customization/estimates/EstimatesTab.vue b/resources/scripts/admin/views/settings/customization/estimates/EstimatesTab.vue
index 978cdc37..c224989a 100644
--- a/resources/scripts/admin/views/settings/customization/estimates/EstimatesTab.vue
+++ b/resources/scripts/admin/views/settings/customization/estimates/EstimatesTab.vue
@@ -36,6 +36,8 @@ import EstimatesTabEstimateNumber from './EstimatesTabEstimateNumber.vue'
import EstimatesTabExpiryDate from './EstimatesTabExpiryDate.vue'
import EstimatesTabDefaultFormats from './EstimatesTabDefaultFormats.vue'
import EstimatesTabConvertEstimate from './EstimatesTabConvertEstimate.vue'
+import BaseSwitchSection from '@/scripts/components/base/BaseSwitchSection.vue'
+import BaseDivider from '@/scripts/components/base/BaseDivider.vue'
const utils = inject('utils')
diff --git a/resources/scripts/admin/views/settings/customization/estimates/EstimatesTabConvertEstimate.vue b/resources/scripts/admin/views/settings/customization/estimates/EstimatesTabConvertEstimate.vue
index d972d4ee..5f076cf7 100644
--- a/resources/scripts/admin/views/settings/customization/estimates/EstimatesTabConvertEstimate.vue
+++ b/resources/scripts/admin/views/settings/customization/estimates/EstimatesTabConvertEstimate.vue
@@ -45,6 +45,8 @@ import { useCompanyStore } from '@/scripts/admin/stores/company'
import { required, helpers } from '@vuelidate/validators'
import { useI18n } from 'vue-i18n'
import { useGlobalStore } from '@/scripts/admin/stores/global'
+import BaseRadio from '@/scripts/components/base/BaseRadio.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
const { t, tm } = useI18n()
const companyStore = useCompanyStore()
diff --git a/resources/scripts/admin/views/settings/customization/estimates/EstimatesTabDefaultFormats.vue b/resources/scripts/admin/views/settings/customization/estimates/EstimatesTabDefaultFormats.vue
index e996a7f4..d91135e8 100644
--- a/resources/scripts/admin/views/settings/customization/estimates/EstimatesTabDefaultFormats.vue
+++ b/resources/scripts/admin/views/settings/customization/estimates/EstimatesTabDefaultFormats.vue
@@ -67,6 +67,10 @@
diff --git a/resources/scripts/customer/views/auth/ForgotPassword.vue b/resources/scripts/customer/views/auth/ForgotPassword.vue
index e4ff913e..5e26a3c5 100644
--- a/resources/scripts/customer/views/auth/ForgotPassword.vue
+++ b/resources/scripts/customer/views/auth/ForgotPassword.vue
@@ -46,6 +46,9 @@ import { useVuelidate } from '@vuelidate/core'
import { useI18n } from 'vue-i18n'
import { useAuthStore } from '@/scripts/customer/stores/auth'
import { useRouter, useRoute } from 'vue-router'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseInput from '@/scripts/components/base/BaseInput.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
// // store
const authStore = useAuthStore()
diff --git a/resources/scripts/customer/views/auth/Login.vue b/resources/scripts/customer/views/auth/Login.vue
index 87a60e23..9d4dbc98 100644
--- a/resources/scripts/customer/views/auth/Login.vue
+++ b/resources/scripts/customer/views/auth/Login.vue
@@ -77,6 +77,10 @@ import { useVuelidate } from '@vuelidate/core'
import { required, email, helpers } from '@vuelidate/validators'
import { useAuthStore } from '@/scripts/customer/stores/auth'
import { useRouter, useRoute } from 'vue-router'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseInput from '@/scripts/components/base/BaseInput.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
const router = useRouter()
const route = useRoute()
diff --git a/resources/scripts/customer/views/auth/ResetPassword.vue b/resources/scripts/customer/views/auth/ResetPassword.vue
index 8e9095d4..8e2a19ee 100644
--- a/resources/scripts/customer/views/auth/ResetPassword.vue
+++ b/resources/scripts/customer/views/auth/ResetPassword.vue
@@ -76,6 +76,10 @@ import {
import { useI18n } from 'vue-i18n'
import { useRoute, useRouter } from 'vue-router'
import { useAuthStore } from '@/scripts/customer/stores/auth'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseInput from '@/scripts/components/base/BaseInput.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
const route = useRoute()
const router = useRouter()
diff --git a/resources/scripts/customer/views/dashboard/Dashboard.vue b/resources/scripts/customer/views/dashboard/Dashboard.vue
index 2b65492b..5765de41 100644
--- a/resources/scripts/customer/views/dashboard/Dashboard.vue
+++ b/resources/scripts/customer/views/dashboard/Dashboard.vue
@@ -8,4 +8,5 @@
diff --git a/resources/scripts/customer/views/dashboard/DashboardStats.vue b/resources/scripts/customer/views/dashboard/DashboardStats.vue
index a32bb45f..b0c9ed40 100644
--- a/resources/scripts/customer/views/dashboard/DashboardStats.vue
+++ b/resources/scripts/customer/views/dashboard/DashboardStats.vue
@@ -57,6 +57,7 @@ import EstimateIcon from '@/scripts/components/icons/dashboard/EstimateIcon.vue'
import { useGlobalStore } from '@/scripts/customer/stores/global'
import { useDashboardStore } from '@/scripts/customer/stores/dashboard'
import DashboardStatsItem from '@/scripts/customer/views/dashboard/DashboardStatsItem.vue'
+import BaseFormatMoney from '@/scripts/components/base/BaseFormatMoney.vue'
//store
const utils = inject('utils')
diff --git a/resources/scripts/customer/views/dashboard/DashboardStatsPlaceholder.vue b/resources/scripts/customer/views/dashboard/DashboardStatsPlaceholder.vue
index a114818d..87d8b61d 100644
--- a/resources/scripts/customer/views/dashboard/DashboardStatsPlaceholder.vue
+++ b/resources/scripts/customer/views/dashboard/DashboardStatsPlaceholder.vue
@@ -18,3 +18,8 @@
+
diff --git a/resources/scripts/customer/views/dashboard/DashboardStatsSmPlaceholder.vue b/resources/scripts/customer/views/dashboard/DashboardStatsSmPlaceholder.vue
index 90ad7a11..23dc116f 100644
--- a/resources/scripts/customer/views/dashboard/DashboardStatsSmPlaceholder.vue
+++ b/resources/scripts/customer/views/dashboard/DashboardStatsSmPlaceholder.vue
@@ -29,3 +29,8 @@
+
diff --git a/resources/scripts/customer/views/dashboard/DashboardTable.vue b/resources/scripts/customer/views/dashboard/DashboardTable.vue
index 1c8c4c3c..625705ab 100644
--- a/resources/scripts/customer/views/dashboard/DashboardTable.vue
+++ b/resources/scripts/customer/views/dashboard/DashboardTable.vue
@@ -101,6 +101,12 @@ import { useRoute } from 'vue-router'
import { useGlobalStore } from '@/scripts/customer/stores/global'
import { useDashboardStore } from '@/scripts/customer/stores/dashboard'
import BaseTable from '@/scripts/components/base/base-table/BaseTable.vue'
+import BaseFormatMoney from '@/scripts/components/base/BaseFormatMoney.vue'
+import BaseEstimateStatusLabel from '@/scripts/components/base/BaseEstimateStatusLabel.vue'
+import BaseEstimateStatusBadge from '@/scripts/components/base/BaseEstimateStatusBadge.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseInvoiceStatusLabel from '@/scripts/components/base/BaseInvoiceStatusLabel.vue'
+import BasePaidStatusBadge from '@/scripts/components/base/BasePaidStatusBadge.vue'
// store
diff --git a/resources/scripts/customer/views/estimates/Index.vue b/resources/scripts/customer/views/estimates/Index.vue
index be06c74e..968eb1eb 100644
--- a/resources/scripts/customer/views/estimates/Index.vue
+++ b/resources/scripts/customer/views/estimates/Index.vue
@@ -143,6 +143,23 @@ import { useEstimateStore } from '@/scripts/customer/stores/estimate'
import { useRoute } from 'vue-router'
import ObservatoryIcon from '@/scripts/components/icons/empty/ObservatoryIcon.vue'
import { useI18n } from 'vue-i18n'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseDropdownItem from '@/scripts/components/base/BaseDropdownItem.vue'
+import BaseDropdown from '@/scripts/components/base/BaseDropdown.vue'
+import BaseFormatMoney from '@/scripts/components/base/BaseFormatMoney.vue'
+import BaseEstimateStatusLabel from '@/scripts/components/base/BaseEstimateStatusLabel.vue'
+import BaseEstimateStatusBadge from '@/scripts/components/base/BaseEstimateStatusBadge.vue'
+import BaseEmptyPlaceholder from '@/scripts/components/base/BaseEmptyPlaceholder.vue'
+import BaseDatePicker from '@/scripts/components/base/BaseDatePicker.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
+import BaseInput from '@/scripts/components/base/BaseInput.vue'
+import BaseSelectInput from '@/scripts/components/base/BaseSelectInput.vue'
+import BaseFilterWrapper from '@/scripts/components/base/BaseFilterWrapper.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseBreadcrumbItem from '@/scripts/components/base/BaseBreadcrumbItem.vue'
+import BaseBreadcrumb from '@/scripts/components/base/BaseBreadcrumb.vue'
+import BasePageHeader from '@/scripts/components/base/BasePageHeader.vue'
+import BasePage from '@/scripts/components/base/BasePage.vue'
const { t } = useI18n()
diff --git a/resources/scripts/customer/views/estimates/View.vue b/resources/scripts/customer/views/estimates/View.vue
index fcd920d3..5d31f038 100644
--- a/resources/scripts/customer/views/estimates/View.vue
+++ b/resources/scripts/customer/views/estimates/View.vue
@@ -229,6 +229,16 @@ import moment from 'moment'
import { useEstimateStore } from '@/scripts/customer/stores/estimate'
import { useGlobalStore } from '@/scripts/customer/stores/global'
import { useDialogStore } from '@/scripts/stores/dialog'
+import BaseFormatMoney from '@/scripts/components/base/BaseFormatMoney.vue'
+import BaseEstimateStatusLabel from '@/scripts/components/base/BaseEstimateStatusLabel.vue'
+import BaseEstimateStatusBadge from '@/scripts/components/base/BaseEstimateStatusBadge.vue'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseRadio from '@/scripts/components/base/BaseRadio.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
+import BaseInput from '@/scripts/components/base/BaseInput.vue'
+import BasePageHeader from '@/scripts/components/base/BasePageHeader.vue'
+import BasePage from '@/scripts/components/base/BasePage.vue'
// Router
const route = useRoute()
diff --git a/resources/scripts/customer/views/invoices/Index.vue b/resources/scripts/customer/views/invoices/Index.vue
index 410fadc3..642527a2 100644
--- a/resources/scripts/customer/views/invoices/Index.vue
+++ b/resources/scripts/customer/views/invoices/Index.vue
@@ -150,6 +150,23 @@ import { useGlobalStore } from '@/scripts/customer/stores/global'
import { useRoute } from 'vue-router'
import MoonwalkerIcon from '@/scripts/components/icons/empty/MoonwalkerIcon.vue'
import { useI18n } from 'vue-i18n'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseDropdownItem from '@/scripts/components/base/BaseDropdownItem.vue'
+import BaseDropdown from '@/scripts/components/base/BaseDropdown.vue'
+import BaseInvoiceStatusLabel from '@/scripts/components/base/BaseInvoiceStatusLabel.vue'
+import BaseInvoiceStatusBadge from '@/scripts/components/base/BaseInvoiceStatusBadge.vue'
+import BaseFormatMoney from '@/scripts/components/base/BaseFormatMoney.vue'
+import BaseEmptyPlaceholder from '@/scripts/components/base/BaseEmptyPlaceholder.vue'
+import BaseDatePicker from '@/scripts/components/base/BaseDatePicker.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
+import BaseInput from '@/scripts/components/base/BaseInput.vue'
+import BaseSelectInput from '@/scripts/components/base/BaseSelectInput.vue'
+import BaseFilterWrapper from '@/scripts/components/base/BaseFilterWrapper.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseBreadcrumbItem from '@/scripts/components/base/BaseBreadcrumbItem.vue'
+import BaseBreadcrumb from '@/scripts/components/base/BaseBreadcrumb.vue'
+import BasePageHeader from '@/scripts/components/base/BasePageHeader.vue'
+import BasePage from '@/scripts/components/base/BasePage.vue'
const { t } = useI18n()
diff --git a/resources/scripts/customer/views/invoices/View.vue b/resources/scripts/customer/views/invoices/View.vue
index f8161127..1329b693 100644
--- a/resources/scripts/customer/views/invoices/View.vue
+++ b/resources/scripts/customer/views/invoices/View.vue
@@ -236,6 +236,16 @@ import { useNotificationStore } from '@/scripts/stores/notification'
import moment from 'moment'
import { useInvoiceStore } from '@/scripts/customer/stores/invoice'
import { useGlobalStore } from '@/scripts/customer/stores/global'
+import BaseFormatMoney from '@/scripts/components/base/BaseFormatMoney.vue'
+import BaseInvoiceStatusLabel from '@/scripts/components/base/BaseInvoiceStatusLabel.vue'
+import BaseInvoiceStatusBadge from '@/scripts/components/base/BaseInvoiceStatusBadge.vue'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseRadio from '@/scripts/components/base/BaseRadio.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
+import BaseInput from '@/scripts/components/base/BaseInput.vue'
+import BasePageHeader from '@/scripts/components/base/BasePageHeader.vue'
+import BasePage from '@/scripts/components/base/BasePage.vue'
// Router
const route = useRoute()
diff --git a/resources/scripts/customer/views/payments/Index.vue b/resources/scripts/customer/views/payments/Index.vue
index faad1764..54c5601d 100644
--- a/resources/scripts/customer/views/payments/Index.vue
+++ b/resources/scripts/customer/views/payments/Index.vue
@@ -137,6 +137,17 @@ import { useI18n } from 'vue-i18n'
import { usePaymentStore } from '@/scripts/customer/stores/payment'
import { useGlobalStore } from '@/scripts/customer/stores/global'
import { useRoute } from 'vue-router'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseEmptyPlaceholder from '@/scripts/components/base/BaseEmptyPlaceholder.vue'
+import BaseMultiselect from '@/scripts/components/base-select/BaseMultiselect.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
+import BaseInput from '@/scripts/components/base/BaseInput.vue'
+import BaseFilterWrapper from '@/scripts/components/base/BaseFilterWrapper.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseBreadcrumbItem from '@/scripts/components/base/BaseBreadcrumbItem.vue'
+import BaseBreadcrumb from '@/scripts/components/base/BaseBreadcrumb.vue'
+import BasePageHeader from '@/scripts/components/base/BasePageHeader.vue'
+import BasePage from '@/scripts/components/base/BasePage.vue'
const { tm, t } = useI18n()
let showFilters = ref(false)
diff --git a/resources/scripts/customer/views/payments/View.vue b/resources/scripts/customer/views/payments/View.vue
index 1e03a2d1..ef24cba6 100644
--- a/resources/scripts/customer/views/payments/View.vue
+++ b/resources/scripts/customer/views/payments/View.vue
@@ -219,6 +219,14 @@ import { useNotificationStore } from '@/scripts/stores/notification'
import moment from 'moment'
import { usePaymentStore } from '@/scripts/customer/stores/payment'
import { useGlobalStore } from '@/scripts/customer/stores/global'
+import BaseFormatMoney from '@/scripts/components/base/BaseFormatMoney.vue'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseRadio from '@/scripts/components/base/BaseRadio.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
+import BaseInput from '@/scripts/components/base/BaseInput.vue'
+import BasePageHeader from '@/scripts/components/base/BasePageHeader.vue'
+import BasePage from '@/scripts/components/base/BasePage.vue'
// Router
const route = useRoute()
diff --git a/resources/scripts/customer/views/settings/AddressInformation.vue b/resources/scripts/customer/views/settings/AddressInformation.vue
index 85e47100..2fa99982 100644
--- a/resources/scripts/customer/views/settings/AddressInformation.vue
+++ b/resources/scripts/customer/views/settings/AddressInformation.vue
@@ -247,6 +247,14 @@ import { useGlobalStore } from '@/scripts/customer/stores/global'
import { useI18n } from 'vue-i18n'
import { useRoute } from 'vue-router'
import { ref } from 'vue'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseInput from '@/scripts/components/base/BaseInput.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
+import BaseTextarea from '@/scripts/components/base/BaseTextarea.vue'
+import BaseMultiselect from '@/scripts/components/base-select/BaseMultiselect.vue'
+import BaseDivider from '@/scripts/components/base/BaseDivider.vue'
+import BaseCard from '@/scripts/components/base/BaseCard.vue'
//store
diff --git a/resources/scripts/customer/views/settings/CustomerSettings.vue b/resources/scripts/customer/views/settings/CustomerSettings.vue
index e17bec8c..a7c49dac 100644
--- a/resources/scripts/customer/views/settings/CustomerSettings.vue
+++ b/resources/scripts/customer/views/settings/CustomerSettings.vue
@@ -129,6 +129,12 @@ import {
} from '@vuelidate/validators'
import { useVuelidate } from '@vuelidate/core'
import { useRoute } from 'vue-router'
+import BaseIcon from '@/scripts/components/base/BaseIcon.vue'
+import BaseButton from '@/scripts/components/base/BaseButton.vue'
+import BaseInput from '@/scripts/components/base/BaseInput.vue'
+import BaseInputGroup from '@/scripts/components/base/BaseInputGroup.vue'
+import BaseFileUploader from '@/scripts/components/base/BaseFileUploader.vue'
+import BaseCard from '@/scripts/components/base/BaseCard.vue'
const userStore = useUserStore()
const globalStore = useGlobalStore()
diff --git a/resources/scripts/customer/views/settings/SettingsIndex.vue b/resources/scripts/customer/views/settings/SettingsIndex.vue
index ea9ed3af..097402e2 100644
--- a/resources/scripts/customer/views/settings/SettingsIndex.vue
+++ b/resources/scripts/customer/views/settings/SettingsIndex.vue
@@ -68,6 +68,10 @@ import BaseListItem from '@/scripts/components/list/BaseListItem.vue'
import { OfficeBuildingIcon, UserIcon } from '@heroicons/vue/outline'
import { useGlobalStore } from '@/scripts/customer/stores/global'
import { useI18n } from 'vue-i18n'
+import BaseBreadcrumbItem from '@/scripts/components/base/BaseBreadcrumbItem.vue'
+import BaseBreadcrumb from '@/scripts/components/base/BaseBreadcrumb.vue'
+import BasePageHeader from '@/scripts/components/base/BasePageHeader.vue'
+import BasePage from '@/scripts/components/base/BasePage.vue'
const { t } = useI18n()
//route
diff --git a/resources/scripts/global-components.js b/resources/scripts/global-components.js
deleted file mode 100644
index 9808358b..00000000
--- a/resources/scripts/global-components.js
+++ /dev/null
@@ -1,33 +0,0 @@
-import { defineAsyncComponent } from 'vue'
-
-export const defineGlobalComponents = (app) => {
- const components = import.meta.glob('./components/base/*.vue', { eager: true })
-
- Object.entries(components).forEach(([path, definition]) => {
- // Get name of component, based on filename
- // "./components/Fruits.vue" will become "Fruits"
- const componentName = path
- .split('/')
- .pop()
- .replace(/\.\w+$/, '')
-
- // Register component on this Vue instance
- app.component(componentName, definition.default)
- })
-
- const BaseTable = defineAsyncComponent(() =>
- import('./components/base/base-table/BaseTable.vue')
- )
-
- const BaseMultiselect = defineAsyncComponent(() =>
- import('./components/base-select/BaseMultiselect.vue')
- )
-
- const BaseEditor = defineAsyncComponent(() =>
- import('./components/base/base-editor/BaseEditor.vue')
- )
-
- app.component('BaseTable', BaseTable)
- app.component('BaseMultiselect', BaseMultiselect)
- app.component('BaseEditor', BaseEditor)
-}