initial commit

This commit is contained in:
2026-06-23 13:28:38 +07:00
commit 966ed115b2
590 changed files with 111412 additions and 0 deletions
+177
View File
@@ -0,0 +1,177 @@
export default {
IconBtn: {
icon: true,
color: 'default',
variant: 'text',
density: 'comfortable',
VIcon: {
size: 22,
},
},
VAlert: {
density: 'comfortable',
VBtn: {
color: undefined,
},
},
VBadge: {
// set v-badge default color to primary
color: 'primary',
},
VBtn: {
// set v-btn default color to primary
color: 'primary',
},
VChip: {
size: 'small',
},
VExpansionPanel: {
expandIcon: 'tabler-chevron-right',
collapseIcon: 'tabler-chevron-right',
},
VExpansionPanelTitle: {
expandIcon: 'tabler-chevron-right',
collapseIcon: 'tabler-chevron-right',
},
VList: {
density: 'comfortable',
VCheckboxBtn: {
density: 'compact',
},
},
VPagination: {
activeColor: 'primary',
density: 'comfortable',
variant: 'tonal',
},
VTabs: {
// set v-tabs default color to primary
color: 'primary',
density: 'comfortable',
VSlideGroup: {
showArrows: true,
},
},
VTooltip: {
// set v-tooltip default location to top
location: 'top',
},
VCheckboxBtn: {
color: 'primary',
},
VCheckbox: {
// set v-checkbox default color to primary
color: 'primary',
density: 'comfortable',
hideDetails: 'auto',
},
VRadioGroup: {
color: 'primary',
density: 'comfortable',
hideDetails: 'auto',
},
VRadio: {
density: 'comfortable',
hideDetails: 'auto',
},
VSelect: {
variant: 'outlined',
density: 'compact',
color: 'primary',
hideDetails: 'auto',
VChip: {
color: 'primary',
label: true,
},
},
VRangeSlider: {
// set v-range-slider default color to primary
color: 'primary',
trackColor: 'rgb(var(--v-theme-on-surface),0.06)',
trackSize: 6,
thumbSize: 7,
density: 'comfortable',
thumbLabel: true,
hideDetails: 'auto',
},
VRating: {
// set v-rating default color to primary
color: 'warning',
},
VProgressCircular: {
// set v-progress-circular default color to primary
color: 'primary',
},
VProgressLinear: {
height: 12,
roundedBar: true,
rounded: true,
bgColor: 'rgb(var(--v-theme-on-surface))',
},
VSlider: {
// set v-slider default color to primary
color: 'primary',
trackColor: 'rgb(var(--v-theme-on-surface),0.06)',
hideDetails: 'auto',
thumbSize: 7,
trackSize: 6,
},
VTextField: {
variant: 'outlined',
density: 'compact',
color: 'primary',
hideDetails: 'auto',
},
VAutocomplete: {
variant: 'outlined',
color: 'primary',
density: 'compact',
hideDetails: 'auto',
menuProps: {
contentClass: 'app-autocomplete__content v-autocomplete__content',
},
VChip: {
color: 'primary',
label: true,
},
},
VCombobox: {
variant: 'outlined',
density: 'compact',
color: 'primary',
hideDetails: 'auto',
VChip: {
color: 'primary',
label: true,
},
},
VFileInput: {
variant: 'outlined',
density: 'compact',
color: 'primary',
hideDetails: 'auto',
},
VTextarea: {
variant: 'outlined',
density: 'compact',
color: 'primary',
hideDetails: 'auto',
},
VSwitch: {
// set v-switch default color to primary
inset: true,
color: 'primary',
hideDetails: 'auto',
},
VTimeline: {
lineThickness: 1,
},
VDataTable: {
VDataTableFooter: {
VBtn: {
density: 'comfortable',
color: 'default',
},
},
},
}
+51
View File
@@ -0,0 +1,51 @@
import { Icon } from '@iconify/vue'
const aliases = {
collapse: 'tabler-chevron-up',
complete: 'tabler-check',
cancel: 'tabler-x',
close: 'tabler-x',
delete: 'tabler-x',
clear: 'tabler-x',
success: 'tabler-circle-check',
info: 'tabler-info-circle',
warning: 'tabler-alert-circle',
error: 'tabler-x',
prev: 'tabler-chevron-left',
next: 'tabler-chevron-right',
checkboxOn: 'custom-checked-checkbox',
checkboxOff: 'custom-unchecked-checkbox',
checkboxIndeterminate: 'custom-indeterminate-checkbox',
delimiter: 'tabler-circle',
sort: 'tabler-arrow-up',
expand: 'tabler-chevron-down',
menu: 'tabler-menu-2',
subgroup: 'tabler-caret-down',
dropdown: 'tabler-chevron-down',
radioOn: 'custom-checked-radio',
radioOff: 'custom-unchecked-radio',
edit: 'tabler-pencil',
ratingEmpty: 'custom-star-empty',
ratingFull: 'custom-star-fill',
ratingHalf: 'custom-star-half',
loading: 'tabler-refresh',
first: 'tabler-player-skip-back',
last: 'tabler-player-skip-forward',
unfold: 'tabler-arrows-move-vertical',
file: 'tabler-paperclip',
plus: 'tabler-plus',
minus: 'tabler-minus',
sortAsc: 'tabler-arrow-up',
sortDesc: 'tabler-arrow-down',
}
export const iconify = {
component: props => h(Icon, props),
}
export const icons = {
defaultSet: 'iconify',
aliases,
sets: {
iconify,
},
}
+18
View File
@@ -0,0 +1,18 @@
import { createVuetify } from 'vuetify'
import { VBtn } from 'vuetify/components/VBtn'
import defaults from './defaults'
import { icons } from './icons'
import theme from './theme'
// Styles
import '@core-scss/template/libs/vuetify/index.scss'
import 'vuetify/styles'
export default createVuetify({
aliases: {
IconBtn: VBtn,
},
defaults,
icons,
theme,
})
+125
View File
@@ -0,0 +1,125 @@
import { resolveVuetifyTheme } from '@core/utils/vuetify'
import { themeConfig } from '@themeConfig'
export const staticPrimaryColor = '#293077'
const theme = {
defaultTheme: resolveVuetifyTheme(),
themes: {
light: {
dark: false,
colors: {
'primary': localStorage.getItem(`${themeConfig.app.title}-lightThemePrimaryColor`) || staticPrimaryColor,
'on-primary': '#fff',
'secondary': '#A3AAED',
'on-secondary': '#fff',
'success': '#28C76F',
'on-success': '#fff',
'info': '#00CFE8',
'on-info': '#fff',
'warning': '#FF9F43',
'on-warning': '#fff',
'error': '#EA5455',
'background': '#F8F7FA',
'on-background': '#2F2B3D',
'on-surface': '#2F2B3D',
'grey-50': '#FAFAFA',
'grey-100': '#F5F5F5',
'grey-200': '#EEEEEE',
'grey-300': '#E0E0E0',
'grey-400': '#BDBDBD',
'grey-500': '#9E9E9E',
'grey-600': '#757575',
'grey-700': '#616161',
'grey-800': '#424242',
'grey-900': '#212121',
'perfect-scrollbar-thumb': '#DBDADE',
'skin-bordered-background': '#fff',
'skin-bordered-surface': '#fff',
},
variables: {
'code-color': '#d400ff',
'overlay-scrim-background': '#4C4E64',
'tooltip-background': '#4A5072',
'overlay-scrim-opacity': 0.5,
'hover-opacity': 0.04,
'focus-opacity': 0.12,
'selected-opacity': 0.06,
'activated-opacity': 0.16,
'pressed-opacity': 0.14,
'dragged-opacity': 0.1,
'disabled-opacity': 0.42,
'border-color': '#2F2B3D',
'border-opacity': 0.16,
'high-emphasis-opacity': 0.78,
'medium-emphasis-opacity': 0.68,
'switch-opacity': 0.2,
'switch-disabled-track-opacity': 0.3,
'switch-disabled-thumb-opacity': 0.4,
'switch-checked-disabled-opacity': 0.3,
// Shadows
'shadow-key-umbra-color': '#2F2B3D',
},
},
dark: {
dark: true,
colors: {
'primary': localStorage.getItem(`${themeConfig.app.title}-darkThemePrimaryColor`) || staticPrimaryColor,
'on-primary': '#fff',
'secondary': '#A3AAED',
'on-secondary': '#fff',
'success': '#28C76F',
'on-success': '#fff',
'info': '#00CFE8',
'on-info': '#fff',
'warning': '#FF9F43',
'on-warning': '#fff',
'error': '#EA5455',
'background': '#25293C',
'on-background': '#D0D4F1',
'surface': '#293077',
'on-surface': '#fff',
'grey-50': '#26293A',
'grey-100': '#2F3349',
'grey-200': '#26293A',
'grey-300': '#4A5072',
'grey-400': '#5E6692',
'grey-500': '#7983BB',
'grey-600': '#AAB3DE',
'grey-700': '#B6BEE3',
'grey-800': '#CFD3EC',
'grey-900': '#E7E9F6',
'perfect-scrollbar-thumb': '#4A5072',
'skin-bordered-background': '#2f3349',
'skin-bordered-surface': '#2f3349',
},
variables: {
'code-color': '#d400ff',
'overlay-scrim-background': '#101121',
'tooltip-background': '#5E6692',
'overlay-scrim-opacity': 0.6,
'hover-opacity': 0.04,
'focus-opacity': 0.12,
'selected-opacity': 0.06,
'activated-opacity': 0.16,
'pressed-opacity': 0.14,
'dragged-opacity': 0.1,
'disabled-opacity': 0.42,
'border-color': '#D0D4F1',
'border-opacity': 0.16,
'high-emphasis-opacity': 0.78,
'medium-emphasis-opacity': 0.68,
'switch-opacity': 0.4,
'switch-disabled-track-opacity': 0.4,
'switch-disabled-thumb-opacity': 0.8,
'switch-checked-disabled-opacity': 0.3,
// Shadows
'shadow-key-umbra-color': '#0F1422',
},
},
},
}
export default theme