Compare commits

...

4 Commits

Author SHA1 Message Date
3396a4a462 fix dark mode in roles modal and send modal 2023-03-28 12:43:41 +05:30
cf1f8571f8 add BaseModalFooter 2023-03-27 11:19:07 +05:30
6e70930e87 add dark mode in base modal 2023-03-23 11:10:46 +05:30
15f3f566e3 Dark sidebar header (#1156)
* add dark mode in sidebar and header

* add dark theme in blade file
2023-03-20 15:50:27 +05:30
33 changed files with 257 additions and 188 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -15,6 +15,13 @@
bg-gradient-to-r
from-primary-500
to-primary-400
dark:from-gray-700/70 dark:to-gray-800/70
bg-primary-500
dark:bg-transparent
dark:backdrop-blur-xl
dark:shadow-glass
dark:border
dark:border-white/10
"
>
<router-link
@ -53,6 +60,7 @@
cursor-pointer
md:hidden md:ml-0
hover:bg-gray-100
dark:bg-gray-800 dark:border-gray-500 dark:border
"
@click.prevent="onToggle"
>

View File

@ -15,7 +15,9 @@
leave-from="opacity-100"
leave-to="opacity-0"
>
<DialogOverlay class="fixed inset-0 bg-gray-600 bg-opacity-75" />
<DialogOverlay
class="fixed inset-0 bg-gray-600 bg-opacity-75 dark:bg-gray-900/90"
/>
</TransitionChild>
<TransitionChild
@ -27,7 +29,9 @@
leave-from="translate-x-0"
leave-to="-translate-x-full"
>
<div class="relative flex flex-col flex-1 w-full max-w-xs bg-white">
<div
class="relative flex flex-col flex-1 w-full max-w-xs bg-white dark:bg-gray-800"
>
<TransitionChild
as="template"
enter="ease-in-out duration-300"
@ -40,18 +44,17 @@
<div class="absolute top-0 right-0 pt-2 -mr-12">
<button
class="
flex
items-center
justify-center
w-10
h-10
ml-1
rounded-full
focus:outline-none
focus:ring-2
focus:ring-inset
focus:ring-white
"
flex
items-center
justify-center
w-10
h-10
ml-1
rounded-full
focus:outline-none
focus:ring-2
focus:ring-inset
focus:ring-white"
@click="globalStore.setSidebarVisibility(false)"
>
<span class="sr-only">Close sidebar</span>
@ -82,8 +85,8 @@
:to="item.link"
:class="[
hasActiveUrl(item.link)
? 'text-primary-500 border-primary-500 bg-gray-100 '
: 'text-black',
? 'text-primary-500 border-primary-500 bg-gray-100 dark:shadow-glass dark:backdrop-blur-xl dark:hover:bg-gray-700 dark:bg-gray-700/50 dark:text-primary-400 dark:font-medium'
: 'text-black dark:text-gray-300',
'cursor-pointer px-0 pl-4 py-3 border-transparent flex items-center border-l-4 border-solid text-sm not-italic font-medium',
]"
@click="globalStore.setSidebarVisibility(false)"
@ -100,6 +103,10 @@
/>
{{ $t(item.title) }}
</router-link>
<LightDarkSwitch
:show-label="false"
class="absolute right-6 top-6 !w-auto"
/>
</nav>
</div>
</div>
@ -113,17 +120,16 @@
<!-- DESKTOP MENU -->
<div
class="
hidden
w-56
h-screen
pb-32
overflow-y-auto
bg-white
border-r border-gray-200 border-solid
xl:w-64
md:fixed md:flex md:flex-col md:inset-y-0
pt-16
"
hidden
w-56
h-screen
bg-white
border-r border-gray-200 border-solid
xl:w-64
md:fixed md:flex md:flex-col md:inset-y-0
pt-16
dark:border-gray-800
dark:bg-gray-800/80"
>
<div
v-for="menu in globalStore.menuGroups"
@ -136,8 +142,8 @@
:to="item.link"
:class="[
hasActiveUrl(item.link)
? 'text-primary-500 border-primary-500 bg-gray-100 '
: 'text-black',
? 'text-primary-500 border-primary-500 bg-gray-100 dark:border-primary-400 dark:shadow-glass dark:backdrop-blur-xl dark:hover:bg-gray-700 dark:bg-gray-700/50 dark:text-primary-400 dark:font-medium'
: 'text-black dark:hover:bg-transparent dark:hover:text-white dark:text-gray-300',
'cursor-pointer px-0 pl-6 hover:bg-gray-50 py-3 group flex items-center border-l-4 border-solid border-transparent text-sm not-italic font-medium',
]"
>
@ -145,8 +151,8 @@
:name="item.icon"
:class="[
hasActiveUrl(item.link)
? 'text-primary-500 group-hover:text-primary-500 '
: 'text-gray-400 group-hover:text-black',
? 'text-primary-500 group-hover:text-primary-500 dark:text-primary-400 dark:group-hover:text-primary-500 '
: 'text-gray-400 group-hover:text-black dark:text-gray-400 dark:group-hover:text-white',
'mr-4 shrink-0 h-5 w-5 ',
]"
/>
@ -154,6 +160,9 @@
{{ $t(item.title) }}
</router-link>
</div>
<LightDarkSwitch
class="absolute bottom-0 py-4 border-t border-gray-200 dark:border-gray-700"
/>
</div>
</template>
@ -169,6 +178,7 @@ import {
import { useRoute } from 'vue-router'
import { useGlobalStore } from '@/scripts/admin/stores/global'
import LightDarkSwitch from '@/scripts/components/LightDarkSwitcher.vue'
const route = useRoute()
const globalStore = useGlobalStore()

View File

@ -34,6 +34,7 @@ export const useGlobalStore = (useWindow = false) => {
isAppLoaded: false,
isSidebarOpen: false,
areCurrenciesLoading: false,
isDarkModeOn: false,
downloadReport: null,
}),
@ -70,8 +71,8 @@ export const useGlobalStore = (useWindow = false) => {
moduleStore.apiToken = response.data.global_settings.api_token
moduleStore.enableModules = response.data.modules
// company store
companyStore.companies = response.data.companies
// company store
companyStore.companies = response.data.companies
companyStore.selectedCompany = response.data.current_company
companyStore.setSelectedCompany(response.data.current_company)
companyStore.selectedCompanySettings =

View File

@ -0,0 +1,101 @@
<!-- This example requires Tailwind CSS v2.0+ -->
<script lang="ts" setup>
import { Switch, SwitchGroup, SwitchLabel } from '@headlessui/vue'
import { useGlobalStore } from '@/scripts/admin/stores/global'
import { computed, ref } from 'vue'
defineProps({
showLabel: {
type: Boolean,
default: true,
},
vertical: {
type: Boolean,
default: false,
},
})
const globalStore = useGlobalStore()
const enabled = ref(
localStorage.getItem('theme') === 'dark' ||
document.documentElement.classList.contains('dark')
)
globalStore.isDarkModeOn = enabled
function onChange(val) {
if (val) {
localStorage.theme = 'dark'
document.documentElement.classList.add('dark')
document.documentElement.style.setProperty('color-scheme', 'dark')
globalStore.isDarkModeOn = true
} else {
localStorage.theme = 'light'
document.documentElement.classList.remove('dark')
document.documentElement.style.setProperty('color-scheme', 'light')
globalStore.isDarkModeOn = false
}
}
</script>
<template>
<div class="w-full flex justify-center">
<SwitchGroup
as="div"
class="flex items-center"
:class="vertical ? 'flex-col justify-center' : 'flex-row'"
>
<Switch
v-model="enabled"
class="relative inline-flex flex-shrink-0 h-6 w-11 border-2 border-transparent rounded-full cursor-pointer transition-colors ease-in-out duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 dark:ring-offset-gray-700"
:class="[enabled ? 'bg-primary-600' : 'bg-gray-200']"
@update:modelValue="onChange"
>
<span class="sr-only">Use setting</span>
<span
class="pointer-events-none relative inline-block h-5 w-5 rounded-full bg-white shadow transform ring-0 transition ease-in-out duration-200"
:class="[enabled ? 'translate-x-5' : 'translate-x-0']"
>
<span
class="absolute inset-0 h-full w-full flex items-center justify-center transition-opacity"
:class="[
enabled
? 'opacity-0 ease-out duration-100'
: 'opacity-100 ease-in duration-200',
]"
aria-hidden="true"
>
<BaseIcon class="h-3 w-3 text-yellow-500" name="SunIcon" />
</span>
<span
class="absolute inset-0 h-full w-full flex items-center justify-center transition-opacity"
:class="[
enabled
? 'opacity-100 ease-in duration-200'
: 'opacity-0 ease-out duration-100',
]"
aria-hidden="true"
>
<BaseIcon class="h-3 w-3 text-primary-500" name="MoonIcon" />
</span>
</span>
</Switch>
<SwitchLabel
v-if="showLabel"
as="span"
class="cursor-pointer"
:class="vertical ? 'px-1 text-center mt-2' : 'ml-3'"
>
<span
v-if="enabled"
class="text-sm font-medium text-gray-500 dark:text-gray-400"
>
Dark Mode
</span>
<span v-else class="text-sm font-medium text-gray-500">
Light Mode
</span>
</SwitchLabel>
</SwitchGroup>
</div>
</template>

