Compare commits

..

1 Commits

Author SHA1 Message Date
3defe3fa29 add dark mode in GlobalSearchBar 2023-03-28 10:45:32 +05:30
106 changed files with 588 additions and 813 deletions

View File

@ -6,17 +6,8 @@
<script setup> <script setup>
import Chart from 'chart.js' import Chart from 'chart.js'
import { import { ref, reactive, computed, onMounted, watchEffect, inject } from 'vue'
ref,
reactive,
computed,
onMounted,
watchEffect,
inject,
watch,
} from 'vue'
import { useCompanyStore } from '@/scripts/admin/stores/company' import { useCompanyStore } from '@/scripts/admin/stores/company'
import { useGlobalStore } from '@/scripts/admin/stores/global'
const utils = inject('utils') const utils = inject('utils')
@ -53,11 +44,9 @@ const props = defineProps({
}, },
}) })
const isDarkModeOn = document.documentElement.classList.contains('dark')
let myLineChart = null let myLineChart = null
const graph = ref(null) const graph = ref(null)
const companyStore = useCompanyStore() const companyStore = useCompanyStore()
const globalStore = useGlobalStore()
const defaultCurrency = computed(() => { const defaultCurrency = computed(() => {
return companyStore.selectedCompanyCurrency return companyStore.selectedCompanyCurrency
}) })
@ -71,14 +60,6 @@ watchEffect(() => {
} }
}) })
watch(
() => globalStore.isDarkModeOn,
() => {
myLineChart.reset()
updateColors()
}
)
onMounted(() => { onMounted(() => {
let context = graph.value.getContext('2d') let context = graph.value.getContext('2d')
let options = reactive({ let options = reactive({
@ -100,8 +81,6 @@ onMounted(() => {
}, },
}) })
const salesColor = globalStore.isDarkModeOn ? '#ffffff' : '#040405'
let data = reactive({ let data = reactive({
labels: props.labels, labels: props.labels,
datasets: [ datasets: [
@ -110,16 +89,16 @@ onMounted(() => {
fill: false, fill: false,
lineTension: 0.3, lineTension: 0.3,
backgroundColor: 'rgba(230, 254, 249)', backgroundColor: 'rgba(230, 254, 249)',
borderColor: salesColor, borderColor: '#040405',
borderCapStyle: 'butt', borderCapStyle: 'butt',
borderDash: [], borderDash: [],
borderDashOffset: 0.0, borderDashOffset: 0.0,
borderJoinStyle: 'miter', borderJoinStyle: 'miter',
pointBorderColor: salesColor, pointBorderColor: '#040405',
pointBackgroundColor: '#fff', pointBackgroundColor: '#fff',
pointBorderWidth: 1, pointBorderWidth: 1,
pointHoverRadius: 5, pointHoverRadius: 5,
pointHoverBackgroundColor: salesColor, pointHoverBackgroundColor: '#040405',
pointHoverBorderColor: 'rgba(220,220,220,1)', pointHoverBorderColor: 'rgba(220,220,220,1)',
pointHoverBorderWidth: 2, pointHoverBorderWidth: 2,
pointRadius: 4, pointRadius: 4,
@ -215,12 +194,4 @@ function update() {
lazy: true, lazy: true,
}) })
} }
function updateColors() {
const newColor = globalStore.isDarkModeOn ? '#ffffff' : '#040405'
myLineChart.data.datasets[0].borderColor = newColor
myLineChart.data.datasets[0].pointBorderColor = newColor
myLineChart.data.datasets[0].pointHoverBackgroundColor = newColor
}
</script> </script>

View File

@ -50,11 +50,21 @@
</BaseInputGroup> </BaseInputGroup>
</template> </template>
</ValidateEach> </ValidateEach>
<BaseModalFooter> <div
slot="footer"
class="
z-0
flex
justify-end
mt-4
pt-4
border-t border-gray-200 border-solid border-modal-bg
"
>
<BaseButton :loading="isSaving" variant="primary" type="submit"> <BaseButton :loading="isSaving" variant="primary" type="submit">
{{ $t('general.save') }} {{ $t('general.save') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseCard> </BaseCard>
</template> </template>

View File

@ -7,12 +7,11 @@
<!-- edit customField --> <!-- edit customField -->
<BaseDropdownItem <BaseDropdownItem
v-if="userStore.hasAbilities(abilities.EDIT_CUSTOM_FIELDS)" v-if="userStore.hasAbilities(abilities.EDIT_CUSTOM_FIELDS)"
v-slot="slotProps"
@click="editCustomField(row.id)" @click="editCustomField(row.id)"
> >
<BaseIcon <BaseIcon
name="PencilIcon" name="PencilIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.edit') }} {{ $t('general.edit') }}
</BaseDropdownItem> </BaseDropdownItem>
@ -20,12 +19,11 @@
<!-- delete customField --> <!-- delete customField -->
<BaseDropdownItem <BaseDropdownItem
v-if="userStore.hasAbilities(abilities.DELETE_CUSTOM_FIELDS)" v-if="userStore.hasAbilities(abilities.DELETE_CUSTOM_FIELDS)"
v-slot="slotProps"
@click="removeCustomField(row.id)" @click="removeCustomField(row.id)"
> >
<BaseIcon <BaseIcon
name="TrashIcon" name="TrashIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.delete') }} {{ $t('general.delete') }}
</BaseDropdownItem> </BaseDropdownItem>

View File

@ -12,10 +12,10 @@
v-if="userStore.hasAbilities(abilities.EDIT_CUSTOMER)" v-if="userStore.hasAbilities(abilities.EDIT_CUSTOMER)"
:to="`/admin/customers/${row.id}/edit`" :to="`/admin/customers/${row.id}/edit`"
> >
<BaseDropdownItem v-slot="slotProps"> <BaseDropdownItem>
<BaseIcon <BaseIcon
name="PencilIcon" name="PencilIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.edit') }} {{ $t('general.edit') }}
</BaseDropdownItem> </BaseDropdownItem>
@ -29,10 +29,10 @@
" "
:to="`customers/${row.id}/view`" :to="`customers/${row.id}/view`"
> >
<BaseDropdownItem v-slot="slotProps"> <BaseDropdownItem>
<BaseIcon <BaseIcon
name="EyeIcon" name="EyeIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.view') }} {{ $t('general.view') }}
</BaseDropdownItem> </BaseDropdownItem>
@ -41,12 +41,11 @@
<!-- Delete Customer --> <!-- Delete Customer -->
<BaseDropdownItem <BaseDropdownItem
v-if="userStore.hasAbilities(abilities.DELETE_CUSTOMER)" v-if="userStore.hasAbilities(abilities.DELETE_CUSTOMER)"
v-slot="slotProps"
@click="removeCustomer(row.id)" @click="removeCustomer(row.id)"
> >
<BaseIcon <BaseIcon
name="TrashIcon" name="TrashIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.delete') }} {{ $t('general.delete') }}
</BaseDropdownItem> </BaseDropdownItem>

View File

@ -10,12 +10,11 @@
<!-- Copy PDF url --> <!-- Copy PDF url -->
<BaseDropdownItem <BaseDropdownItem
v-if="route.name === 'estimates.view'" v-if="route.name === 'estimates.view'"
v-slot="slotProps"
@click="copyPdfUrl" @click="copyPdfUrl"
> >
<BaseIcon <BaseIcon
name="LinkIcon" name="LinkIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.copy_pdf_url') }} {{ $t('general.copy_pdf_url') }}
</BaseDropdownItem> </BaseDropdownItem>
@ -25,10 +24,10 @@
v-if="userStore.hasAbilities(abilities.EDIT_ESTIMATE)" v-if="userStore.hasAbilities(abilities.EDIT_ESTIMATE)"
:to="`/admin/estimates/${row.id}/edit`" :to="`/admin/estimates/${row.id}/edit`"
> >
<BaseDropdownItem v-slot="slotProps"> <BaseDropdownItem>
<BaseIcon <BaseIcon
name="PencilIcon" name="PencilIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.edit') }} {{ $t('general.edit') }}
</BaseDropdownItem> </BaseDropdownItem>
@ -37,12 +36,11 @@
<!-- Delete Estimate --> <!-- Delete Estimate -->
<BaseDropdownItem <BaseDropdownItem
v-if="userStore.hasAbilities(abilities.DELETE_ESTIMATE)" v-if="userStore.hasAbilities(abilities.DELETE_ESTIMATE)"
v-slot="slotProps"
@click="removeEstimate(row.id)" @click="removeEstimate(row.id)"
> >
<BaseIcon <BaseIcon
name="TrashIcon" name="TrashIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.delete') }} {{ $t('general.delete') }}
</BaseDropdownItem> </BaseDropdownItem>
@ -55,10 +53,10 @@
" "
:to="`estimates/${row.id}/view`" :to="`estimates/${row.id}/view`"
> >
<BaseDropdownItem v-slot="slotProps"> <BaseDropdownItem>
<BaseIcon <BaseIcon
name="EyeIcon" name="EyeIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.view') }} {{ $t('general.view') }}
</BaseDropdownItem> </BaseDropdownItem>
@ -67,12 +65,11 @@
<!-- Convert into Invoice --> <!-- Convert into Invoice -->
<BaseDropdownItem <BaseDropdownItem
v-if="userStore.hasAbilities(abilities.CREATE_INVOICE)" v-if="userStore.hasAbilities(abilities.CREATE_INVOICE)"
v-slot="slotProps"
@click="convertInToinvoice(row.id)" @click="convertInToinvoice(row.id)"
> >
<BaseIcon <BaseIcon
name="DocumentTextIcon" name="DocumentTextIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('estimates.convert_to_invoice') }} {{ $t('estimates.convert_to_invoice') }}
</BaseDropdownItem> </BaseDropdownItem>
@ -84,12 +81,11 @@
route.name !== 'estimates.view' && route.name !== 'estimates.view' &&
userStore.hasAbilities(abilities.SEND_ESTIMATE) userStore.hasAbilities(abilities.SEND_ESTIMATE)
" "
v-slot="slotProps"
@click="onMarkAsSent(row.id)" @click="onMarkAsSent(row.id)"
> >
<BaseIcon <BaseIcon
name="CheckCircleIcon" name="CheckCircleIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('estimates.mark_as_sent') }} {{ $t('estimates.mark_as_sent') }}
</BaseDropdownItem> </BaseDropdownItem>
@ -101,21 +97,20 @@
route.name !== 'estimates.view' && route.name !== 'estimates.view' &&
userStore.hasAbilities(abilities.SEND_ESTIMATE) userStore.hasAbilities(abilities.SEND_ESTIMATE)
" "
v-slot="slotProps"
@click="sendEstimate(row)" @click="sendEstimate(row)"
> >
<BaseIcon <BaseIcon
name="PaperAirplaneIcon" name="PaperAirplaneIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('estimates.send_estimate') }} {{ $t('estimates.send_estimate') }}
</BaseDropdownItem> </BaseDropdownItem>
<!-- Resend Estimate --> <!-- Resend Estimate -->
<BaseDropdownItem v-if="canResendEstimate(row)" v-slot="slotProps" @click="sendEstimate(row)"> <BaseDropdownItem v-if="canResendEstimate(row)" @click="sendEstimate(row)">
<BaseIcon <BaseIcon
name="PaperAirplaneIcon" name="PaperAirplaneIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('estimates.resend_estimate') }} {{ $t('estimates.resend_estimate') }}
</BaseDropdownItem> </BaseDropdownItem>
@ -126,12 +121,11 @@
row.status !== 'ACCEPTED' && row.status !== 'ACCEPTED' &&
userStore.hasAbilities(abilities.EDIT_ESTIMATE) userStore.hasAbilities(abilities.EDIT_ESTIMATE)
" "
v-slot="slotProps"
@click="onMarkAsAccepted(row.id)" @click="onMarkAsAccepted(row.id)"
> >
<BaseIcon <BaseIcon
name="CheckCircleIcon" name="CheckCircleIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('estimates.mark_as_accepted') }} {{ $t('estimates.mark_as_accepted') }}
</BaseDropdownItem> </BaseDropdownItem>
@ -142,12 +136,11 @@
row.status !== 'REJECTED' && row.status !== 'REJECTED' &&
userStore.hasAbilities(abilities.EDIT_ESTIMATE) userStore.hasAbilities(abilities.EDIT_ESTIMATE)
" "
v-slot="slotProps"
@click="onMarkAsRejected(row.id)" @click="onMarkAsRejected(row.id)"
> >
<BaseIcon <BaseIcon
name="XCircleIcon" name="XCircleIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('estimates.mark_as_rejected') }} {{ $t('estimates.mark_as_rejected') }}
</BaseDropdownItem> </BaseDropdownItem>

View File

@ -13,12 +13,11 @@
<!-- edit expenseCategory --> <!-- edit expenseCategory -->
<BaseDropdownItem <BaseDropdownItem
v-if="userStore.hasAbilities(abilities.EDIT_EXPENSE)" v-if="userStore.hasAbilities(abilities.EDIT_EXPENSE)"
v-slot="slotProps"
@click="editExpenseCategory(row.id)" @click="editExpenseCategory(row.id)"
> >
<BaseIcon <BaseIcon
name="PencilIcon" name="PencilIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.edit') }} {{ $t('general.edit') }}
</BaseDropdownItem> </BaseDropdownItem>
@ -26,12 +25,11 @@
<!-- delete expenseCategory --> <!-- delete expenseCategory -->
<BaseDropdownItem <BaseDropdownItem
v-if="userStore.hasAbilities(abilities.DELETE_EXPENSE)" v-if="userStore.hasAbilities(abilities.DELETE_EXPENSE)"
v-slot="slotProps"
@click="removeExpenseCategory(row.id)" @click="removeExpenseCategory(row.id)"
> >
<BaseIcon <BaseIcon
name="TrashIcon" name="TrashIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.delete') }} {{ $t('general.delete') }}
</BaseDropdownItem> </BaseDropdownItem>

View File

@ -12,10 +12,10 @@
v-if="userStore.hasAbilities(abilities.EDIT_EXPENSE)" v-if="userStore.hasAbilities(abilities.EDIT_EXPENSE)"
:to="`/admin/expenses/${row.id}/edit`" :to="`/admin/expenses/${row.id}/edit`"
> >
<BaseDropdownItem v-slot="slotProps"> <BaseDropdownItem>
<BaseIcon <BaseIcon
name="PencilIcon" name="PencilIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.edit') }} {{ $t('general.edit') }}
</BaseDropdownItem> </BaseDropdownItem>
@ -24,12 +24,11 @@
<!-- delete expense --> <!-- delete expense -->
<BaseDropdownItem <BaseDropdownItem
v-if="userStore.hasAbilities(abilities.DELETE_EXPENSE)" v-if="userStore.hasAbilities(abilities.DELETE_EXPENSE)"
v-slot="slotProps"
@click="removeExpense(row.id)" @click="removeExpense(row.id)"
> >
<BaseIcon <BaseIcon
name="TrashIcon" name="TrashIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.delete') }} {{ $t('general.delete') }}
</BaseDropdownItem> </BaseDropdownItem>

View File

@ -12,20 +12,20 @@
v-if="userStore.hasAbilities(abilities.EDIT_INVOICE)" v-if="userStore.hasAbilities(abilities.EDIT_INVOICE)"
:to="`/admin/invoices/${row.id}/edit`" :to="`/admin/invoices/${row.id}/edit`"
> >
<BaseDropdownItem v-show="row.allow_edit" v-slot="slotProps"> <BaseDropdownItem v-show="row.allow_edit">
<BaseIcon <BaseIcon
name="PencilIcon" name="PencilIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.edit') }} {{ $t('general.edit') }}
</BaseDropdownItem> </BaseDropdownItem>
</router-link> </router-link>
<!-- Copy PDF url --> <!-- Copy PDF url -->
<BaseDropdownItem v-if="route.name === 'invoices.view'" v-slot="slotProps" @click="copyPdfUrl"> <BaseDropdownItem v-if="route.name === 'invoices.view'" @click="copyPdfUrl">
<BaseIcon <BaseIcon
name="LinkIcon" name="LinkIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.copy_pdf_url') }} {{ $t('general.copy_pdf_url') }}
</BaseDropdownItem> </BaseDropdownItem>
@ -38,29 +38,29 @@
" "
:to="`/admin/invoices/${row.id}/view`" :to="`/admin/invoices/${row.id}/view`"
> >
<BaseDropdownItem v-slot="slotProps"> <BaseDropdownItem>
<BaseIcon <BaseIcon
name="EyeIcon" name="EyeIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.view') }} {{ $t('general.view') }}
</BaseDropdownItem> </BaseDropdownItem>
</router-link> </router-link>
<!-- Send Invoice Mail --> <!-- Send Invoice Mail -->
<BaseDropdownItem v-if="canSendInvoice(row)" v-slot="slotProps" @click="sendInvoice(row)"> <BaseDropdownItem v-if="canSendInvoice(row)" @click="sendInvoice(row)">
<BaseIcon <BaseIcon
name="PaperAirplaneIcon" name="PaperAirplaneIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('invoices.send_invoice') }} {{ $t('invoices.send_invoice') }}
</BaseDropdownItem> </BaseDropdownItem>
<!-- Resend Invoice --> <!-- Resend Invoice -->
<BaseDropdownItem v-if="canReSendInvoice(row)" v-slot="slotProps" @click="sendInvoice(row)"> <BaseDropdownItem v-if="canReSendInvoice(row)" @click="sendInvoice(row)">
<BaseIcon <BaseIcon
name="PaperAirplaneIcon" name="PaperAirplaneIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('invoices.resend_invoice') }} {{ $t('invoices.resend_invoice') }}
</BaseDropdownItem> </BaseDropdownItem>
@ -69,21 +69,20 @@
<router-link :to="`/admin/payments/${row.id}/create`"> <router-link :to="`/admin/payments/${row.id}/create`">
<BaseDropdownItem <BaseDropdownItem
v-if="row.status == 'SENT' && route.name !== 'invoices.view'" v-if="row.status == 'SENT' && route.name !== 'invoices.view'"
v-slot="slotProps"
> >
<BaseIcon <BaseIcon
name="CreditCardIcon" name="CreditCardIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('invoices.record_payment') }} {{ $t('invoices.record_payment') }}
</BaseDropdownItem> </BaseDropdownItem>
</router-link> </router-link>
<!-- Mark as sent Invoice --> <!-- Mark as sent Invoice -->
<BaseDropdownItem v-if="canSendInvoice(row)" v-slot="slotProps" @click="onMarkAsSent(row.id)"> <BaseDropdownItem v-if="canSendInvoice(row)" @click="onMarkAsSent(row.id)">
<BaseIcon <BaseIcon
name="CheckCircleIcon" name="CheckCircleIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('invoices.mark_as_sent') }} {{ $t('invoices.mark_as_sent') }}
</BaseDropdownItem> </BaseDropdownItem>
@ -91,12 +90,11 @@
<!-- Clone Invoice into new invoice --> <!-- Clone Invoice into new invoice -->
<BaseDropdownItem <BaseDropdownItem
v-if="userStore.hasAbilities(abilities.CREATE_INVOICE)" v-if="userStore.hasAbilities(abilities.CREATE_INVOICE)"
v-slot="slotProps"
@click="cloneInvoiceData(row)" @click="cloneInvoiceData(row)"
> >
<BaseIcon <BaseIcon
name="DocumentTextIcon" name="DocumentTextIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('invoices.clone_invoice') }} {{ $t('invoices.clone_invoice') }}
</BaseDropdownItem> </BaseDropdownItem>
@ -104,12 +102,11 @@
<!-- Delete Invoice --> <!-- Delete Invoice -->
<BaseDropdownItem <BaseDropdownItem
v-if="userStore.hasAbilities(abilities.DELETE_INVOICE)" v-if="userStore.hasAbilities(abilities.DELETE_INVOICE)"
v-slot="slotProps"
@click="removeInvoice(row.id)" @click="removeInvoice(row.id)"
> >
<BaseIcon <BaseIcon
name="TrashIcon" name="TrashIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.delete') }} {{ $t('general.delete') }}
</BaseDropdownItem> </BaseDropdownItem>

View File

@ -12,8 +12,11 @@
v-if="userStore.hasAbilities(abilities.EDIT_ITEM)" v-if="userStore.hasAbilities(abilities.EDIT_ITEM)"
:to="`/admin/items/${row.id}/edit`" :to="`/admin/items/${row.id}/edit`"
> >
<BaseDropdownItem v-slot="slotProps"> <BaseDropdownItem>
<BaseIcon name="PencilIcon" :class="slotProps.class" /> <BaseIcon
name="PencilIcon"
class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/>
{{ $t('general.edit') }} {{ $t('general.edit') }}
</BaseDropdownItem> </BaseDropdownItem>
</router-link> </router-link>
@ -21,10 +24,12 @@
<!-- delete item --> <!-- delete item -->
<BaseDropdownItem <BaseDropdownItem
v-if="userStore.hasAbilities(abilities.DELETE_ITEM)" v-if="userStore.hasAbilities(abilities.DELETE_ITEM)"
v-slot="slotProps"
@click="removeItem(row.id)" @click="removeItem(row.id)"
> >
<BaseIcon name="TrashIcon" :class="slotProps.class" /> <BaseIcon
name="TrashIcon"
class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/>
{{ $t('general.delete') }} {{ $t('general.delete') }}
</BaseDropdownItem> </BaseDropdownItem>
</BaseDropdown> </BaseDropdown>

View File

@ -10,12 +10,11 @@
<!-- edit note --> <!-- edit note -->
<BaseDropdownItem <BaseDropdownItem
v-if="userStore.hasAbilities(abilities.MANAGE_NOTE)" v-if="userStore.hasAbilities(abilities.MANAGE_NOTE)"
v-slot="slotProps"
@click="editNote(row.id)" @click="editNote(row.id)"
> >
<BaseIcon <BaseIcon
name="PencilIcon" name="PencilIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.edit') }} {{ $t('general.edit') }}
</BaseDropdownItem> </BaseDropdownItem>
@ -23,12 +22,11 @@
<!-- delete note --> <!-- delete note -->
<BaseDropdownItem <BaseDropdownItem
v-if="userStore.hasAbilities(abilities.MANAGE_NOTE)" v-if="userStore.hasAbilities(abilities.MANAGE_NOTE)"
v-slot="slotProps"
@click="removeNote(row.id)" @click="removeNote(row.id)"
> >
<BaseIcon <BaseIcon
name="TrashIcon" name="TrashIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.delete') }} {{ $t('general.delete') }}
</BaseDropdownItem> </BaseDropdownItem>

View File

@ -8,31 +8,30 @@
</template> </template>
<!-- Copy pdf url --> <!-- Copy pdf url -->
<BaseDropdownItem <BaseDropdown-item
v-if=" v-if="
route.name === 'payments.view' && route.name === 'payments.view' &&
userStore.hasAbilities(abilities.VIEW_PAYMENT) userStore.hasAbilities(abilities.VIEW_PAYMENT)
" "
v-slot="slotProps"
class="rounded-md" class="rounded-md"
@click="copyPdfUrl" @click="copyPdfUrl"
> >
<BaseIcon <BaseIcon
name="LinkIcon" name="LinkIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.copy_pdf_url') }} {{ $t('general.copy_pdf_url') }}
</BaseDropdownItem> </BaseDropdown-item>
<!-- edit payment --> <!-- edit payment -->
<router-link <router-link
v-if="userStore.hasAbilities(abilities.EDIT_PAYMENT)" v-if="userStore.hasAbilities(abilities.EDIT_PAYMENT)"
:to="`/admin/payments/${row.id}/edit`" :to="`/admin/payments/${row.id}/edit`"
> >
<BaseDropdownItem v-slot="slotProps"> <BaseDropdownItem>
<BaseIcon <BaseIcon
name="PencilIcon" name="PencilIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.edit') }} {{ $t('general.edit') }}
</BaseDropdownItem> </BaseDropdownItem>
@ -46,10 +45,10 @@
" "
:to="`/admin/payments/${row.id}/view`" :to="`/admin/payments/${row.id}/view`"
> >
<BaseDropdownItem v-slot="slotProps"> <BaseDropdownItem>
<BaseIcon <BaseIcon
name="EyeIcon" name="EyeIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.view') }} {{ $t('general.view') }}
</BaseDropdownItem> </BaseDropdownItem>
@ -62,12 +61,11 @@
route.name !== 'payments.view' && route.name !== 'payments.view' &&
userStore.hasAbilities(abilities.SEND_PAYMENT) userStore.hasAbilities(abilities.SEND_PAYMENT)
" "
v-slot="slotProps"
@click="sendPayment(row)" @click="sendPayment(row)"
> >
<BaseIcon <BaseIcon
name="PaperAirplaneIcon" name="PaperAirplaneIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('payments.send_payment') }} {{ $t('payments.send_payment') }}
</BaseDropdownItem> </BaseDropdownItem>
@ -75,12 +73,11 @@
<!-- delete payment --> <!-- delete payment -->
<BaseDropdownItem <BaseDropdownItem
v-if="userStore.hasAbilities(abilities.DELETE_PAYMENT)" v-if="userStore.hasAbilities(abilities.DELETE_PAYMENT)"
v-slot="slotProps"
@click="removePayment(row.id)" @click="removePayment(row.id)"
> >
<BaseIcon <BaseIcon
name="TrashIcon" name="TrashIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.delete') }} {{ $t('general.delete') }}
</BaseDropdownItem> </BaseDropdownItem>

View File

@ -8,19 +8,19 @@
</template> </template>
<!-- edit paymentMode --> <!-- edit paymentMode -->
<BaseDropdownItem v-slot="slotProps" @click="editPaymentMode(row.id)"> <BaseDropdownItem @click="editPaymentMode(row.id)">
<BaseIcon <BaseIcon
name="PencilIcon" name="PencilIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.edit') }} {{ $t('general.edit') }}
</BaseDropdownItem> </BaseDropdownItem>
<!-- delete paymentMode --> <!-- delete paymentMode -->
<BaseDropdownItem v-slot="slotProps" @click="removePaymentMode(row.id)"> <BaseDropdownItem @click="removePaymentMode(row.id)">
<BaseIcon <BaseIcon
name="TrashIcon" name="TrashIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.delete') }} {{ $t('general.delete') }}
</BaseDropdownItem> </BaseDropdownItem>

View File

@ -15,10 +15,10 @@
v-if="userStore.hasAbilities(abilities.EDIT_RECURRING_INVOICE)" v-if="userStore.hasAbilities(abilities.EDIT_RECURRING_INVOICE)"
:to="`/admin/recurring-invoices/${row.id}/edit`" :to="`/admin/recurring-invoices/${row.id}/edit`"
> >
<BaseDropdownItem v-slot="slotProps"> <BaseDropdownItem>
<BaseIcon <BaseIcon
name="PencilIcon" name="PencilIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.edit') }} {{ $t('general.edit') }}
</BaseDropdownItem> </BaseDropdownItem>
@ -32,10 +32,10 @@
" "
:to="`recurring-invoices/${row.id}/view`" :to="`recurring-invoices/${row.id}/view`"
> >
<BaseDropdownItem v-slot="slotProps"> <BaseDropdownItem>
<BaseIcon <BaseIcon
name="EyeIcon" name="EyeIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.view') }} {{ $t('general.view') }}
</BaseDropdownItem> </BaseDropdownItem>
@ -44,12 +44,11 @@
<!-- Delete Recurring Invoice --> <!-- Delete Recurring Invoice -->
<BaseDropdownItem <BaseDropdownItem
v-if="userStore.hasAbilities(abilities.DELETE_RECURRING_INVOICE)" v-if="userStore.hasAbilities(abilities.DELETE_RECURRING_INVOICE)"
v-slot="slotProps"
@click="removeMultipleRecurringInvoices(row.id)" @click="removeMultipleRecurringInvoices(row.id)"
> >
<BaseIcon <BaseIcon
name="TrashIcon" name="TrashIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.delete') }} {{ $t('general.delete') }}
</BaseDropdownItem> </BaseDropdownItem>

View File

@ -10,12 +10,11 @@
<!-- edit role --> <!-- edit role -->
<BaseDropdownItem <BaseDropdownItem
v-if="userStore.currentUser.is_owner" v-if="userStore.currentUser.is_owner"
v-slot="slotProps"
@click="editRole(row.id)" @click="editRole(row.id)"
> >
<BaseIcon <BaseIcon
name="PencilIcon" name="PencilIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.edit') }} {{ $t('general.edit') }}
</BaseDropdownItem> </BaseDropdownItem>
@ -23,12 +22,11 @@
<!-- delete role --> <!-- delete role -->
<BaseDropdownItem <BaseDropdownItem
v-if="userStore.currentUser.is_owner" v-if="userStore.currentUser.is_owner"
v-slot="slotProps"
@click="removeRole(row.id)" @click="removeRole(row.id)"
> >
<BaseIcon <BaseIcon
name="TrashIcon" name="TrashIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.delete') }} {{ $t('general.delete') }}
</BaseDropdownItem> </BaseDropdownItem>

View File

@ -10,12 +10,11 @@
<!-- edit tax-type --> <!-- edit tax-type -->
<BaseDropdownItem <BaseDropdownItem
v-if="userStore.hasAbilities(abilities.EDIT_TAX_TYPE)" v-if="userStore.hasAbilities(abilities.EDIT_TAX_TYPE)"
v-slot="slotProps"
@click="editTaxType(row.id)" @click="editTaxType(row.id)"
> >
<BaseIcon <BaseIcon
name="PencilIcon" name="PencilIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.edit') }} {{ $t('general.edit') }}
</BaseDropdownItem> </BaseDropdownItem>
@ -23,12 +22,11 @@
<!-- delete tax-type --> <!-- delete tax-type -->
<BaseDropdownItem <BaseDropdownItem
v-if="userStore.hasAbilities(abilities.DELETE_TAX_TYPE)" v-if="userStore.hasAbilities(abilities.DELETE_TAX_TYPE)"
v-slot="slotProps"
@click="removeTaxType(row.id)" @click="removeTaxType(row.id)"
> >
<BaseIcon <BaseIcon
name="TrashIcon" name="TrashIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.delete') }} {{ $t('general.delete') }}
</BaseDropdownItem> </BaseDropdownItem>

View File

@ -9,20 +9,20 @@
<!-- edit user --> <!-- edit user -->
<router-link :to="`/admin/users/${row.id}/edit`"> <router-link :to="`/admin/users/${row.id}/edit`">
<BaseDropdownItem v-slot="slotProps"> <BaseDropdownItem>
<BaseIcon <BaseIcon
name="PencilIcon" name="PencilIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.edit') }} {{ $t('general.edit') }}
</BaseDropdownItem> </BaseDropdownItem>
</router-link> </router-link>
<!-- delete user --> <!-- delete user -->
<BaseDropdownItem v-slot="slotProps" @click="removeUser(row.id)"> <BaseDropdownItem @click="removeUser(row.id)">
<BaseIcon <BaseIcon
name="TrashIcon" name="TrashIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
/> />
{{ $t('general.delete') }} {{ $t('general.delete') }}
</BaseDropdownItem> </BaseDropdownItem>

View File

@ -57,7 +57,9 @@
</BaseInputGroup> </BaseInputGroup>
</BaseInputGrid> </BaseInputGrid>
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
class="mr-3" class="mr-3"
variant="primary-outline" variant="primary-outline"
@ -82,7 +84,7 @@
</template> </template>
{{ $t('general.create') }} {{ $t('general.create') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -47,7 +47,15 @@
</BaseInputGrid> </BaseInputGrid>
</div> </div>
<BaseModalFooter> <div
class="
z-0
flex
justify-end
p-4
border-t border-gray-200 border-solid border-modal-bg
"
>
<BaseButton <BaseButton
type="button" type="button"
variant="primary-outline" variant="primary-outline"
@ -72,7 +80,7 @@
</template> </template>
{{ categoryStore.isEdit ? $t('general.update') : $t('general.save') }} {{ categoryStore.isEdit ? $t('general.update') : $t('general.save') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -116,7 +116,7 @@
</BaseInputGrid> </BaseInputGrid>
</div> </div>
<BaseModalFooter> <div class="z-0 flex justify-end p-4 bg-gray-50 border-modal-bg">
<BaseButton <BaseButton
class="mr-3 text-sm" class="mr-3 text-sm"
variant="primary-outline" variant="primary-outline"
@ -141,7 +141,7 @@
</template> </template>
{{ $t('general.save') }} {{ $t('general.save') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -425,7 +425,9 @@
</BaseTabGroup> </BaseTabGroup>
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
class="mr-3 text-sm" class="mr-3 text-sm"
type="button" type="button"
@ -445,7 +447,7 @@
</template> </template>
{{ $t('general.save') }} {{ $t('general.save') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -38,7 +38,7 @@
</BaseInputGroup> </BaseInputGroup>
</div> </div>
<BaseModalFooter> <div class="z-0 flex justify-end p-4 bg-gray-50 border-modal-bg">
<BaseButton <BaseButton
class="mr-3 text-sm" class="mr-3 text-sm"
variant="primary-outline" variant="primary-outline"
@ -63,7 +63,7 @@
</template> </template>
{{ $t('general.delete') }} {{ $t('general.delete') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -150,7 +150,9 @@
@Remove="removeUsedSelectedCurrencies" @Remove="removeUsedSelectedCurrencies"
/> />
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
class="mr-3" class="mr-3"
variant="primary-outline" variant="primary-outline"
@ -177,7 +179,7 @@
exchangeRateStore.isEdit ? $t('general.update') : $t('general.save') exchangeRateStore.isEdit ? $t('general.update') : $t('general.save')
}} }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -20,7 +20,15 @@
@submit="createNewDisk" @submit="createNewDisk"
> >
<template #default="slotProps"> <template #default="slotProps">
<BaseModalFooter> <div
class="
z-0
flex
justify-end
p-4
border-t border-solid border-gray-light
"
>
<BaseButton <BaseButton
class="mr-3 text-sm" class="mr-3 text-sm"
variant="primary-outline" variant="primary-outline"
@ -44,7 +52,7 @@
{{ $t('general.save') }} {{ $t('general.save') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</template> </template>
</component> </component>
</div> </div>

View File

@ -89,7 +89,9 @@
</BaseInputGroup> </BaseInputGroup>
</BaseInputGrid> </BaseInputGrid>
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
class="mr-3" class="mr-3"
variant="primary-outline" variant="primary-outline"
@ -109,7 +111,7 @@
</template> </template>
{{ itemStore.isEdit ? $t('general.update') : $t('general.save') }} {{ itemStore.isEdit ? $t('general.update') : $t('general.save') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</div> </div>
</BaseModal> </BaseModal>

View File

@ -31,7 +31,15 @@
</BaseInputGroup> </BaseInputGroup>
</div> </div>
<BaseModalFooter> <div
class="
z-0
flex
justify-end
p-4
border-t border-gray-200 border-solid border-modal-bg
"
>
<BaseButton <BaseButton
type="button" type="button"
variant="primary-outline" variant="primary-outline"
@ -58,7 +66,7 @@
itemStore.isItemUnitEdit ? $t('general.update') : $t('general.save') itemStore.isItemUnitEdit ? $t('general.update') : $t('general.save')
}} }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -62,7 +62,9 @@
</BaseInputGroup> </BaseInputGroup>
</BaseInputGrid> </BaseInputGrid>
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
variant="primary-outline" variant="primary-outline"
type="button" type="button"
@ -82,7 +84,7 @@
</template> </template>
{{ $t('general.send') }} {{ $t('general.send') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -63,7 +63,16 @@
</BaseInputGroup> </BaseInputGroup>
</BaseInputGrid> </BaseInputGrid>
</div> </div>
<BaseModalFooter> <div
class="
z-0
flex
justify-end
px-4
py-4
border-t border-solid border-gray-light
"
>
<BaseButton <BaseButton
class="mr-2" class="mr-2"
variant="primary-outline" variant="primary-outline"
@ -84,7 +93,7 @@
</template> </template>
{{ noteStore.isEdit ? $t('general.update') : $t('general.save') }} {{ noteStore.isEdit ? $t('general.update') : $t('general.save') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -29,7 +29,9 @@
</BaseInputGroup> </BaseInputGroup>
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
variant="primary-outline" variant="primary-outline"
class="mr-3" class="mr-3"
@ -54,7 +56,7 @@
: $t('general.save') : $t('general.save')
}} }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -72,7 +72,7 @@
</div> </div>
</div> </div>
<div class="border-t border-gray-200 dark:border-gray-600 py-3"> <div class="border-t border-gray-200 py-3">
<div <div
class=" class="
grid grid-cols-1 grid grid-cols-1
@ -89,7 +89,7 @@
:key="gIndex" :key="gIndex"
class="flex flex-col space-y-1" class="flex flex-col space-y-1"
> >
<p class="text-sm text-gray-500 dark:text-gray-200 border-b dark:border-gray-600 pb-1 mb-2"> <p class="text-sm text-gray-500 border-b border-gray-200 pb-1 mb-2">
{{ gIndex }} {{ gIndex }}
</p> </p>
<div <div
@ -116,7 +116,15 @@
</span> </span>
</div> </div>
</div> </div>
<BaseModalFooter> <div
class="
z-0
flex
justify-end
p-4
border-t border-solid border--200 border-modal-bg
"
>
<BaseButton <BaseButton
class="mr-3 text-sm" class="mr-3 text-sm"
variant="primary-outline" variant="primary-outline"
@ -136,7 +144,7 @@
</template> </template>
{{ !roleStore.isEdit ? $t('general.save') : $t('general.update') }} {{ !roleStore.isEdit ? $t('general.save') : $t('general.update') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -70,7 +70,7 @@
</div> </div>
</div> </div>
<BaseModalFooter> <div class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid">
<BaseButton class="mr-3" variant="primary-outline" @click="closeModal"> <BaseButton class="mr-3" variant="primary-outline" @click="closeModal">
{{ $t('general.cancel') }} {{ $t('general.cancel') }}
</BaseButton> </BaseButton>
@ -80,7 +80,7 @@
</template> </template>
{{ $t('general.choose') }} {{ $t('general.choose') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -62,7 +62,9 @@
</BaseInputGroup> </BaseInputGroup>
</BaseInputGrid> </BaseInputGrid>
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
class="mr-3" class="mr-3"
variant="primary-outline" variant="primary-outline"
@ -83,7 +85,7 @@
<BaseIcon v-if="!isLoading" name="PhotographIcon" class="h-5 mr-2" /> <BaseIcon v-if="!isLoading" name="PhotographIcon" class="h-5 mr-2" />
{{ $t('general.preview') }} {{ $t('general.preview') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
<div v-else> <div v-else>
<div class="my-6 mx-4 border border-gray-200 relative"> <div class="my-6 mx-4 border border-gray-200 relative">
@ -104,7 +106,9 @@
></iframe> ></iframe>
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
class="mr-3" class="mr-3"
variant="primary-outline" variant="primary-outline"
@ -123,7 +127,7 @@
<BaseIcon v-if="!isLoading" name="PaperAirplaneIcon" class="mr-2" /> <BaseIcon v-if="!isLoading" name="PaperAirplaneIcon" class="mr-2" />
{{ $t('general.send') }} {{ $t('general.send') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</div> </div>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -65,7 +65,9 @@
</BaseInputGroup> </BaseInputGroup>
</BaseInputGrid> </BaseInputGrid>
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
class="mr-3" class="mr-3"
variant="primary-outline" variant="primary-outline"
@ -91,7 +93,7 @@
</template> </template>
{{ $t('general.preview') }} {{ $t('general.preview') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
<div v-else> <div v-else>
<div class="my-6 mx-4 border border-gray-200 relative"> <div class="my-6 mx-4 border border-gray-200 relative">
@ -112,7 +114,9 @@
style="min-height: 500px" style="min-height: 500px"
></iframe> ></iframe>
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
class="mr-3" class="mr-3"
variant="primary-outline" variant="primary-outline"
@ -136,7 +140,7 @@
/> />
{{ $t('general.send') }} {{ $t('general.send') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</div> </div>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -65,7 +65,9 @@
</BaseInputGroup> </BaseInputGroup>
</BaseInputGrid> </BaseInputGrid>
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
class="mr-3" class="mr-3"
variant="primary-outline" variant="primary-outline"
@ -91,7 +93,7 @@
</template> </template>
{{ $t('general.preview') }} {{ $t('general.preview') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
<div v-else> <div v-else>
<div class="my-6 mx-4 border border-gray-200 relative"> <div class="my-6 mx-4 border border-gray-200 relative">
@ -112,7 +114,9 @@
style="min-height: 500px" style="min-height: 500px"
></iframe> ></iframe>
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
class="mr-3" class="mr-3"
variant="primary-outline" variant="primary-outline"
@ -136,7 +140,7 @@
/> />
{{ $t('general.send') }} {{ $t('general.send') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</div> </div>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -90,7 +90,15 @@
</BaseInputGroup> </BaseInputGroup>
</BaseInputGrid> </BaseInputGrid>
</div> </div>
<BaseModalFooter> <div
class="
z-0
flex
justify-end
p-4
border-t border-solid border--200 border-modal-bg
"
>
<BaseButton <BaseButton
class="mr-3 text-sm" class="mr-3 text-sm"
variant="primary-outline" variant="primary-outline"
@ -114,7 +122,7 @@
</template> </template>
{{ taxTypeStore.isEdit ? $t('general.update') : $t('general.save') }} {{ taxTypeStore.isEdit ? $t('general.update') : $t('general.save') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -87,7 +87,9 @@
</BaseInputGrid> </BaseInputGrid>
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
class="mr-3 text-sm" class="mr-3 text-sm"
type="button" type="button"
@ -107,7 +109,7 @@
</template> </template>
{{ $t('general.save') }} {{ $t('general.save') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -172,7 +172,15 @@
</div> </div>
</div> </div>
<BaseModalFooter> <div
class="
z-0
flex
justify-end
p-4
border-t border-solid border-gray-light border-modal-bg
"
>
<BaseButton <BaseButton
class="mr-3" class="mr-3"
type="button" type="button"
@ -199,7 +207,7 @@
!customFieldStore.isEdit ? $t('general.save') : $t('general.update') !customFieldStore.isEdit ? $t('general.save') : $t('general.update')
}} }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -153,7 +153,7 @@
<BaseSwitch v-model="set_as_default" class="flex" /> <BaseSwitch v-model="set_as_default" class="flex" />
</div> </div>
<div class="ml-4 right"> <div class="ml-4 right">
<p class="p-0 mb-1 text-base leading-snug text-black dark:text-white box-title"> <p class="p-0 mb-1 text-base leading-snug text-black box-title">
{{ $t('settings.disk.is_default') }} {{ $t('settings.disk.is_default') }}
</p> </p>
</div> </div>

View File

@ -132,7 +132,7 @@
<BaseSwitch v-model="set_as_default" class="flex" /> <BaseSwitch v-model="set_as_default" class="flex" />
</div> </div>
<div class="ml-4 right"> <div class="ml-4 right">
<p class="p-0 mb-1 text-base leading-snug text-black dark:text-white box-title"> <p class="p-0 mb-1 text-base leading-snug text-black box-title">
{{ $t('settings.disk.is_default') }} {{ $t('settings.disk.is_default') }}
</p> </p>
</div> </div>

View File

@ -63,7 +63,7 @@
</div> </div>
<div class="ml-4 right"> <div class="ml-4 right">
<p class="p-0 mb-1 text-base leading-snug text-black dark:text-white box-title"> <p class="p-0 mb-1 text-base leading-snug text-black box-title">
{{ $t('settings.disk.is_default') }} {{ $t('settings.disk.is_default') }}
</p> </p>
</div> </div>

View File

@ -134,7 +134,7 @@
<BaseSwitch v-model="set_as_default" class="flex" /> <BaseSwitch v-model="set_as_default" class="flex" />
</div> </div>
<div class="ml-4 right"> <div class="ml-4 right">
<p class="p-0 mb-1 text-base leading-snug text-black dark:text-white box-title"> <p class="p-0 mb-1 text-base leading-snug text-black box-title">
{{ $t('settings.disk.is_default') }} {{ $t('settings.disk.is_default') }}
</p> </p>
</div> </div>

View File

@ -24,8 +24,6 @@
dark:border-white/10 dark:border-white/10
" "
> >
<BaseDarkHighlight />
<router-link <router-link
to="/admin/dashboard" to="/admin/dashboard"
class=" class="
@ -74,7 +72,7 @@
v-if="hasCreateAbilities" v-if="hasCreateAbilities"
class="relative hidden float-left m-0 md:block" class="relative hidden float-left m-0 md:block"
> >
<BaseDropdown width-class="w-48" > <BaseDropdown width-class="w-48">
<template #activator> <template #activator>
<div <div
class=" class="
@ -88,21 +86,19 @@
bg-white bg-white
rounded rounded
md:h-9 md:w-9 md:h-9 md:w-9
dark:bg-gray-700 dark:border-gray-500 dark:border
" "
> >
<BaseIcon name="PlusIcon" class="w-5 h-5 text-gray-600 dark:text-white" /> <BaseIcon name="PlusIcon" class="w-5 h-5 text-gray-600" />
</div> </div>
</template> </template>
<router-link to="/admin/invoices/create"> <router-link to="/admin/invoices/create">
<BaseDropdownItem <BaseDropdownItem
v-if="userStore.hasAbilities(abilities.CREATE_INVOICE)" v-if="userStore.hasAbilities(abilities.CREATE_INVOICE)"
v-slot="slotProps"
> >
<BaseIcon <BaseIcon
name="DocumentTextIcon" name="DocumentTextIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
aria-hidden="true" aria-hidden="true"
/> />
{{ $t('invoices.new_invoice') }} {{ $t('invoices.new_invoice') }}
@ -111,11 +107,10 @@
<router-link to="/admin/estimates/create"> <router-link to="/admin/estimates/create">
<BaseDropdownItem <BaseDropdownItem
v-if="userStore.hasAbilities(abilities.CREATE_ESTIMATE)" v-if="userStore.hasAbilities(abilities.CREATE_ESTIMATE)"
v-slot="slotProps"
> >
<BaseIcon <BaseIcon
name="DocumentIcon" name="DocumentIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
aria-hidden="true" aria-hidden="true"
/> />
{{ $t('estimates.new_estimate') }} {{ $t('estimates.new_estimate') }}
@ -125,11 +120,10 @@
<router-link to="/admin/customers/create"> <router-link to="/admin/customers/create">
<BaseDropdownItem <BaseDropdownItem
v-if="userStore.hasAbilities(abilities.CREATE_CUSTOMER)" v-if="userStore.hasAbilities(abilities.CREATE_CUSTOMER)"
v-slot="slotProps"
> >
<BaseIcon <BaseIcon
name="UserIcon" name="UserIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
aria-hidden="true" aria-hidden="true"
/> />
{{ $t('customers.new_customer') }} {{ $t('customers.new_customer') }}
@ -162,20 +156,20 @@
</template> </template>
<router-link to="/admin/settings/account-settings"> <router-link to="/admin/settings/account-settings">
<BaseDropdownItem v-slot="slotProps"> <BaseDropdownItem>
<BaseIcon <BaseIcon
name="CogIcon" name="CogIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
aria-hidden="true" aria-hidden="true"
/> />
{{ $t('navigation.settings') }} {{ $t('navigation.settings') }}
</BaseDropdownItem> </BaseDropdownItem>
</router-link> </router-link>
<BaseDropdownItem v-slot="slotProps" @click="logout"> <BaseDropdownItem @click="logout">
<BaseIcon <BaseIcon
name="LogoutIcon" name="LogoutIcon"
:class="slotProps.class" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
aria-hidden="true" aria-hidden="true"
/> />
{{ $t('navigation.logout') }} {{ $t('navigation.logout') }}

View File

@ -2,23 +2,8 @@
<div> <div>
<div <div
v-if="dashboardStore.isDashboardDataLoaded" v-if="dashboardStore.isDashboardDataLoaded"
class=" class="grid grid-cols-10 mt-8 bg-white rounded shadow"
grid
grid-cols-10
mt-8
bg-white
rounded shadow
dark:text-white
dark:backdrop-blur-xl
dark:shadow-glass
dark:border
dark:bg-opacity-70
dark:border-white/10
dark:bg-gray-800
relative
"
> >
<BaseDarkHighlight />
<!-- Chart --> <!-- Chart -->
<div <div
class=" class="
@ -69,7 +54,6 @@
lg:border-t-0 lg:text-right lg:col-span-3 lg:border-t-0 lg:text-right lg:col-span-3
xl:col-span-2 xl:col-span-2
lg:grid-cols-1 lg:grid-cols-1
dark:border-white/10
" "
> >
<div class="p-6"> <div class="p-6">
@ -112,7 +96,15 @@
</span> </span>
<br /> <br />
<span <span
class="block mt-1 text-xl font-semibold leading-8 lg:text-2xl text-red-400" class="
block
mt-1
text-xl
font-semibold
leading-8
lg:text-2xl
text-red-400
"
> >
<BaseFormatMoney <BaseFormatMoney
:amount="dashboardStore.totalExpenses" :amount="dashboardStore.totalExpenses"
@ -124,10 +116,8 @@
class=" class="
col-span-3 col-span-3
p-6 p-6
border-t border-t border-gray-200 border-solid
border-gray-200 border-solid
lg:col-span-1 lg:col-span-1
dark:border-white/10
" "
> >
<span class="text-xs leading-5 lg:text-sm"> <span class="text-xs leading-5 lg:text-sm">
@ -142,7 +132,7 @@
font-semibold font-semibold
leading-8 leading-8
lg:text-2xl lg:text-2xl
text-primary-500 dark:text-primary-400 text-primary-500
" "
> >
<BaseFormatMoney <BaseFormatMoney

View File

@ -1,6 +1,6 @@
<template> <template>
<BaseContentPlaceholders <BaseContentPlaceholders
class="grid grid-cols-10 mt-8 bg-white rounded shadow dark:bg-gray-800" class="grid grid-cols-10 mt-8 bg-white rounded shadow"
> >
<!-- Chart --> <!-- Chart -->
<div <div
@ -29,7 +29,6 @@
text-center text-center
border-t border-l border-gray-200 border-solid border-t border-l border-gray-200 border-solid
lg:border-t-0 lg:text-right lg:col-span-3 lg:border-t-0 lg:text-right lg:col-span-3
dark:border-gray-600
xl:col-span-2 xl:col-span-2
lg:grid-cols-1 lg:grid-cols-1
" "
@ -78,7 +77,6 @@
col-span-3 col-span-3
p-6 p-6
border-t border-gray-200 border-solid border-t border-gray-200 border-solid
dark:border-gray-600
lg:justify-end lg:items-end lg:col-span-1 lg:justify-end lg:items-end lg:col-span-1
" "
> >

View File

@ -12,24 +12,18 @@
hover:bg-gray-50 hover:bg-gray-50
xl:p-4 xl:p-4
lg:col-span-2 lg:col-span-2
dark:backdrop-blur-xl
dark:shadow-glass
dark:border
dark:border-white/10
dark:bg-gray-800/70
" "
:class="{ 'lg:!col-span-3': large }" :class="{ 'lg:!col-span-3': large }"
:to="route" :to="route"
> >
<div> <div>
<span class="text-xl font-semibold leading-tight text-black xl:text-3xl dark:text-white"> <span class="text-xl font-semibold leading-tight text-black xl:text-3xl">
<slot /> <slot />
</span> </span>
<span class="block mt-1 text-sm leading-tight text-gray-500 xl:text-lg dark:text-gray-300"> <span class="block mt-1 text-sm leading-tight text-gray-500 xl:text-lg">
{{ label }} {{ label }}
</span> </span>
</div> </div>
<BaseDarkHighlight class="!bg-highlight/[.17] !top-5" />
<div class="flex items-center"> <div class="flex items-center">
<component :is="iconComponent" class="w-10 h-10 xl:w-12 xl:h-12" /> <component :is="iconComponent" class="w-10 h-10 xl:w-12 xl:h-12" />
</div> </div>

View File

@ -1,7 +1,7 @@
<template> <template>
<BaseContentPlaceholders <BaseContentPlaceholders
:rounded="true" :rounded="true"
class="relative flex justify-between w-full p-3 bg-white rounded shadow lg:col-span-3 xl:p-4 dark:bg-gray-800" class="relative flex justify-between w-full p-3 bg-white rounded shadow lg:col-span-3 xl:p-4"
> >
<div> <div>
<BaseContentPlaceholdersText <BaseContentPlaceholdersText

View File

@ -12,7 +12,6 @@
shadow shadow
lg:col-span-2 lg:col-span-2
xl:p-4 xl:p-4
dark:bg-gray-800
" "
> >
<div> <div>

View File

@ -130,7 +130,6 @@
mt-5 mt-5
list-none list-none
border-b-2 border-gray-200 border-solid border-b-2 border-gray-200 border-solid
dark:border-gray-600
" "
> >
<!-- Tabs --> <!-- Tabs -->

View File

@ -127,7 +127,6 @@
mt-5 mt-5
list-none list-none
border-b-2 border-gray-200 border-solid border-b-2 border-gray-200 border-solid
dark:border-gray-600
" "
> >
<!-- Tabs --> <!-- Tabs -->

View File

@ -121,7 +121,6 @@
mt-5 mt-5
list-none list-none
border-b-2 border-gray-200 border-solid border-b-2 border-gray-200 border-solid
dark:border-gray-600
" "
> >
<!-- Tabs --> <!-- Tabs -->

View File

@ -51,14 +51,14 @@
</div> </div>
</template> </template>
<BaseDropdownItem v-slot="slotProps" @click="onDownloadBckup(row.data)"> <BaseDropdownItem @click="onDownloadBckup(row.data)">
<BaseIcon name="CloudDownloadIcon" :class="slotProps.class" /> <BaseIcon name="CloudDownloadIcon" class="mr-3 text-gray-600" />
{{ $t('general.download') }} {{ $t('general.download') }}
</BaseDropdownItem> </BaseDropdownItem>
<BaseDropdownItem v-slot="slotProps" @click="onRemoveBackup(row.data)"> <BaseDropdownItem @click="onRemoveBackup(row.data)">
<BaseIcon name="TrashIcon" :class="slotProps.class" /> <BaseIcon name="TrashIcon" class="mr-3 text-gray-600" />
{{ $t('general.delete') }} {{ $t('general.delete') }}
</BaseDropdownItem> </BaseDropdownItem>
</BaseDropdown> </BaseDropdown>

View File

@ -113,10 +113,10 @@
<div v-if="companyStore.companies.length !== 1" class="py-5"> <div v-if="companyStore.companies.length !== 1" class="py-5">
<BaseDivider class="my-4" /> <BaseDivider class="my-4" />
<h3 class="text-lg leading-6 font-medium text-gray-900 dark:text-white"> <h3 class="text-lg leading-6 font-medium text-gray-900">
{{ $tc('settings.company_info.delete_company') }} {{ $tc('settings.company_info.delete_company') }}
</h3> </h3>
<div class="mt-2 max-w-xl text-sm text-gray-500 dark:text-gray-400"> <div class="mt-2 max-w-xl text-sm text-gray-500">
<p> <p>
{{ $tc('settings.company_info.delete_company_description') }} {{ $tc('settings.company_info.delete_company_description') }}
</p> </p>

View File

@ -7,7 +7,7 @@
{{ $t('settings.menu_title.exchange_rate') }} {{ $t('settings.menu_title.exchange_rate') }}
</h6> </h6>
<p <p
class="mt-2 text-sm leading-snug text-left text-gray-500 dark:text-gray-400" class="mt-2 text-sm leading-snug text-left text-gray-500"
style="max-width: 680px" style="max-width: 680px"
> >
{{ $t('settings.exchange_rate.providers_description') }} {{ $t('settings.exchange_rate.providers_description') }}

View File

@ -45,30 +45,27 @@
<BaseDropdownItem <BaseDropdownItem
v-if="!row.data.set_as_default" v-if="!row.data.set_as_default"
v-slot="slotProps"
@click="setDefaultDiskData(row.data.id)" @click="setDefaultDiskData(row.data.id)"
> >
<BaseIcon :class="slotProps.class" name="CheckCircleIcon" /> <BaseIcon class="mr-3 tetx-gray-600" name="CheckCircleIcon" />
{{ $t('settings.disk.set_default_disk') }} {{ $t('settings.disk.set_default_disk') }}
</BaseDropdownItem> </BaseDropdownItem>
<BaseDropdownItem <BaseDropdownItem
v-if="row.data.type !== 'SYSTEM'" v-if="row.data.type !== 'SYSTEM'"
v-slot="slotProps"
@click="openEditDiskModal(row.data)" @click="openEditDiskModal(row.data)"
> >
<BaseIcon name="PencilIcon" :class="slotProps.class" /> <BaseIcon name="PencilIcon" class="mr-3 text-gray-600" />
{{ $t('general.edit') }} {{ $t('general.edit') }}
</BaseDropdownItem> </BaseDropdownItem>
<BaseDropdownItem <BaseDropdownItem
v-if="row.data.type !== 'SYSTEM' && !row.data.set_as_default" v-if="row.data.type !== 'SYSTEM' && !row.data.set_as_default"
v-slot="slotProps"
@click="removeDisk(row.data.id)" @click="removeDisk(row.data.id)"
> >
<BaseIcon name="TrashIcon" :class="slotProps.class" /> <BaseIcon name="TrashIcon" class="mr-3 text-gray-600" />
{{ $t('general.delete') }} {{ $t('general.delete') }}
</BaseDropdownItem> </BaseDropdownItem>
</BaseDropdown> </BaseDropdown>

View File

@ -1,12 +1,12 @@
<template> <template>
<BaseHeading <h6 class="text-gray-900 text-lg font-medium">
type="heading-title"
:subtitle="
$t(`settings.customization.${type}s.${type}_number_format_description`)
"
>
{{ $t(`settings.customization.${type}s.${type}_number_format`) }} {{ $t(`settings.customization.${type}s.${type}_number_format`) }}
</BaseHeading> </h6>
<p class="mt-1 text-sm text-gray-500">
{{
$t(`settings.customization.${type}s.${type}_number_format_description`)
}}
</p>
<div class="overflow-x-auto"> <div class="overflow-x-auto">
<table class="w-full mt-6 table-fixed"> <table class="w-full mt-6 table-fixed">
@ -29,7 +29,6 @@
leading-5 leading-5
text-left text-gray-700 text-left text-gray-700
border-t border-b border-gray-200 border-solid border-t border-b border-gray-200 border-solid
dark:border-gray-600
" "
></th> ></th>
<th <th
@ -42,7 +41,6 @@
leading-5 leading-5
text-left text-gray-700 text-left text-gray-700
border-t border-b border-gray-200 border-solid border-t border-b border-gray-200 border-solid
dark:text-gray-300 dark:border-gray-600
" "
> >
Component Component
@ -57,7 +55,6 @@
leading-5 leading-5
text-left text-gray-700 text-left text-gray-700
border-t border-b border-gray-200 border-solid border-t border-b border-gray-200 border-solid
dark:text-gray-300 dark:border-gray-600
" "
> >
Parameter Parameter
@ -72,14 +69,13 @@
leading-5 leading-5
text-left text-gray-700 text-left text-gray-700
border-t border-b border-gray-200 border-solid border-t border-b border-gray-200 border-solid
dark:border-gray-600
" "
></th> ></th>
</tr> </tr>
</thead> </thead>
<draggable <draggable
v-model="selectedFields" v-model="selectedFields"
class="divide-y divide-gray-200 dark:divide-gray-600" class="divide-y divide-gray-200"
item-key="id" item-key="id"
tag="tbody" tag="tbody"
handle=".handle" handle=".handle"
@ -101,13 +97,12 @@
whitespace-nowrap whitespace-nowrap
mr-2 mr-2
min-w-[200px] min-w-[200px]
dark:text-primary-400
" "
> >
{{ element.label }} {{ element.label }}
</label> </label>
<p class="text-xs text-gray-500 dark:text-gray-400 mt-1"> <p class="text-xs text-gray-500 mt-1">
{{ element.description }} {{ element.description }}
</p> </p>
</td> </td>

View File

@ -1,12 +1,10 @@
<template> <template>
<BaseHeading <h6 class="text-gray-900 text-lg font-medium">
type="heading-title"
:subtitle="
$t('settings.customization.estimates.convert_estimate_description')
"
>
{{ $tc('settings.customization.estimates.convert_estimate_options') }} {{ $tc('settings.customization.estimates.convert_estimate_options') }}
</BaseHeading> </h6>
<p class="mt-1 text-sm text-gray-500">
{{ $t('settings.customization.estimates.convert_estimate_description') }}
</p>
<BaseInputGroup required> <BaseInputGroup required>
<BaseRadio <BaseRadio

View File

@ -1,13 +1,11 @@
<template> <template>
<form @submit.prevent="submitForm"> <form @submit.prevent="submitForm">
<BaseHeading <h6 class="text-gray-900 text-lg font-medium">
type="heading-title"
:subtitle="
$t('settings.customization.estimates.default_formats_description')
"
>
{{ $t('settings.customization.estimates.default_formats') }} {{ $t('settings.customization.estimates.default_formats') }}
</BaseHeading> </h6>
<p class="mt-1 text-sm text-gray-500 mb-2">
{{ $t('settings.customization.estimates.default_formats_description') }}
</p>
<BaseInputGroup <BaseInputGroup
:label=" :label="

View File

@ -1,13 +1,11 @@
<template> <template>
<form @submit.prevent="submitForm"> <form @submit.prevent="submitForm">
<BaseHeading <h6 class="text-gray-900 text-lg font-medium">
type="heading-title"
:subtitle="
$t('settings.customization.estimates.expiry_date_description')
"
>
{{ $t('settings.customization.estimates.expiry_date') }} {{ $t('settings.customization.estimates.expiry_date') }}
</BaseHeading> </h6>
<p class="mt-1 text-sm text-gray-500 mb-2">
{{ $t('settings.customization.estimates.expiry_date_description') }}
</p>
<BaseSwitchSection <BaseSwitchSection
v-model="expiryDateAutoField" v-model="expiryDateAutoField"

View File

@ -1,13 +1,11 @@
<template> <template>
<form @submit.prevent="submitForm"> <form @submit.prevent="submitForm">
<BaseHeading <h6 class="text-gray-900 text-lg font-medium">
type="heading-title"
:subtitle="
$t('settings.customization.invoices.default_formats_description')
"
>
{{ $t('settings.customization.invoices.default_formats') }} {{ $t('settings.customization.invoices.default_formats') }}
</BaseHeading> </h6>
<p class="mt-1 text-sm text-gray-500 mb-2">
{{ $t('settings.customization.invoices.default_formats_description') }}
</p>
<BaseInputGroup <BaseInputGroup
:label="$t('settings.customization.invoices.default_invoice_email_body')" :label="$t('settings.customization.invoices.default_invoice_email_body')"

View File

@ -1,13 +1,11 @@
<template> <template>
<form @submit.prevent="submitForm"> <form @submit.prevent="submitForm">
<BaseHeading <h6 class="text-gray-900 text-lg font-medium">
type="heading-title" {{ $t('settings.customization.invoices.due_date') }}
:subtitle=" </h6>
$t('settings.customization.invoices.due_date_description') <p class="mt-1 text-sm text-gray-500 mb-2">
" {{ $t('settings.customization.invoices.due_date_description') }}
> </p>
{{ $t('settings.customization.invoices.due_date') }}
</BaseHeading>
<BaseSwitchSection <BaseSwitchSection
v-model="dueDateAutoField" v-model="dueDateAutoField"

View File

@ -1,12 +1,10 @@
<template> <template>
<BaseHeading <h6 class="text-gray-900 text-lg font-medium">
type="heading-title"
:subtitle="
$t('settings.customization.invoices.retrospective_edits_description')
"
>
{{ $tc('settings.customization.invoices.retrospective_edits') }} {{ $tc('settings.customization.invoices.retrospective_edits') }}
</BaseHeading> </h6>
<p class="mt-1 text-sm text-gray-500">
{{ $t('settings.customization.invoices.retrospective_edits_description') }}
</p>
<BaseInputGroup required> <BaseInputGroup required>
<BaseRadio <BaseRadio

View File

@ -1,13 +1,11 @@
<template> <template>
<form @submit.prevent="submitForm"> <form @submit.prevent="submitForm">
<BaseHeading <h6 class="text-gray-900 text-lg font-medium">
type="heading-title"
:subtitle="
$t('settings.customization.payments.default_formats_description')
"
>
{{ $t('settings.customization.payments.default_formats') }} {{ $t('settings.customization.payments.default_formats') }}
</BaseHeading> </h6>
<p class="mt-1 text-sm text-gray-500 mb-2">
{{ $t('settings.customization.payments.default_formats_description') }}
</p>
<BaseInputGroup <BaseInputGroup
:label="$t('settings.customization.payments.default_payment_email_body')" :label="$t('settings.customization.payments.default_payment_email_body')"

View File

@ -1,23 +1,21 @@
<template> <template>
<div ref="companySwitchBar" class="relative rounded dark:text-white"> <div ref="companySwitchBar" class="relative rounded">
<CompanyModal /> <CompanyModal />
<div <div
class=" class="
flex flex
items-center items-center
justify-center justify-center
px-3 px-3
h-8 h-8
md:h-9 md:h-9
ml-2 ml-2
text-sm text-sm text-white
text-white bg-white
bg-white rounded
rounded cursor-pointer
cursor-pointer bg-opacity-20
bg-opacity-20
dark:bg-gray-700
" "
@click="isShow = !isShow" @click="isShow = !isShow"
> >
@ -40,42 +38,28 @@
> >
<div <div
v-if="isShow" v-if="isShow"
class=" class="absolute right-0 mt-2 bg-white rounded-md shadow-lg"
absolute
right-0
mt-2
bg-white
rounded-md
shadow-lg
dark:border
dark:border-white/10
dark:text-white
dark:bg-gray-800/[.95]
dark:shadow-glass
dark:backdrop-blur-xl
"
> >
<BaseDarkHighlight class="z-[-1] top-0 left-0" />
<div <div
class=" class="
overflow-y-auto overflow-y-auto
scrollbar-thin scrollbar-thin scrollbar-thumb-rounded-full
scrollbar-thumb-rounded-full w-[250px]
w-[250px] max-h-[350px] max-h-[350px]
scrollbar-thumb-gray-300 scrollbar-thumb-gray-300 scrollbar-track-gray-10
scrollbar-track-gray-10 pb-4
pb-4
" "
> >
<label <label
class=" class="
px-3 px-3
py-2 py-2
text-xs text-xs
font-semibold font-semibold
text-gray-400 text-gray-400
mb-0.5 mb-0.5
block uppercase block
uppercase
" "
> >
{{ $t('company_switcher.label') }} {{ $t('company_switcher.label') }}
@ -84,13 +68,13 @@
<div <div
v-if="companyStore.companies.length < 1" v-if="companyStore.companies.length < 1"
class=" class="
flex flex-col flex flex-col
items-center items-center
justify-center justify-center
p-2 p-2
px-3 px-3
mt-4 mt-4
text-base text-gray-400 text-base text-gray-400
" "
> >
<BaseIcon name="ExclamationCircleIcon" class="h-5 text-gray-400" /> <BaseIcon name="ExclamationCircleIcon" class="h-5 text-gray-400" />
@ -102,17 +86,14 @@
v-for="(company, index) in companyStore.companies" v-for="(company, index) in companyStore.companies"
:key="index" :key="index"
class=" class="
p-2 p-2
px-3 px-3
rounded-md rounded-md
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:text-primary-500 hover:bg-gray-100 hover:text-primary-500
dark:hover:bg-gray-700
text-gray-900
dark:text-white
" "
:class="{ :class="{
'bg-gray-100 text-primary-500 dark:bg-gray-700': 'bg-gray-100 text-primary-500':
companyStore.selectedCompany.id === company.id, companyStore.selectedCompany.id === company.id,
}" }"
@click="changeCompany(company)" @click="changeCompany(company)"
@ -120,19 +101,18 @@
<div class="flex items-center"> <div class="flex items-center">
<span <span
class=" class="
flex flex
items-center items-center
justify-center justify-center
mr-3 mr-3
overflow-hidden overflow-hidden
text-sm text-base
font-semibold font-semibold
bg-gray-200 bg-gray-200
rounded-md rounded-md
w-9 w-9
h-9 h-9
text-primary-500 text-primary-500
dark:bg-gray-900
" "
> >
<span v-if="!company.logo"> <span v-if="!company.logo">
@ -156,17 +136,15 @@
<div <div
v-if="userStore.currentUser.is_owner" v-if="userStore.currentUser.is_owner"
class=" class="
flex flex
items-center items-center
justify-center justify-center
p-4 p-4
pl-3 pl-3
border-t-2 border-t-2 border-gray-100
border-gray-100 cursor-pointer
cursor-pointer text-primary-400
text-primary-400 hover:text-primary-500
hover:text-primary-500
dark:border-gray-600
" "
@click="addNewCompany" @click="addNewCompany"
> >

View File

@ -1,5 +1,5 @@
<template> <template>
<div ref="searchBar" class="hidden rounded md:block relative dark:text-white"> <div ref="searchBar" class="hidden rounded md:block relative">
<div> <div>
<BaseInput <BaseInput
v-model="name" v-model="name"

View File

@ -15,12 +15,12 @@
v-if="label" v-if="label"
:for="id" :for="id"
:class="`font-medium ${ :class="`font-medium ${
disabled ? 'text-gray-400 cursor-not-allowed' : 'text-gray-600 dark:text-white' disabled ? 'text-gray-400 cursor-not-allowed' : 'text-gray-600'
} cursor-pointer `" } cursor-pointer `"
> >
{{ label }} {{ label }}
</label> </label>
<p v-if="description" class="text-gray-500 dark:text-gray-400">{{ description }}</p> <p v-if="description" class="text-gray-500">{{ description }}</p>
</div> </div>
</div> </div>
</template> </template>
@ -51,7 +51,7 @@ const props = defineProps({
}, },
checkboxClass: { checkboxClass: {
type: String, type: String,
default: 'w-4 h-4 border-gray-300 rounded cursor-pointer dark:bg-gray-600 dark:border-gray-500', default: 'w-4 h-4 border-gray-300 rounded cursor-pointer',
}, },
setInitialValue: { setInitialValue: {
type: Boolean, type: Boolean,

View File

@ -40,7 +40,6 @@
font-normal font-normal
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-700/60
rounded rounded
ml-1 ml-1
py-0.5 py-0.5

View File

@ -1,7 +1,7 @@
<template> <template>
<div <div
v-if="address" v-if="address"
class="text-sm font-bold leading-5 text-black non-italic space-y-1 dark:text-white" class="text-sm font-bold leading-5 text-black non-italic space-y-1"
> >
<p v-if="address?.address_street_1">{{ address?.address_street_1 }},</p> <p v-if="address?.address_street_1">{{ address?.address_street_1 }},</p>

View File

@ -20,7 +20,6 @@
border border-gray-200 border-solid border border-gray-200 border-solid
min-h-[170px] min-h-[170px]
rounded-md rounded-md
dark:border-white/10 dark:bg-gray-800/50
" "
@click.stop @click.stop
> >
@ -28,7 +27,7 @@
<BaseText <BaseText
:text="selectedCustomer.name" :text="selectedCustomer.name"
:length="30" :length="30"
class="flex-1 text-base font-medium text-left text-gray-900 dark:text-white" class="flex-1 text-base font-medium text-left text-gray-900"
/> />
<div class="flex"> <div class="flex">
<a <a
@ -193,7 +192,6 @@
border border-gray-200 border-solid border border-gray-200 border-solid
rounded-md rounded-md
min-h-[170px] min-h-[170px]
dark:border-white/10 dark:bg-gray-700/60 dark:text-white
" "
> >
<BaseIcon <BaseIcon
@ -209,12 +207,11 @@
bg-gray-200 bg-gray-200
rounded-full rounded-full
font-base font-base
dark:bg-gray-700
" "
/> />
<div class="mt-1"> <div class="mt-1">
<label class="text-lg font-medium text-gray-900 dark:text-white"> <label class="text-lg font-medium text-gray-900">
{{ $t('customers.new_customer') }} {{ $t('customers.new_customer') }}
<span class="text-red-500"> * </span> <span class="text-red-500"> * </span>
</label> </label>
@ -249,11 +246,6 @@
shadow-lg shadow-lg
ring-1 ring-black ring-opacity-5 ring-1 ring-black ring-opacity-5
bg-white bg-white
dark:border
dark:border-white/10
dark:bg-gray-800
dark:text-white
dark:shadow-glass
" "
> >
<div class="relative"> <div class="relative">
@ -273,7 +265,6 @@
overflow-auto overflow-auto
list list
border-t border-gray-200 border-t border-gray-200
dark:border-white/10
" "
> >
<li <li
@ -289,7 +280,6 @@
hover:cursor-pointer hover:bg-gray-100 hover:cursor-pointer hover:bg-gray-100
focus:outline-none focus:bg-gray-100 focus:outline-none focus:bg-gray-100
last:border-b-0 last:border-b-0
dark:border-white/10 dark:hover:bg-gray-700/30
" "
@click="selectNewCustomer(customer.id, close)" @click="selectNewCustomer(customer.id, close)"
> >
@ -309,7 +299,6 @@
bg-gray-300 bg-gray-300
rounded-full rounded-full
avatar avatar
dark:bg-gray-600
" "
> >
{{ initGenerator(customer.name) }} {{ initGenerator(customer.name) }}
@ -344,9 +333,9 @@
</li> </li>
<div <div
v-if="customerStore.customers.length === 0" v-if="customerStore.customers.length === 0"
class="flex justify-center p-5 text-gray-400 dark:text-gray-300" class="flex justify-center p-5 text-gray-400"
> >
<label class="text-base text-gray-500 cursor-pointer dark:text-gray-300"> <label class="text-base text-gray-500 cursor-pointer">
{{ $t('customers.no_customers_found') }} {{ $t('customers.no_customers_found') }}
</label> </label>
</div> </div>
@ -368,10 +357,6 @@
border-none border-none
outline-none outline-none
focus:bg-gray-300 focus:bg-gray-300
dark:bg-gray-600/70
dark:shadow-glass
dark:backdrop-blur-xl
dark:hover:bg-gray-600/80
" "
@click="openCustomerModal" @click="openCustomerModal"
> >

View File

@ -10,7 +10,7 @@
{{ label }} {{ label }}
</BaseLabel> </BaseLabel>
<p class="text-sm font-bold leading-5 text-black non-italic dark:text-white"> <p class="text-sm font-bold leading-5 text-black non-italic">
{{ value }} {{ value }}
<slot /> <slot />

View File

@ -1,3 +1,3 @@
<template> <template>
<hr class="w-full text-gray-300 dark:bg-gray-600" /> <hr class="w-full text-gray-300" />
</template> </template>

View File

@ -69,8 +69,7 @@ const props = defineProps({
}) })
const containerClasses = computed(() => { const containerClasses = computed(() => {
const baseClass = `dark:border dark:border-white/10 dark:text-white dark:bg-gray-800 dark:shadow-glass const baseClass = `origin-top-right rounded-md shadow-lg bg-white ring-1 ring-black ring-opacity-5 divide-y divide-gray-100 focus:outline-none`
origin-top-right rounded-md shadow-lg bg-white ring-1 ring-black ring-opacity-5 divide-y divide-gray-100 focus:outline-none`
return `${baseClass} ${props.containerClass}` return `${baseClass} ${props.containerClass}`
}) })

View File

@ -2,20 +2,16 @@
<MenuItem v-slot="{ active }" v-bind="$attrs"> <MenuItem v-slot="{ active }" v-bind="$attrs">
<a <a
href="#" href="#"
class="group flex items-center px-4 py-2 text-sm font-normal"
:class="[ :class="[
active active ? 'bg-gray-100 text-gray-900' : 'text-gray-700',
? 'bg-gray-100 text-gray-900 dark:text-white dark:bg-gray-700' 'group flex items-center px-4 py-2 text-sm font-normal',
: 'text-gray-700 dark:text-gray-200',
]" ]"
> >
<slot :active="active" :class="defaultIconClass" /> <slot :active="active" />
</a> </a>
</MenuItem> </MenuItem>
</template> </template>
<script setup> <script setup>
import { MenuItem } from '@headlessui/vue' import { MenuItem } from '@headlessui/vue'
const defaultIconClass =
'w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500 dark:text-gray-400 dark:group-hover:text-white'
</script> </script>

View File

@ -1,24 +1,18 @@
<template> <template>
<div class="flex flex-col items-center justify-center mt-16"> <div class="flex flex-col items-center justify-center mt-16">
<div class="relative"> <div class="flex flex-col items-center justify-center">
<BaseDarkHighlight class="bg-highlight/[.07] top-2" /> <slot></slot>
</div>
<div class="relative z-5 flex flex-col items-center"> <div class="mt-2">
<div class="flex flex-col items-center justify-center"> <label class="font-medium">{{ title }}</label>
<slot /> </div>
</div> <div class="mt-2">
<div class="mt-2"> <label class="text-gray-500">
<label class="font-medium">{{ title }}</label> {{ description }}
</div> </label>
<div class="mt-2 text-center md:text-left"> </div>
<label class="text-gray-500 dark:text-gray-400"> <div class="mt-6">
{{ description }} <slot name="actions" />
</label>
</div>
<div class="mt-6">
<slot name="actions" />
</div>
</div>
</div> </div>
</div> </div>
</template> </template>

View File

@ -1,18 +1,11 @@
<template> <template>
<div <div class="rounded-md bg-red-50 p-4">
class="
rounded-md
bg-red-50
p-4
dark:border dark:border-red-400 dark:bg-transparent
"
>
<div class="flex"> <div class="flex">
<div class="shrink-0"> <div class="shrink-0">
<XCircleIcon class="h-5 w-5 text-red-400 dark:text-red-500" aria-hidden="true" /> <XCircleIcon class="h-5 w-5 text-red-400" aria-hidden="true" />
</div> </div>
<div class="ml-3"> <div class="ml-3">
<h3 class="text-sm font-medium text-red-800 dark:text-red-500"> <h3 class="text-sm font-medium text-red-800">
{{ errorTitle }} {{ errorTitle }}
</h3> </h3>
<div class="mt-2 text-sm text-red-700"> <div class="mt-2 text-sm text-red-700">

View File

@ -21,7 +21,6 @@
group group
min-h-[100px] min-h-[100px]
bg-gray-50 bg-gray-50
dark:bg-gray-700 dark:border-gray-600
" "
:class="avatar ? 'w-32 h-32' : 'w-full'" :class="avatar ? 'w-32 h-32' : 'w-full'"
> >
@ -50,7 +49,7 @@
<a <a
href="#" href="#"
class="absolute z-30 bg-white rounded-full -bottom-3 -right-3 group dark:bg-gray-900" class="absolute z-30 bg-white rounded-full -bottom-3 -right-3 group"
@click.prevent.stop="onBrowse" @click.prevent.stop="onBrowse"
> >
<BaseIcon <BaseIcon
@ -96,7 +95,7 @@
<div <div
v-else-if="localFiles.length && avatar && !multiple" v-else-if="localFiles.length && avatar && !multiple"
class="flex w-full h-full border border-gray-200 rounded dark:border-gray-600" class="flex w-full h-full border border-gray-200 rounded"
> >
<img <img
v-if="localFiles[0].image" v-if="localFiles[0].image"
@ -170,11 +169,10 @@
-right-3 -right-3
group group
hover:border-gray-300 hover:border-gray-300
dark:border-gray-600 dark:bg-gray-900 dark:hover:border-gray-700
" "
@click.prevent.stop="onAvatarRemove(localFiles[0])" @click.prevent.stop="onAvatarRemove(localFiles[0])"
> >
<BaseIcon name="XIcon" class="h-4 text-xl leading-6 text-black dark:text-white" /> <BaseIcon name="XIcon" class="h-4 text-xl leading-6 text-black" />
</a> </a>
</div> </div>
@ -197,7 +195,6 @@
hover:border-gray-500 hover:border-gray-500
relative relative
max-w-md max-w-md
dark:border-gray-600 dark:bg-transparent dark:hover:border-gray-700
" "
@click.prevent @click.prevent
> >
@ -273,7 +270,6 @@
-right-3 -right-3
group group
hover:border-gray-300 hover:border-gray-300
dark:border-gray-600 dark:bg-gray-900 dark:hover:border-gray-700
" "
@click.prevent.stop="onFileRemove(index)" @click.prevent.stop="onFileRemove(index)"
> >
@ -297,7 +293,6 @@
hover:border-gray-500 hover:border-gray-500
relative relative
max-w-md max-w-md
dark:border-gray-600 dark:bg-gray-800 dark:hover:border-gray-700
" "
@click.prevent @click.prevent
> >
@ -373,11 +368,10 @@
-right-3 -right-3
group group
hover:border-gray-300 hover:border-gray-300
dark:border-gray-600 dark:bg-gray-900 dark:hover:border-gray-700
" "
@click.prevent.stop="onFileRemove(index)" @click.prevent.stop="onFileRemove(index)"
> >
<BaseIcon name="XIcon" class="h-4 text-xl leading-6 text-black dark:text-white" /> <BaseIcon name="XIcon" class="h-4 text-xl leading-6 text-black" />
</a> </a>
</a> </a>
</div> </div>

View File

@ -2,21 +2,6 @@
<h6 :class="typeClass"> <h6 :class="typeClass">
<slot /> <slot />
</h6> </h6>
<p
v-if="subtitle"
class="
mt-2
text-sm
leading-snug
text-gray-500
dark:text-gray-400
max-w-[680px]
"
>
{{ subtitle }}
</p>
</template> </template>
<script setup> <script setup>
@ -29,16 +14,12 @@ const props = defineProps({
return ['section-title', 'heading-title'].indexOf(value) !== -1 return ['section-title', 'heading-title'].indexOf(value) !== -1
}, },
}, },
subtitle: {
type: String,
default: '',
},
}) })
const typeClass = computed(() => { const typeClass = computed(() => {
return { return {
'text-gray-900 text-lg font-medium dark:text-white': props.type === 'heading-title', 'text-gray-900 text-lg font-medium': props.type === 'heading-title',
'text-gray-500 uppercase text-base dark:text-gray-300': props.type === 'section-title', 'text-gray-500 uppercase text-base': props.type === 'section-title',
} }
}) })
</script> </script>

View File

@ -65,7 +65,6 @@
rounded-l-md rounded-l-md
bg-gray-50 bg-gray-50
sm:text-sm sm:text-sm
dark:bg-gray-800 dark:border-gray-600 dark:text-gray-300
" "
> >
{{ addon }} {{ addon }}
@ -83,7 +82,7 @@
pointer-events-none pointer-events-none
" "
> >
<span class="text-gray-500 dark:text-white sm:text-sm "> <span class="text-gray-500 sm:text-sm">
{{ inlineAddon }} {{ inlineAddon }}
</span> </span>
</div> </div>
@ -200,7 +199,7 @@ const props = defineProps({
defaultInputClass: { defaultInputClass: {
type: String, type: String,
default: default:
'font-base block w-full sm:text-sm border-gray-200 rounded-md text-black dark:bg-gray-700 dark:border-gray-600 dark:text-white dark:placeholder-gray-500', 'font-base block w-full sm:text-sm border-gray-200 rounded-md text-black',
}, },
iconLeftClass: { iconLeftClass: {
type: String, type: String,
@ -251,8 +250,7 @@ const inputAddonClass = computed(() => {
const inputInvalidClass = computed(() => { const inputInvalidClass = computed(() => {
if (props.invalid) { if (props.invalid) {
return 'border-red-500 dark:border-red-500 ring-red-500 dark:ring-red-500 focus:ring-red-500 dark:focus:ring-red-500 focus:border-red-500 dark:focus:border-red-500 ' return 'border-red-500 ring-red-500 focus:ring-red-500 focus:border-red-500'
} }
return 'focus:ring-primary-400 focus:border-primary-400' return 'focus:ring-primary-400 focus:border-primary-400'
@ -260,7 +258,7 @@ const inputInvalidClass = computed(() => {
const inputDisabledClass = computed(() => { const inputDisabledClass = computed(() => {
if (props.disabled) { if (props.disabled) {
return `border-gray-100 bg-gray-100 !text-gray-400 dark:!text-gray-200 ring-gray-200 focus:ring-gray-200 focus:border-gray-100 dark:opacity-25 ` return `border-gray-100 bg-gray-100 !text-gray-400 ring-gray-200 focus:ring-gray-200 focus:border-gray-100`
} }
return '' return ''

View File

@ -12,7 +12,6 @@
bg-gray-200 bg-gray-200
border border-gray-200 border-solid border border-gray-200 border-solid
rounded rounded
dark:bg-gray-900/70 dark:border-gray-700
" "
> >
{{ item.name }} {{ item.name }}

View File

@ -29,21 +29,8 @@
leave-to="opacity-0" leave-to="opacity-0"
> >
<DialogOverlay <DialogOverlay
class=" class="fixed inset-0 transition-opacity bg-gray-700 bg-opacity-25"
fixed />
inset-0
transition-opacity
bg-gray-700
bg-opacity-25
dark:backdrop-blur-sm
dark:bg-gray-900/80
"
>
<BaseDarkHighlight
class="!bg-highlight/[.17] !top-1/2 -translate-y-1/2 mt-5 h-96"
:class="modalSize"
/>
</DialogOverlay>
</TransitionChild> </TransitionChild>
<!-- This element is to trick the browser into centering the modal contents. --> <!-- This element is to trick the browser into centering the modal contents. -->
@ -74,11 +61,7 @@
my-4 my-4
${modalSize} ${modalSize}
sm:w-full sm:w-full
dark:shadow-glass border-t-8 border-solid rounded shadow-xl border-primary-500`"
dark:border
dark:border-white/10
dark:bg-gray-800/90
border-t-8 border-solid rounded shadow-xl border-primary-500`"
> >
<div <div
v-if="hasHeaderSlot" v-if="hasHeaderSlot"
@ -91,8 +74,6 @@
text-lg text-lg
font-medium font-medium
text-black text-black
dark:text-white
dark:border-gray-600
border-b border-gray-200 border-solid border-b border-gray-200 border-solid
" "
> >

View File

@ -1,14 +0,0 @@
<template>
<div
class="
z-0
flex
justify-end
p-4
border-t border-gray-200 border-solid
dark:border-gray-600
"
>
<slot />
</div>
</template>

View File

@ -39,7 +39,7 @@ const props = defineProps({
inputClass: { inputClass: {
type: String, type: String,
default: default:
'font-base block w-full sm:text-sm border-gray-200 rounded-md text-black dark:bg-gray-700 dark:border-gray-600 dark:text-white dark:placeholder-gray-500', 'font-base block w-full sm:text-sm border-gray-200 rounded-md text-black',
}, },
disabled: { disabled: {
type: Boolean, type: Boolean,
@ -86,7 +86,7 @@ const currencyBindings = computed(() => {
const invalidClass = computed(() => { const invalidClass = computed(() => {
if (props.invalid) { if (props.invalid) {
return 'border-red-500 dark:border-red-500 ring-red-500 dark:ring-red-500 focus:ring-red-500 dark:focus:ring-red-500 focus:border-red-500 dark:focus:border-red-500' return 'border-red-500 ring-red-500 focus:ring-red-500 focus:border-red-500'
} }
return 'focus:ring-primary-400 focus:border-primary-400' return 'focus:ring-primary-400 focus:border-primary-400'
}) })

View File

@ -19,7 +19,7 @@
]" ]"
aria-hidden="true" aria-hidden="true"
> >
<span class="rounded-full bg-white w-1.5 h-1.5" :class="{ 'bg-white': checked }"/> <span class="rounded-full bg-white w-1.5 h-1.5" />
</span> </span>
<div class="flex flex-col ml-3"> <div class="flex flex-col ml-3">
<RadioGroupLabel <RadioGroupLabel
@ -66,11 +66,11 @@ const props = defineProps({
}, },
checkedStateClass: { checkedStateClass: {
type: String, type: String,
default: 'bg-primary-600 ', default: 'bg-primary-600',
}, },
unCheckedStateClass: { unCheckedStateClass: {
type: String, type: String,
default: 'bg-white dark:bg-transparent', default: 'bg-white ',
}, },
optionGroupActiveStateClass: { optionGroupActiveStateClass: {
type: String, type: String,
@ -78,16 +78,16 @@ const props = defineProps({
}, },
checkedStateLabelClass: { checkedStateLabelClass: {
type: String, type: String,
default: 'text-primary-900 dark:text-primary-400', default: 'text-primary-900 ',
}, },
unCheckedStateLabelClass: { unCheckedStateLabelClass: {
type: String, type: String,
default: 'text-gray-900 dark:text-white', default: 'text-gray-900',
}, },
optionGroupClass: { optionGroupClass: {
type: String, type: String,
default: default:
'h-4 w-4 mt-0.5 cursor-pointer rounded-full border flex items-center justify-center dark:border-gray-600', 'h-4 w-4 mt-0.5 cursor-pointer rounded-full border flex items-center justify-center',
}, },
optionGroupLabelClass: { optionGroupLabelClass: {
type: String, type: String,

View File

@ -11,10 +11,6 @@
bg-gray-200 bg-gray-200
cursor-pointer cursor-pointer
text-primary-400 text-primary-400
dark:bg-gray-600/70
dark:backdrop-blur-xl
dark:shadow-glass
dark:hover:bg-gray-600/80
" "
> >
<slot /> <slot />

View File

@ -12,7 +12,7 @@
> >
<ListboxLabel <ListboxLabel
v-if="label" v-if="label"
class="block text-sm not-italic font-medium text-gray-800 mb-0.5 dark:text-white" class="block text-sm not-italic font-medium text-gray-800 mb-0.5"
> >
{{ label }} {{ label }}
</ListboxLabel> </ListboxLabel>
@ -28,13 +28,14 @@
pr-10 pr-10
text-left text-left
bg-white bg-white
dark:bg-gray-700 border border-gray-200
rounded-md rounded-md
shadow-sm shadow-sm
cursor-default cursor-default
focus:outline-none focus:outline-none
focus:ring-1 focus:ring-1
focus:ring-primary-400 focus:border-primary-400 focus:ring-primary-500
focus:border-primary-500
sm:text-sm sm:text-sm
" "
> >
@ -88,7 +89,6 @@
ring-1 ring-black ring-opacity-5 ring-1 ring-black ring-opacity-5
focus:outline-none focus:outline-none
sm:text-sm sm:text-sm
dark:bg-gray-700
" "
> >
<ListboxOption <ListboxOption
@ -100,7 +100,7 @@
> >
<li <li
:class="[ :class="[
active ? 'text-white bg-primary-600' : 'text-gray-900 dark:text-white', active ? 'text-white bg-primary-600' : 'text-gray-900',
'cursor-default select-none relative py-2 pl-3 pr-9', 'cursor-default select-none relative py-2 pl-3 pr-9',
]" ]"
> >

View File

@ -11,7 +11,7 @@
mt-2 mt-2
text-sm text-sm
leading-snug leading-snug
text-left text-gray-500 dark:text-gray-400 text-left text-gray-500
max-w-[680px] max-w-[680px]
" "
> >

View File

@ -7,7 +7,7 @@
> >
<TabList <TabList
:class="[ :class="[
'flex border-b border-grey-light dark:border-gray-600', 'flex border-b border-grey-light',
'relative overflow-x-auto overflow-y-hidden', 'relative overflow-x-auto overflow-y-hidden',
'lg:pb-0 lg:ml-0', 'lg:pb-0 lg:ml-0',
]" ]"
@ -22,8 +22,8 @@
:class="[ :class="[
'px-8 py-2 text-sm leading-5 font-medium flex items-center relative border-b-2 mt-4 focus:outline-none whitespace-nowrap', 'px-8 py-2 text-sm leading-5 font-medium flex items-center relative border-b-2 mt-4 focus:outline-none whitespace-nowrap',
selected selected
? 'border-primary-400 text-black font-medium dark:text-white' ? ' border-primary-400 text-black font-medium'
: 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300 dark:text-gray-400 dark:hover:border-gray-500', : 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300',
]" ]"
> >
{{ tab.title }} {{ tab.title }}

View File

@ -45,7 +45,7 @@ const props = defineProps({
defaultInputClass: { defaultInputClass: {
type: String, type: String,
default: default:
'box-border w-full px-3 py-2 text-sm not-italic font-normal leading-snug text-left text-black placeholder-gray-400 bg-white border border-gray-200 dark:border-gray-600 border-solid rounded outline-none dark:bg-gray-700 dark:text-white', 'box-border w-full px-3 py-2 text-sm not-italic font-normal leading-snug text-left text-black placeholder-gray-400 bg-white border border-gray-200 border-solid rounded outline-none',
}, },
autosize: { autosize: {
type: Boolean, type: Boolean,

View File

@ -16,15 +16,13 @@
text-left text-left
bg-white bg-white
border border-gray-200 border border-gray-200
dark:border-gray-600
rounded-md rounded-md
min-h-[200px] min-h-[200px]
overflow-hidden overflow-hidden
dark:bg-gray-700 dark:text-white
" "
> >
<div v-if="editor" class="editor-content"> <div v-if="editor" class="editor-content">
<div class="flex justify-end p-2 border-b border-gray-200 dark:border-gray-600 md:hidden"> <div class="flex justify-end p-2 border-b border-gray-200 md:hidden">
<BaseDropdown width-class="w-48"> <BaseDropdown width-class="w-48">
<template #activator> <template #activator>
<div <div
@ -44,7 +42,7 @@
<dots-vertical-icon class="w-6 h-6 text-gray-600" /> <dots-vertical-icon class="w-6 h-6 text-gray-600" />
</div> </div>
</template> </template>
<div class="flex flex-wrap space-x-1 dark:text-white"> <div class="flex flex-wrap space-x-1">
<span <span
class=" class="
flex flex
@ -55,9 +53,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive('bold') }" :class="{ 'bg-gray-200': editor.isActive('bold') }"
@click="editor.chain().focus().toggleBold().run()" @click="editor.chain().focus().toggleBold().run()"
> >
<bold-icon class="h-3 cursor-pointer fill-current" /> <bold-icon class="h-3 cursor-pointer fill-current" />
@ -72,9 +69,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive('italic') }" :class="{ 'bg-gray-200': editor.isActive('italic') }"
@click="editor.chain().focus().toggleItalic().run()" @click="editor.chain().focus().toggleItalic().run()"
> >
<italic-icon class="h-3 cursor-pointer fill-current" /> <italic-icon class="h-3 cursor-pointer fill-current" />
@ -89,9 +85,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive('strike') }" :class="{ 'bg-gray-200': editor.isActive('strike') }"
@click="editor.chain().focus().toggleStrike().run()" @click="editor.chain().focus().toggleStrike().run()"
> >
<strikethrough-icon class="h-3 cursor-pointer fill-current" /> <strikethrough-icon class="h-3 cursor-pointer fill-current" />
@ -106,9 +101,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive('code') }" :class="{ 'bg-gray-200': editor.isActive('code') }"
@click="editor.chain().focus().toggleCode().run()" @click="editor.chain().focus().toggleCode().run()"
> >
<coding-icon class="h-3 cursor-pointer fill-current" /> <coding-icon class="h-3 cursor-pointer fill-current" />
@ -123,9 +117,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive('paragraph') }" :class="{ 'bg-gray-200': editor.isActive('paragraph') }"
@click="editor.chain().focus().setParagraph().run()" @click="editor.chain().focus().setParagraph().run()"
> >
<paragraph-icon class="h-3 cursor-pointer fill-current" /> <paragraph-icon class="h-3 cursor-pointer fill-current" />
@ -140,10 +133,9 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ :class="{
'bg-gray-200 dark:bg-gray-900': editor.isActive('heading', { level: 1 }), 'bg-gray-200': editor.isActive('heading', { level: 1 }),
}" }"
@click="editor.chain().focus().toggleHeading({ level: 1 }).run()" @click="editor.chain().focus().toggleHeading({ level: 1 }).run()"
> >
@ -159,10 +151,9 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ :class="{
'bg-gray-200 dark:bg-gray-900': editor.isActive('heading', { level: 2 }), 'bg-gray-200': editor.isActive('heading', { level: 2 }),
}" }"
@click="editor.chain().focus().toggleHeading({ level: 2 }).run()" @click="editor.chain().focus().toggleHeading({ level: 2 }).run()"
> >
@ -178,10 +169,9 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ :class="{
'bg-gray-200 dark:bg-gray-900': editor.isActive('heading', { level: 3 }), 'bg-gray-200': editor.isActive('heading', { level: 3 }),
}" }"
@click="editor.chain().focus().toggleHeading({ level: 3 }).run()" @click="editor.chain().focus().toggleHeading({ level: 3 }).run()"
> >
@ -198,9 +188,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive('bulletList') }" :class="{ 'bg-gray-200': editor.isActive('bulletList') }"
@click="editor.chain().focus().toggleBulletList().run()" @click="editor.chain().focus().toggleBulletList().run()"
> >
<list-ul-icon class="h-3 cursor-pointer fill-current" /> <list-ul-icon class="h-3 cursor-pointer fill-current" />
@ -215,9 +204,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive('orderedList') }" :class="{ 'bg-gray-200': editor.isActive('orderedList') }"
@click="editor.chain().focus().toggleOrderedList().run()" @click="editor.chain().focus().toggleOrderedList().run()"
> >
<list-icon class="h-3 cursor-pointer fill-current" /> <list-icon class="h-3 cursor-pointer fill-current" />
@ -232,9 +220,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive('blockquote') }" :class="{ 'bg-gray-200': editor.isActive('blockquote') }"
@click="editor.chain().focus().toggleBlockquote().run()" @click="editor.chain().focus().toggleBlockquote().run()"
> >
<quote-icon class="h-3 cursor-pointer fill-current" /> <quote-icon class="h-3 cursor-pointer fill-current" />
@ -249,9 +236,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive('codeBlock') }" :class="{ 'bg-gray-200': editor.isActive('codeBlock') }"
@click="editor.chain().focus().toggleCodeBlock().run()" @click="editor.chain().focus().toggleCodeBlock().run()"
> >
<code-block-icon class="h-3 cursor-pointer fill-current" /> <code-block-icon class="h-3 cursor-pointer fill-current" />
@ -266,9 +252,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive('undo') }" :class="{ 'bg-gray-200': editor.isActive('undo') }"
@click="editor.chain().focus().undo().run()" @click="editor.chain().focus().undo().run()"
> >
<undo-icon class="h-3 cursor-pointer fill-current" /> <undo-icon class="h-3 cursor-pointer fill-current" />
@ -283,9 +268,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive('redo') }" :class="{ 'bg-gray-200': editor.isActive('redo') }"
@click="editor.chain().focus().redo().run()" @click="editor.chain().focus().redo().run()"
> >
<redo-icon class="h-3 cursor-pointer fill-current" /> <redo-icon class="h-3 cursor-pointer fill-current" />
@ -293,7 +277,7 @@
</div> </div>
</BaseDropdown> </BaseDropdown>
</div> </div>
<div class="hidden p-2 border-b border-gray-200 dark:border-gray-600 md:flex"> <div class="hidden p-2 border-b border-gray-200 md:flex">
<div class="flex flex-wrap space-x-1"> <div class="flex flex-wrap space-x-1">
<span <span
class=" class="
@ -305,9 +289,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive('bold') }" :class="{ 'bg-gray-200': editor.isActive('bold') }"
@click="editor.chain().focus().toggleBold().run()" @click="editor.chain().focus().toggleBold().run()"
> >
<bold-icon class="h-3 cursor-pointer fill-current" /> <bold-icon class="h-3 cursor-pointer fill-current" />
@ -322,9 +305,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive('italic') }" :class="{ 'bg-gray-200': editor.isActive('italic') }"
@click="editor.chain().focus().toggleItalic().run()" @click="editor.chain().focus().toggleItalic().run()"
> >
<italic-icon class="h-3 cursor-pointer fill-current" /> <italic-icon class="h-3 cursor-pointer fill-current" />
@ -339,9 +321,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive('strike') }" :class="{ 'bg-gray-200': editor.isActive('strike') }"
@click="editor.chain().focus().toggleStrike().run()" @click="editor.chain().focus().toggleStrike().run()"
> >
<strikethrough-icon class="h-3 cursor-pointer fill-current" /> <strikethrough-icon class="h-3 cursor-pointer fill-current" />
@ -356,9 +337,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive('code') }" :class="{ 'bg-gray-200': editor.isActive('code') }"
@click="editor.chain().focus().toggleCode().run()" @click="editor.chain().focus().toggleCode().run()"
> >
<coding-icon class="h-3 cursor-pointer fill-current" /> <coding-icon class="h-3 cursor-pointer fill-current" />
@ -373,9 +353,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive('paragraph') }" :class="{ 'bg-gray-200': editor.isActive('paragraph') }"
@click="editor.chain().focus().setParagraph().run()" @click="editor.chain().focus().setParagraph().run()"
> >
<paragraph-icon class="h-3 cursor-pointer fill-current" /> <paragraph-icon class="h-3 cursor-pointer fill-current" />
@ -390,9 +369,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive('heading', { level: 1 }) }" :class="{ 'bg-gray-200': editor.isActive('heading', { level: 1 }) }"
@click="editor.chain().focus().toggleHeading({ level: 1 }).run()" @click="editor.chain().focus().toggleHeading({ level: 1 }).run()"
> >
H1 H1
@ -407,9 +385,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive('heading', { level: 2 }) }" :class="{ 'bg-gray-200': editor.isActive('heading', { level: 2 }) }"
@click="editor.chain().focus().toggleHeading({ level: 2 }).run()" @click="editor.chain().focus().toggleHeading({ level: 2 }).run()"
> >
H2 H2
@ -424,9 +401,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive('heading', { level: 3 }) }" :class="{ 'bg-gray-200': editor.isActive('heading', { level: 3 }) }"
@click="editor.chain().focus().toggleHeading({ level: 3 }).run()" @click="editor.chain().focus().toggleHeading({ level: 3 }).run()"
> >
H3 H3
@ -442,9 +418,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive('bulletList') }" :class="{ 'bg-gray-200': editor.isActive('bulletList') }"
@click="editor.chain().focus().toggleBulletList().run()" @click="editor.chain().focus().toggleBulletList().run()"
> >
<list-ul-icon class="h-3 cursor-pointer fill-current" /> <list-ul-icon class="h-3 cursor-pointer fill-current" />
@ -459,9 +434,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive('orderedList') }" :class="{ 'bg-gray-200': editor.isActive('orderedList') }"
@click="editor.chain().focus().toggleOrderedList().run()" @click="editor.chain().focus().toggleOrderedList().run()"
> >
<list-icon class="h-3 cursor-pointer fill-current" /> <list-icon class="h-3 cursor-pointer fill-current" />
@ -476,9 +450,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive('blockquote') }" :class="{ 'bg-gray-200': editor.isActive('blockquote') }"
@click="editor.chain().focus().toggleBlockquote().run()" @click="editor.chain().focus().toggleBlockquote().run()"
> >
<quote-icon class="h-3 cursor-pointer fill-current" /> <quote-icon class="h-3 cursor-pointer fill-current" />
@ -493,9 +466,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive('codeBlock') }" :class="{ 'bg-gray-200': editor.isActive('codeBlock') }"
@click="editor.chain().focus().toggleCodeBlock().run()" @click="editor.chain().focus().toggleCodeBlock().run()"
> >
<code-block-icon class="h-3 cursor-pointer fill-current" /> <code-block-icon class="h-3 cursor-pointer fill-current" />
@ -510,9 +482,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive('undo') }" :class="{ 'bg-gray-200': editor.isActive('undo') }"
@click="editor.chain().focus().undo().run()" @click="editor.chain().focus().undo().run()"
> >
<undo-icon class="h-3 cursor-pointer fill-current" /> <undo-icon class="h-3 cursor-pointer fill-current" />
@ -527,9 +498,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive('redo') }" :class="{ 'bg-gray-200': editor.isActive('redo') }"
@click="editor.chain().focus().redo().run()" @click="editor.chain().focus().redo().run()"
> >
<redo-icon class="h-3 cursor-pointer fill-current" /> <redo-icon class="h-3 cursor-pointer fill-current" />
@ -544,9 +514,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive({ textAlign: 'left' }) }" :class="{ 'bg-gray-200': editor.isActive({ textAlign: 'left' }) }"
@click="editor.chain().focus().setTextAlign('left').run()" @click="editor.chain().focus().setTextAlign('left').run()"
> >
<menu-alt2-icon class="h-5 cursor-pointer fill-current" /> <menu-alt2-icon class="h-5 cursor-pointer fill-current" />
@ -561,9 +530,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive({ textAlign: 'right' }) }" :class="{ 'bg-gray-200': editor.isActive({ textAlign: 'right' }) }"
@click="editor.chain().focus().setTextAlign('right').run()" @click="editor.chain().focus().setTextAlign('right').run()"
> >
<menu-alt3-icon class="h-5 cursor-pointer fill-current" /> <menu-alt3-icon class="h-5 cursor-pointer fill-current" />
@ -578,10 +546,9 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ :class="{
'bg-gray-200 dark:bg-gray-900': editor.isActive({ textAlign: 'justify' }), 'bg-gray-200': editor.isActive({ textAlign: 'justify' }),
}" }"
@click="editor.chain().focus().setTextAlign('justify').run()" @click="editor.chain().focus().setTextAlign('justify').run()"
> >
@ -597,9 +564,8 @@
rounded-sm rounded-sm
cursor-pointer cursor-pointer
hover:bg-gray-100 hover:bg-gray-100
dark:hover:bg-gray-800
" "
:class="{ 'bg-gray-200 dark:bg-gray-900': editor.isActive({ textAlign: 'center' }) }" :class="{ 'bg-gray-200': editor.isActive({ textAlign: 'center' }) }"
@click="editor.chain().focus().setTextAlign('center').run()" @click="editor.chain().focus().setTextAlign('center').run()"
> >
<menu-center-icon class="h-5 cursor-pointer fill-current" /> <menu-center-icon class="h-5 cursor-pointer fill-current" />

View File

@ -7,18 +7,11 @@
relative relative
overflow-hidden overflow-hidden
bg-white bg-white
border-b border-b border-gray-200
border-gray-200
shadow shadow
sm:rounded-lg sm:rounded-lg
dark:shadow-glass "
dark:border
dark:border-white/10
dark:bg-gray-800/70
"
> >
<BaseDarkHighlight v-if="darkHighlight" class="z-[-1]" />
<slot name="header" /> <slot name="header" />
<table :class="tableClass"> <table :class="tableClass">
<thead :class="theadClass"> <thead :class="theadClass">
@ -58,11 +51,7 @@
<tr <tr
v-for="placeRow in placeholderCount" v-for="placeRow in placeholderCount"
:key="placeRow" :key="placeRow"
:class=" :class="placeRow % 2 === 0 ? 'bg-white' : 'bg-gray-50'"
placeRow % 2 === 0
? 'bg-white dark:bg-gray-800'
: 'bg-gray-50 dark:bg-gray-800'
"
> >
<td <td
v-for="column in columns" v-for="column in columns"
@ -86,11 +75,7 @@
<tr <tr
v-for="(row, index) in sortedRows" v-for="(row, index) in sortedRows"
:key="index" :key="index"
:class=" :class="index % 2 === 0 ? 'bg-white' : 'bg-gray-50'"
index % 2 === 0
? 'bg-white dark:bg-transparent'
: 'bg-gray-50 dark:bg-gray-700/20 dark:border-y dark:border-gray-600'
"
> >
<td <td
v-for="column in columns" v-for="column in columns"
@ -118,10 +103,7 @@
justify-center justify-center
w-full w-full
h-full h-full
bg-white bg-white bg-opacity-60
bg-opacity-60
dark:bg-gray-700
dark:bg-opacity-60
" "
> >
<SpinnerIcon class="w-10 h-10 text-primary-500" /> <SpinnerIcon class="w-10 h-10 text-primary-500" />
@ -181,12 +163,9 @@ const props = defineProps({
sortOrder: { type: String, default: '' }, sortOrder: { type: String, default: '' },
tableClass: { tableClass: {
type: String, type: String,
default: 'min-w-full divide-y divide-gray-200 dark:divide-gray-600', default: 'min-w-full divide-y divide-gray-200',
},
theadClass: {
type: String,
default: 'bg-gray-50 dark:bg-gray-800 dark:text-white',
}, },
theadClass: { type: String, default: 'bg-gray-50' },
tbodyClass: { type: String, default: '' }, tbodyClass: { type: String, default: '' },
noResultsMessage: { noResultsMessage: {
type: String, type: String,
@ -207,10 +186,6 @@ const props = defineProps({
type: Number, type: Number,
default: 3, default: 3,
}, },
darkHighlight: {
type: Boolean,
default: false,
},
}) })
let rows = reactive([]) let rows = reactive([])
@ -261,7 +236,7 @@ function getColumn(columnName) {
function getThClass(column) { function getThClass(column) {
let classes = let classes =
'whitespace-nowrap px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:text-white' 'whitespace-nowrap px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider'
if (column.defaultThClass) { if (column.defaultThClass) {
classes = column.defaultThClass classes = column.defaultThClass
@ -281,8 +256,7 @@ function getThClass(column) {
} }
function getTdClass(column) { function getTdClass(column) {
let classes = let classes = 'px-6 py-4 text-sm text-gray-500 whitespace-nowrap'
'px-6 py-4 text-sm text-gray-500 whitespace-nowrap dark:text-gray-300'
if (column.defaultTdClass) { if (column.defaultTdClass) {
classes = column.defaultTdClass classes = column.defaultTdClass
@ -335,7 +309,6 @@ function changeSorting(column) {
} }
if (!usesLocalData.value) { if (!usesLocalData.value) {
if (pagination.value) pagination.value.currentPage = 1
mapDataToRows() mapDataToRows()
} }
} }
@ -353,9 +326,7 @@ async function pageChange(page) {
await mapDataToRows() await mapDataToRows()
} }
async function refresh(isPreservePage = false) { async function refresh() {
if (pagination.value && !isPreservePage) pagination.value.currentPage = 1
await mapDataToRows() await mapDataToRows()
} }

View File

@ -10,14 +10,13 @@
bg-white bg-white
border-t border-gray-200 border-t border-gray-200
sm:px-6 sm:px-6
dark:bg-transparent dark:border-white/10
" "
> >
<div class="flex justify-between flex-1 sm:hidden"> <div class="flex justify-between flex-1 sm:hidden">
<a <a
href="#" href="#"
:class="{ :class="{
'disabled cursor-normal pointer-events-none !bg-gray-100 !text-gray-400 dark:!bg-gray-800 dark:!text-gray-500': 'disabled cursor-normal pointer-events-none !bg-gray-100 !text-gray-400':
pagination.currentPage === 1, pagination.currentPage === 1,
}" }"
class=" class="
@ -33,7 +32,6 @@
border border-gray-300 border border-gray-300
rounded-md rounded-md
hover:bg-gray-50 hover:bg-gray-50
dark:bg-gray-800 dark:border-gray-600 dark:text-gray-300
" "
@click="pageClicked(pagination.currentPage - 1)" @click="pageClicked(pagination.currentPage - 1)"
> >
@ -42,7 +40,7 @@
<a <a
href="#" href="#"
:class="{ :class="{
'disabled cursor-default pointer-events-none !bg-gray-100 !text-gray-400 dark:!bg-gray-800 dark:!text-gray-500': 'disabled cursor-default pointer-events-none !bg-gray-100 !text-gray-400':
pagination.currentPage === pagination.totalPages, pagination.currentPage === pagination.totalPages,
}" }"
class=" class="
@ -59,7 +57,6 @@
border border-gray-300 border border-gray-300
rounded-md rounded-md
hover:bg-gray-50 hover:bg-gray-50
dark:bg-gray-800 dark:border-gray-600 dark:text-gray-300
" "
@click="pageClicked(pagination.currentPage + 1)" @click="pageClicked(pagination.currentPage + 1)"
> >
@ -68,12 +65,12 @@
</div> </div>
<div class="hidden sm:flex-1 sm:flex sm:items-center sm:justify-between"> <div class="hidden sm:flex-1 sm:flex sm:items-center sm:justify-between">
<div> <div>
<p class="text-sm text-gray-700 dark:text-gray-400"> <p class="text-sm text-gray-700">
Showing Showing
{{ ' ' }} {{ ' ' }}
<span <span
v-if="pagination.limit && pagination.currentPage" v-if="pagination.limit && pagination.currentPage"
class="font-medium dark:text-gray-200" class="font-medium"
> >
{{ {{
pagination.currentPage * pagination.limit - (pagination.limit - 1) pagination.currentPage * pagination.limit - (pagination.limit - 1)
@ -84,7 +81,7 @@
{{ ' ' }} {{ ' ' }}
<span <span
v-if="pagination.limit && pagination.currentPage" v-if="pagination.limit && pagination.currentPage"
class="font-medium dark:text-gray-200" class="font-medium"
> >
<span <span
v-if=" v-if="
@ -101,7 +98,7 @@
{{ ' ' }} {{ ' ' }}
of of
{{ ' ' }} {{ ' ' }}
<span v-if="pagination.totalCount" class="font-medium dark:text-gray-200"> <span v-if="pagination.totalCount" class="font-medium">
{{ pagination.totalCount }} {{ pagination.totalCount }}
</span> </span>
{{ ' ' }} {{ ' ' }}
@ -116,7 +113,7 @@
<a <a
href="#" href="#"
:class="{ :class="{
'disabled cursor-normal pointer-events-none !bg-gray-100 !text-gray-400 dark:!bg-gray-800 dark:!text-gray-500': 'disabled cursor-normal pointer-events-none !bg-gray-100 !text-gray-400':
pagination.currentPage === 1, pagination.currentPage === 1,
}" }"
class=" class="
@ -132,7 +129,6 @@
border border-gray-300 border border-gray-300
rounded-l-md rounded-l-md
hover:bg-gray-50 hover:bg-gray-50
dark:border-gray-600 dark:bg-gray-800 dark:text-gray-300
" "
@click="pageClicked(pagination.currentPage - 1)" @click="pageClicked(pagination.currentPage - 1)"
> >
@ -144,9 +140,9 @@
href="#" href="#"
aria-current="page" aria-current="page"
:class="{ :class="{
'z-10 bg-primary-50 border-primary-500 text-primary-600 dark:bg-primary-500 dark:text-white': 'z-10 bg-primary-50 border-primary-500 text-primary-600':
isActive(1), isActive(1),
'bg-white border-gray-300 text-gray-500 hover:bg-gray-50 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-300': 'bg-white border-gray-300 text-gray-500 hover:bg-gray-50':
!isActive(1), !isActive(1),
}" }"
class=" class="
@ -177,7 +173,6 @@
text-gray-700 text-gray-700
bg-white bg-white
border border-gray-300 border border-gray-300
dark:border-gray-600 dark:bg-gray-800 dark:text-gray-300
" "
> >
... ...
@ -187,9 +182,9 @@
:key="page" :key="page"
href="#" href="#"
:class="{ :class="{
'z-10 bg-primary-50 border-primary-500 text-primary-600 dark:bg-primary-500 dark:text-white': 'z-10 bg-primary-50 border-primary-500 text-primary-600':
isActive(page), isActive(page),
'bg-white border-gray-300 text-gray-500 hover:bg-gray-50 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-300': 'bg-white border-gray-300 text-gray-500 hover:bg-gray-50':
!isActive(page), !isActive(page),
disabled: page === '...', disabled: page === '...',
}" }"
@ -225,7 +220,6 @@
text-gray-700 text-gray-700
bg-white bg-white
border border-gray-300 border border-gray-300
dark:border-gray-600 dark:bg-gray-800 dark:text-gray-300
" "
> >
... ...
@ -235,9 +229,9 @@
href="#" href="#"
aria-current="page" aria-current="page"
:class="{ :class="{
'z-10 bg-primary-50 border-primary-500 text-primary-600 dark:bg-primary-500 dark:text-white': 'z-10 bg-primary-50 border-primary-500 text-primary-600':
isActive(pagination.totalPages), isActive(pagination.totalPages),
'bg-white border-gray-300 text-gray-500 hover:bg-gray-50 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-300': 'bg-white border-gray-300 text-gray-500 hover:bg-gray-50':
!isActive(pagination.totalPages), !isActive(pagination.totalPages),
}" }"
class=" class="
@ -269,10 +263,9 @@
border border-gray-300 border border-gray-300
rounded-r-md rounded-r-md
hover:bg-gray-50 hover:bg-gray-50
dark:border-gray-600 dark:bg-gray-800 dark:text-gray-300
" "
:class="{ :class="{
'disabled cursor-default pointer-events-none !bg-gray-100 !text-gray-400 dark:!bg-gray-800 dark:!text-gray-500': 'disabled cursor-default pointer-events-none !bg-gray-100 !text-gray-400':
pagination.currentPage === pagination.totalPages, pagination.currentPage === pagination.totalPages,
}" }"
@click="pageClicked(pagination.currentPage + 1)" @click="pageClicked(pagination.currentPage + 1)"

View File

@ -3,26 +3,23 @@
width="50" width="50"
height="50" height="50"
viewBox="0 0 50 50" viewBox="0 0 50 50"
:class="colorClass"
fill="none" fill="none"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
> >
<circle cx="25" cy="25" r="25" :class="bgColor" /> <circle cx="25" cy="25" r="25" fill="#EAF1FB" />
<path <path
d="M28.2656 23.0547C27.3021 24.0182 26.1302 24.5 24.75 24.5C23.3698 24.5 22.1849 24.0182 21.1953 23.0547C20.2318 22.0651 19.75 20.8802 19.75 19.5C19.75 18.1198 20.2318 16.9479 21.1953 15.9844C22.1849 14.9948 23.3698 14.5 24.75 14.5C26.1302 14.5 27.3021 14.9948 28.2656 15.9844C29.2552 16.9479 29.75 18.1198 29.75 19.5C29.75 20.8802 29.2552 22.0651 28.2656 23.0547ZM28.2656 25.75C29.6979 25.75 30.9219 26.2708 31.9375 27.3125C32.9792 28.3281 33.5 29.5521 33.5 30.9844V32.625C33.5 33.1458 33.3177 33.5885 32.9531 33.9531C32.5885 34.3177 32.1458 34.5 31.625 34.5H17.875C17.3542 34.5 16.9115 34.3177 16.5469 33.9531C16.1823 33.5885 16 33.1458 16 32.625V30.9844C16 29.5521 16.5078 28.3281 17.5234 27.3125C18.5651 26.2708 19.8021 25.75 21.2344 25.75H21.8984C22.8099 26.1667 23.7604 26.375 24.75 26.375C25.7396 26.375 26.6901 26.1667 27.6016 25.75H28.2656Z" d="M28.2656 23.0547C27.3021 24.0182 26.1302 24.5 24.75 24.5C23.3698 24.5 22.1849 24.0182 21.1953 23.0547C20.2318 22.0651 19.75 20.8802 19.75 19.5C19.75 18.1198 20.2318 16.9479 21.1953 15.9844C22.1849 14.9948 23.3698 14.5 24.75 14.5C26.1302 14.5 27.3021 14.9948 28.2656 15.9844C29.2552 16.9479 29.75 18.1198 29.75 19.5C29.75 20.8802 29.2552 22.0651 28.2656 23.0547ZM28.2656 25.75C29.6979 25.75 30.9219 26.2708 31.9375 27.3125C32.9792 28.3281 33.5 29.5521 33.5 30.9844V32.625C33.5 33.1458 33.3177 33.5885 32.9531 33.9531C32.5885 34.3177 32.1458 34.5 31.625 34.5H17.875C17.3542 34.5 16.9115 34.3177 16.5469 33.9531C16.1823 33.5885 16 33.1458 16 32.625V30.9844C16 29.5521 16.5078 28.3281 17.5234 27.3125C18.5651 26.2708 19.8021 25.75 21.2344 25.75H21.8984C22.8099 26.1667 23.7604 26.375 24.75 26.375C25.7396 26.375 26.6901 26.1667 27.6016 25.75H28.2656Z"
:class="color" fill="currentColor"
/> />
</svg> </svg>
</template> </template>
<script setup> <script setup>
const props = defineProps({ const props = defineProps({
color: { colorClass: {
type: String, type: String,
default: 'fill-primary-500 dark:fill-white', default: 'text-primary-500',
},
bgColor: {
type: String,
default: 'fill-gray-100 dark:fill-primary-400',
}, },
}) })
</script> </script>

View File

@ -6,24 +6,10 @@
fill="none" fill="none"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
> >
<circle :class="bgColor" cx="25" cy="25" r="25" /> <circle cx="25" cy="25" r="25" fill="#FDE4E5" />
<path <path
:class="color"
d="M27.2031 23.6016C28.349 23.9401 29.2083 24.6562 29.7812 25.75C30.3802 26.8438 30.4714 27.9766 30.0547 29.1484C29.7422 30.0078 29.2083 30.6979 28.4531 31.2188C27.6979 31.7135 26.8516 31.974 25.9141 32V33.875C25.9141 34.0573 25.849 34.2005 25.7188 34.3047C25.6146 34.4349 25.4714 34.5 25.2891 34.5H24.0391C23.8568 34.5 23.7005 34.4349 23.5703 34.3047C23.4661 34.2005 23.4141 34.0573 23.4141 33.875V32C22.1641 32 21.0443 31.6094 20.0547 30.8281C19.8984 30.6979 19.8073 30.5417 19.7812 30.3594C19.7552 30.1771 19.8203 30.0208 19.9766 29.8906L21.3047 28.5625C21.5651 28.3281 21.8255 28.3021 22.0859 28.4844C22.4766 28.7448 22.9193 28.875 23.4141 28.875H25.9922C26.3307 28.875 26.6042 28.7708 26.8125 28.5625C27.0469 28.3281 27.1641 28.0417 27.1641 27.7031C27.1641 27.1302 26.8906 26.7656 26.3438 26.6094L22.3203 25.4375C21.4349 25.1771 20.6927 24.7083 20.0938 24.0312C19.4948 23.3542 19.1432 22.5729 19.0391 21.6875C18.9349 20.4115 19.2995 19.3177 20.1328 18.4062C20.9922 17.4688 22.0599 17 23.3359 17H23.4141V15.125C23.4141 14.9427 23.4661 14.7995 23.5703 14.6953C23.7005 14.5651 23.8568 14.5 24.0391 14.5H25.2891C25.4714 14.5 25.6146 14.5651 25.7188 14.6953C25.849 14.7995 25.9141 14.9427 25.9141 15.125V17C27.1641 17 28.2839 17.3906 29.2734 18.1719C29.4297 18.3021 29.5208 18.4583 29.5469 18.6406C29.5729 18.8229 29.5078 18.9792 29.3516 19.1094L28.0234 20.4375C27.763 20.6719 27.5026 20.6979 27.2422 20.5156C26.8516 20.2552 26.4089 20.125 25.9141 20.125H23.3359C22.9974 20.125 22.7109 20.2422 22.4766 20.4766C22.2682 20.6849 22.1641 20.9583 22.1641 21.2969C22.1641 21.5312 22.2422 21.7526 22.3984 21.9609C22.5547 22.1693 22.75 22.3125 22.9844 22.3906L27.2031 23.6016Z" d="M27.2031 23.6016C28.349 23.9401 29.2083 24.6562 29.7812 25.75C30.3802 26.8438 30.4714 27.9766 30.0547 29.1484C29.7422 30.0078 29.2083 30.6979 28.4531 31.2188C27.6979 31.7135 26.8516 31.974 25.9141 32V33.875C25.9141 34.0573 25.849 34.2005 25.7188 34.3047C25.6146 34.4349 25.4714 34.5 25.2891 34.5H24.0391C23.8568 34.5 23.7005 34.4349 23.5703 34.3047C23.4661 34.2005 23.4141 34.0573 23.4141 33.875V32C22.1641 32 21.0443 31.6094 20.0547 30.8281C19.8984 30.6979 19.8073 30.5417 19.7812 30.3594C19.7552 30.1771 19.8203 30.0208 19.9766 29.8906L21.3047 28.5625C21.5651 28.3281 21.8255 28.3021 22.0859 28.4844C22.4766 28.7448 22.9193 28.875 23.4141 28.875H25.9922C26.3307 28.875 26.6042 28.7708 26.8125 28.5625C27.0469 28.3281 27.1641 28.0417 27.1641 27.7031C27.1641 27.1302 26.8906 26.7656 26.3438 26.6094L22.3203 25.4375C21.4349 25.1771 20.6927 24.7083 20.0938 24.0312C19.4948 23.3542 19.1432 22.5729 19.0391 21.6875C18.9349 20.4115 19.2995 19.3177 20.1328 18.4062C20.9922 17.4688 22.0599 17 23.3359 17H23.4141V15.125C23.4141 14.9427 23.4661 14.7995 23.5703 14.6953C23.7005 14.5651 23.8568 14.5 24.0391 14.5H25.2891C25.4714 14.5 25.6146 14.5651 25.7188 14.6953C25.849 14.7995 25.9141 14.9427 25.9141 15.125V17C27.1641 17 28.2839 17.3906 29.2734 18.1719C29.4297 18.3021 29.5208 18.4583 29.5469 18.6406C29.5729 18.8229 29.5078 18.9792 29.3516 19.1094L28.0234 20.4375C27.763 20.6719 27.5026 20.6979 27.2422 20.5156C26.8516 20.2552 26.4089 20.125 25.9141 20.125H23.3359C22.9974 20.125 22.7109 20.2422 22.4766 20.4766C22.2682 20.6849 22.1641 20.9583 22.1641 21.2969C22.1641 21.5312 22.2422 21.7526 22.3984 21.9609C22.5547 22.1693 22.75 22.3125 22.9844 22.3906L27.2031 23.6016Z"
fill="#FB7178" fill="#FB7178"
/> />
</svg> </svg>
</template> </template>
<script setup>
const props = defineProps({
color: {
type: String,
default: 'fill-red-400 dark:fill-white',
},
bgColor: {
type: String,
default: 'fill-red-100 dark:fill-red-400',
},
})
</script>

View File

@ -5,24 +5,21 @@
viewBox="0 0 50 50" viewBox="0 0 50 50"
fill="none" fill="none"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
:class="colorClass"
> >
<circle cx="25" cy="25" r="25" :class="bgColor" /> <circle cx="25" cy="25" r="25" fill="#EAF1FB" />
<path <path
d="M26.75 19.8125C26.75 20.0729 26.8411 20.2943 27.0234 20.4766C27.2057 20.6589 27.4271 20.75 27.6875 20.75H33V33.5625C33 33.8229 32.9089 34.0443 32.7266 34.2266C32.5443 34.4089 32.3229 34.5 32.0625 34.5H18.9375C18.6771 34.5 18.4557 34.4089 18.2734 34.2266C18.0911 34.0443 18 33.8229 18 33.5625V15.4375C18 15.1771 18.0911 14.9557 18.2734 14.7734C18.4557 14.5911 18.6771 14.5 18.9375 14.5H26.75V19.8125ZM33 19.2656V19.5H28V14.5H28.2344C28.4948 14.5 28.7161 14.5911 28.8984 14.7734L32.7266 18.6016C32.9089 18.7839 33 19.0052 33 19.2656Z" d="M26.75 19.8125C26.75 20.0729 26.8411 20.2943 27.0234 20.4766C27.2057 20.6589 27.4271 20.75 27.6875 20.75H33V33.5625C33 33.8229 32.9089 34.0443 32.7266 34.2266C32.5443 34.4089 32.3229 34.5 32.0625 34.5H18.9375C18.6771 34.5 18.4557 34.4089 18.2734 34.2266C18.0911 34.0443 18 33.8229 18 33.5625V15.4375C18 15.1771 18.0911 14.9557 18.2734 14.7734C18.4557 14.5911 18.6771 14.5 18.9375 14.5H26.75V19.8125ZM33 19.2656V19.5H28V14.5H28.2344C28.4948 14.5 28.7161 14.5911 28.8984 14.7734L32.7266 18.6016C32.9089 18.7839 33 19.0052 33 19.2656Z"
:class="color" fill="currentColor"
/> />
</svg> </svg>
</template> </template>
<script setup> <script setup>
const props = defineProps({ const props = defineProps({
color: { colorClass: {
type: String, type: String,
default: 'fill-primary-500 dark:fill-white', default: 'text-primary-500',
},
bgColor: {
type: String,
default: 'fill-gray-100 dark:fill-primary-400',
}, },
}) })
</script> </script>

View File

@ -5,24 +5,21 @@
viewBox="0 0 50 50" viewBox="0 0 50 50"
fill="none" fill="none"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
:class="colorClass"
> >
<circle cx="25" cy="25" r="25" :class="bgColor" /> <circle cx="25" cy="25" r="25" fill="#EAF1FB" />
<path <path
d="M28.25 24.5V27H20.75V24.5H28.25ZM31.7266 18.6016C31.9089 18.7839 32 19.0052 32 19.2656V19.5H27V14.5H27.2344C27.4948 14.5 27.7161 14.5911 27.8984 14.7734L31.7266 18.6016ZM25.75 19.8125C25.75 20.0729 25.8411 20.2943 26.0234 20.4766C26.2057 20.6589 26.4271 20.75 26.6875 20.75H32V33.5625C32 33.8229 31.9089 34.0443 31.7266 34.2266C31.5443 34.4089 31.3229 34.5 31.0625 34.5H17.9375C17.6771 34.5 17.4557 34.4089 17.2734 34.2266C17.0911 34.0443 17 33.8229 17 33.5625V15.4375C17 15.1771 17.0911 14.9557 17.2734 14.7734C17.4557 14.5911 17.6771 14.5 17.9375 14.5H25.75V19.8125ZM19.5 17.3125V17.9375C19.5 18.1458 19.6042 18.25 19.8125 18.25H22.9375C23.1458 18.25 23.25 18.1458 23.25 17.9375V17.3125C23.25 17.1042 23.1458 17 22.9375 17H19.8125C19.6042 17 19.5 17.1042 19.5 17.3125ZM19.5 19.8125V20.4375C19.5 20.6458 19.6042 20.75 19.8125 20.75H22.9375C23.1458 20.75 23.25 20.6458 23.25 20.4375V19.8125C23.25 19.6042 23.1458 19.5 22.9375 19.5H19.8125C19.6042 19.5 19.5 19.6042 19.5 19.8125ZM29.5 31.6875V31.0625C29.5 30.8542 29.3958 30.75 29.1875 30.75H26.0625C25.8542 30.75 25.75 30.8542 25.75 31.0625V31.6875C25.75 31.8958 25.8542 32 26.0625 32H29.1875C29.3958 32 29.5 31.8958 29.5 31.6875ZM29.5 23.875C29.5 23.6927 29.4349 23.5495 29.3047 23.4453C29.2005 23.3151 29.0573 23.25 28.875 23.25H20.125C19.9427 23.25 19.7865 23.3151 19.6562 23.4453C19.5521 23.5495 19.5 23.6927 19.5 23.875V27.625C19.5 27.8073 19.5521 27.9635 19.6562 28.0938C19.7865 28.1979 19.9427 28.25 20.125 28.25H28.875C29.0573 28.25 29.2005 28.1979 29.3047 28.0938C29.4349 27.9635 29.5 27.8073 29.5 27.625V23.875Z" d="M28.25 24.5V27H20.75V24.5H28.25ZM31.7266 18.6016C31.9089 18.7839 32 19.0052 32 19.2656V19.5H27V14.5H27.2344C27.4948 14.5 27.7161 14.5911 27.8984 14.7734L31.7266 18.6016ZM25.75 19.8125C25.75 20.0729 25.8411 20.2943 26.0234 20.4766C26.2057 20.6589 26.4271 20.75 26.6875 20.75H32V33.5625C32 33.8229 31.9089 34.0443 31.7266 34.2266C31.5443 34.4089 31.3229 34.5 31.0625 34.5H17.9375C17.6771 34.5 17.4557 34.4089 17.2734 34.2266C17.0911 34.0443 17 33.8229 17 33.5625V15.4375C17 15.1771 17.0911 14.9557 17.2734 14.7734C17.4557 14.5911 17.6771 14.5 17.9375 14.5H25.75V19.8125ZM19.5 17.3125V17.9375C19.5 18.1458 19.6042 18.25 19.8125 18.25H22.9375C23.1458 18.25 23.25 18.1458 23.25 17.9375V17.3125C23.25 17.1042 23.1458 17 22.9375 17H19.8125C19.6042 17 19.5 17.1042 19.5 17.3125ZM19.5 19.8125V20.4375C19.5 20.6458 19.6042 20.75 19.8125 20.75H22.9375C23.1458 20.75 23.25 20.6458 23.25 20.4375V19.8125C23.25 19.6042 23.1458 19.5 22.9375 19.5H19.8125C19.6042 19.5 19.5 19.6042 19.5 19.8125ZM29.5 31.6875V31.0625C29.5 30.8542 29.3958 30.75 29.1875 30.75H26.0625C25.8542 30.75 25.75 30.8542 25.75 31.0625V31.6875C25.75 31.8958 25.8542 32 26.0625 32H29.1875C29.3958 32 29.5 31.8958 29.5 31.6875ZM29.5 23.875C29.5 23.6927 29.4349 23.5495 29.3047 23.4453C29.2005 23.3151 29.0573 23.25 28.875 23.25H20.125C19.9427 23.25 19.7865 23.3151 19.6562 23.4453C19.5521 23.5495 19.5 23.6927 19.5 23.875V27.625C19.5 27.8073 19.5521 27.9635 19.6562 28.0938C19.7865 28.1979 19.9427 28.25 20.125 28.25H28.875C29.0573 28.25 29.2005 28.1979 29.3047 28.0938C29.4349 27.9635 29.5 27.8073 29.5 27.625V23.875Z"
:class="color" fill="currentColor"
/> />
</svg> </svg>
</template> </template>
<script setup> <script setup>
const props = defineProps({ const props = defineProps({
color: { colorClass: {
type: String, type: String,
default: 'fill-primary-500 dark:fill-white', default: 'text-primary-500',
},
bgColor: {
type: String,
default: 'fill-gray-100 dark:fill-primary-400',
}, },
}) })
</script> </script>

View File

@ -5,30 +5,27 @@
viewBox="0 0 50 50" viewBox="0 0 50 50"
fill="none" fill="none"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
:class="colorClass"
> >
<circle cx="25" cy="25" r="25" :class="bgColor" /> <circle cx="25" cy="25" r="25" fill="#EAF1FB" />
<path <path
d="M17.8 17.8C17.1635 17.8 16.5531 18.0529 16.103 18.503C15.6529 18.9531 15.4 19.5635 15.4 20.2V21.4H34.6V20.2C34.6 19.5635 34.3472 18.9531 33.8971 18.503C33.447 18.0529 32.8365 17.8 32.2 17.8H17.8Z" d="M17.8 17.8C17.1635 17.8 16.5531 18.0529 16.103 18.503C15.6529 18.9531 15.4 19.5635 15.4 20.2V21.4H34.6V20.2C34.6 19.5635 34.3472 18.9531 33.8971 18.503C33.447 18.0529 32.8365 17.8 32.2 17.8H17.8Z"
:class="color" fill="currentColor"
/> />
<path <path
fill-rule="evenodd" fill-rule="evenodd"
clip-rule="evenodd" clip-rule="evenodd"
d="M34.6 23.8H15.4V29.8C15.4 30.4366 15.6529 31.047 16.103 31.4971C16.5531 31.9472 17.1635 32.2 17.8 32.2H32.2C32.8365 32.2 33.447 31.9472 33.8971 31.4971C34.3472 31.047 34.6 30.4366 34.6 29.8V23.8ZM17.8 28.6C17.8 28.2818 17.9265 27.9766 18.1515 27.7515C18.3765 27.5265 18.6818 27.4 19 27.4H20.2C20.5183 27.4 20.8235 27.5265 21.0486 27.7515C21.2736 27.9766 21.4 28.2818 21.4 28.6C21.4 28.9183 21.2736 29.2235 21.0486 29.4486C20.8235 29.6736 20.5183 29.8 20.2 29.8H19C18.6818 29.8 18.3765 29.6736 18.1515 29.4486C17.9265 29.2235 17.8 28.9183 17.8 28.6ZM23.8 27.4C23.4818 27.4 23.1765 27.5265 22.9515 27.7515C22.7265 27.9766 22.6 28.2818 22.6 28.6C22.6 28.9183 22.7265 29.2235 22.9515 29.4486C23.1765 29.6736 23.4818 29.8 23.8 29.8H25C25.3183 29.8 25.6235 29.6736 25.8486 29.4486C26.0736 29.2235 26.2 28.9183 26.2 28.6C26.2 28.2818 26.0736 27.9766 25.8486 27.7515C25.6235 27.5265 25.3183 27.4 25 27.4H23.8Z" d="M34.6 23.8H15.4V29.8C15.4 30.4366 15.6529 31.047 16.103 31.4971C16.5531 31.9472 17.1635 32.2 17.8 32.2H32.2C32.8365 32.2 33.447 31.9472 33.8971 31.4971C34.3472 31.047 34.6 30.4366 34.6 29.8V23.8ZM17.8 28.6C17.8 28.2818 17.9265 27.9766 18.1515 27.7515C18.3765 27.5265 18.6818 27.4 19 27.4H20.2C20.5183 27.4 20.8235 27.5265 21.0486 27.7515C21.2736 27.9766 21.4 28.2818 21.4 28.6C21.4 28.9183 21.2736 29.2235 21.0486 29.4486C20.8235 29.6736 20.5183 29.8 20.2 29.8H19C18.6818 29.8 18.3765 29.6736 18.1515 29.4486C17.9265 29.2235 17.8 28.9183 17.8 28.6ZM23.8 27.4C23.4818 27.4 23.1765 27.5265 22.9515 27.7515C22.7265 27.9766 22.6 28.2818 22.6 28.6C22.6 28.9183 22.7265 29.2235 22.9515 29.4486C23.1765 29.6736 23.4818 29.8 23.8 29.8H25C25.3183 29.8 25.6235 29.6736 25.8486 29.4486C26.0736 29.2235 26.2 28.9183 26.2 28.6C26.2 28.2818 26.0736 27.9766 25.8486 27.7515C25.6235 27.5265 25.3183 27.4 25 27.4H23.8Z"
:class="color" fill="currentColor"
/> />
</svg> </svg>
</template> </template>
<script setup> <script setup>
const props = defineProps({ const props = defineProps({
color: { colorClass: {
type: String,
default: 'fill-primary-500 dark:fill-white',
},
bgColor: {
type: String, type: String,
default: 'fill-gray-100 dark:fill-primary-400', default: 'text-primary-500',
}, },
}) })
</script> </script>

View File

@ -28,13 +28,13 @@ export default {
}, },
}, },
setup(props, { slots }) { setup(props, { slots }) {
const defaultClass = `cursor-pointer pb-2 pr-0 text-sm font-medium leading-5 flex items-center` const defaultClass = `cursor-pointer pb-2 pr-0 text-sm font-medium leading-5 flex items-center`
let hasIconSlot = computed(() => { let hasIconSlot = computed(() => {
return !!slots.icon return !!slots.icon
}) })
let containerClass = computed(() => { let containerClass = computed(() => {
if (props.active) return `${defaultClass} text-primary-500 dark:text-primary-400` if (props.active) return `${defaultClass} text-primary-500`
else return `${defaultClass} text-gray-500 dark:text-gray-300` else return `${defaultClass} text-gray-500`
}) })
return { return {
hasIconSlot, hasIconSlot,

View File

@ -1,8 +1,6 @@
<template> <template>
<div <div
:class="success || info :class="success || info ? 'bg-white' : 'bg-red-50'"
? 'bg-white dark:border dark:border-white/10 dark:text-white dark:bg-gray-800/[.80] dark:shadow-glass dark:backdrop-blur-sm'
: 'bg-red-50 dark:bg-red-400/[.70] dark:shadow-glass dark:backdrop-blur-sm'"
class=" class="
max-w-sm max-w-sm
mb-3 mb-3
@ -50,7 +48,7 @@
</svg> </svg>
<svg <svg
v-if="error" v-if="error"
class="w-6 h-6 text-red-400 dark:text-white" class="w-6 h-6 text-red-400"
fill="currentColor" fill="currentColor"
viewBox="0 0 24 24" viewBox="0 0 24 24"
> >
@ -64,9 +62,7 @@
<div class="flex-1 w-0 ml-3 text-left"> <div class="flex-1 w-0 ml-3 text-left">
<p <p
:class="`text-sm leading-5 font-medium ${ :class="`text-sm leading-5 font-medium ${
success || info success || info ? 'text-gray-900' : 'text-red-800'
? 'text-gray-900 dark:text-white'
: 'text-red-800 dark:text-white'
}`" }`"
> >
{{ {{
@ -79,9 +75,7 @@
</p> </p>
<p <p
:class="`mt-1 text-sm leading-5 ${ :class="`mt-1 text-sm leading-5 ${
success || info success || info ? 'text-gray-500' : 'text-red-700'
? 'text-gray-500 dark:text-gray-400'
: 'text-red-700 dark:text-red-200'
}`" }`"
> >
{{ {{
@ -98,7 +92,7 @@
:class=" :class="
success || info success || info
? ' text-gray-400 focus:text-gray-500' ? ' text-gray-400 focus:text-gray-500'
: 'text-red-400 focus:text-red-500 dark:text-red-100' : 'text-red-400 focus:text-red-500'
" "
class=" class="
inline-flex inline-flex

View File

@ -2,9 +2,8 @@
<Disclosure <Disclosure
v-slot="{ open }" v-slot="{ open }"
as="nav" as="nav"
class="bg-white shadow-sm fixed top-0 left-0 z-20 w-full dark:bg-gray-800" class="bg-white shadow-sm fixed top-0 left-0 z-20 w-full"
> >
<BaseDarkHighlight />
<div class="mx-auto px-8"> <div class="mx-auto px-8">
<div class="flex justify-between h-16 w-full"> <div class="flex justify-between h-16 w-full">
<div class="flex"> <div class="flex">
@ -34,8 +33,8 @@
:to="`/${globalStore.companySlug}${item.link}`" :to="`/${globalStore.companySlug}${item.link}`"
:class="[ :class="[
hasActiveUrl(item.link) hasActiveUrl(item.link)
? 'border-primary-500 text-primary-600 dark:text-primary-400' ? 'border-primary-500 text-primary-600'
: 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300 dark:text-gray-200', : 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300',
'inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium', 'inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium',
]" ]"
> >
@ -44,6 +43,20 @@
</div> </div>
</div> </div>
<div class="hidden sm:ml-6 sm:flex sm:items-center"> <div class="hidden sm:ml-6 sm:flex sm:items-center">
<button
type="button"
class="
bg-white
p-1
rounded-full
text-gray-400
hover:text-gray-500
focus:outline-none
focus:ring-2
focus:ring-offset-2
focus:ring-primary-500
"
></button>
<!-- Profile dropdown --> <!-- Profile dropdown -->
@ -72,7 +85,7 @@
<router-link :to="{ name: 'customer.profile' }"> <router-link :to="{ name: 'customer.profile' }">
<BaseDropdownItem> <BaseDropdownItem>
<CogIcon <CogIcon
class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500 dark:group-hover:text-gray-200" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
aria-hidden="true" aria-hidden="true"
/> />
{{ $t('navigation.settings') }} {{ $t('navigation.settings') }}
@ -81,7 +94,7 @@
<BaseDropdownItem @click="logout"> <BaseDropdownItem @click="logout">
<LogoutIcon <LogoutIcon
class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500 dark:group-hover:text-gray-200" class="w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"
aria-hidden="true" aria-hidden="true"
/> />
{{ $t('navigation.logout') }} {{ $t('navigation.logout') }}
@ -105,8 +118,6 @@
focus:ring-2 focus:ring-2
focus:ring-offset-2 focus:ring-offset-2
focus:ring-primary-500 focus:ring-primary-500
dark:bg-gray-700
dark:focus:ring-offset-gray-900
" "
> >
<span class="sr-only">Open main menu</span> <span class="sr-only">Open main menu</span>
@ -125,15 +136,15 @@
:to="`/${globalStore.companySlug}${item.link}`" :to="`/${globalStore.companySlug}${item.link}`"
:class="[ :class="[
hasActiveUrl(item.link) hasActiveUrl(item.link)
? 'bg-primary-50 border-primary-500 text-primary-700 dark:bg-gray-700 dark:text-primary-400' ? 'bg-primary-50 border-primary-500 text-primary-700'
: 'border-transparent text-gray-600 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-800 dark:text-gray-200 dark:hover:bg-gray-700', : 'border-transparent text-gray-600 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-800',
'block pl-3 pr-4 py-2 border-l-4 text-base font-medium', 'block pl-3 pr-4 py-2 border-l-4 text-base font-medium',
]" ]"
:aria-current="item.current ? 'page' : undefined" :aria-current="item.current ? 'page' : undefined"
>{{ item.title }} >{{ item.title }}
</router-link> </router-link>
</div> </div>
<div class="pt-4 pb-3 border-t border-gray-200 dark:border-gray-500"> <div class="pt-4 pb-3 border-t border-gray-200">
<div class="flex items-center px-4"> <div class="flex items-center px-4">
<div class="shrink-0"> <div class="shrink-0">
<img class="h-10 w-10 rounded-full" :src="previewAvatar" alt="" /> <img class="h-10 w-10 rounded-full" :src="previewAvatar" alt="" />
@ -142,10 +153,26 @@
<div class="text-base font-medium text-gray-800"> <div class="text-base font-medium text-gray-800">
{{ globalStore.currentUser.title }} {{ globalStore.currentUser.title }}
</div> </div>
<div class="text-sm font-medium text-gray-500 dark:text-gray-200"> <div class="text-sm font-medium text-gray-500">
{{ globalStore.currentUser.email }} {{ globalStore.currentUser.email }}
</div> </div>
</div> </div>
<button
type="button"
class="
ml-auto
bg-white
shrink-0
p-1
rounded-full
text-gray-400
hover:text-gray-500
focus:outline-none
focus:ring-2
focus:ring-offset-2
focus:ring-primary-500
"
></button>
</div> </div>
<div class="mt-3 space-y-1"> <div class="mt-3 space-y-1">
<router-link <router-link
@ -155,7 +182,7 @@
:class="[ :class="[
hasActiveUrl(item.link) hasActiveUrl(item.link)
? 'bg-primary-50 border-primary-500 text-primary-700' ? 'bg-primary-50 border-primary-500 text-primary-700'
: 'border-transparent text-gray-600 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-800 dark:text-gray-200 dark:hover:bg-gray-700', : 'border-transparent text-gray-600 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-800',
'block pl-3 pr-4 py-2 border-l-4 text-base font-medium', 'block pl-3 pr-4 py-2 border-l-4 text-base font-medium',
]" ]"
>{{ item.title }}</router-link >{{ item.title }}</router-link

View File

@ -12,24 +12,18 @@
hover:bg-gray-50 hover:bg-gray-50
xl:p-4 xl:p-4
lg:col-span-2 lg:col-span-2
dark:backdrop-blur-xl
dark:shadow-glass
dark:border
dark:border-white/10
dark:bg-gray-800/70
" "
:class="{ 'lg:!col-span-3': large }" :class="{ 'lg:!col-span-3': large }"
:to="route" :to="route"
> >
<div> <div>
<span class="text-xl font-semibold leading-tight text-black xl:text-3xl dark:text-white"> <span class="text-xl font-semibold leading-tight text-black xl:text-3xl">
<slot /> <slot />
</span> </span>
<span class="block mt-1 text-sm leading-tight text-gray-500 xl:text-lg dark:text-gray-300"> <span class="block mt-1 text-sm leading-tight text-gray-500 xl:text-lg">
{{ label }} {{ label }}
</span> </span>
</div> </div>
<BaseDarkHighlight class="!bg-highlight/[.17] !top-5" />
<div class="flex items-center"> <div class="flex items-center">
<component :is="iconComponent" class="w-10 h-10 xl:w-12 xl:h-12" /> <component :is="iconComponent" class="w-10 h-10 xl:w-12 xl:h-12" />
</div> </div>

View File

@ -1,7 +1,7 @@
<template> <template>
<BaseContentPlaceholders <BaseContentPlaceholders
:rounded="true" :rounded="true"
class="relative flex justify-between w-full p-3 bg-white rounded shadow lg:col-span-3 xl:p-4 dark:bg-gray-800" class="relative flex justify-between w-full p-3 bg-white rounded shadow lg:col-span-3 xl:p-4"
> >
<div> <div>
<BaseContentPlaceholdersText <BaseContentPlaceholdersText

View File

@ -12,7 +12,6 @@
shadow shadow
lg:col-span-2 lg:col-span-2
xl:p-4 xl:p-4
dark:bg-gray-800
" "
> >
<div> <div>

Some files were not shown because too many files have changed in this diff Show More