File: /home/posscale/public_html/printmanager/vendor/filament/filament/resources/js/index.js
import Mousetrap from '@danharrin/alpine-mousetrap'
document.addEventListener('alpine:init', () => {
window.Alpine.plugin(Mousetrap)
window.Alpine.store('sidebar', {
isOpen: window.Alpine.$persist(true).as('isOpen'),
collapsedGroups: window.Alpine.$persist(null).as('collapsedGroups'),
groupIsCollapsed: function (group) {
return this.collapsedGroups.includes(group)
},
collapseGroup: function (group) {
if (this.collapsedGroups.includes(group)) {
return
}
this.collapsedGroups = this.collapsedGroups.concat(group)
},
toggleCollapsedGroup: function (group) {
this.collapsedGroups = this.collapsedGroups.includes(group)
? this.collapsedGroups.filter(
(collapsedGroup) => collapsedGroup !== group,
)
: this.collapsedGroups.concat(group)
},
close: function () {
this.isOpen = false
},
open: function () {
this.isOpen = true
},
})
const theme =
localStorage.getItem('theme') ??
getComputedStyle(document.documentElement).getPropertyValue(
'--default-theme-mode',
)
window.Alpine.store(
'theme',
theme === 'dark' ||
(theme === 'system' &&
window.matchMedia('(prefers-color-scheme: dark)').matches)
? 'dark'
: 'light',
)
window.addEventListener('theme-changed', (event) => {
let theme = event.detail
localStorage.setItem('theme', theme)
if (theme === 'system') {
theme = window.matchMedia('(prefers-color-scheme: dark)').matches
? 'dark'
: 'light'
}
window.Alpine.store('theme', theme)
})
window
.matchMedia('(prefers-color-scheme: dark)')
.addEventListener('change', (event) => {
if (localStorage.getItem('theme') === 'system') {
window.Alpine.store('theme', event.matches ? 'dark' : 'light')
}
})
window.Alpine.effect(() => {
const theme = window.Alpine.store('theme')
theme === 'dark'
? document.documentElement.classList.add('dark')
: document.documentElement.classList.remove('dark')
})
})