Compare commits

..

3 Commits

Author SHA1 Message Date
e06ac0f7a3 fix padding issue 2023-03-29 10:20:11 +05:30
8841bcf499 add dark mode in InvoiceInformationCard 2023-03-28 16:56:48 +05:30
503b9d6a8f Add dark mode in all StatusBadge 2023-03-28 16:05:08 +05:30
44 changed files with 226 additions and 302 deletions

View File

@ -113,10 +113,10 @@
<div v-if="companyStore.companies.length !== 1" class="py-5">
<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') }}
</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>
{{ $tc('settings.company_info.delete_company_description') }}
</p>

View File

@ -7,7 +7,7 @@
{{ $t('settings.menu_title.exchange_rate') }}
</h6>
<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"
>
{{ $t('settings.exchange_rate.providers_description') }}

View File

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

View File

@ -1,12 +1,10 @@
<template>
<BaseHeading
type="heading-title"
:subtitle="
$t('settings.customization.estimates.convert_estimate_description')
"
>
<h6 class="text-gray-900 text-lg font-medium">
{{ $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>
<BaseRadio

View File

@ -1,13 +1,11 @@
<template>
<form @submit.prevent="submitForm">
<BaseHeading
type="heading-title"
:subtitle="
$t('settings.customization.estimates.default_formats_description')
"
>
<h6 class="text-gray-900 text-lg font-medium">
{{ $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
:label="

View File

@ -1,13 +1,11 @@
<template>
<form @submit.prevent="submitForm">
<BaseHeading
type="heading-title"
:subtitle="
$t('settings.customization.estimates.expiry_date_description')
"
>
<h6 class="text-gray-900 text-lg font-medium">
{{ $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
v-model="expiryDateAutoField"

View File

@ -1,13 +1,11 @@
<template>
<form @submit.prevent="submitForm">
<BaseHeading
type="heading-title"
:subtitle="
$t('settings.customization.invoices.default_formats_description')
"
>
<h6 class="text-gray-900 text-lg font-medium">
{{ $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
:label="$t('settings.customization.invoices.default_invoice_email_body')"

View File

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

View File

@ -1,12 +1,10 @@
<template>
<BaseHeading
type="heading-title"
:subtitle="
$t('settings.customization.invoices.retrospective_edits_description')
"
>
<h6 class="text-gray-900 text-lg font-medium">
{{ $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>
<BaseRadio

View File

@ -1,13 +1,11 @@
<template>
<form @submit.prevent="submitForm">
<BaseHeading
type="heading-title"
:subtitle="
$t('settings.customization.payments.default_formats_description')
"
>
<h6 class="text-gray-900 text-lg font-medium">
{{ $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
:label="$t('settings.customization.payments.default_payment_email_body')"

View File

@ -1,33 +1,40 @@
<template>
<div class="bg-white shadow overflow-hidden rounded-lg mt-6">
<div class="bg-white shadow overflow-hidden rounded-lg mt-6 dark:bg-gray-800">
<div class="px-4 py-5 sm:px-6">
<h3 class="text-lg leading-6 font-medium text-gray-900">
<h3 class="text-lg leading-6 font-medium text-gray-900 dark:text-gray-100">
{{ $t('invoices.invoice_information') }}
</h3>
</div>
<div v-if="invoice" class="border-t border-gray-200 px-4 py-5 sm:p-0">
<dl class="sm:divide-y sm:divide-gray-200">
<div v-if="invoice"
class="
border-t
border-gray-200
px-4 py-5 sm:p-0
dark:border-gray-600
"
>
<dl class="sm:divide-y sm:divide-gray-200 sm:dark:divide-gray-500">
<div class="py-4 sm:py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm font-medium text-gray-500">
<dt class="text-sm font-medium text-gray-500 dark:dark:text-gray-400">
{{ $t('general.from') }}
</dt>
<dd class="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2">
<dd class="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2 dark:text-gray-100">
{{ invoice.company.name }}
</dd>
</div>
<div class="py-4 sm:py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm font-medium text-gray-500">
<dt class="text-sm font-medium text-gray-500 dark:dark:text-gray-400">
{{ $t('general.to') }}
</dt>
<dd class="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2">
<dd class="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2 dark:text-gray-100">
{{ invoice.customer.name }}
</dd>
</div>
<div class="py-4 sm:py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm font-medium text-gray-500 capitalize">
<dt class="text-sm font-medium text-gray-500 capitalize dark:dark:text-gray-400">
{{ $t('invoices.paid_status').toLowerCase() }}
</dt>
<dd class="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2">
<dd class="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2 dark:text-gray-100">
<BaseInvoiceStatusBadge
:status="invoice.paid_status"
class="px-3 py-1"
@ -37,10 +44,10 @@
</dd>
</div>
<div class="py-4 sm:py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt class="text-sm font-medium text-gray-500">
<dt class="text-sm font-medium text-gray-500 dark:dark:text-gray-400">
{{ $t('invoices.total') }}
</dt>
<dd class="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2">
<dd class="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2 dark:text-gray-100">
<BaseFormatMoney
:currency="invoice.currency"
:amount="invoice.total"

View File

@ -15,12 +15,12 @@
v-if="label"
:for="id"
: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 `"
>
{{ 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>
</template>
@ -51,7 +51,7 @@ const props = defineProps({
},
checkboxClass: {
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: {
type: Boolean,

View File

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

View File

@ -1,7 +1,7 @@
<template>
<div
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>

View File

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

View File

@ -10,7 +10,7 @@
{{ label }}
</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 }}
<slot />

View File

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

View File

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

View File

@ -1,18 +1,11 @@
<template>
<div
class="
rounded-md
bg-red-50
p-4
dark:border dark:border-red-400 dark:bg-transparent
"
>
<div class="rounded-md bg-red-50 p-4">
<div class="flex">
<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 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 }}
</h3>
<div class="mt-2 text-sm text-red-700">

View File

@ -18,17 +18,17 @@ const props = defineProps({
const badgeColorClasses = computed(() => {
switch (props.status) {
case 'DRAFT':
return 'bg-yellow-300 bg-opacity-25 px-2 py-1 text-sm text-yellow-800 uppercase font-normal text-center '
return 'bg-yellow-300 bg-opacity-25 px-2 py-1 text-sm text-yellow-800 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-yellow-500 dark:text-yellow-500'
case 'SENT':
return ' bg-yellow-500 bg-opacity-25 px-2 py-1 text-sm text-yellow-900 uppercase font-normal text-center '
return ' bg-yellow-500 bg-opacity-25 px-2 py-1 text-sm text-yellow-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-yellow-200 dark:text-yellow-200'
case 'VIEWED':
return 'bg-blue-400 bg-opacity-25 px-2 py-1 text-sm text-blue-900 uppercase font-normal text-center'
return 'bg-blue-400 bg-opacity-25 px-2 py-1 text-sm text-blue-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-blue-300 dark:text-blue-300'
case 'EXPIRED':
return 'bg-red-300 bg-opacity-25 px-2 py-1 text-sm text-red-800 uppercase font-normal text-center'
return 'bg-red-300 bg-opacity-25 px-2 py-1 text-sm text-red-800 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-red-500 dark:text-red-500'
case 'ACCEPTED':
return 'bg-green-400 bg-opacity-25 px-2 py-1 text-sm text-green-800 uppercase font-normal text-center'
return 'bg-green-500 bg-opacity-25 px-2 py-1 text-sm text-green-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-green-400 dark:text-green-400'
case 'REJECTED':
return 'bg-purple-300 bg-opacity-25 px-2 py-1 text-sm text-purple-800 uppercase font-normal text-center'
return 'bg-purple-300 bg-opacity-25 px-2 py-1 text-sm text-purple-800 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-purple-400 dark:text-purple-400'
default:
return 'bg-gray-500 bg-opacity-25 px-2 py-1 text-sm text-gray-900 uppercase font-normal text-center'
}

View File

@ -2,21 +2,6 @@
<h6 :class="typeClass">
<slot />
</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>
<script setup>
@ -29,16 +14,12 @@ const props = defineProps({
return ['section-title', 'heading-title'].indexOf(value) !== -1
},
},
subtitle: {
type: String,
default: '',
},
})
const typeClass = computed(() => {
return {
'text-gray-900 text-lg font-medium dark:text-white': props.type === 'heading-title',
'text-gray-500 uppercase text-base dark:text-gray-300': props.type === 'section-title',
'text-gray-900 text-lg font-medium': props.type === 'heading-title',
'text-gray-500 uppercase text-base': props.type === 'section-title',
}
})
</script>

View File

@ -20,25 +20,25 @@ export default {
const badgeColorClasses = computed(() => {
switch (props.status) {
case 'DRAFT':
return 'bg-yellow-300 bg-opacity-25 px-2 py-1 text-sm text-yellow-800 uppercase font-normal text-center'
return 'bg-yellow-300 bg-opacity-25 px-2 py-1 text-sm text-yellow-800 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-yellow-500 dark:text-yellow-500'
case 'SENT':
return ' bg-yellow-500 bg-opacity-25 px-2 py-1 text-sm text-yellow-900 uppercase font-normal text-center '
return ' bg-yellow-500 bg-opacity-25 px-2 py-1 text-sm text-yellow-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-lime-200 dark:text-yellow-200'
case 'VIEWED':
return 'bg-blue-400 bg-opacity-25 px-2 py-1 text-sm text-blue-900 uppercase font-normal text-center'
return 'bg-blue-400 bg-opacity-25 px-2 py-1 text-sm text-blue-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-blue-300 dark:text-blue-300'
case 'COMPLETED':
return 'bg-green-500 bg-opacity-25 px-2 py-1 text-sm text-green-900 uppercase font-normal text-center'
return 'bg-green-500 bg-opacity-25 px-2 py-1 text-sm text-green-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-green-400 dark:text-green-400'
case 'DUE':
return 'bg-yellow-500 bg-opacity-25 px-2 py-1 text-sm text-yellow-900 uppercase font-normal text-center'
return 'bg-yellow-500 bg-opacity-25 px-2 py-1 text-sm text-yellow-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-yellow-500 dark:text-yellow-500'
case 'OVERDUE':
return 'bg-red-300 bg-opacity-50 px-2 py-1 text-sm text-red-900 uppercase font-normal text-center'
return 'bg-red-300 bg-opacity-50 px-2 py-1 text-sm text-red-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-red-500 dark:text-red-500'
case 'UNPAID':
return 'bg-yellow-500 bg-opacity-25 px-2 py-1 text-sm text-yellow-900 uppercase font-normal text-center'
return 'bg-yellow-500 bg-opacity-25 px-2 py-1 text-sm text-yellow-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-yellow-500 dark:text-yellow-500'
case 'PARTIALLY_PAID':
return 'bg-blue-400 bg-opacity-25 px-2 py-1 text-sm text-blue-900 uppercase font-normal text-center'
return 'bg-blue-400 bg-opacity-25 px-2 py-1 text-sm text-blue-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-blue-300 dark:text-blue-300'
case 'PAID':
return 'bg-green-500 bg-opacity-25 px-2 py-1 text-sm text-green-900 uppercase font-normal text-center'
return 'bg-green-500 bg-opacity-25 px-2 py-1 text-sm text-green-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-green-400 dark:text-green-400'
default:
return 'bg-gray-500 bg-opacity-25 px-2 py-1 text-sm text-gray-900 uppercase font-normal text-center'
return 'bg-gray-500 bg-opacity-25 px-2 py-1 text-sm text-gray-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-gray-502 dark:text-gray-200'
}
})
return { badgeColorClasses }

View File

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

View File

@ -39,7 +39,7 @@ const props = defineProps({
inputClass: {
type: String,
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: {
type: Boolean,
@ -86,7 +86,7 @@ const currencyBindings = computed(() => {
const invalidClass = computed(() => {
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'
})

View File

@ -24,15 +24,15 @@ export default {
const badgeColorClasses = computed(() => {
switch (props.status) {
case 'PAID':
return 'bg-primary-300 bg-opacity-25 text-primary-800 uppercase font-normal text-center'
return 'bg-primary-300 bg-opacity-25 text-primary-800 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-indigo-400 dark:text-indigo-400'
case 'UNPAID':
return ' bg-yellow-500 bg-opacity-25 text-yellow-900 uppercase font-normal text-center '
return ' bg-yellow-500 bg-opacity-25 text-yellow-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-orange-300 dark:text-orange-300'
case 'PARTIALLY_PAID':
return 'bg-blue-400 bg-opacity-25 text-blue-900 uppercase font-normal text-center'
return 'bg-blue-400 bg-opacity-25 text-blue-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-blue-300 dark:text-blue-300'
case 'OVERDUE':
return 'bg-red-300 bg-opacity-50 px-2 py-1 text-sm text-red-900 uppercase font-normal text-center'
return 'bg-red-300 bg-opacity-50 px-2 py-1 text-sm text-red-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-red-500 dark:text-red-500'
default:
return 'bg-gray-500 bg-opacity-25 text-gray-900 uppercase font-normal text-center'
return 'bg-gray-500 bg-opacity-25 text-gray-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-gray-300 dark:text-gray-300'
}
})
return { badgeColorClasses }

View File

@ -19,7 +19,7 @@
]"
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>
<div class="flex flex-col ml-3">
<RadioGroupLabel
@ -70,7 +70,7 @@ const props = defineProps({
},
unCheckedStateClass: {
type: String,
default: 'bg-white dark:bg-transparent',
default: 'bg-white ',
},
optionGroupActiveStateClass: {
type: String,
@ -78,16 +78,16 @@ const props = defineProps({
},
checkedStateLabelClass: {
type: String,
default: 'text-primary-900 dark:text-primary-400',
default: 'text-primary-900 ',
},
unCheckedStateLabelClass: {
type: String,
default: 'text-gray-900 dark:text-white',
default: 'text-gray-900',
},
optionGroupClass: {
type: String,
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: {
type: String,

View File

@ -20,11 +20,11 @@ export default {
const badgeColorClasses = computed(() => {
switch (props.status) {
case 'COMPLETED':
return 'bg-green-500 bg-opacity-25 px-2 py-1 text-sm text-green-900 uppercase font-normal text-center'
return 'bg-green-500 bg-opacity-25 px-2 py-1 text-sm text-green-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-green-400 dark:text-green-400'
case 'ON_HOLD':
return 'bg-yellow-500 bg-opacity-25 px-2 py-1 text-sm text-yellow-900 uppercase font-normal text-center'
return 'bg-yellow-500 bg-opacity-25 px-2 py-1 text-sm text-yellow-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-yellow-200 dark:text-yellow-200'
case 'ACTIVE':
return 'bg-blue-400 bg-opacity-25 px-2 py-1 text-sm text-blue-900 uppercase font-normal text-center'
return 'bg-blue-400 bg-opacity-25 px-2 py-1 text-sm text-blue-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-blue-300 dark:text-blue-300'
default:
return 'bg-gray-500 bg-opacity-25 px-2 py-1 text-sm text-gray-900 uppercase font-normal text-center'
}

View File

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

View File

@ -12,7 +12,7 @@
>
<ListboxLabel
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 }}
</ListboxLabel>
@ -28,13 +28,14 @@
pr-10
text-left
bg-white
dark:bg-gray-700
border border-gray-200
rounded-md
shadow-sm
cursor-default
focus:outline-none
focus:ring-1
focus:ring-primary-400 focus:border-primary-400
focus:ring-primary-500
focus:border-primary-500
sm:text-sm
"
>
@ -88,7 +89,6 @@
ring-1 ring-black ring-opacity-5
focus:outline-none
sm:text-sm
dark:bg-gray-700
"
>
<ListboxOption
@ -100,7 +100,7 @@
>
<li
: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',
]"
>

View File

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

View File

@ -45,7 +45,7 @@ const props = defineProps({
defaultInputClass: {
type: String,
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: {
type: Boolean,

View File

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

View File

@ -5,30 +5,27 @@
viewBox="0 0 50 50"
fill="none"
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
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
fill-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"
:class="color"
fill="currentColor"
/>
</svg>
</template>
<script setup>
const props = defineProps({
color: {
colorClass: {
type: String,
default: 'fill-primary-500 dark:fill-white',
},
bgColor: {
type: String,
default: 'fill-gray-100 dark:fill-primary-400',
default: 'text-primary-500',
},
})
</script>

View File

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

View File

@ -2,9 +2,8 @@
<Disclosure
v-slot="{ open }"
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="flex justify-between h-16 w-full">
<div class="flex">
@ -34,8 +33,8 @@
:to="`/${globalStore.companySlug}${item.link}`"
:class="[
hasActiveUrl(item.link)
? 'border-primary-500 text-primary-600 dark:text-primary-400'
: 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300 dark:text-gray-200',
? 'border-primary-500 text-primary-600'
: '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',
]"
>
@ -44,6 +43,20 @@
</div>
</div>
<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 -->
@ -72,7 +85,7 @@
<router-link :to="{ name: 'customer.profile' }">
<BaseDropdownItem>
<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"
/>
{{ $t('navigation.settings') }}
@ -81,7 +94,7 @@
<BaseDropdownItem @click="logout">
<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"
/>
{{ $t('navigation.logout') }}
@ -105,8 +118,6 @@
focus:ring-2
focus:ring-offset-2
focus:ring-primary-500
dark:bg-gray-700
dark:focus:ring-offset-gray-900
"
>
<span class="sr-only">Open main menu</span>
@ -125,15 +136,15 @@
:to="`/${globalStore.companySlug}${item.link}`"
:class="[
hasActiveUrl(item.link)
? 'bg-primary-50 border-primary-500 text-primary-700 dark:bg-gray-700 dark:text-primary-400'
: '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',
? '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',
'block pl-3 pr-4 py-2 border-l-4 text-base font-medium',
]"
:aria-current="item.current ? 'page' : undefined"
>{{ item.title }}
</router-link>
</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="shrink-0">
<img class="h-10 w-10 rounded-full" :src="previewAvatar" alt="" />
@ -142,10 +153,26 @@
<div class="text-base font-medium text-gray-800">
{{ globalStore.currentUser.title }}
</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 }}
</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 class="mt-3 space-y-1">
<router-link
@ -155,7 +182,7 @@
:class="[
hasActiveUrl(item.link)
? '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',
]"
>{{ item.title }}</router-link

View File

@ -12,24 +12,18 @@
hover:bg-gray-50
xl:p-4
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 }"
:to="route"
>
<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 />
</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 }}
</span>
</div>
<BaseDarkHighlight class="!bg-highlight/[.17] !top-5" />
<div class="flex items-center">
<component :is="iconComponent" class="w-10 h-10 xl:w-12 xl:h-12" />
</div>

View File

@ -1,7 +1,7 @@
<template>
<BaseContentPlaceholders
: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>
<BaseContentPlaceholdersText

View File

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

View File

@ -119,11 +119,11 @@
<template #cell-actions="{ row }">
<BaseDropdown>
<template #activator>
<BaseIcon name="DotsHorizontalIcon" class="h-5 text-gray-500 dark:text-gray-200" />
<BaseIcon name="DotsHorizontalIcon" class="h-5 text-gray-500" />
</template>
<router-link :to="`estimates/${row.data.id}/view`">
<BaseDropdownItem>
<BaseIcon name="EyeIcon" class="h-5 mr-3 text-gray-600 dark:text-gray-200" />
<BaseIcon name="EyeIcon" class="h-5 mr-3 text-gray-600" />
{{ $t('general.view') }}
</BaseDropdownItem>
</router-link>

View File

@ -25,7 +25,7 @@
<!-- Sidebar -->
<div
class="fixed top-0 left-0 hidden h-full pt-16 pb-4 bg-white w-88 xl:block dark:bg-gray-800"
class="fixed top-0 left-0 hidden h-full pt-16 pb-4 bg-white w-88 xl:block"
>
<div
class="
@ -36,7 +36,6 @@
pt-8
pb-6
border border-gray-200 border-solid
dark:border-gray-600
"
>
<BaseInput
@ -71,7 +70,6 @@
mb-2
text-sm
border-b border-gray-200 border-solid
dark:border-gray-600
"
>
{{ $t('general.sort_by') }}
@ -126,7 +124,7 @@
</div>
</BaseDropdown>
<BaseButton class="ml-1" variant="gray" @click="sortData">
<BaseButton class="ml-1" variant="white" @click="sortData">
<BaseIcon v-if="getOrderBy" name="SortAscendingIcon" class="h-5" />
<BaseIcon v-else name="SortDescendingIcon" class="h-5" />
</BaseButton>
@ -140,7 +138,6 @@
overflow-y-scroll
border-l border-gray-200 border-solid
sw-scroll
dark:border-gray-600
"
>
<router-link
@ -149,9 +146,9 @@
:key="index"
:to="`/${globalStore.companySlug}/customer/estimates/${estimate.id}/view`"
:class="[
'flex justify-between p-4 items-center cursor-pointer hover:bg-gray-100 border-l-4 border-transparent dark:hover:bg-gray-700',
'flex justify-between p-4 items-center cursor-pointer hover:bg-gray-100 border-l-4 border-transparent',
{
'bg-gray-100 border-l-4 border-primary-500 border-solid dark:bg-gray-700':
'bg-gray-100 border-l-4 border-primary-500 border-solid':
hasActiveUrl(estimate.id),
},
]"
@ -167,7 +164,6 @@
leading-5
text-gray-500
capitalize
dark:text-gray-400
"
>
{{ estimate.estimate_number }}
@ -188,12 +184,11 @@
leading-8
text-right text-gray-900
block
dark:text-white
"
:amount="estimate.total"
:currency="estimate.currency"
/>
<div class="text-sm text-right text-gray-500 dark:text-gray-400 non-italic">
<div class="text-sm text-right text-gray-500 non-italic">
{{ estimate.formatted_estimate_date }}
</div>
</div>
@ -201,7 +196,7 @@
<p
v-if="!estimateStore.estimates.length"
class="flex justify-center px-4 mt-5 text-sm text-gray-600 dark:text-gray-300"
class="flex justify-center px-4 mt-5 text-sm text-gray-600"
>
{{ $t('estimates.no_matching_estimates') }}
</p>

View File

@ -126,11 +126,11 @@
<template #cell-actions="{ row }">
<BaseDropdown>
<template #activator>
<BaseIcon name="DotsHorizontalIcon" class="h-5 text-gray-500 dark:text-gray-200" />
<BaseIcon name="DotsHorizontalIcon" class="h-5 text-gray-500" />
</template>
<router-link :to="`invoices/${row.data.id}/view`">
<BaseDropdownItem>
<BaseIcon name="EyeIcon" class="h-5 mr-3 text-gray-600 dark:text-gray-200" />
<BaseIcon name="EyeIcon" class="h-5 mr-3 text-gray-600" />
{{ $t('general.view') }}
</BaseDropdownItem>
</router-link>

View File

@ -31,7 +31,7 @@
<!-- Sidebar -->
<div
class="fixed top-0 left-0 hidden h-full pt-16 pb-4 bg-white w-88 xl:block dark:bg-gray-800"
class="fixed top-0 left-0 hidden h-full pt-16 pb-4 bg-white w-88 xl:block"
>
<div
class="
@ -42,7 +42,6 @@
pt-8
pb-6
border border-gray-200 border-solid
dark:border-gray-600
"
>
<BaseInput
@ -77,7 +76,6 @@
mb-2
text-sm
border-b border-gray-200 border-solid
dark:border-gray-600
"
>
{{ $t('general.sort_by') }}
@ -132,7 +130,7 @@
</div>
</BaseDropdown>
<BaseButton class="ml-1" variant="gray" @click="sortData">
<BaseButton class="ml-1" variant="white" @click="sortData">
<BaseIcon v-if="getOrderBy" name="SortAscendingIcon" class="h-5" />
<BaseIcon v-else name="SortDescendingIcon" class="h-5" />
</BaseButton>
@ -146,7 +144,6 @@
overflow-y-scroll
border-l border-gray-200 border-solid
sw-scroll
dark:border-gray-600
"
>
<router-link
@ -155,9 +152,9 @@
:key="index"
:to="`/${globalStore.companySlug}/customer/invoices/${invoice.id}/view`"
:class="[
'flex justify-between p-4 items-center cursor-pointer hover:bg-gray-100 border-l-4 border-transparent dark:hover:bg-gray-700',
'flex justify-between p-4 items-center cursor-pointer hover:bg-gray-100 border-l-4 border-transparent',
{
'bg-gray-100 border-l-4 border-primary-500 border-solid dark:bg-gray-700':
'bg-gray-100 border-l-4 border-primary-500 border-solid':
hasActiveUrl(invoice.id),
},
]"
@ -173,7 +170,6 @@
text-gray-500
capitalize
text-md
dark:text-gray-400
"
>
{{ invoice.invoice_number }}
@ -193,13 +189,12 @@
leading-8
text-right text-gray-900
block
dark:text-white
"
:amount="invoice.total"
:currency="invoice.currency"
/>
<div class="text-sm text-right text-gray-500 dark:text-gray-400 non-italic">
<div class="text-sm text-right text-gray-500 non-italic">
{{ invoice.formatted_invoice_date }}
</div>
</div>
@ -207,7 +202,7 @@
<p
v-if="!invoiceStore.invoices.length"
class="flex justify-center px-4 mt-5 text-sm text-gray-600 dark:text-gray-300"
class="flex justify-center px-4 mt-5 text-sm text-gray-600"
>
{{ $t('invoices.no_matching_invoices') }}
</p>

View File

@ -111,11 +111,11 @@
<template #cell-actions="{ row }">
<BaseDropdown>
<template #activator>
<BaseIcon name="DotsHorizontalIcon" class="w-5 text-gray-500 dark:text-gray-200" />
<BaseIcon name="DotsHorizontalIcon" class="w-5 text-gray-500" />
</template>
<router-link :to="`payments/${row.data.id}/view`">
<BaseDropdownItem>
<BaseIcon name="EyeIcon" class="h-5 mr-3 text-gray-600 dark:text-gray-200" />
<BaseIcon name="EyeIcon" class="h-5 mr-3 text-gray-600" />
{{ $t('general.view') }}
</BaseDropdownItem>
</router-link>

View File

@ -19,7 +19,7 @@
<!-- Sidebar -->
<div
class="fixed top-0 left-0 hidden h-full pt-16 pb-4 bg-white w-88 xl:block dark:bg-gray-800"
class="fixed top-0 left-0 hidden h-full pt-16 pb-4 bg-white w-88 xl:block"
>
<div
class="
@ -30,7 +30,6 @@
pt-8
pb-6
border border-gray-200 border-solid
dark:border-gray-600
"
>
<BaseInput
@ -65,7 +64,6 @@
mb-2
text-sm
border-b border-gray-200 border-solid
dark:border-gray-600
"
>
{{ $t('general.sort_by') }}
@ -120,7 +118,7 @@
</div>
</BaseDropdown>
<BaseButton class="ml-1" variant="gray" @click="sortData">
<BaseButton class="ml-1" variant="white" @click="sortData">
<BaseIcon v-if="getOrderBy" name="SortAscendingIcon" class="h-5" />
<BaseIcon v-else name="SortDescendingIcon" class="h-5" />
</BaseButton>
@ -134,7 +132,6 @@
overflow-y-scroll
border-l border-gray-200 border-solid
sw-scroll
dark:border-gray-600
"
>
<router-link
@ -143,9 +140,9 @@
:key="index"
:to="`/${globalStore.companySlug}/customer/payments/${payment.id}/view`"
:class="[
'flex justify-between p-4 items-center cursor-pointer hover:bg-gray-100 border-l-4 border-transparent dark:hover:bg-gray-700',
'flex justify-between p-4 items-center cursor-pointer hover:bg-gray-100 border-l-4 border-transparent',
{
'bg-gray-100 border-l-4 border-primary-500 border-solid dark:bg-gray-700':
'bg-gray-100 border-l-4 border-primary-500 border-solid':
hasActiveUrl(payment.id),
},
]"
@ -161,7 +158,6 @@
leading-5
text-gray-500
capitalize
dark:text-gray-400
"
>
{{ payment.payment_number }}
@ -178,13 +174,12 @@
leading-8
text-right text-gray-900
block
dark:text-white
"
:amount="payment.amount"
:currency="payment.currency"
/>
<div class="text-sm text-right text-gray-500 dark:text-gray-400 non-italic">
<div class="text-sm text-right text-gray-500 non-italic">
{{ payment.formatted_payment_date }}
</div>
</div>
@ -192,7 +187,7 @@
<p
v-if="!paymentStore.payments.length"
class="flex justify-center px-4 mt-5 text-sm text-gray-600 dark:text-gray-300"
class="flex justify-center px-4 mt-5 text-sm text-gray-600"
>
{{ $t('payments.no_matching_payments') }}
</p>