View File

@ -29,8 +29,21 @@
leave-to="opacity-0"
>
<DialogOverlay
class="fixed inset-0 transition-opacity bg-gray-700 bg-opacity-25"
/>
class="
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>
<!-- This element is to trick the browser into centering the modal contents. -->
@ -61,7 +74,11 @@
my-4
${modalSize}
sm:w-full
border-t-8 border-solid rounded shadow-xl border-primary-500`"
dark:shadow-glass
dark:border
dark:border-white/10
dark:bg-gray-800/90
border-t-8 border-solid rounded shadow-xl border-primary-500`"
>
<div
v-if="hasHeaderSlot"
@ -74,6 +91,8 @@
text-lg
font-medium
text-black
dark:text-white
dark:border-gray-600
border-b border-gray-200 border-solid
"
>

View File

@ -0,0 +1,14 @@
<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

@ -17,7 +17,7 @@
<meta name="csrf-token" content="{{ csrf_token() }}">
<!-- Module Styles -->
@foreach(\Crater\Services\Module\ModuleFacade::allStyles() as $name => $path)
@foreach (\Crater\Services\Module\ModuleFacade::allStyles() as $name => $path)
<link rel="stylesheet" href="/modules/styles/{{ $name }}">
@endforeach
@ -25,8 +25,8 @@
</head>
<body
class="h-full overflow-hidden bg-gray-100 font-base
@if(isset($current_theme)) theme-{{ $current_theme }} @else theme-{{get_app_setting('admin_portal_theme') ?? 'crater'}} @endif ">
class="h-full overflow-hidden bg-gray-100 dark:bg-gray-900 dark:text-white font-base
@if (isset($current_theme)) theme-{{ $current_theme }} @else theme-{{ get_app_setting('admin_portal_theme') ?? 'crater' }} @endif ">
<!-- Module Scripts -->
@foreach (\Crater\Services\Module\ModuleFacade::allScripts() as $name => $path)
@ -38,6 +38,14 @@
@endforeach
<script type="module">
if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
document.documentElement.classList.add('dark')
document.documentElement.style.setProperty('color-scheme', 'dark');
} else {
document.documentElement.classList.remove('dark')
document.documentElement.style.setProperty('color-scheme', 'light')
}
@if(isset($customer_logo))
window.customer_logo = "/storage/{{$customer_logo}}"
@ -57,12 +65,12 @@
window.login_page_description = "{{$login_page_description}}"
@endif
@endif
@if(isset($copyright_text))
window.copyright_text = "{{$copyright_text}}"
@endif
@endif
window.Crater.start()
</script>

View File

@ -19,6 +19,7 @@ module.exports = {
'./resources/scripts/**/*.js',
'./resources/scripts/**/*.vue',
],
darkMode: 'class',
theme: {
extend: {
colors: {