feat: 新增插件依赖
This commit is contained in:
898
package-lock.json
generated
898
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
19
package.json
19
package.json
@@ -5,7 +5,7 @@
|
|||||||
"description": "My Electron application description",
|
"description": "My Electron application description",
|
||||||
"main": ".vite/build/main.js",
|
"main": ".vite/build/main.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "electron-forge start",
|
"start": "dotenv -e .env -- electron-forge start",
|
||||||
"package": "electron-forge package",
|
"package": "electron-forge package",
|
||||||
"make": "electron-forge make",
|
"make": "electron-forge make",
|
||||||
"publish": "electron-forge publish",
|
"publish": "electron-forge publish",
|
||||||
@@ -30,11 +30,10 @@
|
|||||||
"@electron-forge/plugin-fuses": "^7.10.2",
|
"@electron-forge/plugin-fuses": "^7.10.2",
|
||||||
"@electron-forge/plugin-vite": "^7.10.2",
|
"@electron-forge/plugin-vite": "^7.10.2",
|
||||||
"@electron/fuses": "^1.8.0",
|
"@electron/fuses": "^1.8.0",
|
||||||
"@tailwindcss/postcss": "^4.1.14",
|
"@tailwindcss/typography": "^0.5.19",
|
||||||
"@tailwindcss/vite": "^4.0.0",
|
"@tailwindcss/vite": "^4.1.17",
|
||||||
"@types/electron-squirrel-startup": "^1.0.2",
|
"@types/electron-squirrel-startup": "^1.0.2",
|
||||||
"@types/lodash-es": "^4.17.12",
|
"@types/lodash-es": "^4.17.12",
|
||||||
"@typescript-eslint/eslint-plugin": "^5.62.0",
|
|
||||||
"@typescript-eslint/parser": "^5.62.0",
|
"@typescript-eslint/parser": "^5.62.0",
|
||||||
"@vitejs/plugin-vue": "^5.2.4",
|
"@vitejs/plugin-vue": "^5.2.4",
|
||||||
"autoprefixer": "^10.4.21",
|
"autoprefixer": "^10.4.21",
|
||||||
@@ -42,17 +41,17 @@
|
|||||||
"eslint": "^8.57.1",
|
"eslint": "^8.57.1",
|
||||||
"eslint-plugin-import": "^2.32.0",
|
"eslint-plugin-import": "^2.32.0",
|
||||||
"eslint-plugin-vue": "^10.6.0",
|
"eslint-plugin-vue": "^10.6.0",
|
||||||
"postcss": "^8.5.6",
|
|
||||||
"sass-embedded": "^1.89.1",
|
"sass-embedded": "^1.89.1",
|
||||||
"tailwindcss": "^3.4.18",
|
"tailwindcss": "^4.1.11",
|
||||||
"typescript": "~4.5.4",
|
"typescript": "^5.8.3",
|
||||||
"unplugin-auto-import": "^20.3.0",
|
"unplugin-auto-import": "^20.3.0",
|
||||||
"vite": "^7.1.9",
|
"vite": "^7.1.9"
|
||||||
"vue-eslint-parser": "^10.2.0"
|
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@remixicon/vue": "^4.7.0",
|
"@remixicon/vue": "^4.7.0",
|
||||||
"@vueuse/core": "^14.1.0",
|
"@vueuse/core": "^14.1.0",
|
||||||
|
"dotenv-cli": "^11.0.0",
|
||||||
|
"electron-log": "^5.4.3",
|
||||||
"axios": "^1.12.2",
|
"axios": "^1.12.2",
|
||||||
"bytenode": "^1.5.7",
|
"bytenode": "^1.5.7",
|
||||||
"crypto": "^1.0.1",
|
"crypto": "^1.0.1",
|
||||||
@@ -62,6 +61,8 @@
|
|||||||
"log4js": "^6.9.1",
|
"log4js": "^6.9.1",
|
||||||
"pinia": "^2.3.1",
|
"pinia": "^2.3.1",
|
||||||
"vue": "^3.5.22",
|
"vue": "^3.5.22",
|
||||||
|
"vue-i18n": "^11.1.9",
|
||||||
|
"vue-markdown-render": "^2.3.0",
|
||||||
"vue-router": "^4.5.1"
|
"vue-router": "^4.5.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
317
src/renderer/auto-imports.d.ts
vendored
Normal file
317
src/renderer/auto-imports.d.ts
vendored
Normal file
@@ -0,0 +1,317 @@
|
|||||||
|
/* eslint-disable */
|
||||||
|
/* prettier-ignore */
|
||||||
|
// @ts-nocheck
|
||||||
|
// noinspection JSUnusedGlobalSymbols
|
||||||
|
// Generated by unplugin-auto-import
|
||||||
|
// biome-ignore lint: disable
|
||||||
|
export {}
|
||||||
|
declare global {
|
||||||
|
const EffectScope: typeof import('vue').EffectScope
|
||||||
|
const acceptHMRUpdate: typeof import('pinia').acceptHMRUpdate
|
||||||
|
const asyncComputed: typeof import('@vueuse/core').asyncComputed
|
||||||
|
const autoResetRef: typeof import('@vueuse/core').autoResetRef
|
||||||
|
const computed: typeof import('vue').computed
|
||||||
|
const computedAsync: typeof import('@vueuse/core').computedAsync
|
||||||
|
const computedEager: typeof import('@vueuse/core').computedEager
|
||||||
|
const computedInject: typeof import('@vueuse/core').computedInject
|
||||||
|
const computedWithControl: typeof import('@vueuse/core').computedWithControl
|
||||||
|
const controlledComputed: typeof import('@vueuse/core').controlledComputed
|
||||||
|
const controlledRef: typeof import('@vueuse/core').controlledRef
|
||||||
|
const createApp: typeof import('vue').createApp
|
||||||
|
const createEventHook: typeof import('@vueuse/core').createEventHook
|
||||||
|
const createGlobalState: typeof import('@vueuse/core').createGlobalState
|
||||||
|
const createInjectionState: typeof import('@vueuse/core').createInjectionState
|
||||||
|
const createPinia: typeof import('pinia').createPinia
|
||||||
|
const createReactiveFn: typeof import('@vueuse/core').createReactiveFn
|
||||||
|
const createRef: typeof import('@vueuse/core').createRef
|
||||||
|
const createReusableTemplate: typeof import('@vueuse/core').createReusableTemplate
|
||||||
|
const createSharedComposable: typeof import('@vueuse/core').createSharedComposable
|
||||||
|
const createTemplatePromise: typeof import('@vueuse/core').createTemplatePromise
|
||||||
|
const createUnrefFn: typeof import('@vueuse/core').createUnrefFn
|
||||||
|
const customRef: typeof import('vue').customRef
|
||||||
|
const debouncedRef: typeof import('@vueuse/core').debouncedRef
|
||||||
|
const debouncedWatch: typeof import('@vueuse/core').debouncedWatch
|
||||||
|
const defineAsyncComponent: typeof import('vue').defineAsyncComponent
|
||||||
|
const defineComponent: typeof import('vue').defineComponent
|
||||||
|
const defineStore: typeof import('pinia').defineStore
|
||||||
|
const eagerComputed: typeof import('@vueuse/core').eagerComputed
|
||||||
|
const effectScope: typeof import('vue').effectScope
|
||||||
|
const extendRef: typeof import('@vueuse/core').extendRef
|
||||||
|
const getActivePinia: typeof import('pinia').getActivePinia
|
||||||
|
const getCurrentInstance: typeof import('vue').getCurrentInstance
|
||||||
|
const getCurrentScope: typeof import('vue').getCurrentScope
|
||||||
|
const getCurrentWatcher: typeof import('vue').getCurrentWatcher
|
||||||
|
const h: typeof import('vue').h
|
||||||
|
const ignorableWatch: typeof import('@vueuse/core').ignorableWatch
|
||||||
|
const inject: typeof import('vue').inject
|
||||||
|
const injectLocal: typeof import('@vueuse/core').injectLocal
|
||||||
|
const isDefined: typeof import('@vueuse/core').isDefined
|
||||||
|
const isProxy: typeof import('vue').isProxy
|
||||||
|
const isReactive: typeof import('vue').isReactive
|
||||||
|
const isReadonly: typeof import('vue').isReadonly
|
||||||
|
const isRef: typeof import('vue').isRef
|
||||||
|
const isShallow: typeof import('vue').isShallow
|
||||||
|
const makeDestructurable: typeof import('@vueuse/core').makeDestructurable
|
||||||
|
const mapActions: typeof import('pinia').mapActions
|
||||||
|
const mapGetters: typeof import('pinia').mapGetters
|
||||||
|
const mapState: typeof import('pinia').mapState
|
||||||
|
const mapStores: typeof import('pinia').mapStores
|
||||||
|
const mapWritableState: typeof import('pinia').mapWritableState
|
||||||
|
const markRaw: typeof import('vue').markRaw
|
||||||
|
const nextTick: typeof import('vue').nextTick
|
||||||
|
const onActivated: typeof import('vue').onActivated
|
||||||
|
const onBeforeMount: typeof import('vue').onBeforeMount
|
||||||
|
const onBeforeRouteLeave: typeof import('vue-router').onBeforeRouteLeave
|
||||||
|
const onBeforeRouteUpdate: typeof import('vue-router').onBeforeRouteUpdate
|
||||||
|
const onBeforeUnmount: typeof import('vue').onBeforeUnmount
|
||||||
|
const onBeforeUpdate: typeof import('vue').onBeforeUpdate
|
||||||
|
const onClickOutside: typeof import('@vueuse/core').onClickOutside
|
||||||
|
const onDeactivated: typeof import('vue').onDeactivated
|
||||||
|
const onElementRemoval: typeof import('@vueuse/core').onElementRemoval
|
||||||
|
const onErrorCaptured: typeof import('vue').onErrorCaptured
|
||||||
|
const onKeyStroke: typeof import('@vueuse/core').onKeyStroke
|
||||||
|
const onLongPress: typeof import('@vueuse/core').onLongPress
|
||||||
|
const onMounted: typeof import('vue').onMounted
|
||||||
|
const onRenderTracked: typeof import('vue').onRenderTracked
|
||||||
|
const onRenderTriggered: typeof import('vue').onRenderTriggered
|
||||||
|
const onScopeDispose: typeof import('vue').onScopeDispose
|
||||||
|
const onServerPrefetch: typeof import('vue').onServerPrefetch
|
||||||
|
const onStartTyping: typeof import('@vueuse/core').onStartTyping
|
||||||
|
const onUnmounted: typeof import('vue').onUnmounted
|
||||||
|
const onUpdated: typeof import('vue').onUpdated
|
||||||
|
const onWatcherCleanup: typeof import('vue').onWatcherCleanup
|
||||||
|
const pausableWatch: typeof import('@vueuse/core').pausableWatch
|
||||||
|
const provide: typeof import('vue').provide
|
||||||
|
const provideLocal: typeof import('@vueuse/core').provideLocal
|
||||||
|
const reactify: typeof import('@vueuse/core').reactify
|
||||||
|
const reactifyObject: typeof import('@vueuse/core').reactifyObject
|
||||||
|
const reactive: typeof import('vue').reactive
|
||||||
|
const reactiveComputed: typeof import('@vueuse/core').reactiveComputed
|
||||||
|
const reactiveOmit: typeof import('@vueuse/core').reactiveOmit
|
||||||
|
const reactivePick: typeof import('@vueuse/core').reactivePick
|
||||||
|
const readonly: typeof import('vue').readonly
|
||||||
|
const ref: typeof import('vue').ref
|
||||||
|
const refAutoReset: typeof import('@vueuse/core').refAutoReset
|
||||||
|
const refDebounced: typeof import('@vueuse/core').refDebounced
|
||||||
|
const refDefault: typeof import('@vueuse/core').refDefault
|
||||||
|
const refManualReset: typeof import('@vueuse/core').refManualReset
|
||||||
|
const refThrottled: typeof import('@vueuse/core').refThrottled
|
||||||
|
const refWithControl: typeof import('@vueuse/core').refWithControl
|
||||||
|
const resolveComponent: typeof import('vue').resolveComponent
|
||||||
|
const resolveRef: typeof import('@vueuse/core').resolveRef
|
||||||
|
const setActivePinia: typeof import('pinia').setActivePinia
|
||||||
|
const setMapStoreSuffix: typeof import('pinia').setMapStoreSuffix
|
||||||
|
const shallowReactive: typeof import('vue').shallowReactive
|
||||||
|
const shallowReadonly: typeof import('vue').shallowReadonly
|
||||||
|
const shallowRef: typeof import('vue').shallowRef
|
||||||
|
const storeToRefs: typeof import('pinia').storeToRefs
|
||||||
|
const syncRef: typeof import('@vueuse/core').syncRef
|
||||||
|
const syncRefs: typeof import('@vueuse/core').syncRefs
|
||||||
|
const templateRef: typeof import('@vueuse/core').templateRef
|
||||||
|
const throttledRef: typeof import('@vueuse/core').throttledRef
|
||||||
|
const throttledWatch: typeof import('@vueuse/core').throttledWatch
|
||||||
|
const toRaw: typeof import('vue').toRaw
|
||||||
|
const toReactive: typeof import('@vueuse/core').toReactive
|
||||||
|
const toRef: typeof import('vue').toRef
|
||||||
|
const toRefs: typeof import('vue').toRefs
|
||||||
|
const toValue: typeof import('vue').toValue
|
||||||
|
const triggerRef: typeof import('vue').triggerRef
|
||||||
|
const tryOnBeforeMount: typeof import('@vueuse/core').tryOnBeforeMount
|
||||||
|
const tryOnBeforeUnmount: typeof import('@vueuse/core').tryOnBeforeUnmount
|
||||||
|
const tryOnMounted: typeof import('@vueuse/core').tryOnMounted
|
||||||
|
const tryOnScopeDispose: typeof import('@vueuse/core').tryOnScopeDispose
|
||||||
|
const tryOnUnmounted: typeof import('@vueuse/core').tryOnUnmounted
|
||||||
|
const unref: typeof import('vue').unref
|
||||||
|
const unrefElement: typeof import('@vueuse/core').unrefElement
|
||||||
|
const until: typeof import('@vueuse/core').until
|
||||||
|
const useActiveElement: typeof import('@vueuse/core').useActiveElement
|
||||||
|
const useAnimate: typeof import('@vueuse/core').useAnimate
|
||||||
|
const useArrayDifference: typeof import('@vueuse/core').useArrayDifference
|
||||||
|
const useArrayEvery: typeof import('@vueuse/core').useArrayEvery
|
||||||
|
const useArrayFilter: typeof import('@vueuse/core').useArrayFilter
|
||||||
|
const useArrayFind: typeof import('@vueuse/core').useArrayFind
|
||||||
|
const useArrayFindIndex: typeof import('@vueuse/core').useArrayFindIndex
|
||||||
|
const useArrayFindLast: typeof import('@vueuse/core').useArrayFindLast
|
||||||
|
const useArrayIncludes: typeof import('@vueuse/core').useArrayIncludes
|
||||||
|
const useArrayJoin: typeof import('@vueuse/core').useArrayJoin
|
||||||
|
const useArrayMap: typeof import('@vueuse/core').useArrayMap
|
||||||
|
const useArrayReduce: typeof import('@vueuse/core').useArrayReduce
|
||||||
|
const useArraySome: typeof import('@vueuse/core').useArraySome
|
||||||
|
const useArrayUnique: typeof import('@vueuse/core').useArrayUnique
|
||||||
|
const useAsyncQueue: typeof import('@vueuse/core').useAsyncQueue
|
||||||
|
const useAsyncState: typeof import('@vueuse/core').useAsyncState
|
||||||
|
const useAttrs: typeof import('vue').useAttrs
|
||||||
|
const useBase64: typeof import('@vueuse/core').useBase64
|
||||||
|
const useBattery: typeof import('@vueuse/core').useBattery
|
||||||
|
const useBluetooth: typeof import('@vueuse/core').useBluetooth
|
||||||
|
const useBreakpoints: typeof import('@vueuse/core').useBreakpoints
|
||||||
|
const useBroadcastChannel: typeof import('@vueuse/core').useBroadcastChannel
|
||||||
|
const useBrowserLocation: typeof import('@vueuse/core').useBrowserLocation
|
||||||
|
const useCached: typeof import('@vueuse/core').useCached
|
||||||
|
const useClipboard: typeof import('@vueuse/core').useClipboard
|
||||||
|
const useClipboardItems: typeof import('@vueuse/core').useClipboardItems
|
||||||
|
const useCloned: typeof import('@vueuse/core').useCloned
|
||||||
|
const useColorMode: typeof import('@vueuse/core').useColorMode
|
||||||
|
const useConfirmDialog: typeof import('@vueuse/core').useConfirmDialog
|
||||||
|
const useCountdown: typeof import('@vueuse/core').useCountdown
|
||||||
|
const useCounter: typeof import('@vueuse/core').useCounter
|
||||||
|
const useCssModule: typeof import('vue').useCssModule
|
||||||
|
const useCssVar: typeof import('@vueuse/core').useCssVar
|
||||||
|
const useCssVars: typeof import('vue').useCssVars
|
||||||
|
const useCurrentElement: typeof import('@vueuse/core').useCurrentElement
|
||||||
|
const useCycleList: typeof import('@vueuse/core').useCycleList
|
||||||
|
const useDark: typeof import('@vueuse/core').useDark
|
||||||
|
const useDateFormat: typeof import('@vueuse/core').useDateFormat
|
||||||
|
const useDebounce: typeof import('@vueuse/core').useDebounce
|
||||||
|
const useDebounceFn: typeof import('@vueuse/core').useDebounceFn
|
||||||
|
const useDebouncedRefHistory: typeof import('@vueuse/core').useDebouncedRefHistory
|
||||||
|
const useDeviceMotion: typeof import('@vueuse/core').useDeviceMotion
|
||||||
|
const useDeviceOrientation: typeof import('@vueuse/core').useDeviceOrientation
|
||||||
|
const useDevicePixelRatio: typeof import('@vueuse/core').useDevicePixelRatio
|
||||||
|
const useDevicesList: typeof import('@vueuse/core').useDevicesList
|
||||||
|
const useDisplayMedia: typeof import('@vueuse/core').useDisplayMedia
|
||||||
|
const useDocumentVisibility: typeof import('@vueuse/core').useDocumentVisibility
|
||||||
|
const useDraggable: typeof import('@vueuse/core').useDraggable
|
||||||
|
const useDropZone: typeof import('@vueuse/core').useDropZone
|
||||||
|
const useElementBounding: typeof import('@vueuse/core').useElementBounding
|
||||||
|
const useElementByPoint: typeof import('@vueuse/core').useElementByPoint
|
||||||
|
const useElementHover: typeof import('@vueuse/core').useElementHover
|
||||||
|
const useElementSize: typeof import('@vueuse/core').useElementSize
|
||||||
|
const useElementVisibility: typeof import('@vueuse/core').useElementVisibility
|
||||||
|
const useEventBus: typeof import('@vueuse/core').useEventBus
|
||||||
|
const useEventListener: typeof import('@vueuse/core').useEventListener
|
||||||
|
const useEventSource: typeof import('@vueuse/core').useEventSource
|
||||||
|
const useEyeDropper: typeof import('@vueuse/core').useEyeDropper
|
||||||
|
const useFavicon: typeof import('@vueuse/core').useFavicon
|
||||||
|
const useFetch: typeof import('@vueuse/core').useFetch
|
||||||
|
const useFileDialog: typeof import('@vueuse/core').useFileDialog
|
||||||
|
const useFileSystemAccess: typeof import('@vueuse/core').useFileSystemAccess
|
||||||
|
const useFocus: typeof import('@vueuse/core').useFocus
|
||||||
|
const useFocusWithin: typeof import('@vueuse/core').useFocusWithin
|
||||||
|
const useFps: typeof import('@vueuse/core').useFps
|
||||||
|
const useFullscreen: typeof import('@vueuse/core').useFullscreen
|
||||||
|
const useGamepad: typeof import('@vueuse/core').useGamepad
|
||||||
|
const useGeolocation: typeof import('@vueuse/core').useGeolocation
|
||||||
|
const useId: typeof import('vue').useId
|
||||||
|
const useIdle: typeof import('@vueuse/core').useIdle
|
||||||
|
const useImage: typeof import('@vueuse/core').useImage
|
||||||
|
const useInfiniteScroll: typeof import('@vueuse/core').useInfiniteScroll
|
||||||
|
const useIntersectionObserver: typeof import('@vueuse/core').useIntersectionObserver
|
||||||
|
const useInterval: typeof import('@vueuse/core').useInterval
|
||||||
|
const useIntervalFn: typeof import('@vueuse/core').useIntervalFn
|
||||||
|
const useKeyModifier: typeof import('@vueuse/core').useKeyModifier
|
||||||
|
const useLastChanged: typeof import('@vueuse/core').useLastChanged
|
||||||
|
const useLink: typeof import('vue-router').useLink
|
||||||
|
const useLocalStorage: typeof import('@vueuse/core').useLocalStorage
|
||||||
|
const useMagicKeys: typeof import('@vueuse/core').useMagicKeys
|
||||||
|
const useManualRefHistory: typeof import('@vueuse/core').useManualRefHistory
|
||||||
|
const useMediaControls: typeof import('@vueuse/core').useMediaControls
|
||||||
|
const useMediaQuery: typeof import('@vueuse/core').useMediaQuery
|
||||||
|
const useMemoize: typeof import('@vueuse/core').useMemoize
|
||||||
|
const useMemory: typeof import('@vueuse/core').useMemory
|
||||||
|
const useModel: typeof import('vue').useModel
|
||||||
|
const useMounted: typeof import('@vueuse/core').useMounted
|
||||||
|
const useMouse: typeof import('@vueuse/core').useMouse
|
||||||
|
const useMouseInElement: typeof import('@vueuse/core').useMouseInElement
|
||||||
|
const useMousePressed: typeof import('@vueuse/core').useMousePressed
|
||||||
|
const useMutationObserver: typeof import('@vueuse/core').useMutationObserver
|
||||||
|
const useNavigatorLanguage: typeof import('@vueuse/core').useNavigatorLanguage
|
||||||
|
const useNetwork: typeof import('@vueuse/core').useNetwork
|
||||||
|
const useNow: typeof import('@vueuse/core').useNow
|
||||||
|
const useObjectUrl: typeof import('@vueuse/core').useObjectUrl
|
||||||
|
const useOffsetPagination: typeof import('@vueuse/core').useOffsetPagination
|
||||||
|
const useOnline: typeof import('@vueuse/core').useOnline
|
||||||
|
const usePageLeave: typeof import('@vueuse/core').usePageLeave
|
||||||
|
const useParallax: typeof import('@vueuse/core').useParallax
|
||||||
|
const useParentElement: typeof import('@vueuse/core').useParentElement
|
||||||
|
const usePerformanceObserver: typeof import('@vueuse/core').usePerformanceObserver
|
||||||
|
const usePermission: typeof import('@vueuse/core').usePermission
|
||||||
|
const usePointer: typeof import('@vueuse/core').usePointer
|
||||||
|
const usePointerLock: typeof import('@vueuse/core').usePointerLock
|
||||||
|
const usePointerSwipe: typeof import('@vueuse/core').usePointerSwipe
|
||||||
|
const usePreferredColorScheme: typeof import('@vueuse/core').usePreferredColorScheme
|
||||||
|
const usePreferredContrast: typeof import('@vueuse/core').usePreferredContrast
|
||||||
|
const usePreferredDark: typeof import('@vueuse/core').usePreferredDark
|
||||||
|
const usePreferredLanguages: typeof import('@vueuse/core').usePreferredLanguages
|
||||||
|
const usePreferredReducedMotion: typeof import('@vueuse/core').usePreferredReducedMotion
|
||||||
|
const usePreferredReducedTransparency: typeof import('@vueuse/core').usePreferredReducedTransparency
|
||||||
|
const usePrevious: typeof import('@vueuse/core').usePrevious
|
||||||
|
const useRafFn: typeof import('@vueuse/core').useRafFn
|
||||||
|
const useRefHistory: typeof import('@vueuse/core').useRefHistory
|
||||||
|
const useResizeObserver: typeof import('@vueuse/core').useResizeObserver
|
||||||
|
const useRoute: typeof import('vue-router').useRoute
|
||||||
|
const useRouter: typeof import('vue-router').useRouter
|
||||||
|
const useSSRWidth: typeof import('@vueuse/core').useSSRWidth
|
||||||
|
const useScreenOrientation: typeof import('@vueuse/core').useScreenOrientation
|
||||||
|
const useScreenSafeArea: typeof import('@vueuse/core').useScreenSafeArea
|
||||||
|
const useScriptTag: typeof import('@vueuse/core').useScriptTag
|
||||||
|
const useScroll: typeof import('@vueuse/core').useScroll
|
||||||
|
const useScrollLock: typeof import('@vueuse/core').useScrollLock
|
||||||
|
const useSessionStorage: typeof import('@vueuse/core').useSessionStorage
|
||||||
|
const useShare: typeof import('@vueuse/core').useShare
|
||||||
|
const useSlots: typeof import('vue').useSlots
|
||||||
|
const useSorted: typeof import('@vueuse/core').useSorted
|
||||||
|
const useSpeechRecognition: typeof import('@vueuse/core').useSpeechRecognition
|
||||||
|
const useSpeechSynthesis: typeof import('@vueuse/core').useSpeechSynthesis
|
||||||
|
const useStepper: typeof import('@vueuse/core').useStepper
|
||||||
|
const useStorage: typeof import('@vueuse/core').useStorage
|
||||||
|
const useStorageAsync: typeof import('@vueuse/core').useStorageAsync
|
||||||
|
const useStyleTag: typeof import('@vueuse/core').useStyleTag
|
||||||
|
const useSupported: typeof import('@vueuse/core').useSupported
|
||||||
|
const useSwipe: typeof import('@vueuse/core').useSwipe
|
||||||
|
const useTemplateRef: typeof import('vue').useTemplateRef
|
||||||
|
const useTemplateRefsList: typeof import('@vueuse/core').useTemplateRefsList
|
||||||
|
const useTextDirection: typeof import('@vueuse/core').useTextDirection
|
||||||
|
const useTextSelection: typeof import('@vueuse/core').useTextSelection
|
||||||
|
const useTextareaAutosize: typeof import('@vueuse/core').useTextareaAutosize
|
||||||
|
const useThrottle: typeof import('@vueuse/core').useThrottle
|
||||||
|
const useThrottleFn: typeof import('@vueuse/core').useThrottleFn
|
||||||
|
const useThrottledRefHistory: typeof import('@vueuse/core').useThrottledRefHistory
|
||||||
|
const useTimeAgo: typeof import('@vueuse/core').useTimeAgo
|
||||||
|
const useTimeAgoIntl: typeof import('@vueuse/core').useTimeAgoIntl
|
||||||
|
const useTimeout: typeof import('@vueuse/core').useTimeout
|
||||||
|
const useTimeoutFn: typeof import('@vueuse/core').useTimeoutFn
|
||||||
|
const useTimeoutPoll: typeof import('@vueuse/core').useTimeoutPoll
|
||||||
|
const useTimestamp: typeof import('@vueuse/core').useTimestamp
|
||||||
|
const useTitle: typeof import('@vueuse/core').useTitle
|
||||||
|
const useToNumber: typeof import('@vueuse/core').useToNumber
|
||||||
|
const useToString: typeof import('@vueuse/core').useToString
|
||||||
|
const useToggle: typeof import('@vueuse/core').useToggle
|
||||||
|
const useTransition: typeof import('@vueuse/core').useTransition
|
||||||
|
const useUrlSearchParams: typeof import('@vueuse/core').useUrlSearchParams
|
||||||
|
const useUserMedia: typeof import('@vueuse/core').useUserMedia
|
||||||
|
const useVModel: typeof import('@vueuse/core').useVModel
|
||||||
|
const useVModels: typeof import('@vueuse/core').useVModels
|
||||||
|
const useVibrate: typeof import('@vueuse/core').useVibrate
|
||||||
|
const useVirtualList: typeof import('@vueuse/core').useVirtualList
|
||||||
|
const useWakeLock: typeof import('@vueuse/core').useWakeLock
|
||||||
|
const useWebNotification: typeof import('@vueuse/core').useWebNotification
|
||||||
|
const useWebSocket: typeof import('@vueuse/core').useWebSocket
|
||||||
|
const useWebWorker: typeof import('@vueuse/core').useWebWorker
|
||||||
|
const useWebWorkerFn: typeof import('@vueuse/core').useWebWorkerFn
|
||||||
|
const useWindowFocus: typeof import('@vueuse/core').useWindowFocus
|
||||||
|
const useWindowScroll: typeof import('@vueuse/core').useWindowScroll
|
||||||
|
const useWindowSize: typeof import('@vueuse/core').useWindowSize
|
||||||
|
const watch: typeof import('vue').watch
|
||||||
|
const watchArray: typeof import('@vueuse/core').watchArray
|
||||||
|
const watchAtMost: typeof import('@vueuse/core').watchAtMost
|
||||||
|
const watchDebounced: typeof import('@vueuse/core').watchDebounced
|
||||||
|
const watchDeep: typeof import('@vueuse/core').watchDeep
|
||||||
|
const watchEffect: typeof import('vue').watchEffect
|
||||||
|
const watchIgnorable: typeof import('@vueuse/core').watchIgnorable
|
||||||
|
const watchImmediate: typeof import('@vueuse/core').watchImmediate
|
||||||
|
const watchOnce: typeof import('@vueuse/core').watchOnce
|
||||||
|
const watchPausable: typeof import('@vueuse/core').watchPausable
|
||||||
|
const watchPostEffect: typeof import('vue').watchPostEffect
|
||||||
|
const watchSyncEffect: typeof import('vue').watchSyncEffect
|
||||||
|
const watchThrottled: typeof import('@vueuse/core').watchThrottled
|
||||||
|
const watchTriggerable: typeof import('@vueuse/core').watchTriggerable
|
||||||
|
const watchWithFilter: typeof import('@vueuse/core').watchWithFilter
|
||||||
|
const whenever: typeof import('@vueuse/core').whenever
|
||||||
|
}
|
||||||
|
// for type re-export
|
||||||
|
declare global {
|
||||||
|
// @ts-ignore
|
||||||
|
export type { Component, Slot, Slots, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, ShallowRef, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
|
||||||
|
import('vue')
|
||||||
|
}
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
@tailwind base;
|
|
||||||
@tailwind components;
|
|
||||||
@tailwind utilities;
|
|
||||||
|
|
||||||
body {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg {
|
|
||||||
background: linear-gradient( 180deg, #EFF6FF 0%, #F5F7FA 40%);
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import "./index.css";
|
import "./styles/index.css";
|
||||||
import { createApp } from "vue";
|
import { createApp } from "vue";
|
||||||
import { createPinia } from "pinia";
|
import { createPinia } from "pinia";
|
||||||
import router from "./router";
|
import router from "./router";
|
||||||
@@ -16,9 +16,7 @@ app.use(createPinia());
|
|||||||
|
|
||||||
// 使用 Vue Router
|
// 使用 Vue Router
|
||||||
app.use(router);
|
app.use(router);
|
||||||
app.use(ElementPlus, {
|
app.use(ElementPlus, { locale })
|
||||||
locale,
|
|
||||||
})
|
|
||||||
|
|
||||||
// 挂载应用到 DOM
|
// 挂载应用到 DOM
|
||||||
app.mount("#app");
|
app.mount("#app");
|
||||||
|
|||||||
12
src/renderer/styles/index.css
Normal file
12
src/renderer/styles/index.css
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
@import "tailwindcss";
|
||||||
|
@import "./theme/index.css";
|
||||||
|
@plugin "@tailwindcss/typography";
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg {
|
||||||
|
background: linear-gradient(180deg, #EFF6FF 0%, #F5F7FA 40%);
|
||||||
|
}
|
||||||
126
src/renderer/styles/theme/dark.css
Normal file
126
src/renderer/styles/theme/dark.css
Normal file
@@ -0,0 +1,126 @@
|
|||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
:root {
|
||||||
|
--primary-color: #07C160;
|
||||||
|
--bg-color: #1E1E1E;
|
||||||
|
--bg-secondary: #2C2C2C;
|
||||||
|
|
||||||
|
--text-primary: #E0E0E0;
|
||||||
|
--text-secondary: #A0A0A0;
|
||||||
|
|
||||||
|
--bubble-self: var(--primary-color);
|
||||||
|
--bubble-others: #3A3A3A;
|
||||||
|
--input-bg: #333333;
|
||||||
|
--ripple-color: var(--text-secondary);
|
||||||
|
--ripple-opacity: 0.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre code.hljs {
|
||||||
|
display: block;
|
||||||
|
overflow-x: auto;
|
||||||
|
padding: 1em
|
||||||
|
}
|
||||||
|
code.hljs {
|
||||||
|
padding: 3px 5px
|
||||||
|
}
|
||||||
|
/*!
|
||||||
|
Theme: GitHub Dark
|
||||||
|
Description: Dark theme as seen on github.com
|
||||||
|
Author: github.com
|
||||||
|
Maintainer: @Hirse
|
||||||
|
Updated: 2021-05-15
|
||||||
|
|
||||||
|
Outdated base version: https://github.com/primer/github-syntax-dark
|
||||||
|
Current colors taken from GitHub's CSS
|
||||||
|
*/
|
||||||
|
.hljs {
|
||||||
|
color: var(--text-primary);
|
||||||
|
background: var(--input-bg);
|
||||||
|
}
|
||||||
|
.hljs-doctag,
|
||||||
|
.hljs-keyword,
|
||||||
|
.hljs-meta .hljs-keyword,
|
||||||
|
.hljs-template-tag,
|
||||||
|
.hljs-template-variable,
|
||||||
|
.hljs-type,
|
||||||
|
.hljs-variable.language_ {
|
||||||
|
/* prettylights-syntax-keyword */
|
||||||
|
color: #ff7b72
|
||||||
|
}
|
||||||
|
.hljs-title,
|
||||||
|
.hljs-title.class_,
|
||||||
|
.hljs-title.class_.inherited__,
|
||||||
|
.hljs-title.function_ {
|
||||||
|
/* prettylights-syntax-entity */
|
||||||
|
color: #d2a8ff
|
||||||
|
}
|
||||||
|
.hljs-attr,
|
||||||
|
.hljs-attribute,
|
||||||
|
.hljs-literal,
|
||||||
|
.hljs-meta,
|
||||||
|
.hljs-number,
|
||||||
|
.hljs-operator,
|
||||||
|
.hljs-variable,
|
||||||
|
.hljs-selector-attr,
|
||||||
|
.hljs-selector-class,
|
||||||
|
.hljs-selector-id {
|
||||||
|
/* prettylights-syntax-constant */
|
||||||
|
color: #79c0ff
|
||||||
|
}
|
||||||
|
.hljs-regexp,
|
||||||
|
.hljs-string,
|
||||||
|
.hljs-meta .hljs-string {
|
||||||
|
/* prettylights-syntax-string */
|
||||||
|
color: #a5d6ff
|
||||||
|
}
|
||||||
|
.hljs-built_in,
|
||||||
|
.hljs-symbol {
|
||||||
|
/* prettylights-syntax-variable */
|
||||||
|
color: #ffa657
|
||||||
|
}
|
||||||
|
.hljs-comment,
|
||||||
|
.hljs-code,
|
||||||
|
.hljs-formula {
|
||||||
|
/* prettylights-syntax-comment */
|
||||||
|
color: #8b949e
|
||||||
|
}
|
||||||
|
.hljs-name,
|
||||||
|
.hljs-quote,
|
||||||
|
.hljs-selector-tag,
|
||||||
|
.hljs-selector-pseudo {
|
||||||
|
/* prettylights-syntax-entity-tag */
|
||||||
|
color: #7ee787
|
||||||
|
}
|
||||||
|
.hljs-subst {
|
||||||
|
/* prettylights-syntax-storage-modifier-import */
|
||||||
|
color: #c9d1d9
|
||||||
|
}
|
||||||
|
.hljs-section {
|
||||||
|
/* prettylights-syntax-markup-heading */
|
||||||
|
color: #1f6feb;
|
||||||
|
font-weight: bold
|
||||||
|
}
|
||||||
|
.hljs-bullet {
|
||||||
|
/* prettylights-syntax-markup-list */
|
||||||
|
color: #f2cc60
|
||||||
|
}
|
||||||
|
.hljs-emphasis {
|
||||||
|
/* prettylights-syntax-markup-italic */
|
||||||
|
color: #c9d1d9;
|
||||||
|
font-style: italic
|
||||||
|
}
|
||||||
|
.hljs-strong {
|
||||||
|
/* prettylights-syntax-markup-bold */
|
||||||
|
color: #c9d1d9;
|
||||||
|
font-weight: bold
|
||||||
|
}
|
||||||
|
.hljs-addition {
|
||||||
|
/* prettylights-syntax-markup-inserted */
|
||||||
|
color: #aff5b4;
|
||||||
|
background-color: #033a16
|
||||||
|
}
|
||||||
|
.hljs-deletion {
|
||||||
|
/* prettylights-syntax-markup-deleted */
|
||||||
|
color: #ffdcd7;
|
||||||
|
background-color: #67060c
|
||||||
|
}
|
||||||
|
}
|
||||||
18
src/renderer/styles/theme/index.css
Normal file
18
src/renderer/styles/theme/index.css
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
@import './dark.css';
|
||||||
|
@import './light.css';
|
||||||
|
|
||||||
|
@theme {
|
||||||
|
--color-primary: var(--primary-color);
|
||||||
|
--color-primary-light: var(--primary-color-light);
|
||||||
|
--color-primary-dark: var(--primary-color-dark);
|
||||||
|
--color-primary-hover: var(--primary-color-hover);
|
||||||
|
--color-primary-active: var(--primary-color-active);
|
||||||
|
--color-primary-subtle: var(--primary-color-subtle);
|
||||||
|
--color-main: var(--bg-color);
|
||||||
|
--color-secondary: var(--bg-secondary);
|
||||||
|
--color-input: var(--input-bg);
|
||||||
|
--color-bubble-self: var(--bubble-self);
|
||||||
|
--color-bubble-others: var(--bubble-others);
|
||||||
|
--color-tx-primary: var(--text-primary);
|
||||||
|
--color-tx-secondary: var(--text-secondary);
|
||||||
|
}
|
||||||
129
src/renderer/styles/theme/light.css
Normal file
129
src/renderer/styles/theme/light.css
Normal file
@@ -0,0 +1,129 @@
|
|||||||
|
@media (prefers-color-scheme: light) {
|
||||||
|
:root {
|
||||||
|
--primary-color: #07C160;
|
||||||
|
--bg-color: #FFFFFF;
|
||||||
|
--bg-secondary: #F5F5F5;
|
||||||
|
--text-primary: #000000;
|
||||||
|
--text-secondary: #7F7F7F;
|
||||||
|
|
||||||
|
--header-bg: var(--primary-color);
|
||||||
|
--bubble-self: var(--primary-color);
|
||||||
|
--bubble-others: #FFFFFF;
|
||||||
|
--input-bg: #F0F0F0;
|
||||||
|
--ripple-color: var(--text-secondary);
|
||||||
|
--ripple-opacity: 0.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre code.hljs {
|
||||||
|
display: block;
|
||||||
|
overflow-x: auto;
|
||||||
|
padding: 1em
|
||||||
|
}
|
||||||
|
code.hljs {
|
||||||
|
padding: 3px 5px
|
||||||
|
}
|
||||||
|
/*!
|
||||||
|
Theme: GitHub
|
||||||
|
Description: Light theme as seen on github.com
|
||||||
|
Author: github.com
|
||||||
|
Maintainer: @Hirse
|
||||||
|
Updated: 2021-05-15
|
||||||
|
|
||||||
|
Outdated base version: https://github.com/primer/github-syntax-light
|
||||||
|
Current colors taken from GitHub's CSS
|
||||||
|
*/
|
||||||
|
.hljs {
|
||||||
|
/* color: #24292e;
|
||||||
|
background: #ffffff */
|
||||||
|
|
||||||
|
color: var(--text-primary);
|
||||||
|
background: var(--input-bg);
|
||||||
|
}
|
||||||
|
.hljs-doctag,
|
||||||
|
.hljs-keyword,
|
||||||
|
.hljs-meta .hljs-keyword,
|
||||||
|
.hljs-template-tag,
|
||||||
|
.hljs-template-variable,
|
||||||
|
.hljs-type,
|
||||||
|
.hljs-variable.language_ {
|
||||||
|
/* prettylights-syntax-keyword */
|
||||||
|
color: #d73a49
|
||||||
|
}
|
||||||
|
.hljs-title,
|
||||||
|
.hljs-title.class_,
|
||||||
|
.hljs-title.class_.inherited__,
|
||||||
|
.hljs-title.function_ {
|
||||||
|
/* prettylights-syntax-entity */
|
||||||
|
color: #6f42c1
|
||||||
|
}
|
||||||
|
.hljs-attr,
|
||||||
|
.hljs-attribute,
|
||||||
|
.hljs-literal,
|
||||||
|
.hljs-meta,
|
||||||
|
.hljs-number,
|
||||||
|
.hljs-operator,
|
||||||
|
.hljs-variable,
|
||||||
|
.hljs-selector-attr,
|
||||||
|
.hljs-selector-class,
|
||||||
|
.hljs-selector-id {
|
||||||
|
/* prettylights-syntax-constant */
|
||||||
|
color: #005cc5
|
||||||
|
}
|
||||||
|
.hljs-regexp,
|
||||||
|
.hljs-string,
|
||||||
|
.hljs-meta .hljs-string {
|
||||||
|
/* prettylights-syntax-string */
|
||||||
|
color: #032f62
|
||||||
|
}
|
||||||
|
.hljs-built_in,
|
||||||
|
.hljs-symbol {
|
||||||
|
/* prettylights-syntax-variable */
|
||||||
|
color: #e36209
|
||||||
|
}
|
||||||
|
.hljs-comment,
|
||||||
|
.hljs-code,
|
||||||
|
.hljs-formula {
|
||||||
|
/* prettylights-syntax-comment */
|
||||||
|
color: #6a737d
|
||||||
|
}
|
||||||
|
.hljs-name,
|
||||||
|
.hljs-quote,
|
||||||
|
.hljs-selector-tag,
|
||||||
|
.hljs-selector-pseudo {
|
||||||
|
/* prettylights-syntax-entity-tag */
|
||||||
|
color: #22863a
|
||||||
|
}
|
||||||
|
.hljs-subst {
|
||||||
|
/* prettylights-syntax-storage-modifier-import */
|
||||||
|
color: #24292e
|
||||||
|
}
|
||||||
|
.hljs-section {
|
||||||
|
/* prettylights-syntax-markup-heading */
|
||||||
|
color: #005cc5;
|
||||||
|
font-weight: bold
|
||||||
|
}
|
||||||
|
.hljs-bullet {
|
||||||
|
/* prettylights-syntax-markup-list */
|
||||||
|
color: #735c0f
|
||||||
|
}
|
||||||
|
.hljs-emphasis {
|
||||||
|
/* prettylights-syntax-markup-italic */
|
||||||
|
color: #24292e;
|
||||||
|
font-style: italic
|
||||||
|
}
|
||||||
|
.hljs-strong {
|
||||||
|
/* prettylights-syntax-markup-bold */
|
||||||
|
color: #24292e;
|
||||||
|
font-weight: bold
|
||||||
|
}
|
||||||
|
.hljs-addition {
|
||||||
|
/* prettylights-syntax-markup-inserted */
|
||||||
|
color: #22863a;
|
||||||
|
background-color: #f0fff4
|
||||||
|
}
|
||||||
|
.hljs-deletion {
|
||||||
|
/* prettylights-syntax-markup-deleted */
|
||||||
|
color: #b31d28;
|
||||||
|
background-color: #ffeef0
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
/** @type {import('tailwindcss').Config} */
|
|
||||||
module.exports = {
|
|
||||||
content: [
|
|
||||||
"./index.html",
|
|
||||||
"./src/**/*.{vue,js,ts,jsx,tsx}",
|
|
||||||
],
|
|
||||||
theme: {
|
|
||||||
extend: {},
|
|
||||||
},
|
|
||||||
plugins: [],
|
|
||||||
}
|
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
"@/shared/*": ["src/shared/*"],
|
"@/shared/*": ["src/shared/*"],
|
||||||
},
|
},
|
||||||
"outDir": "dist",
|
"outDir": "dist",
|
||||||
"moduleResolution": "bundler",
|
"moduleResolution": "Bundler",
|
||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"types": ["element-plus/global"]
|
"types": ["element-plus/global"]
|
||||||
},
|
},
|
||||||
@@ -35,6 +35,8 @@
|
|||||||
"./package.json",
|
"./package.json",
|
||||||
"./forge.config.ts",
|
"./forge.config.ts",
|
||||||
"*.ts",
|
"*.ts",
|
||||||
"vite.renderer.config.ts"
|
"vite.renderer.config.ts",
|
||||||
, "packages/electron-chrome-context-menu", "packages/chrome-ui" ]
|
"packages/electron-chrome-context-menu",
|
||||||
|
"packages/chrome-ui"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,22 @@
|
|||||||
import { resolve } from "path";
|
import { resolve } from "path";
|
||||||
import vue from "@vitejs/plugin-vue";
|
import { defineConfig, type CSSOptions } from "vite";
|
||||||
import { defineConfig } from "vite";
|
|
||||||
|
|
||||||
// https://vitejs.dev/config
|
// https://vitejs.dev/config
|
||||||
export default defineConfig({
|
export default defineConfig(async () => {
|
||||||
plugins: [vue()],
|
const vue = (await import("@vitejs/plugin-vue")).default
|
||||||
|
const tailwindcss = (await import('@tailwindcss/vite')).default;
|
||||||
|
const autoImport = (await import('unplugin-auto-import/vite')).default;
|
||||||
|
|
||||||
|
return {
|
||||||
|
plugins: [vue(), tailwindcss(), autoImport({
|
||||||
|
imports: ['vue', 'vue-router', 'pinia', '@vueuse/core'],
|
||||||
|
dts: 'src/renderer/auto-imports.d.ts'
|
||||||
|
})],
|
||||||
|
|
||||||
css: {
|
css: {
|
||||||
postcss: {
|
transformer: 'lightningcss' as CSSOptions['transformer'],
|
||||||
plugins: [require("tailwindcss"), require("autoprefixer")],
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
|
|
||||||
resolve: {
|
resolve: {
|
||||||
preserveSymlinks: true,
|
preserveSymlinks: true,
|
||||||
alias: {
|
alias: {
|
||||||
@@ -22,4 +29,5 @@ export default defineConfig({
|
|||||||
"@/types": resolve(__dirname, "./src/renderer/types"),
|
"@/types": resolve(__dirname, "./src/renderer/types"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user