diff --git a/packages/dashboard/auto-imports.d.ts b/packages/dashboard/auto-imports.d.ts new file mode 100644 index 00000000..3780698a --- /dev/null +++ b/packages/dashboard/auto-imports.d.ts @@ -0,0 +1,602 @@ +// Generated by 'unplugin-auto-import' +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 createGenericProjection: typeof import('@vueuse/math')['createGenericProjection'] + const createGlobalState: typeof import('@vueuse/core')['createGlobalState'] + const createInjectionState: typeof import('@vueuse/core')['createInjectionState'] + const createPinia: typeof import('pinia')['createPinia'] + const createProjection: typeof import('@vueuse/math')['createProjection'] + const createReactiveFn: typeof import('@vueuse/core')['createReactiveFn'] + const createSharedComposable: typeof import('@vueuse/core')['createSharedComposable'] + 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 h: typeof import('vue')['h'] + const ignorableWatch: typeof import('@vueuse/core')['ignorableWatch'] + const inject: typeof import('vue')['inject'] + 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 logicAnd: typeof import('@vueuse/math')['logicAnd'] + const logicNot: typeof import('@vueuse/math')['logicNot'] + const logicOr: typeof import('@vueuse/math')['logicOr'] + 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 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 pausableWatch: typeof import('@vueuse/core')['pausableWatch'] + const provide: typeof import('vue')['provide'] + 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 refThrottled: typeof import('@vueuse/core')['refThrottled'] + const refWithControl: typeof import('@vueuse/core')['refWithControl'] + const resolveComponent: typeof import('vue')['resolveComponent'] + const resolveDirective: typeof import('vue')['resolveDirective'] + const resolveRef: typeof import('@vueuse/core')['resolveRef'] + const resolveUnref: typeof import('@vueuse/core')['resolveUnref'] + 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 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 useAbs: typeof import('@vueuse/math')['useAbs'] + const useActiveElement: typeof import('@vueuse/core')['useActiveElement'] + 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 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 useAverage: typeof import('@vueuse/math')['useAverage'] + 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 useCeil: typeof import('@vueuse/math')['useCeil'] + const useClamp: typeof import('@vueuse/math')['useClamp'] + const useClipboard: typeof import('@vueuse/core')['useClipboard'] + const useCloned: typeof import('@vueuse/core')['useCloned'] + const useColorMode: typeof import('@vueuse/core')['useColorMode'] + const useConfirmDialog: typeof import('@vueuse/core')['useConfirmDialog'] + 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 useFloor: typeof import('@vueuse/math')['useFloor'] + 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 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 useMath: typeof import('@vueuse/math')['useMath'] + const useMax: typeof import('@vueuse/math')['useMax'] + 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 useMin: typeof import('@vueuse/math')['useMin'] + 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 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 usePrecision: typeof import('@vueuse/math')['usePrecision'] + 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 usePrevious: typeof import('@vueuse/core')['usePrevious'] + const useProjection: typeof import('@vueuse/math')['useProjection'] + const useRafFn: typeof import('@vueuse/core')['useRafFn'] + const useRefHistory: typeof import('@vueuse/core')['useRefHistory'] + const useResizeObserver: typeof import('@vueuse/core')['useResizeObserver'] + const useRound: typeof import('@vueuse/math')['useRound'] + const useRoute: typeof import('vue-router')['useRoute'] + const useRouter: typeof import('vue-router')['useRouter'] + 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 useSum: typeof import('@vueuse/math')['useSum'] + const useSupported: typeof import('@vueuse/core')['useSupported'] + const useSwipe: typeof import('@vueuse/core')['useSwipe'] + 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 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 useToFixed: typeof import('@vueuse/math')['useToFixed'] + 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 useTrunc: typeof import('@vueuse/math')['useTrunc'] + 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 watchEffect: typeof import('vue')['watchEffect'] + const watchIgnorable: typeof import('@vueuse/core')['watchIgnorable'] + 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 vue template auto import +import { UnwrapRef } from 'vue' +declare module 'vue' { + interface ComponentCustomProperties { + readonly EffectScope: UnwrapRef + readonly acceptHMRUpdate: UnwrapRef + readonly asyncComputed: UnwrapRef + readonly autoResetRef: UnwrapRef + readonly computed: UnwrapRef + readonly computedAsync: UnwrapRef + readonly computedEager: UnwrapRef + readonly computedInject: UnwrapRef + readonly computedWithControl: UnwrapRef + readonly controlledComputed: UnwrapRef + readonly controlledRef: UnwrapRef + readonly createApp: UnwrapRef + readonly createEventHook: UnwrapRef + readonly createGenericProjection: UnwrapRef + readonly createGlobalState: UnwrapRef + readonly createInjectionState: UnwrapRef + readonly createPinia: UnwrapRef + readonly createProjection: UnwrapRef + readonly createReactiveFn: UnwrapRef + readonly createSharedComposable: UnwrapRef + readonly createUnrefFn: UnwrapRef + readonly customRef: UnwrapRef + readonly debouncedRef: UnwrapRef + readonly debouncedWatch: UnwrapRef + readonly defineAsyncComponent: UnwrapRef + readonly defineComponent: UnwrapRef + readonly defineStore: UnwrapRef + readonly eagerComputed: UnwrapRef + readonly effectScope: UnwrapRef + readonly extendRef: UnwrapRef + readonly getActivePinia: UnwrapRef + readonly getCurrentInstance: UnwrapRef + readonly getCurrentScope: UnwrapRef + readonly h: UnwrapRef + readonly ignorableWatch: UnwrapRef + readonly inject: UnwrapRef + readonly isDefined: UnwrapRef + readonly isProxy: UnwrapRef + readonly isReactive: UnwrapRef + readonly isReadonly: UnwrapRef + readonly isRef: UnwrapRef + readonly logicAnd: UnwrapRef + readonly logicNot: UnwrapRef + readonly logicOr: UnwrapRef + readonly makeDestructurable: UnwrapRef + readonly mapActions: UnwrapRef + readonly mapGetters: UnwrapRef + readonly mapState: UnwrapRef + readonly mapStores: UnwrapRef + readonly mapWritableState: UnwrapRef + readonly markRaw: UnwrapRef + readonly nextTick: UnwrapRef + readonly onActivated: UnwrapRef + readonly onBeforeMount: UnwrapRef + readonly onBeforeRouteLeave: UnwrapRef + readonly onBeforeRouteUpdate: UnwrapRef + readonly onBeforeUnmount: UnwrapRef + readonly onBeforeUpdate: UnwrapRef + readonly onClickOutside: UnwrapRef + readonly onDeactivated: UnwrapRef + readonly onErrorCaptured: UnwrapRef + readonly onKeyStroke: UnwrapRef + readonly onLongPress: UnwrapRef + readonly onMounted: UnwrapRef + readonly onRenderTracked: UnwrapRef + readonly onRenderTriggered: UnwrapRef + readonly onScopeDispose: UnwrapRef + readonly onServerPrefetch: UnwrapRef + readonly onStartTyping: UnwrapRef + readonly onUnmounted: UnwrapRef + readonly onUpdated: UnwrapRef + readonly pausableWatch: UnwrapRef + readonly provide: UnwrapRef + readonly reactify: UnwrapRef + readonly reactifyObject: UnwrapRef + readonly reactive: UnwrapRef + readonly reactiveComputed: UnwrapRef + readonly reactiveOmit: UnwrapRef + readonly reactivePick: UnwrapRef + readonly readonly: UnwrapRef + readonly ref: UnwrapRef + readonly refAutoReset: UnwrapRef + readonly refDebounced: UnwrapRef + readonly refDefault: UnwrapRef + readonly refThrottled: UnwrapRef + readonly refWithControl: UnwrapRef + readonly resolveComponent: UnwrapRef + readonly resolveDirective: UnwrapRef + readonly resolveRef: UnwrapRef + readonly resolveUnref: UnwrapRef + readonly setActivePinia: UnwrapRef + readonly setMapStoreSuffix: UnwrapRef + readonly shallowReactive: UnwrapRef + readonly shallowReadonly: UnwrapRef + readonly shallowRef: UnwrapRef + readonly storeToRefs: UnwrapRef + readonly syncRef: UnwrapRef + readonly syncRefs: UnwrapRef + readonly templateRef: UnwrapRef + readonly throttledRef: UnwrapRef + readonly throttledWatch: UnwrapRef + readonly toRaw: UnwrapRef + readonly toReactive: UnwrapRef + readonly toRef: UnwrapRef + readonly toRefs: UnwrapRef + readonly triggerRef: UnwrapRef + readonly tryOnBeforeMount: UnwrapRef + readonly tryOnBeforeUnmount: UnwrapRef + readonly tryOnMounted: UnwrapRef + readonly tryOnScopeDispose: UnwrapRef + readonly tryOnUnmounted: UnwrapRef + readonly unref: UnwrapRef + readonly unrefElement: UnwrapRef + readonly until: UnwrapRef + readonly useAbs: UnwrapRef + readonly useActiveElement: UnwrapRef + readonly useArrayEvery: UnwrapRef + readonly useArrayFilter: UnwrapRef + readonly useArrayFind: UnwrapRef + readonly useArrayFindIndex: UnwrapRef + readonly useArrayJoin: UnwrapRef + readonly useArrayMap: UnwrapRef + readonly useArrayReduce: UnwrapRef + readonly useArraySome: UnwrapRef + readonly useArrayUnique: UnwrapRef + readonly useAsyncQueue: UnwrapRef + readonly useAsyncState: UnwrapRef + readonly useAttrs: UnwrapRef + readonly useAverage: UnwrapRef + readonly useBase64: UnwrapRef + readonly useBattery: UnwrapRef + readonly useBluetooth: UnwrapRef + readonly useBreakpoints: UnwrapRef + readonly useBroadcastChannel: UnwrapRef + readonly useBrowserLocation: UnwrapRef + readonly useCached: UnwrapRef + readonly useCeil: UnwrapRef + readonly useClamp: UnwrapRef + readonly useClipboard: UnwrapRef + readonly useCloned: UnwrapRef + readonly useColorMode: UnwrapRef + readonly useConfirmDialog: UnwrapRef + readonly useCounter: UnwrapRef + readonly useCssModule: UnwrapRef + readonly useCssVar: UnwrapRef + readonly useCssVars: UnwrapRef + readonly useCurrentElement: UnwrapRef + readonly useCycleList: UnwrapRef + readonly useDark: UnwrapRef + readonly useDateFormat: UnwrapRef + readonly useDebounce: UnwrapRef + readonly useDebounceFn: UnwrapRef + readonly useDebouncedRefHistory: UnwrapRef + readonly useDeviceMotion: UnwrapRef + readonly useDeviceOrientation: UnwrapRef + readonly useDevicePixelRatio: UnwrapRef + readonly useDevicesList: UnwrapRef + readonly useDisplayMedia: UnwrapRef + readonly useDocumentVisibility: UnwrapRef + readonly useDraggable: UnwrapRef + readonly useDropZone: UnwrapRef + readonly useElementBounding: UnwrapRef + readonly useElementByPoint: UnwrapRef + readonly useElementHover: UnwrapRef + readonly useElementSize: UnwrapRef + readonly useElementVisibility: UnwrapRef + readonly useEventBus: UnwrapRef + readonly useEventListener: UnwrapRef + readonly useEventSource: UnwrapRef + readonly useEyeDropper: UnwrapRef + readonly useFavicon: UnwrapRef + readonly useFetch: UnwrapRef + readonly useFileDialog: UnwrapRef + readonly useFileSystemAccess: UnwrapRef + readonly useFloor: UnwrapRef + readonly useFocus: UnwrapRef + readonly useFocusWithin: UnwrapRef + readonly useFps: UnwrapRef + readonly useFullscreen: UnwrapRef + readonly useGamepad: UnwrapRef + readonly useGeolocation: UnwrapRef + readonly useIdle: UnwrapRef + readonly useImage: UnwrapRef + readonly useInfiniteScroll: UnwrapRef + readonly useIntersectionObserver: UnwrapRef + readonly useInterval: UnwrapRef + readonly useIntervalFn: UnwrapRef + readonly useKeyModifier: UnwrapRef + readonly useLastChanged: UnwrapRef + readonly useLink: UnwrapRef + readonly useLocalStorage: UnwrapRef + readonly useMagicKeys: UnwrapRef + readonly useManualRefHistory: UnwrapRef + readonly useMath: UnwrapRef + readonly useMax: UnwrapRef + readonly useMediaControls: UnwrapRef + readonly useMediaQuery: UnwrapRef + readonly useMemoize: UnwrapRef + readonly useMemory: UnwrapRef + readonly useMin: UnwrapRef + readonly useMounted: UnwrapRef + readonly useMouse: UnwrapRef + readonly useMouseInElement: UnwrapRef + readonly useMousePressed: UnwrapRef + readonly useMutationObserver: UnwrapRef + readonly useNavigatorLanguage: UnwrapRef + readonly useNetwork: UnwrapRef + readonly useNow: UnwrapRef + readonly useObjectUrl: UnwrapRef + readonly useOffsetPagination: UnwrapRef + readonly useOnline: UnwrapRef + readonly usePageLeave: UnwrapRef + readonly useParallax: UnwrapRef + readonly usePermission: UnwrapRef + readonly usePointer: UnwrapRef + readonly usePointerLock: UnwrapRef + readonly usePointerSwipe: UnwrapRef + readonly usePrecision: UnwrapRef + readonly usePreferredColorScheme: UnwrapRef + readonly usePreferredContrast: UnwrapRef + readonly usePreferredDark: UnwrapRef + readonly usePreferredLanguages: UnwrapRef + readonly usePreferredReducedMotion: UnwrapRef + readonly usePrevious: UnwrapRef + readonly useProjection: UnwrapRef + readonly useRafFn: UnwrapRef + readonly useRefHistory: UnwrapRef + readonly useResizeObserver: UnwrapRef + readonly useRound: UnwrapRef + readonly useRoute: UnwrapRef + readonly useRouter: UnwrapRef + readonly useScreenOrientation: UnwrapRef + readonly useScreenSafeArea: UnwrapRef + readonly useScriptTag: UnwrapRef + readonly useScroll: UnwrapRef + readonly useScrollLock: UnwrapRef + readonly useSessionStorage: UnwrapRef + readonly useShare: UnwrapRef + readonly useSlots: UnwrapRef + readonly useSorted: UnwrapRef + readonly useSpeechRecognition: UnwrapRef + readonly useSpeechSynthesis: UnwrapRef + readonly useStepper: UnwrapRef + readonly useStorage: UnwrapRef + readonly useStorageAsync: UnwrapRef + readonly useStyleTag: UnwrapRef + readonly useSum: UnwrapRef + readonly useSupported: UnwrapRef + readonly useSwipe: UnwrapRef + readonly useTemplateRefsList: UnwrapRef + readonly useTextDirection: UnwrapRef + readonly useTextSelection: UnwrapRef + readonly useTextareaAutosize: UnwrapRef + readonly useThrottle: UnwrapRef + readonly useThrottleFn: UnwrapRef + readonly useThrottledRefHistory: UnwrapRef + readonly useTimeAgo: UnwrapRef + readonly useTimeout: UnwrapRef + readonly useTimeoutFn: UnwrapRef + readonly useTimeoutPoll: UnwrapRef + readonly useTimestamp: UnwrapRef + readonly useTitle: UnwrapRef + readonly useToFixed: UnwrapRef + readonly useToNumber: UnwrapRef + readonly useToString: UnwrapRef + readonly useToggle: UnwrapRef + readonly useTransition: UnwrapRef + readonly useTrunc: UnwrapRef + readonly useUrlSearchParams: UnwrapRef + readonly useUserMedia: UnwrapRef + readonly useVModel: UnwrapRef + readonly useVModels: UnwrapRef + readonly useVibrate: UnwrapRef + readonly useVirtualList: UnwrapRef + readonly useWakeLock: UnwrapRef + readonly useWebNotification: UnwrapRef + readonly useWebSocket: UnwrapRef + readonly useWebWorker: UnwrapRef + readonly useWebWorkerFn: UnwrapRef + readonly useWindowFocus: UnwrapRef + readonly useWindowScroll: UnwrapRef + readonly useWindowSize: UnwrapRef + readonly watch: UnwrapRef + readonly watchArray: UnwrapRef + readonly watchAtMost: UnwrapRef + readonly watchDebounced: UnwrapRef + readonly watchEffect: UnwrapRef + readonly watchIgnorable: UnwrapRef + readonly watchOnce: UnwrapRef + readonly watchPausable: UnwrapRef + readonly watchPostEffect: UnwrapRef + readonly watchSyncEffect: UnwrapRef + readonly watchThrottled: UnwrapRef + readonly watchTriggerable: UnwrapRef + readonly watchWithFilter: UnwrapRef + readonly whenever: UnwrapRef + } +} diff --git a/packages/dashboard/components.d.ts b/packages/dashboard/components.d.ts new file mode 100644 index 00000000..667372cb --- /dev/null +++ b/packages/dashboard/components.d.ts @@ -0,0 +1,51 @@ +// generated by unplugin-vue-components +// We suggest you to commit this file into source control +// Read more: https://github.com/vuejs/core/pull/3399 +import '@vue/runtime-core' + +export {} + +declare module '@vue/runtime-core' { + export interface GlobalComponents { + AddAuthenticatorAppDialog: typeof import('./src/plugins/vuetify/@core/components/AddAuthenticatorAppDialog.vue')['default'] + AddEditAddressDialog: typeof import('./src/plugins/vuetify/@core/components/AddEditAddressDialog.vue')['default'] + AppBarSearch: typeof import('./src/plugins/vuetify/@core/components/AppBarSearch.vue')['default'] + AppCardActions: typeof import('./src/plugins/vuetify/@core/components/AppCardActions.vue')['default'] + AppCardCode: typeof import('./src/plugins/vuetify/@core/components/AppCardCode.vue')['default'] + AppDateTimePicker: typeof import('./src/plugins/vuetify/@core/components/AppDateTimePicker.vue')['default'] + AppDrawerHeaderSection: typeof import('./src/plugins/vuetify/@core/components/AppDrawerHeaderSection.vue')['default'] + AppOtpInput: typeof import('./src/plugins/vuetify/@core/components/AppOtpInput.vue')['default'] + AppPricing: typeof import('./src/plugins/vuetify/@core/components/AppPricing.vue')['default'] + AppSearchHeader: typeof import('./src/plugins/vuetify/@core/components/AppSearchHeader.vue')['default'] + BuyNow: typeof import('./src/plugins/vuetify/@core/components/BuyNow.vue')['default'] + CardAddEditDialog: typeof import('./src/plugins/vuetify/@core/components/CardAddEditDialog.vue')['default'] + CardStatisticsHorizontal: typeof import('./src/plugins/vuetify/@core/components/CardStatisticsHorizontal.vue')['default'] + CardStatisticsVertical: typeof import('./src/plugins/vuetify/@core/components/CardStatisticsVertical.vue')['default'] + CardStatisticsWithImages: typeof import('./src/plugins/vuetify/@core/components/CardStatisticsWithImages.vue')['default'] + ConfirmDialog: typeof import('./src/plugins/vuetify/@core/components/ConfirmDialog.vue')['default'] + CustomCheckboxes: typeof import('./src/plugins/vuetify/@core/components/CustomCheckboxes.vue')['default'] + CustomCheckboxesWithIcon: typeof import('./src/plugins/vuetify/@core/components/CustomCheckboxesWithIcon.vue')['default'] + CustomCheckboxesWithImage: typeof import('./src/plugins/vuetify/@core/components/CustomCheckboxesWithImage.vue')['default'] + CustomizerSection: typeof import('./src/plugins/vuetify/@core/components/CustomizerSection.vue')['default'] + CustomRadios: typeof import('./src/plugins/vuetify/@core/components/CustomRadios.vue')['default'] + CustomRadiosWithIcon: typeof import('./src/plugins/vuetify/@core/components/CustomRadiosWithIcon.vue')['default'] + CustomRadiosWithImage: typeof import('./src/plugins/vuetify/@core/components/CustomRadiosWithImage.vue')['default'] + DialogCloseBtn: typeof import('./src/plugins/vuetify/@core/components/DialogCloseBtn.vue')['default'] + EnableOneTimePasswordDialog: typeof import('./src/plugins/vuetify/@core/components/EnableOneTimePasswordDialog.vue')['default'] + ErrorHeader: typeof import('./src/plugins/vuetify/@core/components/ErrorHeader.vue')['default'] + I18n: typeof import('./src/plugins/vuetify/@core/components/I18n.vue')['default'] + MoreBtn: typeof import('./src/plugins/vuetify/@core/components/MoreBtn.vue')['default'] + Notifications: typeof import('./src/plugins/vuetify/@core/components/Notifications.vue')['default'] + PricingPlanDialog: typeof import('./src/plugins/vuetify/@core/components/PricingPlanDialog.vue')['default'] + ReferAndEarnDialog: typeof import('./src/plugins/vuetify/@core/components/ReferAndEarnDialog.vue')['default'] + RouterLink: typeof import('vue-router')['RouterLink'] + RouterView: typeof import('vue-router')['RouterView'] + ShareProjectDialog: typeof import('./src/plugins/vuetify/@core/components/ShareProjectDialog.vue')['default'] + Shortcuts: typeof import('./src/plugins/vuetify/@core/components/Shortcuts.vue')['default'] + TheCustomizer: typeof import('./src/plugins/vuetify/@core/components/TheCustomizer.vue')['default'] + ThemeSwitcher: typeof import('./src/plugins/vuetify/@core/components/ThemeSwitcher.vue')['default'] + TwoFactorAuthDialog: typeof import('./src/plugins/vuetify/@core/components/TwoFactorAuthDialog.vue')['default'] + UserInfoEditDialog: typeof import('./src/plugins/vuetify/@core/components/UserInfoEditDialog.vue')['default'] + UserUpgradePlanDialog: typeof import('./src/plugins/vuetify/@core/components/UserUpgradePlanDialog.vue')['default'] + } +} diff --git a/packages/dashboard/package.json b/packages/dashboard/package.json index d9a0094a..b4460e3d 100644 --- a/packages/dashboard/package.json +++ b/packages/dashboard/package.json @@ -11,10 +11,21 @@ "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore" }, "dependencies": { + "@casl/ability": "^6.3.3", + "@casl/vue": "^2.2.1", + "@floating-ui/dom": "^1.2.0", + "@iconify/vue": "^4.1.0", + "@vitejs/plugin-vue-jsx": "^3.0.0", + "@vueuse/core": "^9.12.0", + "@vueuse/math": "^9.12.0", "pinia": "^2.0.28", + "vite-plugin-vue-layouts": "^0.7.0", + "vite-plugin-vuetify": "^1.0.2", "vue": "^3.2.45", "vue-router": "^4.1.6", - "vuetify": "^3.1.3" + "vue3-perfect-scrollbar": "^1.6.1", + "vuetify": "3.0.6", + "webfontloader": "^1.6.28" }, "devDependencies": { "@rushstack/eslint-patch": "^1.1.4", @@ -29,7 +40,11 @@ "prettier": "^2.7.1", "sass": "^1.58.0", "typescript": "~4.9.5", + "unplugin-auto-import": "^0.13.0", + "unplugin-vue-components": "^0.23.0", + "unplugin-vue-define-options": "1.1.4", "vite": "^4.0.0", + "vite-plugin-pages": "^0.28.0", "vue-tsc": "^1.0.12" } } diff --git a/packages/dashboard/src/App.vue b/packages/dashboard/src/App.vue index 1ecc2047..2f4374dd 100644 --- a/packages/dashboard/src/App.vue +++ b/packages/dashboard/src/App.vue @@ -1,8 +1,22 @@ - diff --git a/packages/dashboard/src/main.ts b/packages/dashboard/src/main.ts index 8a04c8a2..4c1a059e 100644 --- a/packages/dashboard/src/main.ts +++ b/packages/dashboard/src/main.ts @@ -1,22 +1,26 @@ +/* eslint-disable import/order */ +import "@/plugins/vuetify/@iconify/icons-bundle"; +import App from "@/App.vue"; +import layoutsPlugin from "@/plugins/vuetify/layouts"; +import vuetify from "@/plugins/vuetify"; +import { loadFonts } from "@/plugins/vuetify/webfontloader"; +import "@/plugins/vuetify/@core/scss/template/index.scss"; +import "@/plugins/vuetify/styles/styles.scss"; import { createApp } from "vue"; import { createPinia } from "pinia"; +// import router from "./router"; +import router from "@/plugins/vuetify/router"; -import App from "./App.vue"; -import router from "./router"; - -import { createVuetify } from "vuetify"; -import * as components from 'vuetify/components' -import * as directives from 'vuetify/directives' - -import './scss/index.scss' +loadFonts(); +// Create vue app const app = createApp(App); +// Use plugins +app.use(vuetify); app.use(createPinia()); app.use(router); -app.use(createVuetify({ - components, - directives, -})); +app.use(layoutsPlugin); +// Mount vue app app.mount("#app"); diff --git a/packages/dashboard/src/modules/dashboard/View.vue b/packages/dashboard/src/modules/dashboard/View.vue index 36b93f31..7d06ff41 100644 --- a/packages/dashboard/src/modules/dashboard/View.vue +++ b/packages/dashboard/src/modules/dashboard/View.vue @@ -1,3 +1,5 @@ \ No newline at end of file +
+ dashboard view +
+ diff --git a/packages/dashboard/src/modules/dashboard/router.ts b/packages/dashboard/src/modules/dashboard/router.ts index d9680c5b..e05e047e 100644 --- a/packages/dashboard/src/modules/dashboard/router.ts +++ b/packages/dashboard/src/modules/dashboard/router.ts @@ -1,9 +1,9 @@ import type { RouteRecordRaw } from "vue-router"; export const routes: RouteRecordRaw[] = [ - { - path: '', - alias: ['dashboard'], - component: () => import("./View.vue"), - }, -] + { + path: "/dashboard", + alias: ["dashboard"], + component: () => import("./View.vue"), + }, +]; diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/AddAuthenticatorAppDialog.vue b/packages/dashboard/src/plugins/vuetify/@core/components/AddAuthenticatorAppDialog.vue new file mode 100644 index 00000000..809766da --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/AddAuthenticatorAppDialog.vue @@ -0,0 +1,100 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/AddEditAddressDialog.vue b/packages/dashboard/src/plugins/vuetify/@core/components/AddEditAddressDialog.vue new file mode 100644 index 00000000..9844eaf4 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/AddEditAddressDialog.vue @@ -0,0 +1,261 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/AppBarSearch.vue b/packages/dashboard/src/plugins/vuetify/@core/components/AppBarSearch.vue new file mode 100644 index 00000000..3af17c3a --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/AppBarSearch.vue @@ -0,0 +1,378 @@ + + + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/AppCardActions.vue b/packages/dashboard/src/plugins/vuetify/@core/components/AppCardActions.vue new file mode 100644 index 00000000..2baa9140 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/AppCardActions.vue @@ -0,0 +1,152 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/AppCardCode.vue b/packages/dashboard/src/plugins/vuetify/@core/components/AppCardCode.vue new file mode 100644 index 00000000..2abb1248 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/AppCardCode.vue @@ -0,0 +1,125 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/AppDateTimePicker.vue b/packages/dashboard/src/plugins/vuetify/@core/components/AppDateTimePicker.vue new file mode 100644 index 00000000..fea142d8 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/AppDateTimePicker.vue @@ -0,0 +1,416 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/AppDrawerHeaderSection.vue b/packages/dashboard/src/plugins/vuetify/@core/components/AppDrawerHeaderSection.vue new file mode 100644 index 00000000..dbb82605 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/AppDrawerHeaderSection.vue @@ -0,0 +1,29 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/AppOtpInput.vue b/packages/dashboard/src/plugins/vuetify/@core/components/AppOtpInput.vue new file mode 100644 index 00000000..29fec92d --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/AppOtpInput.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/AppPricing.vue b/packages/dashboard/src/plugins/vuetify/@core/components/AppPricing.vue new file mode 100644 index 00000000..74af0b0f --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/AppPricing.vue @@ -0,0 +1,230 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/AppSearchHeader.vue b/packages/dashboard/src/plugins/vuetify/@core/components/AppSearchHeader.vue new file mode 100644 index 00000000..58095156 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/AppSearchHeader.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/BuyNow.vue b/packages/dashboard/src/plugins/vuetify/@core/components/BuyNow.vue new file mode 100644 index 00000000..56a424ec --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/BuyNow.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/CardAddEditDialog.vue b/packages/dashboard/src/plugins/vuetify/@core/components/CardAddEditDialog.vue new file mode 100644 index 00000000..21054440 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/CardAddEditDialog.vue @@ -0,0 +1,147 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/CardStatisticsHorizontal.vue b/packages/dashboard/src/plugins/vuetify/@core/components/CardStatisticsHorizontal.vue new file mode 100644 index 00000000..4b5b9216 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/CardStatisticsHorizontal.vue @@ -0,0 +1,55 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/CardStatisticsVertical.vue b/packages/dashboard/src/plugins/vuetify/@core/components/CardStatisticsVertical.vue new file mode 100644 index 00000000..727af923 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/CardStatisticsVertical.vue @@ -0,0 +1,63 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/CardStatisticsWithImages.vue b/packages/dashboard/src/plugins/vuetify/@core/components/CardStatisticsWithImages.vue new file mode 100644 index 00000000..a6a2900b --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/CardStatisticsWithImages.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/ConfirmDialog.vue b/packages/dashboard/src/plugins/vuetify/@core/components/ConfirmDialog.vue new file mode 100644 index 00000000..b3c79364 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/ConfirmDialog.vue @@ -0,0 +1,73 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/CustomCheckboxes.vue b/packages/dashboard/src/plugins/vuetify/@core/components/CustomCheckboxes.vue new file mode 100644 index 00000000..e3468239 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/CustomCheckboxes.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/CustomCheckboxesWithIcon.vue b/packages/dashboard/src/plugins/vuetify/@core/components/CustomCheckboxesWithIcon.vue new file mode 100644 index 00000000..4adbd8f5 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/CustomCheckboxesWithIcon.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/CustomCheckboxesWithImage.vue b/packages/dashboard/src/plugins/vuetify/@core/components/CustomCheckboxesWithImage.vue new file mode 100644 index 00000000..d768a1bf --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/CustomCheckboxesWithImage.vue @@ -0,0 +1,80 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/CustomRadios.vue b/packages/dashboard/src/plugins/vuetify/@core/components/CustomRadios.vue new file mode 100644 index 00000000..4543cf70 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/CustomRadios.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/CustomRadiosWithIcon.vue b/packages/dashboard/src/plugins/vuetify/@core/components/CustomRadiosWithIcon.vue new file mode 100644 index 00000000..cbf58f68 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/CustomRadiosWithIcon.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/CustomRadiosWithImage.vue b/packages/dashboard/src/plugins/vuetify/@core/components/CustomRadiosWithImage.vue new file mode 100644 index 00000000..b92ba7c4 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/CustomRadiosWithImage.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/CustomizerSection.vue b/packages/dashboard/src/plugins/vuetify/@core/components/CustomizerSection.vue new file mode 100644 index 00000000..455327bf --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/CustomizerSection.vue @@ -0,0 +1,22 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/DialogCloseBtn.vue b/packages/dashboard/src/plugins/vuetify/@core/components/DialogCloseBtn.vue new file mode 100644 index 00000000..db116ddf --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/DialogCloseBtn.vue @@ -0,0 +1,20 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/EnableOneTimePasswordDialog.vue b/packages/dashboard/src/plugins/vuetify/@core/components/EnableOneTimePasswordDialog.vue new file mode 100644 index 00000000..1b56a043 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/EnableOneTimePasswordDialog.vue @@ -0,0 +1,79 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/ErrorHeader.vue b/packages/dashboard/src/plugins/vuetify/@core/components/ErrorHeader.vue new file mode 100644 index 00000000..d5cd1525 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/ErrorHeader.vue @@ -0,0 +1,22 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/I18n.vue b/packages/dashboard/src/plugins/vuetify/@core/components/I18n.vue new file mode 100644 index 00000000..02f4dbb2 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/I18n.vue @@ -0,0 +1,56 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/MoreBtn.vue b/packages/dashboard/src/plugins/vuetify/@core/components/MoreBtn.vue new file mode 100644 index 00000000..8fdffea3 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/MoreBtn.vue @@ -0,0 +1,27 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/Notifications.vue b/packages/dashboard/src/plugins/vuetify/@core/components/Notifications.vue new file mode 100644 index 00000000..85a493d3 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/Notifications.vue @@ -0,0 +1,196 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/PricingPlanDialog.vue b/packages/dashboard/src/plugins/vuetify/@core/components/PricingPlanDialog.vue new file mode 100644 index 00000000..74be892d --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/PricingPlanDialog.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/ReferAndEarnDialog.vue b/packages/dashboard/src/plugins/vuetify/@core/components/ReferAndEarnDialog.vue new file mode 100644 index 00000000..24bc6545 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/ReferAndEarnDialog.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/ShareProjectDialog.vue b/packages/dashboard/src/plugins/vuetify/@core/components/ShareProjectDialog.vue new file mode 100644 index 00000000..fed20ec4 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/ShareProjectDialog.vue @@ -0,0 +1,203 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/Shortcuts.vue b/packages/dashboard/src/plugins/vuetify/@core/components/Shortcuts.vue new file mode 100644 index 00000000..8441f8cb --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/Shortcuts.vue @@ -0,0 +1,76 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/TheCustomizer.vue b/packages/dashboard/src/plugins/vuetify/@core/components/TheCustomizer.vue new file mode 100644 index 00000000..f81c4861 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/TheCustomizer.vue @@ -0,0 +1,376 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/ThemeSwitcher.vue b/packages/dashboard/src/plugins/vuetify/@core/components/ThemeSwitcher.vue new file mode 100644 index 00000000..41e7a677 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/ThemeSwitcher.vue @@ -0,0 +1,32 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/TwoFactorAuthDialog.vue b/packages/dashboard/src/plugins/vuetify/@core/components/TwoFactorAuthDialog.vue new file mode 100644 index 00000000..6f9353ec --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/TwoFactorAuthDialog.vue @@ -0,0 +1,158 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/UserInfoEditDialog.vue b/packages/dashboard/src/plugins/vuetify/@core/components/UserInfoEditDialog.vue new file mode 100644 index 00000000..51781eed --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/UserInfoEditDialog.vue @@ -0,0 +1,226 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/components/UserUpgradePlanDialog.vue b/packages/dashboard/src/plugins/vuetify/@core/components/UserUpgradePlanDialog.vue new file mode 100644 index 00000000..13a900e7 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/components/UserUpgradePlanDialog.vue @@ -0,0 +1,89 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/@core/composable/useGenerateImageVariant.ts b/packages/dashboard/src/plugins/vuetify/@core/composable/useGenerateImageVariant.ts new file mode 100644 index 00000000..4ddb0a68 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/composable/useGenerateImageVariant.ts @@ -0,0 +1,26 @@ +import { useTheme } from 'vuetify' +import { useThemeConfig } from '@core/composable/useThemeConfig' + +const { skin } = useThemeConfig() + +// composable function to return the image variant as per the current theme and skin +export const useGenerateImageVariant = (imgLight: string, imgDark: string, imgLightBordered?: string, imgDarkBordered?: string, bordered = false) => { + const { global } = useTheme() + + return computed(() => { + if (global.name.value === 'light') { + if (skin.value === 'bordered' && bordered) + return imgLightBordered + + else + return imgLight + } + if (global.name.value === 'dark') { + if (skin.value === 'bordered' && bordered) + return imgDarkBordered + + else + return imgDark + } + }) +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/composable/useResponsiveSidebar.ts b/packages/dashboard/src/plugins/vuetify/@core/composable/useResponsiveSidebar.ts new file mode 100644 index 00000000..a670c612 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/composable/useResponsiveSidebar.ts @@ -0,0 +1,29 @@ +import type { Ref } from 'vue' +import { useDisplay } from 'vuetify' + +export const useResponsiveLeftSidebar = (mobileBreakpoint: Ref | undefined = undefined) => { + const { mdAndDown, name: currentBreakpoint } = useDisplay() + + const _mobileBreakpoint = mobileBreakpoint || mdAndDown + + const isLeftSidebarOpen = ref(true) + + const setInitialValue = () => { + isLeftSidebarOpen.value = !_mobileBreakpoint.value + } + + // Set the initial value of sidebar + setInitialValue() + + watch( + currentBreakpoint, + () => { + // Reset left sidebar + isLeftSidebarOpen.value = !_mobileBreakpoint.value + }, + ) + + return { + isLeftSidebarOpen, + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/composable/useSkins.ts b/packages/dashboard/src/plugins/vuetify/@core/composable/useSkins.ts new file mode 100644 index 00000000..27080205 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/composable/useSkins.ts @@ -0,0 +1,36 @@ +import { VThemeProvider } from 'vuetify/components' +import { AppContentLayoutNav } from '@layouts/enums' + +// TODO: Use `VThemeProvider` from dist instead of lib (Using this component from dist causes navbar to loose sticky positioning) +import { useThemeConfig } from '@core/composable/useThemeConfig' + +export const useSkins = () => { + const { isVerticalNavSemiDark, skin, appContentLayoutNav } = useThemeConfig() + + const layoutAttrs = computed(() => ({ + verticalNavAttrs: { + wrapper: h(VThemeProvider, { tag: 'aside' }), + wrapperProps: { + withBackground: true, + theme: isVerticalNavSemiDark.value && appContentLayoutNav.value === AppContentLayoutNav.Vertical + ? 'dark' + : undefined, + }, + }, + })) + + const injectSkinClasses = () => { + const bodyClasses = document.body.classList + const genSkinClass = (_skin?: string) => `skin--${_skin}` + + watch(skin, (val, oldVal) => { + bodyClasses.remove(genSkinClass(oldVal)) + bodyClasses.add(genSkinClass(val)) + }, { immediate: true }) + } + + return { + injectSkinClasses, + layoutAttrs, + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/composable/useThemeConfig.ts b/packages/dashboard/src/plugins/vuetify/@core/composable/useThemeConfig.ts new file mode 100644 index 00000000..6818c36c --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/composable/useThemeConfig.ts @@ -0,0 +1,154 @@ +import { useTheme } from 'vuetify' +import { useLayouts } from '@layouts' +import { themeConfig } from '@themeConfig' + +export const isDarkPreferred = usePreferredDark() + +export const useThemeConfig = () => { + const theme = computed({ + get() { + return themeConfig.app.theme.value + }, + set(value: typeof themeConfig.app.theme.value) { + themeConfig.app.theme.value = value + localStorage.setItem(`${themeConfig.app.title}-theme`, value.toString()) + + // ℹī¸ We will not reset semi dark value when turning off dark mode because some user think it as bug + // if (value !== 'light') + // // eslint-disable-next-line @typescript-eslint/no-use-before-define + // isVerticalNavSemiDark.value = false + }, + }) + + const isVerticalNavSemiDark = computed({ + get() { + return themeConfig.verticalNav.isVerticalNavSemiDark.value + }, + set(value: typeof themeConfig.verticalNav.isVerticalNavSemiDark.value) { + themeConfig.verticalNav.isVerticalNavSemiDark.value = value + localStorage.setItem(`${themeConfig.app.title}-isVerticalNavSemiDark`, value.toString()) + }, + }) + + const syncVuetifyThemeWithTheme = () => { + const vuetifyTheme = useTheme() + + watch([theme, isDarkPreferred], ([val, _]) => { + vuetifyTheme.global.name.value = val === 'system' + ? isDarkPreferred.value + ? 'dark' + : 'light' + : val + }) + } + + /* + ℹī¸ Set current theme's surface color in localStorage + + Why? Because when initial loader is shown (before vue is ready) we need to what's the current theme's surface color. + We will use color stored in localStorage to set the initial loader's background color. + + With this we will be able to show correct background color for the initial loader even before vue identify the current theme. + */ + const syncInitialLoaderTheme = () => { + const vuetifyTheme = useTheme() + + watch(theme, val => { + // ℹī¸ We are not using theme.current.colors.surface because watcher is independent and when this watcher is ran `theme` computed is not updated + localStorage.setItem(`${themeConfig.app.title}-initial-loader-bg`, vuetifyTheme.current.value.colors.surface) + localStorage.setItem(`${themeConfig.app.title}-initial-loader-color`, vuetifyTheme.current.value.colors.primary) + }, { + immediate: true, + }) + } + + const skin = computed({ + get() { + return themeConfig.app.skin.value + }, + set(value: typeof themeConfig.app.skin.value) { + themeConfig.app.skin.value = value + localStorage.setItem(`${themeConfig.app.title}-skin`, value) + }, + }) + + const appRouteTransition = computed({ + get() { + return themeConfig.app.routeTransition.value + }, + set(value: typeof themeConfig.app.routeTransition.value) { + themeConfig.app.routeTransition.value = value + localStorage.setItem(`${themeConfig.app.title}-transition`, value) + }, + }) + + // `@layouts` exports + const { + navbarType, + isNavbarBlurEnabled, + footerType, + isVerticalNavCollapsed, + appContentWidth, + appContentLayoutNav, + horizontalNavType, + isLessThanOverlayNavBreakpoint, + isAppRtl, + switchToVerticalNavOnLtOverlayNavBreakpoint, + } = useLayouts() + + // const syncRtlWithRtlLang = (rtlLangs: string[], rtlDefaultLocale: string, ltrDefaultLocale: string) => { + // const { locale } = useI18n({ useScope: 'global' }) + + // watch(isAppRtl, val => { + // if (val) + // locale.value = rtlDefaultLocale + // else locale.value = ltrDefaultLocale + // }) + // watch(locale, val => { + // if (rtlLangs.includes(val)) + // isAppRtl.value = true + // else isAppRtl.value = false + // }) + + // watch( + // [isAppRtl, locale], + // ([valIsAppRTL, valLocale], [oldValIsAppRtl, oldValLocale]) => { + // const isRtlUpdated = valIsAppRTL !== oldValIsAppRtl + + // if (isRtlUpdated) { + // if (valIsAppRTL) + // locale.value = rtlDefaultLocale + // else locale.value = ltrDefaultLocale + // } + // else { + // if (rtlLangs.includes(valLocale)) + // isAppRtl.value = true + // else isAppRtl.value = false + // } + // }, + // ) + // } + + return { + theme, + isVerticalNavSemiDark, + syncVuetifyThemeWithTheme, + syncInitialLoaderTheme, + skin, + appRouteTransition, + + // @layouts exports + navbarType, + isNavbarBlurEnabled, + footerType, + isVerticalNavCollapsed, + appContentWidth, + appContentLayoutNav, + horizontalNavType, + isLessThanOverlayNavBreakpoint, + isAppRtl, + switchToVerticalNavOnLtOverlayNavBreakpoint, + + // syncRtlWithRtlLang, + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/enums.ts b/packages/dashboard/src/plugins/vuetify/@core/enums.ts new file mode 100644 index 00000000..88caf349 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/enums.ts @@ -0,0 +1,14 @@ +export const Skins = { + Default: 'default', + Bordered: 'bordered', +} as const + +export const RouteTransitions = { + // 'Zoom Fade': 'app-transition-zoom-fade', + // 'Fade Bottom': 'app-transition-fade-bottom', + // 'Slide Fade': 'app-transition-slide-fade', + // 'Zoom out': 'app-transition-zoom-out', + + Fade: 'app-transition-fade', + None: 'none', +} as const diff --git a/packages/dashboard/src/plugins/vuetify/@core/index.ts b/packages/dashboard/src/plugins/vuetify/@core/index.ts new file mode 100644 index 00000000..f2cef0e6 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/index.ts @@ -0,0 +1,97 @@ +import type { ThemeConfig, UserThemeConfig } from './types' +import { RouteTransitions, Skins } from '@core/enums' +import type { UserConfig as LayoutConfig } from '@layouts/types' + +export const defineThemeConfig = ( + userConfig: UserThemeConfig, +): { themeConfig: ThemeConfig; layoutConfig: LayoutConfig } => { + const localStorageTheme = localStorage.getItem(`${userConfig.app.title}-theme`) + const localStorageIsVerticalNavSemiDark = localStorage.getItem(`${userConfig.app.title}-isVerticalNavSemiDark`) + + const localStorageSkin = (() => { + const storageValue = localStorage.getItem(`${userConfig.app.title}-skin`) + + return Object.values(Skins).find(v => v === storageValue) + })() + + const localStorageTransition = (() => { + const storageValue = localStorage.getItem(`${userConfig.app.title}-transition`) + + return Object.values(RouteTransitions).find(v => v === storageValue) + })() + + return { + themeConfig: { + app: { + title: userConfig.app.title, + logo: userConfig.app.logo, + contentWidth: ref(userConfig.app.contentWidth), + contentLayoutNav: ref(userConfig.app.contentLayoutNav), + overlayNavFromBreakpoint: userConfig.app.overlayNavFromBreakpoint, + enableI18n: userConfig.app.enableI18n, + theme: ref(localStorageTheme || userConfig.app.theme), + isRtl: ref(userConfig.app.isRtl), + skin: ref(localStorageSkin || userConfig.app.skin), + routeTransition: ref(localStorageTransition || userConfig.app.routeTransition), + iconRenderer: userConfig.app.iconRenderer, + }, + navbar: { + type: ref(userConfig.navbar.type), + navbarBlur: ref(userConfig.navbar.navbarBlur), + }, + footer: { type: ref(userConfig.footer.type) }, + verticalNav: { + isVerticalNavCollapsed: ref(userConfig.verticalNav.isVerticalNavCollapsed), + defaultNavItemIconProps: userConfig.verticalNav.defaultNavItemIconProps, + isVerticalNavSemiDark: ref(localStorageIsVerticalNavSemiDark ? JSON.parse(localStorageIsVerticalNavSemiDark) : userConfig.verticalNav.isVerticalNavSemiDark), + }, + horizontalNav: { + type: ref(userConfig.horizontalNav.type), + transition: userConfig.horizontalNav.transition, + }, + icons: { + chevronDown: userConfig.icons.chevronDown, + chevronRight: userConfig.icons.chevronRight, + close: userConfig.icons.close, + verticalNavPinned: userConfig.icons.verticalNavPinned, + verticalNavUnPinned: userConfig.icons.verticalNavUnPinned, + sectionTitlePlaceholder: userConfig.icons.sectionTitlePlaceholder, + }, + }, + layoutConfig: { + app: { + title: userConfig.app.title, + logo: userConfig.app.logo, + contentWidth: userConfig.app.contentWidth, + contentLayoutNav: userConfig.app.contentLayoutNav, + overlayNavFromBreakpoint: userConfig.app.overlayNavFromBreakpoint, + enableI18n: userConfig.app.enableI18n, + isRtl: userConfig.app.isRtl, + iconRenderer: userConfig.app.iconRenderer, + }, + navbar: { + type: userConfig.navbar.type, + navbarBlur: userConfig.navbar.navbarBlur, + }, + footer: { + type: userConfig.footer.type, + }, + verticalNav: { + isVerticalNavCollapsed: userConfig.verticalNav.isVerticalNavCollapsed, + defaultNavItemIconProps: userConfig.verticalNav.defaultNavItemIconProps, + }, + horizontalNav: { + type: userConfig.horizontalNav.type, + transition: userConfig.horizontalNav.transition, + }, + icons: { + chevronDown: userConfig.icons.chevronDown, + chevronRight: userConfig.icons.chevronRight, + close: userConfig.icons.close, + verticalNavPinned: userConfig.icons.verticalNavPinned, + verticalNavUnPinned: userConfig.icons.verticalNavUnPinned, + sectionTitlePlaceholder: userConfig.icons.sectionTitlePlaceholder, + }, + }, + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/libs/apex-chart/apexCharConfig.ts b/packages/dashboard/src/plugins/vuetify/@core/libs/apex-chart/apexCharConfig.ts new file mode 100644 index 00000000..c37a8d24 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/libs/apex-chart/apexCharConfig.ts @@ -0,0 +1,703 @@ +import type { ThemeInstance } from 'vuetify' +import { hexToRgb } from '@layouts/utils' + +// 👉 Colors variables +const colorVariables = (themeColors: ThemeInstance['themes']['value']['colors']) => { + const themeSecondaryTextColor = `rgba(${hexToRgb(themeColors.colors['on-surface'])},${themeColors.variables['medium-emphasis-opacity']})` + const themeDisabledTextColor = `rgba(${hexToRgb(themeColors.colors['on-surface'])},${themeColors.variables['disabled-opacity']})` + const themeBorderColor = `rgba(${hexToRgb(String(themeColors.variables['border-color']))},${themeColors.variables['border-opacity']})` + const themePrimaryTextColor = `rgba(${hexToRgb(themeColors.colors['on-surface'])},${themeColors.variables['high-emphasis-opacity']})` + + return { themeSecondaryTextColor, themeDisabledTextColor, themeBorderColor, themePrimaryTextColor } +} + +export const getScatterChartConfig = (themeColors: ThemeInstance['themes']['value']['colors']) => { + const scatterColors = { + series1: '#ff9f43', + series2: '#7367f0', + series3: '#28c76f', + } + + const { themeSecondaryTextColor, themeBorderColor, themeDisabledTextColor } = colorVariables(themeColors) + + return { + chart: { + parentHeightOffset: 0, + toolbar: { show: false }, + zoom: { + type: 'xy', + enabled: true, + }, + }, + legend: { + position: 'top', + horizontalAlign: 'left', + markers: { offsetX: -3 }, + + labels: { colors: themeSecondaryTextColor }, + itemMargin: { + vertical: 3, + horizontal: 10, + }, + }, + colors: [scatterColors.series1, scatterColors.series2, scatterColors.series3], + grid: { + borderColor: themeBorderColor, + xaxis: { + lines: { show: true }, + }, + }, + yaxis: { + labels: { + style: { colors: themeDisabledTextColor }, + }, + }, + xaxis: { + tickAmount: 10, + axisBorder: { show: false }, + + axisTicks: { color: themeBorderColor }, + crosshairs: { + stroke: { color: themeBorderColor }, + }, + labels: { + style: { colors: themeDisabledTextColor }, + formatter: (val: string) => parseFloat(val).toFixed(1), + }, + }, + } +} +export const getLineChartSimpleConfig = (themeColors: ThemeInstance['themes']['value']['colors']) => { + const { themeBorderColor, themeDisabledTextColor } = colorVariables(themeColors) + + return { + chart: { + parentHeightOffset: 0, + zoom: { enabled: false }, + toolbar: { show: false }, + }, + colors: ['#ff9f43'], + stroke: { curve: 'straight' }, + dataLabels: { enabled: false }, + markers: { + strokeWidth: 7, + strokeOpacity: 1, + colors: ['#ff9f43'], + strokeColors: ['#fff'], + }, + grid: { + padding: { top: -10 }, + + borderColor: themeBorderColor, + xaxis: { + lines: { show: true }, + }, + }, + tooltip: { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + custom(data: any) { + return `
+ ${data.series[data.seriesIndex][data.dataPointIndex]}% +
` + }, + }, + yaxis: { + labels: { + style: { colors: themeDisabledTextColor }, + }, + }, + xaxis: { + axisBorder: { show: false }, + + axisTicks: { color: themeBorderColor }, + crosshairs: { + stroke: { color: themeBorderColor }, + }, + labels: { + style: { colors: themeDisabledTextColor }, + }, + categories: [ + '7/12', + '8/12', + '9/12', + '10/12', + '11/12', + '12/12', + '13/12', + '14/12', + '15/12', + '16/12', + '17/12', + '18/12', + '19/12', + '20/12', + '21/12', + ], + }, + } +} + +export const getBarChartConfig = (themeColors: ThemeInstance['themes']['value']['colors']) => { + const { themeBorderColor, themeDisabledTextColor } = colorVariables(themeColors) + + return { + chart: { + parentHeightOffset: 0, + toolbar: { show: false }, + }, + colors: ['#00cfe8'], + dataLabels: { enabled: false }, + plotOptions: { + bar: { + borderRadius: 8, + barHeight: '30%', + horizontal: true, + startingShape: 'rounded', + }, + }, + grid: { + borderColor: themeBorderColor, + xaxis: { + lines: { show: false }, + }, + padding: { + top: -10, + }, + }, + yaxis: { + labels: { + style: { colors: themeDisabledTextColor }, + }, + }, + xaxis: { + axisBorder: { show: false }, + axisTicks: { color: themeBorderColor }, + categories: ['MON, 11', 'THU, 14', 'FRI, 15', 'MON, 18', 'WED, 20', 'FRI, 21', 'MON, 23'], + labels: { + style: { colors: themeDisabledTextColor }, + }, + }, + } +} + +export const getCandlestickChartConfig = (themeColors: ThemeInstance['themes']['value']['colors']) => { + const candlestickColors = { + series1: '#28c76f', + series2: '#ea5455', + } + + const { themeBorderColor, themeDisabledTextColor } = colorVariables(themeColors) + + return { + chart: { + parentHeightOffset: 0, + toolbar: { show: false }, + }, + plotOptions: { + bar: { columnWidth: '40%' }, + candlestick: { + colors: { + upward: candlestickColors.series1, + downward: candlestickColors.series2, + }, + }, + }, + grid: { + padding: { top: -10 }, + borderColor: themeBorderColor, + xaxis: { + lines: { show: true }, + }, + }, + yaxis: { + tooltip: { enabled: true }, + crosshairs: { + stroke: { color: themeBorderColor }, + }, + labels: { + style: { colors: themeDisabledTextColor }, + }, + }, + xaxis: { + type: 'datetime', + axisBorder: { show: false }, + axisTicks: { color: themeBorderColor }, + crosshairs: { + stroke: { color: themeBorderColor }, + }, + labels: { + style: { colors: themeDisabledTextColor }, + }, + }, + } +} +export const getRadialBarChartConfig = (themeColors: ThemeInstance['themes']['value']['colors']) => { + const radialBarColors = { + series1: '#fdd835', + series2: '#32baff', + series3: '#00d4bd', + series4: '#7367f0', + series5: '#FFA1A1', + } + + const { themeSecondaryTextColor, themePrimaryTextColor } = colorVariables(themeColors) + + return { + stroke: { lineCap: 'round' }, + labels: ['Comments', 'Replies', 'Shares'], + legend: { + show: true, + position: 'bottom', + labels: { + colors: themeSecondaryTextColor, + }, + markers: { + offsetX: -3, + }, + itemMargin: { + vertical: 3, + horizontal: 10, + }, + }, + colors: [radialBarColors.series1, radialBarColors.series2, radialBarColors.series4], + plotOptions: { + radialBar: { + hollow: { size: '30%' }, + track: { + margin: 15, + background: themeColors.colors['grey-100'], + }, + dataLabels: { + name: { + fontSize: '2rem', + }, + value: { + fontSize: '1rem', + color: themeSecondaryTextColor, + }, + total: { + show: true, + fontWeight: 400, + label: 'Comments', + fontSize: '1.125rem', + + color: themePrimaryTextColor, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + formatter(w: { globals: { seriesTotals: any[]; series: string | any[] } }) { + const totalValue + = w.globals.seriesTotals.reduce((a: number, b: number) => { + return a + b + }, 0) / w.globals.series.length + + if (totalValue % 1 === 0) + return `${totalValue}%` + else + return `${totalValue.toFixed(2)}%` + }, + }, + }, + }, + }, + grid: { + padding: { + top: -35, + bottom: -30, + }, + }, + } +} + +export const getDonutChartConfig = (themeColors: ThemeInstance['themes']['value']['colors']) => { + const donutColors = { + series1: '#fdd835', + series2: '#00d4bd', + series3: '#826bf8', + series4: '#32baff', + series5: '#ffa1a1', + } + + const { themeSecondaryTextColor, themePrimaryTextColor } = colorVariables(themeColors) + + return { + stroke: { width: 0 }, + labels: ['Operational', 'Networking', 'Hiring', 'R&D'], + colors: [donutColors.series1, donutColors.series5, donutColors.series3, donutColors.series2], + dataLabels: { + enabled: true, + formatter: (val: string) => `${parseInt(val, 10)}%`, + }, + legend: { + position: 'bottom', + markers: { offsetX: -3 }, + labels: { colors: themeSecondaryTextColor }, + itemMargin: { + vertical: 3, + horizontal: 10, + }, + }, + plotOptions: { + pie: { + donut: { + labels: { + show: true, + name: { + fontSize: '1.5rem', + }, + value: { + fontSize: '1.5rem', + color: themeSecondaryTextColor, + formatter: (val: string) => `${parseInt(val, 10)}`, + }, + total: { + show: true, + fontSize: '1.5rem', + label: 'Operational', + formatter: () => '31%', + color: themePrimaryTextColor, + }, + }, + }, + }, + }, + responsive: [ + { + breakpoint: 992, + options: { + chart: { + height: 380, + }, + legend: { + position: 'bottom', + }, + }, + }, + { + breakpoint: 576, + options: { + chart: { + height: 320, + }, + plotOptions: { + pie: { + donut: { + labels: { + show: true, + name: { + fontSize: '1rem', + }, + value: { + fontSize: '1rem', + }, + total: { + fontSize: '1rem', + }, + }, + }, + }, + }, + }, + }, + ], + } +} + +export const getAreaChartSplineConfig = (themeColors: ThemeInstance['themes']['value']['colors']) => { + const areaColors = { + series3: '#e0cffe', + series2: '#b992fe', + series1: '#ab7efd', + } + + const { themeSecondaryTextColor, themeBorderColor, themeDisabledTextColor } = colorVariables(themeColors) + + return { + chart: { + parentHeightOffset: 0, + toolbar: { show: false }, + }, + tooltip: { shared: false }, + dataLabels: { enabled: false }, + stroke: { + show: false, + curve: 'straight', + }, + legend: { + position: 'top', + horizontalAlign: 'left', + + labels: { colors: themeSecondaryTextColor }, + markers: { + offsetY: 1, + offsetX: -3, + }, + itemMargin: { + vertical: 3, + horizontal: 10, + }, + }, + + colors: [areaColors.series3, areaColors.series2, areaColors.series1], + fill: { + opacity: 1, + type: 'solid', + }, + grid: { + show: true, + borderColor: themeBorderColor, + xaxis: { + lines: { show: true }, + }, + }, + yaxis: { + labels: { + style: { colors: themeDisabledTextColor }, + }, + }, + xaxis: { + axisBorder: { show: false }, + + axisTicks: { color: themeBorderColor }, + crosshairs: { + stroke: { color: themeBorderColor }, + }, + labels: { + style: { colors: themeDisabledTextColor }, + }, + categories: [ + '7/12', + '8/12', + '9/12', + '10/12', + '11/12', + '12/12', + '13/12', + '14/12', + '15/12', + '16/12', + '17/12', + '18/12', + '19/12', + ], + }, + } +} + +export const getColumnChartConfig = (themeColors: ThemeInstance['themes']['value']['colors']) => { + const columnColors = { + series1: '#826af9', + series2: '#d2b0ff', + bg: '#f8d3ff', + } + + const { themeSecondaryTextColor, themeBorderColor, themeDisabledTextColor } = colorVariables(themeColors) + + return { + chart: { + offsetX: -10, + stacked: true, + parentHeightOffset: 0, + toolbar: { show: false }, + }, + fill: { opacity: 1 }, + dataLabels: { enabled: false }, + + colors: [columnColors.series1, columnColors.series2], + legend: { + position: 'top', + horizontalAlign: 'left', + + labels: { colors: themeSecondaryTextColor }, + markers: { + offsetY: 1, + offsetX: -3, + }, + itemMargin: { + vertical: 3, + horizontal: 10, + }, + }, + stroke: { + show: true, + colors: ['transparent'], + }, + plotOptions: { + bar: { + columnWidth: '15%', + colors: { + backgroundBarRadius: 10, + + backgroundBarColors: [columnColors.bg, columnColors.bg, columnColors.bg, columnColors.bg, columnColors.bg], + }, + }, + }, + grid: { + borderColor: themeBorderColor, + xaxis: { + lines: { show: true }, + }, + }, + yaxis: { + labels: { + style: { colors: themeDisabledTextColor }, + }, + }, + xaxis: { + axisBorder: { show: false }, + + axisTicks: { color: themeBorderColor }, + categories: ['7/12', '8/12', '9/12', '10/12', '11/12', '12/12', '13/12', '14/12', '15/12'], + crosshairs: { + stroke: { color: themeBorderColor }, + }, + labels: { + style: { colors: themeDisabledTextColor }, + }, + }, + responsive: [ + { + breakpoint: 600, + options: { + plotOptions: { + bar: { + columnWidth: '35%', + }, + }, + }, + }, + ], + } +} + +export const getHeatMapChartConfig = (themeColors: ThemeInstance['themes']['value']['colors']) => { + const { themeSecondaryTextColor, themeDisabledTextColor } = colorVariables(themeColors) + + return { + chart: { + parentHeightOffset: 0, + toolbar: { show: false }, + }, + dataLabels: { enabled: false }, + stroke: { + colors: [themeColors.colors.surface], + }, + legend: { + position: 'bottom', + labels: { + colors: themeSecondaryTextColor, + }, + markers: { + offsetY: 0, + offsetX: -3, + }, + itemMargin: { + vertical: 3, + horizontal: 10, + }, + }, + plotOptions: { + heatmap: { + enableShades: false, + colorScale: { + ranges: [ + { to: 10, from: 0, name: '0-10', color: '#b9b3f8' }, + { to: 20, from: 11, name: '10-20', color: '#aba4f6' }, + { to: 30, from: 21, name: '20-30', color: '#9d95f5' }, + { to: 40, from: 31, name: '30-40', color: '#8f85f3' }, + { to: 50, from: 41, name: '40-50', color: '#8176f2' }, + { to: 60, from: 51, name: '50-60', color: '#7367f0' }, + ], + }, + }, + }, + grid: { + padding: { top: -20 }, + }, + yaxis: { + labels: { + style: { + colors: themeDisabledTextColor, + }, + }, + }, + xaxis: { + labels: { show: false }, + axisTicks: { show: false }, + axisBorder: { show: false }, + }, + } +} + +export const getRadarChartConfig = (themeColors: ThemeInstance['themes']['value']['colors']) => { + const radarColors = { + series1: '#9b88fa', + series2: '#ffa1a1', + } + + const { themeSecondaryTextColor, themeBorderColor, themeDisabledTextColor } = colorVariables(themeColors) + + return { + chart: { + parentHeightOffset: 0, + toolbar: { show: false }, + dropShadow: { + top: 1, + blur: 8, + left: 1, + opacity: 0.2, + enabled: false, + }, + }, + markers: { size: 0 }, + fill: { opacity: [1, 0.8] }, + colors: [radarColors.series1, radarColors.series2], + stroke: { + width: 0, + show: false, + }, + legend: { + labels: { + colors: themeSecondaryTextColor, + }, + markers: { + offsetX: -3, + }, + itemMargin: { + vertical: 3, + horizontal: 10, + }, + }, + plotOptions: { + radar: { + polygons: { + strokeColors: themeBorderColor, + connectorColors: themeBorderColor, + }, + }, + }, + grid: { + show: false, + padding: { + top: -20, + bottom: -20, + }, + }, + yaxis: { show: false }, + xaxis: { + categories: ['Battery', 'Brand', 'Camera', 'Memory', 'Storage', 'Display', 'OS', 'Price'], + labels: { + style: { + colors: [ + themeDisabledTextColor, + themeDisabledTextColor, + themeDisabledTextColor, + themeDisabledTextColor, + themeDisabledTextColor, + themeDisabledTextColor, + themeDisabledTextColor, + themeDisabledTextColor, + ], + }, + }, + }, + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/libs/chartjs/chartjsConfig.ts b/packages/dashboard/src/plugins/vuetify/@core/libs/chartjs/chartjsConfig.ts new file mode 100644 index 00000000..6a4fab7c --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/libs/chartjs/chartjsConfig.ts @@ -0,0 +1,373 @@ +import type { ThemeInstance } from 'vuetify' +import { hexToRgb } from '@layouts/utils' + +// 👉 Colors variables +const colorVariables = (themeColors: ThemeInstance['themes']['value']['colors']) => { + const themeSecondaryTextColor = `rgba(${hexToRgb(themeColors.colors['on-surface'])},${themeColors.variables['medium-emphasis-opacity']})` + const themeDisabledTextColor = `rgba(${hexToRgb(themeColors.colors['on-surface'])},${themeColors.variables['disabled-opacity']})` + const themeBorderColor = `rgba(${hexToRgb(String(themeColors.variables['border-color']))},${themeColors.variables['border-opacity']})` + + return { labelColor: themeDisabledTextColor, borderColor: themeBorderColor, legendColor: themeSecondaryTextColor } +} + +// SECTION config + +// 👉 Latest Bar Chart Config +export const getLatestBarChartConfig = (themeColors: ThemeInstance['themes']['value']['colors']) => { + const { borderColor, labelColor } = colorVariables(themeColors) + + return { + responsive: true, + maintainAspectRatio: false, + animation: { duration: 500 }, + scales: { + x: { + grid: { + borderColor, + drawBorder: false, + color: borderColor, + }, + ticks: { color: labelColor }, + }, + y: { + min: 0, + max: 400, + grid: { + borderColor, + drawBorder: false, + color: borderColor, + }, + ticks: { + stepSize: 100, + color: labelColor, + }, + }, + }, + plugins: { + legend: { display: false }, + }, + } +} + +// 👉 Horizontal Bar Chart Config +export const getHorizontalBarChartConfig = (themeColors: ThemeInstance['themes']['value']['colors']) => { + const { borderColor, labelColor, legendColor } = colorVariables(themeColors) + + return { + indexAxis: 'y', + responsive: true, + maintainAspectRatio: false, + animation: { duration: 500 }, + elements: { + bar: { + borderRadius: { + topRight: 15, + bottomRight: 15, + }, + }, + }, + layout: { + padding: { top: -4 }, + }, + scales: { + x: { + min: 0, + grid: { + drawTicks: false, + drawBorder: false, + color: borderColor, + }, + ticks: { color: labelColor }, + }, + y: { + grid: { + borderColor, + display: false, + drawBorder: false, + }, + ticks: { color: labelColor }, + }, + }, + plugins: { + legend: { + align: 'end', + position: 'top', + labels: { color: legendColor }, + }, + }, + } +} + +// 👉 Line Chart Config +export const getLineChartConfig = (themeColors: ThemeInstance['themes']['value']['colors']) => { + const { borderColor, labelColor, legendColor } = colorVariables(themeColors) + + return { + responsive: true, + maintainAspectRatio: false, + scales: { + x: { + ticks: { color: labelColor }, + grid: { + borderColor, + drawBorder: false, + color: borderColor, + }, + }, + y: { + min: 0, + max: 400, + ticks: { + stepSize: 100, + color: labelColor, + }, + grid: { + borderColor, + drawBorder: false, + color: borderColor, + }, + }, + }, + plugins: { + legend: { + align: 'end', + position: 'top', + labels: { + padding: 25, + boxWidth: 10, + color: legendColor, + usePointStyle: true, + }, + }, + }, + } +} + +// 👉 Radar Chart Config +export const getRadarChartConfig = (themeColors: ThemeInstance['themes']['value']['colors']) => { + const { borderColor, labelColor, legendColor } = colorVariables(themeColors) + + return { + responsive: true, + maintainAspectRatio: false, + animation: { duration: 500 }, + layout: { + padding: { top: -20 }, + }, + scales: { + r: { + ticks: { + display: false, + maxTicksLimit: 1, + color: labelColor, + }, + grid: { color: borderColor }, + pointLabels: { color: labelColor }, + angleLines: { color: borderColor }, + }, + }, + plugins: { + legend: { + position: 'top', + labels: { + padding: 25, + color: legendColor, + }, + }, + }, + } +} + +// 👉 Polar Chart Config +export const getPolarChartConfig = (themeColors: ThemeInstance['themes']['value']['colors']) => { + const { legendColor } = colorVariables(themeColors) + + return { + responsive: true, + maintainAspectRatio: false, + animation: { duration: 500 }, + layout: { + padding: { + top: -5, + bottom: -45, + }, + }, + scales: { + r: { + grid: { display: false }, + ticks: { display: false }, + }, + }, + plugins: { + legend: { + position: 'right', + labels: { + padding: 25, + boxWidth: 9, + color: legendColor, + usePointStyle: true, + }, + }, + }, + } +} + +// 👉 Bubble Chart Config +export const getBubbleChartConfig = (themeColors: ThemeInstance['themes']['value']['colors']) => { + const { borderColor, labelColor } = colorVariables(themeColors) + + return { + responsive: true, + maintainAspectRatio: false, + scales: { + x: { + min: 0, + max: 140, + grid: { + borderColor, + drawBorder: false, + color: borderColor, + }, + ticks: { + stepSize: 10, + color: labelColor, + }, + }, + y: { + min: 0, + max: 400, + grid: { + borderColor, + drawBorder: false, + color: borderColor, + }, + ticks: { + stepSize: 100, + color: labelColor, + }, + }, + }, + plugins: { + legend: { display: false }, + }, + } +} + +// 👉 Doughnut Chart Config +export const getDoughnutChartConfig = () => { + return { + responsive: true, + maintainAspectRatio: false, + animation: { duration: 500 }, + cutout: 80, + plugins: { + legend: { + display: false, + }, + }, + } +} + +// 👉 Scatter Chart Config +export const getScatterChartConfig = (themeColors: ThemeInstance['themes']['value']['colors']) => { + const { borderColor, labelColor, legendColor } = colorVariables(themeColors) + + return { + responsive: true, + maintainAspectRatio: false, + animation: { duration: 800 }, + layout: { + padding: { top: -20 }, + }, + scales: { + x: { + min: 0, + max: 140, + grid: { + borderColor, + drawTicks: false, + drawBorder: false, + color: borderColor, + }, + ticks: { + stepSize: 10, + color: labelColor, + }, + }, + y: { + min: 0, + max: 400, + grid: { + borderColor, + drawTicks: false, + drawBorder: false, + color: borderColor, + }, + ticks: { + stepSize: 100, + color: labelColor, + }, + }, + }, + plugins: { + legend: { + align: 'start', + position: 'top', + labels: { + padding: 25, + boxWidth: 9, + color: legendColor, + usePointStyle: true, + }, + }, + }, + } +} + +// 👉 Line Area Chart Config +export const getLineAreaChartConfig = (themeColors: ThemeInstance['themes']['value']['colors']) => { + const { borderColor, labelColor, legendColor } = colorVariables(themeColors) + + return { + responsive: true, + maintainAspectRatio: false, + layout: { + padding: { top: -20 }, + }, + scales: { + x: { + grid: { + borderColor, + color: 'transparent', + }, + ticks: { color: labelColor }, + }, + y: { + min: 0, + max: 400, + grid: { + borderColor, + color: 'transparent', + }, + ticks: { + stepSize: 100, + color: labelColor, + }, + }, + }, + plugins: { + legend: { + align: 'start', + position: 'top', + labels: { + padding: 25, + boxWidth: 9, + color: legendColor, + usePointStyle: true, + }, + }, + }, + } +} + +// !SECTION diff --git a/packages/dashboard/src/plugins/vuetify/@core/libs/chartjs/components/BarChart.ts b/packages/dashboard/src/plugins/vuetify/@core/libs/chartjs/components/BarChart.ts new file mode 100644 index 00000000..84a5c7d6 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/libs/chartjs/components/BarChart.ts @@ -0,0 +1,58 @@ +import type { PluginOptionsByType } from 'chart.js' +import { BarElement, CategoryScale, Chart as ChartJS, Legend, LinearScale, Title, Tooltip } from 'chart.js' +import type { PropType } from 'vue' +import { defineComponent } from 'vue' +import { Bar } from 'vue-chartjs' + +ChartJS.register(Title, Tooltip, Legend, BarElement, CategoryScale, LinearScale) + +export default defineComponent({ + name: 'BarChart', + props: { + chartId: { + type: String, + default: 'bar-chart', + }, + width: { + type: Number, + default: 400, + }, + height: { + type: Number, + default: 400, + }, + cssClasses: { + default: '', + type: String, + }, + styles: { + type: Object as PropType>, + default: () => ({}), + }, + plugins: { + type: Array as PropType[]>, + default: () => ([]), + }, + chartData: { + type: Object, + default: () => ({}), + }, + chartOptions: { + type: Object, + default: () => ({}), + }, + }, + setup(props) { + return () => + h(h(Bar), { + data: props.chartData, + options: props.chartOptions, + chartId: props.chartId, + width: props.width, + height: props.height, + cssClasses: props.cssClasses, + styles: props.styles, + plugins: props.plugins, + }) + }, +}) diff --git a/packages/dashboard/src/plugins/vuetify/@core/libs/chartjs/components/BubbleChart.ts b/packages/dashboard/src/plugins/vuetify/@core/libs/chartjs/components/BubbleChart.ts new file mode 100644 index 00000000..1f11e379 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/libs/chartjs/components/BubbleChart.ts @@ -0,0 +1,58 @@ +import type { PluginOptionsByType } from 'chart.js' +import { Chart as ChartJS, Legend, LinearScale, PointElement, Title, Tooltip } from 'chart.js' +import type { PropType } from 'vue' +import { defineComponent } from 'vue' +import { Bubble } from 'vue-chartjs' + +ChartJS.register(Title, Tooltip, Legend, PointElement, LinearScale) + +export default defineComponent({ + name: 'BubbleChart', + props: { + chartId: { + type: String, + default: 'bubble-chart', + }, + width: { + type: Number, + default: 400, + }, + height: { + type: Number, + default: 400, + }, + cssClasses: { + default: '', + type: String, + }, + styles: { + type: Object as PropType>, + default: () => ({}), + }, + plugins: { + type: Array as PropType[]>, + default: () => [], + }, + chartData: { + type: Object, + default: () => ({}), + }, + chartOptions: { + type: Object, + default: () => ({}), + }, + }, + setup(props) { + return () => + h(h(Bubble), { + data: props.chartData, + options: props.chartOptions, + chartId: props.chartId, + width: props.width, + height: props.height, + cssClasses: props.cssClasses, + styles: props.styles, + plugins: props.plugins, + }) + }, +}) diff --git a/packages/dashboard/src/plugins/vuetify/@core/libs/chartjs/components/DoughnutChart.ts b/packages/dashboard/src/plugins/vuetify/@core/libs/chartjs/components/DoughnutChart.ts new file mode 100644 index 00000000..bd13c183 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/libs/chartjs/components/DoughnutChart.ts @@ -0,0 +1,58 @@ +import type { PluginOptionsByType } from 'chart.js' +import { ArcElement, CategoryScale, Chart as ChartJS, Legend, Title, Tooltip } from 'chart.js' +import type { PropType } from 'vue' +import { defineComponent } from 'vue' +import { Doughnut } from 'vue-chartjs' + +ChartJS.register(Title, Tooltip, Legend, ArcElement, CategoryScale) + +export default defineComponent({ + name: 'DoughnutChart', + props: { + chartId: { + type: String, + default: 'doughnut-chart', + }, + width: { + type: Number, + default: 400, + }, + height: { + type: Number, + default: 400, + }, + cssClasses: { + default: '', + type: String, + }, + styles: { + type: Object as PropType>, + default: () => ({}), + }, + plugins: { + type: Array as PropType[]>, + default: () => [], + }, + chartData: { + type: Object, + default: () => ({}), + }, + chartOptions: { + type: Object, + default: () => ({}), + }, + }, + setup(props) { + return () => + h(h(Doughnut), { + data: props.chartData, + options: props.chartOptions, + chartId: props.chartId, + width: props.width, + height: props.height, + cssClasses: props.cssClasses, + styles: props.styles, + plugins: props.plugins, + }) + }, +}) diff --git a/packages/dashboard/src/plugins/vuetify/@core/libs/chartjs/components/LineChart.ts b/packages/dashboard/src/plugins/vuetify/@core/libs/chartjs/components/LineChart.ts new file mode 100644 index 00000000..c86d8e7c --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/libs/chartjs/components/LineChart.ts @@ -0,0 +1,58 @@ +import type { PluginOptionsByType } from 'chart.js' +import { CategoryScale, Chart as ChartJS, Legend, LineElement, LinearScale, PointElement, Title, Tooltip } from 'chart.js' +import type { PropType } from 'vue' +import { defineComponent } from 'vue' +import { Line } from 'vue-chartjs' + +ChartJS.register(Title, Tooltip, Legend, LineElement, LinearScale, PointElement, CategoryScale) + +export default defineComponent({ + name: 'LineChart', + props: { + chartId: { + type: String, + default: 'line-chart', + }, + width: { + type: Number, + default: 400, + }, + height: { + type: Number, + default: 400, + }, + cssClasses: { + default: '', + type: String, + }, + styles: { + type: Object as PropType>, + default: () => ({}), + }, + plugins: { + type: Array as PropType[]>, + default: () => [], + }, + chartData: { + type: Object, + default: () => ({}), + }, + chartOptions: { + type: Object, + default: () => ({}), + }, + }, + setup(props) { + return () => + h(h(Line), { + chartId: props.chartId, + width: props.width, + height: props.height, + cssClasses: props.cssClasses, + styles: props.styles, + plugins: props.plugins, + options: props.chartOptions, + data: props.chartData, + }) + }, +}) diff --git a/packages/dashboard/src/plugins/vuetify/@core/libs/chartjs/components/PolarAreaChart.ts b/packages/dashboard/src/plugins/vuetify/@core/libs/chartjs/components/PolarAreaChart.ts new file mode 100644 index 00000000..c15b9a3e --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/libs/chartjs/components/PolarAreaChart.ts @@ -0,0 +1,58 @@ +import type { PluginOptionsByType } from 'chart.js' +import { ArcElement, Chart as ChartJS, Legend, RadialLinearScale, Title, Tooltip } from 'chart.js' +import type { PropType } from 'vue' +import { defineComponent } from 'vue' +import { PolarArea } from 'vue-chartjs' + +ChartJS.register(Title, Tooltip, Legend, ArcElement, RadialLinearScale) + +export default defineComponent({ + name: 'PolarAreaChart', + props: { + chartId: { + type: String, + default: 'line-chart', + }, + width: { + type: Number, + default: 400, + }, + height: { + type: Number, + default: 400, + }, + cssClasses: { + default: '', + type: String, + }, + styles: { + type: Object as PropType>, + default: () => ({}), + }, + plugins: { + type: Array as PropType[]>, + default: () => [], + }, + chartData: { + type: Object, + default: () => ({}), + }, + chartOptions: { + type: Object, + default: () => ({}), + }, + }, + setup(props) { + return () => + h(h(PolarArea), { + data: props.chartData, + options: props.chartOptions, + chartId: props.chartId, + width: props.width, + height: props.height, + cssClasses: props.cssClasses, + styles: props.styles, + plugins: props.plugins, + }) + }, +}) diff --git a/packages/dashboard/src/plugins/vuetify/@core/libs/chartjs/components/RadarChart.ts b/packages/dashboard/src/plugins/vuetify/@core/libs/chartjs/components/RadarChart.ts new file mode 100644 index 00000000..499bced0 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/libs/chartjs/components/RadarChart.ts @@ -0,0 +1,58 @@ +import type { PluginOptionsByType } from 'chart.js' +import { Chart as ChartJS, Filler, Legend, LineElement, PointElement, RadialLinearScale, Title, Tooltip } from 'chart.js' +import type { PropType } from 'vue' +import { defineComponent } from 'vue' +import { Radar } from 'vue-chartjs' + +ChartJS.register(Title, Tooltip, Legend, PointElement, RadialLinearScale, LineElement, Filler) + +export default defineComponent({ + name: 'RadarChart', + props: { + chartId: { + type: String, + default: 'radar-chart', + }, + width: { + type: Number, + default: 400, + }, + height: { + type: Number, + default: 400, + }, + cssClasses: { + default: '', + type: String, + }, + styles: { + type: Object as PropType>, + default: () => ({}), + }, + plugins: { + type: Array as PropType[]>, + default: () => [], + }, + chartData: { + type: Object, + default: () => ({}), + }, + chartOptions: { + type: Object, + default: () => ({}), + }, + }, + setup(props) { + return () => + h(h(Radar), { + data: props.chartData, + options: props.chartOptions, + chartId: props.chartId, + width: props.width, + height: props.height, + cssClasses: props.cssClasses, + styles: props.styles, + plugins: props.plugins, + }) + }, +}) diff --git a/packages/dashboard/src/plugins/vuetify/@core/libs/chartjs/components/ScatterChart.ts b/packages/dashboard/src/plugins/vuetify/@core/libs/chartjs/components/ScatterChart.ts new file mode 100644 index 00000000..35136b86 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/libs/chartjs/components/ScatterChart.ts @@ -0,0 +1,58 @@ +import type { PluginOptionsByType } from 'chart.js' +import { CategoryScale, Chart as ChartJS, Legend, LineElement, LinearScale, PointElement, Title, Tooltip } from 'chart.js' +import type { PropType } from 'vue' +import { defineComponent } from 'vue' +import { Scatter } from 'vue-chartjs' + +ChartJS.register(Title, Tooltip, Legend, PointElement, LineElement, CategoryScale, LinearScale) + +export default defineComponent({ + name: 'ScatterChart', + props: { + chartId: { + type: String, + default: 'scatter-chart', + }, + width: { + type: Number, + default: 400, + }, + height: { + type: Number, + default: 400, + }, + cssClasses: { + default: '', + type: String, + }, + styles: { + type: Object as PropType>, + default: () => ({}), + }, + plugins: { + type: Array as PropType[]>, + default: () => [], + }, + chartData: { + type: Object, + default: () => ({}), + }, + chartOptions: { + type: Object, + default: () => ({}), + }, + }, + setup(props) { + return () => + h(h(Scatter), { + data: props.chartData, + options: props.chartOptions, + chartId: props.chartId, + width: props.width, + height: props.height, + cssClasses: props.cssClasses, + styles: props.styles, + plugins: props.plugins, + }) + }, +}) diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/_components.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_components.scss new file mode 100644 index 00000000..572c979c --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_components.scss @@ -0,0 +1,139 @@ +@use "mixins"; +@use "vuetify/lib/styles/tools/_elevation" as mixins_elevation; +@use "@layouts/styles/placeholders"; +@use "@configured-variables" as variables; + +// 👉 Avatar group +.v-avatar-group { + display: flex; + align-items: center; + + > * { + &:not(:first-child) { + margin-inline-start: -0.8rem; + } + + transition: transform 0.25s ease, box-shadow 0.15s ease; + + &:hover { + z-index: 2; + transform: translateY(-5px) scale(1.05); + + @include mixins_elevation.elevation(3); + } + } + + > .v-avatar { + border: 2px solid rgb(var(--v-theme-surface)); + } +} + +// 👉 Button outline with default color border color +.v-alert--variant-outlined, +.v-avatar--variant-outlined, +.v-btn.v-btn--variant-outlined, +.v-card--variant-outlined, +.v-chip--variant-outlined { + &:not([class*="text-"]) { + border-color: rgba(var(--v-border-color), var(--v-border-opacity)); + } + + &.text-default { + border-color: rgba(var(--v-border-color), var(--v-border-opacity)); + } +} + +// 👉 Custom Input +.custom-input { + padding: 1rem; + border: 1px solid rgba(var(--v-border-color), var(--v-border-opacity)); + opacity: 1; + transition: border-color 0.5s; + white-space: normal; + + &:hover { + border-color: rgba(var(--v-border-color), 0.25); + } + + &.active { + border-color: rgb(var(--v-theme-primary)); + } +} + +// Dialog responsive width +.v-dialog { + // dialog custom close btn + .v-dialog-close-btn { + position: absolute; + z-index: 1; + color: rgba(var(--v-theme-on-surface), var(--v-disabled-opacity)) !important; + inset-block-start: 0.9375rem; + inset-inline-end: 0.9375rem; + } + + .v-card { + @extend %style-scroll-bar; + } +} + +@media (min-width: 576px) { + .v-dialog { + &.v-dialog-sm, + &.v-dialog-lg, + &.v-dialog-xl { + inline-size: 565px !important; + } + } +} + +@media (min-width: 992px) { + .v-dialog { + &.v-dialog-lg, + &.v-dialog-xl { + inline-size: 865px !important; + } + } +} + +@media (min-width: 1200px) { + .v-dialog.v-dialog-xl, + .v-dialog.v-dialog-xl .v-overlay__content > .v-card { + inline-size: 1165px !important; + } +} + +// v-tab with pill support + +.v-tabs.v-tabs-pill { + .v-tab.v-btn { + border-radius: 0.25rem !important; + transition: none; + + .v-tab__slider { + visibility: hidden; + } + } + + .v-slide-group__content { + transition: none; + } +} + +// loop for all colors bg +@each $color-name in variables.$theme-colors-name { + .v-tabs.v-tabs-pill { + .v-slide-group-item--active.v-tab--selected.text-#{$color-name} { + background-color: rgb(var(--v-theme-#{$color-name})); + color: rgb(var(--v-theme-on-#{$color-name})) !important; + } + } +} + +// ℹī¸ We are make even width of all v-timeline body +.v-timeline--vertical.v-timeline { + .v-timeline-item { + .v-timeline-item__body { + justify-self: stretch !important; + } + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/_dark.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_dark.scss new file mode 100644 index 00000000..1df7474f --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_dark.scss @@ -0,0 +1,16 @@ +@use "@configured-variables" as variables; + +// ———————————————————————————————————— +//* ——— Perfect Scrollbar +// ———————————————————————————————————— + +.v-application.v-theme--dark { + .ps__rail-y, + .ps__rail-x { + background-color: transparent !important; + } + + .ps__thumb-y { + background-color: variables.$plugin-ps-thumb-y-dark; + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/_default-layout-w-horizontal-nav.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_default-layout-w-horizontal-nav.scss new file mode 100644 index 00000000..030967fb --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_default-layout-w-horizontal-nav.scss @@ -0,0 +1,45 @@ +@use "vuetify/lib/styles/tools/elevation" as elevation; +@use "@/plugins/vuetify/@core/scss/base/placeholders" as *; +@use "@/plugins/vuetify/@core/scss/template/placeholders" as *; + +.layout-wrapper.layout-nav-type-horizontal { + .layout-navbar-and-nav-container { + @extend %default-layout-horizontal-nav-navbar-and-nav-container; + } + + // 👉 Navbar + .layout-navbar { + @extend %default-layout-horizontal-nav-navbar; + } + + // 👉 Layout content container + .navbar-content-container { + display: flex; + align-items: center; + block-size: 100%; + } + + .layout-horizontal-nav { + @extend %default-layout-horizontal-nav-nav; + + .nav-items { + @extend %default-layout-horizontal-nav-nav-items-list; + } + } + + // 👉 App footer + .layout-footer { + @at-root { + .layout-footer-sticky#{&} { + background-color: rgb(var(--v-theme-surface)); + + @include elevation.elevation(3); + } + } + } + + // TODO: Use Vuetify grid sass variable here + .layout-page-content { + padding-block: 1.5rem; + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/_default-layout-w-vertical-nav.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_default-layout-w-vertical-nav.scss new file mode 100644 index 00000000..282e0fbf --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_default-layout-w-vertical-nav.scss @@ -0,0 +1,103 @@ +@use "@configured-variables" as variables; +@use "@/plugins/vuetify/@core/scss/base/placeholders" as *; +@use "@/plugins/vuetify/@core/scss/template/placeholders" as *; +@use "vuetify/lib/styles/tools/_elevation" as mixins_elevation; +@use "misc"; + +$header: ".layout-navbar"; + +@if variables.$layout-vertical-nav-navbar-is-contained { + $header: ".layout-navbar .navbar-content-container"; +} + +.layout-wrapper.layout-nav-type-vertical { + // SECTION Layout Navbar + // 👉 Elevated navbar + @if variables.$vertical-nav-navbar-style == "elevated" { + // Add transition + #{$header} { + transition: padding 0.2s ease, background-color 0.18s ease; + } + + // If navbar is contained => Add border radius to header + @if variables.$layout-vertical-nav-navbar-is-contained { + #{$header} { + border-radius: 0 0 variables.$default-layout-with-vertical-nav-navbar-footer-roundness variables.$default-layout-with-vertical-nav-navbar-footer-roundness; + } + } + + // Scrolled styles for sticky navbar + @at-root { + /* ℹī¸ This html selector with not selector is required when: + dialog is opened and window don't have any scroll. This removes window-scrolled class from layout and out style broke + */ + html.v-overlay-scroll-blocked:not([style*="--v-body-scroll-y:0px;"]) .layout-navbar-sticky, + &.window-scrolled.layout-navbar-sticky { + + #{$header} { + @extend %default-layout-vertical-nav-scrolled-sticky-elevated-nav; + @extend %default-layout-vertical-nav-floating-navbar-and-sticky-elevated-navbar-scrolled; + } + + .navbar-blur#{$header} { + @extend %blurry-bg; + } + } + } + } + + // 👉 Floating navbar + @else if variables.$vertical-nav-navbar-style == "floating" { + // ℹī¸ Regardless of navbar is contained or not => Apply overlay to .layout-navbar + .layout-navbar { + &.navbar-blur { + @extend %default-layout-vertical-nav-floating-navbar-overlay; + } + } + + &:not(.layout-navbar-sticky) { + #{$header} { + margin-block-start: variables.$vertical-nav-floating-navbar-top; + } + } + + #{$header} { + @if variables.$layout-vertical-nav-navbar-is-contained { + border-radius: variables.$default-layout-with-vertical-nav-navbar-footer-roundness; + } + + background-color: rgb(var(--v-theme-surface)); + + @extend %default-layout-vertical-nav-floating-navbar-and-sticky-elevated-navbar-scrolled; + } + + .navbar-blur#{$header} { + @extend %blurry-bg; + } + } + + // !SECTION + + // 👉 Layout footer + .layout-footer { + $ele-layout-footer: &; + + .footer-content-container { + border-radius: variables.$default-layout-with-vertical-nav-navbar-footer-roundness variables.$default-layout-with-vertical-nav-navbar-footer-roundness 0 0; + + // Sticky footer + @at-root { + // ℹī¸ .layout-footer-sticky#{$ele-layout-footer} => .layout-footer-sticky.layout-wrapper.layout-nav-type-vertical .layout-footer + .layout-footer-sticky#{$ele-layout-footer} { + .footer-content-container { + background-color: rgb(var(--v-theme-surface)); + padding-block: 0; + padding-inline: 1.2rem; + + @include mixins_elevation.elevation(3); + } + } + } + } + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/_default-layout.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_default-layout.scss new file mode 100644 index 00000000..a485a098 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_default-layout.scss @@ -0,0 +1,8 @@ +@use "@/plugins/vuetify/@core/scss/base/placeholders"; +@use "@configured-variables" as variables; + +.layout-navbar { + @if variables.$navbar-high-emphasis-text { + @extend %layout-navbar; + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/_horizontal-nav.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_horizontal-nav.scss new file mode 100644 index 00000000..eb86b9be --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_horizontal-nav.scss @@ -0,0 +1,189 @@ +@use "@/plugins/vuetify/@core/scss/base/placeholders" as *; +@use "@/plugins/vuetify/@core/scss/template/placeholders" as *; +@use "@configured-variables" as variables; +@use "@layouts/styles/mixins" as layoutsMixins; +@use "@/plugins/vuetify/@core/scss/base/mixins"; +@use "vuetify/lib/styles/tools/states" as vuetifyStates; + +.layout-horizontal-nav { + @extend %nav; + + // 👉 Icon styles + .nav-item-icon { + @extend %horizontal-nav-item-icon; + } + + // 👉 Common styles for nav group & nav link + .nav-link, + .nav-group { + // 👉 Disabled nav items + &.disabled { + opacity: var(--v-disabled-opacity); + pointer-events: none; + } + + // Set width of inner nav group and link + &.sub-item { + @extend %horizontal-nav-subitem; + } + } + + // SECTION Nav Link + .nav-link { + @extend %nav-link; + + a { + @extend %horizontal-nav-item; + + // Adds before psudo element to style hover state + @include mixins.before-pseudo; + + // Adds vuetify states + @include vuetifyStates.states($active: false); + } + + // 👉 Top level nav link + &:not(.sub-item) { + a { + @extend %horizontal-nav-top-level-item; + + &.router-link-active { + @extend %nav-link-active; + } + } + } + + // 👉 Sub link + &.sub-item { + a { + &.router-link-active { + // ℹī¸ We will not use active styles from material here because we want to use primary color for active link + @extend %horizontal-nav-sub-nav-link-active; + } + } + } + } + + // !SECTION + + // SECTION Nav Group + .nav-group { + .popper-triggerer { + .nav-group-label { + @extend %horizontal-nav-item; + } + } + + > .popper-triggerer > .nav-group-label { + // Adds before psudo element to style hover state + @include mixins.before-pseudo; + + // Adds vuetify states + @include vuetifyStates.states($active: false); + } + + // 👉 Top level group + &:not(.sub-item) { + > .popper-triggerer { + position: relative; + + /* + ℹī¸ The Bridge + This after pseudo will work as bridge when we have space between popper triggerer and popper content + Initially it will have pointer events none for normal behavior and once the content is shown it will + work as bridge by setting pointer events to `auto` + */ + &::after { + position: absolute; + block-size: variables.$horizontal-nav-popper-content-top; + content: ""; + inline-size: 100%; + inset-block-start: 100%; + inset-inline-start: 0; + pointer-events: none; + } + } + + // Enable the pseudo bridge when content is shown by setting pointer events to `auto` + &.show-content > .popper-triggerer::after { + /* + ℹī¸ We have added `z-index: 2` because when there is horizontal nav item below the popper trigger (group) + without this style nav item below popper trigger (group) gets focus hence closes the popper content + */ + z-index: 2; + pointer-events: auto; + } + + > .popper-triggerer > .nav-group-label { + @extend %horizontal-nav-top-level-item; + } + + &.active { + > .popper-triggerer > .nav-group-label { + @extend %nav-link-active; + } + } + + > .popper-content { + // ℹī¸ Add space between popper wrapper & content + margin-block-start: variables.$horizontal-nav-popper-content-top !important; + } + } + + // 👉 Sub group + &.sub-item { + &.active { + @include mixins.selected-states("> .popper-triggerer > .nav-group-label::before"); + } + + // Reduce the icon's size of nested group's nav links (Top level group > Sub group > [Nav links]) + .sub-item { + .nav-item-icon { + @extend %third-level-nav-item-icon; + } + } + } + + .nav-group-arrow { + font-size: 1.375rem; + + /* + ℹī¸ ml-auto won't matter in top level group (because we haven't specified fixed width for top level groups) + but we wrote generally because we don't want to become so specific + */ + margin-inline-start: auto; + } + + &.popper-inline-end { + .nav-group-arrow { + transform: rotateZ(270deg); + + @include layoutsMixins.rtl { + transform: rotateZ(90deg); + } + } + } + + .nav-item-title { + @extend %horizontal-nav-item-title; + } + + .popper-content { + @extend %horizontal-nav-popper-content-hidden; + @extend %horizontal-nav-popper-content; + + background-color: rgb(var(--v-theme-surface)); + + // Set max-height for the popper content + > div { + max-block-size: variables.$horizontal-nav-popper-content-max-height; + } + } + + &.show-content > .popper-content { + @extend %horizontal-nav-popper-content-visible; + } + } + + // !SECTION +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/_index.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_index.scss new file mode 100644 index 00000000..8f5bb5be --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_index.scss @@ -0,0 +1,48 @@ +@use "sass:map"; + +// Layout +@use "vertical-nav"; +@use "horizontal-nav"; +@use "default-layout"; +@use "default-layout-w-vertical-nav"; +@use "default-layout-w-horizontal-nav"; + +// Layouts package +@use "layouts"; + +// Skins +@use "skins"; + +// Components +@use "components"; + +// Utilities +@use "utilities"; + +// Route Transitions +@use "route-transitions"; + +// Misc +@use "misc"; + +// Dark +@use "dark"; + +// libs +@use "libs/perfect-scrollbar"; + +a { + color: rgb(var(--v-theme-primary)); + text-decoration: none; +} + +// Vuetify 3 don't provide margin bottom style like vuetify 2 +p { + margin-block-end: 1rem; +} + +// Iconify icon size +svg.iconify { + block-size: 1em; + inline-size: 1em; +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/_layouts.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_layouts.scss new file mode 100644 index 00000000..91635d00 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_layouts.scss @@ -0,0 +1,63 @@ +@use "@configured-variables" as variables; + +/* ℹī¸ This styles extends the existing layout package's styles for handling cases that aren't related to layouts package */ + +/* + ℹī¸ When we use v-layout as immediate first child of `.page-content-container`, it adds display:flex and page doesn't get contained height +*/ +// .layout-wrapper.layout-nav-type-vertical { +// &.layout-content-height-fixed { +// .page-content-container { +// > .v-layout:first-child > :not(.v-navigation-drawer):first-child { +// flex-grow: 1; +// block-size: 100%; +// } +// } +// } +// } +.layout-wrapper.layout-nav-type-vertical { + &.layout-content-height-fixed { + .page-content-container { + > .v-layout:first-child { + overflow: hidden; + min-block-size: 100%; + + > .v-main { + // overflow-y: auto; + + .v-main__wrap > :first-child { + block-size: 100%; + overflow-y: auto; + } + } + } + } + } +} + +// ℹī¸ Let div/v-layout take full height. E.g. Email App +.layout-wrapper.layout-nav-type-horizontal { + &.layout-content-height-fixed { + > .layout-page-content { + display: flex; + } + } +} + +// 👉 Floating navbar styles +@if variables.$vertical-nav-navbar-style == "floating" { + // ℹī¸ Add spacing above navbar if navbar is floating (was in %layout-navbar-sticky placeholder) + .layout-wrapper.layout-nav-type-vertical.layout-navbar-sticky { + .layout-navbar { + inset-block-start: variables.$vertical-nav-floating-navbar-top; + } + + /* + ℹī¸ If it's floating navbar + Add `vertical-nav-floating-navbar-top` as margin top to .layout-page-content + */ + .layout-page-content { + margin-block-start: variables.$vertical-nav-floating-navbar-top; + } + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/_misc.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_misc.scss new file mode 100644 index 00000000..cee983b3 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_misc.scss @@ -0,0 +1,20 @@ +// ℹī¸ scrollable-content allows creating fixed header and scrollable content for VNavigationDrawer (Used when perfect scrollbar is used) +.scrollable-content { + &.v-navigation-drawer { + .v-navigation-drawer__content { + display: flex; + overflow: hidden; + flex-direction: column; + } + } +} + +// ℹī¸ adding styling for code tag +code { + border-radius: 3px; + color: rgb(var(--v-code-color)); + font-size: 90%; + font-weight: 400; + padding-block: 0.2em; + padding-inline: 0.4em; +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/_mixins.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_mixins.scss new file mode 100644 index 00000000..232b12b7 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_mixins.scss @@ -0,0 +1,73 @@ +// @use "@styles/variables/_vuetify.scss"; + +// ℹī¸ This mixin is inspired from vuetify for adding hover styles via before pseudo element +@mixin before-pseudo() { + position: relative; + + &::before { + position: absolute; + border-radius: inherit; + background: currentcolor; + block-size: 100%; + content: ""; + inline-size: 100%; + inset: 0; + opacity: 0; + pointer-events: none; + } +} + +@mixin bordered-skin($component, $border-property: "border", $important: false) { + #{$component} { + background-color: rgb(var(--v-theme-background)); + box-shadow: none !important; + #{$border-property}: 1px solid rgba(var(--v-border-color), var(--v-border-opacity)) if($important, !important, null); + } +} + +// ℹī¸ Inspired from vuetify's active-states mixin +// focus => 0.12 & selected => 0.08 +@mixin selected-states($selector) { + // #{$selector} { + // opacity: calc(#{map.get(vuetify.$states, "selected")} * var(--v-theme-overlay-multiplier)); + // } + + // &:hover + // #{$selector} { + // opacity: calc(#{map.get(vuetify.$states, "selected") + map.get(vuetify.$states, "hover")} * var(--v-theme-overlay-multiplier)); + // } + + // &:focus-visible + // #{$selector} { + // opacity: calc(#{map.get(vuetify.$states, "selected") + map.get(vuetify.$states, "focus")} * var(--v-theme-overlay-multiplier)); + // } + + // @supports not selector(:focus-visible) { + // &:focus { + // #{$selector} { + // opacity: calc(#{map.get(vuetify.$states, "selected") + map.get(vuetify.$states, "focus")} * var(--v-theme-overlay-multiplier)); + // } + // } + // } + #{$selector} { + opacity: calc(var(--v-selected-opacity) * var(--v-theme-overlay-multiplier)); + } + + &:hover + #{$selector} { + opacity: calc(var(--v-selected-opacity) + var(--v-hover-opacity) * var(--v-theme-overlay-multiplier)); + } + + &:focus-visible + #{$selector} { + opacity: calc(var(--v-selected-opacity) + var(--v-focus-opacity) * var(--v-theme-overlay-multiplier)); + } + + @supports not selector(:focus-visible) { + &:focus { + #{$selector} { + opacity: calc(var(--v-selected-opacity) + var(--v-focus-opacity) * var(--v-theme-overlay-multiplier)); + } + } + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/_route-transitions.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_route-transitions.scss new file mode 100644 index 00000000..39c388a6 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_route-transitions.scss @@ -0,0 +1,70 @@ +// 👉 Zoom fade +.app-transition-zoom-fade-enter-active, +.app-transition-zoom-fade-leave-active { + transition: transform 0.35s, opacity 0.28s ease-in-out; +} + +.app-transition-zoom-fade-enter-from { + opacity: 0; + transform: scale(0.98); +} + +.app-transition-zoom-fade-leave-to { + opacity: 0; + transform: scale(1.02); +} + +// 👉 Fade +.app-transition-fade-enter-active, +.app-transition-fade-leave-active { + transition: opacity 0.25s ease-in-out; +} + +.app-transition-fade-enter-from, +.app-transition-fade-leave-to { + opacity: 0; +} + +// 👉 Fade bottom +.app-transition-fade-bottom-enter-active, +.app-transition-fade-bottom-leave-active { + transition: opacity 0.3s, transform 0.35s; +} + +.app-transition-fade-bottom-enter-from { + opacity: 0; + transform: translateY(-0.6rem); +} + +.app-transition-fade-bottom-leave-to { + opacity: 0; + transform: translateY(0.6rem); +} + +// 👉 Slide fade +.app-transition-slide-fade-enter-active, +.app-transition-slide-fade-leave-active { + transition: opacity 0.3s, transform 0.35s; +} + +.app-transition-slide-fade-enter-from { + opacity: 0; + transform: translateX(-0.6rem); +} + +.app-transition-slide-fade-leave-to { + opacity: 0; + transform: translateX(0.6rem); +} + +// 👉 Zoom out +.app-transition-zoom-out-enter-active, +.app-transition-zoom-out-leave-active { + transition: opacity 0.26s ease-in-out, transform 0.3s ease-out; +} + +.app-transition-zoom-out-enter-from, +.app-transition-zoom-out-leave-to { + opacity: 0; + transform: scale(0.98); +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/_utilities.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_utilities.scss new file mode 100644 index 00000000..4749253f --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_utilities.scss @@ -0,0 +1,116 @@ +@use "@configured-variables" as variables; +@use "@layouts/styles/mixins" as layoutsMixins; + +// 👉 Demo spacers +// TODO: Use vuetify SCSS variable here +$card-spacer-content: 16px; + +.demo-space-x { + display: flex; + flex-wrap: wrap; + align-items: center; + margin-block-start: -$card-spacer-content; + + & > * { + margin-block-start: $card-spacer-content; + margin-inline-end: $card-spacer-content; + } +} + +.demo-space-y { + & > * { + margin-block-end: $card-spacer-content; + + &:last-child { + margin-block-end: 0; + } + } +} + +// 👉 Card match height +.match-height.v-row { + .v-card { + block-size: 100%; + } +} + +// 👉 Whitespace +.whitespace-no-wrap { + white-space: nowrap; +} + +// 👉 Colors + +/* + ℹī¸ Vuetify is applying `.text-white` class to badge icon but don't provide its styles + Moreover, we also use this class in some places + + ℹī¸ In vuetify 2 with `$color-pack: false` SCSS var config this class was getting generated but this is not the case in v3 + + ℹī¸ We also need !important to get correct color in badge icon +*/ +.text-white { + color: #fff !important; +} + +.bg-var-theme-background { + background-color: rgba(var(--v-theme-background), var(--v-medium-emphasis-opacity)) !important; +} + +// [/^bg-light-(\w+)$/, ([, w]) => ({ backgroundColor: `rgba(var(--v-theme-${w}), var(--v-activated-opacity))` })], +@each $color-name in variables.$theme-colors-name { + .bg-light-#{$color-name} { + background-color: rgba(var(--v-theme-#{$color-name}), var(--v-activated-opacity)) !important; + } +} + +// 👉 Typography +.font-weight-semibold { + font-weight: 600 !important; +} + +.leading-normal { + line-height: normal !important; +} + +// 👉 for rtl only +.flip-in-rtl { + @include layoutsMixins.rtl { + transform: scaleX(-1); + } +} + +// 👉 Carousel +.carousel-delimiter-top-end { + .v-carousel__controls { + justify-content: end; + block-size: 40px; + inset-block-start: 0; + padding-inline: 1rem; + + .v-btn--icon.v-btn--density-default { + block-size: calc(var(--v-btn-height) + -10px); + color: rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity)); + inline-size: calc(var(--v-btn-height) + -10px); + + &.v-btn--active { + color: #fff; + } + + .v-btn__overlay { + opacity: 0; + } + } + } + + @each $color-name in variables.$theme-colors-name { + + &.dots-active-#{$color-name} { + .v-carousel__controls { + .v-btn--active { + color: rgb(var(--v-theme-#{$color-name})) !important; + } + } + } + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/_utils.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_utils.scss new file mode 100644 index 00000000..ac6ad78c --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_utils.scss @@ -0,0 +1,152 @@ +@use "sass:map"; +@use "sass:list"; + +// Thanks: https://css-tricks.com/snippets/sass/deep-getset-maps/ +@function map-deep-get($map, $keys...) { + @each $key in $keys { + $map: map.get($map, $key); + } + + @return $map; +} + +@function map-deep-set($map, $keys, $value) { + $maps: ($map,); + $result: null; + + // If the last key is a map already + // Warn the user we will be overriding it with $value + @if type-of(nth($keys, -1)) == "map" { + @warn "The last key you specified is a map; it will be overrided with `#{$value}`."; + } + + // If $keys is a single key + // Just merge and return + @if length($keys) == 1 { + @return map-merge($map, ($keys: $value)); + } + + // Loop from the first to the second to last key from $keys + // Store the associated map to this key in the $maps list + // If the key doesn't exist, throw an error + @for $i from 1 through length($keys) - 1 { + $current-key: list.nth($keys, $i); + $current-map: list.nth($maps, -1); + $current-get: map.get($current-map, $current-key); + + @if not $current-get { + @error "Key `#{$key}` doesn't exist at current level in map."; + } + + $maps: list.append($maps, $current-get); + } + + // Loop from the last map to the first one + // Merge it with the previous one + @for $i from length($maps) through 1 { + $current-map: list.nth($maps, $i); + $current-key: list.nth($keys, $i); + $current-val: if($i == list.length($maps), $value, $result); + $result: map.map-merge($current-map, ($current-key: $current-val)); + } + + // Return result + @return $result; +} + +// font size utility classes +// font size +$font-sizes: ( + "xs": 0.75rem, + "sm": 0.875rem, + "base": 1rem, + "lg": 1.125rem, + "xl": 1.25rem, + "2xl": 1.5rem, + "3xl": 1.875rem, + "4xl": 2.25rem, + "5xl": 3rem, + "6xl": 3.75rem, + "7xl": 4.5rem, + "8xl": 6rem, + "9xl": 8rem +); + +// font line-height +$font-line-height: ( + "xs": 1rem, + "sm": 1.25rem, + "base": 1.5rem, + "lg": 1.75rem, + "xl": 1.75rem, + "2xl": 2rem, + "3xl": 2.25rem, + "4xl": 2.5rem, + "5xl": 1, + "6xl": 1, + "7xl": 1, + "8xl": 1, + "9xl": 1 +); + +@each $name, $size in $font-sizes { + .text-#{$name} { + font-size: $size; + line-height: map.get($font-line-height, $name); + } +} + +// truncate utility class +.truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +// gap utility class +$gap: ( + "0": 0, + "1": 0.25rem, + "2": 0.5rem, + "3": 0.75rem, + "4": 1rem, + "5": 1.25rem, + "6":1.5rem, + "7": 1.75rem, + "8": 2rem, + "9": 2.25rem, + "10": 2.5rem, + "11": 2.75rem, + "12": 3rem, + "14": 3.5rem, + "16": 4rem, + "20": 5rem, + "24": 6rem, + "28": 7rem, + "32": 8rem, + "36": 9rem, + "40": 10rem, + "44": 11rem, + "48": 12rem, + "52": 13rem, + "56": 14rem, + "60": 15rem, + "64": 16rem, + "72": 18rem, + "80": 20rem, + "96": 24rem +); + +@each $name, $size in $gap { + .gap-#{$name} { + gap: $size; + } + + .gap-x-#{$name} { + column-gap: $size; + } + + .gap-y-#{$name} { + row-gap: $size; + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/_variables.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_variables.scss new file mode 100644 index 00000000..cb34d2e8 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_variables.scss @@ -0,0 +1,141 @@ +/* + TODO: Add docs on when to use placeholder vs when to use SASS variable + + Placeholder + - When we want to keep customization to our self between templates use it + + Variables + - When we want to allow customization from both user and our side + - You can also use variable for consistency (e.g. mx 1 rem should be applied to both vertical nav items and vertical nav header) +*/ + +@forward "@layouts/styles/variables" with ( + // Adjust z-index so vertical nav & overlay stays on top of v-layout in v-main. E.g. Email app + $layout-vertical-nav-z-index: 1004, + $layout-overlay-z-index: 1003, +); +@use "@layouts/styles/variables" as *; + +// 👉 Default layout + +$navbar-high-emphasis-text: true !default; + +// @forward "@layouts/styles/variables" with ( +// $layout-vertical-nav-width: 350px !default, +// ); + +$css-vars: ( + /* + - Skins + - CSS var + - Theme + */ + "default": ( + "--v-theme-background": ( + "light": (244 ,245, 250), + "dark": (40 ,36, 61), + ), + "--v-theme-surface": ( + "light": (255, 255, 255), + "dark": (49, 45, 75), + ), + ), + "bordered": ( + "--v-theme-background": ( + "light": (255 ,255, 255), + "dark": (49, 45, 75), + ), + "--v-theme-surface": ( + "light": (255, 255, 255), + "dark": (49, 45, 75), + ), + ), +) !default; +$theme-colors-name: ( + "primary", + "secondary", + "error", + "info", + "success", + "warning" +) !default; + +// 👉 Default layout with vertical nav + +$default-layout-with-vertical-nav-navbar-footer-roundness: 10px !default; + +// 👉 Vertical nav +$vertical-nav-background-color-rgb: var(--v-theme-background) !default; +$vertical-nav-background-color: rgb(#{$vertical-nav-background-color-rgb}) !default; + +// ℹī¸ This is used to keep consistency between nav items and nav header left & right margin +// This is used by nav items & nav header +$vertical-nav-horizontal-spacing: 1rem !default; +$vertical-nav-horizontal-padding: 0.75rem !default; + +// Vertical nav header height. Mostly we will align it with navbar height; +$vertical-nav-header-height: $layout-vertical-nav-navbar-height !default; +$vertical-nav-navbar-elevation: 3 !default; +$vertical-nav-navbar-style: "elevated" !default; // options: elevated, floating +$vertical-nav-floating-navbar-top: 1rem !default; + +// Vertical nav header padding +$vertical-nav-header-padding: 1rem $vertical-nav-horizontal-padding !default; +$vertical-nav-header-inline-spacing: $vertical-nav-horizontal-spacing !default; + +// Move logo when vertical nav is mini (collapsed but not hovered) +$vertical-nav-header-logo-translate-x-when-vertical-nav-mini: -4px !default; + +// Space between logo and title +$vertical-nav-header-logo-title-spacing: 0.9rem !default; + +// Section title margin top (when its not first child) +$vertical-nav-section-title-mt: 1.5rem !default; + +// Section title margin bottom +$vertical-nav-section-title-mb: 0.5rem !default; + +// Vertical nav icons +$vertical-nav-items-icon-size: 1.5rem !default; +$vertical-nav-items-nested-icon-size: 0.9rem !default; +$vertical-nav-items-icon-margin-inline-end: 0.5rem !default; + +// Transition duration for nav group arrow +$vertical-nav-nav-group-arrow-transition-duration: 0.15s !default; + +// Timing function for nav group arrow +$vertical-nav-nav-group-arrow-transition-timing-function: ease-in-out !default; + +// 👉 Horizontal nav + +/* + ❗ Heads up + ================== + Here we assume we will always use shorthand property which will apply same padding on four side + This is because this have been used as value of top property by `.popper-content` +*/ +$horizontal-nav-padding: 0.6875rem !default; + +// Gap between top level horizontal nav items +$horizontal-nav-top-level-items-gap: 4px !default; + +// Horizontal nav icons +$horizontal-nav-items-icon-size: 1.5rem !default; +$horizontal-nav-third-level-icon-size: 0.9rem !default; +$horizontal-nav-items-icon-margin-inline-end: 0.625rem !default; + +// ℹī¸ We used SCSS variable because we want to allow users to update max height of popper content +// 120px is combined height of navbar & horizontal nav +$horizontal-nav-popper-content-max-height: calc((var(--vh, 1vh) * 100) - 120px - 4rem) !default; + +// ℹī¸ This variable is used for horizontal nav popper content's `margin-top` and "The bridge"'s height. We need to sync both values. +$horizontal-nav-popper-content-top: calc($horizontal-nav-padding + 0.375rem) !default; + +// 👉 Plugins + +$plugin-ps-thumb-y-dark: rgba(var(--v-theme-surface-variant), 0.35) !default; + +// 👉 Vuetify + +// Used in src/@core/scss/base/libs/vuetify/_overrides.scss +$vuetify-reduce-default-compact-button-icon-size: true !default; diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/_vertical-nav.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_vertical-nav.scss new file mode 100644 index 00000000..2d580c8e --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/_vertical-nav.scss @@ -0,0 +1,245 @@ +@use "@/plugins/vuetify/@core/scss/base/placeholders" as *; +@use "@/plugins/vuetify/@core/scss/template/placeholders" as *; +@use "@layouts/styles/mixins" as layoutsMixins; +@use "@configured-variables" as variables; +@use "@/plugins/vuetify/@core/scss/base/mixins" as mixins; +@use "vuetify/lib/styles/tools/states" as vuetifyStates; +@use "vuetify/lib/styles/tools/elevation" as elevation; + +.layout-nav-type-vertical { + // 👉 Layout Vertical nav + .layout-vertical-nav { + $sl-layout-nav-type-vertical: &; + + @extend %nav; + + @at-root { + // ℹī¸ Add styles for collapsed vertical nav + .layout-vertical-nav-collapsed#{$sl-layout-nav-type-vertical}.hovered { + @include elevation.elevation(6); + } + } + + background-color: variables.$vertical-nav-background-color; + + // 👉 Nav header + .nav-header { + overflow: hidden; + padding: variables.$vertical-nav-header-padding; + margin-inline: variables.$vertical-nav-header-inline-spacing; + min-block-size: variables.$vertical-nav-header-height; + + // TEMPLATE: Check if we need to move this to master + .app-logo { + flex-shrink: 0; + transition: transform 0.25s ease-in-out; + + @at-root { + // Move logo a bit to align center with the icons in vertical nav mini variant + .layout-vertical-nav-collapsed#{$sl-layout-nav-type-vertical}:not(.hovered) .nav-header .app-logo { + transform: translateX(variables.$vertical-nav-header-logo-translate-x-when-vertical-nav-mini); + + @include layoutsMixins.rtl { + transform: translateX(-(variables.$vertical-nav-header-logo-translate-x-when-vertical-nav-mini)); + } + } + } + } + + .app-title { + margin-inline-start: variables.$vertical-nav-header-logo-title-spacing; + } + + .header-action { + @extend %nav-header-action; + } + } + + // 👉 Nav items shadow + .vertical-nav-items-shadow { + position: absolute; + z-index: 1; + background: + linear-gradient( + rgb(#{variables.$vertical-nav-background-color-rgb}) 5%, + rgba(#{variables.$vertical-nav-background-color-rgb}, 75%) 45%, + rgba(#{variables.$vertical-nav-background-color-rgb}, 20%) 80%, + transparent + ); + block-size: 55px; + inline-size: 100%; + inset-block-start: calc(#{variables.$vertical-nav-header-height} - 2px); + opacity: 0; + pointer-events: none; + transform: translateX(-8px); + transition: opacity 0.15s ease-in-out; + will-change: opacity; + + @include layoutsMixins.rtl { + transform: translateX(8px); + } + } + + &.scrolled { + .vertical-nav-items-shadow { + opacity: 1; + } + } + + // 👉 Nav section title + .nav-section-title { + @extend %vertical-nav-item; + @extend %vertical-nav-section-title; + + margin-block-end: variables.$vertical-nav-section-title-mb; + + &:not(:first-child) { + margin-block-start: variables.$vertical-nav-section-title-mt; + } + + .placeholder-icon { + margin-inline: auto; + } + } + + // Nav item badge + .nav-item-badge { + @extend %vertical-nav-item-badge; + } + + // 👉 Nav group & Link + .nav-link, + .nav-group { + overflow: hidden; + + > :first-child { + @extend %vertical-nav-item; + @extend %vertical-nav-item-interactive; + } + + .nav-item-icon { + @extend %vertical-nav-items-icon; + } + + &.disabled { + opacity: var(--v-disabled-opacity); + pointer-events: none; + } + } + + // 👉 Vertical nav link + .nav-link { + @extend %nav-link; + + > .router-link-exact-active { + @extend %nav-link-active; + } + + > a { + // Adds before psudo element to style hover state + @include mixins.before-pseudo; + + // Adds vuetify states + @include vuetifyStates.states($active: false); + } + } + + // 👉 Vertical nav group + .nav-group { + // Reduce the size of icon if link/group is inside group + .nav-group, + .nav-link { + .nav-item-icon { + @extend %vertical-nav-items-nested-icon; + } + } + + // Hide icons after 2nd level + & .nav-group { + .nav-link, + .nav-group { + .nav-item-icon { + @extend %vertical-nav-items-icon-after-2nd-level; + } + } + } + + .nav-group-arrow { + flex-shrink: 0; + transform-origin: center; + transition: transform variables.$vertical-nav-nav-group-arrow-transition-duration variables.$vertical-nav-nav-group-arrow-transition-timing-function; + will-change: transform; + } + + // Rotate arrow icon if group is opened + &.open { + > .nav-group-label .nav-group-arrow { + transform: rotateZ(90deg); + } + } + + // Nav group label + > :first-child { + // Adds before psudo element to style hover state + @include mixins.before-pseudo; + + // Adds vuetify states + @include vuetifyStates.states($active: false); + } + + // Active & open states for nav group label + &.active, + &.open { + > :first-child { + @extend %vertical-nav-group-open-active; + } + } + } + } +} + +// 👉 Transitions +.vertical-nav-section-title-enter-active, +.vertical-nav-section-title-leave-active { + transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; +} + +.vertical-nav-section-title-enter-from, +.vertical-nav-section-title-leave-to { + opacity: 0; + transform: translateX(15px); + + @include layoutsMixins.rtl { + transform: translateX(-15px); + } +} + +.transition-slide-x-enter-active, +.transition-slide-x-leave-active { + transition: opacity 0.1s ease-in-out, transform 0.12s ease-in-out; +} + +.transition-slide-x-enter-from, +.transition-slide-x-leave-to { + opacity: 0; + transform: translateX(-15px); + + @include layoutsMixins.rtl { + transform: translateX(15px); + } +} + +.vertical-nav-app-title-enter-active, +.vertical-nav-app-title-leave-active { + transition: opacity 0.1s ease-in-out, transform 0.12s ease-in-out; +} + +.vertical-nav-app-title-enter-from, +.vertical-nav-app-title-leave-to { + opacity: 0; + transform: translateX(-15px); + + @include layoutsMixins.rtl { + transform: translateX(15px); + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/libs/_perfect-scrollbar.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/libs/_perfect-scrollbar.scss new file mode 100644 index 00000000..ceb2d7ac --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/libs/_perfect-scrollbar.scss @@ -0,0 +1,35 @@ +$ps-size: 0.25rem; +$ps-hover-size: 0.375rem; +$ps-track-size: 0.5rem; + +.ps__thumb-y { + inline-size: $ps-size; + inset-inline-end: 0.0625rem; +} + +.ps__thumb-x { + block-size: $ps-size !important; +} + +.ps__rail-x { + background: transparent !important; + block-size: $ps-track-size; +} + +.ps__rail-y { + background: transparent !important; + inline-size: $ps-track-size !important; + inset-inline-end: 0.125rem !important; + inset-inline-start: unset !important; +} + +.ps__rail-y.ps--clicking .ps__thumb-y, +.ps__rail-y:focus > .ps__thumb-y, +.ps__rail-y:hover > .ps__thumb-y { + inline-size: $ps-hover-size; +} + +.ps__thumb-x, +.ps__thumb-y { + background-color: rgb(var(--v-theme-perfect-scrollbar-thumb)) !important; +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/libs/vuetify/_index.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/libs/vuetify/_index.scss new file mode 100644 index 00000000..f33ef3f4 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/libs/vuetify/_index.scss @@ -0,0 +1 @@ +@use "overrides"; diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/libs/vuetify/_overrides.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/libs/vuetify/_overrides.scss new file mode 100644 index 00000000..3afa45ad --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/libs/vuetify/_overrides.scss @@ -0,0 +1,243 @@ +@use "@/plugins/vuetify/@core/scss/base/utils"; +@use "@configured-variables" as variables; + +// 👉 Application +// ℹī¸ We need accurate vh in mobile devices as well +.v-application__wrap { + /* stylelint-disable-next-line liberty/use-logical-spec */ + min-height: calc(var(--vh, 1vh) * 100); +} + +// 👉 Typography +h1, +h2, +h3, +h4, +h5, +h6, +.text-h1, +.text-h2, +.text-h3, +.text-h4, +.text-h5, +.text-h6, +.text-button, +.text-overline, +.v-card-title { + color: rgba(var(--v-theme-on-background), var(--v-high-emphasis-opacity)); +} + +.v-application, +.text-body-1, +.text-body-2, +.text-subtitle-1, +.text-subtitle-2 { + color: rgba(var(--v-theme-on-background), var(--v-medium-emphasis-opacity)); +} + +// 👉 Grid +// Remove margin-bottom of v-input_details inside grid (validation error message) +.v-row { + .v-col, + [class^="v-col-*"] { + .v-input__details { + margin-block-end: 0; + } + } +} + +// 👉 Theme +.v-theme--light { + --v-theme-background: + var( + --skin-theme-background, + #{utils.map-deep-get(variables.$css-vars, "default", "--v-theme-background", "light")} + ) !important; + --v-theme-surface: + var( + --skin-theme-surface, + #{utils.map-deep-get(variables.$css-vars, "default", "--v-theme-surface", "light")} + ) !important; +} + +.v-theme--dark { + --v-theme-background: + var( + --skin-theme-background, + #{utils.map-deep-get(variables.$css-vars, "default", "--v-theme-background", "dark")} + ) !important; + --v-theme-surface: + var( + --skin-theme-surface, + #{utils.map-deep-get(variables.$css-vars, "default", "--v-theme-surface", "dark")} + ) !important; +} + +// 👉 Button +@if variables.$vuetify-reduce-default-compact-button-icon-size { + .v-btn--density-compact.v-btn--size-default { + .v-btn__content > svg { + width: 22px; + height: 22px; + font-size: 22px; + } + } +} + +// 👉 Card +// Removes padding-top for immediately placed v-card-text after itself +.v-card-text { + & + & { + padding-block-start: 0 !important; + } +} + +/* + 👉 Checkbox & Radio Ripple + + TODO Checkbox and switch component. Remove it when vuetify resolve the extra spacing: https://github.com/vuetifyjs/vuetify/issues/15519 + We need this because form elements likes checkbox and switches are by default set to height of textfield height which is way big than we want + Tested with checkbox & switches +*/ +.v-checkbox.v-input, +.v-switch.v-input { + --v-input-control-height: auto; + + flex: unset; +} + +.v-selection-control--density-comfortable { + &.v-checkbox-btn, + &.v-radio, + &.v-radio-btn { + .v-selection-control__wrapper { + margin-inline-start: -0.5625rem; + } + } +} + +.v-selection-control--density-compact { + &.v-radio, + &.v-radio-btn, + &.v-checkbox-btn { + .v-selection-control__wrapper { + margin-inline-start: -0.3125rem; + } + } +} + +.v-selection-control--density-default { + &.v-checkbox-btn, + &.v-radio, + &.v-radio-btn { + .v-selection-control__wrapper { + margin-inline-start: -0.6875rem; + } + } +} + +.v-radio-group { + .v-selection-control-group { + .v-radio:not(:last-child) { + margin-inline-end: 0.9rem; + } + } +} + +/* + 👉 Tabs + Disable tab transition + + This is for tabs where we don't have card wrapper to tabs and have multiple cards as tab content. + + This class will disable transition and adds `overflow: unset` on `VWindow` to allow spreading shadow +*/ +.disable-tab-transition { + overflow: unset !important; + + .v-window__container { + block-size: auto !important; + } + + .v-window-item:not(.v-window-item--active) { + display: none !important; + } + + .v-window__container .v-window-item { + transform: none !important; + } +} + +// 👉 List +.v-list { + // Set icons opacity to .87 + .v-list-item__prepend > .v-icon, + .v-list-item__append > .v-icon { + opacity: var(--v-high-emphasis-opacity); + } +} + +// 👉 Card list + +/* + ℹī¸ Custom class + + Remove list spacing inside card + + This is because card title gets padding of 20px and list item have padding of 16px. Moreover, list container have padding-bottom as well. +*/ +.card-list { + --v-card-list-gap: 20px; + + &.v-list { + padding-block: 0; + } + + .v-list-item { + min-block-size: unset; + min-block-size: auto !important; + padding-block: 0 !important; + padding-inline: 0 !important; + + > .v-ripple__container { + opacity: 0; + } + + &:not(:last-child) { + padding-block-end: var(--v-card-list-gap) !important; + } + } + + .v-list-item:hover, + .v-list-item:focus, + .v-list-item:active, + .v-list-item.active { + > .v-list-item__overlay { + opacity: 0 !important; + } + } +} + +// 👉 Table +.v-table { + color: rgba(var(--v-theme-on-background), var(--v-medium-emphasis-opacity)); +} + +// 👉 v-field +.v-field:hover .v-field__outline { + --v-field-border-opacity: var(--v-medium-emphasis-opacity); +} + +// 👉 VLabel +.v-label { + opacity: 1; + + &:not(.v-field-label--floating) { + color: rgba(var(--v-theme-on-background), var(--v-medium-emphasis-opacity)); + } +} + +// 👉 Overlay +.v-overlay__scrim { + background: rgba(var(--v-overlay-scrim-background), var(--v-overlay-scrim-opacity)); +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/libs/vuetify/_variables.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/libs/vuetify/_variables.scss new file mode 100644 index 00000000..50e72176 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/libs/vuetify/_variables.scss @@ -0,0 +1,55 @@ +// 👉 Shadow opacities +$shadow-key-umbra-opacity-custom: var(--v-shadow-key-umbra-opacity); +$shadow-key-penumbra-opacity-custom: var(--v-shadow-key-penumbra-opacity); +$shadow-key-ambient-opacity-custom: var(--v-shadow-key-ambient-opacity); + +// 👉 Card transition properties +$card-transition-property-custom: box-shadow, opacity; + +@forward "vuetify/settings" with ( + // 👉 General settings + $color-pack: false !default, + + // 👉 Shadow opacity + $shadow-key-umbra-opacity: $shadow-key-umbra-opacity-custom !default, + $shadow-key-penumbra-opacity: $shadow-key-penumbra-opacity-custom !default, + $shadow-key-ambient-opacity: $shadow-key-ambient-opacity-custom !default, + + // States + $states: ( + "hover": 0.08, + "focus": 0.1, + "selected": 0.12, + "activated": 0.1, + "pressed": 0.14, + "dragged": 0.1 + ) !default, + + // 👉 Card + $card-color: rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity)) !default, + $card-elevation: 6 !default, + $card-title-line-height: 1.6 !default, + $card-actions-min-height: unset !default, + $card-text-padding: 1.25rem !default, + $card-item-padding: 1.25rem !default, + $card-actions-padding: 0 12px 12px !default, + $card-transition-property: $card-transition-property-custom !default, + $card-subtitle-opacity: 1 !default, + + // 👉 Expansion Panel + $expansion-panel-active-title-min-height: 48px !default, + + // 👉 List + $list-item-icon-margin-end: 16px !default, + $list-item-icon-margin-start: 16px !default, + + // 👉 Tooltip + $tooltip-background-color: rgba(59, 55, 68, 0.9) !default, + $tooltip-text-color: rgb(var(--v-theme-on-primary)) !default, + $tooltip-font-size: 0.75rem !default, + + $button-icon-density: ("default": 2, "comfortable": 0, "compact": -1 ) !default, + + // 👉 VTimeline + $timeline-dot-size: 34px !default, +); diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/placeholders/_default-layout-horizontal-nav.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/placeholders/_default-layout-horizontal-nav.scss new file mode 100644 index 00000000..262739d0 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/placeholders/_default-layout-horizontal-nav.scss @@ -0,0 +1,27 @@ +@use "vuetify/lib/styles/tools/elevation" as elevation; +@use "@configured-variables" as variables; +@use "misc"; + +%default-layout-horizontal-nav-navbar-and-nav-container { + @include elevation.elevation(3); + + // ℹī¸ 1000 is v-window z-index + z-index: 1001; + background-color: rgb(var(--v-theme-surface)); + + &.header-blur { + @extend %blurry-bg; + } +} + +%default-layout-horizontal-nav-navbar { + border-block-end: 1px solid rgba(var(--v-border-color), var(--v-border-opacity)); +} + +%default-layout-horizontal-nav-nav { + padding-block: variables.$horizontal-nav-padding; +} + +%default-layout-horizontal-nav-nav-items-list { + gap: variables.$horizontal-nav-top-level-items-gap; +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/placeholders/_default-layout-vertical-nav.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/placeholders/_default-layout-vertical-nav.scss new file mode 100644 index 00000000..871a6917 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/placeholders/_default-layout-vertical-nav.scss @@ -0,0 +1,46 @@ +@use "vuetify/lib/styles/tools/elevation" as elevation; +@use "@configured-variables" as variables; +@use "misc"; + +%default-layout-vertical-nav-scrolled-sticky-elevated-nav { + background-color: rgb(var(--v-theme-surface)); +} + +%default-layout-vertical-nav-floating-navbar-and-sticky-elevated-navbar-scrolled { + @include elevation.elevation(variables.$vertical-nav-navbar-elevation); + + // If navbar is contained => Squeeze navbar content on scroll + @if variables.$layout-vertical-nav-navbar-is-contained { + padding-inline: 1.2rem; + } +} + +%default-layout-vertical-nav-floating-navbar-overlay { + isolation: isolate; + + &::after { + position: absolute; + z-index: -1; + /* stylelint-disable property-no-vendor-prefix */ + -webkit-backdrop-filter: blur(10px); + backdrop-filter: blur(10px); + /* stylelint-enable */ + background: + linear-gradient( + 180deg, + rgba(var(--v-theme-background), 70%) 44%, + rgba(var(--v-theme-background), 43%) 73%, + rgba(var(--v-theme-background), 0%) + ); + background-repeat: repeat; + block-size: calc(variables.$layout-vertical-nav-navbar-height + variables.$vertical-nav-floating-navbar-top + 0.5rem); + content: ""; + inset-block-start: -(variables.$vertical-nav-floating-navbar-top); + inset-inline-end: 0; + inset-inline-start: 0; + /* stylelint-disable property-no-vendor-prefix */ + -webkit-mask: linear-gradient(black, black 18%, transparent 100%); + mask: linear-gradient(black, black 18%, transparent 100%); + /* stylelint-enable */ + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/placeholders/_default-layout.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/placeholders/_default-layout.scss new file mode 100644 index 00000000..8e5e9906 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/placeholders/_default-layout.scss @@ -0,0 +1,3 @@ +%layout-navbar { + color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity)); +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/placeholders/_horizontal-nav.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/placeholders/_horizontal-nav.scss new file mode 100644 index 00000000..e511331c --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/placeholders/_horizontal-nav.scss @@ -0,0 +1,94 @@ +@use "@layouts/styles/mixins" as layoutsMixins; +@use "vuetify/lib/styles/tools/elevation" as elevation; +@use "@configured-variables" as variables; +@use "@layouts/styles/placeholders"; + +// Horizontal nav item styles (including nested) +%horizontal-nav-item { + padding-block: 0.563rem; + padding-inline: 1rem; +} + +// Top level horizontal nav item styles (`a` tag & group label) +%horizontal-nav-top-level-item { + border-radius: 0.4rem; +} + +// Active styles for sub nav link +%horizontal-nav-sub-nav-link-active { + background: rgba(var(--v-theme-primary), 0.1); + color: rgb(var(--v-theme-primary)); +} + +/* + ℹī¸ This style is required when you don't provide any transition to horizontal nav items via themeConfig `themeConfig.horizontalNav.transition` + Also, you have to disable it if you are using transition +*/ +// Popper content styles when it's hidden +%horizontal-nav-popper-content-hidden { + // display: none; + + // opacity: 0; + // pointer-events: none; + // transform: translateY(7px); + // transition: transform 0.25s ease-in-out, opacity 0.15s ease-in-out; +} + +/* + ℹī¸ This style is required when you don't provide any transition to horizontal nav items via themeConfig `themeConfig.horizontalNav.transition` + Also, you have to disable it if you are using transition +*/ +// Popper content styles when it's shown +%horizontal-nav-popper-content-visible { + // display: block; + + // opacity: 1; + // pointer-events: auto; + // pointer-events: auto; + // transform: translateY(0); +} + +// Horizontal nav item icon (Including sub nav items) +%horizontal-nav-item-icon { + font-size: variables.$horizontal-nav-items-icon-size; + margin-inline-end: variables.$horizontal-nav-items-icon-margin-inline-end; +} + +// Horizontal nav subitem +%horizontal-nav-subitem { + min-inline-size: 12rem; + + .nav-item-title { + margin-inline-end: 1rem; + } +} + +// Styles for third level item icon/ (e.g. Reduce the icon's size of nested group's nav links (Top level group > Sub group > [Nav links])) +%third-level-nav-item-icon { + font-size: variables.$horizontal-nav-third-level-icon-size; + margin-inline-end: 0.75rem; + + /* + ℹī¸ `margin-inline` will be (normal icon font-size - small icon font-size) / 2 + (1.5rem - 0.9rem) / 2 => 0.6rem / 2 => 0.3rem + */ + margin-inline-start: calc((variables.$horizontal-nav-items-icon-size - variables.$horizontal-nav-third-level-icon-size) / 2); +} + +// Horizontal nav item title +%horizontal-nav-item-title { + margin-inline-end: 0.3rem; + white-space: nowrap; +} + +// Popper content styles +%horizontal-nav-popper-content { + @include elevation.elevation(4); + + border-radius: 6px; + padding-block: 0.3rem; + + > div { + @extend %style-scroll-bar; + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/placeholders/_index.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/placeholders/_index.scss new file mode 100644 index 00000000..e2ad1776 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/placeholders/_index.scss @@ -0,0 +1,7 @@ +@forward "horizontal-nav"; +@forward "vertical-nav"; +@forward "nav"; +@forward "default-layout"; +@forward "default-layout-vertical-nav"; +@forward "default-layout-horizontal-nav"; +@forward "misc"; diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/placeholders/_misc.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/placeholders/_misc.scss new file mode 100644 index 00000000..87a3ed67 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/placeholders/_misc.scss @@ -0,0 +1,7 @@ +%blurry-bg { + /* stylelint-disable property-no-vendor-prefix */ + -webkit-backdrop-filter: blur(6px); + backdrop-filter: blur(6px); + /* stylelint-enable */ + background-color: rgb(var(--v-theme-surface), 0.9); +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/placeholders/_nav.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/placeholders/_nav.scss new file mode 100644 index 00000000..b0af5ede --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/placeholders/_nav.scss @@ -0,0 +1,33 @@ +@use "vuetify/lib/styles/tools/_elevation" as mixins_elevation; + +// ℹī¸ This is common style that needs to be applied to both navs +%nav { + color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity)); + + .nav-item-title { + letter-spacing: 0.15px; + } + + .nav-section-title { + letter-spacing: 0.4px; + } +} + +/* + Active nav link styles for horizontal & vertical nav + + For horizontal nav it will be only applied to top level nav items + For vertical nav it will be only applied to nav links (not nav groups) +*/ +%nav-link-active { + background-color: rgb(var(--v-global-theme-primary)); + color: rgb(var(--v-theme-on-primary)); + + @include mixins_elevation.elevation(3); +} + +%nav-link { + a { + color: inherit; + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/placeholders/_vertical-nav.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/placeholders/_vertical-nav.scss new file mode 100644 index 00000000..5575b42e --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/placeholders/_vertical-nav.scss @@ -0,0 +1,81 @@ +@use "@/plugins/vuetify/@core/scss/base/mixins"; +@use "@configured-variables" as variables; +@use "vuetify/lib/styles/tools/states" as vuetifyStates; + +%nav-header-action { + font-size: 1.25rem; +} + +// Nav items styles (including section title) +%vertical-nav-item { + margin-block: 0; + margin-inline: variables.$vertical-nav-horizontal-spacing; + padding-block: 0; + padding-inline: variables.$vertical-nav-horizontal-padding; + white-space: nowrap; +} + +// This is same as `%vertical-nav-item` except section title is excluded +%vertical-nav-item-interactive { + border-radius: 0.4rem; + block-size: 2.75rem; + + /* + ℹī¸ We will use `margin-block-end` instead of `margin-block` to give more space for shadow to appear. + With `margin-block`, due to small space (space gets divided between top & bottom) shadow cuts + */ + margin-block-end: 0.375rem; +} + +// Common styles for nav item icon styles +// ℹī¸ Nav group's children icon styles are not here (Adjusts height, width & margin) +%vertical-nav-items-icon { + flex-shrink: 0; + font-size: variables.$vertical-nav-items-icon-size; + margin-inline-end: variables.$vertical-nav-items-icon-margin-inline-end; +} + +// ℹī¸ Icon styling for icon nested inside another nav item (2nd level) +%vertical-nav-items-nested-icon { + /* + ℹī¸ `margin-inline` will be (normal icon font-size - small icon font-size) / 2 + (1.5rem - 0.9rem) / 2 => 0.6rem / 2 => 0.3rem + */ + $vertical-nav-items-nested-icon-margin-inline: calc((variables.$vertical-nav-items-icon-size - variables.$vertical-nav-items-nested-icon-size) / 2); + + font-size: variables.$vertical-nav-items-nested-icon-size; + margin-inline-end: $vertical-nav-items-nested-icon-margin-inline + variables.$vertical-nav-items-icon-margin-inline-end; + margin-inline-start: $vertical-nav-items-nested-icon-margin-inline; +} + +%vertical-nav-items-icon-after-2nd-level { + visibility: hidden; +} + +// Open & Active nav group styles +%vertical-nav-group-open-active { + @include mixins.selected-states("&::before"); +} + +// Section title +%vertical-nav-section-title { + // ℹī¸ Setting height will prevent jerking when text & icon is toggled + block-size: 1.5rem; + color: rgba(var(--v-theme-on-surface), var(--v-disabled-opacity)); + font-size: 0.75rem; + text-transform: uppercase; +} + +// Vertical nav item badge styles +%vertical-nav-item-badge { + display: inline-block; + border-radius: 1.5rem; + font-size: 0.8em; + font-weight: 500; + line-height: 1; + padding-block: 0.25em; + padding-inline: 0.55em; + text-align: center; + vertical-align: baseline; + white-space: nowrap; +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/skins/_bordered.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/skins/_bordered.scss new file mode 100644 index 00000000..e1958dda --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/skins/_bordered.scss @@ -0,0 +1,90 @@ +@use "sass:map"; +@use "@/plugins/vuetify/@core/scss/base/mixins"; +@use "@configured-variables" as variables; +@use "../utils"; + +$header: ".layout-navbar"; + +@if variables.$layout-vertical-nav-navbar-is-contained { + $header: ".layout-navbar .navbar-content-container"; +} + +.skin--bordered { + @include mixins.bordered-skin(".v-card:not(.v-card .v-card):not(.v-card--flat)"); + @include mixins.bordered-skin(".v-menu .v-overlay__content > .v-card, .v-menu .v-overlay__content > .v-sheet, .v-menu .v-overlay__content > .v-list"); + @include mixins.bordered-skin(".popper-content"); + + // Navbar + // -- Horizontal + @include mixins.bordered-skin(".layout-navbar-and-nav-container", "border-bottom"); + + // -- Vertical + // ℹī¸ We have added `.layout-navbar-sticky` as well in selector because we don't want to add borders if navbar is static + @if variables.$layout-vertical-nav-navbar-is-contained { + @include mixins.bordered-skin(".layout-nav-type-vertical.window-scrolled.layout-navbar-sticky #{$header}"); + .layout-nav-type-vertical.window-scrolled #{$header} { + border-block-start: none !important; + } + } @else { + @include mixins.bordered-skin(".layout-nav-type-vertical.window-scrolled.layout-navbar-sticky #{$header}", "border-bottom"); + } + + // Footer + // -- Vertical + @include mixins.bordered-skin(".layout-nav-type-vertical.layout-footer-sticky .layout-footer .footer-content-container"); + + .layout-nav-type-vertical.layout-footer-sticky .layout-footer .footer-content-container { + border-block-end: none; + } + + // -- Horizontal + @include mixins.bordered-skin(".layout-nav-type-horizontal.layout-footer-sticky .layout-footer"); + + .layout-nav-type-horizontal.layout-footer-sticky .layout-footer { + border-block-end: none; + } + + /* + Missing components: + - Stepper + */ + + .v-theme--light { + --skin-theme-background: + #{utils.map-deep-get( + variables.$css-vars, + "bordered", + "--v-theme-background", + "light" + )}; + --skin-theme-surface: + #{utils.map-deep-get( + variables.$css-vars, + "bordered", + "--v-theme-surface", + "light" + )}; + } + + .v-theme--dark { + --skin-theme-background: + #{utils.map-deep-get( + variables.$css-vars, + "bordered", + "--v-theme-background", + "dark" + )}; + --skin-theme-surface: + #{utils.map-deep-get( + variables.$css-vars, + "bordered", + "--v-theme-surface", + "dark" + )}; + } + + // Vertical Nav + .layout-vertical-nav { + border-inline-end: thin solid rgba(var(--v-border-color), var(--v-border-opacity)); + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/base/skins/_index.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/base/skins/_index.scss new file mode 100644 index 00000000..19f609f4 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/base/skins/_index.scss @@ -0,0 +1 @@ +@use "bordered"; diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/template/_components.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/template/_components.scss new file mode 100644 index 00000000..edef660f --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/template/_components.scss @@ -0,0 +1,108 @@ +@use "vuetify/lib/styles/tools/_elevation" as mixins_elevation; +@use "@configured-variables" as variables; + +// 👉 Expansion panels +.v-expansion-panel-title, +.v-expansion-panel-title--active, +.v-expansion-panel-title:hover, +.v-expansion-panel-title:focus, +.v-expansion-panel-title:focus-visible, +.v-expansion-panel-title--active:focus, +.v-expansion-panel-title--active:hover { + .v-expansion-panel-title__overlay { + opacity: 0 !important; + } +} + +.v-expansion-panels { + :first-child { + border-start-end-radius: variables.$expansion-panel-border-radius-custom; + border-start-start-radius: variables.$expansion-panel-border-radius-custom; + } + + :last-child { + border-end-end-radius: variables.$expansion-panel-border-radius-custom; + border-end-start-radius: variables.$expansion-panel-border-radius-custom; + } +} + +// 👉 Set Elevation when panel open +.v-expansion-panels:not(.v-expansion-panels--variant-accordion) { + .v-expansion-panel.v-expansion-panel--active { + .v-expansion-panel__shadow { + @include mixins_elevation.elevation(3); + } + } +} + +// v-tab with pill support +.v-tabs:not(.v-tabs-pill) { + &.v-tabs--vertical { + border-inline-end: 1px solid rgba(var(--v-border-color), var(--v-border-opacity)); + } +} + +.v-tab__slider { + inset-inline-end: 0; + inset-inline-start: unset; +} + +.v-tabs.v-tabs-pill:not(.v-tabs--stacked) { + &.v-tabs--density-default { + --v-tabs-height: 38px; + } + + .v-tab.v-btn { + border-radius: 0.5rem !important; + } +} + +// 👉 added box shadow +.v-timeline-item { + .v-timeline-divider__dot { + .v-timeline-divider__inner-dot { + box-shadow: 0 0 0 0.1875rem rgb(var(--v-theme-on-surface-variant)); + + @each $color-name in variables.$theme-colors-name { + + &.bg-#{$color-name} { + box-shadow: 0 0 0 0.1875rem rgba(var(--v-theme-#{$color-name}), 0.12); + } + } + } + } +} + +// 👉 Timeline Outlined style +.v-timeline-variant-outlined.v-timeline { + .v-timeline-divider__dot { + .v-timeline-divider__inner-dot { + box-shadow: inset 0 0 0 0.125rem rgb(var(--v-theme-on-surface-variant)); + + @each $color-name in variables.$theme-colors-name { + background-color: rgb(var(--v-theme-surface)) !important; + + &.bg-#{$color-name} { + box-shadow: inset 0 0 0 0.125rem rgb(var(--v-theme-#{$color-name})); + } + } + } + } +} + +// 👉 Slider +.v-slider-thumb { + .v-slider-thumb__label { + background-color: variables.$slider-thumb-label-color; + color: rgb(var(--v-theme-on-primary)); + } + + .v-slider-thumb__label::before { + color: variables.$slider-thumb-label-color; + } +} + +// 👉 switch inactive thumb style +.v-switch__thumb { + color: variables.$switch-thumb-inactive-color; +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/template/_horizontal-nav.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/template/_horizontal-nav.scss new file mode 100644 index 00000000..0d245521 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/template/_horizontal-nav.scss @@ -0,0 +1,13 @@ +.layout-horizontal-nav { + .nav-group { + .nav-group-arrow { + font-size: 1.5rem; + } + + &:not(.active) { + .nav-group-arrow { + color: rgba(var(--v-theme-on-background), var(--v-medium-emphasis-opacity)); + } + } + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/template/_utilities.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/template/_utilities.scss new file mode 100644 index 00000000..8631da9d --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/template/_utilities.scss @@ -0,0 +1,11 @@ +@use "@configured-variables" as variables; + +.bg-card { + background: rgb(var(--v-theme-surface)) !important; +} + +.table-header-bg { + th { + background-color: rgb(var(--v-theme-grey-200)); + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/template/_utils.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/template/_utils.scss new file mode 100644 index 00000000..2969c214 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/template/_utils.scss @@ -0,0 +1,41 @@ +@use "sass:string"; + +/* + ℹī¸ This function is helpful when we have multi dimensional value + + Assume we have padding variable `$nav-padding-horizontal: 10px;` + With above variable let's say we use it in some style: + ```scss + .selector { + margin-left: $nav-padding-horizontal; + } + ``` + + Now, problem is we can also have value as `$nav-padding-horizontal: 10px 15px;` + In this case above style will be invalid. + + This function will extract the left most value from the variable value. + + $nav-padding-horizontal: 10px; => 10px; + $nav-padding-horizontal: 10px 15px; => 10px; + + This is safe: + ```scss + .selector { + margin-left: get-first-value($nav-padding-horizontal); + } + ``` +*/ +@function get-first-value($var) { + $start-at: string.index(#{$var}, " "); + + @if $start-at { + @return string.slice( + #{$var}, + 0, + $start-at + ); + } @else { + @return $var; + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/template/_variables.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/template/_variables.scss new file mode 100644 index 00000000..169b71c8 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/template/_variables.scss @@ -0,0 +1,71 @@ +@use "sass:map"; +@use "utils"; + +$vertical-nav-horizontal-padding-margin-custom: 1.75rem; + +// ℹī¸ We created this SCSS var to extract the start padding +// Docs: https://sass-lang.com/documentation/modules/string +// $vertical-nav-horizontal-padding => 0 8px; +// string.index(#{$vertical-nav-horizontal-padding}, " ") + 1 => 2 +// string.index(#{$vertical-nav-horizontal-padding}, " ") => 1 +// string.slice(0 8px, 2, -1) => 8px => $card-actions-padding-x + +$vertical-nav-horizontal-padding-start: utils.get-first-value($vertical-nav-horizontal-padding-margin-custom) !default; + +@forward "@/plugins/vuetify/@core/scss/base/variables" with( + $css-vars: ( + /* + - Skins + - CSS var + - Theme + */ + "default": ( + "--v-theme-background": ( + "light": (247,247,249), + "dark": (40,42,66), + ), + "--v-theme-surface": ( + "light": (255, 255, 255), + "dark": (48,51,78), + ), + ), + "bordered": ( + "--v-theme-background": ( + "light": (255 ,255, 255), + "dark": (40,42,66), + ), + "--v-theme-surface": ( + "light": (255, 255, 255), + "dark": (40,42,66), + ), + ), + ) !default, +); + +// 👉 Vertical nav +// This is used by nav items & nav header +$vertical-nav-horizontal-spacing: 0.75rem !default; +$vertical-nav-header-inline-spacing: $vertical-nav-horizontal-spacing 0.25rem !default; +$vertical-nav-horizontal-padding: 1rem 0.75rem !default; + +// Section title margin bottom +$vertical-nav-section-title-mb: 0.75rem !default; + +// Vertical nav header padding +$vertical-nav-header-padding: $vertical-nav-horizontal-padding !default; +$vertical-nav-items-nested-icon-size: 0.5rem !default; + +// 👉 expansion panel +$expansion-panel-border-radius-custom: 8px !default; + +// 👉 range-slider +$slider-thumb-label-color: rgb(117, 117, 117) !default; + +// 👉 switch +$switch-thumb-inactive-color: rgb(250, 250, 250) !default; + +// 👉 Horizontal nav + +// Horizontal nav icons +$horizontal-nav-third-level-icon-size: 0.5rem !default; +$horizontal-nav-items-icon-margin-inline-end: 0.75rem !default; diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/template/_vertical-nav.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/template/_vertical-nav.scss new file mode 100644 index 00000000..f00be6a7 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/template/_vertical-nav.scss @@ -0,0 +1,32 @@ +@use "@configured-variables" as variables; + +$divider-gap: 0.625rem; + +.layout-vertical-nav { + .nav-section-title { + .title-text { + display: flex; + flex-wrap: nowrap; + align-items: center; + justify-content: flex-start; + column-gap: $divider-gap; + + &::before { + flex: 0 1 calc(variables.$vertical-nav-horizontal-padding-start - $divider-gap); + border-block-end: 1px solid rgba(var(--v-border-color), var(--v-border-opacity)); + content: ""; + margin-inline-start: -#{variables.$vertical-nav-horizontal-padding-start}; + } + } + } + + // nested level nav icon + .nav-group { + .nav-group, + .nav-link :not(.router-link-active) { + .nav-item-icon { + color: rgba(var(--v-theme-on-background), var(--v-medium-emphasis-opacity)); + } + } + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/template/index.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/template/index.scss new file mode 100644 index 00000000..5ba7a6ad --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/template/index.scss @@ -0,0 +1,12 @@ +@use "sass:map"; +@forward "@/plugins/vuetify/@core/scss/base"; + +// Layout +@use "vertical-nav"; +@use "horizontal-nav"; + +// Components +@use "components"; + +// Utilities +@use "utilities"; diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/template/libs/apex-chart.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/template/libs/apex-chart.scss new file mode 100644 index 00000000..dc7a118c --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/template/libs/apex-chart.scss @@ -0,0 +1,95 @@ +@use "@styles/variables/_vuetify.scss" as vuetify; +@use "vuetify/lib/styles/tools/_elevation" as mixins_elevation; +@use "@layouts/styles/mixins" as layoutsMixins; + +.apexcharts-canvas { + &line[stroke="transparent"] { + display: "none"; + } + + .apexcharts-tooltip { + @include mixins_elevation.elevation(3); + + border-color: rgba(var(--v-border-color), var(--v-border-opacity)); + background: rgb(var(--v-theme-surface)); + + .apexcharts-tooltip-title { + border-color: rgba(var(--v-border-color), var(--v-border-opacity)); + background: rgb(var(--v-theme-surface)); + font-weight: 600; + } + + &.apexcharts-theme-light { + color: rgba(var(--v-theme-on-background), var(--v-high-emphasis-opacity)); + } + + &.apexcharts-theme-dark { + color: white; + } + + .apexcharts-tooltip-series-group:first-of-type { + padding-block-end: 0; + } + } + + .apexcharts-xaxistooltip { + border-color: rgba(var(--v-border-color), var(--v-border-opacity)); + background: rgb(var(--v-theme-grey-50)); + color: rgba(var(--v-theme-on-background), var(--v-high-emphasis-opacity)); + + &::after { + border-block-end-color: rgb(var(--v-theme-grey-50)); + } + + &::before { + border-block-end-color: rgba(var(--v-border-color), var(--v-border-opacity)); + } + } + + .apexcharts-yaxistooltip { + border-color: rgba(var(--v-border-color), var(--v-border-opacity)); + background: rgb(var(--v-theme-grey-50)); + + &::after { + border-inline-start-color: rgb(var(--v-theme-grey-50)); + } + + &::before { + border-inline-start-color: rgba(var(--v-border-color), var(--v-border-opacity)); + } + } + + .apexcharts-xaxistooltip-text, + .apexcharts-yaxistooltip-text { + color: rgba(var(--v-theme-on-background), var(--v-high-emphasis-opacity)); + } + + .apexcharts-yaxis .apexcharts-yaxis-texts-g .apexcharts-yaxis-label { + @include layoutsMixins.rtl { + text-anchor: start; + } + } + + .apexcharts-text, + .apexcharts-tooltip-text, + .apexcharts-datalabel-label, + .apexcharts-datalabel, + .apexcharts-xaxistooltip-text, + .apexcharts-yaxistooltip-text, + .apexcharts-legend-text { + font-family: vuetify.$body-font-family !important; + } + + .apexcharts-pie-label { + fill: white; + filter: none; + } + + .apexcharts-marker { + box-shadow: none; + } + + .apexcharts-legend-marker { + margin-inline-end: 0.3875rem !important; + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/template/libs/full-calendar.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/template/libs/full-calendar.scss new file mode 100644 index 00000000..c835cd8d --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/template/libs/full-calendar.scss @@ -0,0 +1,254 @@ +@use "vuetify/lib/styles/tools/elevation" as elevation; + +.fc { + --fc-today-bg-color: rgba(var(--v-theme-on-surface), 0.04); + --fc-border-color: rgba(var(--v-border-color), var(--v-border-opacity)); + --fc-neutral-bg-color: rgb(var(--v-theme-background)); + --fc-list-event-hover-bg-color: rgba(var(--v-theme-on-surface), 0.02); + --fc-page-bg-color: rgb(var(--v-theme-surface)); + --fc-event-border-color: currentcolor; + + a { + color: inherit; + } + + .fc-timegrid-divider { + padding: 0; + } + + .fc-col-header-cell-cushion { + color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity)); + font-size: 0.875rem; + font-weight: 600; + } + + .fc-toolbar .fc-toolbar-title { + margin-inline-start: 0.25rem; + } + + .fc-toolbar.fc-header-toolbar { + margin-block-end: 1rem; + } + + .fc-event-time { + font-size: 0.75rem; + } + + .fc-timegrid-event { + .fc-event-title { + font-size: 0.875rem; + } + } + + .fc-prev-button { + padding-inline-start: 0; + } + + .fc-prev-button, + .fc-next-button { + padding: 0.25rem; + } + + .fc-col-header .fc-col-header-cell .fc-col-header-cell-cushion { + padding: 0.5rem; + text-decoration: none !important; + } + + .fc-timegrid .fc-timegrid-slots .fc-timegrid-slot { + block-size: 3rem; + } + + // Removed double border on left in list view + .fc-list { + border-inline-start-color: transparent; + font-size: 0.875rem; + + .fc-list-day-cushion.fc-cell-shaded { + color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity)); + font-weight: 600; + } + + .fc-list-event-time, + .fc-list-event-title { + color: rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity)); + } + + .fc-list-day .fc-list-day-text, + .fc-list-day .fc-list-day-side-text { + text-decoration: none; + } + } + + .fc-timegrid-axis { + color: rgba(var(--v-theme-on-surface), var(--v-disabled-opacity)); + font-size: 0.75rem; + text-transform: capitalize; + } + + .fc-timegrid-slot-label-frame { + color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity)); + font-size: 0.75rem; + text-align: center; + text-transform: uppercase; + } + + .fc-header-toolbar { + flex-wrap: wrap; + column-gap: 0.5rem; + margin-block: 1rem; + margin-inline: 1rem 1.25rem; + row-gap: 1rem; + } + + .fc-toolbar-chunk { + display: flex; + align-items: center; + + .fc-button-group { + .fc-button-primary { + &, + &:hover, + &:not(.disabled):active { + border-color: transparent; + background-color: transparent; + color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity)); + } + + &:focus { + box-shadow: none !important; + } + } + } + + &:last-child { + .fc-button-group { + border: 0.0625rem solid rgba(var(--v-border-color), var(--v-border-opacity)); + border-radius: 0.375rem; + + .fc-button { + font-size: 0.9rem; + letter-spacing: 0.0187rem; + padding-inline: 1rem; + text-transform: uppercase; + + &:not(:last-child) { + border-inline-end: 0.0625rem solid rgba(var(--v-border-color), var(--v-border-opacity)); + } + + &.fc-button-active { + background-color: rgba(var(--v-theme-primary), var(--v-activated-opacity)); + color: rgb(var(--v-theme-primary)); + } + } + } + } + } + + .fc-toolbar-title { + display: inline-block; + color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity)); + font-size: 1.25rem; + font-weight: 500; + } + + .fc-scrollgrid-section { + th { + border-inline-end-color: transparent; + } + } + + // Calendar content container + .fc-view-harness { + min-block-size: 40.625rem; + } + + .fc-event { + border-color: transparent; + margin-block-end: 0.3rem; + padding-block: 0.1875rem; + padding-inline: 0.3125rem; + } + + .fc-event-main { + color: inherit; + font-size: 0.75rem; + padding-inline: 0.25rem; + } + + tbody[role="rowgroup"] { + > tr > td[role="presentation"] { + border: none; + } + } + + .fc-scrollgrid { + border-inline-start: none; + } + + .fc-daygrid-day { + padding: 0.3125rem; + } + + .fc-daygrid-day-number { + padding-block: 0.5rem; + padding-inline: 0.75rem; + } + + .fc-list-event-dot { + color: inherit; + + --fc-event-border-color: currentcolor; + } + + .fc-list-event { + background-color: transparent !important; + } + + .fc-popover { + @include elevation.elevation(3); + + border-radius: 6px; + + .fc-popover-header, + .fc-popover-body { + padding: 0.5rem; + } + + .fc-popover-title { + margin: 0; + font-size: 1rem; + font-weight: 500; + } + } + + // 👉 sidebar toggler + .fc-toolbar-chunk { + .fc-button-group { + align-items: center; + + .fc-button .fc-icon { + vertical-align: bottom; + } + + // ℹī¸ Below two `background-image` styles contains static color due to browser limitation of not parsing the css var inside CSS url() + .fc-drawerToggler-button { + display: none; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' stroke='rgba(94,86,105,0.68)' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round' class='css-i6dzq1'%3E%3Cpath d='M3 12h18M3 6h18M3 18h18'/%3E%3C/svg%3E"); + background-position: 50%; + background-repeat: no-repeat; + block-size: 1.5625rem; + font-size: 0; + inline-size: 1.5625rem; + margin-inline-end: 0.25rem; + + @media (max-width: 1264px) { + display: block !important; + } + + .v-theme--dark & { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' stroke='rgba(232,232,241,0.68)' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round' class='css-i6dzq1'%3E%3Cpath d='M3 12h18M3 6h18M3 18h18'/%3E%3C/svg%3E"); + } + } + } + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/template/libs/vuetify/_overrides.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/template/libs/vuetify/_overrides.scss new file mode 100644 index 00000000..47b78e63 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/template/libs/vuetify/_overrides.scss @@ -0,0 +1,43 @@ +// 👉 Avatar +.v-avatar { + font-size: 1.125rem; +} + +$alert-icon-size: 22px; +$alert-prominent-icon-size: 38px; + +// 👉 Alert +.v-alert { + &:not(.v-alert--prominent) { + .v-icon { + block-size: $alert-icon-size !important; + font-size: $alert-icon-size !important; + inline-size: $alert-icon-size !important; + } + } + + &.v-alert--prominent { + .v-icon { + block-size: $alert-prominent-icon-size !important; + font-size: $alert-prominent-icon-size !important; + inline-size: $alert-prominent-icon-size !important; + } + } +} + +// 👉 Table +.v-table { + th { + color: rgba(var(--v-theme-on-background), var(--v-high-emphasis-opacity)); + font-weight: 500; + } +} + +// // 👉 Timeline +.v-timeline { + .v-timeline-item:not(:last-child) { + .v-timeline-item__body { + margin-block-end: 0.625rem; + } + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/template/libs/vuetify/_variables.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/template/libs/vuetify/_variables.scss new file mode 100644 index 00000000..ce2cd426 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/template/libs/vuetify/_variables.scss @@ -0,0 +1,225 @@ +$shadow-key-umbra-opacity-custom: var(--v-shadow-key-umbra-opacity); +$shadow-key-penumbra-opacity-custom: var(--v-shadow-key-penumbra-opacity); +$shadow-key-ambient-opacity-custom: var(--v-shadow-key-ambient-opacity); +$font-family-custom: "Inter", sans-serif, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + +@forward "../../../base/libs/vuetify/variables" with ( + // 👉 font-family + $body-font-family: $font-family-custom !default, + $border-radius-root: 8px !default, + + $shadow-key-umbra: ( + 0: (0 0 0 0 var(--v-shadow-key-umbra-opacity)), + 1: (0 1px 2px -1px var(--v-shadow-key-umbra-opacity)), + 2: (0 1px 3px -1px var(--v-shadow-key-umbra-opacity)), + 3: (0 1px 6px -1px var(--v-shadow-key-umbra-opacity)), + 4: (0 1px 7px -2px var(--v-shadow-key-umbra-opacity)), + 5: (0 2px 8px -2px var(--v-shadow-key-umbra-opacity)), + 6: (0 2px 9px -2px var(--v-shadow-key-umbra-opacity)), + 7: (0 2px 10px -3px var(--v-shadow-key-umbra-opacity)), + 8: (0 3px 11px -3px var(--v-shadow-key-umbra-opacity)), + 9: (0 4px 12px -3px var(--v-shadow-key-umbra-opacity)), + 10: (0 5px 13px -4px var(--v-shadow-key-umbra-opacity)), + 11: (0 6px 14px -4px var(--v-shadow-key-umbra-opacity)), + 12: (0 6px 15px -4px var(--v-shadow-key-umbra-opacity)), + 13: (0 7px 14px -5px var(--v-shadow-key-umbra-opacity)), + 14: (0 6px 17px -5px var(--v-shadow-key-umbra-opacity)), + 15: (0 7px 18px -5px var(--v-shadow-key-umbra-opacity)), + 16: (0 7px 19px -6px var(--v-shadow-key-umbra-opacity)), + 17: (0 7px 20px -6px var(--v-shadow-key-umbra-opacity)), + 18: (0 8px 21px -6px var(--v-shadow-key-umbra-opacity)), + 19: (0 8px 22px -7px var(--v-shadow-key-umbra-opacity)), + 20: (0 9px 23px -7px var(--v-shadow-key-umbra-opacity)), + 21: (0 9px 24px -7px var(--v-shadow-key-umbra-opacity)), + 22: (0 9px 25px -8px var(--v-shadow-key-umbra-opacity)), + 23: (0 10px 26px -8px var(--v-shadow-key-umbra-opacity)), + 24: (0 10px 27px -8px var(--v-shadow-key-umbra-opacity)) + ) !default, + + $shadow-key-penumbra: ( + 0: (0 0 0 0 $shadow-key-penumbra-opacity-custom), + 1: (0 1px 2px 1px $shadow-key-penumbra-opacity-custom), + 2: (0 2px 3px 1px $shadow-key-penumbra-opacity-custom), + 3: (0 2px 4px 1px $shadow-key-penumbra-opacity-custom), + + 4: (0 3px 5px 1px $shadow-key-penumbra-opacity-custom), + 5: (0 3px 6px 1px $shadow-key-penumbra-opacity-custom), + 6: (0 4px 7px 1px $shadow-key-penumbra-opacity-custom), + + 7: (0 4px 8px 1px $shadow-key-penumbra-opacity-custom), + 8: (0 6px 9px 1px $shadow-key-penumbra-opacity-custom), + 9: (0 5px 10px 1px $shadow-key-penumbra-opacity-custom), + 10: (0 6px 12px 3px $shadow-key-penumbra-opacity-custom), + 11: (0 8px 12px 1px $shadow-key-penumbra-opacity-custom), + 12: (0 10px 13px 2px $shadow-key-penumbra-opacity-custom), + 13: (0 12px 14px 2px $shadow-key-penumbra-opacity-custom), + 14: (0 12px 15px 2px $shadow-key-penumbra-opacity-custom), + 15: (0 14px 16px 2px $shadow-key-penumbra-opacity-custom), + 16: (0 15px 17px 2px $shadow-key-penumbra-opacity-custom), + 17: (0 16px 18px 2px $shadow-key-penumbra-opacity-custom), + 18: (0 17px 19px 2px $shadow-key-penumbra-opacity-custom), + 19: (0 18px 20px 2px $shadow-key-penumbra-opacity-custom), + 20: (0 18px 21px 3px $shadow-key-penumbra-opacity-custom), + 21: (0 18px 22px 3px $shadow-key-penumbra-opacity-custom), + 22: (0 20px 23px 3px $shadow-key-penumbra-opacity-custom), + 23: (0 22px 24px 3px $shadow-key-penumbra-opacity-custom), + 24: (0 22px 25px 3px $shadow-key-penumbra-opacity-custom) + ) !default, + + $shadow-key-ambient: ( + 0: (0 0 0 0 $shadow-key-ambient-opacity-custom), + 1: (0 1px 2px 2px $shadow-key-ambient-opacity-custom), + 2: (0 1px 3px 2px $shadow-key-ambient-opacity-custom), + 3: (0 1px 4px 2px $shadow-key-ambient-opacity-custom), + + 4: (0 1px 4px 2px $shadow-key-ambient-opacity-custom), + 5: (0 1px 5px 4px $shadow-key-ambient-opacity-custom), + 6: (0 2px 6px 4px $shadow-key-ambient-opacity-custom), + + 7: (0 2px 7px 4px $shadow-key-ambient-opacity-custom), + 8: (0 3px 8px 4px $shadow-key-ambient-opacity-custom), + 9: (0 4px 9px 5px $shadow-key-ambient-opacity-custom), + 10: (0 5px 10px 5px $shadow-key-ambient-opacity-custom), + 11: (0 6px 11px 5px $shadow-key-ambient-opacity-custom), + 12: (0 5px 12px 5px $shadow-key-ambient-opacity-custom), + 13: (0 5px 14px 6px $shadow-key-ambient-opacity-custom), + 14: (0 5px 14px 6px $shadow-key-ambient-opacity-custom), + 15: (0 5px 15px 6px $shadow-key-ambient-opacity-custom), + 16: (0 5px 16px 6px $shadow-key-ambient-opacity-custom), + 17: (0 5px 17px 7px $shadow-key-ambient-opacity-custom), + 18: (0 6px 18px 7px $shadow-key-ambient-opacity-custom), + 19: (0 6px 19px 7px $shadow-key-ambient-opacity-custom), + 20: (0 7px 20px 7px $shadow-key-ambient-opacity-custom), + 21: (0 7px 21px 7px $shadow-key-ambient-opacity-custom), + 22: (0 7px 22px 7px $shadow-key-ambient-opacity-custom), + 23: (0 8px 23px 7px $shadow-key-ambient-opacity-custom), + 24: (0 8px 24px 7px $shadow-key-ambient-opacity-custom) + ) !default, + + // 👉 typography + $typography: ( + "h1": ( + "weight": 500, + "line-height": 7rem, + "letter-spacing": -0.0938rem, + ), + "h2": ( + "weight": 500, + "line-height": 4.5rem, + "letter-spacing": -0.0313rem, + ), + "h3": ( + "weight": 500, + "line-height": 3.5rem, + ), + "h4": ( + "weight": 500, + "letter-spacing": 0.0156rem, + ), + "h5": ( + "weight": 500, + ), + "h6": ( + "letter-spacing": 0.0094rem, + ), + "subtitle-1": ( + "letter-spacing": 0.0094rem, + ), + "subtitle-2": ( + "line-height": 1.3125rem, + "letter-spacing": 0.0063rem, + ), + "body-1": ( + "letter-spacing": 0.0094rem, + ), + "body-2": ( + "line-height": 1.3125rem, + "letter-spacing": 0.0094rem, + ), + "caption": ( + "line-height": 0.875rem, + "letter-spacing": 0.025rem, + ), + "button": ( + "line-height": 1.5rem, + "letter-spacing": 0.025rem, + ), + "overline": ( + "weight": 400, + "line-height": 0.875rem, + "letter-spacing": 0.0625rem, + ), + ) !default, + + // 👉 alert + $alert-padding: 17.5px !default, + $alert-title-font-size: 16px !default, + $alert-prepend-margin-inline-end: 13px !default, + $alert-background: rgb(var(--v-theme-alert-background)) !default, + + // 👉 buttons + $button-height: 38px, + $button-line-height: 24px, + $button-padding-ratio: 1.8, + + // 👉 card + $card-border-radius: 10px !default, + + // 👉 chips + $chip-font-size: 13px !default, + $chip-close-size: 22px !default, + + // 👉 dialogs + $dialog-card-header-padding: 20px 20px 0 !default, + $dialog-card-text-padding: 20px 20px !default, + $dialog-card-header-text-padding-top: 20px !default, + $dialog-border-radius: 10px !default, + + // 👉 expansion panel + $expansion-panel-border-radius: 0 !default, + $expansion-panel-active-title-min-height: 50px !default, + $expansion-panel-title-min-height: 50px !default, + $expansion-panel-title-padding: 16px 20px !default, + $expansion-panel-text-padding: 8px 20px 16px !default, + + // 👉 list item + $list-item-padding:12px 16px !default, + $list-item-icon-margin-end: 14px !default, + $list-nav-padding: 16px !default, + + $rounded: ( + "shaped": 24px 0, + ) !default, + + // 👉 overlay + $overlay-opacity: 50% !default, + + // 👉 pagination + $pagination-item-margin: 3px !default, + + // 👉 snackbar + $snackbar-content-padding: 6px 16px, + $snackbar-background: rgb(var(--v-theme-snackbar-background)), + $snackbar-color: rgb(var(--v-theme-on-snackbar-background)), + + // 👉 tooltip + $tooltip-padding: 4px 8px !default, + $tooltip-background-color: rgba(var(--v-theme-tooltip-background), 0.9) !default, + $tooltip-border-radius: 6px !default, + $tooltip-font-size: 0.6875rem !default, + $tooltip-line-height: 16px !default, + + // 👉 Timeline + $timeline-dot-divider-background: transparent !default, + $timeline-item-padding: 16px !default, + + // 👉 Table + $table-header-height: 54px !default, + $table-row-height: 50px !default, + + // 👉 range slider + $slider-track-active-size: 4px !default, + $slider-thumb-label-padding: 4px 12px !default, + $slider-thumb-label-font-size: 14px !default, + $slider-thumb-label-height: 29px !default, +); diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/template/libs/vuetify/index.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/template/libs/vuetify/index.scss new file mode 100644 index 00000000..ca6120fa --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/template/libs/vuetify/index.scss @@ -0,0 +1,2 @@ +@use "@/plugins/vuetify/@core/scss/base/libs/vuetify"; +@use "overrides"; diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/template/pages/misc.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/template/pages/misc.scss new file mode 100644 index 00000000..531deb2f --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/template/pages/misc.scss @@ -0,0 +1,35 @@ +.layout-blank { + .misc-wrapper { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 1.25rem; + min-block-size: calc(var(--vh, 1vh) * 100); + } + + .misc-avatar { + z-index: 1; + } +} + +.footer-coming-soon { + position: absolute; + z-index: -1; + inline-size: 100%; + inset-block-end: 0; + inset-inline-start: 0; +} + +.footer-coming-soon-obj { + position: absolute; + inline-size: 100%; + inset-block-end: 12%; + inset-inline-start: 15%; +} + +@media (max-width: 1200px) { + .footer-coming-soon-obj { + inset-block-end: 5%; + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/template/pages/page-auth.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/template/pages/page-auth.scss new file mode 100644 index 00000000..60c71f1d --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/template/pages/page-auth.scss @@ -0,0 +1,45 @@ +.layout-blank { + .auth-wrapper { + min-block-size: calc(var(--vh, 1vh) * 100); + } + + .auth-card { + z-index: 1 !important; + } +} + +@media (min-width: 960px) { + .skin--bordered { + .auth-card-v2 { + border-inline-start: 1px solid rgba(var(--v-border-color), var(--v-border-opacity)); + } + } +} + +@media (max-width: 1200px) { + .auth-footer-mask { + inset-block-end: 12% !important; + } +} + +.auth-logo { + position: absolute; + z-index: 1; + inset-block-start: 1.8rem; + inset-inline-start: 2.5rem; +} + +.auth-card-v2 { + z-index: 1; +} + +.auth-illustration { + z-index: 1; + max-inline-size: 48rem; +} + +.auth-footer-mask { + position: absolute; + inline-size: 100%; + inset-block-end: 7%; +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/template/placeholders/_index.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/template/placeholders/_index.scss new file mode 100644 index 00000000..ec11fc61 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/template/placeholders/_index.scss @@ -0,0 +1,2 @@ +@forward "vertical-nav"; +@forward "nav"; diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/template/placeholders/_nav.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/template/placeholders/_nav.scss new file mode 100644 index 00000000..ff0695ef --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/template/placeholders/_nav.scss @@ -0,0 +1,9 @@ +/* + Active nav link styles for horizontal & vertical nav + + For horizontal nav it will be only applied to top level nav items + For vertical nav it will be only applied to nav links (not nav groups) +*/ +%nav-link-active { + font-weight: 500; +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/scss/template/placeholders/_vertical-nav.scss b/packages/dashboard/src/plugins/vuetify/@core/scss/template/placeholders/_vertical-nav.scss new file mode 100644 index 00000000..696461a8 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/scss/template/placeholders/_vertical-nav.scss @@ -0,0 +1,9 @@ +%nav-header-action { + font-size: 1.375rem; +} + +// This is same as `%vertical-nav-item` except section title is excluded +%vertical-nav-item-interactive { + border-radius: 0.5rem; + block-size: 2.625rem; +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/types.d.ts b/packages/dashboard/src/plugins/vuetify/@core/types.d.ts new file mode 100644 index 00000000..da789a65 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/types.d.ts @@ -0,0 +1,107 @@ +import type { UserConfig as UserLayoutConfig } from '@layouts/types'; +import type { Ref } from 'vue'; +import { RouteTransitions, Skins } from './enums'; + +export interface UserThemeConfig { + app: { + title: UserLayoutConfig['app']['title'] + logo: UserLayoutConfig['app']['logo'] + contentWidth: UserLayoutConfig['app']['contentWidth'] + contentLayoutNav: UserLayoutConfig['app']['contentLayoutNav'] + overlayNavFromBreakpoint: UserLayoutConfig['app']['overlayNavFromBreakpoint'] + enableI18n: UserLayoutConfig['app']['enableI18n'] + theme: string + isRtl: UserLayoutConfig['app']['isRtl'] + skin: typeof Skins[keyof typeof Skins] + routeTransition:typeof RouteTransitions[keyof typeof RouteTransitions] + iconRenderer: UserLayoutConfig['app']['iconRenderer'] + } + navbar: { + type: UserLayoutConfig['navbar']['type'] + navbarBlur: UserLayoutConfig['navbar']['navbarBlur'] + } + footer: { + type: UserLayoutConfig['footer']['type'] + } + verticalNav: { + isVerticalNavCollapsed: UserLayoutConfig['verticalNav']['isVerticalNavCollapsed'] + defaultNavItemIconProps: UserLayoutConfig['verticalNav']['defaultNavItemIconProps'] + isVerticalNavSemiDark: boolean + } + horizontalNav: { + type: UserLayoutConfig['horizontalNav']['type'] + transition?: UserLayoutConfig['horizontalNav']['transition'] + } + icons: { + chevronDown: UserLayoutConfig['icons']['chevronDown'] + chevronRight: UserLayoutConfig['icons']['chevronRight'] + close: UserLayoutConfig['icons']['close'] + verticalNavPinned: UserLayoutConfig['icons']['verticalNavPinned'] + verticalNavUnPinned: UserLayoutConfig['icons']['verticalNavUnPinned'] + sectionTitlePlaceholder: UserLayoutConfig['icons']['sectionTitlePlaceholder'] + } +} + +/* + TODO: use MergeDeep for DRY + Waiting for https://github.com/sindresorhus/type-fest/issues/150 +*/ +export interface ThemeConfig { + app: { + title: UserThemeConfig['app']['title'] + logo: UserThemeConfig['app']['logo'] + contentWidth: Ref + contentLayoutNav: Ref + overlayNavFromBreakpoint: UserThemeConfig['app']['overlayNavFromBreakpoint'] + enableI18n: UserThemeConfig['app']['enableI18n'] + theme: Ref + isRtl: Ref + skin: Ref + routeTransition: Ref + iconRenderer?: UserThemeConfig['app']['iconRenderer'] + } + navbar: { + type: Ref + navbarBlur: Ref + } + footer: { + type: Ref + } + verticalNav: { + isVerticalNavCollapsed: Ref + defaultNavItemIconProps: UserThemeConfig['verticalNav']['defaultNavItemIconProps'] + isVerticalNavSemiDark: Ref + } + horizontalNav: { + type: Ref + transition?: UserThemeConfig['horizontalNav']['transition'] + } + icons: { + chevronDown: UserThemeConfig['icons']['chevronDown'] + chevronRight: UserThemeConfig['icons']['chevronRight'] + close: UserThemeConfig['icons']['close'] + verticalNavPinned: UserThemeConfig['icons']['verticalNavPinned'] + verticalNavUnPinned: UserThemeConfig['icons']['verticalNavUnPinned'] + sectionTitlePlaceholder: UserThemeConfig['icons']['sectionTitlePlaceholder'] + } +} + +// SECTION Custom Input +export interface CustomInputContent { + title: string + desc: string + value: string + subtitle?: string + icon?: string + images?:string +} + + +export interface GridColumn { + cols?: string + sm?: string + md?: string + lg?: string + xl?: string + xxl?:string +} \ No newline at end of file diff --git a/packages/dashboard/src/plugins/vuetify/@core/utils/formatters.ts b/packages/dashboard/src/plugins/vuetify/@core/utils/formatters.ts new file mode 100644 index 00000000..3550cd5a --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/utils/formatters.ts @@ -0,0 +1,46 @@ +import { isToday } from './index' + +export const avatarText = (value: string) => { + if (!value) + return '' + const nameArray = value.split(' ') + + return nameArray.map(word => word.charAt(0).toUpperCase()).join('') +} + +// TODO: Try to implement this: https://twitter.com/fireship_dev/status/1565424801216311297 +export const kFormatter = (num: number) => { + const regex = /\B(?=(\d{3})+(?!\d))/g + + return Math.abs(num) > 9999 ? `${Math.sign(num) * +((Math.abs(num) / 1000).toFixed(1))}k` : Math.abs(num).toFixed(0).replace(regex, ',') +} + +/** + * Format and return date in Humanize format + * Intl docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format + * Intl Constructor: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat + * @param {String} value date to format + * @param {Intl.DateTimeFormatOptions} formatting Intl object to format with + */ +export const formatDate = (value: string, formatting: Intl.DateTimeFormatOptions = { month: 'short', day: 'numeric', year: 'numeric' }) => { + if (!value) + return value + + return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value)) +} + +/** + * Return short human friendly month representation of date + * Can also convert date to only time if date is of today (Better UX) + * @param {String} value date to format + * @param {Boolean} toTimeForCurrentDay Shall convert to time if day is today/current + */ +export const formatDateToMonthShort = (value: string, toTimeForCurrentDay = true) => { + const date = new Date(value) + let formatting: Record = { month: 'short', day: 'numeric' } + + if (toTimeForCurrentDay && isToday(date)) + formatting = { hour: 'numeric', minute: 'numeric' } + + return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value)) +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/utils/index.ts b/packages/dashboard/src/plugins/vuetify/@core/utils/index.ts new file mode 100644 index 00000000..77926f78 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/utils/index.ts @@ -0,0 +1,33 @@ +// 👉 IsEmpty +export const isEmpty = (value: unknown): boolean => { + if (value === null || value === undefined || value === '') + return true + + return !!(Array.isArray(value) && value.length === 0) +} + +// 👉 IsNullOrUndefined +export const isNullOrUndefined = (value: unknown): value is undefined | null => { + return value === null || value === undefined +} + +// 👉 IsEmptyArray +export const isEmptyArray = (arr: unknown): boolean => { + return Array.isArray(arr) && arr.length === 0 +} + +// 👉 IsObject +export const isObject = (obj: unknown): obj is Record => + obj !== null && !!obj && typeof obj === 'object' && !Array.isArray(obj) + +export const isToday = (date: Date) => { + const today = new Date() + + return ( + /* eslint-disable operator-linebreak */ + date.getDate() === today.getDate() && + date.getMonth() === today.getMonth() && + date.getFullYear() === today.getFullYear() + /* eslint-enable */ + ) +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/utils/validators.ts b/packages/dashboard/src/plugins/vuetify/@core/utils/validators.ts new file mode 100644 index 00000000..55447d89 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/utils/validators.ts @@ -0,0 +1,109 @@ +import { isEmpty, isEmptyArray, isNullOrUndefined } from './index' + +// 👉 Required Validator +export const requiredValidator = (value: unknown) => { + if (isNullOrUndefined(value) || isEmptyArray(value) || value === false) + return 'This field is required' + + return !!String(value).trim().length || 'This field is required' +} + +// 👉 Email Validator +export const emailValidator = (value: unknown) => { + if (isEmpty(value)) + return true + + const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ + + if (Array.isArray(value)) + return value.every(val => re.test(String(val))) || 'The Email field must be a valid email' + + return re.test(String(value)) || 'The Email field must be a valid email' +} + +// 👉 Password Validator +export const passwordValidator = (password: string) => { + const regExp = /(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%&*()]).{8,}/ + + const validPassword = regExp.test(password) + + return ( + // eslint-disable-next-line operator-linebreak + validPassword || + 'Field must contain at least one uppercase, lowercase, special character and digit with min 8 chars' + ) +} + +// 👉 Confirm Password Validator +export const confirmedValidator = (value: string, target: string) => + + value === target || 'The Confirm Password field confirmation does not match' + +// 👉 Between Validator +export const betweenValidator = (value: unknown, min: number, max: number) => { + const valueAsNumber = Number(value) + + return (Number(min) <= valueAsNumber && Number(max) >= valueAsNumber) || `Enter number between ${min} and ${max}` +} + +// 👉 Integer Validator +export const integerValidator = (value: unknown) => { + if (isEmpty(value)) + return true + + if (Array.isArray(value)) + return value.every(val => /^-?[0-9]+$/.test(String(val))) || 'This field must be an integer' + + return /^-?[0-9]+$/.test(String(value)) || 'This field must be an integer' +} + +// 👉 Regex Validator +export const regexValidator = (value: unknown, regex: RegExp | string): string | boolean => { + if (isEmpty(value)) + return true + + let regeX = regex + if (typeof regeX === 'string') + regeX = new RegExp(regeX) + + if (Array.isArray(value)) + return value.every(val => regexValidator(val, regeX)) + + return regeX.test(String(value)) || 'The Regex field format is invalid' +} + +// 👉 Alpha Validator +export const alphaValidator = (value: unknown) => { + if (isEmpty(value)) + return true + + return /^[A-Z]*$/i.test(String(value)) || 'The Alpha field may only contain alphabetic characters' +} + +// 👉 URL Validator +export const urlValidator = (value: unknown) => { + if (isEmpty(value)) + return true + + const re = /^(http[s]?:\/\/){0,1}(www\.){0,1}[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,5}[\.]{0,1}/ + + return re.test(String(value)) || 'URL is invalid' +} + +// 👉 Length Validator +export const lengthValidator = (value: unknown, length: number) => { + if (isEmpty(value)) + return true + + return String(value).length === length || `The Min Character field must be at least ${length} characters` +} + +// 👉 Alpha-dash Validator +export const alphaDashValidator = (value: unknown) => { + if (isEmpty(value)) + return true + + const valueAsString = String(value) + + return /^[0-9A-Z_-]*$/i.test(valueAsString) || 'All Character are not valid' +} diff --git a/packages/dashboard/src/plugins/vuetify/@core/utils/vuetify.ts b/packages/dashboard/src/plugins/vuetify/@core/utils/vuetify.ts new file mode 100644 index 00000000..98c0f6e5 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@core/utils/vuetify.ts @@ -0,0 +1,12 @@ +import { isDarkPreferred } from '@core/composable/useThemeConfig' +import { themeConfig } from '@themeConfig' + +export const resolveVuetifyTheme = () => { + const storedTheme = localStorage.getItem(`${themeConfig.app.title}-theme`) || themeConfig.app.theme.value + + return storedTheme === 'system' + ? isDarkPreferred.value + ? 'dark' + : 'light' + : storedTheme +} diff --git a/packages/dashboard/src/plugins/vuetify/@iconify/build-icons.js b/packages/dashboard/src/plugins/vuetify/@iconify/build-icons.js new file mode 100644 index 00000000..be16a1e9 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@iconify/build-icons.js @@ -0,0 +1,217 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * This is an advanced example for creating icon bundles for Iconify SVG Framework. + * + * It creates a bundle from: + * - All SVG files in a directory. + * - Custom JSON files. + * - Iconify icon sets. + * - SVG framework. + * + * This example uses Iconify Tools to import and clean up icons. + * For Iconify Tools documentation visit https://docs.iconify.design/tools/tools2/ + */ +const fs_1 = require("fs"); +const path_1 = require("path"); +// Installation: npm install --save-dev @iconify/tools @iconify/utils @iconify/json @iconify/iconify +const tools_1 = require("@iconify/tools"); +const utils_1 = require("@iconify/utils"); +const sources = { + svg: [ + // { + // dir: 'svg', + // monotone: true, + // prefix: 'custom', + // }, + { + dir: 'src/assets/images/iconify-svg', + monotone: false, + prefix: 'custom', + }, + ], + icons: [ + // 'mdi:home', + // 'mdi:account', + // 'mdi:login', + // 'mdi:logout', + // 'octicon:book-24', + // 'octicon:code-square-24', + ], + json: [ + // Custom JSON file + // 'json/gg.json', + // Iconify JSON file (@iconify/json is a package name, /json/ is directory where files are, then filename) + require.resolve('@iconify-json/mdi/icons.json'), + // Custom file with only few icons + // { + // filename: require.resolve('@iconify-json/line-md/icons.json'), + // icons: [ + // 'home-twotone-alt', + // 'github', + // 'document-list', + // 'document-code', + // 'image-twotone', + // ], + // }, + ], +}; +// Iconify component (this changes import statement in generated file) +// Available options: '@iconify/react' for React, '@iconify/vue' for Vue 3, '@iconify/vue2' for Vue 2, '@iconify/svelte' for Svelte +const component = '@iconify/vue'; +// Set to true to use require() instead of import +const commonJS = false; +// File to save bundle to +const target = (0, path_1.join)(__dirname, 'icons-bundle.js'); +/** + * Do stuff! + */ +// eslint-disable-next-line sonarjs/cognitive-complexity +(async function () { + let bundle = commonJS + ? `const { addCollection } = require('${component}');\n\n` + : `import { addCollection } from '${component}';\n\n`; + // Create directory for output if missing + const dir = (0, path_1.dirname)(target); + try { + await fs_1.promises.mkdir(dir, { + recursive: true, + }); + } + catch (err) { + // + } + /** + * Convert sources.icons to sources.json + */ + if (sources.icons) { + const sourcesJSON = sources.json ? sources.json : (sources.json = []); + // Sort icons by prefix + const organizedList = organizeIconsList(sources.icons); + for (const prefix in organizedList) { + const filename = require.resolve(`@iconify/json/json/${prefix}.json`); + sourcesJSON.push({ + filename, + icons: organizedList[prefix], + }); + } + } + /** + * Bundle JSON files + */ + if (sources.json) { + for (let i = 0; i < sources.json.length; i++) { + const item = sources.json[i]; + // Load icon set + const filename = typeof item === 'string' ? item : item.filename; + let content = JSON.parse(await fs_1.promises.readFile(filename, 'utf8')); + // Filter icons + if (typeof item !== 'string' && item.icons?.length) { + const filteredContent = (0, utils_1.getIcons)(content, item.icons); + if (!filteredContent) + throw new Error(`Cannot find required icons in ${filename}`); + content = filteredContent; + } + // Remove metadata and add to bundle + removeMetaData(content); + (0, utils_1.minifyIconSet)(content); + bundle += `addCollection(${JSON.stringify(content)});\n`; + console.log(`Bundled icons from ${filename}`); + } + } + /** + * Custom SVG + */ + if (sources.svg) { + for (let i = 0; i < sources.svg.length; i++) { + const source = sources.svg[i]; + // Import icons + const iconSet = await (0, tools_1.importDirectory)(source.dir, { + prefix: source.prefix, + }); + // Validate, clean up, fix palette and optimise + await iconSet.forEach(async (name, type) => { + if (type !== 'icon') + return; + // Get SVG instance for parsing + const svg = iconSet.toSVG(name); + if (!svg) { + // Invalid icon + iconSet.remove(name); + return; + } + // Clean up and optimise icons + try { + // Clean up icon code + await (0, tools_1.cleanupSVG)(svg); + if (source.monotone) { + // Replace color with currentColor, add if missing + // If icon is not monotone, remove this code + await (0, tools_1.parseColors)(svg, { + defaultColor: 'currentColor', + callback: (attr, colorStr, color) => { + return !color || (0, tools_1.isEmptyColor)(color) + ? colorStr + : 'currentColor'; + }, + }); + } + // Optimise + await (0, tools_1.runSVGO)(svg); + } + catch (err) { + // Invalid icon + console.error(`Error parsing ${name} from ${source.dir}:`, err); + iconSet.remove(name); + return; + } + // Update icon from SVG instance + iconSet.fromSVG(name, svg); + }); + console.log(`Bundled ${iconSet.count()} icons from ${source.dir}`); + // Export to JSON + const content = iconSet.export(); + bundle += `addCollection(${JSON.stringify(content)});\n`; + } + } + // Save to file + await fs_1.promises.writeFile(target, bundle, 'utf8'); + console.log(`Saved ${target} (${bundle.length} bytes)`); +})().catch(err => { + console.error(err); +}); +/** + * Remove metadata from icon set + */ +function removeMetaData(iconSet) { + const props = [ + 'info', + 'chars', + 'categories', + 'themes', + 'prefixes', + 'suffixes', + ]; + props.forEach(prop => { + delete iconSet[prop]; + }); +} +/** + * Sort icon names by prefix + */ +function organizeIconsList(icons) { + const sorted = Object.create(null); + icons.forEach(icon => { + const item = (0, utils_1.stringToIcon)(icon); + if (!item) + return; + const prefix = item.prefix; + const prefixList = sorted[prefix] + ? sorted[prefix] + : (sorted[prefix] = []); + const name = item.name; + if (!prefixList.includes(name)) + prefixList.push(name); + }); + return sorted; +} diff --git a/packages/dashboard/src/plugins/vuetify/@iconify/build-icons.ts b/packages/dashboard/src/plugins/vuetify/@iconify/build-icons.ts new file mode 100644 index 00000000..b40bc1a8 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@iconify/build-icons.ts @@ -0,0 +1,306 @@ +/** + * This is an advanced example for creating icon bundles for Iconify SVG Framework. + * + * It creates a bundle from: + * - All SVG files in a directory. + * - Custom JSON files. + * - Iconify icon sets. + * - SVG framework. + * + * This example uses Iconify Tools to import and clean up icons. + * For Iconify Tools documentation visit https://docs.iconify.design/tools/tools2/ + */ +import { promises as fs } from 'fs' +import { dirname, join } from 'path' + +// Installation: npm install --save-dev @iconify/tools @iconify/utils @iconify/json @iconify/iconify +import { + cleanupSVG, + importDirectory, + isEmptyColor, + parseColors, + runSVGO, +} from '@iconify/tools' +import type { IconifyJSON, IconifyMetaData } from '@iconify/types' +import { getIcons, minifyIconSet, stringToIcon } from '@iconify/utils' + +/** + * Script configuration + */ +interface BundleScriptCustomSVGConfig { + + // Path to SVG files + dir: string + + // True if icons should be treated as monotone: colors replaced with currentColor + monotone: boolean + + // Icon set prefix + prefix: string +} + +interface BundleScriptCustomJSONConfig { + + // Path to JSON file + filename: string + + // List of icons to import. If missing, all icons will be imported + icons?: string[] +} + +interface BundleScriptConfig { + + // Custom SVG to import and bundle + svg?: BundleScriptCustomSVGConfig[] + + // Icons to bundled from @iconify/json packages + icons?: string[] + + // List of JSON files to bundled + // Entry can be a string, pointing to filename or a BundleScriptCustomJSONConfig object (see type above) + // If entry is a string or object without 'icons' property, an entire JSON file will be bundled + json?: (string | BundleScriptCustomJSONConfig)[] +} + +const sources: BundleScriptConfig = { + svg: [ + // { + // dir: 'svg', + // monotone: true, + // prefix: 'custom', + // }, + { + dir: 'src/assets/images/iconify-svg', + monotone: false, + prefix: 'custom', + }, + ], + + icons: [ + // 'mdi:home', + // 'mdi:account', + // 'mdi:login', + // 'mdi:logout', + // 'octicon:book-24', + // 'octicon:code-square-24', + ], + + json: [ + // Custom JSON file + // 'json/gg.json', + + // Iconify JSON file (@iconify/json is a package name, /json/ is directory where files are, then filename) + require.resolve('@iconify-json/mdi/icons.json'), + + // Custom file with only few icons + // { + // filename: require.resolve('@iconify-json/line-md/icons.json'), + // icons: [ + // 'home-twotone-alt', + // 'github', + // 'document-list', + // 'document-code', + // 'image-twotone', + // ], + // }, + ], +} + +// Iconify component (this changes import statement in generated file) +// Available options: '@iconify/react' for React, '@iconify/vue' for Vue 3, '@iconify/vue2' for Vue 2, '@iconify/svelte' for Svelte +const component = '@iconify/vue' + +// Set to true to use require() instead of import +const commonJS = false + +// File to save bundle to +const target = join(__dirname, 'icons-bundle.js'); + +/** + * Do stuff! + */ +// eslint-disable-next-line sonarjs/cognitive-complexity +(async function () { + let bundle = commonJS + ? `const { addCollection } = require('${component}');\n\n` + : `import { addCollection } from '${component}';\n\n` + + // Create directory for output if missing + const dir = dirname(target) + try { + await fs.mkdir(dir, { + recursive: true, + }) + } + catch (err) { + // + } + + /** + * Convert sources.icons to sources.json + */ + if (sources.icons) { + const sourcesJSON = sources.json ? sources.json : (sources.json = []) + + // Sort icons by prefix + const organizedList = organizeIconsList(sources.icons) + for (const prefix in organizedList) { + const filename = require.resolve(`@iconify/json/json/${prefix}.json`) + + sourcesJSON.push({ + filename, + icons: organizedList[prefix], + }) + } + } + + /** + * Bundle JSON files + */ + if (sources.json) { + for (let i = 0; i < sources.json.length; i++) { + const item = sources.json[i] + + // Load icon set + const filename = typeof item === 'string' ? item : item.filename + let content = JSON.parse( + await fs.readFile(filename, 'utf8'), + ) as IconifyJSON + + // Filter icons + if (typeof item !== 'string' && item.icons?.length) { + const filteredContent = getIcons(content, item.icons) + if (!filteredContent) + throw new Error(`Cannot find required icons in ${filename}`) + + content = filteredContent + } + + // Remove metadata and add to bundle + removeMetaData(content) + minifyIconSet(content) + bundle += `addCollection(${JSON.stringify(content)});\n` + console.log(`Bundled icons from ${filename}`) + } + } + + /** + * Custom SVG + */ + if (sources.svg) { + for (let i = 0; i < sources.svg.length; i++) { + const source = sources.svg[i] + + // Import icons + const iconSet = await importDirectory(source.dir, { + prefix: source.prefix, + }) + + // Validate, clean up, fix palette and optimise + await iconSet.forEach(async (name, type) => { + if (type !== 'icon') + return + + // Get SVG instance for parsing + const svg = iconSet.toSVG(name) + if (!svg) { + // Invalid icon + iconSet.remove(name) + + return + } + + // Clean up and optimise icons + try { + // Clean up icon code + await cleanupSVG(svg) + + if (source.monotone) { + // Replace color with currentColor, add if missing + // If icon is not monotone, remove this code + await parseColors(svg, { + defaultColor: 'currentColor', + callback: (attr, colorStr, color) => { + return !color || isEmptyColor(color) + ? colorStr + : 'currentColor' + }, + }) + } + + // Optimise + await runSVGO(svg) + } + catch (err) { + // Invalid icon + console.error( + `Error parsing ${name} from ${source.dir}:`, + err, + ) + iconSet.remove(name) + + return + } + + // Update icon from SVG instance + iconSet.fromSVG(name, svg) + }) + console.log(`Bundled ${iconSet.count()} icons from ${source.dir}`) + + // Export to JSON + const content = iconSet.export() + + bundle += `addCollection(${JSON.stringify(content)});\n` + } + } + + // Save to file + await fs.writeFile(target, bundle, 'utf8') + + console.log(`Saved ${target} (${bundle.length} bytes)`) +})().catch(err => { + console.error(err) +}) + +/** + * Remove metadata from icon set + */ +function removeMetaData(iconSet: IconifyJSON) { + const props: (keyof IconifyMetaData)[] = [ + 'info', + 'chars', + 'categories', + 'themes', + 'prefixes', + 'suffixes', + ] + + props.forEach(prop => { + delete iconSet[prop] + }) +} + +/** + * Sort icon names by prefix + */ +function organizeIconsList(icons: string[]): Record { + const sorted: Record = Object.create(null) + + icons.forEach(icon => { + const item = stringToIcon(icon) + if (!item) + return + + const prefix = item.prefix + + const prefixList = sorted[prefix] + ? sorted[prefix] + : (sorted[prefix] = []) + + const name = item.name + if (!prefixList.includes(name)) + prefixList.push(name) + }) + + return sorted +} diff --git a/packages/dashboard/src/plugins/vuetify/@iconify/icons-bundle.js b/packages/dashboard/src/plugins/vuetify/@iconify/icons-bundle.js new file mode 100644 index 00000000..1d22fd43 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@iconify/icons-bundle.js @@ -0,0 +1,4 @@ +import { addCollection } from '@iconify/vue'; + +addCollection({"prefix":"mdi","icons":{"ab-testing":{"body":""},"abacus":{"body":""},"abjad-arabic":{"body":""},"abjad-hebrew":{"body":""},"abugida-devanagari":{"body":""},"abugida-thai":{"body":""},"access-point":{"body":""},"access-point-check":{"body":""},"access-point-minus":{"body":""},"access-point-network":{"body":""},"access-point-network-off":{"body":""},"access-point-off":{"body":""},"access-point-plus":{"body":""},"access-point-remove":{"body":""},"account":{"body":""},"account-alert":{"body":""},"account-alert-outline":{"body":""},"account-arrow-down":{"body":""},"account-arrow-down-outline":{"body":""},"account-arrow-left":{"body":""},"account-arrow-left-outline":{"body":""},"account-arrow-right":{"body":""},"account-arrow-right-outline":{"body":""},"account-arrow-up":{"body":""},"account-arrow-up-outline":{"body":""},"account-badge":{"body":""},"account-badge-outline":{"body":""},"account-box":{"body":""},"account-box-multiple":{"body":""},"account-box-multiple-outline":{"body":""},"account-box-outline":{"body":""},"account-cancel":{"body":""},"account-cancel-outline":{"body":""},"account-card":{"body":""},"account-card-outline":{"body":""},"account-cash":{"body":""},"account-cash-outline":{"body":""},"account-check":{"body":""},"account-check-outline":{"body":""},"account-child":{"body":""},"account-child-circle":{"body":""},"account-child-outline":{"body":""},"account-circle":{"body":""},"account-circle-outline":{"body":""},"account-clock":{"body":""},"account-clock-outline":{"body":""},"account-cog":{"body":""},"account-cog-outline":{"body":""},"account-convert":{"body":""},"account-convert-outline":{"body":""},"account-cowboy-hat":{"body":""},"account-cowboy-hat-outline":{"body":""},"account-credit-card":{"body":""},"account-credit-card-outline":{"body":""},"account-details":{"body":""},"account-details-outline":{"body":""},"account-edit":{"body":""},"account-edit-outline":{"body":""},"account-eye":{"body":""},"account-eye-outline":{"body":""},"account-filter":{"body":""},"account-filter-outline":{"body":""},"account-group":{"body":""},"account-group-outline":{"body":""},"account-hard-hat":{"body":""},"account-hard-hat-outline":{"body":""},"account-heart":{"body":""},"account-heart-outline":{"body":""},"account-injury":{"body":""},"account-injury-outline":{"body":""},"account-key":{"body":""},"account-key-outline":{"body":""},"account-lock":{"body":""},"account-lock-open":{"body":""},"account-lock-open-outline":{"body":""},"account-lock-outline":{"body":""},"account-minus":{"body":""},"account-minus-outline":{"body":""},"account-multiple":{"body":""},"account-multiple-check":{"body":""},"account-multiple-check-outline":{"body":""},"account-multiple-minus":{"body":""},"account-multiple-minus-outline":{"body":""},"account-multiple-outline":{"body":""},"account-multiple-plus":{"body":""},"account-multiple-plus-outline":{"body":""},"account-multiple-remove":{"body":""},"account-multiple-remove-outline":{"body":""},"account-music":{"body":""},"account-music-outline":{"body":""},"account-network":{"body":""},"account-network-off":{"body":""},"account-network-off-outline":{"body":""},"account-network-outline":{"body":""},"account-off":{"body":""},"account-off-outline":{"body":""},"account-outline":{"body":""},"account-plus":{"body":""},"account-plus-outline":{"body":""},"account-question":{"body":""},"account-question-outline":{"body":""},"account-reactivate":{"body":""},"account-reactivate-outline":{"body":""},"account-remove":{"body":""},"account-remove-outline":{"body":""},"account-school":{"body":""},"account-school-outline":{"body":""},"account-search":{"body":""},"account-search-outline":{"body":""},"account-settings":{"body":""},"account-settings-outline":{"body":""},"account-settings-variant":{"body":"","hidden":true},"account-star":{"body":""},"account-star-outline":{"body":""},"account-supervisor":{"body":""},"account-supervisor-circle":{"body":""},"account-supervisor-circle-outline":{"body":""},"account-supervisor-outline":{"body":""},"account-switch":{"body":""},"account-switch-outline":{"body":""},"account-sync":{"body":""},"account-sync-outline":{"body":""},"account-tag":{"body":""},"account-tag-outline":{"body":""},"account-tie":{"body":""},"account-tie-hat":{"body":""},"account-tie-hat-outline":{"body":""},"account-tie-outline":{"body":""},"account-tie-voice":{"body":""},"account-tie-voice-off":{"body":""},"account-tie-voice-off-outline":{"body":""},"account-tie-voice-outline":{"body":""},"account-tie-woman":{"body":""},"account-voice":{"body":""},"account-voice-off":{"body":""},"account-wrench":{"body":""},"account-wrench-outline":{"body":""},"accusoft":{"body":"","hidden":true},"ad-choices":{"body":"","hidden":true},"adchoices":{"body":"","hidden":true},"adjust":{"body":""},"adobe":{"body":"","hidden":true},"advertisements":{"body":""},"advertisements-off":{"body":""},"air-conditioner":{"body":""},"air-filter":{"body":""},"air-horn":{"body":""},"air-humidifier":{"body":""},"air-humidifier-off":{"body":""},"air-purifier":{"body":""},"air-purifier-off":{"body":""},"airbag":{"body":""},"airballoon":{"body":""},"airballoon-outline":{"body":""},"airplane":{"body":""},"airplane-alert":{"body":""},"airplane-check":{"body":""},"airplane-clock":{"body":""},"airplane-cog":{"body":""},"airplane-edit":{"body":""},"airplane-landing":{"body":""},"airplane-marker":{"body":""},"airplane-minus":{"body":""},"airplane-off":{"body":""},"airplane-plus":{"body":""},"airplane-remove":{"body":""},"airplane-search":{"body":""},"airplane-settings":{"body":""},"airplane-takeoff":{"body":""},"airport":{"body":""},"alarm":{"body":""},"alarm-bell":{"body":""},"alarm-check":{"body":""},"alarm-light":{"body":""},"alarm-light-off":{"body":""},"alarm-light-off-outline":{"body":""},"alarm-light-outline":{"body":""},"alarm-multiple":{"body":""},"alarm-note":{"body":""},"alarm-note-off":{"body":""},"alarm-off":{"body":""},"alarm-panel":{"body":""},"alarm-panel-outline":{"body":""},"alarm-plus":{"body":""},"alarm-snooze":{"body":""},"album":{"body":""},"alert":{"body":""},"alert-box":{"body":""},"alert-box-outline":{"body":""},"alert-circle":{"body":""},"alert-circle-check":{"body":""},"alert-circle-check-outline":{"body":""},"alert-circle-outline":{"body":""},"alert-decagram":{"body":""},"alert-decagram-outline":{"body":""},"alert-minus":{"body":""},"alert-minus-outline":{"body":""},"alert-octagon":{"body":""},"alert-octagon-outline":{"body":""},"alert-octagram":{"body":""},"alert-octagram-outline":{"body":""},"alert-outline":{"body":""},"alert-plus":{"body":""},"alert-plus-outline":{"body":""},"alert-remove":{"body":""},"alert-remove-outline":{"body":""},"alert-rhombus":{"body":""},"alert-rhombus-outline":{"body":""},"alien":{"body":""},"alien-outline":{"body":""},"align-horizontal-center":{"body":""},"align-horizontal-distribute":{"body":""},"align-horizontal-left":{"body":""},"align-horizontal-right":{"body":""},"align-vertical-bottom":{"body":""},"align-vertical-center":{"body":""},"align-vertical-distribute":{"body":""},"align-vertical-top":{"body":""},"all-inclusive":{"body":""},"all-inclusive-box":{"body":""},"all-inclusive-box-outline":{"body":""},"allergy":{"body":""},"allo":{"body":"","hidden":true},"alpha":{"body":""},"alpha-a":{"body":""},"alpha-a-box":{"body":""},"alpha-a-box-outline":{"body":""},"alpha-a-circle":{"body":""},"alpha-a-circle-outline":{"body":""},"alpha-b":{"body":""},"alpha-b-box":{"body":""},"alpha-b-box-outline":{"body":""},"alpha-b-circle":{"body":""},"alpha-b-circle-outline":{"body":""},"alpha-c":{"body":""},"alpha-c-box":{"body":""},"alpha-c-box-outline":{"body":""},"alpha-c-circle":{"body":""},"alpha-c-circle-outline":{"body":""},"alpha-d":{"body":""},"alpha-d-box":{"body":""},"alpha-d-box-outline":{"body":""},"alpha-d-circle":{"body":""},"alpha-d-circle-outline":{"body":""},"alpha-e":{"body":""},"alpha-e-box":{"body":""},"alpha-e-box-outline":{"body":""},"alpha-e-circle":{"body":""},"alpha-e-circle-outline":{"body":""},"alpha-f":{"body":""},"alpha-f-box":{"body":""},"alpha-f-box-outline":{"body":""},"alpha-f-circle":{"body":""},"alpha-f-circle-outline":{"body":""},"alpha-g":{"body":""},"alpha-g-box":{"body":""},"alpha-g-box-outline":{"body":""},"alpha-g-circle":{"body":""},"alpha-g-circle-outline":{"body":""},"alpha-h":{"body":""},"alpha-h-box":{"body":""},"alpha-h-box-outline":{"body":""},"alpha-h-circle":{"body":""},"alpha-h-circle-outline":{"body":""},"alpha-i":{"body":""},"alpha-i-box":{"body":""},"alpha-i-box-outline":{"body":""},"alpha-i-circle":{"body":""},"alpha-i-circle-outline":{"body":""},"alpha-j":{"body":""},"alpha-j-box":{"body":""},"alpha-j-box-outline":{"body":""},"alpha-j-circle":{"body":""},"alpha-j-circle-outline":{"body":""},"alpha-k":{"body":""},"alpha-k-box":{"body":""},"alpha-k-box-outline":{"body":""},"alpha-k-circle":{"body":""},"alpha-k-circle-outline":{"body":""},"alpha-l":{"body":""},"alpha-l-box":{"body":""},"alpha-l-box-outline":{"body":""},"alpha-l-circle":{"body":""},"alpha-l-circle-outline":{"body":""},"alpha-m":{"body":""},"alpha-m-box":{"body":""},"alpha-m-box-outline":{"body":""},"alpha-m-circle":{"body":""},"alpha-m-circle-outline":{"body":""},"alpha-n":{"body":""},"alpha-n-box":{"body":""},"alpha-n-box-outline":{"body":""},"alpha-n-circle":{"body":""},"alpha-n-circle-outline":{"body":""},"alpha-o":{"body":""},"alpha-o-box":{"body":""},"alpha-o-box-outline":{"body":""},"alpha-o-circle":{"body":""},"alpha-o-circle-outline":{"body":""},"alpha-p":{"body":""},"alpha-p-box":{"body":""},"alpha-p-box-outline":{"body":""},"alpha-p-circle":{"body":""},"alpha-p-circle-outline":{"body":""},"alpha-q":{"body":""},"alpha-q-box":{"body":""},"alpha-q-box-outline":{"body":""},"alpha-q-circle":{"body":""},"alpha-q-circle-outline":{"body":""},"alpha-r":{"body":""},"alpha-r-box":{"body":""},"alpha-r-box-outline":{"body":""},"alpha-r-circle":{"body":""},"alpha-r-circle-outline":{"body":""},"alpha-s":{"body":""},"alpha-s-box":{"body":""},"alpha-s-box-outline":{"body":""},"alpha-s-circle":{"body":""},"alpha-s-circle-outline":{"body":""},"alpha-t":{"body":""},"alpha-t-box":{"body":""},"alpha-t-box-outline":{"body":""},"alpha-t-circle":{"body":""},"alpha-t-circle-outline":{"body":""},"alpha-u":{"body":""},"alpha-u-box":{"body":""},"alpha-u-box-outline":{"body":""},"alpha-u-circle":{"body":""},"alpha-u-circle-outline":{"body":""},"alpha-v":{"body":""},"alpha-v-box":{"body":""},"alpha-v-box-outline":{"body":""},"alpha-v-circle":{"body":""},"alpha-v-circle-outline":{"body":""},"alpha-w":{"body":""},"alpha-w-box":{"body":""},"alpha-w-box-outline":{"body":""},"alpha-w-circle":{"body":""},"alpha-w-circle-outline":{"body":""},"alpha-x":{"body":""},"alpha-x-box":{"body":""},"alpha-x-box-outline":{"body":""},"alpha-x-circle":{"body":""},"alpha-x-circle-outline":{"body":""},"alpha-y":{"body":""},"alpha-y-box":{"body":""},"alpha-y-box-outline":{"body":""},"alpha-y-circle":{"body":""},"alpha-y-circle-outline":{"body":""},"alpha-z":{"body":""},"alpha-z-box":{"body":""},"alpha-z-box-outline":{"body":""},"alpha-z-circle":{"body":""},"alpha-z-circle-outline":{"body":""},"alphabet-aurebesh":{"body":""},"alphabet-cyrillic":{"body":""},"alphabet-greek":{"body":""},"alphabet-latin":{"body":""},"alphabet-piqad":{"body":""},"alphabet-tengwar":{"body":""},"alphabetical":{"body":""},"alphabetical-off":{"body":""},"alphabetical-variant":{"body":""},"alphabetical-variant-off":{"body":""},"altimeter":{"body":""},"amazon":{"body":"","hidden":true},"amazon-alexa":{"body":"","hidden":true},"amazon-drive":{"body":"","hidden":true},"ambulance":{"body":""},"ammunition":{"body":""},"ampersand":{"body":""},"amplifier":{"body":""},"amplifier-off":{"body":""},"anchor":{"body":""},"android":{"body":""},"android-auto":{"body":"","hidden":true},"android-debug-bridge":{"body":"","hidden":true},"android-head":{"body":"","hidden":true},"android-messages":{"body":"","hidden":true},"android-studio":{"body":""},"angle-acute":{"body":""},"angle-obtuse":{"body":""},"angle-right":{"body":""},"angular":{"body":""},"angularjs":{"body":""},"animation":{"body":""},"animation-outline":{"body":""},"animation-play":{"body":""},"animation-play-outline":{"body":""},"ansible":{"body":""},"antenna":{"body":""},"anvil":{"body":""},"apache-kafka":{"body":""},"api":{"body":""},"api-off":{"body":""},"apple":{"body":""},"apple-finder":{"body":""},"apple-icloud":{"body":""},"apple-ios":{"body":""},"apple-keyboard-caps":{"body":""},"apple-keyboard-command":{"body":""},"apple-keyboard-control":{"body":""},"apple-keyboard-option":{"body":""},"apple-keyboard-shift":{"body":""},"apple-safari":{"body":""},"application":{"body":""},"application-array":{"body":""},"application-array-outline":{"body":""},"application-braces":{"body":""},"application-braces-outline":{"body":""},"application-brackets":{"body":""},"application-brackets-outline":{"body":""},"application-cog":{"body":""},"application-cog-outline":{"body":""},"application-edit":{"body":""},"application-edit-outline":{"body":""},"application-export":{"body":""},"application-import":{"body":""},"application-outline":{"body":""},"application-parentheses":{"body":""},"application-parentheses-outline":{"body":""},"application-settings":{"body":""},"application-settings-outline":{"body":""},"application-variable":{"body":""},"application-variable-outline":{"body":""},"appnet":{"body":"","hidden":true},"approximately-equal":{"body":""},"approximately-equal-box":{"body":""},"apps":{"body":""},"apps-box":{"body":""},"arch":{"body":""},"archive":{"body":""},"archive-alert":{"body":""},"archive-alert-outline":{"body":""},"archive-arrow-down":{"body":""},"archive-arrow-down-outline":{"body":""},"archive-arrow-up":{"body":""},"archive-arrow-up-outline":{"body":""},"archive-cancel":{"body":""},"archive-cancel-outline":{"body":""},"archive-check":{"body":""},"archive-check-outline":{"body":""},"archive-clock":{"body":""},"archive-clock-outline":{"body":""},"archive-cog":{"body":""},"archive-cog-outline":{"body":""},"archive-edit":{"body":""},"archive-edit-outline":{"body":""},"archive-eye":{"body":""},"archive-eye-outline":{"body":""},"archive-lock":{"body":""},"archive-lock-open":{"body":""},"archive-lock-open-outline":{"body":""},"archive-lock-outline":{"body":""},"archive-marker":{"body":""},"archive-marker-outline":{"body":""},"archive-minus":{"body":""},"archive-minus-outline":{"body":""},"archive-music":{"body":""},"archive-music-outline":{"body":""},"archive-off":{"body":""},"archive-off-outline":{"body":""},"archive-outline":{"body":""},"archive-plus":{"body":""},"archive-plus-outline":{"body":""},"archive-refresh":{"body":""},"archive-refresh-outline":{"body":""},"archive-remove":{"body":""},"archive-remove-outline":{"body":""},"archive-search":{"body":""},"archive-search-outline":{"body":""},"archive-settings":{"body":""},"archive-settings-outline":{"body":""},"archive-star":{"body":""},"archive-star-outline":{"body":""},"archive-sync":{"body":""},"archive-sync-outline":{"body":""},"arm-flex":{"body":""},"arm-flex-outline":{"body":""},"arrange-bring-forward":{"body":""},"arrange-bring-to-front":{"body":""},"arrange-send-backward":{"body":""},"arrange-send-to-back":{"body":""},"arrow-all":{"body":""},"arrow-bottom-left":{"body":""},"arrow-bottom-left-bold-box":{"body":""},"arrow-bottom-left-bold-box-outline":{"body":""},"arrow-bottom-left-bold-outline":{"body":""},"arrow-bottom-left-thick":{"body":""},"arrow-bottom-left-thin":{"body":""},"arrow-bottom-left-thin-circle-outline":{"body":""},"arrow-bottom-right":{"body":""},"arrow-bottom-right-bold-box":{"body":""},"arrow-bottom-right-bold-box-outline":{"body":""},"arrow-bottom-right-bold-outline":{"body":""},"arrow-bottom-right-thick":{"body":""},"arrow-bottom-right-thin":{"body":""},"arrow-bottom-right-thin-circle-outline":{"body":""},"arrow-collapse":{"body":""},"arrow-collapse-all":{"body":""},"arrow-collapse-down":{"body":""},"arrow-collapse-horizontal":{"body":""},"arrow-collapse-left":{"body":""},"arrow-collapse-right":{"body":""},"arrow-collapse-up":{"body":""},"arrow-collapse-vertical":{"body":""},"arrow-decision":{"body":""},"arrow-decision-auto":{"body":""},"arrow-decision-auto-outline":{"body":""},"arrow-decision-outline":{"body":""},"arrow-down":{"body":""},"arrow-down-bold":{"body":""},"arrow-down-bold-box":{"body":""},"arrow-down-bold-box-outline":{"body":""},"arrow-down-bold-circle":{"body":""},"arrow-down-bold-circle-outline":{"body":""},"arrow-down-bold-hexagon-outline":{"body":""},"arrow-down-bold-outline":{"body":""},"arrow-down-box":{"body":""},"arrow-down-circle":{"body":""},"arrow-down-circle-outline":{"body":""},"arrow-down-drop-circle":{"body":""},"arrow-down-drop-circle-outline":{"body":""},"arrow-down-left":{"body":""},"arrow-down-left-bold":{"body":""},"arrow-down-right":{"body":""},"arrow-down-right-bold":{"body":""},"arrow-down-thick":{"body":""},"arrow-down-thin":{"body":""},"arrow-down-thin-circle-outline":{"body":""},"arrow-expand":{"body":""},"arrow-expand-all":{"body":""},"arrow-expand-down":{"body":""},"arrow-expand-horizontal":{"body":""},"arrow-expand-left":{"body":""},"arrow-expand-right":{"body":""},"arrow-expand-up":{"body":""},"arrow-expand-vertical":{"body":""},"arrow-horizontal-lock":{"body":""},"arrow-left":{"body":""},"arrow-left-bold":{"body":""},"arrow-left-bold-box":{"body":""},"arrow-left-bold-box-outline":{"body":""},"arrow-left-bold-circle":{"body":""},"arrow-left-bold-circle-outline":{"body":""},"arrow-left-bold-hexagon-outline":{"body":""},"arrow-left-bold-outline":{"body":""},"arrow-left-bottom":{"body":""},"arrow-left-bottom-bold":{"body":""},"arrow-left-box":{"body":""},"arrow-left-circle":{"body":""},"arrow-left-circle-outline":{"body":""},"arrow-left-drop-circle":{"body":""},"arrow-left-drop-circle-outline":{"body":""},"arrow-left-right":{"body":""},"arrow-left-right-bold":{"body":""},"arrow-left-right-bold-outline":{"body":""},"arrow-left-thick":{"body":""},"arrow-left-thin":{"body":""},"arrow-left-thin-circle-outline":{"body":""},"arrow-left-top":{"body":""},"arrow-left-top-bold":{"body":""},"arrow-projectile":{"body":""},"arrow-projectile-multiple":{"body":""},"arrow-right":{"body":""},"arrow-right-bold":{"body":""},"arrow-right-bold-box":{"body":""},"arrow-right-bold-box-outline":{"body":""},"arrow-right-bold-circle":{"body":""},"arrow-right-bold-circle-outline":{"body":""},"arrow-right-bold-hexagon-outline":{"body":""},"arrow-right-bold-outline":{"body":""},"arrow-right-bottom":{"body":""},"arrow-right-bottom-bold":{"body":""},"arrow-right-box":{"body":""},"arrow-right-circle":{"body":""},"arrow-right-circle-outline":{"body":""},"arrow-right-drop-circle":{"body":""},"arrow-right-drop-circle-outline":{"body":""},"arrow-right-thick":{"body":""},"arrow-right-thin":{"body":""},"arrow-right-thin-circle-outline":{"body":""},"arrow-right-top":{"body":""},"arrow-right-top-bold":{"body":""},"arrow-split-horizontal":{"body":""},"arrow-split-vertical":{"body":""},"arrow-top-left":{"body":""},"arrow-top-left-bold-box":{"body":""},"arrow-top-left-bold-box-outline":{"body":""},"arrow-top-left-bold-outline":{"body":""},"arrow-top-left-bottom-right":{"body":""},"arrow-top-left-bottom-right-bold":{"body":""},"arrow-top-left-thick":{"body":""},"arrow-top-left-thin":{"body":""},"arrow-top-left-thin-circle-outline":{"body":""},"arrow-top-right":{"body":""},"arrow-top-right-bold-box":{"body":""},"arrow-top-right-bold-box-outline":{"body":""},"arrow-top-right-bold-outline":{"body":""},"arrow-top-right-bottom-left":{"body":""},"arrow-top-right-bottom-left-bold":{"body":""},"arrow-top-right-thick":{"body":""},"arrow-top-right-thin":{"body":""},"arrow-top-right-thin-circle-outline":{"body":""},"arrow-u-down-left":{"body":""},"arrow-u-down-left-bold":{"body":""},"arrow-u-down-right":{"body":""},"arrow-u-down-right-bold":{"body":""},"arrow-u-left-bottom":{"body":""},"arrow-u-left-bottom-bold":{"body":""},"arrow-u-left-top":{"body":""},"arrow-u-left-top-bold":{"body":""},"arrow-u-right-bottom":{"body":""},"arrow-u-right-bottom-bold":{"body":""},"arrow-u-right-top":{"body":""},"arrow-u-right-top-bold":{"body":""},"arrow-u-up-left":{"body":""},"arrow-u-up-left-bold":{"body":""},"arrow-u-up-right":{"body":""},"arrow-u-up-right-bold":{"body":""},"arrow-up":{"body":""},"arrow-up-bold":{"body":""},"arrow-up-bold-box":{"body":""},"arrow-up-bold-box-outline":{"body":""},"arrow-up-bold-circle":{"body":""},"arrow-up-bold-circle-outline":{"body":""},"arrow-up-bold-hexagon-outline":{"body":""},"arrow-up-bold-outline":{"body":""},"arrow-up-box":{"body":""},"arrow-up-circle":{"body":""},"arrow-up-circle-outline":{"body":""},"arrow-up-down":{"body":""},"arrow-up-down-bold":{"body":""},"arrow-up-down-bold-outline":{"body":""},"arrow-up-drop-circle":{"body":""},"arrow-up-drop-circle-outline":{"body":""},"arrow-up-left":{"body":""},"arrow-up-left-bold":{"body":""},"arrow-up-right":{"body":""},"arrow-up-right-bold":{"body":""},"arrow-up-thick":{"body":""},"arrow-up-thin":{"body":""},"arrow-up-thin-circle-outline":{"body":""},"arrow-vertical-lock":{"body":""},"artboard":{"body":""},"artstation":{"body":""},"aspect-ratio":{"body":""},"assistant":{"body":""},"asterisk":{"body":""},"asterisk-circle-outline":{"body":""},"at":{"body":""},"atlassian":{"body":""},"atm":{"body":""},"atom":{"body":""},"atom-variant":{"body":""},"attachment":{"body":""},"attachment-check":{"body":""},"attachment-lock":{"body":""},"attachment-minus":{"body":""},"attachment-off":{"body":""},"attachment-plus":{"body":""},"attachment-remove":{"body":""},"atv":{"body":""},"audio-input-rca":{"body":""},"audio-input-stereo-minijack":{"body":""},"audio-input-xlr":{"body":""},"audio-video":{"body":""},"audio-video-off":{"body":""},"augmented-reality":{"body":""},"aurora":{"body":""},"auto-download":{"body":""},"auto-fix":{"body":""},"auto-upload":{"body":""},"autorenew":{"body":""},"autorenew-off":{"body":""},"av-timer":{"body":""},"awning":{"body":""},"awning-outline":{"body":""},"aws":{"body":""},"axe":{"body":""},"axe-battle":{"body":""},"axis":{"body":""},"axis-arrow":{"body":""},"axis-arrow-info":{"body":""},"axis-arrow-lock":{"body":""},"axis-lock":{"body":""},"axis-x-arrow":{"body":""},"axis-x-arrow-lock":{"body":""},"axis-x-rotate-clockwise":{"body":""},"axis-x-rotate-counterclockwise":{"body":""},"axis-x-y-arrow-lock":{"body":""},"axis-y-arrow":{"body":""},"axis-y-arrow-lock":{"body":""},"axis-y-rotate-clockwise":{"body":""},"axis-y-rotate-counterclockwise":{"body":""},"axis-z-arrow":{"body":""},"axis-z-arrow-lock":{"body":""},"axis-z-rotate-clockwise":{"body":""},"axis-z-rotate-counterclockwise":{"body":""},"babel":{"body":""},"baby":{"body":""},"baby-bottle":{"body":""},"baby-bottle-outline":{"body":""},"baby-buggy":{"body":""},"baby-buggy-off":{"body":""},"baby-carriage":{"body":""},"baby-carriage-off":{"body":""},"baby-face":{"body":""},"baby-face-outline":{"body":""},"backburger":{"body":""},"backspace":{"body":""},"backspace-outline":{"body":""},"backspace-reverse":{"body":""},"backspace-reverse-outline":{"body":""},"backup-restore":{"body":""},"bacteria":{"body":""},"bacteria-outline":{"body":""},"badge-account":{"body":""},"badge-account-alert":{"body":""},"badge-account-alert-outline":{"body":""},"badge-account-horizontal":{"body":""},"badge-account-horizontal-outline":{"body":""},"badge-account-outline":{"body":""},"badminton":{"body":""},"bag-carry-on":{"body":""},"bag-carry-on-check":{"body":""},"bag-carry-on-off":{"body":""},"bag-checked":{"body":""},"bag-personal":{"body":""},"bag-personal-off":{"body":""},"bag-personal-off-outline":{"body":""},"bag-personal-outline":{"body":""},"bag-personal-tag":{"body":""},"bag-personal-tag-outline":{"body":""},"bag-suitcase":{"body":""},"bag-suitcase-off":{"body":""},"bag-suitcase-off-outline":{"body":""},"bag-suitcase-outline":{"body":""},"baguette":{"body":""},"balcony":{"body":""},"balloon":{"body":""},"ballot":{"body":""},"ballot-outline":{"body":""},"ballot-recount":{"body":""},"ballot-recount-outline":{"body":""},"bandage":{"body":""},"bandcamp":{"body":"","hidden":true},"bank":{"body":""},"bank-check":{"body":""},"bank-circle":{"body":""},"bank-circle-outline":{"body":""},"bank-minus":{"body":""},"bank-off":{"body":""},"bank-off-outline":{"body":""},"bank-outline":{"body":""},"bank-plus":{"body":""},"bank-remove":{"body":""},"bank-transfer":{"body":""},"bank-transfer-in":{"body":""},"bank-transfer-out":{"body":""},"barcode":{"body":""},"barcode-off":{"body":""},"barcode-scan":{"body":""},"barley":{"body":""},"barley-off":{"body":""},"barn":{"body":""},"barrel":{"body":""},"barrel-outline":{"body":""},"baseball":{"body":""},"baseball-bat":{"body":""},"baseball-diamond":{"body":""},"baseball-diamond-outline":{"body":""},"basecamp":{"body":"","hidden":true},"bash":{"body":""},"basket":{"body":""},"basket-check":{"body":""},"basket-check-outline":{"body":""},"basket-fill":{"body":""},"basket-minus":{"body":""},"basket-minus-outline":{"body":""},"basket-off":{"body":""},"basket-off-outline":{"body":""},"basket-outline":{"body":""},"basket-plus":{"body":""},"basket-plus-outline":{"body":""},"basket-remove":{"body":""},"basket-remove-outline":{"body":""},"basket-unfill":{"body":""},"basketball":{"body":""},"basketball-hoop":{"body":""},"basketball-hoop-outline":{"body":""},"bat":{"body":""},"bathtub":{"body":""},"bathtub-outline":{"body":""},"battery":{"body":""},"battery-10":{"body":""},"battery-10-bluetooth":{"body":""},"battery-20":{"body":""},"battery-20-bluetooth":{"body":""},"battery-30":{"body":""},"battery-30-bluetooth":{"body":""},"battery-40":{"body":""},"battery-40-bluetooth":{"body":""},"battery-50":{"body":""},"battery-50-bluetooth":{"body":""},"battery-60":{"body":""},"battery-60-bluetooth":{"body":""},"battery-70":{"body":""},"battery-70-bluetooth":{"body":""},"battery-80":{"body":""},"battery-80-bluetooth":{"body":""},"battery-90":{"body":""},"battery-90-bluetooth":{"body":""},"battery-alert":{"body":""},"battery-alert-bluetooth":{"body":""},"battery-alert-variant":{"body":""},"battery-alert-variant-outline":{"body":""},"battery-arrow-down":{"body":""},"battery-arrow-down-outline":{"body":""},"battery-arrow-up":{"body":""},"battery-arrow-up-outline":{"body":""},"battery-bluetooth":{"body":""},"battery-bluetooth-variant":{"body":""},"battery-charging":{"body":""},"battery-charging-10":{"body":""},"battery-charging-100":{"body":""},"battery-charging-20":{"body":""},"battery-charging-30":{"body":""},"battery-charging-40":{"body":""},"battery-charging-50":{"body":""},"battery-charging-60":{"body":""},"battery-charging-70":{"body":""},"battery-charging-80":{"body":""},"battery-charging-90":{"body":""},"battery-charging-high":{"body":""},"battery-charging-low":{"body":""},"battery-charging-medium":{"body":""},"battery-charging-outline":{"body":""},"battery-charging-wireless":{"body":""},"battery-charging-wireless-10":{"body":""},"battery-charging-wireless-20":{"body":""},"battery-charging-wireless-30":{"body":""},"battery-charging-wireless-40":{"body":""},"battery-charging-wireless-50":{"body":""},"battery-charging-wireless-60":{"body":""},"battery-charging-wireless-70":{"body":""},"battery-charging-wireless-80":{"body":""},"battery-charging-wireless-90":{"body":""},"battery-charging-wireless-alert":{"body":""},"battery-charging-wireless-outline":{"body":""},"battery-check":{"body":""},"battery-check-outline":{"body":""},"battery-clock":{"body":""},"battery-clock-outline":{"body":""},"battery-heart":{"body":""},"battery-heart-outline":{"body":""},"battery-heart-variant":{"body":""},"battery-high":{"body":""},"battery-lock":{"body":""},"battery-lock-open":{"body":""},"battery-low":{"body":""},"battery-medium":{"body":""},"battery-minus":{"body":""},"battery-minus-outline":{"body":""},"battery-minus-variant":{"body":""},"battery-negative":{"body":""},"battery-off":{"body":""},"battery-off-outline":{"body":""},"battery-outline":{"body":""},"battery-plus":{"body":""},"battery-plus-outline":{"body":""},"battery-plus-variant":{"body":""},"battery-positive":{"body":""},"battery-remove":{"body":""},"battery-remove-outline":{"body":""},"battery-standard":{"body":"","hidden":true},"battery-sync":{"body":""},"battery-sync-outline":{"body":""},"battery-unknown":{"body":""},"battery-unknown-bluetooth":{"body":""},"battlenet":{"body":"","hidden":true},"beach":{"body":""},"beaker":{"body":""},"beaker-alert":{"body":""},"beaker-alert-outline":{"body":""},"beaker-check":{"body":""},"beaker-check-outline":{"body":""},"beaker-minus":{"body":""},"beaker-minus-outline":{"body":""},"beaker-outline":{"body":""},"beaker-plus":{"body":""},"beaker-plus-outline":{"body":""},"beaker-question":{"body":""},"beaker-question-outline":{"body":""},"beaker-remove":{"body":""},"beaker-remove-outline":{"body":""},"beam":{"body":"","hidden":true},"beats":{"body":"","hidden":true},"bed":{"body":""},"bed-clock":{"body":""},"bed-double":{"body":""},"bed-double-outline":{"body":""},"bed-empty":{"body":""},"bed-king":{"body":""},"bed-king-outline":{"body":""},"bed-outline":{"body":""},"bed-queen":{"body":""},"bed-queen-outline":{"body":""},"bed-single":{"body":""},"bed-single-outline":{"body":""},"bee":{"body":""},"bee-flower":{"body":""},"beehive-off-outline":{"body":""},"beehive-outline":{"body":""},"beekeeper":{"body":""},"beer":{"body":""},"beer-outline":{"body":""},"behance":{"body":"","hidden":true},"bell":{"body":""},"bell-alert":{"body":""},"bell-alert-outline":{"body":""},"bell-badge":{"body":""},"bell-badge-outline":{"body":""},"bell-cancel":{"body":""},"bell-cancel-outline":{"body":""},"bell-check":{"body":""},"bell-check-outline":{"body":""},"bell-circle":{"body":""},"bell-circle-outline":{"body":""},"bell-cog":{"body":""},"bell-cog-outline":{"body":""},"bell-minus":{"body":""},"bell-minus-outline":{"body":""},"bell-off":{"body":""},"bell-off-outline":{"body":""},"bell-outline":{"body":""},"bell-plus":{"body":""},"bell-plus-outline":{"body":""},"bell-remove":{"body":""},"bell-remove-outline":{"body":""},"bell-ring":{"body":""},"bell-ring-outline":{"body":""},"bell-sleep":{"body":""},"bell-sleep-outline":{"body":""},"beta":{"body":""},"betamax":{"body":""},"biathlon":{"body":""},"bicycle":{"body":""},"bicycle-basket":{"body":""},"bicycle-cargo":{"body":""},"bicycle-electric":{"body":""},"bicycle-penny-farthing":{"body":""},"bike":{"body":""},"bike-fast":{"body":""},"billboard":{"body":""},"billiards":{"body":""},"billiards-rack":{"body":""},"binoculars":{"body":""},"bio":{"body":""},"biohazard":{"body":""},"bird":{"body":""},"bitbucket":{"body":""},"bitcoin":{"body":""},"black-mesa":{"body":""},"blackberry":{"body":"","hidden":true},"blender":{"body":""},"blender-outline":{"body":""},"blender-software":{"body":""},"blinds":{"body":""},"blinds-horizontal":{"body":""},"blinds-horizontal-closed":{"body":""},"blinds-open":{"body":""},"blinds-vertical":{"body":""},"blinds-vertical-closed":{"body":""},"block-helper":{"body":""},"blogger":{"body":"","hidden":true},"blood-bag":{"body":""},"bluetooth":{"body":""},"bluetooth-audio":{"body":""},"bluetooth-connect":{"body":""},"bluetooth-off":{"body":""},"bluetooth-settings":{"body":""},"bluetooth-transfer":{"body":""},"blur":{"body":""},"blur-linear":{"body":""},"blur-off":{"body":""},"blur-radial":{"body":""},"bolt":{"body":""},"bomb":{"body":""},"bomb-off":{"body":""},"bone":{"body":""},"bone-off":{"body":""},"book":{"body":""},"book-account":{"body":""},"book-account-outline":{"body":""},"book-alert":{"body":""},"book-alert-outline":{"body":""},"book-alphabet":{"body":""},"book-arrow-down":{"body":""},"book-arrow-down-outline":{"body":""},"book-arrow-left":{"body":""},"book-arrow-left-outline":{"body":""},"book-arrow-right":{"body":""},"book-arrow-right-outline":{"body":""},"book-arrow-up":{"body":""},"book-arrow-up-outline":{"body":""},"book-cancel":{"body":""},"book-cancel-outline":{"body":""},"book-check":{"body":""},"book-check-outline":{"body":""},"book-clock":{"body":""},"book-clock-outline":{"body":""},"book-cog":{"body":""},"book-cog-outline":{"body":""},"book-cross":{"body":""},"book-edit":{"body":""},"book-edit-outline":{"body":""},"book-education":{"body":""},"book-education-outline":{"body":""},"book-heart":{"body":""},"book-heart-outline":{"body":""},"book-information-variant":{"body":""},"book-lock":{"body":""},"book-lock-open":{"body":""},"book-lock-open-outline":{"body":""},"book-lock-outline":{"body":""},"book-marker":{"body":""},"book-marker-outline":{"body":""},"book-minus":{"body":""},"book-minus-multiple":{"body":""},"book-minus-multiple-outline":{"body":""},"book-minus-outline":{"body":""},"book-multiple":{"body":""},"book-multiple-minus":{"body":"","hidden":true},"book-multiple-outline":{"body":""},"book-multiple-plus":{"body":"","hidden":true},"book-multiple-remove":{"body":"","hidden":true},"book-multiple-variant":{"body":"","hidden":true},"book-music":{"body":""},"book-music-outline":{"body":""},"book-off":{"body":""},"book-off-outline":{"body":""},"book-open":{"body":""},"book-open-blank-variant":{"body":""},"book-open-outline":{"body":""},"book-open-page-variant":{"body":""},"book-open-page-variant-outline":{"body":""},"book-open-variant":{"body":""},"book-outline":{"body":""},"book-play":{"body":""},"book-play-outline":{"body":""},"book-plus":{"body":""},"book-plus-multiple":{"body":""},"book-plus-multiple-outline":{"body":""},"book-plus-outline":{"body":""},"book-refresh":{"body":""},"book-refresh-outline":{"body":""},"book-remove":{"body":""},"book-remove-multiple":{"body":""},"book-remove-multiple-outline":{"body":""},"book-remove-outline":{"body":""},"book-search":{"body":""},"book-search-outline":{"body":""},"book-settings":{"body":""},"book-settings-outline":{"body":""},"book-sync":{"body":""},"book-sync-outline":{"body":""},"book-variant":{"body":""},"book-variant-multiple":{"body":"","hidden":true},"bookmark":{"body":""},"bookmark-box":{"body":""},"bookmark-box-multiple":{"body":""},"bookmark-box-multiple-outline":{"body":""},"bookmark-box-outline":{"body":""},"bookmark-check":{"body":""},"bookmark-check-outline":{"body":""},"bookmark-minus":{"body":""},"bookmark-minus-outline":{"body":""},"bookmark-multiple":{"body":""},"bookmark-multiple-outline":{"body":""},"bookmark-music":{"body":""},"bookmark-music-outline":{"body":""},"bookmark-off":{"body":""},"bookmark-off-outline":{"body":""},"bookmark-outline":{"body":""},"bookmark-plus":{"body":""},"bookmark-plus-outline":{"body":""},"bookmark-remove":{"body":""},"bookmark-remove-outline":{"body":""},"bookshelf":{"body":""},"boom-gate":{"body":""},"boom-gate-alert":{"body":""},"boom-gate-alert-outline":{"body":""},"boom-gate-arrow-down":{"body":""},"boom-gate-arrow-down-outline":{"body":""},"boom-gate-arrow-up":{"body":""},"boom-gate-arrow-up-outline":{"body":""},"boom-gate-outline":{"body":""},"boom-gate-up":{"body":""},"boom-gate-up-outline":{"body":""},"boombox":{"body":""},"boomerang":{"body":""},"bootstrap":{"body":""},"border-all":{"body":""},"border-all-variant":{"body":""},"border-bottom":{"body":""},"border-bottom-variant":{"body":""},"border-color":{"body":""},"border-horizontal":{"body":""},"border-inside":{"body":""},"border-left":{"body":""},"border-left-variant":{"body":""},"border-none":{"body":""},"border-none-variant":{"body":""},"border-outside":{"body":""},"border-radius":{"body":""},"border-right":{"body":""},"border-right-variant":{"body":""},"border-style":{"body":""},"border-top":{"body":""},"border-top-variant":{"body":""},"border-vertical":{"body":""},"bottle-soda":{"body":""},"bottle-soda-classic":{"body":""},"bottle-soda-classic-outline":{"body":""},"bottle-soda-outline":{"body":""},"bottle-tonic":{"body":""},"bottle-tonic-outline":{"body":""},"bottle-tonic-plus":{"body":""},"bottle-tonic-plus-outline":{"body":""},"bottle-tonic-skull":{"body":""},"bottle-tonic-skull-outline":{"body":""},"bottle-wine":{"body":""},"bottle-wine-outline":{"body":""},"bow-arrow":{"body":""},"bow-tie":{"body":""},"bowl":{"body":""},"bowl-mix":{"body":""},"bowl-mix-outline":{"body":""},"bowl-outline":{"body":""},"bowling":{"body":""},"box":{"body":""},"box-cutter":{"body":""},"box-cutter-off":{"body":""},"box-download":{"body":"","hidden":true},"box-shadow":{"body":""},"box-upload":{"body":"","hidden":true},"boxing-glove":{"body":""},"boxing-gloves":{"body":"","hidden":true},"braille":{"body":""},"brain":{"body":""},"bread-slice":{"body":""},"bread-slice-outline":{"body":""},"bridge":{"body":""},"briefcase":{"body":""},"briefcase-account":{"body":""},"briefcase-account-outline":{"body":""},"briefcase-arrow-left-right":{"body":""},"briefcase-arrow-left-right-outline":{"body":""},"briefcase-arrow-up-down":{"body":""},"briefcase-arrow-up-down-outline":{"body":""},"briefcase-check":{"body":""},"briefcase-check-outline":{"body":""},"briefcase-clock":{"body":""},"briefcase-clock-outline":{"body":""},"briefcase-download":{"body":""},"briefcase-download-outline":{"body":""},"briefcase-edit":{"body":""},"briefcase-edit-outline":{"body":""},"briefcase-eye":{"body":""},"briefcase-eye-outline":{"body":""},"briefcase-minus":{"body":""},"briefcase-minus-outline":{"body":""},"briefcase-off":{"body":""},"briefcase-off-outline":{"body":""},"briefcase-outline":{"body":""},"briefcase-plus":{"body":""},"briefcase-plus-outline":{"body":""},"briefcase-remove":{"body":""},"briefcase-remove-outline":{"body":""},"briefcase-search":{"body":""},"briefcase-search-outline":{"body":""},"briefcase-upload":{"body":""},"briefcase-upload-outline":{"body":""},"briefcase-variant":{"body":""},"briefcase-variant-off":{"body":""},"briefcase-variant-off-outline":{"body":""},"briefcase-variant-outline":{"body":""},"brightness":{"body":"","hidden":true},"brightness-1":{"body":""},"brightness-2":{"body":""},"brightness-3":{"body":""},"brightness-4":{"body":""},"brightness-5":{"body":""},"brightness-6":{"body":""},"brightness-7":{"body":""},"brightness-auto":{"body":""},"brightness-percent":{"body":""},"broadcast":{"body":""},"broadcast-off":{"body":""},"broom":{"body":""},"brush":{"body":""},"brush-off":{"body":""},"brush-outline":{"body":""},"brush-variant":{"body":""},"bucket":{"body":""},"bucket-outline":{"body":""},"buffer":{"body":"","hidden":true},"buffet":{"body":""},"bug":{"body":""},"bug-check":{"body":""},"bug-check-outline":{"body":""},"bug-outline":{"body":""},"bug-pause":{"body":""},"bug-pause-outline":{"body":""},"bug-play":{"body":""},"bug-play-outline":{"body":""},"bug-stop":{"body":""},"bug-stop-outline":{"body":""},"bugle":{"body":""},"bulkhead-light":{"body":""},"bulldozer":{"body":""},"bullet":{"body":""},"bulletin-board":{"body":""},"bullhorn":{"body":""},"bullhorn-outline":{"body":""},"bullhorn-variant":{"body":""},"bullhorn-variant-outline":{"body":""},"bullseye":{"body":""},"bullseye-arrow":{"body":""},"bulma":{"body":""},"bunk-bed":{"body":""},"bunk-bed-outline":{"body":""},"bus":{"body":""},"bus-alert":{"body":""},"bus-articulated-end":{"body":""},"bus-articulated-front":{"body":""},"bus-clock":{"body":""},"bus-double-decker":{"body":""},"bus-electric":{"body":""},"bus-marker":{"body":""},"bus-multiple":{"body":""},"bus-school":{"body":""},"bus-side":{"body":""},"bus-stop":{"body":""},"bus-stop-covered":{"body":""},"bus-stop-uncovered":{"body":""},"butterfly":{"body":""},"butterfly-outline":{"body":""},"button-cursor":{"body":""},"button-pointer":{"body":""},"cabin-a-frame":{"body":""},"cable-data":{"body":""},"cached":{"body":""},"cactus":{"body":""},"cake":{"body":""},"cake-layered":{"body":""},"cake-variant":{"body":""},"cake-variant-outline":{"body":""},"calculator":{"body":""},"calculator-off":{"body":"","hidden":true},"calculator-variant":{"body":""},"calculator-variant-outline":{"body":""},"calendar":{"body":""},"calendar-account":{"body":""},"calendar-account-outline":{"body":""},"calendar-alert":{"body":""},"calendar-alert-outline":{"body":""},"calendar-arrow-left":{"body":""},"calendar-arrow-right":{"body":""},"calendar-badge":{"body":""},"calendar-badge-outline":{"body":""},"calendar-blank":{"body":""},"calendar-blank-multiple":{"body":""},"calendar-blank-outline":{"body":""},"calendar-check":{"body":""},"calendar-check-outline":{"body":""},"calendar-clock":{"body":""},"calendar-clock-outline":{"body":""},"calendar-collapse-horizontal":{"body":""},"calendar-collapse-horizontal-outline":{"body":""},"calendar-cursor":{"body":""},"calendar-cursor-outline":{"body":""},"calendar-edit":{"body":""},"calendar-edit-outline":{"body":""},"calendar-end":{"body":""},"calendar-end-outline":{"body":""},"calendar-expand-horizontal":{"body":""},"calendar-expand-horizontal-outline":{"body":""},"calendar-export":{"body":""},"calendar-export-outline":{"body":""},"calendar-filter":{"body":""},"calendar-filter-outline":{"body":""},"calendar-heart":{"body":""},"calendar-heart-outline":{"body":""},"calendar-import":{"body":""},"calendar-import-outline":{"body":""},"calendar-lock":{"body":""},"calendar-lock-open":{"body":""},"calendar-lock-open-outline":{"body":""},"calendar-lock-outline":{"body":""},"calendar-minus":{"body":""},"calendar-minus-outline":{"body":""},"calendar-month":{"body":""},"calendar-month-outline":{"body":""},"calendar-multiple":{"body":""},"calendar-multiple-check":{"body":""},"calendar-multiselect":{"body":""},"calendar-multiselect-outline":{"body":""},"calendar-outline":{"body":""},"calendar-plus":{"body":""},"calendar-plus-outline":{"body":""},"calendar-question":{"body":""},"calendar-question-outline":{"body":""},"calendar-range":{"body":""},"calendar-range-outline":{"body":""},"calendar-refresh":{"body":""},"calendar-refresh-outline":{"body":""},"calendar-remove":{"body":""},"calendar-remove-outline":{"body":""},"calendar-search":{"body":""},"calendar-search-outline":{"body":""},"calendar-select":{"body":"","hidden":true},"calendar-star":{"body":""},"calendar-star-four-points":{"body":""},"calendar-star-outline":{"body":""},"calendar-start":{"body":""},"calendar-start-outline":{"body":""},"calendar-sync":{"body":""},"calendar-sync-outline":{"body":""},"calendar-text":{"body":""},"calendar-text-outline":{"body":""},"calendar-today":{"body":""},"calendar-today-outline":{"body":""},"calendar-week":{"body":""},"calendar-week-begin":{"body":""},"calendar-week-begin-outline":{"body":""},"calendar-week-end":{"body":"","hidden":true},"calendar-week-end-outline":{"body":"","hidden":true},"calendar-week-outline":{"body":""},"calendar-weekend":{"body":""},"calendar-weekend-outline":{"body":""},"call-made":{"body":""},"call-merge":{"body":""},"call-missed":{"body":""},"call-received":{"body":""},"call-split":{"body":""},"camcorder":{"body":""},"camcorder-off":{"body":""},"camera":{"body":""},"camera-account":{"body":""},"camera-burst":{"body":""},"camera-control":{"body":""},"camera-document":{"body":""},"camera-document-off":{"body":""},"camera-enhance":{"body":""},"camera-enhance-outline":{"body":""},"camera-flip":{"body":""},"camera-flip-outline":{"body":""},"camera-focus":{"body":"","hidden":true},"camera-front":{"body":""},"camera-front-variant":{"body":""},"camera-gopro":{"body":""},"camera-image":{"body":""},"camera-iris":{"body":""},"camera-lock":{"body":""},"camera-lock-open":{"body":""},"camera-lock-open-outline":{"body":""},"camera-lock-outline":{"body":""},"camera-marker":{"body":""},"camera-marker-outline":{"body":""},"camera-metering-center":{"body":""},"camera-metering-matrix":{"body":""},"camera-metering-partial":{"body":""},"camera-metering-spot":{"body":""},"camera-off":{"body":""},"camera-off-outline":{"body":""},"camera-outline":{"body":""},"camera-party-mode":{"body":""},"camera-plus":{"body":""},"camera-plus-outline":{"body":""},"camera-rear":{"body":""},"camera-rear-variant":{"body":""},"camera-retake":{"body":""},"camera-retake-outline":{"body":""},"camera-switch":{"body":""},"camera-switch-outline":{"body":""},"camera-timer":{"body":""},"camera-wireless":{"body":""},"camera-wireless-outline":{"body":""},"campfire":{"body":""},"cancel":{"body":""},"candelabra":{"body":""},"candelabra-fire":{"body":""},"candle":{"body":""},"candy":{"body":""},"candy-off":{"body":""},"candy-off-outline":{"body":""},"candy-outline":{"body":""},"candycane":{"body":""},"cannabis":{"body":""},"cannabis-off":{"body":""},"caps-lock":{"body":""},"car":{"body":""},"car-2-plus":{"body":""},"car-3-plus":{"body":""},"car-arrow-left":{"body":""},"car-arrow-right":{"body":""},"car-back":{"body":""},"car-battery":{"body":""},"car-brake-abs":{"body":""},"car-brake-alert":{"body":""},"car-brake-fluid-level":{"body":""},"car-brake-hold":{"body":""},"car-brake-low-pressure":{"body":""},"car-brake-parking":{"body":""},"car-brake-retarder":{"body":""},"car-brake-temperature":{"body":""},"car-brake-worn-linings":{"body":""},"car-child-seat":{"body":""},"car-clock":{"body":""},"car-clutch":{"body":""},"car-cog":{"body":""},"car-connected":{"body":""},"car-convertable":{"body":"","hidden":true},"car-convertible":{"body":""},"car-coolant-level":{"body":""},"car-cruise-control":{"body":""},"car-defrost-front":{"body":""},"car-defrost-rear":{"body":""},"car-door":{"body":""},"car-door-lock":{"body":""},"car-electric":{"body":""},"car-electric-outline":{"body":""},"car-emergency":{"body":""},"car-esp":{"body":""},"car-estate":{"body":""},"car-hatchback":{"body":""},"car-info":{"body":""},"car-key":{"body":""},"car-lifted-pickup":{"body":""},"car-light-alert":{"body":""},"car-light-dimmed":{"body":""},"car-light-fog":{"body":""},"car-light-high":{"body":""},"car-limousine":{"body":""},"car-multiple":{"body":""},"car-off":{"body":""},"car-outline":{"body":""},"car-parking-lights":{"body":""},"car-pickup":{"body":""},"car-search":{"body":""},"car-search-outline":{"body":""},"car-seat":{"body":""},"car-seat-cooler":{"body":""},"car-seat-heater":{"body":""},"car-select":{"body":""},"car-settings":{"body":""},"car-shift-pattern":{"body":""},"car-side":{"body":""},"car-speed-limiter":{"body":""},"car-sports":{"body":""},"car-tire-alert":{"body":""},"car-traction-control":{"body":""},"car-turbocharger":{"body":""},"car-wash":{"body":""},"car-windshield":{"body":""},"car-windshield-outline":{"body":""},"car-wireless":{"body":""},"car-wrench":{"body":""},"carabiner":{"body":""},"caravan":{"body":""},"card":{"body":""},"card-account-details":{"body":""},"card-account-details-outline":{"body":""},"card-account-details-star":{"body":""},"card-account-details-star-outline":{"body":""},"card-account-mail":{"body":""},"card-account-mail-outline":{"body":""},"card-account-phone":{"body":""},"card-account-phone-outline":{"body":""},"card-bulleted":{"body":""},"card-bulleted-off":{"body":""},"card-bulleted-off-outline":{"body":""},"card-bulleted-outline":{"body":""},"card-bulleted-settings":{"body":""},"card-bulleted-settings-outline":{"body":""},"card-minus":{"body":""},"card-minus-outline":{"body":""},"card-multiple":{"body":""},"card-multiple-outline":{"body":""},"card-off":{"body":""},"card-off-outline":{"body":""},"card-outline":{"body":""},"card-plus":{"body":""},"card-plus-outline":{"body":""},"card-remove":{"body":""},"card-remove-outline":{"body":""},"card-search":{"body":""},"card-search-outline":{"body":""},"card-text":{"body":""},"card-text-outline":{"body":""},"cards":{"body":""},"cards-club":{"body":""},"cards-club-outline":{"body":""},"cards-diamond":{"body":""},"cards-diamond-outline":{"body":""},"cards-heart":{"body":""},"cards-heart-outline":{"body":""},"cards-outline":{"body":""},"cards-playing":{"body":""},"cards-playing-club":{"body":""},"cards-playing-club-multiple":{"body":""},"cards-playing-club-multiple-outline":{"body":""},"cards-playing-club-outline":{"body":""},"cards-playing-diamond":{"body":""},"cards-playing-diamond-multiple":{"body":""},"cards-playing-diamond-multiple-outline":{"body":""},"cards-playing-diamond-outline":{"body":""},"cards-playing-heart":{"body":""},"cards-playing-heart-multiple":{"body":""},"cards-playing-heart-multiple-outline":{"body":""},"cards-playing-heart-outline":{"body":""},"cards-playing-outline":{"body":""},"cards-playing-spade":{"body":""},"cards-playing-spade-multiple":{"body":""},"cards-playing-spade-multiple-outline":{"body":""},"cards-playing-spade-outline":{"body":""},"cards-spade":{"body":""},"cards-spade-outline":{"body":""},"cards-variant":{"body":""},"carrot":{"body":""},"cart":{"body":""},"cart-arrow-down":{"body":""},"cart-arrow-right":{"body":""},"cart-arrow-up":{"body":""},"cart-check":{"body":""},"cart-heart":{"body":""},"cart-minus":{"body":""},"cart-off":{"body":""},"cart-outline":{"body":""},"cart-percent":{"body":""},"cart-plus":{"body":""},"cart-remove":{"body":""},"cart-variant":{"body":""},"case-sensitive-alt":{"body":""},"cash":{"body":""},"cash-100":{"body":""},"cash-check":{"body":""},"cash-clock":{"body":""},"cash-fast":{"body":""},"cash-lock":{"body":""},"cash-lock-open":{"body":""},"cash-marker":{"body":""},"cash-minus":{"body":""},"cash-multiple":{"body":""},"cash-plus":{"body":""},"cash-refund":{"body":""},"cash-register":{"body":""},"cash-remove":{"body":""},"cash-sync":{"body":""},"cash-usd":{"body":"","hidden":true},"cash-usd-outline":{"body":"","hidden":true},"cassette":{"body":""},"cast":{"body":""},"cast-audio":{"body":""},"cast-audio-variant":{"body":""},"cast-connected":{"body":""},"cast-education":{"body":""},"cast-off":{"body":""},"cast-variant":{"body":""},"castle":{"body":""},"cat":{"body":""},"cctv":{"body":""},"cctv-off":{"body":""},"ceiling-fan":{"body":""},"ceiling-fan-light":{"body":""},"ceiling-light":{"body":""},"ceiling-light-multiple":{"body":""},"ceiling-light-multiple-outline":{"body":""},"ceiling-light-outline":{"body":""},"cellphone":{"body":""},"cellphone-android":{"body":"","hidden":true},"cellphone-arrow-down":{"body":""},"cellphone-arrow-down-variant":{"body":""},"cellphone-basic":{"body":""},"cellphone-charging":{"body":""},"cellphone-check":{"body":""},"cellphone-cog":{"body":""},"cellphone-dock":{"body":""},"cellphone-information":{"body":""},"cellphone-iphone":{"body":"","hidden":true},"cellphone-key":{"body":""},"cellphone-link":{"body":""},"cellphone-link-off":{"body":""},"cellphone-lock":{"body":""},"cellphone-marker":{"body":""},"cellphone-message":{"body":""},"cellphone-message-off":{"body":""},"cellphone-nfc":{"body":""},"cellphone-nfc-off":{"body":""},"cellphone-off":{"body":""},"cellphone-play":{"body":""},"cellphone-remove":{"body":""},"cellphone-screenshot":{"body":""},"cellphone-settings":{"body":""},"cellphone-sound":{"body":""},"cellphone-text":{"body":""},"cellphone-wireless":{"body":""},"centos":{"body":""},"certificate":{"body":""},"certificate-outline":{"body":""},"chair-rolling":{"body":""},"chair-school":{"body":""},"chandelier":{"body":""},"charity":{"body":""},"chart-arc":{"body":""},"chart-areaspline":{"body":""},"chart-areaspline-variant":{"body":""},"chart-bar":{"body":""},"chart-bar-stacked":{"body":""},"chart-bell-curve":{"body":""},"chart-bell-curve-cumulative":{"body":""},"chart-box":{"body":""},"chart-box-outline":{"body":""},"chart-box-plus-outline":{"body":""},"chart-bubble":{"body":""},"chart-donut":{"body":""},"chart-donut-variant":{"body":""},"chart-gantt":{"body":""},"chart-histogram":{"body":""},"chart-line":{"body":""},"chart-line-stacked":{"body":""},"chart-line-variant":{"body":""},"chart-multiline":{"body":""},"chart-multiple":{"body":""},"chart-pie":{"body":""},"chart-pie-outline":{"body":""},"chart-ppf":{"body":""},"chart-sankey":{"body":""},"chart-sankey-variant":{"body":""},"chart-scatter-plot":{"body":""},"chart-scatter-plot-hexbin":{"body":""},"chart-timeline":{"body":""},"chart-timeline-variant":{"body":""},"chart-timeline-variant-shimmer":{"body":""},"chart-tree":{"body":""},"chart-waterfall":{"body":""},"chat":{"body":""},"chat-alert":{"body":""},"chat-alert-outline":{"body":""},"chat-minus":{"body":""},"chat-minus-outline":{"body":""},"chat-outline":{"body":""},"chat-plus":{"body":""},"chat-plus-outline":{"body":""},"chat-processing":{"body":""},"chat-processing-outline":{"body":""},"chat-question":{"body":""},"chat-question-outline":{"body":""},"chat-remove":{"body":""},"chat-remove-outline":{"body":""},"chat-sleep":{"body":""},"chat-sleep-outline":{"body":""},"check":{"body":""},"check-all":{"body":""},"check-bold":{"body":""},"check-bookmark":{"body":"","hidden":true},"check-circle":{"body":""},"check-circle-outline":{"body":""},"check-decagram":{"body":""},"check-decagram-outline":{"body":""},"check-network":{"body":""},"check-network-outline":{"body":""},"check-outline":{"body":""},"check-underline":{"body":""},"check-underline-circle":{"body":""},"check-underline-circle-outline":{"body":""},"checkbook":{"body":""},"checkbook-arrow-left":{"body":""},"checkbook-arrow-right":{"body":""},"checkbox-blank":{"body":""},"checkbox-blank-badge":{"body":""},"checkbox-blank-badge-outline":{"body":""},"checkbox-blank-circle":{"body":""},"checkbox-blank-circle-outline":{"body":""},"checkbox-blank-off":{"body":""},"checkbox-blank-off-outline":{"body":""},"checkbox-blank-outline":{"body":""},"checkbox-intermediate":{"body":""},"checkbox-intermediate-variant":{"body":""},"checkbox-marked":{"body":""},"checkbox-marked-circle":{"body":""},"checkbox-marked-circle-outline":{"body":""},"checkbox-marked-circle-plus-outline":{"body":""},"checkbox-marked-outline":{"body":""},"checkbox-multiple-blank":{"body":""},"checkbox-multiple-blank-circle":{"body":""},"checkbox-multiple-blank-circle-outline":{"body":""},"checkbox-multiple-blank-outline":{"body":""},"checkbox-multiple-marked":{"body":""},"checkbox-multiple-marked-circle":{"body":""},"checkbox-multiple-marked-circle-outline":{"body":""},"checkbox-multiple-marked-outline":{"body":""},"checkbox-multiple-outline":{"body":""},"checkbox-outline":{"body":""},"checkerboard":{"body":""},"checkerboard-minus":{"body":""},"checkerboard-plus":{"body":""},"checkerboard-remove":{"body":""},"cheese":{"body":""},"cheese-off":{"body":""},"chef-hat":{"body":""},"chemical-weapon":{"body":""},"chess-bishop":{"body":""},"chess-king":{"body":""},"chess-knight":{"body":""},"chess-pawn":{"body":""},"chess-queen":{"body":""},"chess-rook":{"body":""},"chevron-double-down":{"body":""},"chevron-double-left":{"body":""},"chevron-double-right":{"body":""},"chevron-double-up":{"body":""},"chevron-down":{"body":""},"chevron-down-box":{"body":""},"chevron-down-box-outline":{"body":""},"chevron-down-circle":{"body":""},"chevron-down-circle-outline":{"body":""},"chevron-left":{"body":""},"chevron-left-box":{"body":""},"chevron-left-box-outline":{"body":""},"chevron-left-circle":{"body":""},"chevron-left-circle-outline":{"body":""},"chevron-right":{"body":""},"chevron-right-box":{"body":""},"chevron-right-box-outline":{"body":""},"chevron-right-circle":{"body":""},"chevron-right-circle-outline":{"body":""},"chevron-triple-down":{"body":""},"chevron-triple-left":{"body":""},"chevron-triple-right":{"body":""},"chevron-triple-up":{"body":""},"chevron-up":{"body":""},"chevron-up-box":{"body":""},"chevron-up-box-outline":{"body":""},"chevron-up-circle":{"body":""},"chevron-up-circle-outline":{"body":""},"chili-alert":{"body":""},"chili-alert-outline":{"body":""},"chili-hot":{"body":""},"chili-hot-outline":{"body":""},"chili-medium":{"body":""},"chili-medium-outline":{"body":""},"chili-mild":{"body":""},"chili-mild-outline":{"body":""},"chili-off":{"body":""},"chili-off-outline":{"body":""},"chip":{"body":""},"church":{"body":""},"church-outline":{"body":""},"cigar":{"body":""},"cigar-off":{"body":""},"circle":{"body":""},"circle-box":{"body":""},"circle-box-outline":{"body":""},"circle-double":{"body":""},"circle-edit-outline":{"body":""},"circle-expand":{"body":""},"circle-half":{"body":""},"circle-half-full":{"body":""},"circle-medium":{"body":""},"circle-multiple":{"body":""},"circle-multiple-outline":{"body":""},"circle-off-outline":{"body":""},"circle-opacity":{"body":""},"circle-outline":{"body":""},"circle-slice-1":{"body":""},"circle-slice-2":{"body":""},"circle-slice-3":{"body":""},"circle-slice-4":{"body":""},"circle-slice-5":{"body":""},"circle-slice-6":{"body":""},"circle-slice-7":{"body":""},"circle-slice-8":{"body":""},"circle-small":{"body":""},"circular-saw":{"body":""},"cisco-webex":{"body":"","hidden":true},"city":{"body":""},"city-variant":{"body":""},"city-variant-outline":{"body":""},"clipboard":{"body":""},"clipboard-account":{"body":""},"clipboard-account-outline":{"body":""},"clipboard-alert":{"body":""},"clipboard-alert-outline":{"body":""},"clipboard-arrow-down":{"body":""},"clipboard-arrow-down-outline":{"body":""},"clipboard-arrow-left":{"body":""},"clipboard-arrow-left-outline":{"body":""},"clipboard-arrow-right":{"body":""},"clipboard-arrow-right-outline":{"body":""},"clipboard-arrow-up":{"body":""},"clipboard-arrow-up-outline":{"body":""},"clipboard-check":{"body":""},"clipboard-check-multiple":{"body":""},"clipboard-check-multiple-outline":{"body":""},"clipboard-check-outline":{"body":""},"clipboard-clock":{"body":""},"clipboard-clock-outline":{"body":""},"clipboard-edit":{"body":""},"clipboard-edit-outline":{"body":""},"clipboard-file":{"body":""},"clipboard-file-outline":{"body":""},"clipboard-flow":{"body":""},"clipboard-flow-outline":{"body":""},"clipboard-list":{"body":""},"clipboard-list-outline":{"body":""},"clipboard-minus":{"body":""},"clipboard-minus-outline":{"body":""},"clipboard-multiple":{"body":""},"clipboard-multiple-outline":{"body":""},"clipboard-off":{"body":""},"clipboard-off-outline":{"body":""},"clipboard-outline":{"body":""},"clipboard-play":{"body":""},"clipboard-play-multiple":{"body":""},"clipboard-play-multiple-outline":{"body":""},"clipboard-play-outline":{"body":""},"clipboard-plus":{"body":""},"clipboard-plus-outline":{"body":""},"clipboard-pulse":{"body":""},"clipboard-pulse-outline":{"body":""},"clipboard-remove":{"body":""},"clipboard-remove-outline":{"body":""},"clipboard-search":{"body":""},"clipboard-search-outline":{"body":""},"clipboard-text":{"body":""},"clipboard-text-clock":{"body":""},"clipboard-text-clock-outline":{"body":""},"clipboard-text-multiple":{"body":""},"clipboard-text-multiple-outline":{"body":""},"clipboard-text-off":{"body":""},"clipboard-text-off-outline":{"body":""},"clipboard-text-outline":{"body":""},"clipboard-text-play":{"body":""},"clipboard-text-play-outline":{"body":""},"clipboard-text-search":{"body":""},"clipboard-text-search-outline":{"body":""},"clippy":{"body":""},"clock":{"body":""},"clock-alert":{"body":""},"clock-alert-outline":{"body":""},"clock-check":{"body":""},"clock-check-outline":{"body":""},"clock-digital":{"body":""},"clock-edit":{"body":""},"clock-edit-outline":{"body":""},"clock-end":{"body":""},"clock-fast":{"body":""},"clock-in":{"body":""},"clock-minus":{"body":""},"clock-minus-outline":{"body":""},"clock-out":{"body":""},"clock-outline":{"body":""},"clock-plus":{"body":""},"clock-plus-outline":{"body":""},"clock-remove":{"body":""},"clock-remove-outline":{"body":""},"clock-start":{"body":""},"clock-time-eight":{"body":""},"clock-time-eight-outline":{"body":""},"clock-time-eleven":{"body":""},"clock-time-eleven-outline":{"body":""},"clock-time-five":{"body":""},"clock-time-five-outline":{"body":""},"clock-time-four":{"body":""},"clock-time-four-outline":{"body":""},"clock-time-nine":{"body":""},"clock-time-nine-outline":{"body":""},"clock-time-one":{"body":""},"clock-time-one-outline":{"body":""},"clock-time-seven":{"body":""},"clock-time-seven-outline":{"body":""},"clock-time-six":{"body":""},"clock-time-six-outline":{"body":""},"clock-time-ten":{"body":""},"clock-time-ten-outline":{"body":""},"clock-time-three":{"body":""},"clock-time-three-outline":{"body":""},"clock-time-twelve":{"body":""},"clock-time-twelve-outline":{"body":""},"clock-time-two":{"body":""},"clock-time-two-outline":{"body":""},"close":{"body":""},"close-box":{"body":""},"close-box-multiple":{"body":""},"close-box-multiple-outline":{"body":""},"close-box-outline":{"body":""},"close-circle":{"body":""},"close-circle-multiple":{"body":""},"close-circle-multiple-outline":{"body":""},"close-circle-outline":{"body":""},"close-network":{"body":""},"close-network-outline":{"body":""},"close-octagon":{"body":""},"close-octagon-outline":{"body":""},"close-outline":{"body":""},"close-thick":{"body":""},"closed-caption":{"body":""},"closed-caption-outline":{"body":""},"cloud":{"body":""},"cloud-alert":{"body":""},"cloud-alert-outline":{"body":""},"cloud-arrow-down":{"body":""},"cloud-arrow-down-outline":{"body":""},"cloud-arrow-left":{"body":""},"cloud-arrow-left-outline":{"body":""},"cloud-arrow-right":{"body":""},"cloud-arrow-right-outline":{"body":""},"cloud-arrow-up":{"body":""},"cloud-arrow-up-outline":{"body":""},"cloud-braces":{"body":""},"cloud-cancel":{"body":""},"cloud-cancel-outline":{"body":""},"cloud-check":{"body":""},"cloud-check-outline":{"body":""},"cloud-check-variant":{"body":""},"cloud-check-variant-outline":{"body":""},"cloud-circle":{"body":""},"cloud-circle-outline":{"body":""},"cloud-clock":{"body":""},"cloud-clock-outline":{"body":""},"cloud-cog":{"body":""},"cloud-cog-outline":{"body":""},"cloud-download":{"body":""},"cloud-download-outline":{"body":""},"cloud-lock":{"body":""},"cloud-lock-open":{"body":""},"cloud-lock-open-outline":{"body":""},"cloud-lock-outline":{"body":""},"cloud-minus":{"body":""},"cloud-minus-outline":{"body":""},"cloud-off":{"body":""},"cloud-off-outline":{"body":""},"cloud-outline":{"body":""},"cloud-percent":{"body":""},"cloud-percent-outline":{"body":""},"cloud-plus":{"body":""},"cloud-plus-outline":{"body":""},"cloud-print":{"body":""},"cloud-print-outline":{"body":""},"cloud-question":{"body":""},"cloud-question-outline":{"body":""},"cloud-refresh":{"body":""},"cloud-refresh-outline":{"body":""},"cloud-refresh-variant":{"body":""},"cloud-refresh-variant-outline":{"body":""},"cloud-remove":{"body":""},"cloud-remove-outline":{"body":""},"cloud-search":{"body":""},"cloud-search-outline":{"body":""},"cloud-sync":{"body":""},"cloud-sync-outline":{"body":""},"cloud-tags":{"body":""},"cloud-upload":{"body":""},"cloud-upload-outline":{"body":""},"clouds":{"body":""},"clover":{"body":""},"coach-lamp":{"body":""},"coach-lamp-variant":{"body":""},"coat-rack":{"body":""},"code-array":{"body":""},"code-braces":{"body":""},"code-braces-box":{"body":""},"code-brackets":{"body":""},"code-equal":{"body":""},"code-greater-than":{"body":""},"code-greater-than-or-equal":{"body":""},"code-json":{"body":""},"code-less-than":{"body":""},"code-less-than-or-equal":{"body":""},"code-not-equal":{"body":""},"code-not-equal-variant":{"body":""},"code-parentheses":{"body":""},"code-parentheses-box":{"body":""},"code-string":{"body":""},"code-tags":{"body":""},"code-tags-check":{"body":""},"codepen":{"body":""},"coffee":{"body":""},"coffee-maker":{"body":""},"coffee-maker-check":{"body":""},"coffee-maker-check-outline":{"body":""},"coffee-maker-outline":{"body":""},"coffee-off":{"body":""},"coffee-off-outline":{"body":""},"coffee-outline":{"body":""},"coffee-to-go":{"body":""},"coffee-to-go-outline":{"body":""},"coffin":{"body":""},"cog":{"body":""},"cog-box":{"body":""},"cog-clockwise":{"body":""},"cog-counterclockwise":{"body":""},"cog-off":{"body":""},"cog-off-outline":{"body":""},"cog-outline":{"body":""},"cog-pause":{"body":""},"cog-pause-outline":{"body":""},"cog-play":{"body":""},"cog-play-outline":{"body":""},"cog-refresh":{"body":""},"cog-refresh-outline":{"body":""},"cog-stop":{"body":""},"cog-stop-outline":{"body":""},"cog-sync":{"body":""},"cog-sync-outline":{"body":""},"cog-transfer":{"body":""},"cog-transfer-outline":{"body":""},"cogs":{"body":""},"collage":{"body":""},"collapse-all":{"body":""},"collapse-all-outline":{"body":""},"color-helper":{"body":""},"comma":{"body":""},"comma-box":{"body":""},"comma-box-outline":{"body":""},"comma-circle":{"body":""},"comma-circle-outline":{"body":""},"comment":{"body":""},"comment-account":{"body":""},"comment-account-outline":{"body":""},"comment-alert":{"body":""},"comment-alert-outline":{"body":""},"comment-arrow-left":{"body":""},"comment-arrow-left-outline":{"body":""},"comment-arrow-right":{"body":""},"comment-arrow-right-outline":{"body":""},"comment-bookmark":{"body":""},"comment-bookmark-outline":{"body":""},"comment-check":{"body":""},"comment-check-outline":{"body":""},"comment-edit":{"body":""},"comment-edit-outline":{"body":""},"comment-eye":{"body":""},"comment-eye-outline":{"body":""},"comment-flash":{"body":""},"comment-flash-outline":{"body":""},"comment-minus":{"body":""},"comment-minus-outline":{"body":""},"comment-multiple":{"body":""},"comment-multiple-outline":{"body":""},"comment-off":{"body":""},"comment-off-outline":{"body":""},"comment-outline":{"body":""},"comment-plus":{"body":""},"comment-plus-outline":{"body":""},"comment-processing":{"body":""},"comment-processing-outline":{"body":""},"comment-question":{"body":""},"comment-question-outline":{"body":""},"comment-quote":{"body":""},"comment-quote-outline":{"body":""},"comment-remove":{"body":""},"comment-remove-outline":{"body":""},"comment-search":{"body":""},"comment-search-outline":{"body":""},"comment-text":{"body":""},"comment-text-multiple":{"body":""},"comment-text-multiple-outline":{"body":""},"comment-text-outline":{"body":""},"compare":{"body":""},"compare-horizontal":{"body":""},"compare-remove":{"body":""},"compare-vertical":{"body":""},"compass":{"body":""},"compass-off":{"body":""},"compass-off-outline":{"body":""},"compass-outline":{"body":""},"compass-rose":{"body":""},"compost":{"body":""},"concourse-ci":{"body":"","hidden":true},"cone":{"body":""},"cone-off":{"body":""},"connection":{"body":""},"console":{"body":""},"console-line":{"body":""},"console-network":{"body":""},"console-network-outline":{"body":""},"consolidate":{"body":""},"contactless-payment":{"body":""},"contactless-payment-circle":{"body":""},"contactless-payment-circle-outline":{"body":""},"contacts":{"body":""},"contacts-outline":{"body":""},"contain":{"body":""},"contain-end":{"body":""},"contain-start":{"body":""},"content-copy":{"body":""},"content-cut":{"body":""},"content-duplicate":{"body":""},"content-paste":{"body":""},"content-save":{"body":""},"content-save-alert":{"body":""},"content-save-alert-outline":{"body":""},"content-save-all":{"body":""},"content-save-all-outline":{"body":""},"content-save-check":{"body":""},"content-save-check-outline":{"body":""},"content-save-cog":{"body":""},"content-save-cog-outline":{"body":""},"content-save-edit":{"body":""},"content-save-edit-outline":{"body":""},"content-save-minus":{"body":""},"content-save-minus-outline":{"body":""},"content-save-move":{"body":""},"content-save-move-outline":{"body":""},"content-save-off":{"body":""},"content-save-off-outline":{"body":""},"content-save-outline":{"body":""},"content-save-plus":{"body":""},"content-save-plus-outline":{"body":""},"content-save-settings":{"body":""},"content-save-settings-outline":{"body":""},"contrast":{"body":""},"contrast-box":{"body":""},"contrast-circle":{"body":""},"controller":{"body":""},"controller-classic":{"body":""},"controller-classic-outline":{"body":""},"controller-off":{"body":""},"controller-xbox":{"body":"","hidden":true},"cookie":{"body":""},"cookie-alert":{"body":""},"cookie-alert-outline":{"body":""},"cookie-check":{"body":""},"cookie-check-outline":{"body":""},"cookie-clock":{"body":""},"cookie-clock-outline":{"body":""},"cookie-cog":{"body":""},"cookie-cog-outline":{"body":""},"cookie-edit":{"body":""},"cookie-edit-outline":{"body":""},"cookie-lock":{"body":""},"cookie-lock-outline":{"body":""},"cookie-minus":{"body":""},"cookie-minus-outline":{"body":""},"cookie-off":{"body":""},"cookie-off-outline":{"body":""},"cookie-outline":{"body":""},"cookie-plus":{"body":""},"cookie-plus-outline":{"body":""},"cookie-refresh":{"body":""},"cookie-refresh-outline":{"body":""},"cookie-remove":{"body":""},"cookie-remove-outline":{"body":""},"cookie-settings":{"body":""},"cookie-settings-outline":{"body":""},"coolant-temperature":{"body":""},"copyleft":{"body":""},"copyright":{"body":""},"cordova":{"body":""},"corn":{"body":""},"corn-off":{"body":""},"cosine-wave":{"body":""},"counter":{"body":""},"countertop":{"body":""},"countertop-outline":{"body":""},"cow":{"body":""},"cow-off":{"body":""},"cpu-32-bit":{"body":""},"cpu-64-bit":{"body":""},"cradle":{"body":""},"cradle-outline":{"body":""},"crane":{"body":""},"creation":{"body":""},"creative-commons":{"body":""},"credit-card":{"body":""},"credit-card-check":{"body":""},"credit-card-check-outline":{"body":""},"credit-card-chip":{"body":""},"credit-card-chip-outline":{"body":""},"credit-card-clock":{"body":""},"credit-card-clock-outline":{"body":""},"credit-card-edit":{"body":""},"credit-card-edit-outline":{"body":""},"credit-card-fast":{"body":""},"credit-card-fast-outline":{"body":""},"credit-card-lock":{"body":""},"credit-card-lock-outline":{"body":""},"credit-card-marker":{"body":""},"credit-card-marker-outline":{"body":""},"credit-card-minus":{"body":""},"credit-card-minus-outline":{"body":""},"credit-card-multiple":{"body":""},"credit-card-multiple-outline":{"body":""},"credit-card-off":{"body":""},"credit-card-off-outline":{"body":""},"credit-card-outline":{"body":""},"credit-card-plus":{"body":""},"credit-card-plus-outline":{"body":""},"credit-card-refresh":{"body":""},"credit-card-refresh-outline":{"body":""},"credit-card-refund":{"body":""},"credit-card-refund-outline":{"body":""},"credit-card-remove":{"body":""},"credit-card-remove-outline":{"body":""},"credit-card-scan":{"body":""},"credit-card-scan-outline":{"body":""},"credit-card-search":{"body":""},"credit-card-search-outline":{"body":""},"credit-card-settings":{"body":""},"credit-card-settings-outline":{"body":""},"credit-card-sync":{"body":""},"credit-card-sync-outline":{"body":""},"credit-card-wireless":{"body":""},"credit-card-wireless-off":{"body":""},"credit-card-wireless-off-outline":{"body":""},"credit-card-wireless-outline":{"body":""},"cricket":{"body":""},"crop":{"body":""},"crop-free":{"body":""},"crop-landscape":{"body":""},"crop-portrait":{"body":""},"crop-rotate":{"body":""},"crop-square":{"body":""},"cross":{"body":""},"cross-bolnisi":{"body":""},"cross-celtic":{"body":""},"cross-outline":{"body":""},"crosshairs":{"body":""},"crosshairs-gps":{"body":""},"crosshairs-off":{"body":""},"crosshairs-question":{"body":""},"crowd":{"body":""},"crown":{"body":""},"crown-circle":{"body":""},"crown-circle-outline":{"body":""},"crown-outline":{"body":""},"cryengine":{"body":""},"crystal-ball":{"body":""},"cube":{"body":""},"cube-off":{"body":""},"cube-off-outline":{"body":""},"cube-outline":{"body":""},"cube-scan":{"body":""},"cube-send":{"body":""},"cube-unfolded":{"body":""},"cup":{"body":""},"cup-off":{"body":""},"cup-off-outline":{"body":""},"cup-outline":{"body":""},"cup-water":{"body":""},"cupboard":{"body":""},"cupboard-outline":{"body":""},"cupcake":{"body":""},"curling":{"body":""},"currency-bdt":{"body":""},"currency-brl":{"body":""},"currency-btc":{"body":""},"currency-chf":{"body":"","hidden":true},"currency-cny":{"body":""},"currency-eth":{"body":""},"currency-eur":{"body":""},"currency-eur-off":{"body":""},"currency-fra":{"body":""},"currency-gbp":{"body":""},"currency-ils":{"body":""},"currency-inr":{"body":""},"currency-jpy":{"body":""},"currency-krw":{"body":""},"currency-kzt":{"body":""},"currency-mnt":{"body":""},"currency-ngn":{"body":""},"currency-php":{"body":""},"currency-rial":{"body":""},"currency-rub":{"body":""},"currency-rupee":{"body":""},"currency-sign":{"body":""},"currency-thb":{"body":""},"currency-try":{"body":""},"currency-twd":{"body":""},"currency-uah":{"body":""},"currency-usd":{"body":""},"currency-usd-circle":{"body":"","hidden":true},"currency-usd-circle-outline":{"body":"","hidden":true},"currency-usd-off":{"body":""},"current-ac":{"body":""},"current-dc":{"body":""},"cursor-default":{"body":""},"cursor-default-click":{"body":""},"cursor-default-click-outline":{"body":""},"cursor-default-gesture":{"body":""},"cursor-default-gesture-outline":{"body":""},"cursor-default-outline":{"body":""},"cursor-move":{"body":""},"cursor-pointer":{"body":""},"cursor-text":{"body":""},"curtains":{"body":""},"curtains-closed":{"body":""},"cylinder":{"body":""},"cylinder-off":{"body":""},"dance-ballroom":{"body":""},"dance-pole":{"body":""},"data":{"body":"","hidden":true},"data-matrix":{"body":""},"data-matrix-edit":{"body":""},"data-matrix-minus":{"body":""},"data-matrix-plus":{"body":""},"data-matrix-remove":{"body":""},"data-matrix-scan":{"body":""},"database":{"body":""},"database-alert":{"body":""},"database-alert-outline":{"body":""},"database-arrow-down":{"body":""},"database-arrow-down-outline":{"body":""},"database-arrow-left":{"body":""},"database-arrow-left-outline":{"body":""},"database-arrow-right":{"body":""},"database-arrow-right-outline":{"body":""},"database-arrow-up":{"body":""},"database-arrow-up-outline":{"body":""},"database-check":{"body":""},"database-check-outline":{"body":""},"database-clock":{"body":""},"database-clock-outline":{"body":""},"database-cog":{"body":""},"database-cog-outline":{"body":""},"database-edit":{"body":""},"database-edit-outline":{"body":""},"database-export":{"body":""},"database-export-outline":{"body":""},"database-eye":{"body":""},"database-eye-off":{"body":""},"database-eye-off-outline":{"body":""},"database-eye-outline":{"body":""},"database-import":{"body":""},"database-import-outline":{"body":""},"database-lock":{"body":""},"database-lock-outline":{"body":""},"database-marker":{"body":""},"database-marker-outline":{"body":""},"database-minus":{"body":""},"database-minus-outline":{"body":""},"database-off":{"body":""},"database-off-outline":{"body":""},"database-outline":{"body":""},"database-plus":{"body":""},"database-plus-outline":{"body":""},"database-refresh":{"body":""},"database-refresh-outline":{"body":""},"database-remove":{"body":""},"database-remove-outline":{"body":""},"database-search":{"body":""},"database-search-outline":{"body":""},"database-settings":{"body":""},"database-settings-outline":{"body":""},"database-sync":{"body":""},"database-sync-outline":{"body":""},"death-star":{"body":""},"death-star-variant":{"body":""},"deathly-hallows":{"body":""},"debian":{"body":""},"debug-step-into":{"body":""},"debug-step-out":{"body":""},"debug-step-over":{"body":""},"decagram":{"body":""},"decagram-outline":{"body":""},"decimal":{"body":""},"decimal-comma":{"body":""},"decimal-comma-decrease":{"body":""},"decimal-comma-increase":{"body":""},"decimal-decrease":{"body":""},"decimal-increase":{"body":""},"delete":{"body":""},"delete-alert":{"body":""},"delete-alert-outline":{"body":""},"delete-circle":{"body":""},"delete-circle-outline":{"body":""},"delete-clock":{"body":""},"delete-clock-outline":{"body":""},"delete-empty":{"body":""},"delete-empty-outline":{"body":""},"delete-forever":{"body":""},"delete-forever-outline":{"body":""},"delete-off":{"body":""},"delete-off-outline":{"body":""},"delete-outline":{"body":""},"delete-restore":{"body":""},"delete-sweep":{"body":""},"delete-sweep-outline":{"body":""},"delete-variant":{"body":""},"delta":{"body":""},"desk":{"body":""},"desk-lamp":{"body":""},"desk-lamp-off":{"body":""},"desk-lamp-on":{"body":""},"deskphone":{"body":""},"desktop-classic":{"body":""},"desktop-mac":{"body":"","hidden":true},"desktop-mac-dashboard":{"body":"","hidden":true},"desktop-tower":{"body":""},"desktop-tower-monitor":{"body":""},"details":{"body":""},"dev-to":{"body":""},"developer-board":{"body":""},"deviantart":{"body":""},"devices":{"body":""},"dharmachakra":{"body":""},"diabetes":{"body":""},"dialpad":{"body":""},"diameter":{"body":""},"diameter-outline":{"body":""},"diameter-variant":{"body":""},"diamond":{"body":""},"diamond-outline":{"body":""},"diamond-stone":{"body":""},"dice":{"body":"","hidden":true},"dice-1":{"body":""},"dice-1-outline":{"body":""},"dice-2":{"body":""},"dice-2-outline":{"body":""},"dice-3":{"body":""},"dice-3-outline":{"body":""},"dice-4":{"body":""},"dice-4-outline":{"body":""},"dice-5":{"body":""},"dice-5-outline":{"body":""},"dice-6":{"body":""},"dice-6-outline":{"body":""},"dice-d10":{"body":""},"dice-d10-outline":{"body":""},"dice-d12":{"body":""},"dice-d12-outline":{"body":""},"dice-d20":{"body":""},"dice-d20-outline":{"body":""},"dice-d4":{"body":""},"dice-d4-outline":{"body":""},"dice-d6":{"body":""},"dice-d6-outline":{"body":""},"dice-d8":{"body":""},"dice-d8-outline":{"body":""},"dice-multiple":{"body":""},"dice-multiple-outline":{"body":""},"digital-ocean":{"body":""},"dip-switch":{"body":""},"directions":{"body":""},"directions-fork":{"body":""},"disc":{"body":""},"disc-alert":{"body":""},"disc-player":{"body":""},"discord":{"body":"","hidden":true},"dishwasher":{"body":""},"dishwasher-alert":{"body":""},"dishwasher-off":{"body":""},"disk":{"body":"","hidden":true},"disk-alert":{"body":"","hidden":true},"disk-player":{"body":"","hidden":true},"disqus":{"body":""},"disqus-outline":{"body":"","hidden":true},"distribute-horizontal-center":{"body":""},"distribute-horizontal-left":{"body":""},"distribute-horizontal-right":{"body":""},"distribute-vertical-bottom":{"body":""},"distribute-vertical-center":{"body":""},"distribute-vertical-top":{"body":""},"diversify":{"body":""},"diving":{"body":""},"diving-flippers":{"body":""},"diving-helmet":{"body":""},"diving-scuba":{"body":""},"diving-scuba-flag":{"body":""},"diving-scuba-mask":{"body":""},"diving-scuba-tank":{"body":""},"diving-scuba-tank-multiple":{"body":""},"diving-snorkel":{"body":""},"division":{"body":""},"division-box":{"body":""},"dlna":{"body":""},"dna":{"body":""},"dns":{"body":""},"dns-outline":{"body":""},"do-not-disturb":{"body":"","hidden":true},"dock-bottom":{"body":""},"dock-left":{"body":""},"dock-right":{"body":""},"dock-top":{"body":""},"dock-window":{"body":""},"docker":{"body":""},"doctor":{"body":""},"document":{"body":"","hidden":true},"dog":{"body":""},"dog-service":{"body":""},"dog-side":{"body":""},"dog-side-off":{"body":""},"dolby":{"body":""},"dolly":{"body":""},"dolphin":{"body":""},"domain":{"body":""},"domain-off":{"body":""},"domain-plus":{"body":""},"domain-remove":{"body":""},"dome-light":{"body":""},"domino-mask":{"body":""},"donkey":{"body":""},"door":{"body":""},"door-closed":{"body":""},"door-closed-lock":{"body":""},"door-open":{"body":""},"door-sliding":{"body":""},"door-sliding-lock":{"body":""},"door-sliding-open":{"body":""},"doorbell":{"body":""},"doorbell-video":{"body":""},"dot-net":{"body":""},"dots-circle":{"body":""},"dots-grid":{"body":""},"dots-hexagon":{"body":""},"dots-horizontal":{"body":""},"dots-horizontal-circle":{"body":""},"dots-horizontal-circle-outline":{"body":""},"dots-square":{"body":""},"dots-triangle":{"body":""},"dots-vertical":{"body":""},"dots-vertical-circle":{"body":""},"dots-vertical-circle-outline":{"body":""},"douban":{"body":"","hidden":true},"download":{"body":""},"download-box":{"body":""},"download-box-outline":{"body":""},"download-circle":{"body":""},"download-circle-outline":{"body":""},"download-lock":{"body":""},"download-lock-outline":{"body":""},"download-multiple":{"body":""},"download-network":{"body":""},"download-network-outline":{"body":""},"download-off":{"body":""},"download-off-outline":{"body":""},"download-outline":{"body":""},"drag":{"body":""},"drag-horizontal":{"body":""},"drag-horizontal-variant":{"body":""},"drag-variant":{"body":""},"drag-vertical":{"body":""},"drag-vertical-variant":{"body":""},"drama-masks":{"body":""},"draw":{"body":""},"draw-pen":{"body":""},"drawing":{"body":""},"drawing-box":{"body":""},"dresser":{"body":""},"dresser-outline":{"body":""},"dribbble":{"body":"","hidden":true},"dribbble-box":{"body":"","hidden":true},"drone":{"body":""},"dropbox":{"body":""},"drupal":{"body":""},"duck":{"body":""},"dumbbell":{"body":""},"dump-truck":{"body":""},"ear-hearing":{"body":""},"ear-hearing-loop":{"body":""},"ear-hearing-off":{"body":""},"earbuds":{"body":""},"earbuds-off":{"body":""},"earbuds-off-outline":{"body":""},"earbuds-outline":{"body":""},"earth":{"body":""},"earth-arrow-right":{"body":""},"earth-box":{"body":""},"earth-box-minus":{"body":""},"earth-box-off":{"body":""},"earth-box-plus":{"body":""},"earth-box-remove":{"body":""},"earth-minus":{"body":""},"earth-off":{"body":""},"earth-plus":{"body":""},"earth-remove":{"body":""},"ebay":{"body":"","hidden":true},"egg":{"body":""},"egg-easter":{"body":""},"egg-fried":{"body":""},"egg-off":{"body":""},"egg-off-outline":{"body":""},"egg-outline":{"body":""},"eiffel-tower":{"body":""},"eight-track":{"body":""},"eject":{"body":""},"eject-circle":{"body":""},"eject-circle-outline":{"body":""},"eject-outline":{"body":""},"electric-switch":{"body":""},"electric-switch-closed":{"body":""},"electron-framework":{"body":""},"elephant":{"body":""},"elevation-decline":{"body":""},"elevation-rise":{"body":""},"elevator":{"body":""},"elevator-down":{"body":""},"elevator-passenger":{"body":""},"elevator-passenger-off":{"body":""},"elevator-passenger-off-outline":{"body":""},"elevator-passenger-outline":{"body":""},"elevator-up":{"body":""},"ellipse":{"body":""},"ellipse-outline":{"body":""},"email":{"body":""},"email-alert":{"body":""},"email-alert-outline":{"body":""},"email-arrow-left":{"body":""},"email-arrow-left-outline":{"body":""},"email-arrow-right":{"body":""},"email-arrow-right-outline":{"body":""},"email-box":{"body":""},"email-check":{"body":""},"email-check-outline":{"body":""},"email-edit":{"body":""},"email-edit-outline":{"body":""},"email-fast":{"body":""},"email-fast-outline":{"body":""},"email-lock":{"body":""},"email-lock-outline":{"body":""},"email-mark-as-unread":{"body":""},"email-minus":{"body":""},"email-minus-outline":{"body":""},"email-multiple":{"body":""},"email-multiple-outline":{"body":""},"email-newsletter":{"body":""},"email-off":{"body":""},"email-off-outline":{"body":""},"email-open":{"body":""},"email-open-multiple":{"body":""},"email-open-multiple-outline":{"body":""},"email-open-outline":{"body":""},"email-outline":{"body":""},"email-plus":{"body":""},"email-plus-outline":{"body":""},"email-remove":{"body":""},"email-remove-outline":{"body":""},"email-seal":{"body":""},"email-seal-outline":{"body":""},"email-search":{"body":""},"email-search-outline":{"body":""},"email-sync":{"body":""},"email-sync-outline":{"body":""},"email-variant":{"body":""},"ember":{"body":""},"emby":{"body":""},"emoticon":{"body":""},"emoticon-angry":{"body":""},"emoticon-angry-outline":{"body":""},"emoticon-confused":{"body":""},"emoticon-confused-outline":{"body":""},"emoticon-cool":{"body":""},"emoticon-cool-outline":{"body":""},"emoticon-cry":{"body":""},"emoticon-cry-outline":{"body":""},"emoticon-dead":{"body":""},"emoticon-dead-outline":{"body":""},"emoticon-devil":{"body":""},"emoticon-devil-outline":{"body":""},"emoticon-excited":{"body":""},"emoticon-excited-outline":{"body":""},"emoticon-frown":{"body":""},"emoticon-frown-outline":{"body":""},"emoticon-happy":{"body":""},"emoticon-happy-outline":{"body":""},"emoticon-kiss":{"body":""},"emoticon-kiss-outline":{"body":""},"emoticon-lol":{"body":""},"emoticon-lol-outline":{"body":""},"emoticon-neutral":{"body":""},"emoticon-neutral-outline":{"body":""},"emoticon-outline":{"body":""},"emoticon-poop":{"body":""},"emoticon-poop-outline":{"body":""},"emoticon-sad":{"body":""},"emoticon-sad-outline":{"body":""},"emoticon-sick":{"body":""},"emoticon-sick-outline":{"body":""},"emoticon-tongue":{"body":""},"emoticon-tongue-outline":{"body":""},"emoticon-wink":{"body":""},"emoticon-wink-outline":{"body":""},"engine":{"body":""},"engine-off":{"body":""},"engine-off-outline":{"body":""},"engine-outline":{"body":""},"epsilon":{"body":""},"equal":{"body":""},"equal-box":{"body":""},"equalizer":{"body":""},"equalizer-outline":{"body":""},"eraser":{"body":""},"eraser-variant":{"body":""},"escalator":{"body":""},"escalator-box":{"body":""},"escalator-down":{"body":""},"escalator-up":{"body":""},"eslint":{"body":""},"et":{"body":""},"ethereum":{"body":""},"ethernet":{"body":""},"ethernet-cable":{"body":""},"ethernet-cable-off":{"body":""},"etsy":{"body":"","hidden":true},"ev-plug-ccs1":{"body":""},"ev-plug-ccs2":{"body":""},"ev-plug-chademo":{"body":""},"ev-plug-tesla":{"body":""},"ev-plug-type1":{"body":""},"ev-plug-type2":{"body":""},"ev-station":{"body":""},"eventbrite":{"body":"","hidden":true},"evernote":{"body":""},"excavator":{"body":""},"exclamation":{"body":""},"exclamation-thick":{"body":""},"exit-run":{"body":""},"exit-to-app":{"body":""},"expand-all":{"body":""},"expand-all-outline":{"body":""},"expansion-card":{"body":""},"expansion-card-variant":{"body":""},"exponent":{"body":""},"exponent-box":{"body":""},"export":{"body":""},"export-variant":{"body":""},"eye":{"body":""},"eye-arrow-left":{"body":""},"eye-arrow-left-outline":{"body":""},"eye-arrow-right":{"body":""},"eye-arrow-right-outline":{"body":""},"eye-check":{"body":""},"eye-check-outline":{"body":""},"eye-circle":{"body":""},"eye-circle-outline":{"body":""},"eye-lock":{"body":""},"eye-lock-open":{"body":""},"eye-lock-open-outline":{"body":""},"eye-lock-outline":{"body":""},"eye-minus":{"body":""},"eye-minus-outline":{"body":""},"eye-off":{"body":""},"eye-off-outline":{"body":""},"eye-outline":{"body":""},"eye-plus":{"body":""},"eye-plus-outline":{"body":""},"eye-refresh":{"body":""},"eye-refresh-outline":{"body":""},"eye-remove":{"body":""},"eye-remove-outline":{"body":""},"eye-settings":{"body":""},"eye-settings-outline":{"body":""},"eyedropper":{"body":""},"eyedropper-minus":{"body":""},"eyedropper-off":{"body":""},"eyedropper-plus":{"body":""},"eyedropper-remove":{"body":""},"eyedropper-variant":{"body":""},"face-agent":{"body":""},"face-man":{"body":""},"face-man-outline":{"body":""},"face-man-profile":{"body":""},"face-man-shimmer":{"body":""},"face-man-shimmer-outline":{"body":""},"face-mask":{"body":""},"face-mask-outline":{"body":""},"face-recognition":{"body":""},"face-woman":{"body":""},"face-woman-outline":{"body":""},"face-woman-profile":{"body":""},"face-woman-shimmer":{"body":""},"face-woman-shimmer-outline":{"body":""},"facebook":{"body":""},"facebook-box":{"body":"","hidden":true},"facebook-gaming":{"body":""},"facebook-messenger":{"body":""},"facebook-workplace":{"body":""},"factory":{"body":""},"family-tree":{"body":""},"fan":{"body":""},"fan-alert":{"body":""},"fan-auto":{"body":""},"fan-chevron-down":{"body":""},"fan-chevron-up":{"body":""},"fan-clock":{"body":""},"fan-minus":{"body":""},"fan-off":{"body":""},"fan-plus":{"body":""},"fan-remove":{"body":""},"fan-speed-1":{"body":""},"fan-speed-2":{"body":""},"fan-speed-3":{"body":""},"fast-forward":{"body":""},"fast-forward-10":{"body":""},"fast-forward-15":{"body":""},"fast-forward-30":{"body":""},"fast-forward-45":{"body":""},"fast-forward-5":{"body":""},"fast-forward-60":{"body":""},"fast-forward-outline":{"body":""},"faucet":{"body":""},"faucet-variant":{"body":""},"fax":{"body":""},"feather":{"body":""},"feature-search":{"body":""},"feature-search-outline":{"body":""},"fedora":{"body":""},"fence":{"body":""},"fence-electric":{"body":""},"fencing":{"body":""},"ferris-wheel":{"body":""},"ferry":{"body":""},"file":{"body":""},"file-account":{"body":""},"file-account-outline":{"body":""},"file-alert":{"body":""},"file-alert-outline":{"body":""},"file-arrow-left-right":{"body":""},"file-arrow-left-right-outline":{"body":""},"file-arrow-up-down":{"body":""},"file-arrow-up-down-outline":{"body":""},"file-cabinet":{"body":""},"file-cad":{"body":""},"file-cad-box":{"body":""},"file-cancel":{"body":""},"file-cancel-outline":{"body":""},"file-certificate":{"body":""},"file-certificate-outline":{"body":""},"file-chart":{"body":""},"file-chart-check":{"body":""},"file-chart-check-outline":{"body":""},"file-chart-outline":{"body":""},"file-check":{"body":""},"file-check-outline":{"body":""},"file-clock":{"body":""},"file-clock-outline":{"body":""},"file-cloud":{"body":""},"file-cloud-outline":{"body":""},"file-code":{"body":""},"file-code-outline":{"body":""},"file-cog":{"body":""},"file-cog-outline":{"body":""},"file-compare":{"body":""},"file-delimited":{"body":""},"file-delimited-outline":{"body":""},"file-document":{"body":""},"file-document-alert":{"body":""},"file-document-alert-outline":{"body":""},"file-document-arrow-right":{"body":""},"file-document-arrow-right-outline":{"body":""},"file-document-check":{"body":""},"file-document-check-outline":{"body":""},"file-document-edit":{"body":""},"file-document-edit-outline":{"body":""},"file-document-minus":{"body":""},"file-document-minus-outline":{"body":""},"file-document-multiple":{"body":""},"file-document-multiple-outline":{"body":""},"file-document-outline":{"body":""},"file-document-plus":{"body":""},"file-document-plus-outline":{"body":""},"file-document-remove":{"body":""},"file-document-remove-outline":{"body":""},"file-download":{"body":""},"file-download-outline":{"body":""},"file-edit":{"body":""},"file-edit-outline":{"body":""},"file-excel":{"body":""},"file-excel-box":{"body":""},"file-excel-box-outline":{"body":""},"file-excel-outline":{"body":""},"file-export":{"body":""},"file-export-outline":{"body":""},"file-eye":{"body":""},"file-eye-outline":{"body":""},"file-find":{"body":""},"file-find-outline":{"body":""},"file-gif-box":{"body":""},"file-hidden":{"body":""},"file-image":{"body":""},"file-image-box":{"body":"","hidden":true},"file-image-marker":{"body":""},"file-image-marker-outline":{"body":""},"file-image-minus":{"body":""},"file-image-minus-outline":{"body":""},"file-image-outline":{"body":""},"file-image-plus":{"body":""},"file-image-plus-outline":{"body":""},"file-image-remove":{"body":""},"file-image-remove-outline":{"body":""},"file-import":{"body":""},"file-import-outline":{"body":""},"file-jpg-box":{"body":""},"file-key":{"body":""},"file-key-outline":{"body":""},"file-link":{"body":""},"file-link-outline":{"body":""},"file-lock":{"body":""},"file-lock-open":{"body":""},"file-lock-open-outline":{"body":""},"file-lock-outline":{"body":""},"file-marker":{"body":""},"file-marker-outline":{"body":""},"file-minus":{"body":""},"file-minus-outline":{"body":""},"file-move":{"body":""},"file-move-outline":{"body":""},"file-multiple":{"body":""},"file-multiple-outline":{"body":""},"file-music":{"body":""},"file-music-outline":{"body":""},"file-outline":{"body":""},"file-pdf":{"body":"","hidden":true},"file-pdf-box":{"body":""},"file-pdf-box-outline":{"body":"","hidden":true},"file-pdf-outline":{"body":"","hidden":true},"file-percent":{"body":""},"file-percent-outline":{"body":""},"file-phone":{"body":""},"file-phone-outline":{"body":""},"file-plus":{"body":""},"file-plus-outline":{"body":""},"file-png-box":{"body":""},"file-powerpoint":{"body":""},"file-powerpoint-box":{"body":""},"file-powerpoint-box-outline":{"body":""},"file-powerpoint-outline":{"body":""},"file-presentation-box":{"body":""},"file-question":{"body":""},"file-question-outline":{"body":""},"file-refresh":{"body":""},"file-refresh-outline":{"body":""},"file-remove":{"body":""},"file-remove-outline":{"body":""},"file-replace":{"body":""},"file-replace-outline":{"body":""},"file-restore":{"body":""},"file-restore-outline":{"body":""},"file-rotate-left":{"body":""},"file-rotate-left-outline":{"body":""},"file-rotate-right":{"body":""},"file-rotate-right-outline":{"body":""},"file-search":{"body":""},"file-search-outline":{"body":""},"file-send":{"body":""},"file-send-outline":{"body":""},"file-settings":{"body":""},"file-settings-outline":{"body":""},"file-sign":{"body":""},"file-star":{"body":""},"file-star-outline":{"body":""},"file-swap":{"body":""},"file-swap-outline":{"body":""},"file-sync":{"body":""},"file-sync-outline":{"body":""},"file-table":{"body":""},"file-table-box":{"body":""},"file-table-box-multiple":{"body":""},"file-table-box-multiple-outline":{"body":""},"file-table-box-outline":{"body":""},"file-table-outline":{"body":""},"file-tree":{"body":""},"file-tree-outline":{"body":""},"file-undo":{"body":""},"file-undo-outline":{"body":""},"file-upload":{"body":""},"file-upload-outline":{"body":""},"file-video":{"body":""},"file-video-outline":{"body":""},"file-word":{"body":""},"file-word-box":{"body":""},"file-word-box-outline":{"body":""},"file-word-outline":{"body":""},"file-xml":{"body":"","hidden":true},"file-xml-box":{"body":""},"fill":{"body":"","hidden":true},"film":{"body":""},"filmstrip":{"body":""},"filmstrip-box":{"body":""},"filmstrip-box-multiple":{"body":""},"filmstrip-off":{"body":""},"filter":{"body":""},"filter-check":{"body":""},"filter-check-outline":{"body":""},"filter-cog":{"body":""},"filter-cog-outline":{"body":""},"filter-menu":{"body":""},"filter-menu-outline":{"body":""},"filter-minus":{"body":""},"filter-minus-outline":{"body":""},"filter-multiple":{"body":""},"filter-multiple-outline":{"body":""},"filter-off":{"body":""},"filter-off-outline":{"body":""},"filter-outline":{"body":""},"filter-plus":{"body":""},"filter-plus-outline":{"body":""},"filter-remove":{"body":""},"filter-remove-outline":{"body":""},"filter-settings":{"body":""},"filter-settings-outline":{"body":""},"filter-variant":{"body":""},"filter-variant-minus":{"body":""},"filter-variant-plus":{"body":""},"filter-variant-remove":{"body":""},"finance":{"body":""},"find-replace":{"body":""},"fingerprint":{"body":""},"fingerprint-off":{"body":""},"fire":{"body":""},"fire-alert":{"body":""},"fire-circle":{"body":""},"fire-extinguisher":{"body":""},"fire-hydrant":{"body":""},"fire-hydrant-alert":{"body":""},"fire-hydrant-off":{"body":""},"fire-off":{"body":""},"fire-truck":{"body":""},"firebase":{"body":""},"firefox":{"body":""},"fireplace":{"body":""},"fireplace-off":{"body":""},"firewire":{"body":""},"firework":{"body":""},"firework-off":{"body":""},"fish":{"body":""},"fish-off":{"body":""},"fishbowl":{"body":""},"fishbowl-outline":{"body":""},"fit-to-page":{"body":""},"fit-to-page-outline":{"body":""},"fit-to-screen":{"body":""},"fit-to-screen-outline":{"body":""},"flag":{"body":""},"flag-checkered":{"body":""},"flag-checkered-variant":{"body":"","hidden":true},"flag-minus":{"body":""},"flag-minus-outline":{"body":""},"flag-off":{"body":""},"flag-off-outline":{"body":""},"flag-outline":{"body":""},"flag-outline-variant":{"body":"","hidden":true},"flag-plus":{"body":""},"flag-plus-outline":{"body":""},"flag-remove":{"body":""},"flag-remove-outline":{"body":""},"flag-triangle":{"body":""},"flag-variant":{"body":""},"flag-variant-minus":{"body":""},"flag-variant-minus-outline":{"body":""},"flag-variant-off":{"body":""},"flag-variant-off-outline":{"body":""},"flag-variant-outline":{"body":""},"flag-variant-plus":{"body":""},"flag-variant-plus-outline":{"body":""},"flag-variant-remove":{"body":""},"flag-variant-remove-outline":{"body":""},"flare":{"body":""},"flash":{"body":""},"flash-alert":{"body":""},"flash-alert-outline":{"body":""},"flash-auto":{"body":""},"flash-off":{"body":""},"flash-off-outline":{"body":""},"flash-outline":{"body":""},"flash-red-eye":{"body":""},"flash-triangle":{"body":""},"flash-triangle-outline":{"body":""},"flashlight":{"body":""},"flashlight-off":{"body":""},"flask":{"body":""},"flask-empty":{"body":""},"flask-empty-minus":{"body":""},"flask-empty-minus-outline":{"body":""},"flask-empty-off":{"body":""},"flask-empty-off-outline":{"body":""},"flask-empty-outline":{"body":""},"flask-empty-plus":{"body":""},"flask-empty-plus-outline":{"body":""},"flask-empty-remove":{"body":""},"flask-empty-remove-outline":{"body":""},"flask-minus":{"body":""},"flask-minus-outline":{"body":""},"flask-off":{"body":""},"flask-off-outline":{"body":""},"flask-outline":{"body":""},"flask-plus":{"body":""},"flask-plus-outline":{"body":""},"flask-remove":{"body":""},"flask-remove-outline":{"body":""},"flask-round-bottom":{"body":""},"flask-round-bottom-empty":{"body":""},"flask-round-bottom-empty-outline":{"body":""},"flask-round-bottom-outline":{"body":""},"flattr":{"body":"","hidden":true},"fleur-de-lis":{"body":""},"flickr":{"body":"","hidden":true},"flickr-after":{"body":"","hidden":true},"flickr-before":{"body":"","hidden":true},"flip-horizontal":{"body":""},"flip-to-back":{"body":""},"flip-to-front":{"body":""},"flip-vertical":{"body":""},"floor-1":{"body":"","hidden":true},"floor-2":{"body":"","hidden":true},"floor-3":{"body":"","hidden":true},"floor-a":{"body":"","hidden":true},"floor-b":{"body":"","hidden":true},"floor-g":{"body":"","hidden":true},"floor-l":{"body":"","hidden":true},"floor-lamp":{"body":""},"floor-lamp-dual":{"body":""},"floor-lamp-dual-outline":{"body":""},"floor-lamp-outline":{"body":""},"floor-lamp-torchiere":{"body":""},"floor-lamp-torchiere-outline":{"body":""},"floor-lamp-torchiere-variant":{"body":""},"floor-lamp-torchiere-variant-outline":{"body":""},"floor-plan":{"body":""},"floppy":{"body":""},"floppy-variant":{"body":""},"flower":{"body":""},"flower-outline":{"body":""},"flower-pollen":{"body":""},"flower-pollen-outline":{"body":""},"flower-poppy":{"body":""},"flower-tulip":{"body":""},"flower-tulip-outline":{"body":""},"focus-auto":{"body":""},"focus-field":{"body":""},"focus-field-horizontal":{"body":""},"focus-field-vertical":{"body":""},"folder":{"body":""},"folder-account":{"body":""},"folder-account-outline":{"body":""},"folder-alert":{"body":""},"folder-alert-outline":{"body":""},"folder-arrow-down":{"body":""},"folder-arrow-down-outline":{"body":""},"folder-arrow-left":{"body":""},"folder-arrow-left-outline":{"body":""},"folder-arrow-left-right":{"body":""},"folder-arrow-left-right-outline":{"body":""},"folder-arrow-right":{"body":""},"folder-arrow-right-outline":{"body":""},"folder-arrow-up":{"body":""},"folder-arrow-up-down":{"body":""},"folder-arrow-up-down-outline":{"body":""},"folder-arrow-up-outline":{"body":""},"folder-cancel":{"body":""},"folder-cancel-outline":{"body":""},"folder-check":{"body":""},"folder-check-outline":{"body":""},"folder-clock":{"body":""},"folder-clock-outline":{"body":""},"folder-cog":{"body":""},"folder-cog-outline":{"body":""},"folder-download":{"body":""},"folder-download-outline":{"body":""},"folder-edit":{"body":""},"folder-edit-outline":{"body":""},"folder-eye":{"body":""},"folder-eye-outline":{"body":""},"folder-file":{"body":""},"folder-file-outline":{"body":""},"folder-google-drive":{"body":""},"folder-heart":{"body":""},"folder-heart-outline":{"body":""},"folder-hidden":{"body":""},"folder-home":{"body":""},"folder-home-outline":{"body":""},"folder-image":{"body":""},"folder-information":{"body":""},"folder-information-outline":{"body":""},"folder-key":{"body":""},"folder-key-network":{"body":""},"folder-key-network-outline":{"body":""},"folder-key-outline":{"body":""},"folder-lock":{"body":""},"folder-lock-open":{"body":""},"folder-lock-open-outline":{"body":""},"folder-lock-outline":{"body":""},"folder-marker":{"body":""},"folder-marker-outline":{"body":""},"folder-minus":{"body":""},"folder-minus-outline":{"body":""},"folder-move":{"body":""},"folder-move-outline":{"body":""},"folder-multiple":{"body":""},"folder-multiple-image":{"body":""},"folder-multiple-outline":{"body":""},"folder-multiple-plus":{"body":""},"folder-multiple-plus-outline":{"body":""},"folder-music":{"body":""},"folder-music-outline":{"body":""},"folder-network":{"body":""},"folder-network-outline":{"body":""},"folder-off":{"body":""},"folder-off-outline":{"body":""},"folder-open":{"body":""},"folder-open-outline":{"body":""},"folder-outline":{"body":""},"folder-outline-lock":{"body":"","hidden":true},"folder-play":{"body":""},"folder-play-outline":{"body":""},"folder-plus":{"body":""},"folder-plus-outline":{"body":""},"folder-pound":{"body":""},"folder-pound-outline":{"body":""},"folder-question":{"body":""},"folder-question-outline":{"body":""},"folder-refresh":{"body":""},"folder-refresh-outline":{"body":""},"folder-remove":{"body":""},"folder-remove-outline":{"body":""},"folder-search":{"body":""},"folder-search-outline":{"body":""},"folder-settings":{"body":""},"folder-settings-outline":{"body":""},"folder-star":{"body":""},"folder-star-multiple":{"body":""},"folder-star-multiple-outline":{"body":""},"folder-star-outline":{"body":""},"folder-swap":{"body":""},"folder-swap-outline":{"body":""},"folder-sync":{"body":""},"folder-sync-outline":{"body":""},"folder-table":{"body":""},"folder-table-outline":{"body":""},"folder-text":{"body":""},"folder-text-outline":{"body":""},"folder-upload":{"body":""},"folder-upload-outline":{"body":""},"folder-wrench":{"body":""},"folder-wrench-outline":{"body":""},"folder-zip":{"body":""},"folder-zip-outline":{"body":""},"font-awesome":{"body":""},"food":{"body":""},"food-apple":{"body":""},"food-apple-outline":{"body":""},"food-croissant":{"body":""},"food-drumstick":{"body":""},"food-drumstick-off":{"body":""},"food-drumstick-off-outline":{"body":""},"food-drumstick-outline":{"body":""},"food-fork-drink":{"body":""},"food-halal":{"body":""},"food-hot-dog":{"body":""},"food-kosher":{"body":""},"food-off":{"body":""},"food-off-outline":{"body":""},"food-outline":{"body":""},"food-steak":{"body":""},"food-steak-off":{"body":""},"food-takeout-box":{"body":""},"food-takeout-box-outline":{"body":""},"food-turkey":{"body":""},"food-variant":{"body":""},"food-variant-off":{"body":""},"foot-print":{"body":""},"football":{"body":""},"football-australian":{"body":""},"football-helmet":{"body":""},"footer":{"body":"","hidden":true},"forest":{"body":""},"forklift":{"body":""},"form-dropdown":{"body":""},"form-select":{"body":""},"form-textarea":{"body":""},"form-textbox":{"body":""},"form-textbox-lock":{"body":""},"form-textbox-password":{"body":""},"format-align-bottom":{"body":""},"format-align-center":{"body":""},"format-align-justify":{"body":""},"format-align-left":{"body":""},"format-align-middle":{"body":""},"format-align-right":{"body":""},"format-align-top":{"body":""},"format-annotation-minus":{"body":""},"format-annotation-plus":{"body":""},"format-bold":{"body":""},"format-clear":{"body":""},"format-color":{"body":"","hidden":true},"format-color-fill":{"body":""},"format-color-highlight":{"body":""},"format-color-marker-cancel":{"body":""},"format-color-text":{"body":""},"format-columns":{"body":""},"format-float-center":{"body":""},"format-float-left":{"body":""},"format-float-none":{"body":""},"format-float-right":{"body":""},"format-font":{"body":""},"format-font-size-decrease":{"body":""},"format-font-size-increase":{"body":""},"format-header-1":{"body":""},"format-header-2":{"body":""},"format-header-3":{"body":""},"format-header-4":{"body":""},"format-header-5":{"body":""},"format-header-6":{"body":""},"format-header-decrease":{"body":""},"format-header-down":{"body":"","hidden":true},"format-header-equal":{"body":""},"format-header-increase":{"body":""},"format-header-pound":{"body":""},"format-header-up":{"body":"","hidden":true},"format-horizontal-align-center":{"body":""},"format-horizontal-align-left":{"body":""},"format-horizontal-align-right":{"body":""},"format-indent-decrease":{"body":""},"format-indent-increase":{"body":""},"format-italic":{"body":""},"format-letter-case":{"body":""},"format-letter-case-lower":{"body":""},"format-letter-case-upper":{"body":""},"format-letter-ends-with":{"body":""},"format-letter-matches":{"body":""},"format-letter-spacing":{"body":""},"format-letter-spacing-variant":{"body":""},"format-letter-starts-with":{"body":""},"format-line-height":{"body":""},"format-line-spacing":{"body":""},"format-line-style":{"body":""},"format-line-weight":{"body":""},"format-list-bulleted":{"body":""},"format-list-bulleted-square":{"body":""},"format-list-bulleted-triangle":{"body":""},"format-list-bulleted-type":{"body":""},"format-list-checkbox":{"body":""},"format-list-checks":{"body":""},"format-list-group":{"body":""},"format-list-group-plus":{"body":""},"format-list-numbered":{"body":""},"format-list-numbered-rtl":{"body":""},"format-list-text":{"body":""},"format-list-triangle":{"body":"","hidden":true},"format-overline":{"body":""},"format-page-break":{"body":""},"format-page-split":{"body":""},"format-paint":{"body":""},"format-paragraph":{"body":""},"format-paragraph-spacing":{"body":""},"format-pilcrow":{"body":""},"format-pilcrow-arrow-left":{"body":""},"format-pilcrow-arrow-right":{"body":""},"format-quote-close":{"body":""},"format-quote-close-outline":{"body":""},"format-quote-open":{"body":""},"format-quote-open-outline":{"body":""},"format-rotate-90":{"body":""},"format-section":{"body":""},"format-size":{"body":""},"format-strikethrough":{"body":""},"format-strikethrough-variant":{"body":""},"format-subscript":{"body":""},"format-superscript":{"body":""},"format-text":{"body":""},"format-text-rotation-angle-down":{"body":""},"format-text-rotation-angle-up":{"body":""},"format-text-rotation-down":{"body":""},"format-text-rotation-down-vertical":{"body":""},"format-text-rotation-none":{"body":""},"format-text-rotation-up":{"body":""},"format-text-rotation-vertical":{"body":""},"format-text-variant":{"body":""},"format-text-variant-outline":{"body":""},"format-text-wrapping-clip":{"body":""},"format-text-wrapping-overflow":{"body":""},"format-text-wrapping-wrap":{"body":""},"format-textbox":{"body":""},"format-title":{"body":""},"format-underline":{"body":""},"format-underline-wavy":{"body":""},"format-vertical-align-bottom":{"body":""},"format-vertical-align-center":{"body":""},"format-vertical-align-top":{"body":""},"format-wrap-inline":{"body":""},"format-wrap-square":{"body":""},"format-wrap-tight":{"body":""},"format-wrap-top-bottom":{"body":""},"forum":{"body":""},"forum-minus":{"body":""},"forum-minus-outline":{"body":""},"forum-outline":{"body":""},"forum-plus":{"body":""},"forum-plus-outline":{"body":""},"forum-remove":{"body":""},"forum-remove-outline":{"body":""},"forward":{"body":""},"forwardburger":{"body":""},"fountain":{"body":""},"fountain-pen":{"body":""},"fountain-pen-tip":{"body":""},"foursquare":{"body":"","hidden":true},"fraction-one-half":{"body":""},"freebsd":{"body":""},"french-fries":{"body":""},"frequently-asked-questions":{"body":""},"fridge":{"body":""},"fridge-alert":{"body":""},"fridge-alert-outline":{"body":""},"fridge-bottom":{"body":""},"fridge-industrial":{"body":""},"fridge-industrial-alert":{"body":""},"fridge-industrial-alert-outline":{"body":""},"fridge-industrial-off":{"body":""},"fridge-industrial-off-outline":{"body":""},"fridge-industrial-outline":{"body":""},"fridge-off":{"body":""},"fridge-off-outline":{"body":""},"fridge-outline":{"body":""},"fridge-top":{"body":""},"fridge-variant":{"body":""},"fridge-variant-alert":{"body":""},"fridge-variant-alert-outline":{"body":""},"fridge-variant-off":{"body":""},"fridge-variant-off-outline":{"body":""},"fridge-variant-outline":{"body":""},"fruit-cherries":{"body":""},"fruit-cherries-off":{"body":""},"fruit-citrus":{"body":""},"fruit-citrus-off":{"body":""},"fruit-grapes":{"body":""},"fruit-grapes-outline":{"body":""},"fruit-pear":{"body":""},"fruit-pineapple":{"body":""},"fruit-watermelon":{"body":""},"fuel":{"body":""},"fuel-cell":{"body":""},"fullscreen":{"body":""},"fullscreen-exit":{"body":""},"function":{"body":""},"function-variant":{"body":""},"furigana-horizontal":{"body":""},"furigana-vertical":{"body":""},"fuse":{"body":""},"fuse-alert":{"body":""},"fuse-blade":{"body":""},"fuse-off":{"body":""},"gamepad":{"body":""},"gamepad-circle":{"body":""},"gamepad-circle-down":{"body":""},"gamepad-circle-left":{"body":""},"gamepad-circle-outline":{"body":""},"gamepad-circle-right":{"body":""},"gamepad-circle-up":{"body":""},"gamepad-down":{"body":""},"gamepad-left":{"body":""},"gamepad-outline":{"body":""},"gamepad-right":{"body":""},"gamepad-round":{"body":""},"gamepad-round-down":{"body":""},"gamepad-round-left":{"body":""},"gamepad-round-outline":{"body":""},"gamepad-round-right":{"body":""},"gamepad-round-up":{"body":""},"gamepad-square":{"body":""},"gamepad-square-outline":{"body":""},"gamepad-up":{"body":""},"gamepad-variant":{"body":""},"gamepad-variant-outline":{"body":""},"gamma":{"body":""},"gantry-crane":{"body":""},"garage":{"body":""},"garage-alert":{"body":""},"garage-alert-variant":{"body":""},"garage-lock":{"body":""},"garage-open":{"body":""},"garage-open-variant":{"body":""},"garage-variant":{"body":""},"garage-variant-lock":{"body":""},"gas-burner":{"body":""},"gas-cylinder":{"body":""},"gas-station":{"body":""},"gas-station-off":{"body":""},"gas-station-off-outline":{"body":""},"gas-station-outline":{"body":""},"gate":{"body":""},"gate-alert":{"body":""},"gate-and":{"body":""},"gate-arrow-left":{"body":""},"gate-arrow-right":{"body":""},"gate-buffer":{"body":""},"gate-nand":{"body":""},"gate-nor":{"body":""},"gate-not":{"body":""},"gate-open":{"body":""},"gate-or":{"body":""},"gate-xnor":{"body":""},"gate-xor":{"body":""},"gatsby":{"body":""},"gauge":{"body":""},"gauge-empty":{"body":""},"gauge-full":{"body":""},"gauge-low":{"body":""},"gavel":{"body":""},"gender-female":{"body":""},"gender-male":{"body":""},"gender-male-female":{"body":""},"gender-male-female-variant":{"body":""},"gender-non-binary":{"body":""},"gender-transgender":{"body":""},"gentoo":{"body":""},"gesture":{"body":""},"gesture-double-tap":{"body":""},"gesture-pinch":{"body":""},"gesture-spread":{"body":""},"gesture-swipe":{"body":""},"gesture-swipe-down":{"body":""},"gesture-swipe-horizontal":{"body":""},"gesture-swipe-left":{"body":""},"gesture-swipe-right":{"body":""},"gesture-swipe-up":{"body":""},"gesture-swipe-vertical":{"body":""},"gesture-tap":{"body":""},"gesture-tap-box":{"body":""},"gesture-tap-button":{"body":""},"gesture-tap-hold":{"body":""},"gesture-two-double-tap":{"body":""},"gesture-two-tap":{"body":""},"ghost":{"body":""},"ghost-off":{"body":""},"ghost-off-outline":{"body":""},"ghost-outline":{"body":""},"gif":{"body":"","hidden":true},"gift":{"body":""},"gift-off":{"body":""},"gift-off-outline":{"body":""},"gift-open":{"body":""},"gift-open-outline":{"body":""},"gift-outline":{"body":""},"git":{"body":""},"github":{"body":""},"github-box":{"body":"","hidden":true},"github-face":{"body":"","hidden":true},"gitlab":{"body":""},"glass-cocktail":{"body":""},"glass-cocktail-off":{"body":""},"glass-flute":{"body":""},"glass-fragile":{"body":""},"glass-mug":{"body":""},"glass-mug-off":{"body":""},"glass-mug-variant":{"body":""},"glass-mug-variant-off":{"body":""},"glass-pint-outline":{"body":""},"glass-stange":{"body":""},"glass-tulip":{"body":""},"glass-wine":{"body":""},"glassdoor":{"body":"","hidden":true},"glasses":{"body":""},"globe-light":{"body":""},"globe-light-outline":{"body":""},"globe-model":{"body":""},"gmail":{"body":""},"gnome":{"body":""},"go-kart":{"body":""},"go-kart-track":{"body":""},"gog":{"body":""},"gold":{"body":""},"golf":{"body":""},"golf-cart":{"body":""},"golf-tee":{"body":""},"gondola":{"body":""},"goodreads":{"body":""},"google":{"body":""},"google-ads":{"body":""},"google-allo":{"body":"","hidden":true},"google-analytics":{"body":""},"google-assistant":{"body":""},"google-cardboard":{"body":""},"google-chrome":{"body":""},"google-circles":{"body":""},"google-circles-communities":{"body":""},"google-circles-extended":{"body":""},"google-circles-group":{"body":""},"google-classroom":{"body":""},"google-cloud":{"body":""},"google-downasaur":{"body":""},"google-drive":{"body":""},"google-earth":{"body":""},"google-fit":{"body":""},"google-glass":{"body":""},"google-hangouts":{"body":""},"google-home":{"body":"","hidden":true},"google-keep":{"body":""},"google-lens":{"body":""},"google-maps":{"body":""},"google-my-business":{"body":""},"google-nearby":{"body":""},"google-pages":{"body":"","hidden":true},"google-photos":{"body":"","hidden":true},"google-physical-web":{"body":"","hidden":true},"google-play":{"body":""},"google-plus":{"body":""},"google-plus-box":{"body":"","hidden":true},"google-podcast":{"body":""},"google-spreadsheet":{"body":""},"google-street-view":{"body":""},"google-translate":{"body":""},"google-wallet":{"body":"","hidden":true},"gradient-horizontal":{"body":""},"gradient-vertical":{"body":""},"grain":{"body":""},"graph":{"body":""},"graph-outline":{"body":""},"graphql":{"body":""},"grass":{"body":""},"grave-stone":{"body":""},"grease-pencil":{"body":""},"greater-than":{"body":""},"greater-than-or-equal":{"body":""},"greenhouse":{"body":""},"grid":{"body":""},"grid-large":{"body":""},"grid-off":{"body":""},"grill":{"body":""},"grill-outline":{"body":""},"group":{"body":""},"guitar-acoustic":{"body":""},"guitar-electric":{"body":""},"guitar-pick":{"body":""},"guitar-pick-outline":{"body":""},"guy-fawkes-mask":{"body":""},"gymnastics":{"body":""},"hail":{"body":""},"hair-dryer":{"body":""},"hair-dryer-outline":{"body":""},"halloween":{"body":""},"hamburger":{"body":""},"hamburger-check":{"body":""},"hamburger-minus":{"body":""},"hamburger-off":{"body":""},"hamburger-plus":{"body":""},"hamburger-remove":{"body":""},"hammer":{"body":""},"hammer-screwdriver":{"body":""},"hammer-sickle":{"body":""},"hammer-wrench":{"body":""},"hand-back-left":{"body":""},"hand-back-left-off":{"body":""},"hand-back-left-off-outline":{"body":""},"hand-back-left-outline":{"body":""},"hand-back-right":{"body":""},"hand-back-right-off":{"body":""},"hand-back-right-off-outline":{"body":""},"hand-back-right-outline":{"body":""},"hand-clap":{"body":""},"hand-clap-off":{"body":""},"hand-coin":{"body":""},"hand-coin-outline":{"body":""},"hand-cycle":{"body":""},"hand-extended":{"body":""},"hand-extended-outline":{"body":""},"hand-front-left":{"body":""},"hand-front-left-outline":{"body":""},"hand-front-right":{"body":""},"hand-front-right-outline":{"body":""},"hand-heart":{"body":""},"hand-heart-outline":{"body":""},"hand-left":{"body":"","hidden":true},"hand-okay":{"body":""},"hand-peace":{"body":""},"hand-peace-variant":{"body":""},"hand-pointing-down":{"body":""},"hand-pointing-left":{"body":""},"hand-pointing-right":{"body":""},"hand-pointing-up":{"body":""},"hand-right":{"body":"","hidden":true},"hand-saw":{"body":""},"hand-wash":{"body":""},"hand-wash-outline":{"body":""},"hand-water":{"body":""},"hand-wave":{"body":""},"hand-wave-outline":{"body":""},"handball":{"body":""},"handcuffs":{"body":""},"hands-pray":{"body":""},"handshake":{"body":""},"handshake-outline":{"body":""},"hanger":{"body":""},"hangouts":{"body":"","hidden":true},"hard-hat":{"body":""},"harddisk":{"body":""},"harddisk-plus":{"body":""},"harddisk-remove":{"body":""},"hat-fedora":{"body":""},"hazard-lights":{"body":""},"hdmi-port":{"body":""},"hdr":{"body":""},"hdr-off":{"body":""},"head":{"body":""},"head-alert":{"body":""},"head-alert-outline":{"body":""},"head-check":{"body":""},"head-check-outline":{"body":""},"head-cog":{"body":""},"head-cog-outline":{"body":""},"head-dots-horizontal":{"body":""},"head-dots-horizontal-outline":{"body":""},"head-flash":{"body":""},"head-flash-outline":{"body":""},"head-heart":{"body":""},"head-heart-outline":{"body":""},"head-lightbulb":{"body":""},"head-lightbulb-outline":{"body":""},"head-minus":{"body":""},"head-minus-outline":{"body":""},"head-outline":{"body":""},"head-plus":{"body":""},"head-plus-outline":{"body":""},"head-question":{"body":""},"head-question-outline":{"body":""},"head-remove":{"body":""},"head-remove-outline":{"body":""},"head-snowflake":{"body":""},"head-snowflake-outline":{"body":""},"head-sync":{"body":""},"head-sync-outline":{"body":""},"headphones":{"body":""},"headphones-bluetooth":{"body":""},"headphones-box":{"body":""},"headphones-off":{"body":""},"headphones-settings":{"body":""},"headset":{"body":""},"headset-dock":{"body":""},"headset-off":{"body":""},"heart":{"body":""},"heart-box":{"body":""},"heart-box-outline":{"body":""},"heart-broken":{"body":""},"heart-broken-outline":{"body":""},"heart-circle":{"body":""},"heart-circle-outline":{"body":""},"heart-cog":{"body":""},"heart-cog-outline":{"body":""},"heart-flash":{"body":""},"heart-half":{"body":""},"heart-half-full":{"body":""},"heart-half-outline":{"body":""},"heart-minus":{"body":""},"heart-minus-outline":{"body":""},"heart-multiple":{"body":""},"heart-multiple-outline":{"body":""},"heart-off":{"body":""},"heart-off-outline":{"body":""},"heart-outline":{"body":""},"heart-plus":{"body":""},"heart-plus-outline":{"body":""},"heart-pulse":{"body":""},"heart-remove":{"body":""},"heart-remove-outline":{"body":""},"heart-settings":{"body":""},"heart-settings-outline":{"body":""},"heat-pump":{"body":""},"heat-pump-outline":{"body":""},"heat-wave":{"body":""},"heating-coil":{"body":""},"helicopter":{"body":""},"help":{"body":""},"help-box":{"body":""},"help-box-multiple":{"body":""},"help-box-multiple-outline":{"body":""},"help-box-outline":{"body":""},"help-circle":{"body":""},"help-circle-outline":{"body":""},"help-network":{"body":""},"help-network-outline":{"body":""},"help-rhombus":{"body":""},"help-rhombus-outline":{"body":""},"hexadecimal":{"body":""},"hexagon":{"body":""},"hexagon-multiple":{"body":""},"hexagon-multiple-outline":{"body":""},"hexagon-outline":{"body":""},"hexagon-slice-1":{"body":""},"hexagon-slice-2":{"body":""},"hexagon-slice-3":{"body":""},"hexagon-slice-4":{"body":""},"hexagon-slice-5":{"body":""},"hexagon-slice-6":{"body":""},"hexagram":{"body":""},"hexagram-outline":{"body":""},"high-definition":{"body":""},"high-definition-box":{"body":""},"highway":{"body":""},"hiking":{"body":""},"history":{"body":""},"hockey-puck":{"body":""},"hockey-sticks":{"body":""},"hololens":{"body":""},"home":{"body":""},"home-account":{"body":""},"home-alert":{"body":""},"home-alert-outline":{"body":""},"home-analytics":{"body":""},"home-assistant":{"body":""},"home-automation":{"body":""},"home-battery":{"body":""},"home-battery-outline":{"body":""},"home-circle":{"body":""},"home-circle-outline":{"body":""},"home-city":{"body":""},"home-city-outline":{"body":""},"home-clock":{"body":""},"home-clock-outline":{"body":""},"home-currency-usd":{"body":"","hidden":true},"home-edit":{"body":""},"home-edit-outline":{"body":""},"home-export-outline":{"body":""},"home-flood":{"body":""},"home-floor-0":{"body":""},"home-floor-1":{"body":""},"home-floor-2":{"body":""},"home-floor-3":{"body":""},"home-floor-a":{"body":""},"home-floor-b":{"body":""},"home-floor-g":{"body":""},"home-floor-l":{"body":""},"home-floor-negative-1":{"body":""},"home-group":{"body":""},"home-group-minus":{"body":""},"home-group-plus":{"body":""},"home-group-remove":{"body":""},"home-heart":{"body":""},"home-import-outline":{"body":""},"home-lightbulb":{"body":""},"home-lightbulb-outline":{"body":""},"home-lightning-bolt":{"body":""},"home-lightning-bolt-outline":{"body":""},"home-lock":{"body":""},"home-lock-open":{"body":""},"home-map-marker":{"body":""},"home-minus":{"body":""},"home-minus-outline":{"body":""},"home-modern":{"body":""},"home-off":{"body":""},"home-off-outline":{"body":""},"home-outline":{"body":""},"home-plus":{"body":""},"home-plus-outline":{"body":""},"home-remove":{"body":""},"home-remove-outline":{"body":""},"home-roof":{"body":""},"home-search":{"body":""},"home-search-outline":{"body":""},"home-silo":{"body":""},"home-silo-outline":{"body":""},"home-switch":{"body":""},"home-switch-outline":{"body":""},"home-thermometer":{"body":""},"home-thermometer-outline":{"body":""},"home-variant":{"body":""},"home-variant-outline":{"body":""},"hook":{"body":""},"hook-off":{"body":""},"hoop-house":{"body":""},"hops":{"body":""},"horizontal-rotate-clockwise":{"body":""},"horizontal-rotate-counterclockwise":{"body":""},"horse":{"body":""},"horse-human":{"body":""},"horse-variant":{"body":""},"horse-variant-fast":{"body":""},"horseshoe":{"body":""},"hospital":{"body":""},"hospital-box":{"body":""},"hospital-box-outline":{"body":""},"hospital-building":{"body":""},"hospital-marker":{"body":""},"hot-tub":{"body":""},"hours-24":{"body":""},"houzz":{"body":"","hidden":true},"houzz-box":{"body":"","hidden":true},"hubspot":{"body":""},"hulu":{"body":""},"human":{"body":""},"human-baby-changing-table":{"body":""},"human-cane":{"body":""},"human-capacity-decrease":{"body":""},"human-capacity-increase":{"body":""},"human-child":{"body":""},"human-dolly":{"body":""},"human-edit":{"body":""},"human-female":{"body":""},"human-female-boy":{"body":""},"human-female-dance":{"body":""},"human-female-female":{"body":""},"human-female-girl":{"body":""},"human-greeting":{"body":""},"human-greeting-proximity":{"body":""},"human-greeting-variant":{"body":""},"human-handsdown":{"body":""},"human-handsup":{"body":""},"human-male":{"body":""},"human-male-board":{"body":""},"human-male-board-poll":{"body":""},"human-male-boy":{"body":""},"human-male-child":{"body":""},"human-male-female":{"body":""},"human-male-female-child":{"body":""},"human-male-girl":{"body":""},"human-male-height":{"body":""},"human-male-height-variant":{"body":""},"human-male-male":{"body":""},"human-non-binary":{"body":""},"human-pregnant":{"body":""},"human-queue":{"body":""},"human-scooter":{"body":""},"human-walker":{"body":""},"human-wheelchair":{"body":""},"human-white-cane":{"body":""},"humble-bundle":{"body":""},"hurricane":{"body":"","hidden":true},"hvac":{"body":""},"hvac-off":{"body":""},"hydraulic-oil-level":{"body":""},"hydraulic-oil-temperature":{"body":""},"hydro-power":{"body":""},"hydrogen-station":{"body":""},"ice-cream":{"body":""},"ice-cream-off":{"body":""},"ice-pop":{"body":""},"id-card":{"body":""},"identifier":{"body":""},"ideogram-cjk":{"body":""},"ideogram-cjk-variant":{"body":""},"image":{"body":""},"image-album":{"body":""},"image-area":{"body":""},"image-area-close":{"body":""},"image-auto-adjust":{"body":""},"image-broken":{"body":""},"image-broken-variant":{"body":""},"image-check":{"body":""},"image-check-outline":{"body":""},"image-edit":{"body":""},"image-edit-outline":{"body":""},"image-filter-black-white":{"body":""},"image-filter-center-focus":{"body":""},"image-filter-center-focus-strong":{"body":""},"image-filter-center-focus-strong-outline":{"body":""},"image-filter-center-focus-weak":{"body":""},"image-filter-drama":{"body":""},"image-filter-drama-outline":{"body":""},"image-filter-frames":{"body":""},"image-filter-hdr":{"body":""},"image-filter-none":{"body":""},"image-filter-tilt-shift":{"body":""},"image-filter-vintage":{"body":""},"image-frame":{"body":""},"image-lock":{"body":""},"image-lock-outline":{"body":""},"image-marker":{"body":""},"image-marker-outline":{"body":""},"image-minus":{"body":""},"image-minus-outline":{"body":""},"image-move":{"body":""},"image-multiple":{"body":""},"image-multiple-outline":{"body":""},"image-off":{"body":""},"image-off-outline":{"body":""},"image-outline":{"body":""},"image-plus":{"body":""},"image-plus-outline":{"body":""},"image-refresh":{"body":""},"image-refresh-outline":{"body":""},"image-remove":{"body":""},"image-remove-outline":{"body":""},"image-search":{"body":""},"image-search-outline":{"body":""},"image-size-select-actual":{"body":""},"image-size-select-large":{"body":""},"image-size-select-small":{"body":""},"image-sync":{"body":""},"image-sync-outline":{"body":""},"image-text":{"body":""},"import":{"body":""},"inbox":{"body":""},"inbox-arrow-down":{"body":""},"inbox-arrow-down-outline":{"body":""},"inbox-arrow-up":{"body":""},"inbox-arrow-up-outline":{"body":""},"inbox-full":{"body":""},"inbox-full-outline":{"body":""},"inbox-multiple":{"body":""},"inbox-multiple-outline":{"body":""},"inbox-outline":{"body":""},"inbox-remove":{"body":""},"inbox-remove-outline":{"body":""},"incognito":{"body":""},"incognito-circle":{"body":""},"incognito-circle-off":{"body":""},"incognito-off":{"body":""},"indent":{"body":"","hidden":true},"induction":{"body":""},"infinity":{"body":""},"information":{"body":""},"information-off":{"body":""},"information-off-outline":{"body":""},"information-outline":{"body":""},"information-variant":{"body":""},"instagram":{"body":""},"instapaper":{"body":"","hidden":true},"instrument-triangle":{"body":""},"integrated-circuit-chip":{"body":""},"invert-colors":{"body":""},"invert-colors-off":{"body":""},"iobroker":{"body":""},"ip":{"body":""},"ip-network":{"body":""},"ip-network-outline":{"body":""},"ip-outline":{"body":""},"ipod":{"body":""},"iron":{"body":""},"iron-board":{"body":""},"iron-outline":{"body":""},"island":{"body":""},"itunes":{"body":"","hidden":true},"iv-bag":{"body":""},"jabber":{"body":""},"jeepney":{"body":""},"jellyfish":{"body":""},"jellyfish-outline":{"body":""},"jira":{"body":""},"jquery":{"body":""},"jsfiddle":{"body":""},"jump-rope":{"body":""},"kabaddi":{"body":""},"kangaroo":{"body":""},"karate":{"body":""},"kayaking":{"body":""},"keg":{"body":""},"kettle":{"body":""},"kettle-alert":{"body":""},"kettle-alert-outline":{"body":""},"kettle-off":{"body":""},"kettle-off-outline":{"body":""},"kettle-outline":{"body":""},"kettle-pour-over":{"body":""},"kettle-steam":{"body":""},"kettle-steam-outline":{"body":""},"kettlebell":{"body":""},"key":{"body":""},"key-alert":{"body":""},"key-alert-outline":{"body":""},"key-arrow-right":{"body":""},"key-chain":{"body":""},"key-chain-variant":{"body":""},"key-change":{"body":""},"key-link":{"body":""},"key-minus":{"body":""},"key-outline":{"body":""},"key-plus":{"body":""},"key-remove":{"body":""},"key-star":{"body":""},"key-variant":{"body":""},"key-wireless":{"body":""},"keyboard":{"body":""},"keyboard-backspace":{"body":""},"keyboard-caps":{"body":""},"keyboard-close":{"body":""},"keyboard-close-outline":{"body":""},"keyboard-esc":{"body":""},"keyboard-f1":{"body":""},"keyboard-f10":{"body":""},"keyboard-f11":{"body":""},"keyboard-f12":{"body":""},"keyboard-f2":{"body":""},"keyboard-f3":{"body":""},"keyboard-f4":{"body":""},"keyboard-f5":{"body":""},"keyboard-f6":{"body":""},"keyboard-f7":{"body":""},"keyboard-f8":{"body":""},"keyboard-f9":{"body":""},"keyboard-off":{"body":""},"keyboard-off-outline":{"body":""},"keyboard-outline":{"body":""},"keyboard-return":{"body":""},"keyboard-settings":{"body":""},"keyboard-settings-outline":{"body":""},"keyboard-space":{"body":""},"keyboard-tab":{"body":""},"keyboard-tab-reverse":{"body":""},"keyboard-variant":{"body":""},"khanda":{"body":""},"kickstarter":{"body":""},"kite":{"body":""},"kite-outline":{"body":""},"kitesurfing":{"body":""},"klingon":{"body":""},"knife":{"body":""},"knife-military":{"body":""},"knob":{"body":""},"koala":{"body":""},"kodi":{"body":""},"kubernetes":{"body":""},"label":{"body":""},"label-multiple":{"body":""},"label-multiple-outline":{"body":""},"label-off":{"body":""},"label-off-outline":{"body":""},"label-outline":{"body":""},"label-percent":{"body":""},"label-percent-outline":{"body":""},"label-variant":{"body":""},"label-variant-outline":{"body":""},"ladder":{"body":""},"ladybug":{"body":""},"lambda":{"body":""},"lamp":{"body":""},"lamp-outline":{"body":""},"lamps":{"body":""},"lamps-outline":{"body":""},"lan":{"body":""},"lan-check":{"body":""},"lan-connect":{"body":""},"lan-disconnect":{"body":""},"lan-pending":{"body":""},"land-fields":{"body":""},"land-plots":{"body":""},"land-plots-circle":{"body":""},"land-plots-circle-variant":{"body":""},"land-rows-horizontal":{"body":""},"land-rows-vertical":{"body":""},"landslide":{"body":""},"landslide-outline":{"body":""},"language-c":{"body":""},"language-cpp":{"body":""},"language-csharp":{"body":""},"language-css3":{"body":""},"language-fortran":{"body":""},"language-go":{"body":""},"language-haskell":{"body":""},"language-html5":{"body":""},"language-java":{"body":""},"language-javascript":{"body":""},"language-jsx":{"body":"","hidden":true},"language-kotlin":{"body":""},"language-lua":{"body":""},"language-markdown":{"body":""},"language-markdown-outline":{"body":""},"language-php":{"body":""},"language-python":{"body":""},"language-python-text":{"body":"","hidden":true},"language-r":{"body":""},"language-ruby":{"body":""},"language-ruby-on-rails":{"body":""},"language-rust":{"body":""},"language-swift":{"body":""},"language-typescript":{"body":""},"language-xaml":{"body":""},"laptop":{"body":""},"laptop-account":{"body":""},"laptop-chromebook":{"body":"","hidden":true},"laptop-mac":{"body":"","hidden":true},"laptop-off":{"body":""},"laptop-windows":{"body":"","hidden":true},"laravel":{"body":""},"laser-pointer":{"body":""},"lasso":{"body":""},"lastfm":{"body":"","hidden":true},"lastpass":{"body":""},"latitude":{"body":""},"launch":{"body":""},"lava-lamp":{"body":""},"layers":{"body":""},"layers-edit":{"body":""},"layers-minus":{"body":""},"layers-off":{"body":""},"layers-off-outline":{"body":""},"layers-outline":{"body":""},"layers-plus":{"body":""},"layers-remove":{"body":""},"layers-search":{"body":""},"layers-search-outline":{"body":""},"layers-triple":{"body":""},"layers-triple-outline":{"body":""},"lead-pencil":{"body":""},"leaf":{"body":""},"leaf-circle":{"body":""},"leaf-circle-outline":{"body":""},"leaf-maple":{"body":""},"leaf-maple-off":{"body":""},"leaf-off":{"body":""},"leak":{"body":""},"leak-off":{"body":""},"lectern":{"body":""},"led-off":{"body":""},"led-on":{"body":""},"led-outline":{"body":""},"led-strip":{"body":""},"led-strip-variant":{"body":""},"led-strip-variant-off":{"body":""},"led-variant-off":{"body":""},"led-variant-on":{"body":""},"led-variant-outline":{"body":""},"leek":{"body":""},"less-than":{"body":""},"less-than-or-equal":{"body":""},"library":{"body":""},"library-books":{"body":"","hidden":true},"library-outline":{"body":""},"library-shelves":{"body":""},"license":{"body":""},"lifebuoy":{"body":""},"light-flood-down":{"body":""},"light-flood-up":{"body":""},"light-recessed":{"body":""},"light-switch":{"body":""},"light-switch-off":{"body":""},"lightbulb":{"body":""},"lightbulb-alert":{"body":""},"lightbulb-alert-outline":{"body":""},"lightbulb-auto":{"body":""},"lightbulb-auto-outline":{"body":""},"lightbulb-cfl":{"body":""},"lightbulb-cfl-off":{"body":""},"lightbulb-cfl-spiral":{"body":""},"lightbulb-cfl-spiral-off":{"body":""},"lightbulb-fluorescent-tube":{"body":""},"lightbulb-fluorescent-tube-outline":{"body":""},"lightbulb-group":{"body":""},"lightbulb-group-off":{"body":""},"lightbulb-group-off-outline":{"body":""},"lightbulb-group-outline":{"body":""},"lightbulb-multiple":{"body":""},"lightbulb-multiple-off":{"body":""},"lightbulb-multiple-off-outline":{"body":""},"lightbulb-multiple-outline":{"body":""},"lightbulb-night":{"body":""},"lightbulb-night-outline":{"body":""},"lightbulb-off":{"body":""},"lightbulb-off-outline":{"body":""},"lightbulb-on":{"body":""},"lightbulb-on-10":{"body":""},"lightbulb-on-20":{"body":""},"lightbulb-on-30":{"body":""},"lightbulb-on-40":{"body":""},"lightbulb-on-50":{"body":""},"lightbulb-on-60":{"body":""},"lightbulb-on-70":{"body":""},"lightbulb-on-80":{"body":""},"lightbulb-on-90":{"body":""},"lightbulb-on-outline":{"body":""},"lightbulb-outline":{"body":""},"lightbulb-question":{"body":""},"lightbulb-question-outline":{"body":""},"lightbulb-spot":{"body":""},"lightbulb-spot-off":{"body":""},"lightbulb-variant":{"body":""},"lightbulb-variant-outline":{"body":""},"lighthouse":{"body":""},"lighthouse-on":{"body":""},"lightning-bolt":{"body":""},"lightning-bolt-circle":{"body":""},"lightning-bolt-outline":{"body":""},"line-scan":{"body":""},"lingerie":{"body":""},"link":{"body":""},"link-box":{"body":""},"link-box-outline":{"body":""},"link-box-variant":{"body":""},"link-box-variant-outline":{"body":""},"link-lock":{"body":""},"link-off":{"body":""},"link-plus":{"body":""},"link-variant":{"body":""},"link-variant-minus":{"body":""},"link-variant-off":{"body":""},"link-variant-plus":{"body":""},"link-variant-remove":{"body":""},"linkedin":{"body":""},"linode":{"body":"","hidden":true},"linux":{"body":""},"linux-mint":{"body":""},"lipstick":{"body":""},"liquid-spot":{"body":""},"liquor":{"body":""},"list-box":{"body":""},"list-box-outline":{"body":""},"list-status":{"body":""},"litecoin":{"body":""},"loading":{"body":""},"location-enter":{"body":""},"location-exit":{"body":""},"lock":{"body":""},"lock-alert":{"body":""},"lock-alert-outline":{"body":""},"lock-check":{"body":""},"lock-check-outline":{"body":""},"lock-clock":{"body":""},"lock-minus":{"body":""},"lock-minus-outline":{"body":""},"lock-off":{"body":""},"lock-off-outline":{"body":""},"lock-open":{"body":""},"lock-open-alert":{"body":""},"lock-open-alert-outline":{"body":""},"lock-open-check":{"body":""},"lock-open-check-outline":{"body":""},"lock-open-minus":{"body":""},"lock-open-minus-outline":{"body":""},"lock-open-outline":{"body":""},"lock-open-plus":{"body":""},"lock-open-plus-outline":{"body":""},"lock-open-remove":{"body":""},"lock-open-remove-outline":{"body":""},"lock-open-variant":{"body":""},"lock-open-variant-outline":{"body":""},"lock-outline":{"body":""},"lock-pattern":{"body":""},"lock-percent":{"body":""},"lock-percent-open":{"body":""},"lock-percent-open-outline":{"body":""},"lock-percent-open-variant":{"body":""},"lock-percent-open-variant-outline":{"body":""},"lock-percent-outline":{"body":""},"lock-plus":{"body":""},"lock-plus-outline":{"body":""},"lock-question":{"body":""},"lock-remove":{"body":""},"lock-remove-outline":{"body":""},"lock-reset":{"body":""},"lock-smart":{"body":""},"locker":{"body":""},"locker-multiple":{"body":""},"login":{"body":""},"login-variant":{"body":""},"logout":{"body":""},"logout-variant":{"body":""},"longitude":{"body":""},"looks":{"body":""},"lotion":{"body":""},"lotion-outline":{"body":""},"lotion-plus":{"body":""},"lotion-plus-outline":{"body":""},"loupe":{"body":""},"lumx":{"body":""},"lungs":{"body":""},"lyft":{"body":"","hidden":true},"mace":{"body":""},"magazine-pistol":{"body":""},"magazine-rifle":{"body":""},"magic-staff":{"body":""},"magnet":{"body":""},"magnet-on":{"body":""},"magnify":{"body":""},"magnify-close":{"body":""},"magnify-expand":{"body":""},"magnify-minus":{"body":""},"magnify-minus-cursor":{"body":""},"magnify-minus-outline":{"body":""},"magnify-plus":{"body":""},"magnify-plus-cursor":{"body":""},"magnify-plus-outline":{"body":""},"magnify-remove-cursor":{"body":""},"magnify-remove-outline":{"body":""},"magnify-scan":{"body":""},"mail":{"body":""},"mail-ru":{"body":"","hidden":true},"mailbox":{"body":""},"mailbox-open":{"body":""},"mailbox-open-outline":{"body":""},"mailbox-open-up":{"body":""},"mailbox-open-up-outline":{"body":""},"mailbox-outline":{"body":""},"mailbox-up":{"body":""},"mailbox-up-outline":{"body":""},"manjaro":{"body":""},"map":{"body":""},"map-check":{"body":""},"map-check-outline":{"body":""},"map-clock":{"body":""},"map-clock-outline":{"body":""},"map-legend":{"body":""},"map-marker":{"body":""},"map-marker-account":{"body":""},"map-marker-account-outline":{"body":""},"map-marker-alert":{"body":""},"map-marker-alert-outline":{"body":""},"map-marker-check":{"body":""},"map-marker-check-outline":{"body":""},"map-marker-circle":{"body":""},"map-marker-distance":{"body":""},"map-marker-down":{"body":""},"map-marker-left":{"body":""},"map-marker-left-outline":{"body":""},"map-marker-minus":{"body":""},"map-marker-minus-outline":{"body":""},"map-marker-multiple":{"body":""},"map-marker-multiple-outline":{"body":""},"map-marker-off":{"body":""},"map-marker-off-outline":{"body":""},"map-marker-outline":{"body":""},"map-marker-path":{"body":""},"map-marker-plus":{"body":""},"map-marker-plus-outline":{"body":""},"map-marker-question":{"body":""},"map-marker-question-outline":{"body":""},"map-marker-radius":{"body":""},"map-marker-radius-outline":{"body":""},"map-marker-remove":{"body":""},"map-marker-remove-outline":{"body":""},"map-marker-remove-variant":{"body":""},"map-marker-right":{"body":""},"map-marker-right-outline":{"body":""},"map-marker-star":{"body":""},"map-marker-star-outline":{"body":""},"map-marker-up":{"body":""},"map-minus":{"body":""},"map-outline":{"body":""},"map-plus":{"body":""},"map-search":{"body":""},"map-search-outline":{"body":""},"mapbox":{"body":""},"margin":{"body":""},"marker":{"body":""},"marker-cancel":{"body":""},"marker-check":{"body":""},"mastodon":{"body":""},"mastodon-variant":{"body":"","hidden":true},"material-design":{"body":""},"material-ui":{"body":""},"math-compass":{"body":""},"math-cos":{"body":""},"math-integral":{"body":""},"math-integral-box":{"body":""},"math-log":{"body":""},"math-norm":{"body":""},"math-norm-box":{"body":""},"math-sin":{"body":""},"math-tan":{"body":""},"matrix":{"body":""},"maxcdn":{"body":"","hidden":true},"medal":{"body":""},"medal-outline":{"body":""},"medical-bag":{"body":""},"medical-cotton-swab":{"body":""},"medication":{"body":""},"medication-outline":{"body":""},"meditation":{"body":""},"medium":{"body":"","hidden":true},"meetup":{"body":"","hidden":true},"memory":{"body":""},"menorah":{"body":""},"menorah-fire":{"body":""},"menu":{"body":""},"menu-close":{"body":"","hidden":true},"menu-down":{"body":""},"menu-down-outline":{"body":""},"menu-left":{"body":""},"menu-left-outline":{"body":""},"menu-open":{"body":""},"menu-right":{"body":""},"menu-right-outline":{"body":""},"menu-swap":{"body":""},"menu-swap-outline":{"body":""},"menu-up":{"body":""},"menu-up-outline":{"body":""},"merge":{"body":""},"message":{"body":""},"message-alert":{"body":""},"message-alert-outline":{"body":""},"message-arrow-left":{"body":""},"message-arrow-left-outline":{"body":""},"message-arrow-right":{"body":""},"message-arrow-right-outline":{"body":""},"message-badge":{"body":""},"message-badge-outline":{"body":""},"message-bookmark":{"body":""},"message-bookmark-outline":{"body":""},"message-bulleted":{"body":""},"message-bulleted-off":{"body":""},"message-check":{"body":""},"message-check-outline":{"body":""},"message-cog":{"body":""},"message-cog-outline":{"body":""},"message-draw":{"body":""},"message-fast":{"body":""},"message-fast-outline":{"body":""},"message-flash":{"body":""},"message-flash-outline":{"body":""},"message-image":{"body":""},"message-image-outline":{"body":""},"message-lock":{"body":""},"message-lock-outline":{"body":""},"message-minus":{"body":""},"message-minus-outline":{"body":""},"message-off":{"body":""},"message-off-outline":{"body":""},"message-outline":{"body":""},"message-plus":{"body":""},"message-plus-outline":{"body":""},"message-processing":{"body":""},"message-processing-outline":{"body":""},"message-question":{"body":""},"message-question-outline":{"body":""},"message-reply":{"body":""},"message-reply-outline":{"body":""},"message-reply-text":{"body":""},"message-reply-text-outline":{"body":""},"message-settings":{"body":""},"message-settings-outline":{"body":""},"message-star":{"body":""},"message-star-outline":{"body":""},"message-text":{"body":""},"message-text-clock":{"body":""},"message-text-clock-outline":{"body":""},"message-text-fast":{"body":""},"message-text-fast-outline":{"body":""},"message-text-lock":{"body":""},"message-text-lock-outline":{"body":""},"message-text-outline":{"body":""},"message-video":{"body":""},"meteor":{"body":""},"meter-electric":{"body":""},"meter-electric-outline":{"body":""},"meter-gas":{"body":""},"meter-gas-outline":{"body":""},"metronome":{"body":""},"metronome-tick":{"body":""},"micro-sd":{"body":""},"microphone":{"body":""},"microphone-message":{"body":""},"microphone-message-off":{"body":""},"microphone-minus":{"body":""},"microphone-off":{"body":""},"microphone-outline":{"body":""},"microphone-plus":{"body":""},"microphone-question":{"body":""},"microphone-question-outline":{"body":""},"microphone-settings":{"body":""},"microphone-variant":{"body":""},"microphone-variant-off":{"body":""},"microscope":{"body":""},"microsoft":{"body":""},"microsoft-access":{"body":""},"microsoft-azure":{"body":""},"microsoft-azure-devops":{"body":""},"microsoft-bing":{"body":""},"microsoft-dynamics-365":{"body":""},"microsoft-edge":{"body":""},"microsoft-edge-legacy":{"body":"","hidden":true},"microsoft-excel":{"body":""},"microsoft-internet-explorer":{"body":""},"microsoft-office":{"body":""},"microsoft-onedrive":{"body":""},"microsoft-onenote":{"body":""},"microsoft-outlook":{"body":""},"microsoft-powerpoint":{"body":""},"microsoft-sharepoint":{"body":""},"microsoft-teams":{"body":""},"microsoft-visual-studio":{"body":""},"microsoft-visual-studio-code":{"body":""},"microsoft-windows":{"body":""},"microsoft-windows-classic":{"body":""},"microsoft-word":{"body":""},"microsoft-xbox":{"body":""},"microsoft-xbox-controller":{"body":""},"microsoft-xbox-controller-battery-alert":{"body":""},"microsoft-xbox-controller-battery-charging":{"body":""},"microsoft-xbox-controller-battery-empty":{"body":""},"microsoft-xbox-controller-battery-full":{"body":""},"microsoft-xbox-controller-battery-low":{"body":""},"microsoft-xbox-controller-battery-medium":{"body":""},"microsoft-xbox-controller-battery-unknown":{"body":""},"microsoft-xbox-controller-menu":{"body":""},"microsoft-xbox-controller-off":{"body":""},"microsoft-xbox-controller-view":{"body":""},"microsoft-yammer":{"body":"","hidden":true},"microwave":{"body":""},"microwave-off":{"body":""},"middleware":{"body":""},"middleware-outline":{"body":""},"midi":{"body":""},"midi-input":{"body":"","hidden":true},"midi-port":{"body":""},"mine":{"body":""},"minecraft":{"body":""},"mini-sd":{"body":""},"minidisc":{"body":""},"minus":{"body":""},"minus-box":{"body":""},"minus-box-multiple":{"body":""},"minus-box-multiple-outline":{"body":""},"minus-box-outline":{"body":""},"minus-circle":{"body":""},"minus-circle-multiple":{"body":""},"minus-circle-multiple-outline":{"body":""},"minus-circle-off":{"body":""},"minus-circle-off-outline":{"body":""},"minus-circle-outline":{"body":""},"minus-network":{"body":""},"minus-network-outline":{"body":""},"minus-thick":{"body":""},"mirror":{"body":""},"mirror-rectangle":{"body":""},"mirror-variant":{"body":""},"mixcloud":{"body":"","hidden":true},"mixed-martial-arts":{"body":""},"mixed-reality":{"body":""},"mixer":{"body":"","hidden":true},"molecule":{"body":""},"molecule-co":{"body":""},"molecule-co2":{"body":""},"monitor":{"body":""},"monitor-account":{"body":""},"monitor-arrow-down":{"body":""},"monitor-arrow-down-variant":{"body":""},"monitor-cellphone":{"body":""},"monitor-cellphone-star":{"body":""},"monitor-dashboard":{"body":""},"monitor-edit":{"body":""},"monitor-eye":{"body":""},"monitor-lock":{"body":""},"monitor-multiple":{"body":""},"monitor-off":{"body":""},"monitor-screenshot":{"body":""},"monitor-share":{"body":""},"monitor-shimmer":{"body":""},"monitor-small":{"body":""},"monitor-speaker":{"body":""},"monitor-speaker-off":{"body":""},"monitor-star":{"body":""},"moon-first-quarter":{"body":""},"moon-full":{"body":""},"moon-last-quarter":{"body":""},"moon-new":{"body":""},"moon-waning-crescent":{"body":""},"moon-waning-gibbous":{"body":""},"moon-waxing-crescent":{"body":""},"moon-waxing-gibbous":{"body":""},"moped":{"body":""},"moped-electric":{"body":""},"moped-electric-outline":{"body":""},"moped-outline":{"body":""},"more":{"body":""},"mortar-pestle":{"body":""},"mortar-pestle-plus":{"body":""},"mosque":{"body":""},"mosque-outline":{"body":""},"mother-heart":{"body":""},"mother-nurse":{"body":""},"motion":{"body":""},"motion-outline":{"body":""},"motion-pause":{"body":""},"motion-pause-outline":{"body":""},"motion-play":{"body":""},"motion-play-outline":{"body":""},"motion-sensor":{"body":""},"motion-sensor-off":{"body":""},"motorbike":{"body":""},"motorbike-electric":{"body":""},"motorbike-off":{"body":""},"mouse":{"body":""},"mouse-bluetooth":{"body":""},"mouse-move-down":{"body":""},"mouse-move-up":{"body":""},"mouse-move-vertical":{"body":""},"mouse-off":{"body":""},"mouse-variant":{"body":""},"mouse-variant-off":{"body":""},"move-resize":{"body":""},"move-resize-variant":{"body":""},"movie":{"body":""},"movie-check":{"body":""},"movie-check-outline":{"body":""},"movie-cog":{"body":""},"movie-cog-outline":{"body":""},"movie-edit":{"body":""},"movie-edit-outline":{"body":""},"movie-filter":{"body":""},"movie-filter-outline":{"body":""},"movie-minus":{"body":""},"movie-minus-outline":{"body":""},"movie-off":{"body":""},"movie-off-outline":{"body":""},"movie-open":{"body":""},"movie-open-check":{"body":""},"movie-open-check-outline":{"body":""},"movie-open-cog":{"body":""},"movie-open-cog-outline":{"body":""},"movie-open-edit":{"body":""},"movie-open-edit-outline":{"body":""},"movie-open-minus":{"body":""},"movie-open-minus-outline":{"body":""},"movie-open-off":{"body":""},"movie-open-off-outline":{"body":""},"movie-open-outline":{"body":""},"movie-open-play":{"body":""},"movie-open-play-outline":{"body":""},"movie-open-plus":{"body":""},"movie-open-plus-outline":{"body":""},"movie-open-remove":{"body":""},"movie-open-remove-outline":{"body":""},"movie-open-settings":{"body":""},"movie-open-settings-outline":{"body":""},"movie-open-star":{"body":""},"movie-open-star-outline":{"body":""},"movie-outline":{"body":""},"movie-play":{"body":""},"movie-play-outline":{"body":""},"movie-plus":{"body":""},"movie-plus-outline":{"body":""},"movie-remove":{"body":""},"movie-remove-outline":{"body":""},"movie-roll":{"body":""},"movie-search":{"body":""},"movie-search-outline":{"body":""},"movie-settings":{"body":""},"movie-settings-outline":{"body":""},"movie-star":{"body":""},"movie-star-outline":{"body":""},"mower":{"body":""},"mower-bag":{"body":""},"mower-bag-on":{"body":""},"mower-on":{"body":""},"muffin":{"body":""},"multicast":{"body":""},"multimedia":{"body":""},"multiplication":{"body":""},"multiplication-box":{"body":""},"mushroom":{"body":""},"mushroom-off":{"body":""},"mushroom-off-outline":{"body":""},"mushroom-outline":{"body":""},"music":{"body":""},"music-accidental-double-flat":{"body":""},"music-accidental-double-sharp":{"body":""},"music-accidental-flat":{"body":""},"music-accidental-natural":{"body":""},"music-accidental-sharp":{"body":""},"music-box":{"body":""},"music-box-multiple":{"body":""},"music-box-multiple-outline":{"body":""},"music-box-outline":{"body":""},"music-circle":{"body":""},"music-circle-outline":{"body":""},"music-clef-alto":{"body":""},"music-clef-bass":{"body":""},"music-clef-treble":{"body":""},"music-note":{"body":""},"music-note-bluetooth":{"body":""},"music-note-bluetooth-off":{"body":""},"music-note-eighth":{"body":""},"music-note-eighth-dotted":{"body":""},"music-note-half":{"body":""},"music-note-half-dotted":{"body":""},"music-note-minus":{"body":""},"music-note-off":{"body":""},"music-note-off-outline":{"body":""},"music-note-outline":{"body":""},"music-note-plus":{"body":""},"music-note-quarter":{"body":""},"music-note-quarter-dotted":{"body":""},"music-note-sixteenth":{"body":""},"music-note-sixteenth-dotted":{"body":""},"music-note-whole":{"body":""},"music-note-whole-dotted":{"body":""},"music-off":{"body":""},"music-rest-eighth":{"body":""},"music-rest-half":{"body":""},"music-rest-quarter":{"body":""},"music-rest-sixteenth":{"body":""},"music-rest-whole":{"body":""},"mustache":{"body":""},"nail":{"body":""},"nas":{"body":""},"nativescript":{"body":""},"nature":{"body":""},"nature-people":{"body":""},"navigation":{"body":""},"navigation-outline":{"body":""},"navigation-variant":{"body":""},"navigation-variant-outline":{"body":""},"near-me":{"body":""},"necklace":{"body":""},"needle":{"body":""},"needle-off":{"body":""},"nest-thermostat":{"body":"","hidden":true},"netflix":{"body":""},"network":{"body":""},"network-off":{"body":""},"network-off-outline":{"body":""},"network-outline":{"body":""},"network-pos":{"body":""},"network-strength-1":{"body":""},"network-strength-1-alert":{"body":""},"network-strength-2":{"body":""},"network-strength-2-alert":{"body":""},"network-strength-3":{"body":""},"network-strength-3-alert":{"body":""},"network-strength-4":{"body":""},"network-strength-4-alert":{"body":""},"network-strength-4-cog":{"body":""},"network-strength-alert":{"body":"","hidden":true},"network-strength-alert-outline":{"body":"","hidden":true},"network-strength-off":{"body":""},"network-strength-off-outline":{"body":""},"network-strength-outline":{"body":""},"new-box":{"body":""},"newspaper":{"body":""},"newspaper-check":{"body":""},"newspaper-minus":{"body":""},"newspaper-plus":{"body":""},"newspaper-remove":{"body":""},"newspaper-variant":{"body":""},"newspaper-variant-multiple":{"body":""},"newspaper-variant-multiple-outline":{"body":""},"newspaper-variant-outline":{"body":""},"nfc":{"body":""},"nfc-off":{"body":"","hidden":true},"nfc-search-variant":{"body":""},"nfc-tap":{"body":""},"nfc-variant":{"body":""},"nfc-variant-off":{"body":""},"ninja":{"body":""},"nintendo-game-boy":{"body":""},"nintendo-switch":{"body":""},"nintendo-wii":{"body":""},"nintendo-wiiu":{"body":""},"nix":{"body":""},"nodejs":{"body":""},"noodles":{"body":""},"not-equal":{"body":""},"not-equal-variant":{"body":""},"note":{"body":""},"note-alert":{"body":""},"note-alert-outline":{"body":""},"note-check":{"body":""},"note-check-outline":{"body":""},"note-edit":{"body":""},"note-edit-outline":{"body":""},"note-minus":{"body":""},"note-minus-outline":{"body":""},"note-multiple":{"body":""},"note-multiple-outline":{"body":""},"note-off":{"body":""},"note-off-outline":{"body":""},"note-outline":{"body":""},"note-plus":{"body":""},"note-plus-outline":{"body":""},"note-remove":{"body":""},"note-remove-outline":{"body":""},"note-search":{"body":""},"note-search-outline":{"body":""},"note-text":{"body":""},"note-text-outline":{"body":""},"notebook":{"body":""},"notebook-check":{"body":""},"notebook-check-outline":{"body":""},"notebook-edit":{"body":""},"notebook-edit-outline":{"body":""},"notebook-heart":{"body":""},"notebook-heart-outline":{"body":""},"notebook-minus":{"body":""},"notebook-minus-outline":{"body":""},"notebook-multiple":{"body":""},"notebook-outline":{"body":""},"notebook-plus":{"body":""},"notebook-plus-outline":{"body":""},"notebook-remove":{"body":""},"notebook-remove-outline":{"body":""},"notification-clear-all":{"body":""},"npm":{"body":""},"npm-variant":{"body":"","hidden":true},"npm-variant-outline":{"body":"","hidden":true},"nuke":{"body":""},"null":{"body":""},"numeric":{"body":""},"numeric-0":{"body":""},"numeric-0-box":{"body":""},"numeric-0-box-multiple":{"body":""},"numeric-0-box-multiple-outline":{"body":""},"numeric-0-box-outline":{"body":""},"numeric-0-circle":{"body":""},"numeric-0-circle-outline":{"body":""},"numeric-1":{"body":""},"numeric-1-box":{"body":""},"numeric-1-box-multiple":{"body":""},"numeric-1-box-multiple-outline":{"body":""},"numeric-1-box-outline":{"body":""},"numeric-1-circle":{"body":""},"numeric-1-circle-outline":{"body":""},"numeric-10":{"body":""},"numeric-10-box":{"body":""},"numeric-10-box-multiple":{"body":""},"numeric-10-box-multiple-outline":{"body":""},"numeric-10-box-outline":{"body":""},"numeric-10-circle":{"body":""},"numeric-10-circle-outline":{"body":""},"numeric-2":{"body":""},"numeric-2-box":{"body":""},"numeric-2-box-multiple":{"body":""},"numeric-2-box-multiple-outline":{"body":""},"numeric-2-box-outline":{"body":""},"numeric-2-circle":{"body":""},"numeric-2-circle-outline":{"body":""},"numeric-3":{"body":""},"numeric-3-box":{"body":""},"numeric-3-box-multiple":{"body":""},"numeric-3-box-multiple-outline":{"body":""},"numeric-3-box-outline":{"body":""},"numeric-3-circle":{"body":""},"numeric-3-circle-outline":{"body":""},"numeric-4":{"body":""},"numeric-4-box":{"body":""},"numeric-4-box-multiple":{"body":""},"numeric-4-box-multiple-outline":{"body":""},"numeric-4-box-outline":{"body":""},"numeric-4-circle":{"body":""},"numeric-4-circle-outline":{"body":""},"numeric-5":{"body":""},"numeric-5-box":{"body":""},"numeric-5-box-multiple":{"body":""},"numeric-5-box-multiple-outline":{"body":""},"numeric-5-box-outline":{"body":""},"numeric-5-circle":{"body":""},"numeric-5-circle-outline":{"body":""},"numeric-6":{"body":""},"numeric-6-box":{"body":""},"numeric-6-box-multiple":{"body":""},"numeric-6-box-multiple-outline":{"body":""},"numeric-6-box-outline":{"body":""},"numeric-6-circle":{"body":""},"numeric-6-circle-outline":{"body":""},"numeric-7":{"body":""},"numeric-7-box":{"body":""},"numeric-7-box-multiple":{"body":""},"numeric-7-box-multiple-outline":{"body":""},"numeric-7-box-outline":{"body":""},"numeric-7-circle":{"body":""},"numeric-7-circle-outline":{"body":""},"numeric-8":{"body":""},"numeric-8-box":{"body":""},"numeric-8-box-multiple":{"body":""},"numeric-8-box-multiple-outline":{"body":""},"numeric-8-box-outline":{"body":""},"numeric-8-circle":{"body":""},"numeric-8-circle-outline":{"body":""},"numeric-9":{"body":""},"numeric-9-box":{"body":""},"numeric-9-box-multiple":{"body":""},"numeric-9-box-multiple-outline":{"body":""},"numeric-9-box-outline":{"body":""},"numeric-9-circle":{"body":""},"numeric-9-circle-outline":{"body":""},"numeric-9-plus":{"body":""},"numeric-9-plus-box":{"body":""},"numeric-9-plus-box-multiple":{"body":""},"numeric-9-plus-box-multiple-outline":{"body":""},"numeric-9-plus-box-outline":{"body":""},"numeric-9-plus-circle":{"body":""},"numeric-9-plus-circle-outline":{"body":""},"numeric-negative-1":{"body":""},"numeric-off":{"body":""},"numeric-positive-1":{"body":""},"nut":{"body":""},"nutrition":{"body":""},"nuxt":{"body":""},"oar":{"body":""},"ocarina":{"body":""},"oci":{"body":""},"ocr":{"body":""},"octagon":{"body":""},"octagon-outline":{"body":""},"octagram":{"body":""},"octagram-outline":{"body":""},"octahedron":{"body":""},"octahedron-off":{"body":""},"odnoklassniki":{"body":""},"offer":{"body":""},"office-building":{"body":""},"office-building-cog":{"body":""},"office-building-cog-outline":{"body":""},"office-building-marker":{"body":""},"office-building-marker-outline":{"body":""},"office-building-minus":{"body":""},"office-building-minus-outline":{"body":""},"office-building-outline":{"body":""},"office-building-plus":{"body":""},"office-building-plus-outline":{"body":""},"office-building-remove":{"body":""},"office-building-remove-outline":{"body":""},"oil":{"body":""},"oil-lamp":{"body":""},"oil-level":{"body":""},"oil-temperature":{"body":""},"om":{"body":""},"omega":{"body":""},"one-up":{"body":""},"onedrive":{"body":"","hidden":true},"onenote":{"body":"","hidden":true},"onepassword":{"body":""},"opacity":{"body":""},"open-in-app":{"body":""},"open-in-new":{"body":""},"open-source-initiative":{"body":""},"openid":{"body":""},"opera":{"body":""},"orbit":{"body":""},"orbit-variant":{"body":""},"order-alphabetical-ascending":{"body":""},"order-alphabetical-descending":{"body":""},"order-bool-ascending":{"body":""},"order-bool-ascending-variant":{"body":""},"order-bool-descending":{"body":""},"order-bool-descending-variant":{"body":""},"order-numeric-ascending":{"body":""},"order-numeric-descending":{"body":""},"origin":{"body":""},"ornament":{"body":""},"ornament-variant":{"body":""},"outbox":{"body":"","hidden":true},"outdent":{"body":"","hidden":true},"outdoor-lamp":{"body":""},"outlook":{"body":"","hidden":true},"overscan":{"body":""},"owl":{"body":""},"pac-man":{"body":""},"package":{"body":""},"package-check":{"body":""},"package-down":{"body":""},"package-up":{"body":""},"package-variant":{"body":""},"package-variant-closed":{"body":""},"package-variant-closed-check":{"body":""},"package-variant-closed-minus":{"body":""},"package-variant-closed-plus":{"body":""},"package-variant-closed-remove":{"body":""},"package-variant-minus":{"body":""},"package-variant-plus":{"body":""},"package-variant-remove":{"body":""},"page-first":{"body":""},"page-last":{"body":""},"page-layout-body":{"body":""},"page-layout-footer":{"body":""},"page-layout-header":{"body":""},"page-layout-header-footer":{"body":""},"page-layout-sidebar-left":{"body":""},"page-layout-sidebar-right":{"body":""},"page-next":{"body":""},"page-next-outline":{"body":""},"page-previous":{"body":""},"page-previous-outline":{"body":""},"pail":{"body":""},"pail-minus":{"body":""},"pail-minus-outline":{"body":""},"pail-off":{"body":""},"pail-off-outline":{"body":""},"pail-outline":{"body":""},"pail-plus":{"body":""},"pail-plus-outline":{"body":""},"pail-remove":{"body":""},"pail-remove-outline":{"body":""},"palette":{"body":""},"palette-advanced":{"body":""},"palette-outline":{"body":""},"palette-swatch":{"body":""},"palette-swatch-outline":{"body":""},"palette-swatch-variant":{"body":""},"palm-tree":{"body":""},"pan":{"body":""},"pan-bottom-left":{"body":""},"pan-bottom-right":{"body":""},"pan-down":{"body":""},"pan-horizontal":{"body":""},"pan-left":{"body":""},"pan-right":{"body":""},"pan-top-left":{"body":""},"pan-top-right":{"body":""},"pan-up":{"body":""},"pan-vertical":{"body":""},"panda":{"body":""},"pandora":{"body":""},"panorama":{"body":""},"panorama-fisheye":{"body":""},"panorama-horizontal":{"body":""},"panorama-horizontal-outline":{"body":""},"panorama-outline":{"body":""},"panorama-sphere":{"body":""},"panorama-sphere-outline":{"body":""},"panorama-variant":{"body":""},"panorama-variant-outline":{"body":""},"panorama-vertical":{"body":""},"panorama-vertical-outline":{"body":""},"panorama-wide-angle":{"body":""},"panorama-wide-angle-outline":{"body":""},"paper-cut-vertical":{"body":""},"paper-roll":{"body":""},"paper-roll-outline":{"body":""},"paperclip":{"body":""},"paperclip-check":{"body":""},"paperclip-lock":{"body":""},"paperclip-minus":{"body":""},"paperclip-off":{"body":""},"paperclip-plus":{"body":""},"paperclip-remove":{"body":""},"parachute":{"body":""},"parachute-outline":{"body":""},"paragliding":{"body":""},"parking":{"body":""},"party-popper":{"body":""},"passport":{"body":""},"passport-biometric":{"body":""},"pasta":{"body":""},"patio-heater":{"body":""},"patreon":{"body":""},"pause":{"body":""},"pause-box":{"body":""},"pause-box-outline":{"body":""},"pause-circle":{"body":""},"pause-circle-outline":{"body":""},"pause-octagon":{"body":""},"pause-octagon-outline":{"body":""},"paw":{"body":""},"paw-off":{"body":""},"paw-off-outline":{"body":""},"paw-outline":{"body":""},"paypal":{"body":"","hidden":true},"peace":{"body":""},"peanut":{"body":""},"peanut-off":{"body":""},"peanut-off-outline":{"body":""},"peanut-outline":{"body":""},"pen":{"body":""},"pen-lock":{"body":""},"pen-minus":{"body":""},"pen-off":{"body":""},"pen-plus":{"body":""},"pen-remove":{"body":""},"pencil":{"body":""},"pencil-box":{"body":""},"pencil-box-multiple":{"body":""},"pencil-box-multiple-outline":{"body":""},"pencil-box-outline":{"body":""},"pencil-circle":{"body":""},"pencil-circle-outline":{"body":""},"pencil-lock":{"body":""},"pencil-lock-outline":{"body":""},"pencil-minus":{"body":""},"pencil-minus-outline":{"body":""},"pencil-off":{"body":""},"pencil-off-outline":{"body":""},"pencil-outline":{"body":""},"pencil-plus":{"body":""},"pencil-plus-outline":{"body":""},"pencil-remove":{"body":""},"pencil-remove-outline":{"body":""},"pencil-ruler":{"body":""},"pencil-ruler-outline":{"body":""},"penguin":{"body":""},"pentagon":{"body":""},"pentagon-outline":{"body":""},"pentagram":{"body":""},"percent":{"body":""},"percent-box":{"body":""},"percent-box-outline":{"body":""},"percent-circle":{"body":""},"percent-circle-outline":{"body":""},"percent-outline":{"body":""},"periodic-table":{"body":""},"periscope":{"body":"","hidden":true},"perspective-less":{"body":""},"perspective-more":{"body":""},"ph":{"body":""},"phone":{"body":""},"phone-alert":{"body":""},"phone-alert-outline":{"body":""},"phone-bluetooth":{"body":""},"phone-bluetooth-outline":{"body":""},"phone-cancel":{"body":""},"phone-cancel-outline":{"body":""},"phone-check":{"body":""},"phone-check-outline":{"body":""},"phone-classic":{"body":""},"phone-classic-off":{"body":""},"phone-clock":{"body":""},"phone-dial":{"body":""},"phone-dial-outline":{"body":""},"phone-forward":{"body":""},"phone-forward-outline":{"body":""},"phone-hangup":{"body":""},"phone-hangup-outline":{"body":""},"phone-in-talk":{"body":""},"phone-in-talk-outline":{"body":""},"phone-incoming":{"body":""},"phone-incoming-outgoing":{"body":""},"phone-incoming-outgoing-outline":{"body":""},"phone-incoming-outline":{"body":""},"phone-lock":{"body":""},"phone-lock-outline":{"body":""},"phone-log":{"body":""},"phone-log-outline":{"body":""},"phone-message":{"body":""},"phone-message-outline":{"body":""},"phone-minus":{"body":""},"phone-minus-outline":{"body":""},"phone-missed":{"body":""},"phone-missed-outline":{"body":""},"phone-off":{"body":""},"phone-off-outline":{"body":""},"phone-outgoing":{"body":""},"phone-outgoing-outline":{"body":""},"phone-outline":{"body":""},"phone-paused":{"body":""},"phone-paused-outline":{"body":""},"phone-plus":{"body":""},"phone-plus-outline":{"body":""},"phone-refresh":{"body":""},"phone-refresh-outline":{"body":""},"phone-remove":{"body":""},"phone-remove-outline":{"body":""},"phone-return":{"body":""},"phone-return-outline":{"body":""},"phone-ring":{"body":""},"phone-ring-outline":{"body":""},"phone-rotate-landscape":{"body":""},"phone-rotate-portrait":{"body":""},"phone-settings":{"body":""},"phone-settings-outline":{"body":""},"phone-sync":{"body":""},"phone-sync-outline":{"body":""},"phone-voip":{"body":""},"pi":{"body":""},"pi-box":{"body":""},"pi-hole":{"body":""},"piano":{"body":""},"piano-off":{"body":""},"pickaxe":{"body":""},"picture-in-picture-bottom-right":{"body":""},"picture-in-picture-bottom-right-outline":{"body":""},"picture-in-picture-top-right":{"body":""},"picture-in-picture-top-right-outline":{"body":""},"pier":{"body":""},"pier-crane":{"body":""},"pig":{"body":""},"pig-variant":{"body":""},"pig-variant-outline":{"body":""},"piggy-bank":{"body":""},"piggy-bank-outline":{"body":""},"pill":{"body":""},"pill-multiple":{"body":""},"pill-off":{"body":""},"pillar":{"body":""},"pin":{"body":""},"pin-off":{"body":""},"pin-off-outline":{"body":""},"pin-outline":{"body":""},"pine-tree":{"body":""},"pine-tree-box":{"body":""},"pine-tree-fire":{"body":""},"pinterest":{"body":""},"pinterest-box":{"body":"","hidden":true},"pinwheel":{"body":""},"pinwheel-outline":{"body":""},"pipe":{"body":""},"pipe-disconnected":{"body":""},"pipe-leak":{"body":""},"pipe-valve":{"body":""},"pipe-wrench":{"body":""},"pirate":{"body":""},"pistol":{"body":""},"piston":{"body":""},"pitchfork":{"body":""},"pizza":{"body":""},"plane-car":{"body":""},"plane-train":{"body":""},"play":{"body":""},"play-box":{"body":""},"play-box-lock":{"body":""},"play-box-lock-open":{"body":""},"play-box-lock-open-outline":{"body":""},"play-box-lock-outline":{"body":""},"play-box-multiple":{"body":""},"play-box-multiple-outline":{"body":""},"play-box-outline":{"body":""},"play-circle":{"body":""},"play-circle-outline":{"body":""},"play-network":{"body":""},"play-network-outline":{"body":""},"play-outline":{"body":""},"play-pause":{"body":""},"play-protected-content":{"body":""},"play-speed":{"body":""},"playlist-check":{"body":""},"playlist-edit":{"body":""},"playlist-minus":{"body":""},"playlist-music":{"body":""},"playlist-music-outline":{"body":""},"playlist-play":{"body":""},"playlist-plus":{"body":""},"playlist-remove":{"body":""},"playlist-star":{"body":""},"plex":{"body":""},"pliers":{"body":""},"plus":{"body":""},"plus-box":{"body":""},"plus-box-multiple":{"body":""},"plus-box-multiple-outline":{"body":""},"plus-box-outline":{"body":""},"plus-circle":{"body":""},"plus-circle-multiple":{"body":""},"plus-circle-multiple-outline":{"body":""},"plus-circle-outline":{"body":""},"plus-lock":{"body":""},"plus-lock-open":{"body":""},"plus-minus":{"body":""},"plus-minus-box":{"body":""},"plus-minus-variant":{"body":""},"plus-network":{"body":""},"plus-network-outline":{"body":""},"plus-outline":{"body":""},"plus-thick":{"body":""},"pocket":{"body":"","hidden":true},"podcast":{"body":""},"podium":{"body":""},"podium-bronze":{"body":""},"podium-gold":{"body":""},"podium-silver":{"body":""},"point-of-sale":{"body":""},"pokeball":{"body":""},"pokemon-go":{"body":""},"poker-chip":{"body":""},"polaroid":{"body":""},"police-badge":{"body":""},"police-badge-outline":{"body":""},"police-station":{"body":""},"poll":{"body":""},"polo":{"body":""},"polymer":{"body":""},"pool":{"body":""},"pool-thermometer":{"body":""},"popcorn":{"body":""},"post":{"body":""},"post-lamp":{"body":""},"post-outline":{"body":""},"postage-stamp":{"body":""},"pot":{"body":""},"pot-mix":{"body":""},"pot-mix-outline":{"body":""},"pot-outline":{"body":""},"pot-steam":{"body":""},"pot-steam-outline":{"body":""},"pound":{"body":""},"pound-box":{"body":""},"pound-box-outline":{"body":""},"power":{"body":""},"power-cycle":{"body":""},"power-off":{"body":""},"power-on":{"body":""},"power-plug":{"body":""},"power-plug-off":{"body":""},"power-plug-off-outline":{"body":""},"power-plug-outline":{"body":""},"power-settings":{"body":""},"power-sleep":{"body":""},"power-socket":{"body":""},"power-socket-au":{"body":""},"power-socket-ch":{"body":""},"power-socket-de":{"body":""},"power-socket-eu":{"body":""},"power-socket-fr":{"body":""},"power-socket-it":{"body":""},"power-socket-jp":{"body":""},"power-socket-uk":{"body":""},"power-socket-us":{"body":""},"power-standby":{"body":""},"powershell":{"body":""},"prescription":{"body":""},"presentation":{"body":""},"presentation-play":{"body":""},"pretzel":{"body":""},"prezi":{"body":"","hidden":true},"printer":{"body":""},"printer-3d":{"body":""},"printer-3d-nozzle":{"body":""},"printer-3d-nozzle-alert":{"body":""},"printer-3d-nozzle-alert-outline":{"body":""},"printer-3d-nozzle-heat":{"body":""},"printer-3d-nozzle-heat-outline":{"body":""},"printer-3d-nozzle-off":{"body":""},"printer-3d-nozzle-off-outline":{"body":""},"printer-3d-nozzle-outline":{"body":""},"printer-3d-off":{"body":""},"printer-alert":{"body":""},"printer-check":{"body":""},"printer-eye":{"body":""},"printer-off":{"body":""},"printer-off-outline":{"body":""},"printer-outline":{"body":""},"printer-pos":{"body":""},"printer-pos-alert":{"body":""},"printer-pos-alert-outline":{"body":""},"printer-pos-cancel":{"body":""},"printer-pos-cancel-outline":{"body":""},"printer-pos-check":{"body":""},"printer-pos-check-outline":{"body":""},"printer-pos-cog":{"body":""},"printer-pos-cog-outline":{"body":""},"printer-pos-edit":{"body":""},"printer-pos-edit-outline":{"body":""},"printer-pos-minus":{"body":""},"printer-pos-minus-outline":{"body":""},"printer-pos-network":{"body":""},"printer-pos-network-outline":{"body":""},"printer-pos-off":{"body":""},"printer-pos-off-outline":{"body":""},"printer-pos-outline":{"body":""},"printer-pos-pause":{"body":""},"printer-pos-pause-outline":{"body":""},"printer-pos-play":{"body":""},"printer-pos-play-outline":{"body":""},"printer-pos-plus":{"body":""},"printer-pos-plus-outline":{"body":""},"printer-pos-refresh":{"body":""},"printer-pos-refresh-outline":{"body":""},"printer-pos-remove":{"body":""},"printer-pos-remove-outline":{"body":""},"printer-pos-star":{"body":""},"printer-pos-star-outline":{"body":""},"printer-pos-stop":{"body":""},"printer-pos-stop-outline":{"body":""},"printer-pos-sync":{"body":""},"printer-pos-sync-outline":{"body":""},"printer-pos-wrench":{"body":""},"printer-pos-wrench-outline":{"body":""},"printer-search":{"body":""},"printer-settings":{"body":""},"printer-wireless":{"body":""},"priority-high":{"body":""},"priority-low":{"body":""},"professional-hexagon":{"body":""},"progress-alert":{"body":""},"progress-check":{"body":""},"progress-clock":{"body":""},"progress-close":{"body":""},"progress-download":{"body":""},"progress-helper":{"body":""},"progress-pencil":{"body":""},"progress-question":{"body":""},"progress-star":{"body":""},"progress-upload":{"body":""},"progress-wrench":{"body":""},"projector":{"body":""},"projector-off":{"body":""},"projector-screen":{"body":""},"projector-screen-off":{"body":""},"projector-screen-off-outline":{"body":""},"projector-screen-outline":{"body":""},"projector-screen-variant":{"body":""},"projector-screen-variant-off":{"body":""},"projector-screen-variant-off-outline":{"body":""},"projector-screen-variant-outline":{"body":""},"propane-tank":{"body":""},"propane-tank-outline":{"body":""},"protocol":{"body":""},"publish":{"body":""},"publish-off":{"body":""},"pulse":{"body":""},"pump":{"body":""},"pump-off":{"body":""},"pumpkin":{"body":""},"purse":{"body":""},"purse-outline":{"body":""},"puzzle":{"body":""},"puzzle-check":{"body":""},"puzzle-check-outline":{"body":""},"puzzle-edit":{"body":""},"puzzle-edit-outline":{"body":""},"puzzle-heart":{"body":""},"puzzle-heart-outline":{"body":""},"puzzle-minus":{"body":""},"puzzle-minus-outline":{"body":""},"puzzle-outline":{"body":""},"puzzle-plus":{"body":""},"puzzle-plus-outline":{"body":""},"puzzle-remove":{"body":""},"puzzle-remove-outline":{"body":""},"puzzle-star":{"body":""},"puzzle-star-outline":{"body":""},"pyramid":{"body":""},"pyramid-off":{"body":""},"qi":{"body":""},"qqchat":{"body":""},"qrcode":{"body":""},"qrcode-edit":{"body":""},"qrcode-minus":{"body":""},"qrcode-plus":{"body":""},"qrcode-remove":{"body":""},"qrcode-scan":{"body":""},"quadcopter":{"body":""},"quality-high":{"body":""},"quality-low":{"body":""},"quality-medium":{"body":""},"quick-reply":{"body":"","hidden":true},"quicktime":{"body":"","hidden":true},"quora":{"body":""},"rabbit":{"body":""},"rabbit-variant":{"body":""},"rabbit-variant-outline":{"body":""},"racing-helmet":{"body":""},"racquetball":{"body":""},"radar":{"body":""},"radiator":{"body":""},"radiator-disabled":{"body":""},"radiator-off":{"body":""},"radio":{"body":""},"radio-am":{"body":""},"radio-fm":{"body":""},"radio-handheld":{"body":""},"radio-off":{"body":""},"radio-tower":{"body":""},"radioactive":{"body":""},"radioactive-circle":{"body":""},"radioactive-circle-outline":{"body":""},"radioactive-off":{"body":""},"radiobox-blank":{"body":""},"radiobox-marked":{"body":""},"radiology-box":{"body":""},"radiology-box-outline":{"body":""},"radius":{"body":""},"radius-outline":{"body":""},"railroad-light":{"body":""},"rake":{"body":""},"raspberry-pi":{"body":""},"raw":{"body":""},"raw-off":{"body":""},"ray-end":{"body":""},"ray-end-arrow":{"body":""},"ray-start":{"body":""},"ray-start-arrow":{"body":""},"ray-start-end":{"body":""},"ray-start-vertex-end":{"body":""},"ray-vertex":{"body":""},"razor-double-edge":{"body":""},"razor-single-edge":{"body":""},"rdio":{"body":"","hidden":true},"react":{"body":""},"read":{"body":""},"receipt":{"body":""},"receipt-outline":{"body":""},"receipt-text":{"body":""},"receipt-text-check":{"body":""},"receipt-text-check-outline":{"body":""},"receipt-text-minus":{"body":""},"receipt-text-minus-outline":{"body":""},"receipt-text-outline":{"body":""},"receipt-text-plus":{"body":""},"receipt-text-plus-outline":{"body":""},"receipt-text-remove":{"body":""},"receipt-text-remove-outline":{"body":""},"record":{"body":""},"record-circle":{"body":""},"record-circle-outline":{"body":""},"record-player":{"body":""},"record-rec":{"body":""},"rectangle":{"body":""},"rectangle-outline":{"body":""},"recycle":{"body":""},"recycle-variant":{"body":""},"reddit":{"body":""},"redhat":{"body":""},"redo":{"body":""},"redo-variant":{"body":""},"reflect-horizontal":{"body":""},"reflect-vertical":{"body":""},"refresh":{"body":""},"refresh-auto":{"body":""},"refresh-circle":{"body":""},"regex":{"body":""},"registered-trademark":{"body":""},"reiterate":{"body":""},"relation-many-to-many":{"body":""},"relation-many-to-one":{"body":""},"relation-many-to-one-or-many":{"body":""},"relation-many-to-only-one":{"body":""},"relation-many-to-zero-or-many":{"body":""},"relation-many-to-zero-or-one":{"body":""},"relation-one-or-many-to-many":{"body":""},"relation-one-or-many-to-one":{"body":""},"relation-one-or-many-to-one-or-many":{"body":""},"relation-one-or-many-to-only-one":{"body":""},"relation-one-or-many-to-zero-or-many":{"body":""},"relation-one-or-many-to-zero-or-one":{"body":""},"relation-one-to-many":{"body":""},"relation-one-to-one":{"body":""},"relation-one-to-one-or-many":{"body":""},"relation-one-to-only-one":{"body":""},"relation-one-to-zero-or-many":{"body":""},"relation-one-to-zero-or-one":{"body":""},"relation-only-one-to-many":{"body":""},"relation-only-one-to-one":{"body":""},"relation-only-one-to-one-or-many":{"body":""},"relation-only-one-to-only-one":{"body":""},"relation-only-one-to-zero-or-many":{"body":""},"relation-only-one-to-zero-or-one":{"body":""},"relation-zero-or-many-to-many":{"body":""},"relation-zero-or-many-to-one":{"body":""},"relation-zero-or-many-to-one-or-many":{"body":""},"relation-zero-or-many-to-only-one":{"body":""},"relation-zero-or-many-to-zero-or-many":{"body":""},"relation-zero-or-many-to-zero-or-one":{"body":""},"relation-zero-or-one-to-many":{"body":""},"relation-zero-or-one-to-one":{"body":""},"relation-zero-or-one-to-one-or-many":{"body":""},"relation-zero-or-one-to-only-one":{"body":""},"relation-zero-or-one-to-zero-or-many":{"body":""},"relation-zero-or-one-to-zero-or-one":{"body":""},"relative-scale":{"body":""},"reload":{"body":""},"reload-alert":{"body":""},"reminder":{"body":""},"remote":{"body":""},"remote-desktop":{"body":""},"remote-off":{"body":""},"remote-tv":{"body":""},"remote-tv-off":{"body":""},"rename":{"body":""},"rename-box":{"body":""},"rename-box-outline":{"body":""},"rename-outline":{"body":""},"reorder-horizontal":{"body":""},"reorder-vertical":{"body":""},"repeat":{"body":""},"repeat-off":{"body":""},"repeat-once":{"body":""},"repeat-variant":{"body":""},"replay":{"body":""},"reply":{"body":""},"reply-all":{"body":""},"reply-all-outline":{"body":""},"reply-circle":{"body":""},"reply-outline":{"body":""},"reproduction":{"body":""},"resistor":{"body":""},"resistor-nodes":{"body":""},"resize":{"body":""},"resize-bottom-right":{"body":""},"responsive":{"body":""},"restart":{"body":""},"restart-alert":{"body":""},"restart-off":{"body":""},"restore":{"body":""},"restore-alert":{"body":""},"rewind":{"body":""},"rewind-10":{"body":""},"rewind-15":{"body":""},"rewind-30":{"body":""},"rewind-45":{"body":""},"rewind-5":{"body":""},"rewind-60":{"body":""},"rewind-outline":{"body":""},"rhombus":{"body":""},"rhombus-medium":{"body":""},"rhombus-medium-outline":{"body":""},"rhombus-outline":{"body":""},"rhombus-split":{"body":""},"rhombus-split-outline":{"body":""},"ribbon":{"body":""},"rice":{"body":""},"rickshaw":{"body":""},"rickshaw-electric":{"body":""},"ring":{"body":""},"rivet":{"body":""},"road":{"body":""},"road-variant":{"body":""},"robber":{"body":""},"robot":{"body":""},"robot-angry":{"body":""},"robot-angry-outline":{"body":""},"robot-confused":{"body":""},"robot-confused-outline":{"body":""},"robot-dead":{"body":""},"robot-dead-outline":{"body":""},"robot-excited":{"body":""},"robot-excited-outline":{"body":""},"robot-happy":{"body":""},"robot-happy-outline":{"body":""},"robot-industrial":{"body":""},"robot-industrial-outline":{"body":""},"robot-love":{"body":""},"robot-love-outline":{"body":""},"robot-mower":{"body":""},"robot-mower-outline":{"body":""},"robot-off":{"body":""},"robot-off-outline":{"body":""},"robot-outline":{"body":""},"robot-vacuum":{"body":""},"robot-vacuum-alert":{"body":""},"robot-vacuum-off":{"body":""},"robot-vacuum-variant":{"body":""},"robot-vacuum-variant-alert":{"body":""},"robot-vacuum-variant-off":{"body":""},"rocket":{"body":""},"rocket-launch":{"body":""},"rocket-launch-outline":{"body":""},"rocket-outline":{"body":""},"rodent":{"body":""},"roller-shade":{"body":""},"roller-shade-closed":{"body":""},"roller-skate":{"body":""},"roller-skate-off":{"body":""},"rollerblade":{"body":""},"rollerblade-off":{"body":""},"rollupjs":{"body":""},"rolodex":{"body":""},"rolodex-outline":{"body":""},"roman-numeral-1":{"body":""},"roman-numeral-10":{"body":""},"roman-numeral-2":{"body":""},"roman-numeral-3":{"body":""},"roman-numeral-4":{"body":""},"roman-numeral-5":{"body":""},"roman-numeral-6":{"body":""},"roman-numeral-7":{"body":""},"roman-numeral-8":{"body":""},"roman-numeral-9":{"body":""},"room-service":{"body":""},"room-service-outline":{"body":""},"rotate-360":{"body":""},"rotate-3d":{"body":""},"rotate-3d-variant":{"body":""},"rotate-left":{"body":""},"rotate-left-variant":{"body":""},"rotate-orbit":{"body":""},"rotate-right":{"body":""},"rotate-right-variant":{"body":""},"rounded-corner":{"body":""},"router":{"body":""},"router-network":{"body":""},"router-wireless":{"body":""},"router-wireless-off":{"body":""},"router-wireless-settings":{"body":""},"routes":{"body":""},"routes-clock":{"body":""},"rowing":{"body":""},"rss":{"body":""},"rss-box":{"body":""},"rss-off":{"body":""},"rug":{"body":""},"rugby":{"body":""},"ruler":{"body":""},"ruler-square":{"body":""},"ruler-square-compass":{"body":""},"run":{"body":""},"run-fast":{"body":""},"rv-truck":{"body":""},"sack":{"body":""},"sack-percent":{"body":""},"safe":{"body":""},"safe-square":{"body":""},"safe-square-outline":{"body":""},"safety-goggles":{"body":""},"safety-googles":{"body":"","hidden":true},"sail-boat":{"body":""},"sail-boat-sink":{"body":""},"sale":{"body":""},"sale-outline":{"body":""},"salesforce":{"body":""},"sass":{"body":""},"satellite":{"body":""},"satellite-uplink":{"body":""},"satellite-variant":{"body":""},"sausage":{"body":""},"sausage-off":{"body":""},"saw-blade":{"body":""},"sawtooth-wave":{"body":""},"saxophone":{"body":""},"scale":{"body":""},"scale-balance":{"body":""},"scale-bathroom":{"body":""},"scale-off":{"body":""},"scale-unbalanced":{"body":""},"scan-helper":{"body":""},"scanner":{"body":""},"scanner-off":{"body":""},"scatter-plot":{"body":""},"scatter-plot-outline":{"body":""},"scent":{"body":""},"scent-off":{"body":""},"school":{"body":""},"school-outline":{"body":""},"scissors-cutting":{"body":""},"scooter":{"body":""},"scooter-electric":{"body":""},"scoreboard":{"body":""},"scoreboard-outline":{"body":""},"screen-rotation":{"body":""},"screen-rotation-lock":{"body":""},"screw-flat-top":{"body":""},"screw-lag":{"body":""},"screw-machine-flat-top":{"body":""},"screw-machine-round-top":{"body":""},"screw-round-top":{"body":""},"screwdriver":{"body":""},"script":{"body":""},"script-outline":{"body":""},"script-text":{"body":""},"script-text-key":{"body":""},"script-text-key-outline":{"body":""},"script-text-outline":{"body":""},"script-text-play":{"body":""},"script-text-play-outline":{"body":""},"sd":{"body":""},"seal":{"body":""},"seal-variant":{"body":""},"search-web":{"body":""},"seat":{"body":""},"seat-flat":{"body":""},"seat-flat-angled":{"body":""},"seat-individual-suite":{"body":""},"seat-legroom-extra":{"body":""},"seat-legroom-normal":{"body":""},"seat-legroom-reduced":{"body":""},"seat-outline":{"body":""},"seat-passenger":{"body":""},"seat-recline-extra":{"body":""},"seat-recline-normal":{"body":""},"seatbelt":{"body":""},"security":{"body":""},"security-close":{"body":"","hidden":true},"security-network":{"body":""},"seed":{"body":""},"seed-off":{"body":""},"seed-off-outline":{"body":""},"seed-outline":{"body":""},"seed-plus":{"body":""},"seed-plus-outline":{"body":""},"seesaw":{"body":""},"segment":{"body":""},"select":{"body":""},"select-all":{"body":""},"select-arrow-down":{"body":""},"select-arrow-up":{"body":""},"select-color":{"body":""},"select-compare":{"body":""},"select-drag":{"body":""},"select-group":{"body":""},"select-inverse":{"body":""},"select-marker":{"body":""},"select-multiple":{"body":""},"select-multiple-marker":{"body":""},"select-off":{"body":""},"select-place":{"body":""},"select-remove":{"body":""},"select-search":{"body":""},"selection":{"body":""},"selection-drag":{"body":""},"selection-ellipse":{"body":""},"selection-ellipse-arrow-inside":{"body":""},"selection-ellipse-remove":{"body":""},"selection-lasso":{"body":"","hidden":true},"selection-marker":{"body":""},"selection-multiple":{"body":""},"selection-multiple-marker":{"body":""},"selection-off":{"body":""},"selection-remove":{"body":""},"selection-search":{"body":""},"semantic-web":{"body":""},"send":{"body":""},"send-check":{"body":""},"send-check-outline":{"body":""},"send-circle":{"body":""},"send-circle-outline":{"body":""},"send-clock":{"body":""},"send-clock-outline":{"body":""},"send-lock":{"body":""},"send-lock-outline":{"body":""},"send-outline":{"body":""},"serial-port":{"body":""},"server":{"body":""},"server-minus":{"body":""},"server-network":{"body":""},"server-network-off":{"body":""},"server-off":{"body":""},"server-plus":{"body":""},"server-remove":{"body":""},"server-security":{"body":""},"set-all":{"body":""},"set-center":{"body":""},"set-center-right":{"body":""},"set-left":{"body":""},"set-left-center":{"body":""},"set-left-right":{"body":""},"set-merge":{"body":""},"set-none":{"body":""},"set-right":{"body":""},"set-split":{"body":""},"set-square":{"body":""},"set-top-box":{"body":""},"settings-helper":{"body":""},"shaker":{"body":""},"shaker-outline":{"body":""},"shape":{"body":""},"shape-circle-plus":{"body":""},"shape-outline":{"body":""},"shape-oval-plus":{"body":""},"shape-plus":{"body":""},"shape-polygon-plus":{"body":""},"shape-rectangle-plus":{"body":""},"shape-square-plus":{"body":""},"shape-square-rounded-plus":{"body":""},"share":{"body":""},"share-all":{"body":""},"share-all-outline":{"body":""},"share-circle":{"body":""},"share-off":{"body":""},"share-off-outline":{"body":""},"share-outline":{"body":""},"share-variant":{"body":""},"share-variant-outline":{"body":""},"shark":{"body":""},"shark-fin":{"body":""},"shark-fin-outline":{"body":""},"shark-off":{"body":""},"sheep":{"body":""},"shield":{"body":""},"shield-account":{"body":""},"shield-account-outline":{"body":""},"shield-account-variant":{"body":""},"shield-account-variant-outline":{"body":""},"shield-airplane":{"body":""},"shield-airplane-outline":{"body":""},"shield-alert":{"body":""},"shield-alert-outline":{"body":""},"shield-bug":{"body":""},"shield-bug-outline":{"body":""},"shield-car":{"body":""},"shield-check":{"body":""},"shield-check-outline":{"body":""},"shield-cross":{"body":""},"shield-cross-outline":{"body":""},"shield-crown":{"body":""},"shield-crown-outline":{"body":""},"shield-edit":{"body":""},"shield-edit-outline":{"body":""},"shield-half":{"body":""},"shield-half-full":{"body":""},"shield-home":{"body":""},"shield-home-outline":{"body":""},"shield-key":{"body":""},"shield-key-outline":{"body":""},"shield-link-variant":{"body":""},"shield-link-variant-outline":{"body":""},"shield-lock":{"body":""},"shield-lock-open":{"body":""},"shield-lock-open-outline":{"body":""},"shield-lock-outline":{"body":""},"shield-moon":{"body":""},"shield-moon-outline":{"body":""},"shield-off":{"body":""},"shield-off-outline":{"body":""},"shield-outline":{"body":""},"shield-plus":{"body":""},"shield-plus-outline":{"body":""},"shield-refresh":{"body":""},"shield-refresh-outline":{"body":""},"shield-remove":{"body":""},"shield-remove-outline":{"body":""},"shield-search":{"body":""},"shield-star":{"body":""},"shield-star-outline":{"body":""},"shield-sun":{"body":""},"shield-sun-outline":{"body":""},"shield-sword":{"body":""},"shield-sword-outline":{"body":""},"shield-sync":{"body":""},"shield-sync-outline":{"body":""},"shimmer":{"body":""},"ship-wheel":{"body":""},"shipping-pallet":{"body":""},"shoe-ballet":{"body":""},"shoe-cleat":{"body":""},"shoe-formal":{"body":""},"shoe-heel":{"body":""},"shoe-print":{"body":""},"shoe-sneaker":{"body":""},"shopify":{"body":"","hidden":true},"shopping":{"body":""},"shopping-music":{"body":""},"shopping-outline":{"body":""},"shopping-search":{"body":""},"shopping-search-outline":{"body":""},"shore":{"body":""},"shovel":{"body":""},"shovel-off":{"body":""},"shower":{"body":""},"shower-head":{"body":""},"shredder":{"body":""},"shuffle":{"body":""},"shuffle-disabled":{"body":""},"shuffle-variant":{"body":""},"shuriken":{"body":""},"sickle":{"body":""},"sigma":{"body":""},"sigma-lower":{"body":""},"sign-caution":{"body":""},"sign-direction":{"body":""},"sign-direction-minus":{"body":""},"sign-direction-plus":{"body":""},"sign-direction-remove":{"body":""},"sign-language":{"body":""},"sign-language-outline":{"body":""},"sign-pole":{"body":""},"sign-real-estate":{"body":""},"sign-text":{"body":""},"sign-yield":{"body":""},"signal":{"body":""},"signal-2g":{"body":""},"signal-3g":{"body":""},"signal-4g":{"body":""},"signal-5g":{"body":""},"signal-cellular-1":{"body":""},"signal-cellular-2":{"body":""},"signal-cellular-3":{"body":""},"signal-cellular-outline":{"body":""},"signal-distance-variant":{"body":""},"signal-hspa":{"body":""},"signal-hspa-plus":{"body":""},"signal-off":{"body":""},"signal-variant":{"body":""},"signature":{"body":""},"signature-freehand":{"body":""},"signature-image":{"body":""},"signature-text":{"body":""},"silo":{"body":""},"silo-outline":{"body":""},"silverware":{"body":""},"silverware-clean":{"body":""},"silverware-fork":{"body":""},"silverware-fork-knife":{"body":""},"silverware-spoon":{"body":""},"silverware-variant":{"body":""},"sim":{"body":""},"sim-alert":{"body":""},"sim-alert-outline":{"body":""},"sim-off":{"body":""},"sim-off-outline":{"body":""},"sim-outline":{"body":""},"simple-icons":{"body":""},"sina-weibo":{"body":""},"sine-wave":{"body":""},"sitemap":{"body":""},"sitemap-outline":{"body":""},"size-l":{"body":""},"size-m":{"body":""},"size-s":{"body":""},"size-xl":{"body":""},"size-xs":{"body":""},"size-xxl":{"body":""},"size-xxs":{"body":""},"size-xxxl":{"body":""},"skate":{"body":""},"skate-off":{"body":""},"skateboard":{"body":""},"skateboarding":{"body":""},"skew-less":{"body":""},"skew-more":{"body":""},"ski":{"body":""},"ski-cross-country":{"body":""},"ski-water":{"body":""},"skip-backward":{"body":""},"skip-backward-outline":{"body":""},"skip-forward":{"body":""},"skip-forward-outline":{"body":""},"skip-next":{"body":""},"skip-next-circle":{"body":""},"skip-next-circle-outline":{"body":""},"skip-next-outline":{"body":""},"skip-previous":{"body":""},"skip-previous-circle":{"body":""},"skip-previous-circle-outline":{"body":""},"skip-previous-outline":{"body":""},"skull":{"body":""},"skull-crossbones":{"body":""},"skull-crossbones-outline":{"body":""},"skull-outline":{"body":""},"skull-scan":{"body":""},"skull-scan-outline":{"body":""},"skype":{"body":""},"skype-business":{"body":""},"slack":{"body":""},"slackware":{"body":"","hidden":true},"slash-forward":{"body":""},"slash-forward-box":{"body":""},"sledding":{"body":""},"sleep":{"body":""},"sleep-off":{"body":""},"slide":{"body":""},"slope-downhill":{"body":""},"slope-uphill":{"body":""},"slot-machine":{"body":""},"slot-machine-outline":{"body":""},"smart-card":{"body":""},"smart-card-off":{"body":""},"smart-card-off-outline":{"body":""},"smart-card-outline":{"body":""},"smart-card-reader":{"body":""},"smart-card-reader-outline":{"body":""},"smog":{"body":""},"smoke":{"body":""},"smoke-detector":{"body":""},"smoke-detector-alert":{"body":""},"smoke-detector-alert-outline":{"body":""},"smoke-detector-off":{"body":""},"smoke-detector-off-outline":{"body":""},"smoke-detector-outline":{"body":""},"smoke-detector-variant":{"body":""},"smoke-detector-variant-alert":{"body":""},"smoke-detector-variant-off":{"body":""},"smoking":{"body":""},"smoking-off":{"body":""},"smoking-pipe":{"body":""},"smoking-pipe-off":{"body":""},"snail":{"body":""},"snake":{"body":""},"snapchat":{"body":""},"snowboard":{"body":""},"snowflake":{"body":""},"snowflake-alert":{"body":""},"snowflake-check":{"body":""},"snowflake-melt":{"body":""},"snowflake-off":{"body":""},"snowflake-thermometer":{"body":""},"snowflake-variant":{"body":""},"snowman":{"body":""},"snowmobile":{"body":""},"snowshoeing":{"body":""},"soccer":{"body":""},"soccer-field":{"body":""},"social-distance-2-meters":{"body":""},"social-distance-6-feet":{"body":""},"sofa":{"body":""},"sofa-outline":{"body":""},"sofa-single":{"body":""},"sofa-single-outline":{"body":""},"solar-panel":{"body":""},"solar-panel-large":{"body":""},"solar-power":{"body":""},"solar-power-variant":{"body":""},"solar-power-variant-outline":{"body":""},"soldering-iron":{"body":""},"solid":{"body":""},"sony-playstation":{"body":""},"sort":{"body":""},"sort-alphabetical-ascending":{"body":""},"sort-alphabetical-ascending-variant":{"body":""},"sort-alphabetical-descending":{"body":""},"sort-alphabetical-descending-variant":{"body":""},"sort-alphabetical-variant":{"body":""},"sort-ascending":{"body":""},"sort-bool-ascending":{"body":""},"sort-bool-ascending-variant":{"body":""},"sort-bool-descending":{"body":""},"sort-bool-descending-variant":{"body":""},"sort-calendar-ascending":{"body":""},"sort-calendar-descending":{"body":""},"sort-clock-ascending":{"body":""},"sort-clock-ascending-outline":{"body":""},"sort-clock-descending":{"body":""},"sort-clock-descending-outline":{"body":""},"sort-descending":{"body":""},"sort-numeric-ascending":{"body":""},"sort-numeric-ascending-variant":{"body":""},"sort-numeric-descending":{"body":""},"sort-numeric-descending-variant":{"body":""},"sort-numeric-variant":{"body":""},"sort-reverse-variant":{"body":""},"sort-variant":{"body":""},"sort-variant-lock":{"body":""},"sort-variant-lock-open":{"body":""},"sort-variant-off":{"body":""},"sort-variant-remove":{"body":""},"soundbar":{"body":""},"soundcloud":{"body":""},"source-branch":{"body":""},"source-branch-check":{"body":""},"source-branch-minus":{"body":""},"source-branch-plus":{"body":""},"source-branch-refresh":{"body":""},"source-branch-remove":{"body":""},"source-branch-sync":{"body":""},"source-commit":{"body":""},"source-commit-end":{"body":""},"source-commit-end-local":{"body":""},"source-commit-local":{"body":""},"source-commit-next-local":{"body":""},"source-commit-start":{"body":""},"source-commit-start-next-local":{"body":""},"source-fork":{"body":""},"source-merge":{"body":""},"source-pull":{"body":""},"source-repository":{"body":""},"source-repository-multiple":{"body":""},"soy-sauce":{"body":""},"soy-sauce-off":{"body":""},"spa":{"body":""},"spa-outline":{"body":""},"space-invaders":{"body":""},"space-station":{"body":""},"spade":{"body":""},"speaker":{"body":""},"speaker-bluetooth":{"body":""},"speaker-message":{"body":""},"speaker-multiple":{"body":""},"speaker-off":{"body":""},"speaker-pause":{"body":""},"speaker-play":{"body":""},"speaker-stop":{"body":""},"speaker-wireless":{"body":""},"spear":{"body":""},"speedometer":{"body":""},"speedometer-medium":{"body":""},"speedometer-slow":{"body":""},"spellcheck":{"body":""},"sphere":{"body":""},"sphere-off":{"body":""},"spider":{"body":""},"spider-thread":{"body":""},"spider-web":{"body":""},"spirit-level":{"body":""},"split-horizontal":{"body":"","hidden":true},"split-vertical":{"body":"","hidden":true},"spoon-sugar":{"body":""},"spotify":{"body":""},"spotlight":{"body":""},"spotlight-beam":{"body":""},"spray":{"body":""},"spray-bottle":{"body":""},"spreadsheet":{"body":"","hidden":true},"sprinkler":{"body":""},"sprinkler-fire":{"body":""},"sprinkler-variant":{"body":""},"sprout":{"body":""},"sprout-outline":{"body":""},"square":{"body":""},"square-circle":{"body":""},"square-edit-outline":{"body":""},"square-inc":{"body":"","hidden":true},"square-inc-cash":{"body":"","hidden":true},"square-medium":{"body":""},"square-medium-outline":{"body":""},"square-off":{"body":""},"square-off-outline":{"body":""},"square-opacity":{"body":""},"square-outline":{"body":""},"square-root":{"body":""},"square-root-box":{"body":""},"square-rounded":{"body":""},"square-rounded-badge":{"body":""},"square-rounded-badge-outline":{"body":""},"square-rounded-outline":{"body":""},"square-small":{"body":""},"square-wave":{"body":""},"squeegee":{"body":""},"ssh":{"body":""},"stack-exchange":{"body":""},"stack-overflow":{"body":""},"stackpath":{"body":""},"stadium":{"body":""},"stadium-outline":{"body":""},"stadium-variant":{"body":""},"stairs":{"body":""},"stairs-box":{"body":""},"stairs-down":{"body":""},"stairs-up":{"body":""},"stamper":{"body":""},"standard-definition":{"body":""},"star":{"body":""},"star-box":{"body":""},"star-box-multiple":{"body":""},"star-box-multiple-outline":{"body":""},"star-box-outline":{"body":""},"star-check":{"body":""},"star-check-outline":{"body":""},"star-circle":{"body":""},"star-circle-outline":{"body":""},"star-cog":{"body":""},"star-cog-outline":{"body":""},"star-crescent":{"body":""},"star-david":{"body":""},"star-face":{"body":""},"star-four-points":{"body":""},"star-four-points-outline":{"body":""},"star-half":{"body":""},"star-half-full":{"body":""},"star-minus":{"body":""},"star-minus-outline":{"body":""},"star-off":{"body":""},"star-off-outline":{"body":""},"star-outline":{"body":""},"star-plus":{"body":""},"star-plus-outline":{"body":""},"star-remove":{"body":""},"star-remove-outline":{"body":""},"star-settings":{"body":""},"star-settings-outline":{"body":""},"star-shooting":{"body":""},"star-shooting-outline":{"body":""},"star-three-points":{"body":""},"star-three-points-outline":{"body":""},"state-machine":{"body":""},"steam":{"body":""},"steam-box":{"body":"","hidden":true},"steering":{"body":""},"steering-off":{"body":""},"step-backward":{"body":""},"step-backward-2":{"body":""},"step-forward":{"body":""},"step-forward-2":{"body":""},"stethoscope":{"body":""},"sticker":{"body":""},"sticker-alert":{"body":""},"sticker-alert-outline":{"body":""},"sticker-check":{"body":""},"sticker-check-outline":{"body":""},"sticker-circle-outline":{"body":""},"sticker-emoji":{"body":""},"sticker-minus":{"body":""},"sticker-minus-outline":{"body":""},"sticker-outline":{"body":""},"sticker-plus":{"body":""},"sticker-plus-outline":{"body":""},"sticker-remove":{"body":""},"sticker-remove-outline":{"body":""},"sticker-text":{"body":""},"sticker-text-outline":{"body":""},"stocking":{"body":""},"stomach":{"body":""},"stool":{"body":""},"stool-outline":{"body":""},"stop":{"body":""},"stop-circle":{"body":""},"stop-circle-outline":{"body":""},"storage-tank":{"body":""},"storage-tank-outline":{"body":""},"store":{"body":""},"store-24-hour":{"body":""},"store-alert":{"body":""},"store-alert-outline":{"body":""},"store-check":{"body":""},"store-check-outline":{"body":""},"store-clock":{"body":""},"store-clock-outline":{"body":""},"store-cog":{"body":""},"store-cog-outline":{"body":""},"store-edit":{"body":""},"store-edit-outline":{"body":""},"store-marker":{"body":""},"store-marker-outline":{"body":""},"store-minus":{"body":""},"store-minus-outline":{"body":""},"store-off":{"body":""},"store-off-outline":{"body":""},"store-outline":{"body":""},"store-plus":{"body":""},"store-plus-outline":{"body":""},"store-remove":{"body":""},"store-remove-outline":{"body":""},"store-search":{"body":""},"store-search-outline":{"body":""},"store-settings":{"body":""},"store-settings-outline":{"body":""},"storefront":{"body":""},"storefront-check":{"body":""},"storefront-check-outline":{"body":""},"storefront-edit":{"body":""},"storefront-edit-outline":{"body":""},"storefront-minus":{"body":""},"storefront-minus-outline":{"body":""},"storefront-outline":{"body":""},"storefront-plus":{"body":""},"storefront-plus-outline":{"body":""},"storefront-remove":{"body":""},"storefront-remove-outline":{"body":""},"stove":{"body":""},"strategy":{"body":""},"strava":{"body":"","hidden":true},"stretch-to-page":{"body":""},"stretch-to-page-outline":{"body":""},"string-lights":{"body":""},"string-lights-off":{"body":""},"subdirectory-arrow-left":{"body":""},"subdirectory-arrow-right":{"body":""},"submarine":{"body":""},"subtitles":{"body":""},"subtitles-outline":{"body":""},"subway":{"body":""},"subway-alert-variant":{"body":""},"subway-variant":{"body":""},"summit":{"body":""},"sun-angle":{"body":""},"sun-angle-outline":{"body":""},"sun-clock":{"body":""},"sun-clock-outline":{"body":""},"sun-compass":{"body":""},"sun-snowflake":{"body":""},"sun-snowflake-variant":{"body":""},"sun-thermometer":{"body":""},"sun-thermometer-outline":{"body":""},"sun-wireless":{"body":""},"sun-wireless-outline":{"body":""},"sunglasses":{"body":""},"surfing":{"body":""},"surround-sound":{"body":""},"surround-sound-2-0":{"body":""},"surround-sound-2-1":{"body":""},"surround-sound-3-1":{"body":""},"surround-sound-5-1":{"body":""},"surround-sound-5-1-2":{"body":""},"surround-sound-7-1":{"body":""},"svg":{"body":""},"swap-horizontal":{"body":""},"swap-horizontal-bold":{"body":""},"swap-horizontal-circle":{"body":""},"swap-horizontal-circle-outline":{"body":""},"swap-horizontal-variant":{"body":""},"swap-vertical":{"body":""},"swap-vertical-bold":{"body":""},"swap-vertical-circle":{"body":""},"swap-vertical-circle-outline":{"body":""},"swap-vertical-variant":{"body":""},"swim":{"body":""},"switch":{"body":""},"sword":{"body":""},"sword-cross":{"body":""},"syllabary-hangul":{"body":""},"syllabary-hiragana":{"body":""},"syllabary-katakana":{"body":""},"syllabary-katakana-halfwidth":{"body":""},"symbol":{"body":""},"symfony":{"body":""},"synagogue":{"body":""},"synagogue-outline":{"body":""},"sync":{"body":""},"sync-alert":{"body":""},"sync-circle":{"body":""},"sync-off":{"body":""},"tab":{"body":""},"tab-minus":{"body":""},"tab-plus":{"body":""},"tab-remove":{"body":""},"tab-search":{"body":""},"tab-unselected":{"body":""},"table":{"body":""},"table-account":{"body":""},"table-alert":{"body":""},"table-arrow-down":{"body":""},"table-arrow-left":{"body":""},"table-arrow-right":{"body":""},"table-arrow-up":{"body":""},"table-border":{"body":""},"table-cancel":{"body":""},"table-chair":{"body":""},"table-check":{"body":""},"table-clock":{"body":""},"table-cog":{"body":""},"table-column":{"body":""},"table-column-plus-after":{"body":""},"table-column-plus-before":{"body":""},"table-column-remove":{"body":""},"table-column-width":{"body":""},"table-edit":{"body":""},"table-eye":{"body":""},"table-eye-off":{"body":""},"table-filter":{"body":""},"table-furniture":{"body":""},"table-headers-eye":{"body":""},"table-headers-eye-off":{"body":""},"table-heart":{"body":""},"table-key":{"body":""},"table-large":{"body":""},"table-large-plus":{"body":""},"table-large-remove":{"body":""},"table-lock":{"body":""},"table-merge-cells":{"body":""},"table-minus":{"body":""},"table-multiple":{"body":""},"table-network":{"body":""},"table-of-contents":{"body":""},"table-off":{"body":""},"table-picnic":{"body":""},"table-pivot":{"body":""},"table-plus":{"body":""},"table-question":{"body":""},"table-refresh":{"body":""},"table-remove":{"body":""},"table-row":{"body":""},"table-row-height":{"body":""},"table-row-plus-after":{"body":""},"table-row-plus-before":{"body":""},"table-row-remove":{"body":""},"table-search":{"body":""},"table-settings":{"body":""},"table-split-cell":{"body":""},"table-star":{"body":""},"table-sync":{"body":""},"table-tennis":{"body":""},"tablet":{"body":""},"tablet-android":{"body":"","hidden":true},"tablet-cellphone":{"body":""},"tablet-dashboard":{"body":""},"tablet-ipad":{"body":"","hidden":true},"taco":{"body":""},"tag":{"body":""},"tag-arrow-down":{"body":""},"tag-arrow-down-outline":{"body":""},"tag-arrow-left":{"body":""},"tag-arrow-left-outline":{"body":""},"tag-arrow-right":{"body":""},"tag-arrow-right-outline":{"body":""},"tag-arrow-up":{"body":""},"tag-arrow-up-outline":{"body":""},"tag-check":{"body":""},"tag-check-outline":{"body":""},"tag-faces":{"body":""},"tag-heart":{"body":""},"tag-heart-outline":{"body":""},"tag-minus":{"body":""},"tag-minus-outline":{"body":""},"tag-multiple":{"body":""},"tag-multiple-outline":{"body":""},"tag-off":{"body":""},"tag-off-outline":{"body":""},"tag-outline":{"body":""},"tag-plus":{"body":""},"tag-plus-outline":{"body":""},"tag-remove":{"body":""},"tag-remove-outline":{"body":""},"tag-search":{"body":""},"tag-search-outline":{"body":""},"tag-text":{"body":""},"tag-text-outline":{"body":""},"tailwind":{"body":""},"tally-mark-1":{"body":""},"tally-mark-2":{"body":""},"tally-mark-3":{"body":""},"tally-mark-4":{"body":""},"tally-mark-5":{"body":""},"tangram":{"body":""},"tank":{"body":""},"tanker-truck":{"body":""},"tape-drive":{"body":""},"tape-measure":{"body":""},"target":{"body":""},"target-account":{"body":""},"target-variant":{"body":""},"taxi":{"body":""},"tea":{"body":""},"tea-outline":{"body":""},"teamspeak":{"body":"","hidden":true},"teamviewer":{"body":""},"teddy-bear":{"body":""},"telegram":{"body":"","hidden":true},"telescope":{"body":""},"television":{"body":""},"television-ambient-light":{"body":""},"television-box":{"body":""},"television-classic":{"body":""},"television-classic-off":{"body":""},"television-guide":{"body":""},"television-off":{"body":""},"television-pause":{"body":""},"television-play":{"body":""},"television-shimmer":{"body":""},"television-speaker":{"body":""},"television-speaker-off":{"body":""},"television-stop":{"body":""},"temperature-celsius":{"body":""},"temperature-fahrenheit":{"body":""},"temperature-kelvin":{"body":""},"temple-buddhist":{"body":""},"temple-buddhist-outline":{"body":""},"temple-hindu":{"body":""},"temple-hindu-outline":{"body":""},"tennis":{"body":""},"tennis-ball":{"body":""},"tent":{"body":""},"terraform":{"body":""},"terrain":{"body":""},"test-tube":{"body":""},"test-tube-empty":{"body":""},"test-tube-off":{"body":""},"text":{"body":""},"text-account":{"body":""},"text-box":{"body":""},"text-box-check":{"body":""},"text-box-check-outline":{"body":""},"text-box-edit":{"body":""},"text-box-edit-outline":{"body":""},"text-box-minus":{"body":""},"text-box-minus-outline":{"body":""},"text-box-multiple":{"body":""},"text-box-multiple-outline":{"body":""},"text-box-outline":{"body":""},"text-box-plus":{"body":""},"text-box-plus-outline":{"body":""},"text-box-remove":{"body":""},"text-box-remove-outline":{"body":""},"text-box-search":{"body":""},"text-box-search-outline":{"body":""},"text-long":{"body":""},"text-recognition":{"body":""},"text-search":{"body":""},"text-search-variant":{"body":""},"text-shadow":{"body":""},"text-short":{"body":""},"texture":{"body":""},"texture-box":{"body":""},"theater":{"body":""},"theme-light-dark":{"body":""},"thermometer":{"body":""},"thermometer-alert":{"body":""},"thermometer-auto":{"body":""},"thermometer-bluetooth":{"body":""},"thermometer-check":{"body":""},"thermometer-chevron-down":{"body":""},"thermometer-chevron-up":{"body":""},"thermometer-high":{"body":""},"thermometer-lines":{"body":""},"thermometer-low":{"body":""},"thermometer-minus":{"body":""},"thermometer-off":{"body":""},"thermometer-plus":{"body":""},"thermometer-probe":{"body":""},"thermometer-probe-off":{"body":""},"thermometer-water":{"body":""},"thermostat":{"body":""},"thermostat-auto":{"body":""},"thermostat-box":{"body":""},"thermostat-box-auto":{"body":""},"thought-bubble":{"body":""},"thought-bubble-outline":{"body":""},"thumb-down":{"body":""},"thumb-down-outline":{"body":""},"thumb-up":{"body":""},"thumb-up-outline":{"body":""},"thumbs-up-down":{"body":""},"thumbs-up-down-outline":{"body":""},"ticket":{"body":""},"ticket-account":{"body":""},"ticket-confirmation":{"body":""},"ticket-confirmation-outline":{"body":""},"ticket-outline":{"body":""},"ticket-percent":{"body":""},"ticket-percent-outline":{"body":""},"tie":{"body":""},"tilde":{"body":""},"tilde-off":{"body":""},"timelapse":{"body":""},"timeline":{"body":""},"timeline-alert":{"body":""},"timeline-alert-outline":{"body":""},"timeline-check":{"body":""},"timeline-check-outline":{"body":""},"timeline-clock":{"body":""},"timeline-clock-outline":{"body":""},"timeline-minus":{"body":""},"timeline-minus-outline":{"body":""},"timeline-outline":{"body":""},"timeline-plus":{"body":""},"timeline-plus-outline":{"body":""},"timeline-question":{"body":""},"timeline-question-outline":{"body":""},"timeline-remove":{"body":""},"timeline-remove-outline":{"body":""},"timeline-text":{"body":""},"timeline-text-outline":{"body":""},"timer":{"body":""},"timer-10":{"body":""},"timer-3":{"body":""},"timer-alert":{"body":""},"timer-alert-outline":{"body":""},"timer-cancel":{"body":""},"timer-cancel-outline":{"body":""},"timer-check":{"body":""},"timer-check-outline":{"body":""},"timer-cog":{"body":""},"timer-cog-outline":{"body":""},"timer-edit":{"body":""},"timer-edit-outline":{"body":""},"timer-lock":{"body":""},"timer-lock-open":{"body":""},"timer-lock-open-outline":{"body":""},"timer-lock-outline":{"body":""},"timer-marker":{"body":""},"timer-marker-outline":{"body":""},"timer-minus":{"body":""},"timer-minus-outline":{"body":""},"timer-music":{"body":""},"timer-music-outline":{"body":""},"timer-off":{"body":""},"timer-off-outline":{"body":""},"timer-outline":{"body":""},"timer-pause":{"body":""},"timer-pause-outline":{"body":""},"timer-play":{"body":""},"timer-play-outline":{"body":""},"timer-plus":{"body":""},"timer-plus-outline":{"body":""},"timer-refresh":{"body":""},"timer-refresh-outline":{"body":""},"timer-remove":{"body":""},"timer-remove-outline":{"body":""},"timer-sand":{"body":""},"timer-sand-complete":{"body":""},"timer-sand-empty":{"body":""},"timer-sand-full":{"body":""},"timer-sand-paused":{"body":""},"timer-settings":{"body":""},"timer-settings-outline":{"body":""},"timer-star":{"body":""},"timer-star-outline":{"body":""},"timer-stop":{"body":""},"timer-stop-outline":{"body":""},"timer-sync":{"body":""},"timer-sync-outline":{"body":""},"timetable":{"body":""},"tire":{"body":""},"toaster":{"body":""},"toaster-off":{"body":""},"toaster-oven":{"body":""},"toggle-switch":{"body":""},"toggle-switch-off":{"body":""},"toggle-switch-off-outline":{"body":""},"toggle-switch-outline":{"body":""},"toggle-switch-variant":{"body":""},"toggle-switch-variant-off":{"body":""},"toilet":{"body":""},"toolbox":{"body":""},"toolbox-outline":{"body":""},"tools":{"body":""},"tooltip":{"body":""},"tooltip-account":{"body":""},"tooltip-cellphone":{"body":""},"tooltip-check":{"body":""},"tooltip-check-outline":{"body":""},"tooltip-edit":{"body":""},"tooltip-edit-outline":{"body":""},"tooltip-image":{"body":""},"tooltip-image-outline":{"body":""},"tooltip-minus":{"body":""},"tooltip-minus-outline":{"body":""},"tooltip-outline":{"body":""},"tooltip-plus":{"body":""},"tooltip-plus-outline":{"body":""},"tooltip-question":{"body":""},"tooltip-question-outline":{"body":""},"tooltip-remove":{"body":""},"tooltip-remove-outline":{"body":""},"tooltip-text":{"body":""},"tooltip-text-outline":{"body":""},"tooth":{"body":""},"tooth-outline":{"body":""},"toothbrush":{"body":""},"toothbrush-electric":{"body":""},"toothbrush-paste":{"body":""},"tor":{"body":"","hidden":true},"torch":{"body":""},"tortoise":{"body":""},"toslink":{"body":""},"tournament":{"body":""},"tow-truck":{"body":""},"tower-beach":{"body":""},"tower-fire":{"body":""},"town-hall":{"body":""},"toy-brick":{"body":""},"toy-brick-marker":{"body":""},"toy-brick-marker-outline":{"body":""},"toy-brick-minus":{"body":""},"toy-brick-minus-outline":{"body":""},"toy-brick-outline":{"body":""},"toy-brick-plus":{"body":""},"toy-brick-plus-outline":{"body":""},"toy-brick-remove":{"body":""},"toy-brick-remove-outline":{"body":""},"toy-brick-search":{"body":""},"toy-brick-search-outline":{"body":""},"track-light":{"body":""},"track-light-off":{"body":""},"trackpad":{"body":""},"trackpad-lock":{"body":""},"tractor":{"body":""},"tractor-variant":{"body":""},"trademark":{"body":""},"traffic-cone":{"body":""},"traffic-light":{"body":""},"traffic-light-outline":{"body":""},"train":{"body":""},"train-car":{"body":""},"train-car-autorack":{"body":""},"train-car-box":{"body":""},"train-car-box-full":{"body":""},"train-car-box-open":{"body":""},"train-car-caboose":{"body":""},"train-car-centerbeam":{"body":""},"train-car-centerbeam-full":{"body":""},"train-car-container":{"body":""},"train-car-flatbed":{"body":""},"train-car-flatbed-car":{"body":""},"train-car-flatbed-tank":{"body":""},"train-car-gondola":{"body":""},"train-car-gondola-full":{"body":""},"train-car-hopper":{"body":""},"train-car-hopper-covered":{"body":""},"train-car-hopper-full":{"body":""},"train-car-intermodal":{"body":""},"train-car-passenger":{"body":""},"train-car-passenger-door":{"body":""},"train-car-passenger-door-open":{"body":""},"train-car-passenger-variant":{"body":""},"train-car-tank":{"body":""},"train-variant":{"body":""},"tram":{"body":""},"tram-side":{"body":""},"transcribe":{"body":""},"transcribe-close":{"body":""},"transfer":{"body":""},"transfer-down":{"body":""},"transfer-left":{"body":""},"transfer-right":{"body":""},"transfer-up":{"body":""},"transit-connection":{"body":""},"transit-connection-horizontal":{"body":""},"transit-connection-variant":{"body":""},"transit-detour":{"body":""},"transit-skip":{"body":""},"transit-transfer":{"body":""},"transition":{"body":""},"transition-masked":{"body":""},"translate":{"body":""},"translate-off":{"body":""},"translate-variant":{"body":""},"transmission-tower":{"body":""},"transmission-tower-export":{"body":""},"transmission-tower-import":{"body":""},"transmission-tower-off":{"body":""},"trash-can":{"body":""},"trash-can-outline":{"body":""},"tray":{"body":""},"tray-alert":{"body":""},"tray-arrow-down":{"body":""},"tray-arrow-up":{"body":""},"tray-full":{"body":""},"tray-minus":{"body":""},"tray-plus":{"body":""},"tray-remove":{"body":""},"treasure-chest":{"body":""},"tree":{"body":""},"tree-outline":{"body":""},"trello":{"body":""},"trending-down":{"body":""},"trending-neutral":{"body":""},"trending-up":{"body":""},"triangle":{"body":""},"triangle-outline":{"body":""},"triangle-small-down":{"body":""},"triangle-small-up":{"body":""},"triangle-wave":{"body":""},"triforce":{"body":""},"trophy":{"body":""},"trophy-award":{"body":""},"trophy-broken":{"body":""},"trophy-outline":{"body":""},"trophy-variant":{"body":""},"trophy-variant-outline":{"body":""},"truck":{"body":""},"truck-alert":{"body":""},"truck-alert-outline":{"body":""},"truck-cargo-container":{"body":""},"truck-check":{"body":""},"truck-check-outline":{"body":""},"truck-delivery":{"body":""},"truck-delivery-outline":{"body":""},"truck-fast":{"body":""},"truck-fast-outline":{"body":""},"truck-flatbed":{"body":""},"truck-minus":{"body":""},"truck-minus-outline":{"body":""},"truck-outline":{"body":""},"truck-plus":{"body":""},"truck-plus-outline":{"body":""},"truck-remove":{"body":""},"truck-remove-outline":{"body":""},"truck-snowflake":{"body":""},"truck-trailer":{"body":""},"trumpet":{"body":""},"tshirt-crew":{"body":""},"tshirt-crew-outline":{"body":""},"tshirt-v":{"body":""},"tshirt-v-outline":{"body":""},"tsunami":{"body":""},"tumble-dryer":{"body":""},"tumble-dryer-alert":{"body":""},"tumble-dryer-off":{"body":""},"tumblr":{"body":"","hidden":true},"tumblr-box":{"body":"","hidden":true},"tumblr-reblog":{"body":"","hidden":true},"tune":{"body":""},"tune-variant":{"body":""},"tune-vertical":{"body":""},"tune-vertical-variant":{"body":""},"tunnel":{"body":""},"tunnel-outline":{"body":""},"turbine":{"body":""},"turkey":{"body":""},"turnstile":{"body":""},"turnstile-outline":{"body":""},"turtle":{"body":""},"twitch":{"body":""},"twitter":{"body":""},"twitter-box":{"body":"","hidden":true},"twitter-circle":{"body":"","hidden":true},"two-factor-authentication":{"body":""},"typewriter":{"body":""},"uber":{"body":"","hidden":true},"ubisoft":{"body":""},"ubuntu":{"body":""},"ufo":{"body":""},"ufo-outline":{"body":""},"ultra-high-definition":{"body":""},"umbraco":{"body":""},"umbrella":{"body":""},"umbrella-beach":{"body":""},"umbrella-beach-outline":{"body":""},"umbrella-closed":{"body":""},"umbrella-closed-outline":{"body":""},"umbrella-closed-variant":{"body":""},"umbrella-outline":{"body":""},"undo":{"body":""},"undo-variant":{"body":""},"unfold-less-horizontal":{"body":""},"unfold-less-vertical":{"body":""},"unfold-more-horizontal":{"body":""},"unfold-more-vertical":{"body":""},"ungroup":{"body":""},"unicode":{"body":""},"unicorn":{"body":""},"unicorn-variant":{"body":""},"unicycle":{"body":""},"unity":{"body":""},"unreal":{"body":""},"untappd":{"body":"","hidden":true},"update":{"body":""},"upload":{"body":""},"upload-lock":{"body":""},"upload-lock-outline":{"body":""},"upload-multiple":{"body":""},"upload-network":{"body":""},"upload-network-outline":{"body":""},"upload-off":{"body":""},"upload-off-outline":{"body":""},"upload-outline":{"body":""},"usb":{"body":""},"usb-flash-drive":{"body":""},"usb-flash-drive-outline":{"body":""},"usb-port":{"body":""},"vacuum":{"body":""},"vacuum-outline":{"body":""},"valve":{"body":""},"valve-closed":{"body":""},"valve-open":{"body":""},"van-passenger":{"body":""},"van-utility":{"body":""},"vanish":{"body":""},"vanish-quarter":{"body":""},"vanity-light":{"body":""},"variable":{"body":""},"variable-box":{"body":""},"vector-arrange-above":{"body":""},"vector-arrange-below":{"body":""},"vector-bezier":{"body":""},"vector-circle":{"body":""},"vector-circle-variant":{"body":""},"vector-combine":{"body":""},"vector-curve":{"body":""},"vector-difference":{"body":""},"vector-difference-ab":{"body":""},"vector-difference-ba":{"body":""},"vector-ellipse":{"body":""},"vector-intersection":{"body":""},"vector-line":{"body":""},"vector-link":{"body":""},"vector-point":{"body":""},"vector-point-edit":{"body":""},"vector-point-minus":{"body":""},"vector-point-plus":{"body":""},"vector-point-select":{"body":""},"vector-polygon":{"body":""},"vector-polygon-variant":{"body":""},"vector-polyline":{"body":""},"vector-polyline-edit":{"body":""},"vector-polyline-minus":{"body":""},"vector-polyline-plus":{"body":""},"vector-polyline-remove":{"body":""},"vector-radius":{"body":""},"vector-rectangle":{"body":""},"vector-selection":{"body":""},"vector-square":{"body":""},"vector-square-close":{"body":""},"vector-square-edit":{"body":""},"vector-square-minus":{"body":""},"vector-square-open":{"body":""},"vector-square-plus":{"body":""},"vector-square-remove":{"body":""},"vector-triangle":{"body":""},"vector-union":{"body":""},"venmo":{"body":"","hidden":true},"vhs":{"body":""},"vibrate":{"body":""},"vibrate-off":{"body":""},"video":{"body":""},"video-2d":{"body":""},"video-3d":{"body":""},"video-3d-off":{"body":""},"video-3d-variant":{"body":""},"video-4k-box":{"body":""},"video-account":{"body":""},"video-box":{"body":""},"video-box-off":{"body":""},"video-check":{"body":""},"video-check-outline":{"body":""},"video-high-definition":{"body":""},"video-image":{"body":""},"video-input-antenna":{"body":""},"video-input-component":{"body":""},"video-input-hdmi":{"body":""},"video-input-scart":{"body":""},"video-input-svideo":{"body":""},"video-marker":{"body":""},"video-marker-outline":{"body":""},"video-minus":{"body":""},"video-minus-outline":{"body":""},"video-off":{"body":""},"video-off-outline":{"body":""},"video-outline":{"body":""},"video-plus":{"body":""},"video-plus-outline":{"body":""},"video-stabilization":{"body":""},"video-switch":{"body":""},"video-switch-outline":{"body":""},"video-vintage":{"body":""},"video-wireless":{"body":""},"video-wireless-outline":{"body":""},"view-agenda":{"body":""},"view-agenda-outline":{"body":""},"view-array":{"body":""},"view-array-outline":{"body":""},"view-carousel":{"body":""},"view-carousel-outline":{"body":""},"view-column":{"body":""},"view-column-outline":{"body":""},"view-comfy":{"body":""},"view-comfy-outline":{"body":""},"view-compact":{"body":""},"view-compact-outline":{"body":""},"view-dashboard":{"body":""},"view-dashboard-edit":{"body":""},"view-dashboard-edit-outline":{"body":""},"view-dashboard-outline":{"body":""},"view-dashboard-variant":{"body":""},"view-dashboard-variant-outline":{"body":""},"view-day":{"body":""},"view-day-outline":{"body":""},"view-gallery":{"body":""},"view-gallery-outline":{"body":""},"view-grid":{"body":""},"view-grid-outline":{"body":""},"view-grid-plus":{"body":""},"view-grid-plus-outline":{"body":""},"view-headline":{"body":""},"view-list":{"body":""},"view-list-outline":{"body":""},"view-module":{"body":""},"view-module-outline":{"body":""},"view-parallel":{"body":""},"view-parallel-outline":{"body":""},"view-quilt":{"body":""},"view-quilt-outline":{"body":""},"view-sequential":{"body":""},"view-sequential-outline":{"body":""},"view-split-horizontal":{"body":""},"view-split-vertical":{"body":""},"view-stream":{"body":""},"view-stream-outline":{"body":""},"view-week":{"body":""},"view-week-outline":{"body":""},"vimeo":{"body":""},"vine":{"body":"","hidden":true},"violin":{"body":""},"virtual-reality":{"body":""},"virus":{"body":""},"virus-off":{"body":""},"virus-off-outline":{"body":""},"virus-outline":{"body":""},"vk":{"body":"","hidden":true},"vk-box":{"body":"","hidden":true},"vk-circle":{"body":"","hidden":true},"vlc":{"body":""},"voicemail":{"body":""},"volcano":{"body":""},"volcano-outline":{"body":""},"volleyball":{"body":""},"volume":{"body":"","hidden":true},"volume-equal":{"body":""},"volume-high":{"body":""},"volume-low":{"body":""},"volume-medium":{"body":""},"volume-minus":{"body":""},"volume-mute":{"body":""},"volume-off":{"body":""},"volume-plus":{"body":""},"volume-source":{"body":""},"volume-variant-off":{"body":""},"volume-vibrate":{"body":""},"vote":{"body":""},"vote-outline":{"body":""},"vpn":{"body":""},"vuejs":{"body":""},"vuetify":{"body":""},"walk":{"body":""},"wall":{"body":""},"wall-fire":{"body":""},"wall-sconce":{"body":""},"wall-sconce-flat":{"body":""},"wall-sconce-flat-outline":{"body":""},"wall-sconce-flat-variant":{"body":""},"wall-sconce-flat-variant-outline":{"body":""},"wall-sconce-outline":{"body":""},"wall-sconce-round":{"body":""},"wall-sconce-round-outline":{"body":""},"wall-sconce-round-variant":{"body":""},"wall-sconce-round-variant-outline":{"body":""},"wall-sconce-variant":{"body":"","hidden":true},"wallet":{"body":""},"wallet-giftcard":{"body":""},"wallet-membership":{"body":""},"wallet-outline":{"body":""},"wallet-plus":{"body":""},"wallet-plus-outline":{"body":""},"wallet-travel":{"body":""},"wallpaper":{"body":""},"wan":{"body":""},"wardrobe":{"body":""},"wardrobe-outline":{"body":""},"warehouse":{"body":""},"washing-machine":{"body":""},"washing-machine-alert":{"body":""},"washing-machine-off":{"body":""},"watch":{"body":""},"watch-export":{"body":""},"watch-export-variant":{"body":""},"watch-import":{"body":""},"watch-import-variant":{"body":""},"watch-variant":{"body":""},"watch-vibrate":{"body":""},"watch-vibrate-off":{"body":""},"water":{"body":""},"water-alert":{"body":""},"water-alert-outline":{"body":""},"water-boiler":{"body":""},"water-boiler-alert":{"body":""},"water-boiler-auto":{"body":""},"water-boiler-off":{"body":""},"water-check":{"body":""},"water-check-outline":{"body":""},"water-circle":{"body":""},"water-minus":{"body":""},"water-minus-outline":{"body":""},"water-off":{"body":""},"water-off-outline":{"body":""},"water-opacity":{"body":""},"water-outline":{"body":""},"water-percent":{"body":""},"water-percent-alert":{"body":""},"water-plus":{"body":""},"water-plus-outline":{"body":""},"water-polo":{"body":""},"water-pump":{"body":""},"water-pump-off":{"body":""},"water-remove":{"body":""},"water-remove-outline":{"body":""},"water-sync":{"body":""},"water-thermometer":{"body":""},"water-thermometer-outline":{"body":""},"water-well":{"body":""},"water-well-outline":{"body":""},"waterfall":{"body":""},"watering-can":{"body":""},"watering-can-outline":{"body":""},"watermark":{"body":""},"wave":{"body":""},"waveform":{"body":""},"waves":{"body":""},"waves-arrow-left":{"body":""},"waves-arrow-right":{"body":""},"waves-arrow-up":{"body":""},"waze":{"body":""},"weather-cloudy":{"body":""},"weather-cloudy-alert":{"body":""},"weather-cloudy-arrow-right":{"body":""},"weather-cloudy-clock":{"body":""},"weather-dust":{"body":""},"weather-fog":{"body":""},"weather-hail":{"body":""},"weather-hazy":{"body":""},"weather-hurricane":{"body":""},"weather-lightning":{"body":""},"weather-lightning-rainy":{"body":""},"weather-night":{"body":""},"weather-night-partly-cloudy":{"body":""},"weather-partly-cloudy":{"body":""},"weather-partly-lightning":{"body":""},"weather-partly-rainy":{"body":""},"weather-partly-snowy":{"body":""},"weather-partly-snowy-rainy":{"body":""},"weather-pouring":{"body":""},"weather-rainy":{"body":""},"weather-snowy":{"body":""},"weather-snowy-heavy":{"body":""},"weather-snowy-rainy":{"body":""},"weather-sunny":{"body":""},"weather-sunny-alert":{"body":""},"weather-sunny-off":{"body":""},"weather-sunset":{"body":""},"weather-sunset-down":{"body":""},"weather-sunset-up":{"body":""},"weather-tornado":{"body":""},"weather-windy":{"body":""},"weather-windy-variant":{"body":""},"web":{"body":""},"web-box":{"body":""},"web-cancel":{"body":""},"web-check":{"body":""},"web-clock":{"body":""},"web-minus":{"body":""},"web-off":{"body":""},"web-plus":{"body":""},"web-refresh":{"body":""},"web-remove":{"body":""},"web-sync":{"body":""},"webcam":{"body":""},"webcam-off":{"body":""},"webhook":{"body":""},"webpack":{"body":""},"webrtc":{"body":""},"wechat":{"body":""},"weight":{"body":""},"weight-gram":{"body":""},"weight-kilogram":{"body":""},"weight-lifter":{"body":""},"weight-pound":{"body":""},"whatsapp":{"body":""},"wheel-barrow":{"body":""},"wheelchair":{"body":""},"wheelchair-accessibility":{"body":""},"whistle":{"body":""},"whistle-outline":{"body":""},"white-balance-auto":{"body":""},"white-balance-incandescent":{"body":""},"white-balance-iridescent":{"body":""},"white-balance-sunny":{"body":""},"widgets":{"body":""},"widgets-outline":{"body":""},"wifi":{"body":""},"wifi-alert":{"body":""},"wifi-arrow-down":{"body":""},"wifi-arrow-left":{"body":""},"wifi-arrow-left-right":{"body":""},"wifi-arrow-right":{"body":""},"wifi-arrow-up":{"body":""},"wifi-arrow-up-down":{"body":""},"wifi-cancel":{"body":""},"wifi-check":{"body":""},"wifi-cog":{"body":""},"wifi-lock":{"body":""},"wifi-lock-open":{"body":""},"wifi-marker":{"body":""},"wifi-minus":{"body":""},"wifi-off":{"body":""},"wifi-plus":{"body":""},"wifi-refresh":{"body":""},"wifi-remove":{"body":""},"wifi-settings":{"body":""},"wifi-star":{"body":""},"wifi-strength-1":{"body":""},"wifi-strength-1-alert":{"body":""},"wifi-strength-1-lock":{"body":""},"wifi-strength-1-lock-open":{"body":""},"wifi-strength-2":{"body":""},"wifi-strength-2-alert":{"body":""},"wifi-strength-2-lock":{"body":""},"wifi-strength-2-lock-open":{"body":""},"wifi-strength-3":{"body":""},"wifi-strength-3-alert":{"body":""},"wifi-strength-3-lock":{"body":""},"wifi-strength-3-lock-open":{"body":""},"wifi-strength-4":{"body":""},"wifi-strength-4-alert":{"body":""},"wifi-strength-4-lock":{"body":""},"wifi-strength-4-lock-open":{"body":""},"wifi-strength-alert-outline":{"body":""},"wifi-strength-lock-open-outline":{"body":""},"wifi-strength-lock-outline":{"body":""},"wifi-strength-off":{"body":""},"wifi-strength-off-outline":{"body":""},"wifi-strength-outline":{"body":""},"wifi-sync":{"body":""},"wikipedia":{"body":""},"wind-power":{"body":""},"wind-power-outline":{"body":""},"wind-turbine":{"body":""},"wind-turbine-alert":{"body":""},"wind-turbine-check":{"body":""},"window-close":{"body":""},"window-closed":{"body":""},"window-closed-variant":{"body":""},"window-maximize":{"body":""},"window-minimize":{"body":""},"window-open":{"body":""},"window-open-variant":{"body":""},"window-restore":{"body":""},"window-shutter":{"body":""},"window-shutter-alert":{"body":""},"window-shutter-auto":{"body":""},"window-shutter-cog":{"body":""},"window-shutter-open":{"body":""},"window-shutter-settings":{"body":""},"windsock":{"body":""},"wiper":{"body":""},"wiper-wash":{"body":""},"wiper-wash-alert":{"body":""},"wizard-hat":{"body":""},"wordpress":{"body":""},"wrap":{"body":""},"wrap-disabled":{"body":""},"wrench":{"body":""},"wrench-check":{"body":""},"wrench-check-outline":{"body":""},"wrench-clock":{"body":""},"wrench-clock-outline":{"body":""},"wrench-cog":{"body":""},"wrench-cog-outline":{"body":""},"wrench-outline":{"body":""},"wunderlist":{"body":"","hidden":true},"xamarin":{"body":""},"xamarin-outline":{"body":"","hidden":true},"xda":{"body":"","hidden":true},"xing":{"body":"","hidden":true},"xing-circle":{"body":"","hidden":true},"xml":{"body":""},"xmpp":{"body":""},"y-combinator":{"body":"","hidden":true},"yahoo":{"body":""},"yammer":{"body":"","hidden":true},"yeast":{"body":""},"yelp":{"body":"","hidden":true},"yin-yang":{"body":""},"yoga":{"body":""},"youtube":{"body":""},"youtube-gaming":{"body":""},"youtube-studio":{"body":""},"youtube-subscription":{"body":""},"youtube-tv":{"body":""},"yurt":{"body":""},"z-wave":{"body":""},"zend":{"body":""},"zigbee":{"body":""},"zip-box":{"body":""},"zip-box-outline":{"body":""},"zip-disk":{"body":""},"zodiac-aquarius":{"body":""},"zodiac-aries":{"body":""},"zodiac-cancer":{"body":""},"zodiac-capricorn":{"body":""},"zodiac-gemini":{"body":""},"zodiac-leo":{"body":""},"zodiac-libra":{"body":""},"zodiac-pisces":{"body":""},"zodiac-sagittarius":{"body":""},"zodiac-scorpio":{"body":""},"zodiac-taurus":{"body":""},"zodiac-virgo":{"body":""}},"aliases":{"123":{"parent":"numeric"},"1-2-3":{"parent":"numeric"},"123-off":{"parent":"numeric-off"},"1password":{"parent":"onepassword"},"1up":{"parent":"one-up"},"3d-rotation":{"parent":"rotate-3d-variant"},"4k":{"parent":"video-4k-box"},"8-track":{"parent":"eight-track"},"a-b-c":{"parent":"alphabetical"},"a-b-c-off":{"parent":"alphabetical-off"},"abc":{"parent":"alphabetical"},"abc-off":{"parent":"alphabetical-off"},"about":{"parent":"information"},"about-circle":{"parent":"information"},"about-circle-outline":{"parent":"information-outline"},"about-outline":{"parent":"information-outline"},"about-variant":{"parent":"information-variant"},"ac-unit":{"parent":"air-conditioner"},"academic-cap":{"parent":"school"},"academic-cap-outline":{"parent":"school-outline"},"accelerometer":{"parent":"axis-arrow"},"access-alarms":{"parent":"alarm"},"access-point-success":{"parent":"access-point-check"},"access-point-tick":{"parent":"access-point-check"},"access-time":{"parent":"clock-outline"},"accessibility":{"parent":"human"},"accessible":{"parent":"wheelchair"},"account-add":{"parent":"account-plus"},"account-add-outline":{"parent":"account-plus-outline"},"account-badge-alert":{"parent":"badge-account-alert"},"account-badge-alert-outline":{"parent":"badge-account-alert-outline"},"account-badge-horizontal":{"parent":"badge-account-horizontal"},"account-badge-horizontal-outline":{"parent":"badge-account-horizontal-outline"},"account-badge-warning":{"parent":"badge-account-alert"},"account-badge-warning-outline":{"parent":"badge-account-alert-outline"},"account-balance":{"parent":"bank"},"account-balance-wallet":{"parent":"wallet"},"account-balance-wallet-outline":{"parent":"wallet-outline"},"account-boxes":{"parent":"account-box-multiple"},"account-cache":{"parent":"account-sync"},"account-cache-outline":{"parent":"account-sync-outline"},"account-card-details":{"parent":"card-account-details"},"account-card-details-outline":{"parent":"card-account-details-outline"},"account-disability":{"parent":"account-injury"},"account-disability-outline":{"parent":"account-injury-outline"},"account-download":{"parent":"account-arrow-down"},"account-download-outline":{"parent":"account-arrow-down-outline"},"account-favorite":{"parent":"account-star"},"account-funnel":{"parent":"account-filter"},"account-funnel-outline":{"parent":"account-filter-outline"},"account-graduation":{"parent":"account-school"},"account-graduation-outline":{"parent":"account-school-outline"},"account-help":{"parent":"account-question"},"account-help-outline":{"parent":"account-question-outline"},"account-location":{"parent":"tooltip-account"},"account-multiple-2-meters":{"parent":"social-distance-2-meters"},"account-multiple-6-feet":{"parent":"social-distance-6-feet"},"account-multiple-add":{"parent":"account-multiple-plus"},"account-multiple-add-outline":{"parent":"account-multiple-plus-outline"},"account-multiple-success":{"parent":"account-multiple-check"},"account-multiple-success-outline":{"parent":"account-multiple-check-outline"},"account-multiple-tick":{"parent":"account-multiple-check"},"account-multiple-tick-outline":{"parent":"account-multiple-check-outline"},"account-online":{"parent":"account-badge"},"account-online-outline":{"parent":"account-badge-outline"},"account-payment":{"parent":"account-credit-card"},"account-payment-outline":{"parent":"account-credit-card-outline"},"account-pending":{"parent":"account-clock"},"account-pending-outline":{"parent":"account-clock-outline"},"account-pilot":{"parent":"account-tie-hat"},"account-pilot-outline":{"parent":"account-tie-hat-outline"},"account-question-mark":{"parent":"account-question"},"account-question-mark-outline":{"parent":"account-question-outline"},"account-secure":{"parent":"account-lock"},"account-secure-outline":{"parent":"account-lock-outline"},"account-security":{"parent":"account-lock"},"account-security-outline":{"parent":"account-lock-outline"},"account-service":{"parent":"account-wrench"},"account-service-outline":{"parent":"account-wrench-outline"},"account-student":{"parent":"account-school"},"account-student-outline":{"parent":"account-school-outline"},"account-success":{"parent":"account-check"},"account-success-outline":{"parent":"account-check-outline"},"account-supervisor-circle-outlined":{"parent":"account-supervisor-circle-outline"},"account-tick":{"parent":"account-check"},"account-tick-outline":{"parent":"account-check-outline"},"account-unlocked":{"parent":"account-lock-open"},"account-unlocked-outline":{"parent":"account-lock-open-outline"},"account-upload":{"parent":"account-arrow-up"},"account-upload-outline":{"parent":"account-arrow-up-outline"},"account-view":{"parent":"account-eye"},"account-view-outline":{"parent":"account-eye-outline"},"account-warning":{"parent":"account-alert"},"account-warning-outline":{"parent":"account-alert-outline"},"accounts":{"parent":"account-multiple"},"accounts-add":{"parent":"account-multiple-plus"},"accounts-add-outline":{"parent":"account-multiple-plus-outline"},"accounts-check":{"parent":"account-multiple-check"},"accounts-check-outline":{"parent":"account-multiple-check-outline"},"accounts-group":{"parent":"account-group"},"accounts-group-outline":{"parent":"account-group-outline"},"accounts-minus":{"parent":"account-multiple-minus"},"accounts-minus-outline":{"parent":"account-multiple-minus-outline"},"accounts-outline":{"parent":"account-multiple-outline"},"accounts-plus":{"parent":"account-multiple-plus"},"accounts-plus-outline":{"parent":"account-multiple-plus-outline"},"accounts-switch":{"parent":"account-switch"},"accounts-tick":{"parent":"account-multiple-check"},"accounts-tick-outline":{"parent":"account-multiple-check-outline"},"achievement":{"parent":"trophy"},"achievement-award":{"parent":"trophy-award"},"achievement-outline":{"parent":"trophy-outline"},"achievement-variant":{"parent":"trophy-variant"},"achievement-variant-outline":{"parent":"trophy-variant-outline"},"acid":{"parent":"ph"},"adb":{"parent":"android-debug-bridge"},"add":{"parent":"plus"},"add-alarm":{"parent":"alarm-plus"},"add-alert":{"parent":"bell-plus"},"add-alert-outline":{"parent":"bell-plus-outline"},"add-bold":{"parent":"plus-thick"},"add-box":{"parent":"plus-box"},"add-call":{"parent":"phone-plus"},"add-circle":{"parent":"plus-circle"},"add-circle-outline":{"parent":"plus-circle-outline"},"add-location":{"parent":"map-marker-plus"},"add-network":{"parent":"plus-network"},"add-network-outline":{"parent":"plus-network-outline"},"add-shopping-cart":{"parent":"cart-plus"},"add-thick":{"parent":"plus-thick"},"add-to-photos":{"parent":"plus-box-multiple"},"address-marker":{"parent":"map-marker"},"address-marker-outline":{"parent":"map-marker-outline"},"adjuster":{"parent":"knob"},"administrator":{"parent":"security"},"administrator-network":{"parent":"security-network"},"administrator-outline":{"parent":"shield-crown-outline"},"adobe-acrobat":{"parent":"file-pdf-box"},"ads":{"parent":"advertisements"},"ads-off":{"parent":"advertisements-off"},"aed":{"parent":"heart-flash"},"aeroplane":{"parent":"airplane"},"aeroplane-landing":{"parent":"airplane-landing"},"aeroplane-off":{"parent":"airplane-off"},"aeroplane-takeoff":{"parent":"airplane-takeoff"},"aerosol":{"parent":"spray"},"agriculture":{"parent":"tractor-variant"},"air-conditioning":{"parent":"hvac"},"air-conditioning-off":{"parent":"hvac-off"},"air-dehumidifier":{"parent":"air-humidifier-off"},"airline-seat-flat":{"parent":"seat-flat"},"airline-seat-flat-angled":{"parent":"seat-flat-angled"},"airline-seat-individual-suite":{"parent":"seat-individual-suite"},"airline-seat-legroom-extra":{"parent":"seat-legroom-extra"},"airline-seat-legroom-normal":{"parent":"seat-legroom-normal"},"airline-seat-legroom-reduced":{"parent":"seat-legroom-reduced"},"airline-seat-recline-extra":{"parent":"seat-recline-extra"},"airline-seat-recline-normal":{"parent":"seat-recline-normal"},"airplace-success":{"parent":"airplane-check"},"airplane-car":{"parent":"plane-car"},"airplane-date":{"parent":"airplane-clock"},"airplane-find":{"parent":"airplane-search"},"airplane-gps":{"parent":"airplane-marker"},"airplane-location":{"parent":"airplane-marker"},"airplane-schedule":{"parent":"airplane-clock"},"airplane-take-off":{"parent":"airplane-takeoff"},"airplane-tick":{"parent":"airplane-check"},"airplane-time":{"parent":"airplane-clock"},"airplane-train":{"parent":"plane-train"},"airplanemode-active":{"parent":"airplane"},"airplanemode-inactive":{"parent":"airplane-off"},"airplay":{"parent":"cast-variant"},"airport-shuttle":{"parent":"plane-car"},"airport-taxi":{"parent":"plane-car"},"alarm-add":{"parent":"alarm-plus"},"alarm-arm-away":{"parent":"shield-lock"},"alarm-arm-away-outline":{"parent":"shield-lock-outline"},"alarm-arm-home":{"parent":"shield-account"},"alarm-arm-home-outline":{"parent":"shield-account-outline"},"alarm-arm-night":{"parent":"shield-moon"},"alarm-arm-night-outline":{"parent":"shield-moon-outline"},"alarm-clock":{"parent":"alarm"},"alarm-clock-add":{"parent":"alarm-plus"},"alarm-clock-check":{"parent":"alarm-check"},"alarm-clock-multiple":{"parent":"alarm-multiple"},"alarm-clock-off":{"parent":"alarm-off"},"alarm-clock-plus":{"parent":"alarm-plus"},"alarm-clock-snooze":{"parent":"alarm-snooze"},"alarm-clock-tick":{"parent":"alarm-check"},"alarm-clocks":{"parent":"alarm-multiple"},"alarm-on":{"parent":"alarm-check"},"alarm-success":{"parent":"alarm-check"},"alarm-tick":{"parent":"alarm-check"},"alarms":{"parent":"alarm-multiple"},"alcohol":{"parent":"glass-cocktail"},"alert-circle-success":{"parent":"alert-circle-check"},"alert-circle-success-outline":{"parent":"alert-circle-check-outline"},"align-horizontal-centre":{"parent":"align-horizontal-center"},"align-vertical-centre":{"parent":"align-vertical-center"},"all-terrain-vehicle":{"parent":"atv"},"allergen":{"parent":"peanut"},"allergen-off":{"parent":"peanut-off"},"allergen-off-outline":{"parent":"peanut-off-outline"},"allergen-outline":{"parent":"peanut-outline"},"allergy-outline":{"parent":"flower-pollen-outline"},"alphabet-a":{"parent":"alpha-a"},"alphabet-a-box":{"parent":"alpha-a-box"},"alphabet-a-box-outline":{"parent":"alpha-a-box-outline"},"alphabet-a-circle":{"parent":"alpha-a-circle"},"alphabet-a-circle-outline":{"parent":"alpha-a-circle-outline"},"alphabet-b":{"parent":"alpha-b"},"alphabet-b-box":{"parent":"alpha-b-box"},"alphabet-b-box-outline":{"parent":"alpha-b-box-outline"},"alphabet-b-circle":{"parent":"alpha-b-circle"},"alphabet-b-circle-outline":{"parent":"alpha-b-circle-outline"},"alphabet-c":{"parent":"alpha-c"},"alphabet-c-box":{"parent":"alpha-c-box"},"alphabet-c-box-outline":{"parent":"alpha-c-box-outline"},"alphabet-c-circle":{"parent":"alpha-c-circle"},"alphabet-c-circle-outline":{"parent":"alpha-c-circle-outline"},"alphabet-d":{"parent":"alpha-d"},"alphabet-d-box":{"parent":"alpha-d-box"},"alphabet-d-box-outline":{"parent":"alpha-d-box-outline"},"alphabet-d-circle":{"parent":"alpha-d-circle"},"alphabet-d-circle-outline":{"parent":"alpha-d-circle-outline"},"alphabet-e":{"parent":"alpha-e"},"alphabet-e-box":{"parent":"alpha-e-box"},"alphabet-e-box-outline":{"parent":"alpha-e-box-outline"},"alphabet-e-circle":{"parent":"alpha-e-circle"},"alphabet-e-circle-outline":{"parent":"alpha-e-circle-outline"},"alphabet-f":{"parent":"alpha-f"},"alphabet-f-box":{"parent":"alpha-f-box"},"alphabet-f-box-outline":{"parent":"alpha-f-box-outline"},"alphabet-f-circle":{"parent":"alpha-f-circle"},"alphabet-f-circle-outline":{"parent":"alpha-f-circle-outline"},"alphabet-g":{"parent":"alpha-g"},"alphabet-g-box":{"parent":"alpha-g-box"},"alphabet-g-box-outline":{"parent":"alpha-g-box-outline"},"alphabet-g-circle":{"parent":"alpha-g-circle"},"alphabet-g-circle-outline":{"parent":"alpha-g-circle-outline"},"alphabet-h":{"parent":"alpha-h"},"alphabet-h-box":{"parent":"alpha-h-box"},"alphabet-h-box-outline":{"parent":"alpha-h-box-outline"},"alphabet-h-circle":{"parent":"alpha-h-circle"},"alphabet-h-circle-outline":{"parent":"alpha-h-circle-outline"},"alphabet-i":{"parent":"alpha-i"},"alphabet-i-box":{"parent":"alpha-i-box"},"alphabet-i-box-outline":{"parent":"alpha-i-box-outline"},"alphabet-i-circle":{"parent":"alpha-i-circle"},"alphabet-i-circle-outline":{"parent":"alpha-i-circle-outline"},"alphabet-j":{"parent":"alpha-j"},"alphabet-j-box":{"parent":"alpha-j-box"},"alphabet-j-box-outline":{"parent":"alpha-j-box-outline"},"alphabet-j-circle":{"parent":"alpha-j-circle"},"alphabet-j-circle-outline":{"parent":"alpha-j-circle-outline"},"alphabet-k":{"parent":"alpha-k"},"alphabet-k-box":{"parent":"alpha-k-box"},"alphabet-k-box-outline":{"parent":"alpha-k-box-outline"},"alphabet-k-circle":{"parent":"alpha-k-circle"},"alphabet-k-circle-outline":{"parent":"alpha-k-circle-outline"},"alphabet-l":{"parent":"alpha-l"},"alphabet-l-box":{"parent":"alpha-l-box"},"alphabet-l-box-outline":{"parent":"alpha-l-box-outline"},"alphabet-l-circle":{"parent":"alpha-l-circle"},"alphabet-l-circle-outline":{"parent":"alpha-l-circle-outline"},"alphabet-m":{"parent":"alpha-m"},"alphabet-m-box":{"parent":"alpha-m-box"},"alphabet-m-box-outline":{"parent":"alpha-m-box-outline"},"alphabet-m-circle":{"parent":"alpha-m-circle"},"alphabet-m-circle-outline":{"parent":"alpha-m-circle-outline"},"alphabet-n":{"parent":"alpha-n"},"alphabet-n-box":{"parent":"alpha-n-box"},"alphabet-n-box-outline":{"parent":"alpha-n-box-outline"},"alphabet-n-circle":{"parent":"alpha-n-circle"},"alphabet-n-circle-outline":{"parent":"alpha-n-circle-outline"},"alphabet-o":{"parent":"alpha-o"},"alphabet-o-box":{"parent":"alpha-o-box"},"alphabet-o-box-outline":{"parent":"alpha-o-box-outline"},"alphabet-o-circle":{"parent":"alpha-o-circle"},"alphabet-o-circle-outline":{"parent":"alpha-o-circle-outline"},"alphabet-p":{"parent":"alpha-p"},"alphabet-p-box":{"parent":"alpha-p-box"},"alphabet-p-box-outline":{"parent":"alpha-p-box-outline"},"alphabet-p-circle":{"parent":"alpha-p-circle"},"alphabet-p-circle-outline":{"parent":"alpha-p-circle-outline"},"alphabet-q":{"parent":"alpha-q"},"alphabet-q-box":{"parent":"alpha-q-box"},"alphabet-q-box-outline":{"parent":"alpha-q-box-outline"},"alphabet-q-circle":{"parent":"alpha-q-circle"},"alphabet-q-circle-outline":{"parent":"alpha-q-circle-outline"},"alphabet-r":{"parent":"alpha-r"},"alphabet-r-box":{"parent":"alpha-r-box"},"alphabet-r-box-outline":{"parent":"alpha-r-box-outline"},"alphabet-r-circle":{"parent":"alpha-r-circle"},"alphabet-r-circle-outline":{"parent":"alpha-r-circle-outline"},"alphabet-s":{"parent":"alpha-s"},"alphabet-s-box":{"parent":"alpha-s-box"},"alphabet-s-box-outline":{"parent":"alpha-s-box-outline"},"alphabet-s-circle":{"parent":"alpha-s-circle"},"alphabet-s-circle-outline":{"parent":"alpha-s-circle-outline"},"alphabet-t":{"parent":"alpha-t"},"alphabet-t-box":{"parent":"alpha-t-box"},"alphabet-t-box-outline":{"parent":"alpha-t-box-outline"},"alphabet-t-circle":{"parent":"alpha-t-circle"},"alphabet-t-circle-outline":{"parent":"alpha-t-circle-outline"},"alphabet-u":{"parent":"alpha-u"},"alphabet-u-box":{"parent":"alpha-u-box"},"alphabet-u-box-outline":{"parent":"alpha-u-box-outline"},"alphabet-u-circle":{"parent":"alpha-u-circle"},"alphabet-u-circle-outline":{"parent":"alpha-u-circle-outline"},"alphabet-v":{"parent":"alpha-v"},"alphabet-v-box":{"parent":"alpha-v-box"},"alphabet-v-box-outline":{"parent":"alpha-v-box-outline"},"alphabet-v-circle":{"parent":"alpha-v-circle"},"alphabet-v-circle-outline":{"parent":"alpha-v-circle-outline"},"alphabet-w":{"parent":"alpha-w"},"alphabet-w-box":{"parent":"alpha-w-box"},"alphabet-w-box-outline":{"parent":"alpha-w-box-outline"},"alphabet-w-circle":{"parent":"alpha-w-circle"},"alphabet-w-circle-outline":{"parent":"alpha-w-circle-outline"},"alphabet-x":{"parent":"alpha-x"},"alphabet-x-box":{"parent":"alpha-x-box"},"alphabet-x-box-outline":{"parent":"alpha-x-box-outline"},"alphabet-x-circle":{"parent":"alpha-x-circle"},"alphabet-x-circle-outline":{"parent":"alpha-x-circle-outline"},"alphabet-y":{"parent":"alpha-y"},"alphabet-y-box":{"parent":"alpha-y-box"},"alphabet-y-box-outline":{"parent":"alpha-y-box-outline"},"alphabet-y-circle":{"parent":"alpha-y-circle"},"alphabet-y-circle-outline":{"parent":"alpha-y-circle-outline"},"alphabet-z":{"parent":"alpha-z"},"alphabet-z-box":{"parent":"alpha-z-box"},"alphabet-z-box-outline":{"parent":"alpha-z-box-outline"},"alphabet-z-circle":{"parent":"alpha-z-circle"},"alphabet-z-circle-outline":{"parent":"alpha-z-circle-outline"},"alternate-email":{"parent":"at"},"alternating-current":{"parent":"current-ac"},"amazon-clouddrive":{"parent":"amazon-drive"},"ammunition-pistol":{"parent":"magazine-pistol"},"ammunition-rifle":{"parent":"magazine-rifle"},"amp":{"parent":"lightning-bolt-circle"},"amplitude":{"parent":"cosine-wave"},"analog":{"parent":"sine-wave"},"analytics":{"parent":"poll"},"and":{"parent":"ampersand"},"animation-minus":{"parent":"collapse-all"},"animation-minus-outline":{"parent":"collapse-all-outline"},"animation-plus":{"parent":"expand-all"},"animation-plus-outline":{"parent":"expand-all-outline"},"announcement":{"parent":"bullhorn"},"announcement-outline":{"parent":"bullhorn-outline"},"anonymous":{"parent":"incognito"},"anonymous-circle":{"parent":"incognito-circle"},"anonymous-circle-off":{"parent":"incognito-circle-off"},"anonymous-off":{"parent":"incognito-off"},"anti-lock-brake-system":{"parent":"car-brake-abs"},"anti-lock-braking-system":{"parent":"car-brake-abs"},"antivirus":{"parent":"shield-bug"},"antivirus-outline":{"parent":"shield-bug-outline"},"apiarists":{"parent":"beekeeper"},"apiculturists":{"parent":"beekeeper"},"app-badge":{"parent":"checkbox-blank-badge"},"app-badge-outline":{"parent":"checkbox-blank-badge-outline"},"app-notification":{"parent":"checkbox-blank-badge"},"app-notification-outline":{"parent":"checkbox-blank-badge-outline"},"applause":{"parent":"hand-clap"},"applause-off":{"parent":"hand-clap-off"},"apple-airplay":{"parent":"cast-audio-variant"},"apple-ipod":{"parent":"ipod"},"apple-mobileme":{"parent":"apple-icloud"},"application-export-outline":{"parent":"application-export"},"application-import-outline":{"parent":"application-import"},"approval":{"parent":"check-decagram"},"approve":{"parent":"check-decagram"},"aquarium":{"parent":"fishbowl"},"aquarium-outline":{"parent":"fishbowl-outline"},"arachnid":{"parent":"spider"},"arachnid-thread":{"parent":"spider-thread"},"arachnid-web":{"parent":"spider-web"},"architecture":{"parent":"ruler-square"},"archive-add":{"parent":"archive-plus"},"archive-add-outline":{"parent":"archive-plus-outline"},"archive-favorite":{"parent":"archive-star"},"archive-favorite-outline":{"parent":"archive-star-outline"},"archive-location":{"parent":"archive-marker"},"archive-location-outline":{"parent":"archive-marker-outline"},"archive-success":{"parent":"archive-check"},"archive-success-outline":{"parent":"archive-check-outline"},"archive-time":{"parent":"archive-clock"},"archive-time-outline":{"parent":"archive-clock-outline"},"archive-view":{"parent":"archive-eye"},"archive-view-outline":{"parent":"archive-eye-outline"},"arena":{"parent":"stadium"},"arena-outline":{"parent":"stadium-outline"},"arm-barrier":{"parent":"boom-gate"},"arm-barrier-alert":{"parent":"boom-gate-alert"},"arm-barrier-alert-outline":{"parent":"boom-gate-alert-outline"},"arm-barrier-down":{"parent":"boom-gate-arrow-down"},"arm-barrier-down-outline":{"parent":"boom-gate-arrow-down-outline"},"arm-barrier-outline":{"parent":"boom-gate-outline"},"arm-barrier-up":{"parent":"boom-gate-arrow-up"},"arm-barrier-up-outline":{"parent":"boom-gate-arrow-up-outline"},"aroma":{"parent":"scent"},"aroma-off":{"parent":"scent-off"},"arrow":{"parent":"redo"},"arrow-back":{"parent":"arrow-left"},"arrow-back-circle":{"parent":"arrow-left-circle"},"arrow-bottom":{"parent":"arrow-down"},"arrow-bottom-bold":{"parent":"arrow-down-bold"},"arrow-bottom-bold-box":{"parent":"arrow-down-bold-box"},"arrow-bottom-bold-box-outline":{"parent":"arrow-down-bold-box-outline"},"arrow-bottom-bold-circle":{"parent":"arrow-down-bold-circle"},"arrow-bottom-bold-circle-outline":{"parent":"arrow-down-bold-circle-outline"},"arrow-bottom-bold-hexagon-outline":{"parent":"arrow-down-bold-hexagon-outline"},"arrow-bottom-bold-outline":{"parent":"arrow-down-bold-outline"},"arrow-bottom-box":{"parent":"arrow-down-box"},"arrow-bottom-circle":{"parent":"arrow-down-circle"},"arrow-bottom-circle-outline":{"parent":"arrow-down-circle-outline"},"arrow-bottom-drop-circle":{"parent":"arrow-down-drop-circle"},"arrow-bottom-drop-circle-outline":{"parent":"arrow-down-drop-circle-outline"},"arrow-bottom-left-bold":{"parent":"arrow-bottom-left-thick"},"arrow-bottom-right-bold":{"parent":"arrow-bottom-right-thick"},"arrow-bottom-thick":{"parent":"arrow-down-thick"},"arrow-compass":{"parent":"navigation"},"arrow-compress":{"parent":"arrow-collapse"},"arrow-compress-all":{"parent":"arrow-collapse-all"},"arrow-compress-down":{"parent":"arrow-collapse-down"},"arrow-compress-left":{"parent":"arrow-collapse-left"},"arrow-compress-right":{"parent":"arrow-collapse-right"},"arrow-compress-up":{"parent":"arrow-collapse-up"},"arrow-down-drop":{"parent":"menu-down"},"arrow-down-left-bold-outline":{"parent":"arrow-bottom-left-bold-outline"},"arrow-down-left-thick":{"parent":"arrow-bottom-left-thick"},"arrow-down-right-bold-outline":{"parent":"arrow-bottom-right-bold-outline"},"arrow-down-right-thick":{"parent":"arrow-bottom-right-thick"},"arrow-downward":{"parent":"arrow-down"},"arrow-drop-down":{"parent":"menu-down"},"arrow-drop-down-circle":{"parent":"arrow-down-drop-circle"},"arrow-drop-up":{"parent":"menu-up"},"arrow-forward":{"parent":"arrow-right"},"arrow-forward-circle":{"parent":"arrow-right-circle"},"arrow-horizontal-collapse":{"parent":"format-horizontal-align-center"},"arrow-rotate-left":{"parent":"rotate-left"},"arrow-rotate-right":{"parent":"rotate-right"},"arrow-top":{"parent":"arrow-up"},"arrow-top-bold":{"parent":"arrow-up-bold"},"arrow-top-bold-box":{"parent":"arrow-up-bold-box"},"arrow-top-bold-box-outline":{"parent":"arrow-up-bold-box-outline"},"arrow-top-bold-circle":{"parent":"arrow-up-bold-circle"},"arrow-top-bold-circle-outline":{"parent":"arrow-up-bold-circle-outline"},"arrow-top-bold-hexagon-outline":{"parent":"arrow-up-bold-hexagon-outline"},"arrow-top-bold-outline":{"parent":"arrow-up-bold-outline"},"arrow-top-circle":{"parent":"arrow-up-circle"},"arrow-top-circle-outline":{"parent":"arrow-up-circle-outline"},"arrow-top-drop-circle":{"parent":"arrow-up-drop-circle"},"arrow-top-drop-circle-outline":{"parent":"arrow-up-drop-circle-outline"},"arrow-top-left-bold":{"parent":"arrow-top-left-thick"},"arrow-top-right-bold":{"parent":"arrow-top-right-thick"},"arrow-top-thick":{"parent":"arrow-up-thick"},"arrow-up-left-bold-outline":{"parent":"arrow-top-left-bold-outline"},"arrow-up-left-thick":{"parent":"arrow-top-left-thick"},"arrow-up-right-bold-outline":{"parent":"arrow-top-right-bold-outline"},"arrow-up-right-thick":{"parent":"arrow-top-right-thick"},"arrow-upward":{"parent":"arrow-up"},"arrow-vertical-collapse":{"parent":"format-vertical-align-center"},"art":{"parent":"palette"},"artist":{"parent":"account-music"},"artist-outline":{"parent":"account-music-outline"},"asian-noodles":{"parent":"noodles"},"assembly":{"parent":"robot-industrial"},"assignment":{"parent":"clipboard-text"},"assignment-ind":{"parent":"clipboard-account"},"assignment-ind-outline":{"parent":"clipboard-account-outline"},"assignment-late":{"parent":"clipboard-alert"},"assignment-return":{"parent":"clipboard-arrow-left"},"assignment-returned":{"parent":"clipboard-arrow-down"},"assignment-returned-outline":{"parent":"clipboard-arrow-down-outline"},"assignment-turned-in":{"parent":"clipboard-check"},"assistant-photo":{"parent":"flag"},"atomic-bomb":{"parent":"nuke"},"attach-drive":{"parent":"google-drive"},"attach-file":{"parent":"paperclip"},"attach-money":{"parent":"currency-usd"},"attachment-add":{"parent":"attachment-plus"},"attachment-subtract":{"parent":"attachment-minus"},"attachment-tick":{"parent":"attachment-check"},"attachment-vertical":{"parent":"paperclip"},"audio":{"parent":"multimedia"},"audio-book":{"parent":"book-music"},"audio-induction-loop":{"parent":"ear-hearing-loop"},"audio-off":{"parent":"volume-off"},"audiobook":{"parent":"book-music"},"aurora-australis":{"parent":"aurora"},"aurora-borealis":{"parent":"aurora"},"auto-awesome":{"parent":"creation"},"auto-awesome-mosaic":{"parent":"collage"},"auto-awesome-motion":{"parent":"animation"},"auto-fix-high":{"parent":"auto-fix"},"auto-pay":{"parent":"cash-clock"},"auto-start":{"parent":"refresh-auto"},"auto-stop":{"parent":"refresh-auto"},"auto-stories":{"parent":"book-open-page-variant"},"auto-towing":{"parent":"tow-truck"},"autobahn":{"parent":"highway"},"automatic":{"parent":"refresh-auto"},"automatic-gate":{"parent":"boom-gate"},"automatic-gate-alert":{"parent":"boom-gate-alert"},"automatic-gate-alert-outline":{"parent":"boom-gate-alert-outline"},"automatic-gate-down":{"parent":"boom-gate-arrow-down"},"automatic-gate-down-outline":{"parent":"boom-gate-arrow-down-outline"},"automatic-gate-outline":{"parent":"boom-gate-outline"},"automatic-gate-up":{"parent":"boom-gate-arrow-up"},"automatic-gate-up-outline":{"parent":"boom-gate-arrow-up-outline"},"automatic-start":{"parent":"refresh-auto"},"automatic-stop":{"parent":"refresh-auto"},"autonomous":{"parent":"robot-industrial"},"av-receiver":{"parent":"audio-video"},"av-receiver-off":{"parent":"audio-video-off"},"avalanche":{"parent":"landslide"},"avalanche-outline":{"parent":"landslide-outline"},"award":{"parent":"license"},"azure":{"parent":"microsoft-azure"},"azure-devops":{"parent":"microsoft-azure-devops"},"baby-room":{"parent":"cradle"},"baby-room-outline":{"parent":"cradle-outline"},"backpack":{"parent":"bag-personal"},"backpack-off":{"parent":"bag-personal-off"},"backpack-off-outline":{"parent":"bag-personal-off-outline"},"backpack-outline":{"parent":"bag-personal-outline"},"backup":{"parent":"cloud-upload"},"backup-outline":{"parent":"cloud-upload-outline"},"badge":{"parent":"shield-star"},"badge-outline":{"parent":"shield-star-outline"},"bakery":{"parent":"baguette"},"ballet":{"parent":"human-female-dance"},"ban":{"parent":"cancel"},"band-aid":{"parent":"bandage"},"bangladeshi-taka":{"parent":"currency-bdt"},"bank-add":{"parent":"bank-plus"},"bar":{"parent":"beer"},"bar-chart":{"parent":"poll"},"bar-outline":{"parent":"beer-outline"},"barbecue":{"parent":"grill"},"barbecue-outline":{"parent":"grill-outline"},"barbell":{"parent":"dumbbell"},"barcode-scanner":{"parent":"barcode-scan"},"barometer":{"parent":"gauge"},"barrier":{"parent":"boom-gate"},"barrier-alert":{"parent":"boom-gate-alert"},"barrier-alert-outline":{"parent":"boom-gate-alert-outline"},"barrier-down":{"parent":"boom-gate-arrow-down"},"barrier-down-outline":{"parent":"boom-gate-arrow-down-outline"},"barrier-outline":{"parent":"boom-gate-outline"},"barrier-up":{"parent":"boom-gate-arrow-up"},"barrier-up-outline":{"parent":"boom-gate-arrow-up-outline"},"base":{"parent":"ph"},"bassinet":{"parent":"cradle"},"bathroom":{"parent":"shower"},"bathroom-tap":{"parent":"faucet"},"bathroom-tissue":{"parent":"paper-roll"},"bathroom-tissue-outline":{"parent":"paper-roll-outline"},"batter-0-clock":{"parent":"battery-clock-outline"},"battery-0":{"parent":"battery-outline"},"battery-100":{"parent":"battery"},"battery-100-clock":{"parent":"battery-clock"},"battery-add":{"parent":"battery-plus-variant"},"battery-bluetooth-100":{"parent":"battery-bluetooth"},"battery-bluetooth-full":{"parent":"battery-bluetooth"},"battery-charging-full":{"parent":"battery-charging"},"battery-charging-wireless-0":{"parent":"battery-charging-wireless-outline"},"battery-charging-wireless-100":{"parent":"battery-charging-wireless"},"battery-charging-wireless-empty":{"parent":"battery-charging-wireless-outline"},"battery-charging-wireless-full":{"parent":"battery-charging-wireless"},"battery-charging-wireless-warning":{"parent":"battery-charging-wireless-alert"},"battery-eco":{"parent":"battery-sync"},"battery-eco-outline":{"parent":"battery-sync-outline"},"battery-empty":{"parent":"battery-outline"},"battery-empty-clock":{"parent":"battery-clock-outline"},"battery-full":{"parent":"battery"},"battery-full-clock":{"parent":"battery-clock"},"battery-recycle":{"parent":"battery-sync"},"battery-recycle-outline":{"parent":"battery-sync-outline"},"battery-saver":{"parent":"battery-plus-variant"},"battery-saver-outline":{"parent":"battery-sync-outline"},"battery-std":{"parent":"battery"},"battery-warning":{"parent":"battery-alert"},"battery-warning-bluetooth":{"parent":"battery-alert-bluetooth"},"battle-net":{"parent":"battlenet"},"bbq":{"parent":"grill"},"bbq-outline":{"parent":"grill-outline"},"beacon":{"parent":"lighthouse"},"beats-per-minute":{"parent":"metronome"},"beats-per-minute-tick":{"parent":"metronome-tick"},"bed-schedule":{"parent":"bed-clock"},"bed-time":{"parent":"bed-clock"},"bedroom":{"parent":"bed-double"},"bedroom-outline":{"parent":"bed-double-outline"},"beef":{"parent":"food-steak"},"beef-off":{"parent":"food-steak-off"},"beenhere":{"parent":"marker-check"},"bell-add":{"parent":"bell-plus"},"bell-add-outline":{"parent":"bell-plus-outline"},"bell-notification":{"parent":"bell-badge"},"bell-notification-outline":{"parent":"bell-badge-outline"},"bell-settings":{"parent":"bell-cog"},"bell-settings-outline":{"parent":"bell-cog-outline"},"bell-warning":{"parent":"bell-alert"},"beverages":{"parent":"liquor"},"bezier":{"parent":"vector-curve"},"bible":{"parent":"book-cross"},"bicycle-antique":{"parent":"bicycle-penny-farthing"},"bicycle-high-wheel":{"parent":"bicycle-penny-farthing"},"bidet":{"parent":"toilet"},"bike-basket":{"parent":"bicycle-basket"},"bike-cargo":{"parent":"bicycle-cargo"},"bike-electric":{"parent":"bicycle-electric"},"billiards-triangle":{"parent":"billiards-rack"},"bin":{"parent":"delete"},"bin-circle":{"parent":"delete-circle"},"bin-circle-outline":{"parent":"delete-circle-outline"},"bin-empty":{"parent":"delete-empty"},"bin-outline":{"parent":"delete-outline"},"bin-restore":{"parent":"delete-restore"},"bin-variant":{"parent":"delete-variant"},"bing":{"parent":"microsoft-bing"},"biography":{"parent":"text-account"},"birthday-cake":{"parent":"cake"},"birthday-cake-outline":{"parent":"cake-variant-outline"},"biscuit":{"parent":"cookie"},"biscuit-alert":{"parent":"cookie-alert"},"biscuit-alert-outline":{"parent":"cookie-alert-outline"},"biscuit-check":{"parent":"cookie-check"},"biscuit-check-outline":{"parent":"cookie-check-outline"},"biscuit-clock":{"parent":"cookie-clock"},"biscuit-clock-outline":{"parent":"cookie-clock-outline"},"biscuit-cog":{"parent":"cookie-cog"},"biscuit-cog-outline":{"parent":"cookie-cog-outline"},"biscuit-crumbs":{"parent":"cookie-settings"},"biscuit-crumbs-outline":{"parent":"cookie-settings-outline"},"biscuit-edit":{"parent":"cookie-edit"},"biscuit-edit-outline":{"parent":"cookie-edit-outline"},"biscuit-lock":{"parent":"cookie-lock"},"biscuit-lock-outline":{"parent":"cookie-lock-outline"},"biscuit-minus":{"parent":"cookie-minus"},"biscuit-minus-outline":{"parent":"cookie-minus-outline"},"biscuit-off":{"parent":"cookie-off"},"biscuit-off-outline":{"parent":"cookie-off-outline"},"biscuit-outline":{"parent":"cookie-outline"},"biscuit-plus":{"parent":"cookie-plus"},"biscuit-plus-outline":{"parent":"cookie-plus-outline"},"biscuit-refresh":{"parent":"cookie-refresh"},"biscuit-refresh-outline":{"parent":"cookie-refresh-outline"},"biscuit-remove":{"parent":"cookie-remove"},"biscuit-remove-outline":{"parent":"cookie-remove-outline"},"biscuit-settings":{"parent":"cookie-settings"},"biscuit-settings-outline":{"parent":"cookie-settings-outline"},"blackboard":{"parent":"human-male-board"},"blinds-closed":{"parent":"roller-shade-closed"},"blinky":{"parent":"ghost"},"block":{"parent":"cancel"},"block-chain":{"parent":"link-lock"},"blog":{"parent":"post"},"blog-outline":{"parent":"post-outline"},"blood":{"parent":"liquid-spot"},"blood-alert":{"parent":"water-alert"},"blood-alert-outline":{"parent":"water-alert-outline"},"blood-check":{"parent":"water-check"},"blood-check-outline":{"parent":"water-check-outline"},"blood-circle":{"parent":"water-circle"},"blood-minus":{"parent":"water-minus"},"blood-minus-outline":{"parent":"water-minus-outline"},"blood-off":{"parent":"water-off"},"blood-off-outline":{"parent":"water-off-outline"},"blood-outline":{"parent":"water-outline"},"blood-plus":{"parent":"water-plus"},"blood-plus-outline":{"parent":"water-plus-outline"},"blood-remove":{"parent":"water-remove"},"blood-remove-outline":{"parent":"water-remove-outline"},"blood-saver":{"parent":"water-opacity"},"blood-transparent":{"parent":"water-opacity"},"bluetooth-connected":{"parent":"bluetooth-connect"},"bluetooth-disabled":{"parent":"bluetooth-off"},"bluetooth-searching":{"parent":"bluetooth-audio"},"blur-circular":{"parent":"blur-radial"},"blur-on":{"parent":"blur"},"boat":{"parent":"ferry"},"boil-point":{"parent":"water-thermometer"},"boil-point-outline":{"parent":"water-thermometer-outline"},"boiling-point":{"parent":"thermometer-water"},"bolnisi-cross":{"parent":"cross-bolnisi"},"book-add":{"parent":"book-plus"},"book-favorite":{"parent":"book-heart"},"book-favorite-outline":{"parent":"book-heart-outline"},"book-image":{"parent":"image-album"},"book-location":{"parent":"book-marker"},"book-location-outline":{"parent":"book-marker-outline"},"book-love":{"parent":"book-heart"},"book-love-outline":{"parent":"book-heart-outline"},"book-multiple-add":{"parent":"book-plus-multiple"},"book-schedule":{"parent":"book-clock"},"book-secure":{"parent":"book-lock"},"book-secure-outline":{"parent":"book-lock-outline"},"book-time":{"parent":"book-clock"},"book-unsecure":{"parent":"book-lock-open"},"bookmark-add":{"parent":"bookmark-plus"},"bookmark-add-outline":{"parent":"bookmark-plus-outline"},"bookmark-border":{"parent":"bookmark-outline"},"bookmark-success":{"parent":"bookmark-check"},"bookmark-success-outline":{"parent":"bookmark-check-outline"},"bookmark-tick":{"parent":"bookmark-check"},"books":{"parent":"book-multiple"},"books-add":{"parent":"book-plus-multiple"},"books-minus":{"parent":"book-minus-multiple"},"books-plus":{"parent":"book-plus-multiple"},"books-remove":{"parent":"book-remove-multiple"},"books-variant":{"parent":"book-variant-multiple"},"boom-arm":{"parent":"boom-gate"},"boom-arm-alert":{"parent":"boom-gate-alert"},"boom-arm-alert-outline":{"parent":"boom-gate-alert-outline"},"boom-arm-down":{"parent":"boom-gate-arrow-down"},"boom-arm-down-outline":{"parent":"boom-gate-arrow-down-outline"},"boom-arm-outline":{"parent":"boom-gate-outline"},"boom-arm-up":{"parent":"boom-gate-arrow-up"},"boom-arm-up-outline":{"parent":"boom-gate-arrow-up-outline"},"boom-barrier":{"parent":"boom-gate"},"boom-barrier-alert":{"parent":"boom-gate-alert"},"boom-barrier-alert-outline":{"parent":"boom-gate-alert-outline"},"boom-barrier-down":{"parent":"boom-gate-arrow-down"},"boom-barrier-down-outline":{"parent":"boom-gate-arrow-down-outline"},"boom-barrier-outline":{"parent":"boom-gate-outline"},"boom-barrier-up":{"parent":"boom-gate-arrow-up"},"boom-barrier-up-outline":{"parent":"boom-gate-arrow-up-outline"},"boom-gate-down":{"parent":"boom-gate-arrow-down"},"boom-gate-down-outline":{"parent":"boom-gate-arrow-down-outline"},"booze":{"parent":"liquor"},"border-clear":{"parent":"border-none"},"border-colour":{"parent":"border-color"},"border-outer":{"parent":"border-outside"},"border-round-corners":{"parent":"border-radius"},"bottle-coke":{"parent":"bottle-soda"},"bottle-coke-classic":{"parent":"bottle-soda-classic"},"bottle-coke-outline":{"parent":"bottle-soda-outline"},"bottle-plus":{"parent":"medication"},"bottle-plus-outline":{"parent":"medication-outline"},"bottle-pop":{"parent":"bottle-soda"},"bottle-pop-classic":{"parent":"bottle-soda-classic"},"bottle-pop-outline":{"parent":"bottle-soda-outline"},"bottle-rocket":{"parent":"firework"},"box-add":{"parent":"archive-plus"},"box-add-outline":{"parent":"archive-plus-outline"},"box-alert":{"parent":"archive-alert"},"box-alert-outline":{"parent":"archive-alert-outline"},"box-arrow-down":{"parent":"archive-arrow-down"},"box-arrow-up":{"parent":"archive-arrow-up"},"box-arrow-up-outline":{"parent":"archive-arrow-up-outline"},"box-cancel":{"parent":"archive-cancel"},"box-cancel-outline":{"parent":"archive-cancel-outline"},"box-check":{"parent":"archive-check"},"box-check-outline":{"parent":"archive-check-outline"},"box-clock":{"parent":"archive-clock"},"box-clock-outline":{"parent":"archive-clock-outline"},"box-cog":{"parent":"archive-cog"},"box-cog-outline":{"parent":"archive-cog-outline"},"box-down":{"parent":"package-down"},"box-edit":{"parent":"archive-edit"},"box-edit-outline":{"parent":"archive-edit-outline"},"box-eye":{"parent":"archive-eye"},"box-eye-outline":{"parent":"archive-eye-outline"},"box-favorite":{"parent":"archive-star"},"box-favorite-outline":{"parent":"archive-star-outline"},"box-location":{"parent":"archive-marker"},"box-location-outline":{"parent":"archive-marker-outline"},"box-lock":{"parent":"archive-lock"},"box-lock-open":{"parent":"archive-lock-open"},"box-lock-open-outline":{"parent":"archive-lock-open-outline"},"box-lock-outline":{"parent":"archive-lock-outline"},"box-marker":{"parent":"archive-marker"},"box-marker-outline":{"parent":"archive-marker-outline"},"box-minus":{"parent":"archive-minus"},"box-minus-outline":{"parent":"archive-minus-outline"},"box-music":{"parent":"archive-music"},"box-music-outline":{"parent":"archive-music-outline"},"box-off":{"parent":"archive-off"},"box-off-outline":{"parent":"archive-off-outline"},"box-outline":{"parent":"archive-outline"},"box-plus":{"parent":"archive-plus"},"box-plus-outline":{"parent":"archive-plus-outline"},"box-refresh":{"parent":"archive-refresh"},"box-refresh-outline":{"parent":"archive-refresh-outline"},"box-remove":{"parent":"archive-remove"},"box-remove-outline":{"parent":"archive-remove-outline"},"box-search":{"parent":"archive-search"},"box-search-outline":{"parent":"archive-search-outline"},"box-settings":{"parent":"archive-settings"},"box-settings-outline":{"parent":"archive-settings-outline"},"box-star":{"parent":"archive-star"},"box-star-outline":{"parent":"archive-star-outline"},"box-success":{"parent":"archive-check"},"box-success-outline":{"parent":"archive-check-outline"},"box-sync":{"parent":"archive-sync"},"box-sync-outline":{"parent":"archive-sync-outline"},"box-time":{"parent":"archive-clock"},"box-time-outline":{"parent":"archive-clock-outline"},"box-up":{"parent":"package-up"},"box-variant":{"parent":"package-variant"},"box-variant-add":{"parent":"package-variant-plus"},"box-variant-closed":{"parent":"package-variant-closed"},"box-variant-closed-add":{"parent":"package-variant-closed-plus"},"box-variant-closed-minus":{"parent":"package-variant-closed-minus"},"box-variant-closed-plus":{"parent":"package-variant-closed-plus"},"box-variant-closed-remove":{"parent":"package-variant-closed-remove"},"box-variant-closed-subtract":{"parent":"package-variant-closed-minus"},"box-variant-minus":{"parent":"package-variant-minus"},"box-variant-plus":{"parent":"package-variant-plus"},"box-variant-remove":{"parent":"package-variant-remove"},"box-variant-subtract":{"parent":"package-variant-minus"},"box-view":{"parent":"archive-eye"},"box-view-outline":{"parent":"archive-eye-outline"},"bpm":{"parent":"metronome"},"bpm-tick":{"parent":"metronome-tick"},"bra":{"parent":"lingerie"},"bracket":{"parent":"tournament"},"brain-freeze":{"parent":"head-snowflake"},"brain-freeze-outline":{"parent":"head-snowflake-outline"},"branding-watermark":{"parent":"watermark"},"brazilian-real":{"parent":"currency-brl"},"bread":{"parent":"baguette"},"breast-feed":{"parent":"mother-nurse"},"bricks":{"parent":"wall"},"briefcase-add":{"parent":"briefcase-plus"},"briefcase-add-outline":{"parent":"briefcase-plus-outline"},"briefcase-exchange":{"parent":"briefcase-arrow-left-right"},"briefcase-exchange-outline":{"parent":"briefcase-arrow-left-right-outline"},"briefcase-person":{"parent":"briefcase-account"},"briefcase-person-outline":{"parent":"briefcase-account-outline"},"briefcase-swap":{"parent":"briefcase-arrow-left-right"},"briefcase-swap-outline":{"parent":"briefcase-arrow-left-right-outline"},"briefcase-tick":{"parent":"briefcase-check"},"briefcase-transfer":{"parent":"briefcase-arrow-left-right"},"briefcase-transfer-outline":{"parent":"briefcase-arrow-left-right-outline"},"briefcase-user":{"parent":"briefcase-account"},"briefcase-user-outline":{"parent":"briefcase-account-outline"},"briefcase-view":{"parent":"briefcase-eye"},"briefcase-view-outline":{"parent":"briefcase-eye-outline"},"brightness-half":{"parent":"circle-half"},"brightness-high":{"parent":"brightness-7"},"brightness-low":{"parent":"brightness-5"},"brightness-medium":{"parent":"brightness-6"},"broken-image":{"parent":"image-broken-variant"},"bubble-chart":{"parent":"chart-bubble"},"bucket-minus":{"parent":"pail-minus"},"bucket-minus-outline":{"parent":"pail-minus-outline"},"bucket-off":{"parent":"pail-off"},"bucket-off-outline":{"parent":"pail-off-outline"},"bucket-plus":{"parent":"pail-plus"},"bucket-plus-outline":{"parent":"pail-plus-outline"},"bucket-remove":{"parent":"pail-remove"},"bucket-remove-outline":{"parent":"pail-remove-outline"},"buddhism":{"parent":"dharmachakra"},"bug-report":{"parent":"bug"},"bug-start":{"parent":"bug-play"},"bug-tick":{"parent":"bug-check"},"bug-tick-outline":{"parent":"bug-check-outline"},"bugfood":{"parent":"ladybug"},"buggy":{"parent":"baby-carriage"},"buggy-off":{"parent":"baby-carriage-off"},"build":{"parent":"wrench"},"build-outline":{"parent":"wrench-outline"},"building":{"parent":"domain"},"bulb":{"parent":"lightbulb"},"bulb-cfl":{"parent":"lightbulb-cfl"},"bulb-cfl-off":{"parent":"lightbulb-cfl-off"},"bulb-cfl-spiral":{"parent":"lightbulb-cfl-spiral"},"bulb-cfl-spiral-off":{"parent":"lightbulb-cfl-spiral-off"},"bulb-group":{"parent":"lightbulb-group"},"bulb-group-off":{"parent":"lightbulb-group-off"},"bulb-group-off-outline":{"parent":"lightbulb-group-off-outline"},"bulb-group-outline":{"parent":"lightbulb-group-outline"},"bulb-multiple":{"parent":"lightbulb-multiple"},"bulb-multiple-off":{"parent":"lightbulb-multiple-off"},"bulb-multiple-off-outline":{"parent":"lightbulb-multiple-off-outline"},"bulb-multiple-outline":{"parent":"lightbulb-multiple-outline"},"bulb-off":{"parent":"lightbulb-off"},"bulb-off-outline":{"parent":"lightbulb-off-outline"},"bulb-on":{"parent":"lightbulb-on"},"bulb-on-outline":{"parent":"lightbulb-on-outline"},"bulb-outline":{"parent":"lightbulb-outline"},"bulbs":{"parent":"lightbulb-multiple"},"bulbs-multiple-off-outline":{"parent":"lightbulb-multiple-off-outline"},"bulbs-off":{"parent":"lightbulb-multiple-off"},"bulbs-off-outline":{"parent":"lightbulb-multiple-off-outline"},"bulbs-outline":{"parent":"lightbulb-multiple-outline"},"bullets":{"parent":"ammunition"},"bunny":{"parent":"rabbit"},"bunny-outline":{"parent":"rabbit-variant-outline"},"burger":{"parent":"food"},"burger-add":{"parent":"hamburger-plus"},"burger-check":{"parent":"hamburger-check"},"burger-minus":{"parent":"hamburger-minus"},"burger-off":{"parent":"food-off"},"burger-plus":{"parent":"hamburger-plus"},"burger-remove":{"parent":"hamburger-remove"},"burst-mode":{"parent":"camera-burst"},"bus-location":{"parent":"bus-marker"},"bus-warning":{"parent":"bus-alert"},"business":{"parent":"domain"},"business-card":{"parent":"card-account-details"},"business-card-outline":{"parent":"card-account-details-outline"},"business-outline":{"parent":"handshake-outline"},"business-woman":{"parent":"account-tie-woman"},"button":{"parent":"card"},"button-outline":{"parent":"card-outline"},"cab":{"parent":"taxi"},"cable-car":{"parent":"gondola"},"calendar-add":{"parent":"calendar-plus"},"calendar-auto":{"parent":"calendar-star-four-points"},"calendar-day":{"parent":"calendar-today"},"calendar-day-outline":{"parent":"calendar-today-outline"},"calendar-favorite":{"parent":"calendar-star"},"calendar-help":{"parent":"calendar-question"},"calendar-help-outline":{"parent":"calendar-question-outline"},"calendar-multiple-tick":{"parent":"calendar-multiple-check"},"calendar-repeat":{"parent":"calendar-refresh"},"calendar-repeat-outline":{"parent":"calendar-refresh-outline"},"calendar-rsvp":{"parent":"calendar-question"},"calendar-task":{"parent":"calendar-check"},"calendar-task-outline":{"parent":"calendar-check-outline"},"calendar-tick":{"parent":"calendar-check"},"calendar-tick-outline":{"parent":"calendar-check-outline"},"calendar-time":{"parent":"calendar-clock"},"calendar-user":{"parent":"calendar-account"},"calendar-user-outline":{"parent":"calendar-account-outline"},"calendar-warning":{"parent":"calendar-alert"},"calendars":{"parent":"calendar-multiple"},"calendars-check":{"parent":"calendar-multiple-check"},"calendars-tick":{"parent":"calendar-multiple-check"},"call":{"parent":"phone"},"call-bell":{"parent":"room-service"},"call-bell-outline":{"parent":"room-service-outline"},"call-end":{"parent":"phone-hangup"},"call-outline":{"parent":"phone-outline"},"call-to-action":{"parent":"gesture-tap-button"},"camcorder-box":{"parent":"video-box"},"camcorder-box-off":{"parent":"video-box-off"},"camera-alt":{"parent":"camera"},"camera-location":{"parent":"camera-marker"},"camera-location-outline":{"parent":"camera-marker-outline"},"camera-metering-centre":{"parent":"camera-metering-center"},"camera-refresh":{"parent":"camera-flip"},"camera-refresh-outline":{"parent":"camera-flip-outline"},"camera-roll":{"parent":"film"},"camera-sync":{"parent":"camera-flip"},"camera-sync-outline":{"parent":"camera-flip-outline"},"camera-user":{"parent":"camera-account"},"campervan":{"parent":"rv-truck"},"camping":{"parent":"tent"},"can-light":{"parent":"light-recessed"},"cancel-bold":{"parent":"close-thick"},"cancel-box":{"parent":"close-box"},"cancel-box-multiple":{"parent":"close-box-multiple"},"cancel-box-outline":{"parent":"close-box-outline"},"cancel-circle":{"parent":"close-circle"},"cancel-circle-multiple-outline":{"parent":"close-circle-multiple-outline"},"cancel-circle-outline":{"parent":"close-circle-outline"},"cancel-network":{"parent":"close-network"},"cancel-network-outline":{"parent":"close-network-outline"},"cancel-octagon":{"parent":"close-octagon"},"cancel-octagon-outline":{"parent":"close-octagon-outline"},"cancel-outline":{"parent":"close-outline"},"cancel-thick":{"parent":"close-thick"},"candelabra-flame":{"parent":"candelabra-fire"},"candelabra-lamp":{"parent":"chandelier"},"candelabrum":{"parent":"candelabra"},"candelabrum-fire":{"parent":"candelabra-fire"},"candelabrum-flame":{"parent":"candelabra-fire"},"candle-fire":{"parent":"candelabra-fire"},"candle-flame":{"parent":"candelabra-fire"},"canine":{"parent":"dog-service"},"capsule":{"parent":"pill"},"capsule-off":{"parent":"pill-off"},"car-autonomous":{"parent":"car-wireless"},"car-brake-warning":{"parent":"car-brake-alert"},"car-emergency-brake":{"parent":"car-brake-alert"},"car-engine-start":{"parent":"reload"},"car-find":{"parent":"car-search"},"car-find-outline":{"parent":"car-search-outline"},"car-front-glass":{"parent":"car-windshield"},"car-front-glass-outline":{"parent":"car-windshield-outline"},"car-hand-brake":{"parent":"car-brake-alert"},"car-handbrake":{"parent":"car-brake-alert"},"car-horn":{"parent":"bugle"},"car-insurance":{"parent":"shield-car"},"car-location":{"parent":"car-select"},"car-manual-transmission":{"parent":"car-shift-pattern"},"car-park":{"parent":"parking"},"car-parking-brake":{"parent":"car-brake-alert"},"car-police":{"parent":"car-emergency"},"car-rental":{"parent":"car-key"},"car-repair":{"parent":"car-wrench"},"car-saloon":{"parent":"car-side"},"car-security":{"parent":"shield-car"},"car-self-driving":{"parent":"car-wireless"},"car-smart":{"parent":"car-wireless"},"car-sports-utility-vehicle":{"parent":"car-estate"},"car-suv":{"parent":"car-estate"},"car-tire-warning":{"parent":"car-tire-alert"},"car-transmission":{"parent":"car-shift-pattern"},"car-tyre-alert":{"parent":"car-tire-alert"},"car-tyre-warning":{"parent":"car-tire-alert"},"carbon-monoxide":{"parent":"molecule-co"},"card-account-details-favorite":{"parent":"card-account-details-star"},"card-account-details-favorite-outline":{"parent":"card-account-details-star-outline"},"card-giftcard":{"parent":"wallet-giftcard"},"card-membership":{"parent":"wallet-membership"},"card-travel":{"parent":"wallet-travel"},"cardholder":{"parent":"account-credit-card"},"cardholder-outline":{"parent":"account-credit-card-outline"},"caret":{"parent":"chevron-up"},"caret-down":{"parent":"menu-down"},"caret-down-outline":{"parent":"menu-down-outline"},"caret-up":{"parent":"menu-up"},"caret-up-outline":{"parent":"menu-up-outline"},"cargo-ship":{"parent":"ferry"},"carpentry":{"parent":"ruler-square"},"carpet":{"parent":"rug"},"carpool-lane":{"parent":"car-2-plus"},"carpool-lane-outline":{"parent":"cards-diamond-outline"},"carriage":{"parent":"baby-buggy"},"carriage-lamp":{"parent":"coach-lamp"},"carriage-light":{"parent":"coach-lamp"},"carry-on-bag-check":{"parent":"bag-carry-on-check"},"carry-on-bag-tick":{"parent":"bag-carry-on-check"},"carry-on-luggage":{"parent":"bag-carry-on"},"carry-on-luggage-off":{"parent":"bag-carry-on-off"},"cart-add":{"parent":"cart-plus"},"cart-discount":{"parent":"cart-percent"},"cart-favorite":{"parent":"cart-heart"},"cart-sale":{"parent":"cart-percent"},"cash-chargeback":{"parent":"cash-refund"},"cash-cycle":{"parent":"cash-sync"},"cash-location":{"parent":"cash-marker"},"cash-on-delivery":{"parent":"cash-marker"},"cash-return":{"parent":"cash-refund"},"cash-schedule":{"parent":"cash-clock"},"casino":{"parent":"slot-machine"},"casino-chip":{"parent":"poker-chip"},"casino-outline":{"parent":"slot-machine-outline"},"cast-school":{"parent":"cast-education"},"cast-speaker":{"parent":"cast-audio"},"cast-tutorial":{"parent":"cast-education"},"category":{"parent":"shape"},"category-outline":{"parent":"shape-outline"},"category-plus":{"parent":"shape-plus"},"cc":{"parent":"closed-caption"},"cc-outline":{"parent":"closed-caption-outline"},"cd-rom":{"parent":"disc"},"ceiling-fan-on":{"parent":"ceiling-fan-light"},"ceiling-lamp":{"parent":"ceiling-light"},"ceiling-lamp-multiple":{"parent":"ceiling-light-multiple"},"ceiling-lamp-multiple-outline":{"parent":"ceiling-light-multiple-outline"},"ceiling-light-flat":{"parent":"wall-sconce-flat"},"celebration":{"parent":"party-popper"},"cellphone-download":{"parent":"cellphone-arrow-down-variant"},"cellphone-erase":{"parent":"cellphone-remove"},"cellphone-gps":{"parent":"cellphone-marker"},"cellphone-location":{"parent":"cellphone-marker"},"cellphone-map":{"parent":"cellphone-marker"},"cellphone-settings-variant":{"parent":"cellphone-cog"},"cellphone-system-update":{"parent":"cellphone-arrow-down"},"celtic-cross":{"parent":"cross-celtic"},"cemetery":{"parent":"grave-stone"},"chair":{"parent":"seat"},"chair-accent":{"parent":"seat"},"chair-accent-outline":{"parent":"seat-outline"},"chair-outline":{"parent":"seat-outline"},"change-history":{"parent":"delta"},"charcoal":{"parent":"grill"},"charcoal-outline":{"parent":"grill-outline"},"charging-station":{"parent":"ev-station"},"charity-outline":{"parent":"hand-coin-outline"},"chart-doughnut":{"parent":"chart-donut"},"chart-doughnut-variant":{"parent":"chart-donut-variant"},"chart-finance":{"parent":"finance"},"chart-home":{"parent":"home-analytics"},"chart-production-possibility-frontier":{"parent":"chart-ppf"},"chart-scatterplot-hexbin":{"parent":"chart-scatter-plot-hexbin"},"chart-snakey":{"parent":"chart-sankey"},"chart-snakey-variant":{"parent":"chart-sankey-variant"},"chat-add":{"parent":"forum-plus"},"chat-add-outline":{"parent":"forum-plus-outline"},"chat-bubble":{"parent":"message"},"chat-bubble-outline":{"parent":"message-outline"},"chat-delete":{"parent":"forum-remove"},"chat-delete-outline":{"parent":"forum-remove-outline"},"chat-help":{"parent":"chat-question"},"chat-help-outline":{"parent":"chat-question-outline"},"chat-subtract":{"parent":"forum-minus"},"chat-subtract-outline":{"parent":"forum-minus-outline"},"chat-typing":{"parent":"chat-processing"},"chat-typing-outline":{"parent":"chat-processing-outline"},"chat-warning":{"parent":"chat-alert"},"check-box":{"parent":"checkbox-marked"},"check-box-multiple-outline":{"parent":"checkbox-multiple-outline"},"check-box-outline":{"parent":"checkbox-outline"},"check-box-outline-blank":{"parent":"checkbox-blank-outline"},"check-boxes-outline":{"parent":"checkbox-multiple-outline"},"check-multiple":{"parent":"check-all"},"check-thick":{"parent":"check-bold"},"checkbox-blank-notification":{"parent":"checkbox-blank-badge"},"checkbox-blank-notification-outline":{"parent":"checkbox-blank-badge-outline"},"checkbox-indeterminate":{"parent":"checkbox-intermediate"},"checkbox-indeterminate-outline":{"parent":"minus-box-outline"},"checkbox-indeterminate-variant":{"parent":"checkbox-intermediate-variant"},"checkboxes-blank":{"parent":"checkbox-multiple-blank"},"checkboxes-blank-circle":{"parent":"checkbox-multiple-blank-circle"},"checkboxes-blank-circle-outline":{"parent":"checkbox-multiple-blank-circle-outline"},"checkboxes-blank-outline":{"parent":"checkbox-multiple-blank-outline"},"checkboxes-marked":{"parent":"checkbox-multiple-marked"},"checkboxes-marked-circle":{"parent":"checkbox-multiple-marked-circle"},"checkboxes-marked-circle-outline":{"parent":"checkbox-multiple-marked-circle-outline"},"checkboxes-marked-outline":{"parent":"checkbox-multiple-marked-outline"},"checkboxes-multiple-marked":{"parent":"checkbox-multiple-marked"},"checkers":{"parent":"crown-circle"},"checkers-outline":{"parent":"crown-circle-outline"},"checks":{"parent":"check-all"},"chemist":{"parent":"mortar-pestle-plus"},"cheque-book":{"parent":"checkbook"},"chequebook":{"parent":"checkbook"},"chequebook-arrow-left":{"parent":"checkbook-arrow-left"},"chequebook-arrow-right":{"parent":"checkbook-arrow-right"},"chess-castle":{"parent":"chess-rook"},"chess-horse":{"parent":"chess-knight"},"chess-tower":{"parent":"chess-rook"},"chevron-down-up":{"parent":"unfold-less-horizontal"},"chevron-left-first":{"parent":"page-first"},"chevron-left-right":{"parent":"unfold-more-vertical"},"chevron-right-last":{"parent":"page-last"},"chevron-right-left":{"parent":"unfold-less-vertical"},"chevron-up-down":{"parent":"unfold-more-horizontal"},"chicken-leg":{"parent":"food-drumstick"},"chicken-leg-off":{"parent":"food-drumstick-off"},"chicken-leg-off-outline":{"parent":"food-drumstick-off-outline"},"chicken-leg-outline":{"parent":"food-drumstick-outline"},"child-friendly":{"parent":"baby-carriage"},"child-friendly-off":{"parent":"baby-carriage-off"},"child-toy":{"parent":"teddy-bear"},"children-toy":{"parent":"teddy-bear"},"childrens-room":{"parent":"teddy-bear"},"chilli-hot":{"parent":"chili-hot"},"chilli-medium":{"parent":"chili-medium"},"chilli-mild":{"parent":"chili-mild"},"chilli-off":{"parent":"chili-off"},"chip-32-bit":{"parent":"cpu-32-bit"},"chip-64-bit":{"parent":"cpu-64-bit"},"chips":{"parent":"french-fries"},"chocolate":{"parent":"candy"},"chocolate-off":{"parent":"candy-off"},"chocolate-off-outline":{"parent":"candy-off-outline"},"chocolate-outline":{"parent":"candy-outline"},"christianity":{"parent":"cross"},"christianity-outline":{"parent":"cross-outline"},"christmas-lights":{"parent":"string-lights"},"christmas-lights-off":{"parent":"string-lights-off"},"christmas-star":{"parent":"hexagram"},"christmas-star-outline":{"parent":"hexagram-outline"},"chrome-reader-mode":{"parent":"book-open"},"chromecast":{"parent":"google-chrome"},"cigarette":{"parent":"smoking"},"cigarette-off":{"parent":"smoking-off"},"cinema":{"parent":"theater"},"circle-arrows":{"parent":"autorenew"},"circle-arrows-off":{"parent":"autorenew-off"},"circle-diameter":{"parent":"diameter"},"circle-diameter-outline":{"parent":"diameter-outline"},"circle-diameter-variant":{"parent":"diameter-variant"},"circle-plus-outline":{"parent":"loupe"},"circle-radius":{"parent":"radius"},"circle-radius-outline":{"parent":"radius-outline"},"circle-transparent":{"parent":"circle-opacity"},"circles-add":{"parent":"plus-circle-outline"},"circular-arrows":{"parent":"autorenew"},"circular-arrows-off":{"parent":"autorenew-off"},"clapperboard":{"parent":"movie"},"clapperboard-check":{"parent":"movie-check"},"clapperboard-check-outline":{"parent":"movie-check-outline"},"clapperboard-cog":{"parent":"movie-cog"},"clapperboard-cog-outline":{"parent":"movie-cog-outline"},"clapperboard-edit":{"parent":"movie-edit"},"clapperboard-edit-outline":{"parent":"movie-edit-outline"},"clapperboard-minus":{"parent":"movie-minus"},"clapperboard-minus-outline":{"parent":"movie-minus-outline"},"clapperboard-off":{"parent":"movie-off"},"clapperboard-off-outline":{"parent":"movie-off-outline"},"clapperboard-open":{"parent":"movie-open"},"clapperboard-open-check":{"parent":"movie-open-check"},"clapperboard-open-check-outline":{"parent":"movie-open-check-outline"},"clapperboard-open-cog":{"parent":"movie-open-cog"},"clapperboard-open-cog-outline":{"parent":"movie-open-cog-outline"},"clapperboard-open-edit":{"parent":"movie-open-edit"},"clapperboard-open-edit-outline":{"parent":"movie-open-edit-outline"},"clapperboard-open-minus":{"parent":"movie-open-minus"},"clapperboard-open-minus-outline":{"parent":"movie-open-minus-outline"},"clapperboard-open-off":{"parent":"movie-open-off"},"clapperboard-open-off-outline":{"parent":"movie-open-off-outline"},"clapperboard-open-outline":{"parent":"movie-open-outline"},"clapperboard-open-play":{"parent":"movie-open-play"},"clapperboard-open-play-outline":{"parent":"movie-open-play-outline"},"clapperboard-open-plus":{"parent":"movie-open-plus"},"clapperboard-open-plus-outline":{"parent":"movie-open-plus-outline"},"clapperboard-open-remove":{"parent":"movie-open-remove"},"clapperboard-open-remove-outline":{"parent":"movie-open-remove-outline"},"clapperboard-open-settings":{"parent":"movie-open-settings"},"clapperboard-open-settings-outline":{"parent":"movie-open-settings-outline"},"clapperboard-open-star":{"parent":"movie-open-star"},"clapperboard-open-star-outline":{"parent":"movie-open-star-outline"},"clapperboard-outline":{"parent":"movie-outline"},"clapperboard-play":{"parent":"movie-play"},"clapperboard-play-outline":{"parent":"movie-play-outline"},"clapperboard-plus":{"parent":"movie-plus"},"clapperboard-plus-outline":{"parent":"movie-plus-outline"},"clapperboard-remove":{"parent":"movie-remove"},"clapperboard-remove-outline":{"parent":"movie-remove-outline"},"clapperboard-settings":{"parent":"movie-settings"},"clapperboard-settings-outline":{"parent":"movie-settings-outline"},"clapperboard-star":{"parent":"movie-star"},"clapperboard-star-outline":{"parent":"movie-star-outline"},"class":{"parent":"book-variant"},"cleaning":{"parent":"spray-bottle"},"clear":{"parent":"backspace"},"clear-bold":{"parent":"close-thick"},"clear-box":{"parent":"close-box"},"clear-box-outline":{"parent":"close-box-outline"},"clear-circle":{"parent":"close-circle"},"clear-circle-multiple":{"parent":"close-circle-multiple"},"clear-circle-multiple-outline":{"parent":"close-circle-multiple-outline"},"clear-circle-outline":{"parent":"close-circle-outline"},"clear-network":{"parent":"close-network"},"clear-network-outline":{"parent":"close-network-outline"},"clear-octagon":{"parent":"close-octagon"},"clear-octagon-outline":{"parent":"close-octagon-outline"},"clear-outline":{"parent":"backspace-outline"},"clear-reverse":{"parent":"backspace-reverse"},"clear-reverse-outline":{"parent":"backspace-reverse-outline"},"clear-thick":{"parent":"close-thick"},"climate-change":{"parent":"waves-arrow-up"},"clip":{"parent":"content-cut"},"clipboard-add":{"parent":"clipboard-plus"},"clipboard-arrow-bottom":{"parent":"clipboard-arrow-down"},"clipboard-arrow-bottom-outline":{"parent":"clipboard-arrow-down-outline"},"clipboard-arrow-top":{"parent":"clipboard-arrow-up"},"clipboard-arrow-top-outline":{"parent":"clipboard-arrow-up-outline"},"clipboard-person":{"parent":"clipboard-account"},"clipboard-person-outline":{"parent":"clipboard-account-outline"},"clipboard-text-date":{"parent":"clipboard-text-clock"},"clipboard-text-date-outline":{"parent":"clipboard-text-clock-outline"},"clipboard-text-history":{"parent":"clipboard-text-clock"},"clipboard-text-history-outline":{"parent":"clipboard-text-clock-outline"},"clipboard-text-time":{"parent":"clipboard-text-clock"},"clipboard-text-time-outline":{"parent":"clipboard-text-clock-outline"},"clipboard-tick":{"parent":"clipboard-check"},"clipboard-tick-outline":{"parent":"clipboard-check-outline"},"clipboard-user":{"parent":"clipboard-account"},"clipboard-user-outline":{"parent":"clipboard-account-outline"},"clipboard-vitals":{"parent":"clipboard-pulse"},"clipboard-vitals-outline":{"parent":"clipboard-pulse-outline"},"clipboard-warning":{"parent":"clipboard-alert"},"clipboard-warning-outline":{"parent":"clipboard-alert-outline"},"clock-arrow":{"parent":"history"},"clock-warning":{"parent":"clock-alert"},"clockwise":{"parent":"update"},"clockwise-arrows":{"parent":"autorenew"},"clockwise-arrows-off":{"parent":"autorenew-off"},"close-bold":{"parent":"close-thick"},"close-boxes":{"parent":"close-box-multiple"},"close-boxes-outline":{"parent":"close-box-multiple-outline"},"closed-circuit-television":{"parent":"cctv"},"closed-circuit-television-off":{"parent":"cctv-off"},"closet":{"parent":"hanger"},"closet-outline":{"parent":"wardrobe-outline"},"cloth":{"parent":"receipt"},"cloth-outline":{"parent":"receipt-outline"},"clothes-hanger":{"parent":"hanger"},"cloud-discount":{"parent":"cloud-percent"},"cloud-discount-outline":{"parent":"cloud-percent-outline"},"cloud-done":{"parent":"cloud-check-variant"},"cloud-json":{"parent":"cloud-braces"},"cloud-queue":{"parent":"cloud-outline"},"cloud-tick":{"parent":"cloud-check-variant"},"cloud-warning":{"parent":"cloud-alert"},"cloud-xml":{"parent":"cloud-tags"},"clyde":{"parent":"ghost"},"coach-light":{"parent":"coach-lamp"},"coat-hanger":{"parent":"hanger"},"cobweb":{"parent":"spider-web"},"cocktail":{"parent":"glass-cocktail"},"cod":{"parent":"cash-marker"},"code":{"parent":"xml"},"code-or":{"parent":"math-norm"},"code-or-box":{"parent":"math-norm-box"},"code-tags-tick":{"parent":"code-tags-check"},"coffee-machine":{"parent":"coffee-maker"},"coffee-maker-complete":{"parent":"coffee-maker-check"},"coffee-maker-complete-outline":{"parent":"coffee-maker-check-outline"},"coffee-maker-done":{"parent":"coffee-maker-check"},"coffee-maker-done-outline":{"parent":"coffee-maker-check-outline"},"coin":{"parent":"currency-usd-circle"},"coin-outline":{"parent":"currency-usd-circle-outline"},"coins":{"parent":"circle-multiple"},"coins-close":{"parent":"close-circle-multiple"},"coins-close-outline":{"parent":"close-circle-multiple-outline"},"coins-minus":{"parent":"minus-circle-multiple"},"coins-minus-outline":{"parent":"minus-circle-multiple-outline"},"coins-outline":{"parent":"circle-multiple-outline"},"coins-plus":{"parent":"plus-circle-multiple"},"coins-plus-outline":{"parent":"plus-circle-multiple-outline"},"coins-remove":{"parent":"close-circle-multiple"},"coins-remove-outline":{"parent":"close-circle-multiple-outline"},"cold-alert":{"parent":"snowflake-alert"},"collapse-horizontal":{"parent":"unfold-less-horizontal"},"collapse-vertical":{"parent":"unfold-less-vertical"},"collection":{"parent":"rhombus-split"},"collections":{"parent":"image-multiple"},"collections-bookmark":{"parent":"bookmark-box-multiple"},"collections-bookmark-outline":{"parent":"bookmark-box-multiple-outline"},"college":{"parent":"human-male-board"},"college-outline":{"parent":"school-outline"},"color":{"parent":"palette"},"color-lens":{"parent":"palette"},"colorize":{"parent":"eyedropper-variant"},"colour-helper":{"parent":"color-helper"},"colour-lens":{"parent":"palette"},"colourise":{"parent":"eyedropper-variant"},"column":{"parent":"pillar"},"comedy":{"parent":"drama-masks"},"comic-bubble":{"parent":"thought-bubble"},"comic-thought-bubble-outline":{"parent":"thought-bubble-outline"},"comment-add":{"parent":"comment-plus"},"comment-add-outline":{"parent":"comment-plus-outline"},"comment-help":{"parent":"comment-question"},"comment-help-outline":{"parent":"comment-question-outline"},"comment-next":{"parent":"comment-arrow-right"},"comment-next-outline":{"parent":"comment-arrow-right-outline"},"comment-person":{"parent":"comment-account"},"comment-person-outline":{"parent":"comment-account-outline"},"comment-previous":{"parent":"comment-arrow-left"},"comment-previous-outline":{"parent":"comment-arrow-left-outline"},"comment-quick":{"parent":"comment-flash"},"comment-quick-outline":{"parent":"comment-flash-outline"},"comment-tick":{"parent":"comment-check"},"comment-tick-outline":{"parent":"comment-check-outline"},"comment-user":{"parent":"comment-account"},"comment-user-outline":{"parent":"comment-account-outline"},"comment-warning":{"parent":"comment-alert"},"comment-warning-outline":{"parent":"comment-alert-outline"},"comments":{"parent":"comment-multiple"},"comments-outline":{"parent":"comment-multiple-outline"},"comments-text":{"parent":"comment-text-multiple"},"comments-text-outline":{"parent":"comment-text-multiple-outline"},"communism":{"parent":"hammer-sickle"},"commute":{"parent":"train-car"},"company":{"parent":"domain"},"compress":{"parent":"arrow-collapse-vertical"},"compressed-file":{"parent":"zip-box"},"compressed-file-outline":{"parent":"zip-box-outline"},"compressed-folder":{"parent":"folder-zip"},"compressed-folder-outline":{"parent":"folder-zip-outline"},"computer":{"parent":"laptop"},"computer-classic":{"parent":"desktop-classic"},"confidential-mode":{"parent":"lock-clock"},"confirmation-number":{"parent":"ticket-confirmation"},"confirmation-number-outline":{"parent":"ticket-confirmation-outline"},"connect-without-contact":{"parent":"human-greeting-proximity"},"construction":{"parent":"account-hard-hat"},"construction-outline":{"parent":"account-hard-hat-outline"},"contact":{"parent":"account-box"},"contact-mail":{"parent":"card-account-mail"},"contact-mail-outline":{"parent":"card-account-mail-outline"},"contact-outline":{"parent":"account-box-outline"},"contact-phone":{"parent":"card-account-phone"},"contact-phone-outline":{"parent":"card-account-phone-outline"},"content-save-add":{"parent":"content-save-plus"},"content-save-add-outline":{"parent":"content-save-plus-outline"},"contract":{"parent":"file-document-edit"},"contract-outline":{"parent":"file-document-edit-outline"},"contract-sign":{"parent":"file-sign"},"control-point":{"parent":"plus-circle-outline"},"control-point-duplicate":{"parent":"plus-circle-multiple-outline"},"controlled-burn":{"parent":"pine-tree-fire"},"controller-circle":{"parent":"gamepad-circle"},"controller-circle-down":{"parent":"gamepad-circle-down"},"controller-circle-left":{"parent":"gamepad-circle-left"},"controller-circle-outline":{"parent":"gamepad-circle-outline"},"controller-circle-right":{"parent":"gamepad-circle-right"},"controller-circle-up":{"parent":"gamepad-circle-up"},"controller-down":{"parent":"gamepad-down"},"controller-left":{"parent":"gamepad-left"},"controller-outline":{"parent":"gamepad-outline"},"controller-right":{"parent":"gamepad-right"},"controller-round":{"parent":"gamepad-round"},"controller-round-down":{"parent":"gamepad-round-down"},"controller-round-left":{"parent":"gamepad-round-left"},"controller-round-outline":{"parent":"gamepad-round-outline"},"controller-round-right":{"parent":"gamepad-round-right"},"controller-round-up":{"parent":"gamepad-round-up"},"controller-square":{"parent":"gamepad-square"},"controller-square-outline":{"parent":"gamepad-square-outline"},"controller-up":{"parent":"gamepad-up"},"controller-variant":{"parent":"gamepad-variant"},"controller-variant-outline":{"parent":"gamepad-variant-outline"},"cook":{"parent":"chef-hat"},"cooker":{"parent":"stove"},"cookie-crumbs":{"parent":"cookie-settings"},"cookie-crumbs-outline":{"parent":"cookie-settings-outline"},"cooktop-burner":{"parent":"gas-burner"},"couch":{"parent":"sofa"},"couch-outline":{"parent":"sofa-outline"},"counterclockwise":{"parent":"history"},"counterclockwise-arrows":{"parent":"cached"},"counting-1":{"parent":"tally-mark-1"},"counting-2":{"parent":"tally-mark-2"},"counting-3":{"parent":"tally-mark-3"},"counting-4":{"parent":"tally-mark-4"},"counting-5":{"parent":"tally-mark-5"},"coupon":{"parent":"ticket-percent"},"coupon-outline":{"parent":"ticket-percent-outline"},"courier":{"parent":"truck"},"courier-check":{"parent":"truck-check"},"courier-fast":{"parent":"truck-fast"},"court-hammer":{"parent":"gavel"},"covid-test":{"parent":"medical-cotton-swab"},"cowboy":{"parent":"account-cowboy-hat"},"create":{"parent":"pencil"},"create-new-folder":{"parent":"folder-plus"},"create-new-folder-outline":{"parent":"folder-plus-outline"},"create-outline":{"parent":"pencil-outline"},"credit-card-add":{"parent":"credit-card-plus-outline"},"credit-card-contactless":{"parent":"credit-card-wireless-outline"},"credit-card-icc-chip":{"parent":"credit-card-chip"},"credit-card-icc-chip-outline":{"parent":"credit-card-chip-outline"},"credit-card-location":{"parent":"credit-card-marker"},"credit-card-location-outline":{"parent":"credit-card-marker-outline"},"credit-card-swipe":{"parent":"credit-card-fast"},"credit-card-swipe-outline":{"parent":"credit-card-fast-outline"},"credit-cards":{"parent":"credit-card-multiple-outline"},"crib":{"parent":"cradle"},"cricket-bat":{"parent":"cricket"},"crop-5-4":{"parent":"crop-landscape"},"crossfit":{"parent":"weight-lifter"},"crosshairs-account":{"parent":"target-account"},"crosshairs-unknown":{"parent":"crosshairs-question"},"crowd-source":{"parent":"crowd"},"crowdsource":{"parent":"crowd"},"cruelty-free":{"parent":"rabbit-variant"},"cruelty-free-outline":{"parent":"rabbit-variant-outline"},"cta":{"parent":"gesture-tap-button"},"cup-full":{"parent":"beer"},"cup-full-outline":{"parent":"beer-outline"},"cup-ice":{"parent":"delete-variant"},"cup-liquid":{"parent":"cup-water"},"cup-to-go":{"parent":"coffee-to-go"},"cup-to-go-outline":{"parent":"coffee-to-go-outline"},"currency-hryvnia":{"parent":"currency-uah"},"currency-irr":{"parent":"currency-rial"},"currency-lkr":{"parent":"currency-rupee"},"currency-mongolian-tugrug":{"parent":"currency-mnt"},"currency-npr":{"parent":"currency-rupee"},"currency-omr":{"parent":"currency-rial"},"currency-pkr":{"parent":"currency-rupee"},"currency-riyal":{"parent":"currency-rial"},"currency-sar":{"parent":"currency-rial"},"currency-scarab":{"parent":"currency-sign"},"currency-thai-baht":{"parent":"currency-thb"},"currency-ukraine":{"parent":"currency-uah"},"currency-yer":{"parent":"currency-rial"},"cursor-hand":{"parent":"cursor-pointer"},"customer-service":{"parent":"face-agent"},"cutlery":{"parent":"silverware"},"cutlery-clean":{"parent":"silverware-clean"},"cutlery-fork":{"parent":"silverware-fork"},"cutlery-fork-knife":{"parent":"silverware-fork-knife"},"cutlery-knife":{"parent":"knife"},"cutlery-spoon":{"parent":"silverware-spoon"},"cutlery-variant":{"parent":"silverware-variant"},"cycling":{"parent":"bicycle"},"cyclone":{"parent":"weather-hurricane"},"dad":{"parent":"human-male-boy"},"dagger":{"parent":"knife-military"},"dairy-free":{"parent":"cow-off"},"dairy-off":{"parent":"cow-off"},"dais":{"parent":"lectern"},"dangerous":{"parent":"close-octagon"},"data-settings":{"parent":"network-strength-4-cog"},"data-usage":{"parent":"chart-donut"},"database-add":{"parent":"database-plus"},"database-location":{"parent":"database-marker"},"database-location-outline":{"parent":"database-marker-outline"},"database-tick":{"parent":"database-check"},"database-view":{"parent":"database-eye"},"database-view-off":{"parent":"database-eye-off"},"database-view-off-outline":{"parent":"database-eye-off-outline"},"database-view-outline":{"parent":"database-eye-outline"},"date-range":{"parent":"calendar-range"},"day-temperature":{"parent":"sun-thermometer"},"dead":{"parent":"coffin"},"deal":{"parent":"handshake"},"deal-outline":{"parent":"handshake-outline"},"death":{"parent":"coffin"},"decagram-check":{"parent":"check-decagram"},"decrement":{"parent":"numeric-negative-1"},"decrypted":{"parent":"lock-open"},"decrypted-add":{"parent":"lock-open-plus"},"decrypted-add-outline":{"parent":"lock-open-plus-outline"},"decrypted-alert":{"parent":"lock-open-alert"},"decrypted-alert-outline":{"parent":"lock-open-alert-outline"},"decrypted-check":{"parent":"lock-open-check"},"decrypted-check-outline":{"parent":"lock-open-check-outline"},"decrypted-minus":{"parent":"lock-open-minus"},"decrypted-minus-outline":{"parent":"lock-open-minus-outline"},"decrypted-outline":{"parent":"lock-open-outline"},"decrypted-plus":{"parent":"lock-open-plus"},"decrypted-plus-outline":{"parent":"lock-open-plus-outline"},"decrypted-remove":{"parent":"lock-open-remove"},"decrypted-remove-outline":{"parent":"lock-open-remove-outline"},"decrypted-variant":{"parent":"lock-open-variant"},"decrypted-variant-outline":{"parent":"lock-open-variant-outline"},"decrypted-warning":{"parent":"lock-open-alert"},"decrypted-warning-outline":{"parent":"lock-open-alert-outline"},"defibrillator":{"parent":"heart-flash"},"defrost":{"parent":"snowflake-melt"},"delivery-dining":{"parent":"moped"},"delivery-dining-electric":{"parent":"moped-electric"},"delivery-dining-electric-outline":{"parent":"moped-electric-outline"},"delivery-dining-outline":{"parent":"moped-outline"},"denied":{"parent":"cancel"},"dentist":{"parent":"tooth"},"departure-board":{"parent":"bus-clock"},"dependencies":{"parent":"graph"},"dependency":{"parent":"graph"},"design":{"parent":"pencil-ruler"},"desktop-windows":{"parent":"monitor"},"dew-point":{"parent":"thermometer-water"},"dew-point-outline":{"parent":"water-thermometer-outline"},"dharma-wheel":{"parent":"dharmachakra"},"dial":{"parent":"knob"},"diary":{"parent":"notebook"},"dice-five":{"parent":"dice-5"},"dice-four":{"parent":"dice-4"},"dice-one":{"parent":"dice-1"},"dice-six":{"parent":"dice-6"},"dice-three":{"parent":"dice-3"},"dice-two":{"parent":"dice-2"},"dictionary":{"parent":"book-alphabet"},"die-1":{"parent":"dice-1"},"die-2":{"parent":"dice-2"},"die-3":{"parent":"dice-3"},"die-4":{"parent":"dice-4"},"die-5":{"parent":"dice-5"},"die-6":{"parent":"dice-6"},"die-d10":{"parent":"dice-d10-outline"},"die-d20":{"parent":"dice-d20-outline"},"die-d4":{"parent":"dice-d4-outline"},"die-d6":{"parent":"dice-d6-outline"},"die-d8":{"parent":"dice-d8-outline"},"die-multiple":{"parent":"dice-multiple"},"dietary-restriction":{"parent":"food-halal"},"difference-left":{"parent":"set-left"},"difference-right":{"parent":"set-right"},"dining":{"parent":"table-chair"},"dining-room":{"parent":"table-chair"},"dinner":{"parent":"food-turkey"},"dinner-bell":{"parent":"instrument-triangle"},"dinosaur-pixel":{"parent":"google-downasaur"},"diploma":{"parent":"certificate"},"diploma-outline":{"parent":"certificate-outline"},"direct-current":{"parent":"current-dc"},"directions-bike":{"parent":"bike"},"directions-boat":{"parent":"ferry"},"directions-bus":{"parent":"bus"},"directions-car":{"parent":"car"},"directions-ferry":{"parent":"ferry"},"directions-railway":{"parent":"train"},"directions-run":{"parent":"run"},"directions-subway":{"parent":"subway-variant"},"directions-transit":{"parent":"subway-variant"},"directions-walk":{"parent":"walk"},"dirty":{"parent":"liquid-spot"},"disc-full":{"parent":"disc-alert"},"disc-warning":{"parent":"disc-alert"},"discount":{"parent":"brightness-percent"},"discount-box":{"parent":"percent-box"},"discount-box-outline":{"parent":"percent-box-outline"},"discount-circle":{"parent":"percent-circle"},"discount-circle-outline":{"parent":"percent-circle-outline"},"discount-outline":{"parent":"percent-outline"},"dislike":{"parent":"thumb-down"},"dislike-outline":{"parent":"thumb-down-outline"},"dispensary":{"parent":"hospital"},"dispensary-box":{"parent":"hospital-box"},"dispensary-box-outline":{"parent":"hospital-box-outline"},"divide":{"parent":"slash-forward"},"divide-box":{"parent":"slash-forward-box"},"do-not-disturb-alt":{"parent":"cancel"},"do-not-disturb-off":{"parent":"minus-circle-off"},"do-not-disturb-off-outline":{"parent":"minus-circle-off-outline"},"do-not-disturb-on":{"parent":"minus-circle"},"do-not-disturb-outline":{"parent":"minus-circle-outline"},"do-not-enter":{"parent":"minus-circle"},"do-not-enter-off":{"parent":"minus-circle-off"},"do-not-enter-off-outline":{"parent":"minus-circle-off-outline"},"do-not-enter-outline":{"parent":"minus-circle-outline"},"document-sign":{"parent":"file-sign"},"dollar":{"parent":"currency-usd"},"dollar-off":{"parent":"currency-usd-off"},"donate":{"parent":"gift"},"donate-off":{"parent":"gift-off"},"donate-off-outline":{"parent":"gift-off-outline"},"donate-outline":{"parent":"gift-outline"},"donation":{"parent":"hand-coin"},"donation-outline":{"parent":"hand-coin-outline"},"done":{"parent":"check"},"done-all":{"parent":"check-all"},"done-outline":{"parent":"check-outline"},"dot":{"parent":"circle-small"},"downlight":{"parent":"light-recessed"},"downloads":{"parent":"download-multiple"},"draft":{"parent":"file"},"drafts":{"parent":"email-open"},"drapes":{"parent":"curtains"},"drapes-closed":{"parent":"curtains-closed"},"drink":{"parent":"beer"},"drink-ice":{"parent":"delete-variant"},"drink-off":{"parent":"coffee-off"},"drink-off-outline":{"parent":"coffee-off-outline"},"drink-outline":{"parent":"beer-outline"},"drink-to-go":{"parent":"coffee-to-go"},"drink-to-go-outline":{"parent":"coffee-to-go-outline"},"drink-water":{"parent":"cup-water"},"drive":{"parent":"alpha-d"},"drive-document":{"parent":"text-box"},"drive-eta":{"parent":"car"},"drivers-license":{"parent":"card-account-details"},"drivers-license-outline":{"parent":"card-account-details-outline"},"drop":{"parent":"water"},"drop-alert":{"parent":"water-alert"},"drop-alert-outline":{"parent":"water-alert-outline"},"drop-check":{"parent":"water-check"},"drop-check-outline":{"parent":"water-check-outline"},"drop-circle":{"parent":"water-circle"},"drop-minus":{"parent":"water-minus"},"drop-minus-outline":{"parent":"water-minus-outline"},"drop-off-outline":{"parent":"water-off-outline"},"drop-outline":{"parent":"water-outline"},"drop-plus":{"parent":"water-plus"},"drop-plus-outline":{"parent":"water-plus-outline"},"drop-remove":{"parent":"water-remove"},"drop-remove-outline":{"parent":"water-remove-outline"},"drop-saver":{"parent":"water-opacity"},"drop-transparent":{"parent":"water-opacity"},"drug":{"parent":"needle"},"drug-off":{"parent":"needle-off"},"drugs":{"parent":"pill-multiple"},"dust-storm":{"parent":"weather-dust"},"dvd":{"parent":"disc"},"easter":{"parent":"rabbit-variant"},"easter-outline":{"parent":"rabbit-variant-outline"},"ecology":{"parent":"sprout"},"ecology-outline":{"parent":"sprout-outline"},"edge":{"parent":"microsoft-edge"},"edge-legacy":{"parent":"microsoft-edge-legacy"},"edit":{"parent":"pencil"},"edit-box":{"parent":"pencil-box"},"edit-box-outline":{"parent":"pencil-box-outline"},"edit-circle":{"parent":"pencil-circle"},"edit-circle-outline":{"parent":"pencil-circle-outline"},"edit-off":{"parent":"pencil-off"},"edit-off-outline":{"parent":"pencil-off-outline"},"edit-outline":{"parent":"pencil-outline"},"education":{"parent":"bus-school"},"education-outline":{"parent":"school-outline"},"eight-ball":{"parent":"billiards"},"elderly":{"parent":"human-cane"},"electric-charger":{"parent":"ev-station"},"electric-vehicle-charger":{"parent":"ev-station"},"electric-water-boiler":{"parent":"water-boiler"},"electric-water-heater":{"parent":"water-boiler"},"electrical-resistance":{"parent":"omega"},"electricity":{"parent":"flash"},"electricity-circle":{"parent":"lightning-bolt-circle"},"electricity-from-grid":{"parent":"transmission-tower-export"},"electricity-outline":{"parent":"lightning-bolt-outline"},"electricity-to-grid":{"parent":"transmission-tower-import"},"electronic-stability-program":{"parent":"car-esp"},"ellipsis-horizontal":{"parent":"dots-horizontal"},"ellipsis-horizontal-circle":{"parent":"dots-horizontal-circle"},"ellipsis-horizontal-circle-outline":{"parent":"dots-horizontal-circle-outline"},"ellipsis-vertical":{"parent":"dots-vertical"},"ellipsis-vertical-circle":{"parent":"dots-vertical-circle"},"ellipsis-vertical-circle-outline":{"parent":"dots-vertical-circle-outline"},"email-add":{"parent":"email-plus"},"email-add-outline":{"parent":"email-plus-outline"},"email-certified":{"parent":"email-seal"},"email-certified-outline":{"parent":"email-seal-outline"},"email-quick":{"parent":"email-fast"},"email-quick-outline":{"parent":"email-fast-outline"},"email-receive":{"parent":"email-arrow-left"},"email-receive-outline":{"parent":"email-arrow-left-outline"},"email-refresh":{"parent":"email-sync"},"email-refresh-outline":{"parent":"email-sync-outline"},"email-resend":{"parent":"email-sync"},"email-resend-outline":{"parent":"email-sync-outline"},"email-secure":{"parent":"email-lock"},"email-secure-outline":{"parent":"email-lock-outline"},"email-send":{"parent":"email-arrow-right"},"email-send-outline":{"parent":"email-fast-outline"},"email-sent":{"parent":"email-fast"},"email-sent-outline":{"parent":"email-fast-outline"},"email-tick":{"parent":"email-check"},"email-tick-outline":{"parent":"email-check-outline"},"email-verified":{"parent":"email-seal"},"email-verified-outline":{"parent":"email-seal-outline"},"email-warning":{"parent":"email-alert"},"emergency-exit":{"parent":"exit-run"},"emoji":{"parent":"emoticon"},"emoji-agent":{"parent":"face-agent"},"emoji-angry":{"parent":"emoticon-angry"},"emoji-angry-outline":{"parent":"emoticon-angry-outline"},"emoji-baby":{"parent":"baby-face"},"emoji-baby-outline":{"parent":"baby-face-outline"},"emoji-cat":{"parent":"cat"},"emoji-confused":{"parent":"emoticon-confused"},"emoji-confused-outline":{"parent":"emoticon-confused-outline"},"emoji-cool":{"parent":"emoticon-cool"},"emoji-cool-outline":{"parent":"emoticon-cool-outline"},"emoji-cow":{"parent":"cow"},"emoji-cry":{"parent":"emoticon-cry"},"emoji-cry-outline":{"parent":"emoticon-cry-outline"},"emoji-dead":{"parent":"emoticon-dead"},"emoji-dead-outline":{"parent":"emoticon-dead-outline"},"emoji-devil":{"parent":"emoticon-devil"},"emoji-devil-outline":{"parent":"emoticon-devil-outline"},"emoji-dog":{"parent":"dog"},"emoji-excited":{"parent":"emoticon-excited"},"emoji-excited-outline":{"parent":"emoticon-excited-outline"},"emoji-frown":{"parent":"emoticon-frown"},"emoji-frown-outline":{"parent":"emoticon-frown-outline"},"emoji-halloween":{"parent":"halloween"},"emoji-happy":{"parent":"emoticon-happy"},"emoji-happy-outline":{"parent":"emoticon-happy-outline"},"emoji-kiss":{"parent":"emoticon-kiss"},"emoji-kiss-outline":{"parent":"emoticon-kiss-outline"},"emoji-koala":{"parent":"koala"},"emoji-lol":{"parent":"emoticon-lol"},"emoji-lol-outline":{"parent":"emoticon-lol-outline"},"emoji-man":{"parent":"face-man"},"emoji-man-outline":{"parent":"face-man-outline"},"emoji-man-profile":{"parent":"face-man-profile"},"emoji-man-shimmer":{"parent":"face-man-shimmer"},"emoji-man-shimmer-outline":{"parent":"face-man-shimmer-outline"},"emoji-neutral":{"parent":"emoticon-neutral"},"emoji-neutral-outline":{"parent":"emoticon-neutral-outline"},"emoji-outline":{"parent":"emoticon-outline"},"emoji-panda":{"parent":"panda"},"emoji-penguin":{"parent":"penguin"},"emoji-pig":{"parent":"pig"},"emoji-poop":{"parent":"emoticon-poop"},"emoji-poop-outline":{"parent":"emoticon-poop-outline"},"emoji-robot":{"parent":"robot"},"emoji-robot-angry":{"parent":"robot-angry"},"emoji-robot-angry-outline":{"parent":"robot-angry-outline"},"emoji-robot-confused":{"parent":"robot-confused"},"emoji-robot-confused-outline":{"parent":"robot-confused-outline"},"emoji-robot-dead":{"parent":"robot-dead"},"emoji-robot-dead-outline":{"parent":"robot-dead-outline"},"emoji-robot-excited":{"parent":"robot-excited"},"emoji-robot-excited-outline":{"parent":"robot-excited-outline"},"emoji-robot-happy":{"parent":"robot-happy"},"emoji-robot-happy-outline":{"parent":"robot-happy-outline"},"emoji-robot-love":{"parent":"robot-love"},"emoji-robot-off":{"parent":"robot-off"},"emoji-robot-outline":{"parent":"robot-outline"},"emoji-sad":{"parent":"emoticon-sad"},"emoji-sad-outline":{"parent":"emoticon-sad-outline"},"emoji-sheep":{"parent":"sheep"},"emoji-sick":{"parent":"emoticon-sick"},"emoji-sick-outline":{"parent":"emoticon-sick-outline"},"emoji-star":{"parent":"star-face"},"emoji-tongue":{"parent":"emoticon-tongue"},"emoji-tongue-outline":{"parent":"emoticon-tongue-outline"},"emoji-wink":{"parent":"emoticon-wink"},"emoji-wink-outline":{"parent":"emoticon-wink-outline"},"emoji-woman":{"parent":"face-woman"},"emoji-woman-outline":{"parent":"face-woman-outline"},"emoji-woman-profile":{"parent":"face-woman-profile"},"emoji-woman-shimmer":{"parent":"face-woman-shimmer"},"emoji-woman-shimmer-outline":{"parent":"face-woman-shimmer-outline"},"emoticon-agent":{"parent":"face-agent"},"emoticon-baby":{"parent":"baby-face"},"emoticon-baby-outline":{"parent":"baby-face-outline"},"emoticon-cat":{"parent":"cat"},"emoticon-cow":{"parent":"cow"},"emoticon-dog":{"parent":"dog"},"emoticon-halloween":{"parent":"halloween"},"emoticon-koala":{"parent":"koala"},"emoticon-man":{"parent":"face-man"},"emoticon-man-outline":{"parent":"face-man-outline"},"emoticon-man-profile":{"parent":"face-man-profile"},"emoticon-man-shimmer":{"parent":"face-man-shimmer"},"emoticon-man-shimmer-outline":{"parent":"face-man-shimmer-outline"},"emoticon-panda":{"parent":"panda"},"emoticon-penguin":{"parent":"penguin"},"emoticon-pig":{"parent":"pig"},"emoticon-robot":{"parent":"robot"},"emoticon-robot-angry":{"parent":"robot-angry"},"emoticon-robot-angry-outline":{"parent":"robot-angry-outline"},"emoticon-robot-confused":{"parent":"robot-confused"},"emoticon-robot-confused-outline":{"parent":"robot-confused-outline"},"emoticon-robot-dead":{"parent":"robot-dead"},"emoticon-robot-dead-outline":{"parent":"robot-dead-outline"},"emoticon-robot-excited":{"parent":"robot-excited"},"emoticon-robot-excited-outline":{"parent":"robot-excited-outline"},"emoticon-robot-happy":{"parent":"robot-happy"},"emoticon-robot-happy-outline":{"parent":"robot-happy-outline"},"emoticon-robot-love":{"parent":"robot-love"},"emoticon-robot-off":{"parent":"robot-off"},"emoticon-robot-outline":{"parent":"robot-outline"},"emoticon-sheep":{"parent":"sheep"},"emoticon-star":{"parent":"star-face"},"emoticon-woman":{"parent":"face-woman"},"emoticon-woman-outline":{"parent":"face-woman-outline"},"emoticon-woman-profile":{"parent":"face-woman-profile"},"emoticon-woman-shimmer":{"parent":"face-woman-shimmer"},"emoticon-woman-shimmer-outline":{"parent":"face-woman-shimmer-outline"},"encryption":{"parent":"lock"},"encryption-add":{"parent":"lock-plus"},"encryption-add-outline":{"parent":"lock-plus-outline"},"encryption-alert":{"parent":"lock-alert"},"encryption-alert-outline":{"parent":"lock-alert-outline"},"encryption-check":{"parent":"lock-check"},"encryption-check-outline":{"parent":"lock-check-outline"},"encryption-expiration":{"parent":"lock-clock"},"encryption-minus":{"parent":"lock-minus"},"encryption-off":{"parent":"lock-off"},"encryption-off-outline":{"parent":"lock-off-outline"},"encryption-outline":{"parent":"lock-outline"},"encryption-plus":{"parent":"lock-plus"},"encryption-plus-outline":{"parent":"lock-plus-outline"},"encryption-question":{"parent":"lock-question"},"encryption-remove":{"parent":"lock-remove"},"encryption-remove-outline":{"parent":"lock-remove-outline"},"encryption-reset":{"parent":"lock-reset"},"encryption-secure":{"parent":"lock-check"},"encryption-secure-outline":{"parent":"lock-check-outline"},"encryption-verified":{"parent":"lock-check"},"encryption-verified-outline":{"parent":"lock-check-outline"},"encryption-warning":{"parent":"lock-alert"},"encryption-warning-outline":{"parent":"lock-alert-outline"},"encyclopedia":{"parent":"book-information-variant"},"energy":{"parent":"barrel"},"energy-circle":{"parent":"lightning-bolt-circle"},"energy-from-grid":{"parent":"transmission-tower-export"},"energy-outline":{"parent":"barrel-outline"},"energy-to-grid":{"parent":"transmission-tower-import"},"enhanced-encryption":{"parent":"lock-plus"},"entry-room":{"parent":"coat-rack"},"envelope":{"parent":"email"},"envelope-add":{"parent":"email-plus"},"envelope-add-outline":{"parent":"email-plus-outline"},"envelope-alert":{"parent":"email-alert"},"envelope-box":{"parent":"email-box"},"envelope-fast":{"parent":"email-fast"},"envelope-fast-outline":{"parent":"email-fast-outline"},"envelope-lock":{"parent":"email-lock"},"envelope-open":{"parent":"email-open"},"envelope-open-outline":{"parent":"email-open-outline"},"envelope-outline":{"parent":"email-outline"},"envelope-plus":{"parent":"email-plus"},"envelope-plus-outline":{"parent":"email-plus-outline"},"envelope-secure":{"parent":"email-lock"},"envelope-variant":{"parent":"email-variant"},"envelope-warning":{"parent":"email-alert"},"environment":{"parent":"sprout"},"environment-outline":{"parent":"sprout-outline"},"equaliser":{"parent":"tune"},"equaliser-vertical":{"parent":"tune-vertical"},"equalizer-vertical":{"parent":"tune-vertical-variant"},"equestrian":{"parent":"horse"},"equestrian-variant":{"parent":"horse-variant"},"erase":{"parent":"backspace"},"erase-outline":{"parent":"backspace-outline"},"erase-reverse":{"parent":"backspace-reverse"},"erase-reverse-outline":{"parent":"backspace-reverse-outline"},"error":{"parent":"alert-circle"},"error-outline":{"parent":"alert-circle-outline"},"eruption":{"parent":"volcano"},"eruption-outline":{"parent":"volcano-outline"},"espresso-machine":{"parent":"coffee-maker"},"espresso-maker":{"parent":"coffee-maker"},"estate":{"parent":"home-group"},"euro":{"parent":"currency-eur"},"euro-symbol":{"parent":"currency-eur"},"ev-charger":{"parent":"ev-station"},"ev-charger-ccs1":{"parent":"ev-plug-ccs1"},"ev-charger-ccs2":{"parent":"ev-plug-ccs2"},"ev-charger-chademo":{"parent":"ev-plug-chademo"},"ev-charger-tesla":{"parent":"ev-plug-tesla"},"ev-charger-type1":{"parent":"ev-plug-type1"},"ev-charger-type2":{"parent":"ev-plug-type2"},"ev-plug-ccs-combo-1":{"parent":"ev-plug-ccs1"},"ev-plug-ccs-combo-2":{"parent":"ev-plug-ccs2"},"ev-plug-j1772":{"parent":"ev-plug-type1"},"ev-plug-mennekes":{"parent":"ev-plug-type2"},"event":{"parent":"calendar"},"event-add":{"parent":"calendar-plus"},"event-alert":{"parent":"calendar-alert"},"event-auto":{"parent":"calendar-star-four-points"},"event-available":{"parent":"calendar-check"},"event-available-outline":{"parent":"calendar-check-outline"},"event-blank-outline":{"parent":"calendar-blank-outline"},"event-busy":{"parent":"calendar-remove"},"event-busy-outline":{"parent":"calendar-remove-outline"},"event-check":{"parent":"calendar-check"},"event-check-outline":{"parent":"calendar-check-outline"},"event-clock":{"parent":"calendar-clock"},"event-edit":{"parent":"calendar-edit"},"event-heart":{"parent":"calendar-heart"},"event-minus":{"parent":"calendar-minus"},"event-multiple":{"parent":"calendar-multiple"},"event-multiple-check":{"parent":"calendar-multiple-check"},"event-multiple-tick":{"parent":"calendar-multiple-check"},"event-note":{"parent":"calendar-text"},"event-note-outline":{"parent":"calendar-text-outline"},"event-outline":{"parent":"calendar-outline"},"event-plus":{"parent":"calendar-plus"},"event-question":{"parent":"calendar-question"},"event-range":{"parent":"calendar-range"},"event-range-outline":{"parent":"calendar-range-outline"},"event-remove":{"parent":"calendar-remove"},"event-remove-outline":{"parent":"calendar-remove-outline"},"event-search":{"parent":"calendar-search"},"event-seat":{"parent":"seat"},"event-seat-outline":{"parent":"seat-outline"},"event-star":{"parent":"calendar-star"},"event-star-four-points":{"parent":"calendar-star-four-points"},"event-text":{"parent":"calendar-text"},"event-text-outline":{"parent":"calendar-text-outline"},"event-tick":{"parent":"calendar-check"},"event-tick-outline":{"parent":"calendar-check-outline"},"event-time":{"parent":"calendar-clock"},"event-week":{"parent":"calendar-week"},"event-week-begin":{"parent":"calendar-week-begin"},"event-week-begin-outline":{"parent":"calendar-week-begin-outline"},"event-week-end":{"parent":"calendar-week-end"},"event-week-end-outline":{"parent":"calendar-filter-outline"},"event-week-outline":{"parent":"calendar-week-outline"},"events":{"parent":"calendar-multiple"},"events-check":{"parent":"calendar-multiple-check"},"events-tick":{"parent":"calendar-multiple-check"},"evse":{"parent":"ev-station"},"exchange":{"parent":"swap-horizontal"},"exclamation-bold":{"parent":"exclamation-thick"},"exclusion":{"parent":"set-left-right"},"expand-horizontal":{"parent":"unfold-more-horizontal"},"expand-less":{"parent":"chevron-up"},"expand-more":{"parent":"chevron-down"},"expand-vertical":{"parent":"unfold-more-vertical"},"explore":{"parent":"compass"},"explore-nearby":{"parent":"map-marker-circle"},"extension":{"parent":"puzzle"},"extension-outline":{"parent":"puzzle-outline"},"external-link":{"parent":"open-in-new"},"external-temperature":{"parent":"sun-thermometer"},"extra-life":{"parent":"one-up"},"eye-add":{"parent":"eye-plus"},"eye-add-outline":{"parent":"eye-plus-outline"},"eye-tick":{"parent":"eye-check"},"eye-tick-outline":{"parent":"eye-check-outline"},"fabric":{"parent":"receipt"},"fabric-outline":{"parent":"receipt-outline"},"face":{"parent":"emoticon"},"face-angry":{"parent":"emoticon-angry"},"face-angry-outline":{"parent":"emoticon-angry-outline"},"face-confused":{"parent":"emoticon-confused"},"face-confused-outline":{"parent":"emoticon-confused-outline"},"face-cool":{"parent":"emoticon-cool"},"face-cool-outline":{"parent":"emoticon-cool-outline"},"face-cry":{"parent":"emoticon-cry"},"face-cry-outline":{"parent":"emoticon-cry-outline"},"face-dead":{"parent":"emoticon-dead"},"face-dead-outline":{"parent":"emoticon-dead-outline"},"face-devil":{"parent":"emoticon-devil"},"face-devil-outline":{"parent":"emoticon-devil-outline"},"face-excited":{"parent":"emoticon-excited"},"face-excited-outline":{"parent":"emoticon-excited-outline"},"face-female":{"parent":"face-woman"},"face-female-outline":{"parent":"face-woman-outline"},"face-female-profile":{"parent":"face-woman-profile"},"face-female-shimmer":{"parent":"face-woman-shimmer"},"face-female-shimmer-outline":{"parent":"face-woman-shimmer-outline"},"face-frown":{"parent":"emoticon-frown"},"face-frown-outline":{"parent":"emoticon-frown-outline"},"face-happy":{"parent":"emoticon-happy"},"face-happy-outline":{"parent":"emoticon-happy-outline"},"face-kiss":{"parent":"emoticon-kiss"},"face-kiss-outline":{"parent":"emoticon-kiss-outline"},"face-lol":{"parent":"emoticon-lol"},"face-lol-outline":{"parent":"emoticon-lol-outline"},"face-male":{"parent":"face-man"},"face-male-outline":{"parent":"face-man-outline"},"face-male-profile":{"parent":"face-man-profile"},"face-male-shimmer":{"parent":"face-man-shimmer"},"face-male-shimmer-outline":{"parent":"face-man-shimmer-outline"},"face-neutral":{"parent":"emoticon-neutral"},"face-neutral-outline":{"parent":"emoticon-neutral-outline"},"face-outline":{"parent":"emoticon-outline"},"face-poop":{"parent":"emoticon-poop"},"face-poop-outline":{"parent":"emoticon-poop-outline"},"face-profile":{"parent":"face-man-profile"},"face-profile-woman":{"parent":"face-woman-profile"},"face-retouching-natural":{"parent":"face-man-shimmer"},"face-retouching-natural-outline":{"parent":"face-man-shimmer-outline"},"face-retouching-natural-woman":{"parent":"face-woman-shimmer"},"face-retouching-natural-woman-outline":{"parent":"face-woman-shimmer-outline"},"face-sad":{"parent":"emoticon-sad"},"face-sad-outline":{"parent":"emoticon-sad-outline"},"face-shimmer":{"parent":"face-man-shimmer"},"face-shimmer-outline":{"parent":"face-man-shimmer-outline"},"face-sick":{"parent":"emoticon-sick"},"face-sick-outline":{"parent":"emoticon-sick-outline"},"face-sunglasses":{"parent":"emoticon-cool"},"face-sunglasses-outline":{"parent":"emoticon-cool-outline"},"face-tongue":{"parent":"emoticon-tongue"},"face-tongue-outline":{"parent":"emoticon-tongue-outline"},"face-wink":{"parent":"emoticon-wink"},"face-wink-outline":{"parent":"emoticon-wink-outline"},"facial-recognition":{"parent":"face-recognition"},"factorial":{"parent":"exclamation"},"fairy":{"parent":"candy-outline"},"fairy-lights":{"parent":"string-lights"},"fairy-lights-off":{"parent":"string-lights-off"},"family":{"parent":"crowd"},"family-room":{"parent":"sofa"},"family-room-outline":{"parent":"sofa-outline"},"fan-schedule":{"parent":"fan-clock"},"fan-speed-down":{"parent":"fan-chevron-down"},"fan-speed-high":{"parent":"fan-speed-3"},"fan-speed-low":{"parent":"fan-speed-1"},"fan-speed-medium":{"parent":"fan-speed-2"},"fan-speed-up":{"parent":"fan-chevron-up"},"fan-timer":{"parent":"fan-clock"},"fantasy":{"parent":"unicorn"},"fantasy-variant":{"parent":"unicorn-variant"},"faq":{"parent":"frequently-asked-questions"},"farewell":{"parent":"hand-wave"},"farewell-outline":{"parent":"hand-wave-outline"},"farm":{"parent":"barn"},"farm-home":{"parent":"home-silo"},"farm-home-outline":{"parent":"home-silo-outline"},"farm-house":{"parent":"home-silo"},"farm-house-outline":{"parent":"home-silo-outline"},"farm-outline":{"parent":"silo-outline"},"fast-food":{"parent":"food"},"fast-food-off":{"parent":"food-off"},"fast-rewind":{"parent":"rewind"},"father":{"parent":"human-male-boy"},"faucet-off":{"parent":"water-pump-off"},"favorite":{"parent":"heart"},"favorite-add":{"parent":"star-plus"},"favorite-add-outline":{"parent":"star-plus-outline"},"favorite-border":{"parent":"heart-outline"},"favorite-box":{"parent":"star-box"},"favorite-box-multiple":{"parent":"star-box-multiple"},"favorite-box-multiple-outline":{"parent":"star-box-multiple-outline"},"favorite-box-outline":{"parent":"star-box-outline"},"favorite-check":{"parent":"star-check"},"favorite-check-outline":{"parent":"star-check-outline"},"favorite-circle":{"parent":"star-circle"},"favorite-circle-outline":{"parent":"star-circle-outline"},"favorite-cog":{"parent":"star-cog"},"favorite-cog-outline":{"parent":"star-cog-outline"},"favorite-face":{"parent":"star-face"},"favorite-half":{"parent":"star-half"},"favorite-half-full":{"parent":"star-half-full"},"favorite-minus":{"parent":"star-minus"},"favorite-minus-outline":{"parent":"star-minus-outline"},"favorite-off":{"parent":"star-off"},"favorite-off-outline":{"parent":"star-off-outline"},"favorite-outline":{"parent":"heart-outline"},"favorite-plus":{"parent":"star-plus"},"favorite-plus-outline":{"parent":"star-plus-outline"},"favorite-remove":{"parent":"star-remove"},"favorite-remove-outline":{"parent":"star-remove-outline"},"favorite-settings":{"parent":"star-settings"},"favorite-settings-outline":{"parent":"star-settings-outline"},"favorite-shooting":{"parent":"star-shooting"},"favorite-shooting-outline":{"parent":"star-shooting-outline"},"favourite":{"parent":"heart"},"favourite-border":{"parent":"heart-outline"},"favourite-outline":{"parent":"heart-outline"},"feature-highlight":{"parent":"star-circle-outline"},"feedback":{"parent":"comment-quote"},"feedback-outline":{"parent":"comment-quote-outline"},"fever":{"parent":"emoticon-sick"},"fever-outline":{"parent":"emoticon-sick-outline"},"fiber-manual-record":{"parent":"record"},"fiber-new":{"parent":"new-box"},"file-acrobat":{"parent":"file-pdf"},"file-acrobat-box":{"parent":"file-pdf-box"},"file-acrobat-box-outline":{"parent":"file-pdf-box-outline"},"file-acrobat-outline":{"parent":"file-pdf-outline"},"file-csv":{"parent":"file-delimited"},"file-csv-outline":{"parent":"file-delimited-outline"},"file-discard":{"parent":"file-undo"},"file-document-add":{"parent":"file-document-plus"},"file-document-add-outline":{"parent":"file-document-plus-outline"},"file-document-box":{"parent":"text-box"},"file-document-box-check":{"parent":"text-box-check"},"file-document-box-check-outline":{"parent":"text-box-check-outline"},"file-document-box-minus":{"parent":"text-box-minus"},"file-document-box-minus-outline":{"parent":"text-box-minus-outline"},"file-document-box-multiple":{"parent":"text-box-multiple"},"file-document-box-multiple-outline":{"parent":"text-box-multiple-outline"},"file-document-box-outline":{"parent":"text-box-outline"},"file-document-box-plus":{"parent":"text-box-plus"},"file-document-box-plus-outline":{"parent":"text-box-plus-outline"},"file-document-box-remove":{"parent":"text-box-remove"},"file-document-box-remove-outline":{"parent":"text-box-remove-outline"},"file-document-box-search":{"parent":"text-box-search"},"file-document-box-search-outline":{"parent":"text-box-search-outline"},"file-document-box-tick":{"parent":"text-box-check"},"file-document-box-tick-outline":{"parent":"text-box-check-outline"},"file-document-boxes":{"parent":"text-box-multiple"},"file-document-boxes-outline":{"parent":"text-box-multiple-outline"},"file-document-delete":{"parent":"file-document-remove"},"file-document-delete-outline":{"parent":"file-document-remove-outline"},"file-document-error":{"parent":"file-document-alert"},"file-document-error-outline":{"parent":"file-document-alert-outline"},"file-document-move":{"parent":"file-document-arrow-right"},"file-document-move-outline":{"parent":"file-document-arrow-right-outline"},"file-document-tick":{"parent":"file-document-check"},"file-document-tick-outline":{"parent":"file-document-check-outline"},"file-exchange":{"parent":"file-arrow-left-right"},"file-exchange-outline":{"parent":"file-arrow-left-right-outline"},"file-favorite":{"parent":"file-star"},"file-favorite-outline":{"parent":"file-star-outline"},"file-graph":{"parent":"file-chart"},"file-graph-outline":{"parent":"file-chart-outline"},"file-image-add":{"parent":"file-image-plus"},"file-image-add-outline":{"parent":"file-image-plus-outline"},"file-image-location":{"parent":"file-image-marker"},"file-image-location-outline":{"parent":"file-image-marker-outline"},"file-jpeg-box":{"parent":"file-jpg-box"},"file-location":{"parent":"file-marker"},"file-location-outline":{"parent":"file-marker-outline"},"file-report":{"parent":"file-chart"},"file-report-outline":{"parent":"file-chart-outline"},"file-revert":{"parent":"file-undo"},"file-rotate-ccw":{"parent":"file-rotate-left"},"file-rotate-ccw-outline":{"parent":"file-rotate-left-outline"},"file-rotate-clockwise":{"parent":"file-rotate-right"},"file-rotate-counter-clockwise":{"parent":"file-rotate-left"},"file-rotate-counter-clockwise-outline":{"parent":"file-rotate-left-outline"},"file-settings-cog":{"parent":"file-cog"},"file-settings-cog-outline":{"parent":"file-cog-outline"},"file-settings-variant":{"parent":"file-cog"},"file-settings-variant-outline":{"parent":"file-cog-outline"},"file-text":{"parent":"file-document"},"file-text-add":{"parent":"file-document-plus"},"file-text-add-outline":{"parent":"file-document-plus-outline"},"file-text-alert":{"parent":"file-document-alert"},"file-text-alert-outline":{"parent":"file-document-alert-outline"},"file-text-arrow-right":{"parent":"file-document-arrow-right"},"file-text-arrow-right-outline":{"parent":"file-document-arrow-right-outline"},"file-text-check":{"parent":"file-document-check"},"file-text-check-outline":{"parent":"file-document-check-outline"},"file-text-delete":{"parent":"file-document-remove"},"file-text-delete-outline":{"parent":"file-document-remove-outline"},"file-text-edit":{"parent":"file-document-edit"},"file-text-edit-outline":{"parent":"file-document-edit-outline"},"file-text-error":{"parent":"file-document-alert"},"file-text-error-outline":{"parent":"file-document-alert-outline"},"file-text-minus":{"parent":"file-document-minus"},"file-text-minus-outline":{"parent":"file-document-minus-outline"},"file-text-move":{"parent":"file-document-arrow-right"},"file-text-move-outline":{"parent":"file-document-arrow-right-outline"},"file-text-multiple":{"parent":"file-document-multiple"},"file-text-multiple-outline":{"parent":"file-document-multiple-outline"},"file-text-outline":{"parent":"file-document-outline"},"file-text-plus":{"parent":"file-document-plus"},"file-text-plus-outline":{"parent":"file-document-plus-outline"},"file-text-remove":{"parent":"file-document-remove"},"file-text-remove-outline":{"parent":"file-document-remove-outline"},"file-text-tick":{"parent":"file-document-check"},"file-text-tick-outline":{"parent":"file-document-check-outline"},"file-tick":{"parent":"file-check"},"file-transfer":{"parent":"file-arrow-left-right"},"file-transfer-outline":{"parent":"file-arrow-left-right-outline"},"file-upload-download":{"parent":"file-arrow-up-down"},"file-upload-download-outline":{"parent":"file-arrow-up-down-outline"},"file-user":{"parent":"file-account"},"file-warning":{"parent":"file-alert"},"file-warning-outline":{"parent":"file-alert-outline"},"files":{"parent":"file-multiple"},"filing-cabinet":{"parent":"file-cabinet"},"film-check":{"parent":"movie-check"},"film-check-outline":{"parent":"movie-check-outline"},"film-cog":{"parent":"movie-cog"},"film-cog-outline":{"parent":"movie-cog-outline"},"film-edit":{"parent":"movie-edit"},"film-edit-outline":{"parent":"movie-edit-outline"},"film-minus":{"parent":"movie-minus"},"film-minus-outline":{"parent":"movie-minus-outline"},"film-off":{"parent":"movie-off"},"film-off-outline":{"parent":"movie-off-outline"},"film-open":{"parent":"movie-open"},"film-open-check":{"parent":"movie-open-check"},"film-open-check-outline":{"parent":"movie-open-check-outline"},"film-open-cog":{"parent":"movie-open-cog"},"film-open-cog-outline":{"parent":"movie-open-cog-outline"},"film-open-edit":{"parent":"movie-open-edit"},"film-open-edit-outline":{"parent":"movie-open-edit-outline"},"film-open-minus":{"parent":"movie-open-minus"},"film-open-minus-outline":{"parent":"movie-open-minus-outline"},"film-open-off":{"parent":"movie-open-off"},"film-open-off-outline":{"parent":"movie-open-off-outline"},"film-open-outline":{"parent":"movie-open-outline"},"film-open-play":{"parent":"movie-open-play"},"film-open-play-outline":{"parent":"movie-open-play-outline"},"film-open-plus-outline":{"parent":"movie-open-plus-outline"},"film-open-remove":{"parent":"movie-open-remove"},"film-open-remove-outline":{"parent":"movie-open-remove-outline"},"film-open-settings":{"parent":"movie-open-settings"},"film-open-settings-outline":{"parent":"movie-open-settings-outline"},"film-open-star":{"parent":"movie-open-star"},"film-open-star-outline":{"parent":"movie-open-star-outline"},"film-outline":{"parent":"movie-outline"},"film-play":{"parent":"movie-play"},"film-play-outline":{"parent":"movie-play-outline"},"film-plus":{"parent":"movie-plus"},"film-plus-outline":{"parent":"movie-plus-outline"},"film-reel":{"parent":"movie-roll"},"film-remove":{"parent":"movie-remove"},"film-remove-outline":{"parent":"movie-remove-outline"},"film-settings":{"parent":"movie-settings"},"film-settings-outline":{"parent":"movie-settings-outline"},"film-star":{"parent":"movie-star"},"film-star-outline":{"parent":"movie-star-outline"},"filter-1":{"parent":"numeric-1-box-multiple-outline"},"filter-2":{"parent":"numeric-2-box-multiple-outline"},"filter-3":{"parent":"numeric-3-box-multiple-outline"},"filter-4":{"parent":"numeric-4-box-multiple-outline"},"filter-5":{"parent":"numeric-5-box-multiple-outline"},"filter-6":{"parent":"numeric-6-box-multiple-outline"},"filter-7":{"parent":"numeric-7-box-multiple-outline"},"filter-8":{"parent":"numeric-8-box-multiple-outline"},"filter-9":{"parent":"numeric-9-box-multiple-outline"},"filter-9-plus":{"parent":"numeric-9-plus-box-multiple-outline"},"filter-b-and-w":{"parent":"image-filter-black-white"},"filter-gear":{"parent":"filter-cog"},"filter-gear-outline":{"parent":"filter-cog-outline"},"filter-list":{"parent":"filter-variant"},"find-in-page":{"parent":"file-find"},"find-my-phone":{"parent":"cellphone-marker"},"finger-chips":{"parent":"french-fries"},"fire-engine":{"parent":"fire-truck"},"firewall":{"parent":"wall-fire"},"first-aid-kit":{"parent":"medical-bag"},"first-page":{"parent":"page-first"},"fish-food":{"parent":"shaker"},"fish-food-outline":{"parent":"shaker-outline"},"fishing":{"parent":"spear"},"fitness-center":{"parent":"dumbbell"},"five":{"parent":"tally-mark-5"},"flag-add":{"parent":"flag-plus"},"flame":{"parent":"fire"},"flame-alert":{"parent":"fire-alert"},"flame-circle":{"parent":"fire-circle"},"flame-off":{"parent":"fire-off"},"flash-circle":{"parent":"lightning-bolt-circle"},"flash-on":{"parent":"flash"},"flatiron":{"parent":"iron"},"flatiron-outline":{"parent":"iron-outline"},"fleet":{"parent":"bus-multiple"},"flight":{"parent":"airplane"},"flight-land":{"parent":"airplane-landing"},"flight-mode":{"parent":"airplane"},"flight-mode-off":{"parent":"airplane-off"},"flight-takeoff":{"parent":"airplane-takeoff"},"flim-open-plus":{"parent":"movie-open-plus"},"flood":{"parent":"waves"},"floodlight-down":{"parent":"light-flood-down"},"floodlight-up":{"parent":"light-flood-up"},"floor-lamp-variant":{"parent":"floor-lamp-torchiere-variant"},"floor-light":{"parent":"floor-lamp"},"floor-light-dual":{"parent":"floor-lamp-dual"},"floor-light-dual-outline":{"parent":"floor-lamp-dual-outline"},"floor-light-outline":{"parent":"floor-lamp-outline"},"floor-light-torchiere":{"parent":"floor-lamp-torchiere"},"floor-light-torchiere-variant":{"parent":"floor-lamp-torchiere-variant"},"floor-light-torchiere-variant-outline":{"parent":"floor-lamp-torchiere-variant-outline"},"floor-light-variant":{"parent":"floor-lamp-torchiere-variant"},"floppy-disc":{"parent":"content-save"},"floppy-disc-alert":{"parent":"content-save-alert"},"floppy-disc-alert-outline":{"parent":"content-save-alert-outline"},"floppy-disc-cog":{"parent":"content-save-cog"},"floppy-disc-cog-outline":{"parent":"content-save-cog-outline"},"floppy-disc-edit":{"parent":"content-save-edit"},"floppy-disc-edit-outline":{"parent":"content-save-edit-outline"},"floppy-disc-move":{"parent":"content-save-move"},"floppy-disc-move-outline":{"parent":"content-save-move-outline"},"floppy-disc-multiple":{"parent":"content-save-all"},"floppy-disc-multiple-outline":{"parent":"content-save-all-outline"},"floppy-disc-settings":{"parent":"content-save-settings"},"floppy-disc-settings-outline":{"parent":"content-save-settings-outline"},"floppy-disk":{"parent":"content-save"},"flowchart":{"parent":"sitemap"},"flowchart-outline":{"parent":"sitemap-outline"},"flower-lotus":{"parent":"spa"},"flower-lotus-outline":{"parent":"spa-outline"},"flurries":{"parent":"weather-snowy-heavy"},"fly":{"parent":"bee"},"fly-flower":{"parent":"bee-flower"},"folder-add":{"parent":"folder-plus"},"folder-add-outline":{"parent":"folder-plus-outline"},"folder-favorite":{"parent":"folder-star"},"folder-favorite-multiple":{"parent":"folder-star-multiple"},"folder-favorite-multiple-outline":{"parent":"folder-star-multiple-outline"},"folder-favorite-outline":{"parent":"folder-star-outline"},"folder-hash":{"parent":"folder-pound"},"folder-hash-outline":{"parent":"folder-pound-outline"},"folder-help":{"parent":"folder-question"},"folder-help-outline":{"parent":"folder-question-outline"},"folder-house":{"parent":"folder-home"},"folder-house-outline":{"parent":"folder-home-outline"},"folder-location":{"parent":"folder-marker"},"folder-location-outline":{"parent":"folder-marker-outline"},"folder-media":{"parent":"folder-play"},"folder-media-outline":{"parent":"folder-play-outline"},"folder-mydrive":{"parent":"folder-google-drive"},"folder-settings-variant":{"parent":"folder-cog"},"folder-settings-variant-outline":{"parent":"folder-cog-outline"},"folder-shared":{"parent":"folder-account"},"folder-shared-outline":{"parent":"folder-account-outline"},"folder-special":{"parent":"folder-star"},"folder-special-outline":{"parent":"folder-star-outline"},"folder-transfer":{"parent":"folder-arrow-up-down"},"folder-transfer-outline":{"parent":"folder-arrow-up-down-outline"},"folder-user":{"parent":"folder-account"},"folder-user-outline":{"parent":"folder-account-outline"},"folder-video":{"parent":"folder-play"},"folder-video-outline":{"parent":"folder-play-outline"},"folder-warning":{"parent":"folder-alert"},"folder-warning-outline":{"parent":"folder-alert-outline"},"folders":{"parent":"folder-multiple"},"folders-image":{"parent":"folder-multiple-image"},"folders-outline":{"parent":"folder-multiple-outline"},"font-size":{"parent":"format-size"},"food-allergy":{"parent":"peanut"},"food-allergy-off":{"parent":"peanut-off"},"food-allergy-off-outline":{"parent":"peanut-off-outline"},"food-allergy-outline":{"parent":"peanut-outline"},"food-fork-cup":{"parent":"food-fork-drink"},"food-frankfurter":{"parent":"food-hot-dog"},"food-italian":{"parent":"pasta"},"food-jewish":{"parent":"food-kosher"},"food-muslim":{"parent":"food-halal"},"food-processor":{"parent":"blender"},"food-processor-outline":{"parent":"blender-outline"},"food-ramen":{"parent":"noodles"},"food-weiner":{"parent":"food-hot-dog"},"football-american":{"parent":"football"},"football-pitch":{"parent":"soccer-field"},"football-play":{"parent":"strategy"},"footprints":{"parent":"shoe-print"},"forbid":{"parent":"cancel"},"foreign-key":{"parent":"key-link"},"forestry":{"parent":"forest"},"forever":{"parent":"all-inclusive"},"forever-box":{"parent":"all-inclusive-box"},"forever-box-outline":{"parent":"all-inclusive-box-outline"},"forgot-password":{"parent":"lock-question"},"form":{"parent":"list-box"},"form-outline":{"parent":"list-box-outline"},"format-align-centre":{"parent":"format-align-center"},"format-annotation-add":{"parent":"format-annotation-plus"},"format-color-redact":{"parent":"format-color-marker-cancel"},"format-color-reset":{"parent":"water-off"},"format-colour-fill":{"parent":"format-color-fill"},"format-colour-highlight":{"parent":"format-color-highlight"},"format-colour-text":{"parent":"format-color-text"},"format-float-centre":{"parent":"format-float-center"},"format-header-hash":{"parent":"format-header-pound"},"format-heading-1":{"parent":"format-header-1"},"format-heading-2":{"parent":"format-header-2"},"format-heading-3":{"parent":"format-header-3"},"format-heading-4":{"parent":"format-header-4"},"format-heading-5":{"parent":"format-header-5"},"format-heading-6":{"parent":"format-header-6"},"format-heading-decease":{"parent":"format-header-decrease"},"format-heading-equal":{"parent":"format-header-equal"},"format-heading-hash":{"parent":"format-header-pound"},"format-heading-increase":{"parent":"format-header-increase"},"format-heading-markdown":{"parent":"format-header-pound"},"format-heading-pound":{"parent":"format-header-pound"},"format-horizontal-align-centre":{"parent":"format-horizontal-align-center"},"format-kerning":{"parent":"format-letter-spacing"},"format-list-group-add":{"parent":"format-list-group-plus"},"format-list-numbered-right-to-left":{"parent":"format-list-numbered-rtl"},"format-list-numbers":{"parent":"format-list-numbered"},"format-lowercase":{"parent":"format-letter-case-lower"},"format-rotate-ninety":{"parent":"format-rotate-90"},"format-textdirection-l-to-r":{"parent":"format-pilcrow-arrow-right"},"format-textdirection-r-to-l":{"parent":"format-pilcrow-arrow-left"},"format-underlined":{"parent":"format-underline"},"format-uppercase":{"parent":"format-letter-case-upper"},"format-vertical-align-centre":{"parent":"format-vertical-align-center"},"fortnite":{"parent":"silverware-fork-knife"},"forum-add":{"parent":"forum-plus"},"forum-add-outline":{"parent":"forum-plus-outline"},"forum-delete":{"parent":"forum-remove"},"forum-delete-outline":{"parent":"forum-remove-outline"},"forum-subtract":{"parent":"forum-minus"},"forum-subtract-outline":{"parent":"forum-minus-outline"},"forward-off":{"parent":"share-off"},"forward-off-outline":{"parent":"share-off-outline"},"forward-outline":{"parent":"share-outline"},"fossil-fuel":{"parent":"barrel"},"fossil-fuel-outline":{"parent":"barrel-outline"},"four":{"parent":"tally-mark-4"},"foyer":{"parent":"coat-rack"},"fragrance":{"parent":"scent"},"fragrance-off":{"parent":"scent-off"},"frame-backward":{"parent":"step-backward-2"},"frame-forward":{"parent":"step-forward-2"},"franc":{"parent":"currency-chf"},"france":{"parent":"eiffel-tower"},"free-breakfast":{"parent":"coffee"},"free-breakfast-off":{"parent":"coffee-off"},"free-breakfast-off-outline":{"parent":"coffee-off-outline"},"free-breakfast-outline":{"parent":"coffee-outline"},"free-breakfast-to-go":{"parent":"coffee-to-go"},"free-breakfast-to-go-outline":{"parent":"coffee-to-go-outline"},"freehand-line":{"parent":"gesture"},"freemasonry":{"parent":"ruler-square-compass"},"freeze-advisory":{"parent":"snowflake-alert"},"freezing-point":{"parent":"snowflake-thermometer"},"french-baguette":{"parent":"baguette"},"french-door":{"parent":"door-sliding"},"french-door-lock":{"parent":"door-sliding-lock"},"french-door-open":{"parent":"door-sliding-open"},"french-fry":{"parent":"french-fries"},"frequency":{"parent":"cosine-wave"},"fridge-filled":{"parent":"fridge"},"fridge-filled-bottom":{"parent":"fridge-top"},"fridge-filled-top":{"parent":"fridge-bottom"},"fried-potatoes":{"parent":"french-fries"},"fries":{"parent":"french-fries"},"frites":{"parent":"french-fries"},"frost-point":{"parent":"snowflake-thermometer"},"fruit-ananas":{"parent":"fruit-pineapple"},"fruit-lemon":{"parent":"fruit-citrus"},"fruit-lime":{"parent":"fruit-citrus"},"fuel-pump":{"parent":"gas-station"},"fuel-pump-outline":{"parent":"gas-station-outline"},"fuel-station":{"parent":"gas-station"},"fuel-station-outline":{"parent":"gas-station-outline"},"fuel-truck":{"parent":"tanker-truck"},"full-outer-join":{"parent":"set-all"},"fungus":{"parent":"mushroom"},"fungus-outline":{"parent":"mushroom-outline"},"funnel":{"parent":"filter"},"funnel-check":{"parent":"filter-check"},"funnel-check-outline":{"parent":"filter-check-outline"},"funnel-cog":{"parent":"filter-cog"},"funnel-cog-outline":{"parent":"filter-cog-outline"},"funnel-gear":{"parent":"filter-cog"},"funnel-gear-outline":{"parent":"filter-cog-outline"},"funnel-minus":{"parent":"filter-minus"},"funnel-minus-outline":{"parent":"filter-minus-outline"},"funnel-multiple":{"parent":"filter-multiple"},"funnel-multiple-outline":{"parent":"filter-multiple-outline"},"funnel-outline":{"parent":"filter-outline"},"funnel-plus":{"parent":"filter-plus"},"funnel-plus-outline":{"parent":"filter-plus-outline"},"funnel-remove":{"parent":"filter-remove"},"funnel-remove-outline":{"parent":"filter-remove-outline"},"funnel-settings":{"parent":"filter-cog"},"funnel-settings-outline":{"parent":"filter-cog-outline"},"g-translate":{"parent":"google-translate"},"gambling":{"parent":"slot-machine"},"gambling-chip":{"parent":"poker-chip"},"gambling-outline":{"parent":"slot-machine-outline"},"gamepad-classic":{"parent":"controller-classic"},"gamepad-classic-outline":{"parent":"controller-classic-outline"},"gamepad-off":{"parent":"controller-off"},"games":{"parent":"gamepad"},"games-outline":{"parent":"gamepad-outline"},"garage-warning":{"parent":"garage-alert"},"garbage":{"parent":"delete"},"garbage-can":{"parent":"delete"},"garbage-can-circle":{"parent":"delete-circle"},"garbage-can-circle-outline":{"parent":"delete-circle-outline"},"garbage-can-empty":{"parent":"delete-empty"},"garbage-can-outline":{"parent":"delete-outline"},"garbage-circle":{"parent":"delete-circle"},"garbage-circle-outline":{"parent":"delete-circle-outline"},"garbage-empty":{"parent":"delete-empty"},"garbage-outline":{"parent":"delete-outline"},"gardening":{"parent":"shovel"},"gas":{"parent":"fire"},"gas-circle":{"parent":"fire-circle"},"gas-co":{"parent":"molecule-co"},"gas-co2":{"parent":"molecule-co2"},"gas-pump":{"parent":"gas-station"},"gas-pump-outline":{"parent":"gas-station-outline"},"gas-tank":{"parent":"storage-tank"},"gas-tank-outline":{"parent":"storage-tank-outline"},"gas-water-boiler":{"parent":"water-boiler"},"gas-water-heater":{"parent":"water-boiler"},"gasoline":{"parent":"fuel"},"gastropod":{"parent":"snail"},"gear":{"parent":"cog"},"gear-box":{"parent":"cog-box"},"gear-outline":{"parent":"cog-outline"},"gear-pause":{"parent":"cog-pause"},"gear-pause-outline":{"parent":"cog-pause-outline"},"gear-play":{"parent":"cog-play"},"gear-play-outline":{"parent":"cog-play-outline"},"gear-stop":{"parent":"cog-stop"},"gear-stop-outline":{"parent":"cog-stop-outline"},"gender-enby":{"parent":"gender-non-binary"},"genie-lamp":{"parent":"oil-lamp"},"germ":{"parent":"allergy"},"gesture-touch":{"parent":"gesture-tap"},"gesture-touch-box":{"parent":"gesture-tap-box"},"gesture-touch-button":{"parent":"gesture-tap-button"},"gesture-touch-hold":{"parent":"gesture-tap-hold"},"get-app":{"parent":"download"},"girandole":{"parent":"chandelier"},"git-issue":{"parent":"alert-circle-outline"},"git-repository":{"parent":"book"},"github-circle":{"parent":"github"},"give-way":{"parent":"sign-yield"},"glass":{"parent":"cup"},"glass-broken":{"parent":"glass-fragile"},"glass-liquid":{"parent":"cup-water"},"glass-off":{"parent":"cup-off"},"glass-off-outline":{"parent":"cup-off-outline"},"glass-outline":{"parent":"cup-outline"},"glass-water":{"parent":"cup-water"},"glasshouse":{"parent":"greenhouse"},"global-search":{"parent":"search-web"},"globe":{"parent":"earth"},"globe-arrow-right":{"parent":"earth-arrow-right"},"globe-box":{"parent":"earth-box"},"globe-box-minus":{"parent":"earth-box-minus"},"globe-box-off":{"parent":"earth-box-off"},"globe-box-plus":{"parent":"earth-box-plus"},"globe-box-remove":{"parent":"earth-box-remove"},"globe-minus":{"parent":"earth-minus"},"globe-off":{"parent":"earth-off"},"globe-plus":{"parent":"earth-plus"},"globe-remove":{"parent":"earth-remove"},"glove":{"parent":"mixed-martial-arts"},"gluten":{"parent":"barley"},"gluten-free":{"parent":"barley-off"},"goal":{"parent":"flag-checkered"},"gog-com":{"parent":"gog"},"golf-course":{"parent":"golf"},"google-adwords":{"parent":"google-ads"},"google-controller":{"parent":"controller"},"google-controller-off":{"parent":"controller-off"},"google-gamepad":{"parent":"controller"},"google-gamepad-off":{"parent":"controller-off"},"gps-fixed":{"parent":"crosshairs-gps"},"gps-not-fixed":{"parent":"crosshairs"},"gps-unknown":{"parent":"crosshairs-question"},"gpu":{"parent":"expansion-card"},"grade":{"parent":"star"},"gradient":{"parent":"gradient-vertical"},"graduation-cap":{"parent":"school"},"graduation-cap-outline":{"parent":"school-outline"},"grain-off":{"parent":"barley-off"},"graph-areaspline":{"parent":"chart-areaspline"},"graph-areaspline-variant":{"parent":"chart-areaspline-variant"},"graph-bar":{"parent":"chart-bar"},"graph-bar-stacked":{"parent":"chart-bar-stacked"},"graph-bell-curve":{"parent":"chart-bell-curve"},"graph-bell-curve-cumulative":{"parent":"chart-bell-curve-cumulative"},"graph-box":{"parent":"chart-box"},"graph-box-outline":{"parent":"chart-box-outline"},"graph-box-plus-outline":{"parent":"chart-box-plus-outline"},"graph-histogram":{"parent":"chart-histogram"},"graph-line":{"parent":"chart-line"},"graph-line-shimmer":{"parent":"chart-timeline-variant-shimmer"},"graph-line-stacked":{"parent":"chart-line-stacked"},"graph-line-variant":{"parent":"chart-line-variant"},"graph-multiline":{"parent":"chart-multiline"},"graph-multiple":{"parent":"chart-multiple"},"graph-pie":{"parent":"chart-pie"},"graph-pie-outline":{"parent":"chart-pie-outline"},"graph-ppf":{"parent":"chart-ppf"},"graph-sankey":{"parent":"chart-sankey"},"graph-sankey-variant":{"parent":"chart-sankey-variant"},"graph-scatter-plot":{"parent":"chart-scatter-plot"},"graph-scatter-plot-hexbin":{"parent":"chart-scatter-plot-hexbin"},"graph-timeline":{"parent":"chart-timeline"},"graph-timeline-variant":{"parent":"chart-timeline-variant"},"graph-timeline-variant-shimmer":{"parent":"chart-timeline-variant-shimmer"},"graphics-processing-unit":{"parent":"expansion-card"},"graveyard":{"parent":"grave-stone"},"green-circle":{"parent":"leaf-circle"},"green-circle-outline":{"parent":"leaf-circle-outline"},"green-house":{"parent":"hoop-house"},"greeting":{"parent":"hand-wave"},"greeting-outline":{"parent":"hand-wave-outline"},"grid-on":{"parent":"grid"},"group-add":{"parent":"account-multiple-plus"},"group-add-outline":{"parent":"account-multiple-plus-outline"},"guardian":{"parent":"account-child"},"guardian-circle":{"parent":"account-child-circle"},"guest-room":{"parent":"bed"},"guest-room-outline":{"parent":"bed-outline"},"guide-dog":{"parent":"dog-service"},"gun":{"parent":"pistol"},"gym":{"parent":"dumbbell"},"gyro":{"parent":"axis-arrow"},"hackernews":{"parent":"y-combinator"},"hail-cab":{"parent":"hail"},"hail-taxi":{"parent":"hail"},"hallway":{"parent":"coat-rack"},"hamburger-menu":{"parent":"menu"},"hamburger-menu-back":{"parent":"backburger"},"hand":{"parent":"allergy"},"hand-bike":{"parent":"hand-cycle"},"hand-blood":{"parent":"diabetes"},"hand-double-tap":{"parent":"gesture-double-tap"},"hand-open":{"parent":"hand-extended"},"hand-open-outline":{"parent":"hand-extended-outline"},"hand-palm":{"parent":"hand-extended"},"hand-palm-outline":{"parent":"hand-extended-outline"},"hand-reading":{"parent":"braille"},"hand-sanitizer":{"parent":"lotion-plus"},"hand-sanitizer-outline":{"parent":"lotion-plus-outline"},"hand-tap":{"parent":"gesture-tap"},"hand-truck":{"parent":"dolly"},"hare":{"parent":"rabbit"},"hare-outline":{"parent":"rabbit-variant-outline"},"harry-potter":{"parent":"deathly-hallows"},"hashtag":{"parent":"pound"},"hashtag-box":{"parent":"pound-box"},"hashtag-box-outline":{"parent":"pound-box-outline"},"hd":{"parent":"high-definition"},"hd-box":{"parent":"high-definition-box"},"hdd":{"parent":"harddisk"},"hdd-plus":{"parent":"harddisk-plus"},"hdd-remove":{"parent":"harddisk-remove"},"head-ache":{"parent":"head-flash"},"head-ache-outline":{"parent":"head-flash-outline"},"head-bulb":{"parent":"head-lightbulb"},"head-bulb-outline":{"parent":"head-lightbulb-outline"},"head-freeze":{"parent":"head-snowflake"},"head-freeze-outline":{"parent":"head-snowflake-outline"},"head-idea":{"parent":"head-lightbulb"},"head-idea-outline":{"parent":"head-lightbulb-outline"},"head-light-dimmed":{"parent":"car-light-dimmed"},"head-light-fog":{"parent":"car-light-fog"},"head-light-high":{"parent":"car-light-high"},"head-love":{"parent":"head-heart"},"head-love-outline":{"parent":"head-heart-outline"},"head-refresh":{"parent":"head-sync"},"head-refresh-outline":{"parent":"head-sync-outline"},"head-reload":{"parent":"head-sync"},"head-reload-outline":{"parent":"head-sync-outline"},"head-thinking":{"parent":"head-dots-horizontal"},"head-thinking-outline":{"parent":"head-dots-horizontal-outline"},"headphones-off-outline":{"parent":"earbuds-off-outline"},"headphones-outline":{"parent":"earbuds-outline"},"headset-mic":{"parent":"headset"},"headstone":{"parent":"grave-stone"},"health-potion":{"parent":"bottle-tonic-plus"},"health-potion-outline":{"parent":"bottle-tonic-plus-outline"},"hearing-impaired":{"parent":"ear-hearing-off"},"heart-vitals":{"parent":"heart-pulse"},"hearts":{"parent":"heart-multiple"},"hearts-outline":{"parent":"heart-multiple-outline"},"heat-advisory":{"parent":"weather-sunny-alert"},"heat-alert":{"parent":"weather-sunny-alert"},"heat-cool":{"parent":"sun-snowflake"},"heat-index":{"parent":"sun-thermometer"},"heated-floor":{"parent":"heating-coil"},"heater":{"parent":"radiator"},"heater-disabled":{"parent":"radiator-disabled"},"heater-off":{"parent":"radiator-off"},"heating":{"parent":"hvac"},"heating-off":{"parent":"hvac-off"},"helipad":{"parent":"alpha-h-circle-outline"},"helix":{"parent":"dna"},"helm":{"parent":"ship-wheel"},"helmet":{"parent":"hard-hat"},"help-outline":{"parent":"handshake-outline"},"hexagons":{"parent":"hexagon-multiple"},"hey-listen":{"parent":"candy-outline"},"hi-hat-light":{"parent":"light-recessed"},"hide":{"parent":"eye-off"},"hide-outline":{"parent":"eye-off-outline"},"high-beam":{"parent":"car-light-high"},"high-hat-light":{"parent":"light-recessed"},"high-occupancy-vehicle-lane":{"parent":"car-2-plus"},"high-occupancy-vehicle-lane-outline":{"parent":"cards-diamond-outline"},"high-quality":{"parent":"quality-high"},"high-voltage":{"parent":"flash-triangle"},"high-voltage-outline":{"parent":"flash-triangle-outline"},"highlight-off":{"parent":"close-circle-outline"},"highlighter":{"parent":"marker"},"hinduism":{"parent":"om"},"historic":{"parent":"pillar"},"home-add":{"parent":"home-plus"},"home-attic":{"parent":"home-roof"},"home-bulb":{"parent":"home-lightbulb"},"home-bulb-outline":{"parent":"home-lightbulb-outline"},"home-chart":{"parent":"home-analytics"},"home-chimney":{"parent":"home-roof"},"home-climate":{"parent":"home-thermometer"},"home-climate-outline":{"parent":"home-thermometer-outline"},"home-electricity":{"parent":"home-battery"},"home-electricity-outline":{"parent":"home-battery-outline"},"home-energy":{"parent":"home-battery"},"home-energy-outline":{"parent":"home-battery-outline"},"home-find":{"parent":"home-search"},"home-find-outline":{"parent":"home-search-outline"},"home-flash":{"parent":"home-lightning-bolt"},"home-floor-attic":{"parent":"home-floor-a"},"home-floor-basement":{"parent":"home-floor-b"},"home-floor-first":{"parent":"home-floor-1"},"home-floor-ground":{"parent":"home-floor-g"},"home-floor-loft":{"parent":"home-floor-l"},"home-floor-lower":{"parent":"home-floor-l"},"home-floor-minus-1":{"parent":"home-floor-negative-1"},"home-floor-minus-one":{"parent":"home-floor-negative-1"},"home-floor-negative-one":{"parent":"home-floor-negative-1"},"home-floor-one":{"parent":"home-floor-1"},"home-floor-second":{"parent":"home-floor-2"},"home-floor-third":{"parent":"home-floor-3"},"home-floor-three":{"parent":"home-floor-3"},"home-floor-two":{"parent":"home-floor-2"},"home-floor-zero":{"parent":"home-floor-0"},"home-group-add":{"parent":"home-group-plus"},"home-location":{"parent":"home-map-marker"},"home-power":{"parent":"home-battery"},"home-power-outline":{"parent":"home-battery-outline"},"home-report":{"parent":"home-analytics"},"home-schedule":{"parent":"home-clock"},"home-schedule-outline":{"parent":"home-clock-outline"},"home-secure":{"parent":"home-lock"},"home-swap":{"parent":"home-switch"},"home-swap-outline":{"parent":"home-switch-outline"},"home-temperature":{"parent":"home-thermometer"},"home-temperature-outline":{"parent":"home-thermometer-outline"},"home-theater":{"parent":"seat"},"home-theatre":{"parent":"seat"},"home-time":{"parent":"home-clock"},"home-time-outline":{"parent":"home-clock-outline"},"home-user":{"parent":"home-account"},"home-warning":{"parent":"home-alert"},"home-warning-outline":{"parent":"home-alert-outline"},"home-wireless":{"parent":"home-automation"},"honey-farmer":{"parent":"beekeeper"},"honey-outline":{"parent":"beehive-outline"},"hope":{"parent":"hand-heart"},"horizontal-line":{"parent":"minus"},"horoscope-aquarius":{"parent":"zodiac-aquarius"},"horoscope-aries":{"parent":"zodiac-aries"},"horoscope-cancer":{"parent":"zodiac-cancer"},"horoscope-capricorn":{"parent":"zodiac-capricorn"},"horoscope-gemini":{"parent":"zodiac-gemini"},"horoscope-leo":{"parent":"zodiac-leo"},"horoscope-libra":{"parent":"zodiac-libra"},"horoscope-pisces":{"parent":"zodiac-pisces"},"horoscope-sagittarius":{"parent":"zodiac-sagittarius"},"horoscope-scorpio":{"parent":"zodiac-scorpio"},"horoscope-taurus":{"parent":"zodiac-taurus"},"horoscope-virgo":{"parent":"zodiac-virgo"},"horse-riding":{"parent":"horse-human"},"horseback-riding":{"parent":"horse-human"},"hospital-location":{"parent":"hospital-marker"},"hot":{"parent":"fire"},"hot-air-balloon":{"parent":"airballoon"},"hot-air-balloon-outline":{"parent":"airballoon-outline"},"hot-circle":{"parent":"fire-circle"},"hot-cold":{"parent":"sun-snowflake"},"hotel":{"parent":"bed"},"hotel-outline":{"parent":"bed-outline"},"hothouse":{"parent":"greenhouse"},"hourglass":{"parent":"timer-sand"},"hourglass-complete":{"parent":"timer-sand-complete"},"hourglass-empty":{"parent":"timer-sand-empty"},"hourglass-full":{"parent":"timer-sand-full"},"hourglass-paused":{"parent":"timer-sand-paused"},"house":{"parent":"home"},"house-account":{"parent":"home-account"},"house-add":{"parent":"home-plus"},"house-add-outline":{"parent":"home-plus-outline"},"house-alert":{"parent":"home-alert"},"house-alert-outline":{"parent":"home-alert-outline"},"house-analytics":{"parent":"home-analytics"},"house-attic":{"parent":"home-roof"},"house-automation":{"parent":"home-automation"},"house-battery":{"parent":"home-battery"},"house-battery-outline":{"parent":"home-battery-outline"},"house-bulb":{"parent":"home-lightbulb"},"house-bulb-outline":{"parent":"home-lightbulb-outline"},"house-chart":{"parent":"home-analytics"},"house-chimney":{"parent":"home-roof"},"house-circle":{"parent":"home-circle"},"house-circle-outline":{"parent":"home-circle-outline"},"house-city":{"parent":"home-city"},"house-city-outline":{"parent":"home-city-outline"},"house-climate":{"parent":"home-thermometer"},"house-climate-outline":{"parent":"home-thermometer-outline"},"house-clock":{"parent":"home-clock"},"house-clock-outline":{"parent":"home-clock-outline"},"house-edit":{"parent":"home-edit"},"house-edit-outline":{"parent":"home-edit-outline"},"house-energy":{"parent":"home-battery"},"house-energy-outline":{"parent":"home-battery-outline"},"house-export-outline":{"parent":"home-export-outline"},"house-find":{"parent":"home-search"},"house-find-outline":{"parent":"home-search-outline"},"house-flash":{"parent":"home-lightning-bolt"},"house-flash-outline":{"parent":"home-lightning-bolt-outline"},"house-flood":{"parent":"home-flood"},"house-floor-0":{"parent":"home-floor-0"},"house-floor-1":{"parent":"home-floor-1"},"house-floor-2":{"parent":"home-floor-2"},"house-floor-3":{"parent":"home-floor-3"},"house-floor-a":{"parent":"home-floor-a"},"house-floor-attic":{"parent":"home-floor-a"},"house-floor-b":{"parent":"home-floor-b"},"house-floor-basement":{"parent":"home-floor-b"},"house-floor-first":{"parent":"home-floor-1"},"house-floor-g":{"parent":"home-floor-g"},"house-floor-ground":{"parent":"home-floor-g"},"house-floor-l":{"parent":"home-floor-l"},"house-floor-loft":{"parent":"home-floor-l"},"house-floor-lower":{"parent":"home-floor-l"},"house-floor-minus-1":{"parent":"home-floor-negative-1"},"house-floor-minus-one":{"parent":"home-floor-negative-1"},"house-floor-negative-1":{"parent":"home-floor-negative-1"},"house-floor-negative-one":{"parent":"home-floor-negative-1"},"house-floor-one":{"parent":"home-floor-1"},"house-floor-second":{"parent":"home-floor-2"},"house-floor-third":{"parent":"home-floor-3"},"house-floor-three":{"parent":"home-floor-3"},"house-floor-two":{"parent":"home-floor-2"},"house-floor-zero":{"parent":"home-floor-0"},"house-group":{"parent":"home-group"},"house-group-add":{"parent":"home-group-plus"},"house-group-minus":{"parent":"home-group-minus"},"house-group-plus":{"parent":"home-group-plus"},"house-group-remove":{"parent":"home-group-remove"},"house-heart":{"parent":"home-heart"},"house-import-outline":{"parent":"home-import-outline"},"house-lightbulb":{"parent":"home-lightbulb"},"house-lightbulb-outline":{"parent":"home-lightbulb-outline"},"house-lightning-bolt":{"parent":"home-lightning-bolt"},"house-lightning-bolt-outline":{"parent":"home-lightning-bolt-outline"},"house-lock":{"parent":"home-lock"},"house-lock-open":{"parent":"home-lock-open"},"house-map-marker":{"parent":"home-map-marker"},"house-minus":{"parent":"home-minus"},"house-minus-outline":{"parent":"home-minus-outline"},"house-modern":{"parent":"home-modern"},"house-off":{"parent":"home-off"},"house-off-outline":{"parent":"home-off-outline"},"house-outline":{"parent":"home-outline"},"house-plus":{"parent":"home-plus"},"house-plus-outline":{"parent":"home-plus-outline"},"house-power":{"parent":"home-battery"},"house-power-outline":{"parent":"home-battery-outline"},"house-remove":{"parent":"home-remove"},"house-remove-outline":{"parent":"home-remove-outline"},"house-roof":{"parent":"home-roof"},"house-schedule":{"parent":"home-clock"},"house-schedule-outline":{"parent":"home-clock-outline"},"house-search":{"parent":"home-search"},"house-search-outline":{"parent":"home-search-outline"},"house-secure":{"parent":"home-lock"},"house-swap":{"parent":"home-switch"},"house-swap-outline":{"parent":"home-switch-outline"},"house-switch":{"parent":"home-switch"},"house-switch-outline":{"parent":"home-switch-outline"},"house-temperature":{"parent":"home-thermometer"},"house-temperature-outline":{"parent":"home-thermometer-outline"},"house-thermometer":{"parent":"home-thermometer"},"house-thermometer-outline":{"parent":"home-thermometer-outline"},"house-time":{"parent":"home-clock"},"house-time-outline":{"parent":"home-clock-outline"},"house-user":{"parent":"home-account"},"house-variant":{"parent":"home-variant"},"house-variant-outline":{"parent":"home-variant-outline"},"house-warning":{"parent":"home-alert"},"house-warning-outline":{"parent":"home-alert-outline"},"house-wireless":{"parent":"home-automation"},"housing-estate":{"parent":"home-group"},"hov-lane":{"parent":"car-2-plus"},"hov-lane-outline":{"parent":"cards-diamond-outline"},"how-to-reg":{"parent":"account-check"},"how-to-reg-outline":{"parent":"account-check-outline"},"how-to-vote":{"parent":"vote"},"how-to-vote-outline":{"parent":"vote-outline"},"hq":{"parent":"quality-high"},"https":{"parent":"lock"},"https-outline":{"parent":"lock-outline"},"human-accessible":{"parent":"human-wheelchair"},"human-barbell":{"parent":"weight-lifter"},"human-biathlon":{"parent":"biathlon"},"human-blind":{"parent":"human-white-cane"},"human-capacity-reduce":{"parent":"human-capacity-decrease"},"human-dance-ballroom":{"parent":"dance-ballroom"},"human-dance-pole":{"parent":"dance-pole"},"human-diving":{"parent":"diving"},"human-genderless":{"parent":"human-non-binary"},"human-hand-truck":{"parent":"human-dolly"},"human-handball":{"parent":"handball"},"human-hello":{"parent":"human-greeting"},"human-hello-variant":{"parent":"human-greeting-variant"},"human-hiking":{"parent":"hiking"},"human-kabaddi":{"parent":"kabaddi"},"human-karate":{"parent":"karate"},"human-kayaking":{"parent":"kayaking"},"human-line":{"parent":"human-queue"},"human-man-board":{"parent":"human-male-board"},"human-meditation":{"parent":"meditation"},"human-rowing":{"parent":"rowing"},"human-run":{"parent":"run"},"human-run-fast":{"parent":"run-fast"},"human-skateboarding":{"parent":"skateboarding"},"human-ski":{"parent":"ski"},"human-ski-cross-country":{"parent":"ski-cross-country"},"human-ski-water":{"parent":"ski-water"},"human-sledding":{"parent":"sledding"},"human-snowboard":{"parent":"snowboard"},"human-transgender":{"parent":"human-non-binary"},"human-trolley":{"parent":"human-dolly"},"human-walk":{"parent":"walk"},"human-welcome":{"parent":"human-greeting"},"humidity":{"parent":"cloud-percent"},"humidity-alert":{"parent":"water-percent-alert"},"humidity-outline":{"parent":"cloud-percent-outline"},"hydraulic-turbine":{"parent":"hydro-power"},"icc":{"parent":"integrated-circuit-chip"},"ice-skate":{"parent":"skate"},"id-card-outline":{"parent":"card-account-details-outline"},"idea":{"parent":"lightbulb"},"identification-card":{"parent":"card-account-details"},"identification-card-outline":{"parent":"card-account-details-outline"},"ideogram-chinese-japanese-korean":{"parent":"ideogram-cjk"},"ideogram-chinese-japanese-korean-variant":{"parent":"ideogram-cjk-variant"},"iframe":{"parent":"application"},"iframe-array":{"parent":"application-array"},"iframe-array-outline":{"parent":"application-array-outline"},"iframe-braces":{"parent":"application-braces"},"iframe-braces-outline":{"parent":"application-braces-outline"},"iframe-brackets":{"parent":"application-brackets"},"iframe-brackets-outline":{"parent":"application-brackets-outline"},"iframe-cog":{"parent":"application-cog"},"iframe-cog-outline":{"parent":"application-cog-outline"},"iframe-edit":{"parent":"application-edit"},"iframe-edit-outline":{"parent":"application-edit-outline"},"iframe-export-outline":{"parent":"application-export"},"iframe-import-outline":{"parent":"application-import"},"iframe-outline":{"parent":"application-outline"},"iframe-parentheses":{"parent":"application-parentheses"},"iframe-parentheses-outline":{"parent":"application-parentheses-outline"},"iframe-settings":{"parent":"application-settings"},"iframe-settings-outline":{"parent":"application-settings-outline"},"iframe-variable":{"parent":"application-variable"},"iframe-variable-outline":{"parent":"application-variable-outline"},"ignition":{"parent":"induction"},"illuminance":{"parent":"sun-wireless"},"illuminance-outline":{"parent":"sun-wireless-outline"},"image-360":{"parent":"panorama-variant"},"image-360-outline":{"parent":"panorama-variant-outline"},"image-add":{"parent":"image-plus"},"image-add-outline":{"parent":"image-plus-outline"},"image-aspect-ratio":{"parent":"relative-scale"},"image-description":{"parent":"image-text"},"image-filter":{"parent":"image-auto-adjust"},"image-filter-centre-focus":{"parent":"image-filter-center-focus"},"image-filter-centre-focus-weak":{"parent":"image-filter-center-focus-weak"},"image-jpeg-box":{"parent":"file-jpg-box"},"image-jpg-box":{"parent":"file-jpg-box"},"image-location":{"parent":"image-marker"},"image-location-outline":{"parent":"image-marker-outline"},"image-secure":{"parent":"image-lock"},"image-secure-outline":{"parent":"image-lock-outline"},"image-vr":{"parent":"panorama-variant"},"image-vr-outline":{"parent":"panorama-variant-outline"},"images":{"parent":"image-multiple"},"images-outline":{"parent":"image-multiple-outline"},"immunization":{"parent":"needle"},"immunization-off":{"parent":"needle-off"},"import-contacts":{"parent":"book-open-blank-variant"},"import-export":{"parent":"swap-vertical"},"import-export-bold":{"parent":"swap-vertical-bold"},"important-devices":{"parent":"monitor-cellphone-star"},"inboxes":{"parent":"inbox-multiple"},"inboxes-outline":{"parent":"inbox-multiple-outline"},"increment":{"parent":"numeric-positive-1"},"indeterminate-check-box":{"parent":"minus-box"},"industrial":{"parent":"factory"},"infinity-box":{"parent":"all-inclusive-box"},"infinity-box-outline":{"parent":"all-inclusive-box-outline"},"info-circle":{"parent":"information"},"info-circle-outline":{"parent":"information-outline"},"info-outline":{"parent":"information-outline"},"info-variant":{"parent":"information-variant"},"information-circle":{"parent":"information"},"information-circle-outline":{"parent":"information-outline"},"injection":{"parent":"needle"},"injection-off":{"parent":"needle-off"},"ink":{"parent":"water"},"ink-alert":{"parent":"water-alert"},"ink-alert-outline":{"parent":"water-alert-outline"},"ink-check":{"parent":"water-check"},"ink-check-outline":{"parent":"water-check-outline"},"ink-circle":{"parent":"water-circle"},"ink-color":{"parent":"format-color-fill"},"ink-colour":{"parent":"format-color-fill"},"ink-minus":{"parent":"water-minus"},"ink-minus-outline":{"parent":"water-minus-outline"},"ink-off":{"parent":"water-off"},"ink-off-outline":{"parent":"water-off-outline"},"ink-outline":{"parent":"water-outline"},"ink-percent":{"parent":"water-percent"},"ink-percent-alert":{"parent":"water-percent-alert"},"ink-plus":{"parent":"water-plus"},"ink-plus-outline":{"parent":"water-plus-outline"},"ink-remove":{"parent":"water-remove"},"ink-remove-outline":{"parent":"water-remove-outline"},"ink-spot":{"parent":"liquid-spot"},"inky":{"parent":"ghost"},"inner-join":{"parent":"set-center"},"input":{"parent":"import"},"insect":{"parent":"bee"},"insert-comment":{"parent":"message-reply-text"},"insert-drive-file":{"parent":"file"},"insert-emoticon":{"parent":"emoticon-outline"},"insert-invitation":{"parent":"calendar"},"insert-link":{"parent":"link"},"insert-photo":{"parent":"image"},"instant-cash":{"parent":"cash-fast"},"instant-deposit":{"parent":"cash-fast"},"instant-mix":{"parent":"tune-vertical"},"instant-transfer":{"parent":"cash-fast"},"integrated-circuit":{"parent":"chip"},"interaction-double-tap":{"parent":"gesture-double-tap"},"interaction-tap":{"parent":"gesture-tap"},"international-symbol-of-access":{"parent":"wheelchair"},"internet":{"parent":"web"},"internet-box":{"parent":"web-box"},"internet-explorer":{"parent":"microsoft-internet-explorer"},"internet-protocol":{"parent":"ip"},"internet-protocol-outline":{"parent":"ip-outline"},"internet-search":{"parent":"search-web"},"invert-colours":{"parent":"invert-colors"},"invert-colours-off":{"parent":"invert-colors-off"},"invite":{"parent":"account-multiple-plus"},"invoice":{"parent":"receipt-text"},"invoice-add":{"parent":"receipt-text-plus"},"invoice-check":{"parent":"receipt-text-check"},"invoice-check-outline":{"parent":"receipt-text-check-outline"},"invoice-minus":{"parent":"receipt-text-minus"},"invoice-minus-outline":{"parent":"receipt-text-minus-outline"},"invoice-outline":{"parent":"receipt-text-outline"},"invoice-plus":{"parent":"receipt-text-plus"},"invoice-remove":{"parent":"receipt-text-remove"},"invoice-remove-outline":{"parent":"receipt-text-remove-outline"},"ios-share":{"parent":"export-variant"},"irrigation":{"parent":"sprinkler"},"isa":{"parent":"wheelchair"},"islam":{"parent":"mosque"},"italian-lights":{"parent":"string-lights"},"italian-lights-off":{"parent":"string-lights-off"},"jack-o-lantern":{"parent":"halloween"},"jaws":{"parent":"shark"},"jaws-off":{"parent":"shark-off"},"jet-engine":{"parent":"turbine"},"jewel":{"parent":"diamond-stone"},"jewish":{"parent":"star-david"},"jewish-outline":{"parent":"synagogue-outline"},"jigsaw":{"parent":"puzzle"},"jigsaw-outline":{"parent":"puzzle-outline"},"jolly-roger":{"parent":"skull-crossbones"},"jolly-roger-outline":{"parent":"skull-crossbones-outline"},"journal":{"parent":"notebook"},"journal-multiple":{"parent":"notebook-multiple"},"journal-outline":{"parent":"notebook-outline"},"json":{"parent":"code-json"},"judaism":{"parent":"star-david"},"jump":{"parent":"debug-step-over"},"justice":{"parent":"scale-balance"},"k9":{"parent":"dog-service"},"karabiner":{"parent":"carabiner"},"kazakhstani-tenge":{"parent":"currency-kzt"},"keep":{"parent":"pin"},"keep-off":{"parent":"pin-off"},"keep-off-outline":{"parent":"pin-off-outline"},"keep-outline":{"parent":"pin-outline"},"keep-warm":{"parent":"heat-wave"},"kettle-empty":{"parent":"kettle-outline"},"kettle-empty-alert":{"parent":"kettle-alert-outline"},"kettle-empty-off":{"parent":"kettle-off-outline"},"kettle-empty-steam":{"parent":"kettle-steam-outline"},"kettle-full":{"parent":"kettle"},"kettle-full-alert":{"parent":"kettle-alert"},"kettle-full-off":{"parent":"kettle-off"},"kettle-full-steam":{"parent":"kettle-steam"},"key-add":{"parent":"key-plus"},"key-favorite":{"parent":"key-star"},"keyboard-arrow-down":{"parent":"chevron-down"},"keyboard-arrow-left":{"parent":"chevron-left"},"keyboard-arrow-right":{"parent":"chevron-right"},"keyboard-arrow-up":{"parent":"chevron-up"},"keyboard-capslock":{"parent":"keyboard-caps"},"keyboard-clear":{"parent":"keyboard-backspace"},"keyboard-erase":{"parent":"keyboard-backspace"},"keyboard-hide":{"parent":"keyboard-close"},"keyboard-hide-outline":{"parent":"keyboard-close-outline"},"keyboard-voice":{"parent":"microphone"},"keypad":{"parent":"dialpad"},"kho-kho":{"parent":"dance-pole"},"kickboxing":{"parent":"karate"},"kids-room":{"parent":"teddy-bear"},"kitchen":{"parent":"fridge"},"kitchen-counter":{"parent":"countertop"},"kitchen-counter-outline":{"parent":"countertop-outline"},"kitchen-roll":{"parent":"paper-roll"},"kitchen-roll-outline":{"parent":"paper-roll-outline"},"kitchen-tap":{"parent":"faucet"},"kitchen-tap-off":{"parent":"water-pump-off"},"kotlin":{"parent":"language-kotlin"},"lacrosse":{"parent":"racquetball"},"lacto-vegetarian":{"parent":"square-circle"},"ladybird":{"parent":"ladybug"},"lake":{"parent":"waves"},"landscape":{"parent":"image-filter-hdr"},"language":{"parent":"translate"},"language-box":{"parent":"web-box"},"last-page":{"parent":"page-last"},"latest":{"parent":"history"},"laundrette":{"parent":"washing-machine"},"laundry-room":{"parent":"tumble-dryer"},"laundry-room-alert":{"parent":"tumble-dryer-alert"},"laundry-room-off":{"parent":"tumble-dryer-off"},"lavatory":{"parent":"toilet"},"lavatory-roll":{"parent":"paper-roll"},"lavatory-roll-outline":{"parent":"paper-roll-outline"},"lawn":{"parent":"grass"},"lawn-mower":{"parent":"robot-mower"},"lawn-mower-outline":{"parent":"robot-mower-outline"},"layers-clear":{"parent":"layers-off"},"leads":{"parent":"account-filter"},"leads-outline":{"parent":"account-filter-outline"},"learn":{"parent":"chair-school"},"learn-outline":{"parent":"school-outline"},"lecture":{"parent":"human-male-board"},"lecturn":{"parent":"lectern"},"left-to-right":{"parent":"format-pilcrow-arrow-right"},"legal":{"parent":"scale-balance"},"lego":{"parent":"toy-brick"},"lego-location":{"parent":"toy-brick-marker"},"lego-location-outline":{"parent":"toy-brick-marker-outline"},"lego-outline":{"parent":"toy-brick-marker-outline"},"lens":{"parent":"circle"},"letter-a":{"parent":"alpha-a"},"letter-a-box":{"parent":"alpha-a-box"},"letter-a-box-outline":{"parent":"alpha-a-box-outline"},"letter-a-circle":{"parent":"alpha-a-circle"},"letter-a-circle-outline":{"parent":"alpha-a-circle-outline"},"letter-b":{"parent":"alpha-b"},"letter-b-box":{"parent":"alpha-b-box"},"letter-b-box-outline":{"parent":"alpha-b-box-outline"},"letter-b-circle":{"parent":"alpha-b-circle"},"letter-b-circle-outline":{"parent":"alpha-b-circle-outline"},"letter-c":{"parent":"alpha-c"},"letter-c-box":{"parent":"alpha-c-box"},"letter-c-box-outline":{"parent":"alpha-c-box-outline"},"letter-c-circle":{"parent":"alpha-c-circle"},"letter-c-circle-outline":{"parent":"alpha-c-circle-outline"},"letter-d":{"parent":"alpha-d"},"letter-d-box":{"parent":"alpha-d-box"},"letter-d-box-outline":{"parent":"alpha-d-box-outline"},"letter-d-circle":{"parent":"alpha-d-circle"},"letter-d-circle-outline":{"parent":"alpha-d-circle-outline"},"letter-e":{"parent":"alpha-e"},"letter-e-box":{"parent":"alpha-e-box"},"letter-e-box-outline":{"parent":"alpha-e-box-outline"},"letter-e-circle":{"parent":"alpha-e-circle"},"letter-e-circle-outline":{"parent":"alpha-e-circle-outline"},"letter-f":{"parent":"alpha-f"},"letter-f-box":{"parent":"alpha-f-box"},"letter-f-box-outline":{"parent":"alpha-f-box-outline"},"letter-f-circle":{"parent":"alpha-f-circle"},"letter-f-circle-outline":{"parent":"alpha-f-circle-outline"},"letter-g":{"parent":"alpha-g"},"letter-g-box":{"parent":"alpha-g-box"},"letter-g-box-outline":{"parent":"alpha-g-box-outline"},"letter-g-circle":{"parent":"alpha-g-circle"},"letter-g-circle-outline":{"parent":"alpha-g-circle-outline"},"letter-h":{"parent":"alpha-h"},"letter-h-box":{"parent":"alpha-h-box"},"letter-h-box-outline":{"parent":"alpha-h-box-outline"},"letter-h-circle":{"parent":"alpha-h-circle"},"letter-h-circle-outline":{"parent":"alpha-h-circle-outline"},"letter-i":{"parent":"alpha-i"},"letter-i-box":{"parent":"alpha-i-box"},"letter-i-box-outline":{"parent":"alpha-i-box-outline"},"letter-i-circle":{"parent":"alpha-i-circle"},"letter-i-circle-outline":{"parent":"alpha-i-circle-outline"},"letter-j":{"parent":"alpha-j"},"letter-j-box":{"parent":"alpha-j-box"},"letter-j-box-outline":{"parent":"alpha-j-box-outline"},"letter-j-circle":{"parent":"alpha-j-circle"},"letter-j-circle-outline":{"parent":"alpha-j-circle-outline"},"letter-k":{"parent":"alpha-k"},"letter-k-box":{"parent":"alpha-k-box"},"letter-k-box-outline":{"parent":"alpha-k-box-outline"},"letter-k-circle":{"parent":"alpha-k-circle"},"letter-k-circle-outline":{"parent":"alpha-k-circle-outline"},"letter-l":{"parent":"alpha-l"},"letter-l-box":{"parent":"alpha-l-box"},"letter-l-box-outline":{"parent":"alpha-l-box-outline"},"letter-l-circle":{"parent":"alpha-l-circle"},"letter-l-circle-outline":{"parent":"alpha-l-circle-outline"},"letter-m":{"parent":"alpha-m"},"letter-m-box":{"parent":"alpha-m-box"},"letter-m-box-outline":{"parent":"alpha-m-box-outline"},"letter-m-circle":{"parent":"alpha-m-circle"},"letter-m-circle-outline":{"parent":"alpha-m-circle-outline"},"letter-n":{"parent":"alpha-n"},"letter-n-box":{"parent":"alpha-n-box"},"letter-n-box-outline":{"parent":"alpha-n-box-outline"},"letter-n-circle":{"parent":"alpha-n-circle"},"letter-n-circle-outline":{"parent":"alpha-n-circle-outline"},"letter-o":{"parent":"alpha-o"},"letter-o-box":{"parent":"alpha-o-box"},"letter-o-box-outline":{"parent":"alpha-o-box-outline"},"letter-o-circle":{"parent":"alpha-o-circle"},"letter-o-circle-outline":{"parent":"alpha-o-circle-outline"},"letter-p":{"parent":"alpha-p"},"letter-p-box":{"parent":"alpha-p-box"},"letter-p-box-outline":{"parent":"alpha-p-box-outline"},"letter-p-circle":{"parent":"alpha-p-circle"},"letter-p-circle-outline":{"parent":"alpha-p-circle-outline"},"letter-q":{"parent":"alpha-q"},"letter-q-box":{"parent":"alpha-q-box"},"letter-q-box-outline":{"parent":"alpha-q-box-outline"},"letter-q-circle":{"parent":"alpha-q-circle"},"letter-q-circle-outline":{"parent":"alpha-q-circle-outline"},"letter-r":{"parent":"alpha-r"},"letter-r-box":{"parent":"alpha-r-box"},"letter-r-box-outline":{"parent":"alpha-r-box-outline"},"letter-r-circle":{"parent":"alpha-r-circle"},"letter-r-circle-outline":{"parent":"alpha-r-circle-outline"},"letter-s":{"parent":"alpha-s"},"letter-s-box":{"parent":"alpha-s-box"},"letter-s-box-outline":{"parent":"alpha-s-box-outline"},"letter-s-circle":{"parent":"alpha-s-circle"},"letter-s-circle-outline":{"parent":"alpha-s-circle-outline"},"letter-t":{"parent":"alpha-t"},"letter-t-box":{"parent":"alpha-t-box"},"letter-t-box-outline":{"parent":"alpha-t-box-outline"},"letter-t-circle":{"parent":"alpha-t-circle"},"letter-t-circle-outline":{"parent":"alpha-t-circle-outline"},"letter-u":{"parent":"alpha-u"},"letter-u-box":{"parent":"alpha-u-box"},"letter-u-box-outline":{"parent":"alpha-u-box-outline"},"letter-u-circle":{"parent":"alpha-u-circle"},"letter-u-circle-outline":{"parent":"alpha-u-circle-outline"},"letter-v":{"parent":"alpha-v"},"letter-v-box":{"parent":"alpha-v-box"},"letter-v-box-outline":{"parent":"alpha-v-box-outline"},"letter-v-circle":{"parent":"alpha-v-circle"},"letter-v-circle-outline":{"parent":"alpha-v-circle-outline"},"letter-w":{"parent":"alpha-w"},"letter-w-box":{"parent":"alpha-w-box"},"letter-w-box-outline":{"parent":"alpha-w-box-outline"},"letter-w-circle":{"parent":"alpha-w-circle"},"letter-w-circle-outline":{"parent":"alpha-w-circle-outline"},"letter-x":{"parent":"alpha-x"},"letter-x-box":{"parent":"alpha-x-box"},"letter-x-box-outline":{"parent":"alpha-x-box-outline"},"letter-x-circle":{"parent":"alpha-x-circle"},"letter-x-circle-outline":{"parent":"alpha-x-circle-outline"},"letter-y":{"parent":"alpha-y"},"letter-y-box":{"parent":"alpha-y-box"},"letter-y-box-outline":{"parent":"alpha-y-box-outline"},"letter-y-circle":{"parent":"alpha-y-circle"},"letter-y-circle-outline":{"parent":"alpha-y-circle-outline"},"letter-z":{"parent":"alpha-z"},"letter-z-box":{"parent":"alpha-z-box"},"letter-z-box-outline":{"parent":"alpha-z-box-outline"},"letter-z-circle":{"parent":"alpha-z-circle"},"letter-z-circle-outline":{"parent":"alpha-z-circle-outline"},"letters":{"parent":"alphabetical"},"letters-off":{"parent":"alphabetical-off"},"level-crossing-signals":{"parent":"railroad-light"},"library-add":{"parent":"plus-box-multiple"},"library-bookmark":{"parent":"bookmark-box-multiple"},"library-bookmark-outline":{"parent":"bookmark-box-multiple-outline"},"library-close":{"parent":"close-box-multiple"},"library-close-outline":{"parent":"close-box-multiple-outline"},"library-edit":{"parent":"pencil-box-multiple"},"library-edit-outline":{"parent":"pencil-box-multiple-outline"},"library-minus":{"parent":"minus-box-multiple"},"library-minus-outline":{"parent":"minus-box-multiple-outline"},"library-movie":{"parent":"filmstrip-box-multiple"},"library-music":{"parent":"music-box-multiple"},"library-music-outline":{"parent":"music-box-multiple-outline"},"library-plus":{"parent":"plus-box-multiple"},"library-remove":{"parent":"close-box-multiple"},"library-remove-outline":{"parent":"close-box-multiple-outline"},"library-video":{"parent":"play-box-multiple"},"life-preserver":{"parent":"lifebuoy"},"light-strip":{"parent":"led-strip"},"light-strip-variant":{"parent":"led-strip-variant"},"light-strip-variant-off":{"parent":"led-strip-variant-off"},"light-switch-on":{"parent":"toggle-switch-variant"},"lightbulb-automatic":{"parent":"lightbulb-auto"},"lightbulb-automatic-outline":{"parent":"lightbulb-auto-outline"},"lightbulb-dimmer-10":{"parent":"lightbulb-on-10"},"lightbulb-dimmer-100":{"parent":"lightbulb-on"},"lightbulb-dimmer-20":{"parent":"lightbulb-on-20"},"lightbulb-dimmer-30":{"parent":"lightbulb-on-30"},"lightbulb-dimmer-40":{"parent":"lightbulb-on-40"},"lightbulb-dimmer-50":{"parent":"lightbulb-on-50"},"lightbulb-dimmer-60":{"parent":"lightbulb-on-60"},"lightbulb-dimmer-70":{"parent":"lightbulb-on-70"},"lightbulb-dimmer-80":{"parent":"lightbulb-on-80"},"lightbulb-dimmer-90":{"parent":"lightbulb-on-90"},"lightbulb-edison":{"parent":"lightbulb-variant"},"lightbulb-edison-outline":{"parent":"lightbulb-variant-outline"},"lightbulb-error":{"parent":"lightbulb-alert"},"lightbulb-error-outline":{"parent":"lightbulb-alert-outline"},"lightbulb-filament":{"parent":"lightbulb-variant"},"lightbulb-filament-outline":{"parent":"lightbulb-variant-outline"},"lightbulb-gu10":{"parent":"lightbulb-spot"},"lightbulb-gu10-off":{"parent":"lightbulb-spot-off"},"lightbulb-halogen":{"parent":"lightbulb-spot"},"lightbulb-halogen-off":{"parent":"lightbulb-spot-off"},"lightbulb-help":{"parent":"lightbulb-question"},"lightbulb-help-outline":{"parent":"lightbulb-question-outline"},"lightbulb-moon-star":{"parent":"lightbulb-night"},"lightbulb-moon-star-outline":{"parent":"lightbulb-night-outline"},"lightbulb-motion":{"parent":"lightbulb-auto"},"lightbulb-motion-outline":{"parent":"lightbulb-auto-outline"},"lightbulbs":{"parent":"lightbulb-multiple"},"lightbulbs-off":{"parent":"lightbulb-multiple-off"},"lightbulbs-off-outline":{"parent":"lightbulb-multiple-off-outline"},"lightbulbs-outline":{"parent":"lightbulb-multiple-outline"},"lightning-alert":{"parent":"flash-alert"},"lightning-alert-outline":{"parent":"flash-alert-outline"},"lights":{"parent":"lamps"},"lights-outline":{"parent":"lamps-outline"},"like":{"parent":"thumb-up"},"like-dislike":{"parent":"thumbs-up-down"},"like-dislike-outline":{"parent":"thumbs-up-down-outline"},"like-outline":{"parent":"thumb-up-outline"},"link-add":{"parent":"link-plus"},"linkedin-box":{"parent":"linkedin"},"lira":{"parent":"currency-try"},"living-room":{"parent":"sofa"},"living-room-outline":{"parent":"sofa-outline"},"loaf":{"parent":"baguette"},"local-activity":{"parent":"ticket"},"local-airport":{"parent":"airplane"},"local-area-network":{"parent":"lan"},"local-area-network-connect":{"parent":"lan-connect"},"local-area-network-disconnect":{"parent":"lan-disconnect"},"local-area-network-pending":{"parent":"lan-pending"},"local-atm":{"parent":"cash-usd"},"local-attraction":{"parent":"ticket"},"local-bar":{"parent":"glass-cocktail"},"local-cafe":{"parent":"coffee"},"local-cafe-off":{"parent":"coffee-off"},"local-cafe-off-outline":{"parent":"coffee-off-outline"},"local-cafe-outline":{"parent":"coffee-outline"},"local-cafe-to-go":{"parent":"coffee-to-go"},"local-cafe-to-go-outline":{"parent":"coffee-to-go-outline"},"local-car-wash":{"parent":"car-wash"},"local-convenience-store":{"parent":"store-24-hour"},"local-dining":{"parent":"silverware"},"local-drink":{"parent":"cup-water"},"local-florist":{"parent":"flower"},"local-florist-outline":{"parent":"flower-outline"},"local-gas-station":{"parent":"gas-station"},"local-grocery-store":{"parent":"cart"},"local-hospital":{"parent":"hospital-box"},"local-laundry-service":{"parent":"washing-machine"},"local-library":{"parent":"library"},"local-library-outline":{"parent":"library-outline"},"local-mall":{"parent":"shopping"},"local-mall-outline":{"parent":"shopping-outline"},"local-movies":{"parent":"filmstrip"},"local-offer":{"parent":"tag"},"local-parking":{"parent":"parking"},"local-pharmacy":{"parent":"mortar-pestle-plus"},"local-phone":{"parent":"phone"},"local-pizza":{"parent":"pizza"},"local-play":{"parent":"ticket"},"local-post-office":{"parent":"email"},"local-print-shop":{"parent":"printer"},"local-printshop":{"parent":"printer"},"local-restaurant":{"parent":"silverware"},"local-see":{"parent":"camera"},"local-shipping":{"parent":"truck"},"local-taxi":{"parent":"taxi"},"location":{"parent":"map-marker"},"location-add":{"parent":"map-marker-plus"},"location-add-outline":{"parent":"map-marker-plus-outline"},"location-alert":{"parent":"map-marker-alert"},"location-alert-outline":{"parent":"map-marker-alert-outline"},"location-check":{"parent":"map-marker-check"},"location-check-outline":{"parent":"map-marker-check-outline"},"location-circle":{"parent":"map-marker-circle"},"location-city":{"parent":"city"},"location-distance":{"parent":"map-marker-distance"},"location-down":{"parent":"map-marker-down"},"location-favorite":{"parent":"map-marker-star"},"location-favorite-outline":{"parent":"map-marker-star-outline"},"location-left":{"parent":"map-marker-left"},"location-left-outline":{"parent":"map-marker-left-outline"},"location-minus":{"parent":"map-marker-minus"},"location-minus-outline":{"parent":"map-marker-minus-outline"},"location-multiple":{"parent":"map-marker-multiple"},"location-multiple-outline":{"parent":"map-marker-multiple-outline"},"location-off":{"parent":"map-marker-off"},"location-off-outline":{"parent":"map-marker-off-outline"},"location-on":{"parent":"map-marker"},"location-on-outline":{"parent":"map-marker-outline"},"location-outline":{"parent":"map-marker-outline"},"location-path":{"parent":"map-marker-path"},"location-plus":{"parent":"map-marker-plus"},"location-plus-outline":{"parent":"map-marker-plus-outline"},"location-question":{"parent":"map-marker-question"},"location-question-outline":{"parent":"map-marker-question-outline"},"location-radius":{"parent":"map-marker-radius"},"location-radius-outline":{"parent":"map-marker-radius-outline"},"location-remove":{"parent":"map-marker-remove"},"location-remove-outline":{"parent":"map-marker-remove-outline"},"location-remove-variant-outline":{"parent":"map-marker-remove-variant"},"location-right":{"parent":"map-marker-right"},"location-right-outline":{"parent":"map-marker-right-outline"},"location-searching":{"parent":"crosshairs"},"location-star":{"parent":"map-marker-star"},"location-star-outline":{"parent":"map-marker-star-outline"},"location-up":{"parent":"map-marker-up"},"location-warning":{"parent":"map-marker-alert"},"location-warning-outline":{"parent":"map-marker-alert-outline"},"locations":{"parent":"map-marker-multiple"},"locations-outline":{"parent":"map-marker-multiple-outline"},"lock-add":{"parent":"lock-plus"},"lock-add-outline":{"parent":"lock-plus-outline"},"lock-open-add":{"parent":"lock-open-plus"},"lock-open-add-outline":{"parent":"lock-open-plus-outline"},"lock-open-warning":{"parent":"lock-open-alert"},"lock-open-warning-outline":{"parent":"lock-open-alert-outline"},"lock-rate":{"parent":"lock-percent"},"lock-rate-open":{"parent":"lock-percent-open"},"lock-rate-open-outline":{"parent":"lock-percent-open-outline"},"lock-rate-open-variant":{"parent":"lock-percent-open-variant"},"lock-rate-open-variant-outline":{"parent":"lock-percent-open-variant-outline"},"lock-rate-outline":{"parent":"lock-percent-outline"},"lock-warning":{"parent":"lock-alert"},"lock-warning-outline":{"parent":"lock-alert-outline"},"lockers":{"parent":"locker-multiple"},"locomotive":{"parent":"train"},"locomotive-variant":{"parent":"train-variant"},"log-in":{"parent":"login"},"log-in-variant":{"parent":"login-variant"},"log-out":{"parent":"logout"},"log-out-variant":{"parent":"logout-variant"},"logic-gate-and":{"parent":"gate-and"},"logic-gate-nand":{"parent":"gate-nand"},"logic-gate-nor":{"parent":"gate-nor"},"logic-gate-not":{"parent":"gate-not"},"logic-gate-or":{"parent":"gate-or"},"logic-gate-xnor":{"parent":"gate-xnor"},"logic-gate-xor":{"parent":"gate-xor"},"looks-3":{"parent":"numeric-3-box"},"looks-4":{"parent":"numeric-4-box"},"looks-5":{"parent":"numeric-5-box"},"looks-6":{"parent":"numeric-6-box"},"looks-one":{"parent":"numeric-1-box"},"looks-two":{"parent":"numeric-2-box"},"loop":{"parent":"refresh"},"lorry":{"parent":"truck"},"lorry-check":{"parent":"truck-check"},"lorry-delivery":{"parent":"truck-delivery"},"lorry-fast":{"parent":"truck-fast"},"loudspeaker":{"parent":"bullhorn"},"loudspeaker-outline":{"parent":"bullhorn-outline"},"love":{"parent":"hand-heart"},"love-seat":{"parent":"sofa-single"},"love-seat-outline":{"parent":"sofa-single-outline"},"loveseat":{"parent":"sofa-single"},"loveseat-outline":{"parent":"sofa-single-outline"},"low-beam":{"parent":"car-light-dimmed"},"low-priority":{"parent":"priority-low"},"low-quality":{"parent":"quality-low"},"loyalty":{"parent":"tag-heart"},"lq":{"parent":"quality-low"},"ltr":{"parent":"format-pilcrow-arrow-right"},"luck":{"parent":"clover"},"luggage":{"parent":"bag-checked"},"magen-david":{"parent":"star-david"},"magic":{"parent":"auto-fix"},"magic-wand":{"parent":"magic-staff"},"magnify-add":{"parent":"magnify-plus"},"magnify-add-cursor":{"parent":"magnify-plus-cursor"},"magnify-add-outline":{"parent":"magnify-plus-outline"},"magnify-outline":{"parent":"magnify"},"mail-certified":{"parent":"email-seal"},"mail-certified-outline":{"parent":"email-seal-outline"},"mail-outline":{"parent":"email-outline"},"mail-seal":{"parent":"email-seal"},"mail-seal-outline":{"parent":"email-seal-outline"},"mail-verified":{"parent":"email-seal"},"mail-verified-outline":{"parent":"email-seal-outline"},"man":{"parent":"human-male"},"man-child":{"parent":"human-male-boy"},"man-man":{"parent":"human-male-male"},"man-woman":{"parent":"human-male-female"},"manufacturing":{"parent":"cogs"},"map-add":{"parent":"map-plus"},"map-marker-add":{"parent":"map-marker-plus"},"map-marker-add-outline":{"parent":"map-marker-plus-outline"},"map-marker-favorite":{"parent":"map-marker-star"},"map-marker-favorite-outline":{"parent":"map-marker-star-outline"},"map-marker-tick":{"parent":"map-marker-check"},"map-markers":{"parent":"map-marker-multiple"},"map-markers-outline":{"parent":"map-marker-multiple-outline"},"map-tick":{"parent":"map-check"},"map-tick-outline":{"parent":"map-check-outline"},"marble":{"parent":"google-earth"},"marijuana":{"parent":"cannabis"},"markdown":{"parent":"language-markdown"},"markdown-outline":{"parent":"language-markdown-outline"},"marker-tick":{"parent":"marker-check"},"marketplace":{"parent":"shopping"},"marketplace-outline":{"parent":"shopping-outline"},"markunread":{"parent":"email"},"markunread-mailbox":{"parent":"mailbox"},"marquise":{"parent":"awning"},"marquise-outline":{"parent":"awning-outline"},"mars":{"parent":"gender-male"},"marsupial":{"parent":"kangaroo"},"martial-arts":{"parent":"karate"},"martini":{"parent":"glass-cocktail"},"masked-transitions":{"parent":"transition-masked"},"mason":{"parent":"ruler-square-compass"},"masonic":{"parent":"ruler-square-compass"},"material":{"parent":"palette-swatch"},"math-compass-variant":{"parent":"android-studio"},"math-cosine":{"parent":"math-cos"},"math-sine":{"parent":"math-sin"},"math-tangent":{"parent":"math-tan"},"maths-compass":{"parent":"math-compass"},"maths-cos":{"parent":"math-cos"},"maths-sin":{"parent":"math-sin"},"maths-tan":{"parent":"math-tan"},"maximize":{"parent":"checkbox-blank-outline"},"mdi":{"parent":"vector-square"},"measuring-tape":{"parent":"tape-measure"},"meat":{"parent":"food-drumstick"},"meat-off":{"parent":"food-drumstick-off"},"meat-off-outline":{"parent":"food-drumstick-off-outline"},"meat-outline":{"parent":"food-drumstick-outline"},"mechanic":{"parent":"car-wrench"},"media-network":{"parent":"play-network"},"media-network-outline":{"parent":"play-network-outline"},"medicine":{"parent":"medical-bag"},"medicine-bottle":{"parent":"medication"},"medicine-bottle-outline":{"parent":"medication-outline"},"medicine-off":{"parent":"needle-off"},"medicine-outline":{"parent":"minus-circle-outline"},"medium-quality":{"parent":"quality-medium"},"megaphone":{"parent":"bullhorn"},"megaphone-outline":{"parent":"bullhorn-outline"},"men":{"parent":"human-male-male"},"menorah-flame":{"parent":"menorah-fire"},"mercury":{"parent":"gender-male-female-variant"},"merge-type":{"parent":"call-merge"},"message-add":{"parent":"message-plus"},"message-group":{"parent":"forum"},"message-notification":{"parent":"message-badge"},"message-notification-outline":{"parent":"message-badge-outline"},"message-quick":{"parent":"message-flash"},"message-quick-outline":{"parent":"message-flash-outline"},"message-secure":{"parent":"message-lock"},"message-settings-variant":{"parent":"message-cog"},"message-settings-variant-outline":{"parent":"message-cog-outline"},"message-text-secure":{"parent":"message-text-lock"},"message-unread":{"parent":"message-badge"},"message-unread-outline":{"parent":"message-badge-outline"},"message-warning":{"parent":"message-alert"},"message-warning-outline":{"parent":"message-alert-outline"},"metro":{"parent":"subway"},"metro-variant":{"parent":"subway-variant"},"mic-none":{"parent":"microphone-outline"},"mic-off":{"parent":"microphone-off"},"microphone-add":{"parent":"microphone-plus"},"microphone-help":{"parent":"microphone-question"},"microphone-help-outline":{"parent":"microphone-question-outline"},"microphone-remove":{"parent":"microphone-minus"},"microsoft-dot-net":{"parent":"dot-net"},"microsoft-dynamics":{"parent":"microsoft-dynamics-365"},"microsoft-github":{"parent":"github"},"microsoft-minecraft":{"parent":"minecraft"},"microsoft-mixer":{"parent":"mixer"},"microsoft-skype":{"parent":"skype"},"microsoft-xamarin":{"parent":"xamarin"},"microsoft-xamarin-outline":{"parent":"xamarin-outline"},"microsoft-xaml":{"parent":"language-xaml"},"microsoft-xbox-gamepad":{"parent":"microsoft-xbox-controller"},"microsoft-xbox-gamepad-battery-alert":{"parent":"microsoft-xbox-controller-battery-alert"},"microsoft-xbox-gamepad-battery-charging":{"parent":"microsoft-xbox-controller-battery-charging"},"microsoft-xbox-gamepad-battery-empty":{"parent":"microsoft-xbox-controller-battery-empty"},"microsoft-xbox-gamepad-battery-full":{"parent":"microsoft-xbox-controller-battery-full"},"microsoft-xbox-gamepad-battery-low":{"parent":"microsoft-xbox-controller-battery-low"},"microsoft-xbox-gamepad-battery-medium":{"parent":"microsoft-xbox-controller-battery-medium"},"microsoft-xbox-gamepad-battery-unknown":{"parent":"microsoft-xbox-controller-battery-unknown"},"microsoft-xbox-gamepad-off":{"parent":"microsoft-xbox-controller-off"},"microwave-oven":{"parent":"microwave"},"milestone":{"parent":"flag-triangle"},"milestone-add":{"parent":"sign-direction-plus"},"milestone-minus":{"parent":"sign-direction-minus"},"milestone-plus":{"parent":"sign-direction-plus"},"milestone-remove":{"parent":"sign-direction-remove"},"mini-blinds":{"parent":"blinds-horizontal"},"minimize":{"parent":"minus"},"minus-one":{"parent":"numeric-negative-1"},"mister":{"parent":"sprinkler-fire"},"mixer-settings":{"parent":"tune"},"mixer-settings-vertical":{"parent":"tune-vertical"},"mixing-bowl":{"parent":"bowl-mix"},"mixing-bowl-outline":{"parent":"bowl-mix-outline"},"mma":{"parent":"mixed-martial-arts"},"mms":{"parent":"message-image"},"mobile-devices":{"parent":"tablet-cellphone"},"mobile-off":{"parent":"cellphone-off"},"mobile-phone":{"parent":"cellphone"},"mobile-phone-android":{"parent":"cellphone-android"},"mobile-phone-arrow-down":{"parent":"cellphone-arrow-down"},"mobile-phone-basic":{"parent":"cellphone-basic"},"mobile-phone-dock":{"parent":"cellphone-dock"},"mobile-phone-erase":{"parent":"cellphone-remove"},"mobile-phone-information":{"parent":"cellphone-information"},"mobile-phone-iphone":{"parent":"cellphone-iphone"},"mobile-phone-key":{"parent":"cellphone-key"},"mobile-phone-link":{"parent":"cellphone-link"},"mobile-phone-link-off":{"parent":"cellphone-link-off"},"mobile-phone-lock":{"parent":"cellphone-lock"},"mobile-phone-message":{"parent":"cellphone-message"},"mobile-phone-off":{"parent":"cellphone-off"},"mobile-phone-settings":{"parent":"cellphone-settings"},"mobile-phone-settings-variant":{"parent":"cellphone-cog"},"mobile-phone-sound":{"parent":"cellphone-sound"},"mobile-phone-text":{"parent":"cellphone-text"},"mobile-phone-wireless":{"parent":"cellphone-wireless"},"mode-comment":{"parent":"message-reply"},"mode-edit":{"parent":"pencil"},"mode-edit-outline":{"parent":"pencil-outline"},"moderator":{"parent":"shield-sword"},"moderator-outline":{"parent":"shield-sword-outline"},"mom":{"parent":"human-female-boy"},"mom-dad-child":{"parent":"human-male-female-child"},"money":{"parent":"cash"},"money-100":{"parent":"cash-100"},"money-off":{"parent":"currency-usd-off"},"money-usd":{"parent":"cash-usd"},"monitor-cellphone-favorite":{"parent":"monitor-cellphone-star"},"monitor-clean":{"parent":"monitor-shimmer"},"monitor-crt":{"parent":"monitor-small"},"monitor-download":{"parent":"monitor-arrow-down"},"monitor-favorite":{"parent":"monitor-star"},"monitor-mobile-phone":{"parent":"monitor-cellphone"},"monitor-mobile-phone-star":{"parent":"monitor-cellphone-star"},"monitor-smartphone":{"parent":"monitor-cellphone"},"monitor-smartphone-star":{"parent":"monitor-cellphone-star"},"monitors":{"parent":"monitor-multiple"},"monkey-wrench":{"parent":"pipe-wrench"},"mood":{"parent":"emoticon-outline"},"moon-and-stars":{"parent":"weather-night"},"moonshine":{"parent":"bottle-tonic-skull"},"moonshine-outline":{"parent":"bottle-tonic-skull-outline"},"more-circle":{"parent":"dots-horizontal-circle"},"more-circle-outline":{"parent":"dots-horizontal-circle-outline"},"more-horiz":{"parent":"dots-horizontal"},"more-vert":{"parent":"dots-vertical"},"mother":{"parent":"human-female-boy"},"motion-detector":{"parent":"motion-sensor"},"motor":{"parent":"engine"},"motor-off":{"parent":"engine-off"},"motor-off-outline":{"parent":"engine-off-outline"},"motor-outline":{"parent":"engine-outline"},"motorcycle":{"parent":"motorbike"},"motorcycle-electric":{"parent":"motorbike-electric"},"motorcycle-off":{"parent":"motorbike-off"},"motorway":{"parent":"highway"},"mountain":{"parent":"image-filter-hdr"},"move-from-inbox":{"parent":"inbox-arrow-up"},"move-to-inbox":{"parent":"inbox-arrow-down"},"movie-creation":{"parent":"movie"},"movie-favorite":{"parent":"movie-star"},"movie-favorite-outline":{"parent":"movie-star-outline"},"movie-open-favorite":{"parent":"movie-open-star"},"movie-open-favorite-outline":{"parent":"movie-open-star-outline"},"mozilla-firefox":{"parent":"firefox"},"mq":{"parent":"quality-medium"},"mudslide":{"parent":"landslide"},"mudslide-outline":{"parent":"landslide-outline"},"multiplex":{"parent":"multicast"},"multiply":{"parent":"close"},"multiply-bold":{"parent":"close-thick"},"multiply-box":{"parent":"close-box"},"multiply-box-multiple":{"parent":"close-box-multiple"},"multiply-box-multiple-outline":{"parent":"close-box-multiple-outline"},"multiply-box-outline":{"parent":"close-box-outline"},"multiply-boxes":{"parent":"close-box-multiple"},"multiply-boxes-outline":{"parent":"close-box-multiple-outline"},"multiply-circle":{"parent":"close-circle"},"multiply-circle-multiple":{"parent":"close-circle-multiple"},"multiply-circle-multiple-outline":{"parent":"close-circle-multiple-outline"},"multiply-circle-outline":{"parent":"close-circle-outline"},"multiply-network":{"parent":"close-network"},"multiply-network-outline":{"parent":"close-network-outline"},"multiply-octagon":{"parent":"close-octagon"},"multiply-octagon-outline":{"parent":"close-octagon-outline"},"multiply-outline":{"parent":"close-outline"},"multiply-thick":{"parent":"close-thick"},"mum":{"parent":"human-female-boy"},"museum":{"parent":"bank"},"museum-outline":{"parent":"bank-outline"},"music-c-clef":{"parent":"music-clef-alto"},"music-clef-baritone":{"parent":"music-clef-alto"},"music-clef-soprano":{"parent":"music-clef-alto"},"music-clef-tenor":{"parent":"music-clef-alto"},"music-f-clef":{"parent":"music-clef-bass"},"music-g-clef":{"parent":"music-clef-treble"},"music-note-add":{"parent":"music-note-plus"},"muslim":{"parent":"mosque"},"mute":{"parent":"volume-off"},"my-location":{"parent":"crosshairs-gps"},"naira":{"parent":"currency-ngn"},"natural-gas":{"parent":"fire"},"natural-gas-circle":{"parent":"fire-circle"},"natural-gas-outline":{"parent":"meter-gas-outline"},"navi":{"parent":"candy-outline"},"navi-off":{"parent":"candy-off-outline"},"navigate-before":{"parent":"chevron-left"},"navigate-next":{"parent":"chevron-right"},"near-field-communication":{"parent":"nfc"},"near-field-communication-off":{"parent":"nfc-variant-off"},"near-field-communication-tap":{"parent":"nfc-tap"},"near-field-communication-variant":{"parent":"nfc-variant"},"neato":{"parent":"robot-vacuum-variant"},"neighbourhood":{"parent":"home-group"},"nest":{"parent":"thermostat"},"nest-protect":{"parent":"smoke-detector"},"network-attached-storage":{"parent":"nas"},"network-cash-box":{"parent":"network-pos"},"network-favorite":{"parent":"wifi-star"},"network-favourite":{"parent":"wifi-star"},"network-interface-card":{"parent":"expansion-card"},"network-point-of-sale":{"parent":"network-pos"},"network-router":{"parent":"router-network"},"network-strength-0":{"parent":"network-strength-outline"},"network-strength-1-warning":{"parent":"network-strength-1-alert"},"network-strength-2-warning":{"parent":"network-strength-2-alert"},"network-strength-3-warning":{"parent":"network-strength-3-alert"},"network-strength-4-settings":{"parent":"network-strength-4-cog"},"network-strength-4-warning":{"parent":"network-strength-4-alert"},"neutral":{"parent":"alpha-n"},"new-releases":{"parent":"alert-decagram"},"new-taiwan-dollar":{"parent":"currency-twd"},"next-title":{"parent":"skip-forward"},"nic":{"parent":"expansion-card"},"nice":{"parent":"expansion-card-variant"},"night-light":{"parent":"lightbulb-night"},"night-light-outline":{"parent":"lightbulb-night-outline"},"night-sky":{"parent":"weather-night"},"ninja-star":{"parent":"shuriken"},"nintendo-switch-online":{"parent":"nintendo-switch"},"nite-light":{"parent":"lightbulb-night"},"nite-light-outline":{"parent":"lightbulb-night-outline"},"no":{"parent":"cancel"},"no-entry":{"parent":"do-not-disturb"},"no-smoking":{"parent":"smoking-off"},"nordic-walking":{"parent":"ski-cross-country"},"northern-lights":{"parent":"aurora"},"not-protected":{"parent":"lock-off"},"not-protected-outline":{"parent":"lock-off-outline"},"note-add":{"parent":"file-plus"},"note-add-outline":{"parent":"note-plus-outline"},"note-circle":{"parent":"music-circle"},"note-circle-outline":{"parent":"music-circle-outline"},"notebook-favorite":{"parent":"notebook-heart"},"notebook-favorite-outline":{"parent":"notebook-heart-outline"},"notebook-love":{"parent":"notebook-heart"},"notebook-love-outline":{"parent":"notebook-heart-outline"},"notes":{"parent":"note-multiple"},"notes-outline":{"parent":"note-multiple-outline"},"notes-search":{"parent":"text-search"},"notes-search-variant":{"parent":"text-search-variant"},"notice-board":{"parent":"bulletin-board"},"notification-settings":{"parent":"bell-cog"},"notification-settings-outline":{"parent":"bell-cog-outline"},"notifications":{"parent":"bell"},"notifications-active":{"parent":"bell-ring"},"notifications-none":{"parent":"bell-outline"},"notifications-off":{"parent":"bell-off"},"notifications-paused":{"parent":"bell-sleep"},"nuclear":{"parent":"nuke"},"null-off":{"parent":"circle-off-outline"},"number-0":{"parent":"numeric-0"},"number-0-box":{"parent":"numeric-0-box"},"number-0-box-multiple-outline":{"parent":"numeric-0-box-multiple-outline"},"number-0-box-outline":{"parent":"numeric-0-box-outline"},"number-0-circle":{"parent":"numeric-0-circle"},"number-0-circle-outline":{"parent":"numeric-0-circle-outline"},"number-1":{"parent":"numeric-1"},"number-1-box":{"parent":"numeric-1-box"},"number-1-box-multiple-outline":{"parent":"numeric-1-box-multiple-outline"},"number-1-box-outline":{"parent":"numeric-1-box-outline"},"number-1-circle":{"parent":"numeric-1-circle"},"number-1-circle-outline":{"parent":"numeric-1-circle-outline"},"number-2":{"parent":"numeric-2"},"number-2-box":{"parent":"numeric-2-box"},"number-2-box-multiple-outline":{"parent":"numeric-2-box-multiple-outline"},"number-2-box-outline":{"parent":"numeric-2-box-outline"},"number-2-circle":{"parent":"numeric-2-circle"},"number-2-circle-outline":{"parent":"numeric-2-circle-outline"},"number-3":{"parent":"numeric-3"},"number-3-box":{"parent":"numeric-3-box"},"number-3-box-multiple-outline":{"parent":"numeric-3-box-multiple-outline"},"number-3-box-outline":{"parent":"numeric-3-box-outline"},"number-3-circle":{"parent":"numeric-3-circle"},"number-3-circle-outline":{"parent":"numeric-3-circle-outline"},"number-4":{"parent":"numeric-4"},"number-4-box":{"parent":"numeric-4-box"},"number-4-box-multiple-outline":{"parent":"numeric-4-box-multiple-outline"},"number-4-box-outline":{"parent":"numeric-4-box-outline"},"number-4-circle":{"parent":"numeric-4-circle"},"number-4-circle-outline":{"parent":"numeric-4-circle-outline"},"number-5":{"parent":"numeric-5"},"number-5-box":{"parent":"numeric-5-box"},"number-5-box-multiple-outline":{"parent":"numeric-5-box-multiple-outline"},"number-5-box-outline":{"parent":"numeric-5-box-outline"},"number-5-circle":{"parent":"numeric-5-circle"},"number-5-circle-outline":{"parent":"numeric-5-circle-outline"},"number-6":{"parent":"numeric-6"},"number-6-box":{"parent":"numeric-6-box"},"number-6-box-multiple-outline":{"parent":"numeric-6-box-multiple-outline"},"number-6-box-outline":{"parent":"numeric-6-box-outline"},"number-6-circle":{"parent":"numeric-6-circle"},"number-6-circle-outline":{"parent":"numeric-6-circle-outline"},"number-7":{"parent":"numeric-7"},"number-7-box":{"parent":"numeric-7-box"},"number-7-box-multiple-outline":{"parent":"numeric-7-box-multiple-outline"},"number-7-box-outline":{"parent":"numeric-7-box-outline"},"number-7-circle":{"parent":"numeric-7-circle"},"number-7-circle-outline":{"parent":"numeric-7-circle-outline"},"number-8":{"parent":"numeric-8"},"number-8-box":{"parent":"numeric-8-box"},"number-8-box-multiple-outline":{"parent":"numeric-8-box-multiple-outline"},"number-8-box-outline":{"parent":"numeric-8-box-outline"},"number-8-circle":{"parent":"numeric-8-circle"},"number-8-circle-outline":{"parent":"numeric-8-circle-outline"},"number-9":{"parent":"numeric-9"},"number-9-box":{"parent":"numeric-9-box"},"number-9-box-multiple-outline":{"parent":"numeric-9-box-multiple-outline"},"number-9-box-outline":{"parent":"numeric-9-box-outline"},"number-9-circle":{"parent":"numeric-9-circle"},"number-9-circle-outline":{"parent":"numeric-9-circle-outline"},"number-9-plus-box":{"parent":"numeric-9-plus-box"},"number-9-plus-box-multiple-outline":{"parent":"numeric-9-plus-box-multiple-outline"},"number-9-plus-box-outline":{"parent":"numeric-9-plus-box-outline"},"number-9-plus-circle":{"parent":"numeric-9-plus-circle"},"number-9-plus-circle-outline":{"parent":"numeric-9-plus-circle-outline"},"number-eight-circle":{"parent":"numeric-8-circle"},"number-eight-circle-outline":{"parent":"numeric-8-circle-outline"},"number-five-circle":{"parent":"numeric-5-circle"},"number-five-circle-outline":{"parent":"numeric-5-circle-outline"},"number-four-circle":{"parent":"numeric-4-circle"},"number-four-circle-outline":{"parent":"numeric-4-circle-outline"},"number-nine-circle":{"parent":"numeric-9-circle"},"number-nine-circle-outline":{"parent":"numeric-9-circle-outline"},"number-nine-plus-circle":{"parent":"numeric-9-plus-circle"},"number-nine-plus-circle-outline":{"parent":"numeric-9-plus-circle-outline"},"number-one-circle":{"parent":"numeric-1-circle"},"number-one-circle-outline":{"parent":"numeric-1-circle-outline"},"number-seven-circle":{"parent":"numeric-7-circle"},"number-seven-circle-outline":{"parent":"numeric-7-circle-outline"},"number-six-circle":{"parent":"numeric-6-circle"},"number-six-circle-outline":{"parent":"numeric-6-circle-outline"},"number-three-circle":{"parent":"numeric-3-circle"},"number-three-circle-outline":{"parent":"numeric-3-circle-outline"},"number-two-circle":{"parent":"numeric-2-circle"},"number-two-circle-outline":{"parent":"numeric-2-circle-outline"},"number-zero-circle":{"parent":"numeric-0-circle"},"number-zero-circle-outline":{"parent":"numeric-0-circle-outline"},"numbers":{"parent":"counter"},"numbers-off":{"parent":"numeric-off"},"numeric-0-boxes-outline":{"parent":"numeric-0-box-multiple-outline"},"numeric-1-boxes-outline":{"parent":"numeric-1-box-multiple-outline"},"numeric-2-boxes-outline":{"parent":"numeric-2-box-multiple-outline"},"numeric-3-boxes-outline":{"parent":"numeric-3-box-multiple-outline"},"numeric-4-boxes-outline":{"parent":"numeric-4-box-multiple-outline"},"numeric-5-boxes-outline":{"parent":"numeric-5-box-multiple-outline"},"numeric-6-boxes-outline":{"parent":"numeric-6-box-multiple-outline"},"numeric-7-boxes-outline":{"parent":"numeric-7-box-multiple-outline"},"numeric-8-boxes-outline":{"parent":"numeric-8-box-multiple-outline"},"numeric-9-boxes-outline":{"parent":"numeric-9-box-multiple-outline"},"numeric-9-plus-boxes-outline":{"parent":"numeric-9-plus-box-multiple-outline"},"numeric-eight":{"parent":"numeric-8"},"numeric-eight-box":{"parent":"numeric-8-box"},"numeric-eight-box-multiple-outline":{"parent":"numeric-8-box-multiple-outline"},"numeric-eight-box-outline":{"parent":"numeric-8-box-outline"},"numeric-eight-circle":{"parent":"numeric-8-circle"},"numeric-eight-circle-outline":{"parent":"numeric-8-circle-outline"},"numeric-five":{"parent":"numeric-5"},"numeric-five-box":{"parent":"numeric-5-box"},"numeric-five-box-multiple-outline":{"parent":"numeric-5-box-multiple-outline"},"numeric-five-box-outline":{"parent":"numeric-5-box-outline"},"numeric-five-circle":{"parent":"numeric-5-circle"},"numeric-five-circle-outline":{"parent":"numeric-5-circle-outline"},"numeric-four":{"parent":"numeric-4"},"numeric-four-box":{"parent":"numeric-4-box"},"numeric-four-box-multiple-outline":{"parent":"numeric-4-box-multiple-outline"},"numeric-four-box-outline":{"parent":"numeric-4-box-outline"},"numeric-four-circle":{"parent":"numeric-4-circle"},"numeric-four-circle-outline":{"parent":"numeric-4-circle-outline"},"numeric-nine":{"parent":"numeric-9"},"numeric-nine-box":{"parent":"numeric-9-box"},"numeric-nine-box-multiple-outline":{"parent":"numeric-9-box-multiple-outline"},"numeric-nine-box-outline":{"parent":"numeric-9-box-outline"},"numeric-nine-circle":{"parent":"numeric-9-circle"},"numeric-nine-circle-outline":{"parent":"numeric-9-circle-outline"},"numeric-nine-plus-box":{"parent":"numeric-9-plus-box"},"numeric-nine-plus-box-multiple-outline":{"parent":"numeric-9-plus-box-multiple-outline"},"numeric-nine-plus-box-outline":{"parent":"numeric-9-plus-box-outline"},"numeric-nine-plus-circle":{"parent":"numeric-9-plus-circle"},"numeric-nine-plus-circle-outline":{"parent":"numeric-9-plus-circle-outline"},"numeric-one":{"parent":"numeric-1"},"numeric-one-box":{"parent":"numeric-1-box"},"numeric-one-box-multiple-outline":{"parent":"numeric-1-box-multiple-outline"},"numeric-one-box-outline":{"parent":"numeric-1-box-outline"},"numeric-one-circle":{"parent":"numeric-1-circle"},"numeric-one-circle-outline":{"parent":"numeric-1-circle-outline"},"numeric-seven":{"parent":"numeric-7"},"numeric-seven-box":{"parent":"numeric-7-box"},"numeric-seven-box-multiple-outline":{"parent":"numeric-7-box-multiple-outline"},"numeric-seven-box-outline":{"parent":"numeric-7-box-outline"},"numeric-seven-circle":{"parent":"numeric-7-circle"},"numeric-seven-circle-outline":{"parent":"numeric-7-circle-outline"},"numeric-six":{"parent":"numeric-6"},"numeric-six-box":{"parent":"numeric-6-box"},"numeric-six-box-multiple-outline":{"parent":"numeric-6-box-multiple-outline"},"numeric-six-box-outline":{"parent":"numeric-6-box-outline"},"numeric-six-circle":{"parent":"numeric-6-circle"},"numeric-six-circle-outline":{"parent":"numeric-6-circle-outline"},"numeric-three":{"parent":"numeric-3"},"numeric-three-box":{"parent":"numeric-3-box"},"numeric-three-box-multiple-outline":{"parent":"numeric-3-box-multiple-outline"},"numeric-three-box-outline":{"parent":"numeric-3-box-outline"},"numeric-three-circle":{"parent":"numeric-3-circle"},"numeric-three-circle-outline":{"parent":"numeric-3-circle-outline"},"numeric-two":{"parent":"numeric-2"},"numeric-two-box":{"parent":"numeric-2-box"},"numeric-two-box-multiple-outline":{"parent":"numeric-2-box-multiple-outline"},"numeric-two-box-outline":{"parent":"numeric-2-box-outline"},"numeric-two-circle":{"parent":"numeric-2-circle"},"numeric-two-circle-outline":{"parent":"numeric-2-circle-outline"},"numeric-zero":{"parent":"numeric-0"},"numeric-zero-box":{"parent":"numeric-0-box"},"numeric-zero-box-multiple-outline":{"parent":"numeric-0-box-multiple-outline"},"numeric-zero-box-outline":{"parent":"numeric-0-box-outline"},"numeric-zero-circle":{"parent":"numeric-0-circle"},"numeric-zero-circle-outline":{"parent":"numeric-0-circle-outline"},"nursery":{"parent":"cradle"},"nursery-outline":{"parent":"cradle-outline"},"obelus":{"parent":"division"},"ocean":{"parent":"waves"},"ocean-level-rise":{"parent":"waves-arrow-up"},"odometer":{"parent":"counter"},"odor":{"parent":"scent"},"odor-off":{"parent":"scent-off"},"office":{"parent":"microsoft-office"},"office-building-location":{"parent":"office-building-marker"},"office-building-location-outline":{"parent":"office-building-marker-outline"},"office-building-settings":{"parent":"office-building-cog"},"office-building-settings-outline":{"parent":"office-building-cog-outline"},"office-chair":{"parent":"chair-rolling"},"offline-bolt":{"parent":"lightning-bolt-circle"},"ohm":{"parent":"omega"},"oil-barrel":{"parent":"barrel"},"oil-barrel-outline":{"parent":"barrel-outline"},"oil-saver":{"parent":"water-opacity"},"oil-transparent":{"parent":"water-opacity"},"oil-truck":{"parent":"tanker-truck"},"ok-ru":{"parent":"odnoklassniki"},"olympics":{"parent":"torch"},"one":{"parent":"tally-mark-1"},"one-two-three":{"parent":"numeric"},"one-two-three-off":{"parent":"numeric-off"},"open-container-initiative":{"parent":"oci"},"open-in-browser":{"parent":"open-in-app"},"optical-audio":{"parent":"toslink"},"optical-character-recognition":{"parent":"ocr"},"oral-hygiene":{"parent":"toothbrush"},"order-checkbox-ascending":{"parent":"order-bool-ascending-variant"},"order-checkbox-descending":{"parent":"order-bool-descending"},"organic":{"parent":"leaf-circle"},"organic-outline":{"parent":"leaf-circle-outline"},"outdoor-light":{"parent":"outdoor-lamp"},"outdoor-temperature":{"parent":"sun-thermometer"},"outer-join-left":{"parent":"set-left-center"},"outer-join-right":{"parent":"set-center-right"},"output":{"parent":"export"},"outside-temperature":{"parent":"sun-thermometer-outline"},"oven":{"parent":"stove"},"overboard":{"parent":"lifebuoy"},"overhead-projector":{"parent":"camera-document"},"overhead-projector-off":{"parent":"camera-document-off"},"oxygen-tank":{"parent":"gas-cylinder"},"package-delivered":{"parent":"package-check"},"package-off":{"parent":"gift-off"},"package-off-outline":{"parent":"gift-off-outline"},"package-open":{"parent":"gift-open"},"package-open-outline":{"parent":"gift-open-outline"},"package-outline":{"parent":"gift-outline"},"package-variant-add":{"parent":"package-variant-plus"},"package-variant-closed-add":{"parent":"package-variant-closed-plus"},"package-variant-closed-delivered":{"parent":"package-variant-closed-check"},"package-variant-closed-subtract":{"parent":"package-variant-closed-minus"},"package-variant-subtract":{"parent":"package-variant-minus"},"page-layout-marginals":{"parent":"page-layout-header-footer"},"pageview":{"parent":"card-search"},"pageview-outline":{"parent":"card-search-outline"},"paint":{"parent":"format-color-fill"},"paint-bucket":{"parent":"format-color-fill"},"paint-outline":{"parent":"palette-outline"},"paintbrush":{"parent":"brush"},"paintbrush-outline":{"parent":"brush-outline"},"pan-down-left":{"parent":"pan-bottom-left"},"pan-down-right":{"parent":"pan-bottom-right"},"pan-up-left":{"parent":"pan-top-left"},"pan-up-right":{"parent":"pan-top-right"},"panorama-360":{"parent":"panorama-sphere"},"panorama-360-outline":{"parent":"panorama-sphere-outline"},"panorama-fish-eye":{"parent":"panorama-fisheye"},"panorama-vr":{"parent":"panorama-variant"},"panorama-vr-outline":{"parent":"panorama-variant-outline"},"panties":{"parent":"lingerie"},"paper":{"parent":"file"},"paper-add":{"parent":"note-plus"},"paper-add-outline":{"parent":"note-plus-outline"},"paper-airplane":{"parent":"send"},"paper-airplane-outline":{"parent":"send-outline"},"paper-alert":{"parent":"note-alert"},"paper-alert-outline":{"parent":"note-alert-outline"},"paper-check":{"parent":"note-check"},"paper-check-outline":{"parent":"note-check-outline"},"paper-edit":{"parent":"note-edit"},"paper-edit-outline":{"parent":"note-edit-outline"},"paper-jam":{"parent":"printer-alert"},"paper-minus":{"parent":"note-minus"},"paper-minus-outline":{"parent":"note-minus-outline"},"paper-off":{"parent":"note-off"},"paper-off-outline":{"parent":"note-off-outline"},"paper-outline":{"parent":"file-outline"},"paper-plane":{"parent":"send"},"paper-plane-outline":{"parent":"send-outline"},"paper-plus":{"parent":"note-plus"},"paper-plus-outline":{"parent":"note-plus-outline"},"paper-remove":{"parent":"note-remove"},"paper-search":{"parent":"note-search"},"paper-search-outline":{"parent":"note-search-outline"},"paper-text":{"parent":"note-text"},"paper-text-outline":{"parent":"note-text-outline"},"paper-towels":{"parent":"paper-roll"},"paper-towels-outline":{"parent":"paper-roll-outline"},"paperclip-add":{"parent":"attachment-plus"},"paperclip-horizontal":{"parent":"attachment"},"paperclip-subtract":{"parent":"attachment-minus"},"paperclip-tick":{"parent":"attachment-check"},"papers":{"parent":"note-multiple"},"papers-outline":{"parent":"note-multiple-outline"},"paraglide":{"parent":"paragliding"},"parallel":{"parent":"math-norm"},"parallel-box":{"parent":"math-norm-box"},"parasail":{"parent":"paragliding"},"parasol":{"parent":"beach"},"paris":{"parent":"eiffel-tower"},"park":{"parent":"alpha-p"},"partnership":{"parent":"handshake"},"partnership-outline":{"parent":"handshake-outline"},"party-balloon":{"parent":"balloon"},"passport-electronic":{"parent":"passport-biometric"},"password":{"parent":"lock"},"password-add":{"parent":"lock-plus"},"password-add-outline":{"parent":"lock-plus-outline"},"password-alert":{"parent":"lock-alert"},"password-alert-outline":{"parent":"lock-alert-outline"},"password-check":{"parent":"lock-check"},"password-check-outline":{"parent":"lock-check-outline"},"password-clock":{"parent":"lock-clock"},"password-expiration":{"parent":"lock-clock"},"password-minus":{"parent":"lock-minus"},"password-minus-outline":{"parent":"lock-minus-outline"},"password-off":{"parent":"lock-off"},"password-off-outline":{"parent":"lock-off-outline"},"password-outline":{"parent":"lock-outline"},"password-plus":{"parent":"lock-plus"},"password-plus-outline":{"parent":"lock-plus-outline"},"password-question":{"parent":"lock-question"},"password-remove":{"parent":"lock-remove"},"password-remove-outline":{"parent":"lock-remove-outline"},"password-reset":{"parent":"lock-reset"},"password-secure":{"parent":"lock-check"},"password-secure-outline":{"parent":"lock-check-outline"},"password-verified":{"parent":"lock-check"},"password-verified-outline":{"parent":"lock-check-outline"},"password-warning":{"parent":"lock-alert"},"password-warning-outline":{"parent":"lock-alert-outline"},"patient":{"parent":"account-injury"},"patient-outline":{"parent":"account-injury-outline"},"patio":{"parent":"balcony"},"patio-door":{"parent":"door-sliding"},"patio-door-lock":{"parent":"door-sliding-lock"},"patio-door-open":{"parent":"door-sliding-open"},"pause-circle-filled":{"parent":"pause-circle"},"payment":{"parent":"credit-card-outline"},"payment-clock":{"parent":"cash-clock"},"payment-on-delivery":{"parent":"credit-card-marker"},"payment-on-delivery-outline":{"parent":"credit-card-marker-outline"},"payment-schedule":{"parent":"cash-clock"},"payment-settings":{"parent":"credit-card-settings-outline"},"pdf-box":{"parent":"file-pdf-box"},"peak":{"parent":"summit"},"pegman":{"parent":"google-street-view"},"pen-add":{"parent":"pen-plus"},"pencil-add":{"parent":"pencil-plus"},"pencil-add-outline":{"parent":"pencil-plus-outline"},"people":{"parent":"account-multiple"},"people-add":{"parent":"account-multiple-plus"},"people-add-outline":{"parent":"account-multiple-plus-outline"},"people-check":{"parent":"account-multiple-check"},"people-check-outline":{"parent":"account-multiple-check-outline"},"people-group":{"parent":"account-group"},"people-group-outline":{"parent":"account-group-outline"},"people-minus":{"parent":"account-multiple-minus"},"people-minus-outline":{"parent":"account-multiple-minus-outline"},"people-outline":{"parent":"account-multiple-outline"},"people-plus":{"parent":"account-multiple-plus"},"people-plus-outline":{"parent":"account-multiple-plus-outline"},"people-switch":{"parent":"account-switch"},"people-tick":{"parent":"account-multiple-check"},"people-tick-outline":{"parent":"account-multiple-check-outline"},"pepper":{"parent":"chili-hot"},"pepper-off":{"parent":"chili-off"},"performance":{"parent":"poll"},"perimeter":{"parent":"dots-circle"},"periodic-table-carbon-dioxide":{"parent":"molecule-co2"},"periodic-table-co":{"parent":"molecule-co"},"periodic-table-co2":{"parent":"molecule-co2"},"perm-identity":{"parent":"account-outline"},"perm-media":{"parent":"folder-multiple-image"},"person":{"parent":"account"},"person-add":{"parent":"account-plus"},"person-add-outline":{"parent":"account-plus-outline"},"person-alert":{"parent":"account-alert"},"person-alert-outline":{"parent":"account-alert-outline"},"person-arrow-left":{"parent":"account-arrow-left"},"person-arrow-left-outline":{"parent":"account-arrow-left-outline"},"person-arrow-right":{"parent":"account-arrow-right"},"person-arrow-right-outline":{"parent":"account-arrow-right-outline"},"person-badge":{"parent":"badge-account"},"person-badge-alert":{"parent":"badge-account-alert"},"person-badge-alert-outline":{"parent":"badge-account-alert-outline"},"person-badge-outline":{"parent":"badge-account-outline"},"person-badge-warning":{"parent":"badge-account-alert"},"person-badge-warning-outline":{"parent":"badge-account-alert-outline"},"person-block":{"parent":"account-cancel"},"person-block-outline":{"parent":"account-cancel-outline"},"person-box":{"parent":"account-box"},"person-box-multiple":{"parent":"account-box-multiple"},"person-box-outline":{"parent":"account-box-outline"},"person-boxes":{"parent":"account-box-multiple"},"person-cancel":{"parent":"account-cancel"},"person-cancel-outline":{"parent":"account-cancel-outline"},"person-card-details":{"parent":"card-account-details"},"person-card-details-outline":{"parent":"card-account-details-outline"},"person-check":{"parent":"account-check"},"person-check-outline":{"parent":"account-check-outline"},"person-child":{"parent":"account-child"},"person-child-circle":{"parent":"account-child-circle"},"person-circle":{"parent":"account-circle"},"person-circle-outline":{"parent":"account-circle-outline"},"person-clock":{"parent":"account-clock"},"person-clock-outline":{"parent":"account-clock-outline"},"person-convert":{"parent":"account-convert"},"person-details":{"parent":"account-details"},"person-details-outline":{"parent":"account-details-outline"},"person-edit":{"parent":"account-edit"},"person-group":{"parent":"account-group"},"person-group-outline":{"parent":"account-group-outline"},"person-heart":{"parent":"account-heart"},"person-heart-outline":{"parent":"account-heart-outline"},"person-help":{"parent":"account-question"},"person-help-outline":{"parent":"account-question-outline"},"person-key":{"parent":"account-key"},"person-key-outline":{"parent":"account-key-outline"},"person-lock":{"parent":"account-lock"},"person-lock-outline":{"parent":"account-lock-outline"},"person-minus":{"parent":"account-minus"},"person-minus-outline":{"parent":"account-minus-outline"},"person-multiple":{"parent":"account-multiple"},"person-multiple-add":{"parent":"account-multiple-plus"},"person-multiple-add-outline":{"parent":"account-multiple-plus-outline"},"person-multiple-check":{"parent":"account-multiple-check"},"person-multiple-check-outline":{"parent":"account-multiple-check-outline"},"person-multiple-minus":{"parent":"account-multiple-minus"},"person-multiple-minus-outline":{"parent":"account-multiple-minus-outline"},"person-multiple-plus":{"parent":"account-multiple-plus"},"person-multiple-plus-outline":{"parent":"account-multiple-plus-outline"},"person-multiple-remove":{"parent":"account-multiple-remove"},"person-multiple-remove-outline":{"parent":"account-multiple-remove-outline"},"person-multiple-tick":{"parent":"account-multiple-check"},"person-multiple-tick-outline":{"parent":"account-multiple-check-outline"},"person-network":{"parent":"account-network"},"person-network-outline":{"parent":"account-network-outline"},"person-off":{"parent":"account-off"},"person-off-outline":{"parent":"account-off-outline"},"person-outline":{"parent":"account-outline"},"person-plus":{"parent":"account-plus"},"person-plus-outline":{"parent":"account-plus-outline"},"person-question":{"parent":"account-question"},"person-question-outline":{"parent":"account-question-outline"},"person-remove":{"parent":"account-remove"},"person-remove-outline":{"parent":"account-remove-outline"},"person-search":{"parent":"account-search"},"person-search-outline":{"parent":"account-search-outline"},"person-settings":{"parent":"account-settings"},"person-star":{"parent":"account-star"},"person-star-outline":{"parent":"account-star-outline"},"person-supervisor":{"parent":"account-supervisor"},"person-supervisor-circle":{"parent":"account-supervisor-circle"},"person-switch":{"parent":"account-switch"},"person-tick":{"parent":"account-check"},"person-tick-outline":{"parent":"account-check-outline"},"person-tie":{"parent":"account-tie"},"person-warning":{"parent":"account-alert"},"person-warning-outline":{"parent":"account-alert-outline"},"perspective-decrease":{"parent":"perspective-less"},"perspective-increase":{"parent":"perspective-more"},"petrol":{"parent":"fuel"},"petrol-pump":{"parent":"gas-station"},"petrol-pump-outline":{"parent":"gas-station-outline"},"petrol-station":{"parent":"gas-station"},"petrol-station-outline":{"parent":"gas-station-outline"},"pets":{"parent":"paw"},"pharmaceutical":{"parent":"minus-circle"},"pharmaceutical-off":{"parent":"needle-off"},"pharmacy":{"parent":"mortar-pestle-plus"},"philippine-peso":{"parent":"currency-php"},"phone-block":{"parent":"phone-cancel"},"phone-bluetooth-speaker":{"parent":"phone-bluetooth"},"phone-forwarded":{"parent":"phone-forward"},"phone-keypad":{"parent":"phone-dial"},"phone-keypad-outline":{"parent":"phone-dial-outline"},"phone-locked":{"parent":"phone-lock"},"phone-redial":{"parent":"phone-refresh"},"phone-redial-outline":{"parent":"phone-refresh-outline"},"phone-schedule":{"parent":"phone-clock"},"phone-time":{"parent":"phone-clock"},"phonelink-erase":{"parent":"cellphone-remove"},"phonelink-lock":{"parent":"cellphone-lock"},"phonelink-off":{"parent":"cellphone-link-off"},"phonelink-ring":{"parent":"cellphone-sound"},"phonelink-setup":{"parent":"cellphone-cog"},"photo-album":{"parent":"image-album"},"photo-camera":{"parent":"camera"},"photo-library":{"parent":"image-multiple"},"photography":{"parent":"camera"},"picture":{"parent":"multimedia"},"picture-360":{"parent":"panorama-variant"},"picture-360-outline":{"parent":"panorama-variant-outline"},"picture-vr":{"parent":"panorama-variant"},"picture-vr-outline":{"parent":"panorama-variant-outline"},"pill-bottle":{"parent":"medication"},"pill-bottle-outline":{"parent":"medication-outline"},"pill-tablet":{"parent":"minus-circle"},"pill-tablet-outline":{"parent":"minus-circle-outline"},"pine-tree-multiple":{"parent":"forest"},"ping-pong":{"parent":"table-tennis"},"pinky":{"parent":"ghost"},"pint":{"parent":"beer"},"pint-outline":{"parent":"beer-outline"},"pipette":{"parent":"eyedropper"},"pipette-variant":{"parent":"eyedropper-variant"},"pizzeria":{"parent":"pizza"},"place":{"parent":"map-marker"},"place-outline":{"parent":"map-marker-outline"},"place-setting":{"parent":"silverware-fork-knife"},"plane":{"parent":"airplane"},"plane-landing":{"parent":"airplane-landing"},"plane-off":{"parent":"airplane-off"},"plane-shield":{"parent":"shield-airplane"},"plane-takeoff":{"parent":"airplane-takeoff"},"planet":{"parent":"earth"},"planet-arrow-right":{"parent":"earth-arrow-right"},"planet-box":{"parent":"earth-box"},"planet-box-minus":{"parent":"earth-box-minus"},"planet-box-off":{"parent":"earth-box-off"},"planet-box-plus":{"parent":"earth-box-plus"},"planet-box-remove":{"parent":"earth-box-remove"},"planet-minus":{"parent":"earth-minus"},"planet-off":{"parent":"earth-off"},"planet-plus":{"parent":"earth-plus"},"planet-remove":{"parent":"earth-remove"},"planner":{"parent":"notebook"},"planner-multiple":{"parent":"notebook-multiple"},"planner-outline":{"parent":"notebook-outline"},"plant":{"parent":"flower"},"plant-outline":{"parent":"sprout-outline"},"plaster":{"parent":"bandage"},"play-arrow":{"parent":"play"},"play-circle-filled":{"parent":"play-circle"},"play-room":{"parent":"teddy-bear"},"playground-seesaw":{"parent":"seesaw"},"playground-slide":{"parent":"slide"},"playlist-add":{"parent":"playlist-plus"},"playlist-add-check":{"parent":"playlist-check"},"playlist-favorite":{"parent":"playlist-star"},"playlist-note":{"parent":"playlist-music"},"playlist-note-outline":{"parent":"playlist-music-outline"},"playlist-tick":{"parent":"playlist-check"},"playstation":{"parent":"sony-playstation"},"playstation-network":{"parent":"sony-playstation"},"plug":{"parent":"connection"},"plug-socket":{"parent":"power-socket"},"plug-socket-au":{"parent":"power-socket-au"},"plug-socket-ch":{"parent":"power-socket-ch"},"plug-socket-eu":{"parent":"power-socket-eu"},"plug-socket-switzerland":{"parent":"power-socket-ch"},"plug-socket-type-j":{"parent":"power-socket-ch"},"plug-socket-uk":{"parent":"power-socket-uk"},"plug-socket-us":{"parent":"power-socket-us"},"plugin":{"parent":"toy-brick"},"plugin-outline":{"parent":"toy-brick-marker-outline"},"plus-bold":{"parent":"plus-thick"},"plus-circles-outline":{"parent":"plus-circle-multiple-outline"},"plus-one":{"parent":"numeric-positive-1"},"plus-secure":{"parent":"plus-lock"},"podium-first":{"parent":"podium-gold"},"podium-second":{"parent":"podium-silver"},"podium-third":{"parent":"podium-bronze"},"poison":{"parent":"bottle-tonic-skull"},"poison-outline":{"parent":"bottle-tonic-skull-outline"},"poker-club":{"parent":"cards-club"},"poker-diamond":{"parent":"cards-diamond"},"poker-diamond-outline":{"parent":"cards-diamond-outline"},"poker-heart":{"parent":"cards-heart"},"poker-spade":{"parent":"cards-spade"},"polar-lights":{"parent":"aurora"},"poll-box":{"parent":"chart-box"},"poll-box-outline":{"parent":"chart-box-outline"},"pool-rack":{"parent":"billiards-rack"},"pool-table":{"parent":"billiards-rack"},"pool-temperature":{"parent":"pool-thermometer"},"pool-triangle":{"parent":"billiards-rack"},"popsicle":{"parent":"ice-pop"},"porpoise":{"parent":"dolphin"},"portrait":{"parent":"account-box-outline"},"post-it-note":{"parent":"note"},"post-it-note-add":{"parent":"note-plus"},"post-it-note-add-outline":{"parent":"note-plus-outline"},"post-it-note-alert":{"parent":"note-alert"},"post-it-note-alert-outline":{"parent":"note-alert-outline"},"post-it-note-check":{"parent":"note-check"},"post-it-note-check-outline":{"parent":"note-check-outline"},"post-it-note-edit":{"parent":"note-edit"},"post-it-note-edit-outline":{"parent":"note-edit-outline"},"post-it-note-minus":{"parent":"note-minus"},"post-it-note-minus-outline":{"parent":"note-minus-outline"},"post-it-note-off":{"parent":"note-off"},"post-it-note-off-outline":{"parent":"note-off-outline"},"post-it-note-outline":{"parent":"note-outline"},"post-it-note-plus":{"parent":"note-plus"},"post-it-note-plus-outline":{"parent":"note-plus-outline"},"post-it-note-remove":{"parent":"note-remove"},"post-it-note-search":{"parent":"note-search"},"post-it-note-search-outline":{"parent":"note-search-outline"},"post-it-note-text":{"parent":"note-text"},"post-it-note-text-outline":{"parent":"note-text-outline"},"post-it-notes":{"parent":"note-multiple"},"post-it-notes-outline":{"parent":"note-multiple-outline"},"post-light":{"parent":"post-lamp"},"pot-light":{"parent":"light-recessed"},"pot-light-flat":{"parent":"wall-sconce-flat"},"pot-light-flat-variant":{"parent":"wall-sconce-flat-variant"},"pot-light-round":{"parent":"wall-sconce-round"},"pot-light-round-variant":{"parent":"wall-sconce-round-variant"},"potential-of-hydrogen":{"parent":"ph"},"power-box":{"parent":"exponent-box"},"power-from-grid":{"parent":"transmission-tower-export"},"power-meter":{"parent":"meter-electric"},"power-meter-outline":{"parent":"meter-electric-outline"},"power-of-hydrogen":{"parent":"ph"},"power-settings-new":{"parent":"power"},"power-socket-ar":{"parent":"power-socket-au"},"power-socket-argentina":{"parent":"power-socket-au"},"power-socket-australia":{"parent":"power-socket-au"},"power-socket-ca":{"parent":"power-socket-us"},"power-socket-canada":{"parent":"power-socket-us"},"power-socket-china":{"parent":"power-socket-au"},"power-socket-cn":{"parent":"power-socket-au"},"power-socket-cy":{"parent":"power-socket-uk"},"power-socket-cyprus":{"parent":"power-socket-uk"},"power-socket-europe":{"parent":"power-socket-eu"},"power-socket-hk":{"parent":"power-socket-uk"},"power-socket-hong-kong":{"parent":"power-socket-uk"},"power-socket-ie":{"parent":"power-socket-uk"},"power-socket-ireland":{"parent":"power-socket-uk"},"power-socket-japan":{"parent":"power-socket-us"},"power-socket-malaysia":{"parent":"power-socket-uk"},"power-socket-malta":{"parent":"power-socket-uk"},"power-socket-mexico":{"parent":"power-socket-us"},"power-socket-mt":{"parent":"power-socket-uk"},"power-socket-mx":{"parent":"power-socket-us"},"power-socket-my":{"parent":"power-socket-uk"},"power-socket-new-zealand":{"parent":"power-socket-au"},"power-socket-nz":{"parent":"power-socket-au"},"power-socket-papua-new-guinea":{"parent":"power-socket-au"},"power-socket-pg":{"parent":"power-socket-au"},"power-socket-sg":{"parent":"power-socket-uk"},"power-socket-singapore":{"parent":"power-socket-uk"},"power-socket-switzerland":{"parent":"power-socket-ch"},"power-socket-type-b":{"parent":"power-socket-us"},"power-socket-type-g":{"parent":"power-socket-uk"},"power-socket-type-i":{"parent":"power-socket-au"},"power-socket-type-j":{"parent":"power-socket-ch"},"power-socket-united-kingdom":{"parent":"power-socket-uk"},"power-socket-united-states":{"parent":"power-socket-us"},"power-to-grid":{"parent":"transmission-tower-import"},"powerline":{"parent":"transmission-tower"},"powerline-off":{"parent":"transmission-tower-off"},"pram":{"parent":"baby-buggy"},"pram-off":{"parent":"baby-carriage-off"},"pregnant-woman":{"parent":"human-pregnant"},"presence-enter":{"parent":"location-enter"},"presence-exit":{"parent":"location-exit"},"present":{"parent":"gift"},"present-off":{"parent":"gift-off"},"present-off-outline":{"parent":"gift-off-outline"},"present-open":{"parent":"gift-open"},"present-open-outline":{"parent":"gift-open-outline"},"present-outline":{"parent":"gift-outline"},"previous-title":{"parent":"skip-backward"},"primary-key":{"parent":"key-star"},"print-preview":{"parent":"file-find"},"printer-favorite":{"parent":"printer-pos-star"},"printer-magnify":{"parent":"printer-search"},"printer-point-of-sale":{"parent":"printer-pos"},"printer-point-of-sale-alert":{"parent":"printer-pos-alert"},"printer-point-of-sale-alert-outline":{"parent":"printer-pos-alert-outline"},"printer-point-of-sale-cancel":{"parent":"printer-pos-cancel"},"printer-point-of-sale-cancel-outline":{"parent":"printer-pos-cancel-outline"},"printer-point-of-sale-check":{"parent":"printer-pos-check"},"printer-point-of-sale-check-outline":{"parent":"printer-pos-check-outline"},"printer-point-of-sale-cog":{"parent":"printer-pos-cog"},"printer-point-of-sale-cog-outline":{"parent":"printer-pos-cog-outline"},"printer-point-of-sale-edit":{"parent":"printer-pos-edit"},"printer-point-of-sale-edit-outline":{"parent":"printer-pos-edit-outline"},"printer-point-of-sale-minus":{"parent":"printer-pos-minus"},"printer-point-of-sale-minus-outline":{"parent":"printer-pos-minus-outline"},"printer-point-of-sale-network":{"parent":"printer-pos-network"},"printer-point-of-sale-network-outline":{"parent":"printer-pos-network-outline"},"printer-point-of-sale-off":{"parent":"printer-pos-off"},"printer-point-of-sale-off-outline":{"parent":"printer-pos-off-outline"},"printer-point-of-sale-outline":{"parent":"printer-pos-outline"},"printer-point-of-sale-pause":{"parent":"printer-pos-pause"},"printer-point-of-sale-pause-outline":{"parent":"printer-pos-pause-outline"},"printer-point-of-sale-play":{"parent":"printer-pos-play"},"printer-point-of-sale-play-outline":{"parent":"printer-pos-play-outline"},"printer-point-of-sale-plus":{"parent":"printer-pos-plus"},"printer-point-of-sale-plus-outline":{"parent":"printer-pos-plus-outline"},"printer-point-of-sale-refresh":{"parent":"printer-pos-refresh"},"printer-point-of-sale-refresh-outline":{"parent":"printer-pos-refresh-outline"},"printer-point-of-sale-remove":{"parent":"printer-pos-remove"},"printer-point-of-sale-remove-outline":{"parent":"printer-pos-remove-outline"},"printer-point-of-sale-star":{"parent":"printer-pos-star"},"printer-point-of-sale-star-outline":{"parent":"printer-pos-star-outline"},"printer-point-of-sale-stop":{"parent":"printer-pos-stop"},"printer-point-of-sale-stop-outline":{"parent":"printer-pos-stop-outline"},"printer-point-of-sale-sync":{"parent":"printer-pos-sync"},"printer-point-of-sale-sync-outline":{"parent":"printer-pos-sync-outline"},"printer-point-of-sale-wrench":{"parent":"printer-pos-wrench"},"printer-point-of-sale-wrench-outline":{"parent":"printer-pos-wrench-outline"},"printer-preview":{"parent":"printer-eye"},"printer-primary":{"parent":"printer-pos-star"},"printer-receipt":{"parent":"printer-pos"},"printer-receipt-alert":{"parent":"printer-pos-alert"},"printer-receipt-alert-outline":{"parent":"printer-pos-alert-outline"},"printer-receipt-cancel":{"parent":"printer-pos-cancel"},"printer-receipt-cancel-outline":{"parent":"printer-pos-cancel-outline"},"printer-receipt-check":{"parent":"printer-pos-check"},"printer-receipt-check-outline":{"parent":"printer-pos-check-outline"},"printer-receipt-cog":{"parent":"printer-pos-cog"},"printer-receipt-cog-outline":{"parent":"printer-pos-cog-outline"},"printer-receipt-edit":{"parent":"printer-pos-edit"},"printer-receipt-edit-outline":{"parent":"printer-pos-edit-outline"},"printer-receipt-minus":{"parent":"printer-pos-minus"},"printer-receipt-minus-outline":{"parent":"printer-pos-minus-outline"},"printer-receipt-network":{"parent":"printer-pos-network"},"printer-receipt-network-outline":{"parent":"printer-pos-network-outline"},"printer-receipt-off":{"parent":"printer-pos-off"},"printer-receipt-off-outline":{"parent":"printer-pos-off-outline"},"printer-receipt-outline":{"parent":"printer-pos-outline"},"printer-receipt-pause":{"parent":"printer-pos-pause"},"printer-receipt-pause-outline":{"parent":"printer-pos-pause-outline"},"printer-receipt-play":{"parent":"printer-pos-play"},"printer-receipt-play-outline":{"parent":"printer-pos-play-outline"},"printer-receipt-plus":{"parent":"printer-pos-plus"},"printer-receipt-plus-outline":{"parent":"printer-pos-plus-outline"},"printer-receipt-refresh":{"parent":"printer-pos-refresh"},"printer-receipt-refresh-outline":{"parent":"printer-pos-refresh-outline"},"printer-receipt-remove":{"parent":"printer-pos-remove"},"printer-receipt-remove-outline":{"parent":"printer-pos-remove-outline"},"printer-receipt-star":{"parent":"printer-pos-star"},"printer-receipt-star-outline":{"parent":"printer-pos-star-outline"},"printer-receipt-stop":{"parent":"printer-pos-stop"},"printer-receipt-stop-outline":{"parent":"printer-pos-stop-outline"},"printer-receipt-sync":{"parent":"printer-pos-sync"},"printer-receipt-sync-outline":{"parent":"printer-pos-sync-outline"},"printer-receipt-wrench":{"parent":"printer-pos-wrench"},"printer-receipt-wrench-outline":{"parent":"printer-pos-wrench-outline"},"printer-view":{"parent":"printer-eye"},"printer-warning":{"parent":"printer-alert"},"prize":{"parent":"license"},"progress-spanner":{"parent":"progress-wrench"},"progress-tick":{"parent":"progress-check"},"progress-warning":{"parent":"progress-alert"},"prohibited":{"parent":"cancel"},"property-tag":{"parent":"bag-personal-tag"},"property-tag-outline":{"parent":"bag-personal-tag-outline"},"protected":{"parent":"lock"},"protected-outline":{"parent":"lock-outline"},"proximity-sensor":{"parent":"leak"},"proximity-sensor-off":{"parent":"leak-off"},"proxy":{"parent":"arrow-decision"},"proxy-auto":{"parent":"arrow-decision-auto"},"proxy-auto-outline":{"parent":"arrow-decision-auto-outline"},"proxy-outline":{"parent":"arrow-decision-outline"},"psychology":{"parent":"head-cog"},"psychology-outline":{"parent":"head-cog-outline"},"pub":{"parent":"beer"},"pub-outline":{"parent":"beer-outline"},"public":{"parent":"earth"},"publish-disabled":{"parent":"publish-off"},"puddle":{"parent":"liquid-spot"},"pumpkin-carved":{"parent":"halloween"},"pumpkin-face":{"parent":"halloween"},"push-notification":{"parent":"square-rounded-badge"},"push-notification-outline":{"parent":"square-rounded-badge-outline"},"puzzle-favorite":{"parent":"puzzle-star"},"puzzle-favorite-outline":{"parent":"puzzle-star-outline"},"pylon":{"parent":"transmission-tower"},"pylon-off":{"parent":"transmission-tower-off"},"quad":{"parent":"atv"},"query-builder":{"parent":"clock-outline"},"question-answer":{"parent":"forum"},"question-box-multiple":{"parent":"help-box-multiple"},"question-box-multiple-outline":{"parent":"help-box-multiple-outline"},"question-box-outline":{"parent":"help-box-outline"},"question-mark":{"parent":"help"},"question-mark-box":{"parent":"help-box"},"question-mark-circle":{"parent":"help-circle"},"question-mark-circle-outline":{"parent":"help-circle-outline"},"question-mark-rhombus":{"parent":"help-rhombus"},"question-mark-rhombus-outline":{"parent":"help-rhombus-outline"},"question-network":{"parent":"help-network"},"question-network-outline":{"parent":"help-network-outline"},"queue":{"parent":"plus-box-multiple"},"queue-music":{"parent":"playlist-music"},"queue-music-outline":{"parent":"playlist-music-outline"},"quill":{"parent":"feather"},"quiz":{"parent":"help-box-multiple"},"quiz-outline":{"parent":"help-box-multiple-outline"},"radiation":{"parent":"radioactive"},"radiation-circle":{"parent":"radioactive-circle"},"radiation-circle-outline":{"parent":"radioactive-circle-outline"},"radiation-off":{"parent":"radioactive-off"},"radiator-coil":{"parent":"heating-coil"},"radio-button-checked":{"parent":"radiobox-marked"},"radio-button-unchecked":{"parent":"radiobox-blank"},"radiology":{"parent":"skull-scan"},"radiology-outline":{"parent":"skull-scan-outline"},"railroad":{"parent":"train"},"railroad-crossing-light":{"parent":"railroad-light"},"railroad-variant":{"parent":"train-variant"},"railway":{"parent":"fence"},"railway-electric":{"parent":"fence-electric"},"rain-chance":{"parent":"cloud-percent"},"rain-chance-outline":{"parent":"cloud-percent-outline"},"rainbow":{"parent":"looks"},"rancher":{"parent":"account-cowboy-hat"},"rancher-outline":{"parent":"account-cowboy-hat-outline"},"rank":{"parent":"chevron-triple-up"},"rash":{"parent":"allergy"},"raspberrypi":{"parent":"raspberry-pi"},"raster":{"parent":"checkerboard"},"raster-minus":{"parent":"checkerboard-minus"},"raster-plus":{"parent":"checkerboard-plus"},"raster-remove":{"parent":"checkerboard-remove"},"rat":{"parent":"rodent"},"rate-review":{"parent":"message-draw"},"rca":{"parent":"video-input-component"},"rdf":{"parent":"semantic-web"},"read-more":{"parent":"page-next"},"read-more-outline":{"parent":"page-next-outline"},"receipt-roll":{"parent":"paper-roll"},"receipt-roll-outline":{"parent":"paper-roll-outline"},"receipt-text-add":{"parent":"receipt-text-plus"},"recent":{"parent":"history"},"record-voice-over":{"parent":"account-voice"},"recreational-vehicle":{"parent":"rv-truck"},"recurring-payment":{"parent":"cash-sync"},"redeem":{"parent":"wallet-giftcard"},"refresh-automatic":{"parent":"refresh-auto"},"refrigerator":{"parent":"fridge"},"refrigerator-bottom":{"parent":"fridge-bottom"},"refrigerator-filled":{"parent":"fridge"},"refrigerator-filled-bottom":{"parent":"fridge-top"},"refrigerator-filled-top":{"parent":"fridge-bottom"},"refrigerator-outline":{"parent":"fridge-outline"},"refrigerator-top":{"parent":"fridge-top"},"regeneration":{"parent":"compost"},"regenerative-agriculture":{"parent":"compost"},"register":{"parent":"account-plus"},"register-outline":{"parent":"account-plus-outline"},"registration-mark":{"parent":"target"},"regular-expression":{"parent":"regex"},"religion-buddhist":{"parent":"dharmachakra"},"religion-christian":{"parent":"cross"},"religion-christian-outline":{"parent":"cross-outline"},"religion-hindu":{"parent":"om"},"religion-islamic":{"parent":"star-crescent"},"religion-judaic":{"parent":"star-david"},"religion-muslim":{"parent":"star-crescent"},"remove":{"parent":"close"},"remove-bold":{"parent":"close-thick"},"remove-box":{"parent":"close-box"},"remove-box-multiple":{"parent":"close-box-multiple"},"remove-box-outline":{"parent":"close-box-outline"},"remove-circle":{"parent":"close-circle"},"remove-circle-multiple":{"parent":"close-circle-multiple"},"remove-circle-multiple-outline":{"parent":"close-circle-multiple-outline"},"remove-circle-off":{"parent":"minus-circle-off"},"remove-circle-off-outline":{"parent":"minus-circle-off-outline"},"remove-circle-outline":{"parent":"close-circle-outline"},"remove-network":{"parent":"close-network"},"remove-network-outline":{"parent":"close-network-outline"},"remove-octagon":{"parent":"close-octagon"},"remove-octagon-outline":{"parent":"close-octagon-outline"},"remove-outline":{"parent":"close-outline"},"remove-red-eye":{"parent":"eye"},"remove-shopping-cart":{"parent":"cart-off"},"remove-thick":{"parent":"close-thick"},"renminbi":{"parent":"currency-cny"},"rent-a-car":{"parent":"car-key"},"repeat-one":{"parent":"repeat-once"},"report":{"parent":"alert-octagon"},"report-arc":{"parent":"chart-arc"},"report-areaspline":{"parent":"chart-areaspline"},"report-areaspline-variant":{"parent":"chart-areaspline-variant"},"report-bar":{"parent":"chart-bar"},"report-bar-stacked":{"parent":"chart-bar-stacked"},"report-bell-curve":{"parent":"chart-bell-curve"},"report-bell-curve-cumulative":{"parent":"chart-bell-curve-cumulative"},"report-box":{"parent":"chart-box"},"report-box-outline":{"parent":"chart-box-outline"},"report-box-plus-outline":{"parent":"chart-box-plus-outline"},"report-bubble":{"parent":"chart-bubble"},"report-donut":{"parent":"chart-donut"},"report-donut-variant":{"parent":"chart-donut-variant"},"report-finance":{"parent":"finance"},"report-gantt":{"parent":"chart-gantt"},"report-histogram":{"parent":"chart-histogram"},"report-line":{"parent":"chart-line"},"report-line-shimmer":{"parent":"chart-timeline-variant-shimmer"},"report-line-stacked":{"parent":"chart-line-stacked"},"report-line-variant":{"parent":"chart-line-variant"},"report-multiline":{"parent":"chart-multiline"},"report-multiple":{"parent":"chart-multiple"},"report-pie":{"parent":"chart-pie"},"report-pie-outline":{"parent":"chart-pie-outline"},"report-ppf":{"parent":"chart-ppf"},"report-problem":{"parent":"alert"},"report-sankey":{"parent":"chart-sankey"},"report-sankey-variant":{"parent":"chart-sankey-variant"},"report-scatter-plot":{"parent":"chart-scatter-plot"},"report-scatter-plot-hexbin":{"parent":"chart-scatter-plot-hexbin"},"report-timeline":{"parent":"chart-timeline"},"report-timeline-variant":{"parent":"chart-timeline-variant"},"report-timeline-variant-shimmer":{"parent":"chart-timeline-variant-shimmer"},"report-tree":{"parent":"chart-tree"},"repost":{"parent":"repeat"},"reptile":{"parent":"snake"},"required":{"parent":"asterisk"},"required-circle":{"parent":"asterisk-circle-outline"},"reschedule":{"parent":"calendar-arrow-left"},"resize-horizontal":{"parent":"arrow-split-vertical"},"resize-vertical":{"parent":"arrow-split-horizontal"},"resource-description-framework":{"parent":"semantic-web"},"restaurant":{"parent":"silverware-fork-knife"},"restaurant-menu":{"parent":"silverware"},"restore-clock":{"parent":"history"},"restore-from-trash":{"parent":"delete-restore"},"restore-page":{"parent":"file-restore"},"resume":{"parent":"file-account"},"return-to-grid":{"parent":"transmission-tower-import"},"reverse":{"parent":"alpha-r"},"right-to-left":{"parent":"format-pilcrow-arrow-left"},"roadmap":{"parent":"chart-gantt"},"robber-mask":{"parent":"domino-mask"},"robot-vacuum-error":{"parent":"robot-vacuum-alert"},"robot-vacuum-variant-error":{"parent":"robot-vacuum-variant-alert"},"rock-climbing":{"parent":"carabiner"},"rocker-switch":{"parent":"light-switch"},"rocker-switch-off":{"parent":"light-switch-off"},"roller-shade-open":{"parent":"blinds-open"},"rollup-js":{"parent":"rollupjs"},"room":{"parent":"map-marker"},"roomba":{"parent":"robot-vacuum"},"rostrum":{"parent":"lectern"},"rotate-90-degrees-ccw":{"parent":"format-rotate-90"},"rotate-clockwise":{"parent":"reload"},"rotate-counter-clockwise":{"parent":"restore"},"royalty":{"parent":"chess-king"},"rss-feed":{"parent":"rss"},"rss-feed-box":{"parent":"rss-box"},"rtl":{"parent":"format-pilcrow-arrow-left"},"rubbish":{"parent":"delete"},"rubbish-bin":{"parent":"delete"},"rubbish-bin-circle":{"parent":"delete-circle"},"rubbish-bin-circle-outline":{"parent":"delete-circle-outline"},"rubbish-bin-empty":{"parent":"delete-empty"},"rubbish-bin-outline":{"parent":"delete-outline"},"rubbish-circle":{"parent":"delete-circle"},"rubbish-circle-outline":{"parent":"delete-circle-outline"},"rubbish-empty":{"parent":"delete-empty"},"rubbish-outline":{"parent":"delete-outline"},"ruble":{"parent":"currency-rub"},"ruby":{"parent":"language-ruby"},"ruby-horizontal":{"parent":"furigana-horizontal"},"ruby-vertical":{"parent":"furigana-vertical"},"rugby-ball":{"parent":"rugby"},"rum":{"parent":"liquor"},"rupee":{"parent":"currency-inr"},"safety-belt":{"parent":"seatbelt"},"safety-glasses":{"parent":"safety-goggles"},"sail-boat-crash":{"parent":"sail-boat-sink"},"sail-boat-wreck":{"parent":"sail-boat-sink"},"sailing":{"parent":"sail-boat"},"sale-box":{"parent":"percent-box"},"sale-box-outline":{"parent":"percent-box-outline"},"sale-circle":{"parent":"percent-circle"},"sale-circle-outline":{"parent":"percent-circle-outline"},"salt":{"parent":"shaker-outline"},"scan":{"parent":"face-recognition"},"schedule":{"parent":"clock-outline"},"scheduled-maintenance":{"parent":"wrench-clock"},"scheduled-payment":{"parent":"cash-sync"},"school-online":{"parent":"cast-education"},"scissors":{"parent":"content-cut"},"scooter-electric-outline":{"parent":"moped-electric-outline"},"scooter-outline":{"parent":"moped-outline"},"score":{"parent":"counter"},"screen-lock-rotation":{"parent":"screen-rotation-lock"},"scroll":{"parent":"script"},"scroll-horizontal-lock":{"parent":"arrow-horizontal-lock"},"scroll-outline":{"parent":"script-outline"},"scroll-text":{"parent":"script-text"},"scroll-text-outline":{"parent":"script-text-outline"},"scroll-vertical-lock":{"parent":"arrow-vertical-lock"},"sd-card":{"parent":"sd"},"sd-storage":{"parent":"sd"},"sea-level-rise":{"parent":"waves-arrow-up"},"seal-outline":{"parent":"certificate-outline"},"search":{"parent":"magnify"},"search-add":{"parent":"magnify-plus"},"search-add-outline":{"parent":"magnify-plus-outline"},"search-expand":{"parent":"magnify-expand"},"search-globe":{"parent":"search-web"},"search-hands-free":{"parent":"steering"},"search-hands-free-off":{"parent":"steering-off"},"search-minus":{"parent":"magnify-minus"},"search-minus-outline":{"parent":"magnify-minus-outline"},"search-plus":{"parent":"magnify-plus"},"search-plus-outline":{"parent":"magnify-plus-outline"},"seat-belt":{"parent":"seatbelt"},"secure":{"parent":"lock"},"secure-outline":{"parent":"lock-outline"},"security-account":{"parent":"shield-account"},"security-account-outline":{"parent":"shield-account-outline"},"security-camera":{"parent":"cctv"},"security-camera-off":{"parent":"cctv-off"},"security-home":{"parent":"shield-home"},"security-lock":{"parent":"shield-lock"},"security-lock-outline":{"parent":"shield-lock-outline"},"security-off":{"parent":"shield-off"},"seed-add":{"parent":"seed-plus"},"seed-add-outline":{"parent":"seed-plus-outline"},"seedling":{"parent":"sprout"},"seedling-outline":{"parent":"sprout-outline"},"select-colour":{"parent":"select-color"},"select-location":{"parent":"select-marker"},"select-multiple-location":{"parent":"select-multiple-marker"},"selection-invert":{"parent":"select-inverse"},"selection-location":{"parent":"selection-marker"},"selection-multiple-location":{"parent":"selection-multiple-marker"},"selection-mutliple":{"parent":"selection-multiple"},"selfie":{"parent":"account-box"},"selfie-outline":{"parent":"account-box-outline"},"send-secure":{"parent":"send-lock"},"sentiment-very-satisfied":{"parent":"emoticon-outline"},"server-add":{"parent":"server-plus"},"server-shield":{"parent":"server-security"},"service-toolbox":{"parent":"toolbox-outline"},"set":{"parent":"code-braces"},"set-and":{"parent":"set-center"},"set-centre":{"parent":"set-center"},"set-centre-right":{"parent":"set-center-right"},"set-intersection":{"parent":"set-center"},"set-left-centre":{"parent":"set-left-center"},"set-not":{"parent":"set-none"},"set-null":{"parent":"set-none"},"set-or":{"parent":"set-all"},"set-union":{"parent":"set-all"},"set-xor":{"parent":"set-left-right"},"settings":{"parent":"cog"},"settings-applications":{"parent":"cog-box"},"settings-backup-restore":{"parent":"backup-restore"},"settings-bluetooth":{"parent":"bluetooth-settings"},"settings-box":{"parent":"cog-box"},"settings-cell":{"parent":"cellphone-settings"},"settings-input-antenna":{"parent":"video-input-antenna"},"settings-input-component":{"parent":"video-input-component"},"settings-input-composite":{"parent":"video-input-component"},"settings-input-hdmi":{"parent":"video-input-hdmi"},"settings-input-svideo":{"parent":"video-input-svideo"},"settings-off":{"parent":"cog-off"},"settings-off-outline":{"parent":"cog-off-outline"},"settings-outline":{"parent":"cog-outline"},"settings-pause":{"parent":"cog-pause"},"settings-pause-outline":{"parent":"cog-pause-outline"},"settings-phone":{"parent":"phone-settings"},"settings-play":{"parent":"cog-play"},"settings-play-outline":{"parent":"cog-play-outline"},"settings-power":{"parent":"power-settings"},"settings-refresh":{"parent":"cog-refresh"},"settings-refresh-outline":{"parent":"cog-refresh-outline"},"settings-remote":{"parent":"remote"},"settings-stop":{"parent":"cog-stop"},"settings-stop-outline":{"parent":"cog-stop-outline"},"settings-sync":{"parent":"cog-sync"},"settings-sync-outline":{"parent":"cog-sync-outline"},"settings-transfer":{"parent":"cog-transfer"},"settings-transfer-outline":{"parent":"cog-transfer-outline"},"settings-vertical":{"parent":"tune-vertical"},"settings-voice":{"parent":"microphone-settings"},"shape-add":{"parent":"shape-plus"},"shape-circle-add":{"parent":"shape-circle-plus"},"shape-polygon-add":{"parent":"shape-polygon-plus"},"shape-rectangle-add":{"parent":"shape-rectangle-plus"},"shape-square-add":{"parent":"shape-square-plus"},"shed":{"parent":"greenhouse"},"shield-add":{"parent":"shield-plus"},"shield-add-outline":{"parent":"shield-plus-outline"},"shield-aeroplane":{"parent":"shield-airplane"},"shield-aeroplane-outline":{"parent":"shield-airplane-outline"},"shield-christianity":{"parent":"shield-cross"},"shield-christianity-outline":{"parent":"shield-cross-outline"},"shield-favorite":{"parent":"shield-star"},"shield-favorite-outline":{"parent":"shield-star-outline"},"shield-house":{"parent":"shield-home"},"shield-house-outline":{"parent":"shield-home-outline"},"shield-network":{"parent":"security-network"},"shield-person":{"parent":"shield-account"},"shield-person-outline":{"parent":"shield-account-outline"},"shield-plane":{"parent":"shield-airplane"},"shield-plane-outline":{"parent":"shield-airplane-outline"},"shield-templar":{"parent":"shield-cross"},"shield-templar-outline":{"parent":"shield-cross-outline"},"shield-tick":{"parent":"shield-check"},"shield-tick-outline":{"parent":"shield-check-outline"},"shield-unlocked":{"parent":"shield-lock-open"},"shield-unlocked-outline":{"parent":"shield-lock-open-outline"},"shield-user":{"parent":"shield-account"},"shield-user-outline":{"parent":"shield-account-outline"},"shield-warning":{"parent":"shield-alert"},"shield-warning-outline":{"parent":"shield-alert-outline"},"ship":{"parent":"ferry"},"shoe-running":{"parent":"shoe-sneaker"},"shop":{"parent":"store"},"shop-24-hour":{"parent":"store-24-hour"},"shop-alert":{"parent":"store-alert"},"shop-alert-outline":{"parent":"store-alert-outline"},"shop-check":{"parent":"store-check"},"shop-check-outline":{"parent":"store-check-outline"},"shop-clock":{"parent":"store-clock"},"shop-clock-outline":{"parent":"store-clock-outline"},"shop-cog-outline":{"parent":"store-cog-outline"},"shop-complete":{"parent":"store-check"},"shop-delete":{"parent":"store-remove"},"shop-delete-outline":{"parent":"store-remove-outline"},"shop-edit":{"parent":"store-edit"},"shop-edit-outline":{"parent":"store-edit-outline"},"shop-find":{"parent":"store-search"},"shop-find-outline":{"parent":"store-search-outline"},"shop-hours":{"parent":"store-clock"},"shop-hours-outline":{"parent":"store-clock-outline"},"shop-location":{"parent":"store-marker"},"shop-location-outline":{"parent":"store-marker-outline"},"shop-locator":{"parent":"store-search"},"shop-locator-outline":{"parent":"store-search-outline"},"shop-look-up":{"parent":"store-search"},"shop-look-up-outline":{"parent":"store-search-outline"},"shop-marker":{"parent":"store-marker"},"shop-marker-outline":{"parent":"store-marker-outline"},"shop-minus":{"parent":"store-minus"},"shop-minus-outline":{"parent":"store-minus-outline"},"shop-off":{"parent":"store-off"},"shop-off-outline":{"parent":"store-off-outline"},"shop-outline":{"parent":"store-outline"},"shop-plus":{"parent":"store-plus"},"shop-plus-outline":{"parent":"store-plus-outline"},"shop-remove":{"parent":"store-remove"},"shop-remove-outline":{"parent":"store-remove-outline"},"shop-schedule":{"parent":"store-clock"},"shop-schedule-outline":{"parent":"store-clock-outline"},"shop-search":{"parent":"store-search"},"shop-search-outline":{"parent":"store-search-outline"},"shop-settings":{"parent":"store-cog"},"shop-settings-outline":{"parent":"store-cog-outline"},"shop-time":{"parent":"store-clock"},"shop-time-outline":{"parent":"store-clock-outline"},"shopping-basket":{"parent":"basket"},"shopping-basket-minus":{"parent":"basket-minus"},"shopping-basket-minus-outline":{"parent":"basket-minus-outline"},"shopping-basket-off":{"parent":"basket-off"},"shopping-basket-off-outline":{"parent":"basket-off-outline"},"shopping-basket-outline":{"parent":"basket-outline"},"shopping-basket-plus":{"parent":"basket-plus"},"shopping-basket-plus-outline":{"parent":"basket-plus-outline"},"shopping-basket-remove":{"parent":"basket-remove"},"shopping-basket-remove-outline":{"parent":"basket-remove-outline"},"shopping-cart":{"parent":"cart"},"shopping-cart-add":{"parent":"cart-plus"},"shopping-cart-arrow-down":{"parent":"cart-arrow-down"},"shopping-cart-arrow-right":{"parent":"cart-arrow-right"},"shopping-cart-arrow-up":{"parent":"cart-arrow-up"},"shopping-cart-minus":{"parent":"cart-minus"},"shopping-cart-off":{"parent":"cart-off"},"shopping-cart-outline":{"parent":"cart-outline"},"shopping-cart-plus":{"parent":"cart-plus"},"shopping-cart-remove":{"parent":"cart-remove"},"shopping-favorite":{"parent":"cart-heart"},"shot":{"parent":"needle"},"shot-off":{"parent":"needle-off"},"show":{"parent":"eye"},"show-chart":{"parent":"chart-line-variant"},"show-outline":{"parent":"eye-outline"},"shul":{"parent":"synagogue"},"shul-outline":{"parent":"synagogue-outline"},"shutdown":{"parent":"power"},"shuttlecock":{"parent":"badminton"},"sideboard":{"parent":"buffet"},"sign":{"parent":"draw"},"sign-direction-add":{"parent":"sign-direction-plus"},"sign-in":{"parent":"login"},"sign-in-variant":{"parent":"login-variant"},"sign-out":{"parent":"logout"},"sign-out-variant":{"parent":"logout-variant"},"sign-routes":{"parent":"routes"},"signal-cellular-0":{"parent":"signal-cellular-outline"},"signal-cellular-no-sim":{"parent":"sim-off"},"sikh":{"parent":"khanda"},"silverware-knife":{"parent":"knife"},"silverware-shimmer":{"parent":"silverware-clean"},"sim-card":{"parent":"sim"},"sim-card-alert":{"parent":"sim-alert"},"sim-card-outline":{"parent":"sim-outline"},"sim-warning":{"parent":"sim-alert"},"sink":{"parent":"countertop"},"sink-outline":{"parent":"countertop-outline"},"size-extra-extra-large":{"parent":"size-xxl"},"size-extra-extra-small":{"parent":"size-xxs"},"size-extra-large":{"parent":"size-xl"},"size-extra-small":{"parent":"size-xs"},"size-large":{"parent":"size-l"},"size-medium":{"parent":"size-m"},"size-small":{"parent":"size-s"},"skew-decrease":{"parent":"skew-less"},"skew-increase":{"parent":"skew-more"},"skip":{"parent":"basket"},"skip-fill":{"parent":"basket-fill"},"skip-minus":{"parent":"basket-minus"},"skip-minus-outline":{"parent":"basket-minus-outline"},"skip-off":{"parent":"basket-off"},"skip-off-outline":{"parent":"basket-off-outline"},"skip-outline":{"parent":"basket-outline"},"skip-plus":{"parent":"basket-plus"},"skip-plus-outline":{"parent":"basket-plus-outline"},"skip-remove":{"parent":"basket-remove"},"skip-remove-outline":{"parent":"basket-remove-outline"},"slate":{"parent":"movie"},"slate-check":{"parent":"movie-check"},"slate-check-outline":{"parent":"movie-check-outline"},"slate-cog":{"parent":"movie-cog"},"slate-cog-outline":{"parent":"movie-cog-outline"},"slate-edit":{"parent":"movie-edit"},"slate-edit-outline":{"parent":"movie-edit-outline"},"slate-minus":{"parent":"movie-minus"},"slate-minus-outline":{"parent":"movie-minus-outline"},"slate-off":{"parent":"movie-off"},"slate-off-outline":{"parent":"movie-off-outline"},"slate-open":{"parent":"movie-open"},"slate-open-check":{"parent":"movie-open-check"},"slate-open-check-outline":{"parent":"movie-open-check-outline"},"slate-open-cog":{"parent":"movie-open-cog"},"slate-open-cog-outline":{"parent":"movie-open-cog-outline"},"slate-open-edit":{"parent":"movie-open-edit"},"slate-open-edit-outline":{"parent":"movie-open-edit-outline"},"slate-open-minus":{"parent":"movie-open-minus"},"slate-open-minus-outline":{"parent":"movie-open-minus-outline"},"slate-open-off":{"parent":"movie-open-off"},"slate-open-off-outline":{"parent":"movie-open-off-outline"},"slate-open-outline":{"parent":"movie-open-outline"},"slate-open-play":{"parent":"movie-open-play"},"slate-open-play-outline":{"parent":"movie-open-play-outline"},"slate-open-plus":{"parent":"movie-open-plus"},"slate-open-plus-outline":{"parent":"movie-open-plus-outline"},"slate-open-remove":{"parent":"movie-open-remove"},"slate-open-remove-outline":{"parent":"movie-open-remove-outline"},"slate-open-settings":{"parent":"movie-open-settings"},"slate-open-settings-outline":{"parent":"movie-open-settings-outline"},"slate-open-star":{"parent":"movie-open-star"},"slate-open-star-outline":{"parent":"movie-open-star-outline"},"slate-outline":{"parent":"movie-outline"},"slate-play":{"parent":"movie-play"},"slate-play-outline":{"parent":"movie-play-outline"},"slate-plus":{"parent":"movie-plus"},"slate-plus-outline":{"parent":"movie-plus-outline"},"slate-remove":{"parent":"movie-remove"},"slate-remove-outline":{"parent":"movie-remove-outline"},"slate-settings":{"parent":"movie-settings"},"slate-settings-outline":{"parent":"movie-settings-outline"},"slate-star":{"parent":"movie-star"},"slate-star-outline":{"parent":"movie-star-outline"},"sleep-schedule":{"parent":"bed-clock"},"sleep-time":{"parent":"bed-clock"},"slideshow":{"parent":"play-box-outline"},"slippers-ballet":{"parent":"shoe-ballet"},"smartphone":{"parent":"cellphone"},"smartphone-android":{"parent":"cellphone-android"},"smartphone-arrow-down":{"parent":"cellphone-arrow-down"},"smartphone-dock":{"parent":"cellphone-dock"},"smartphone-erase":{"parent":"cellphone-remove"},"smartphone-information":{"parent":"cellphone-information"},"smartphone-iphone":{"parent":"cellphone-iphone"},"smartphone-key":{"parent":"cellphone-key"},"smartphone-link":{"parent":"cellphone-link"},"smartphone-link-off":{"parent":"cellphone-link-off"},"smartphone-lock":{"parent":"cellphone-lock"},"smartphone-message":{"parent":"cellphone-message"},"smartphone-off":{"parent":"cellphone-off"},"smartphone-settings":{"parent":"cellphone-settings"},"smartphone-settings-variant":{"parent":"cellphone-cog"},"smartphone-sound":{"parent":"cellphone-sound"},"smartphone-text":{"parent":"cellphone-text"},"smartphone-wireless":{"parent":"cellphone-wireless"},"smartwatch":{"parent":"devices"},"smell":{"parent":"scent"},"smell-off":{"parent":"scent-off"},"smiley":{"parent":"emoticon"},"smiley-angry":{"parent":"emoticon-angry"},"smiley-angry-outline":{"parent":"emoticon-angry-outline"},"smiley-cool":{"parent":"emoticon-cool"},"smiley-cool-outline":{"parent":"emoticon-cool-outline"},"smiley-cry":{"parent":"emoticon-cry"},"smiley-cry-outline":{"parent":"emoticon-cry-outline"},"smiley-dead":{"parent":"emoticon-dead"},"smiley-dead-outline":{"parent":"emoticon-dead-outline"},"smiley-devil":{"parent":"emoticon-devil"},"smiley-devil-outline":{"parent":"emoticon-devil-outline"},"smiley-excited":{"parent":"emoticon-excited"},"smiley-excited-outline":{"parent":"emoticon-excited-outline"},"smiley-happy":{"parent":"emoticon-happy"},"smiley-happy-outline":{"parent":"emoticon-happy-outline"},"smiley-kiss":{"parent":"emoticon-kiss"},"smiley-kiss-outline":{"parent":"emoticon-kiss-outline"},"smiley-neutral":{"parent":"emoticon-neutral"},"smiley-neutral-outline":{"parent":"emoticon-neutral-outline"},"smiley-outline":{"parent":"emoticon-outline"},"smiley-poop":{"parent":"emoticon-poop"},"smiley-sad":{"parent":"emoticon-sad"},"smiley-sad-outline":{"parent":"emoticon-sad-outline"},"smiley-tongue":{"parent":"emoticon-tongue"},"smiley-tongue-outline":{"parent":"emoticon-tongue-outline"},"smiley-wink":{"parent":"emoticon-wink"},"smiley-wink-outline":{"parent":"emoticon-wink-outline"},"smoke-free":{"parent":"smoking-off"},"smoking-area":{"parent":"smoking"},"smoking-rooms":{"parent":"smoking"},"smoothing-iron":{"parent":"iron"},"smoothing-iron-outline":{"parent":"iron-outline"},"sms":{"parent":"message-processing"},"sms-failed":{"parent":"message-alert"},"sms-failed-outline":{"parent":"message-alert-outline"},"snooker-rack":{"parent":"billiards-rack"},"snooker-triangle":{"parent":"billiards-rack"},"snow-advisory":{"parent":"snowflake-alert"},"snowflake-approve":{"parent":"snowflake-check"},"snowflake-temperature":{"parent":"snowflake-thermometer"},"solar-angle":{"parent":"sun-angle"},"solar-angle-outline":{"parent":"sun-angle-outline"},"solar-asimuth":{"parent":"sun-compass"},"solar-compass":{"parent":"sun-compass"},"solar-electricity":{"parent":"solar-panel"},"solar-electricity-outline":{"parent":"solar-power-variant-outline"},"solar-energy":{"parent":"solar-panel"},"solar-energy-outline":{"parent":"solar-power-variant-outline"},"solar-panel-electricity":{"parent":"solar-panel-large"},"solar-panel-energy":{"parent":"solar-panel-large"},"sort-alphabetical":{"parent":"sort-alphabetical-variant"},"sort-alphabetically":{"parent":"sort-alphabetical-variant"},"sort-by-alpha":{"parent":"sort-alphabetical-variant"},"sort-checkbox-ascending":{"parent":"sort-bool-ascending-variant"},"sort-checkbox-descending":{"parent":"sort-bool-descending-variant"},"sort-date-ascending":{"parent":"sort-calendar-ascending"},"sort-date-descending":{"parent":"sort-calendar-descending"},"sort-numeric":{"parent":"sort-numeric-variant"},"sort-numerically":{"parent":"sort-numeric-variant"},"sort-time-ascending":{"parent":"sort-clock-ascending"},"sort-time-ascending-outline":{"parent":"sort-clock-ascending-outline"},"sort-time-descending":{"parent":"sort-clock-descending"},"sort-time-descending-outline":{"parent":"sort-clock-descending-outline"},"source-repositories":{"parent":"source-repository-multiple"},"southern-lights":{"parent":"aurora"},"soya-sauce":{"parent":"soy-sauce"},"spaghetti":{"parent":"pasta"},"spanner":{"parent":"wrench"},"spanner-outline":{"parent":"wrench-outline"},"sparkles":{"parent":"shimmer"},"speak":{"parent":"account-voice"},"speaker-bar":{"parent":"soundbar"},"speaker-notes":{"parent":"message-bulleted"},"speaker-notes-off":{"parent":"message-bulleted-off"},"speakerphone":{"parent":"volume-high"},"speakerphone-off":{"parent":"volume-off"},"speakers":{"parent":"speaker-multiple"},"speaking":{"parent":"account-voice"},"sphere-diameter":{"parent":"diameter"},"sphere-diameter-outline":{"parent":"diameter-outline"},"sphere-diameter-variant":{"parent":"diameter-variant"},"sphere-radius":{"parent":"radius"},"sphere-radius-outline":{"parent":"radius-outline"},"spicy":{"parent":"chili-hot"},"spicy-off":{"parent":"chili-off"},"spill":{"parent":"liquid-spot"},"spirits":{"parent":"liquor"},"spoken-language":{"parent":"translate-variant"},"sprinkler-head":{"parent":"sprinkler-fire"},"sprinkler-mist":{"parent":"sprinkler-fire"},"spy":{"parent":"incognito"},"spy-circle":{"parent":"incognito-circle"},"spy-circle-off":{"parent":"incognito-circle-off"},"spy-off":{"parent":"incognito-off"},"sql-foreign-key":{"parent":"key-link"},"sql-full-outer-join":{"parent":"set-all"},"sql-inner-join":{"parent":"set-center"},"sql-left-outer-join":{"parent":"set-left-center"},"sql-primary-key":{"parent":"key-star"},"sql-query":{"parent":"database-search"},"sql-right-outer-join":{"parent":"set-center-right"},"square-brackets":{"parent":"code-brackets"},"square-transparent":{"parent":"square-opacity"},"squash":{"parent":"racquetball"},"stackexchange":{"parent":"stack-exchange"},"stackoverflow":{"parent":"stack-overflow"},"staff":{"parent":"spear"},"staff-shimmer":{"parent":"magic-staff"},"stanley-knife":{"parent":"box-cutter"},"star-add":{"parent":"star-plus"},"star-add-outline":{"parent":"star-plus-outline"},"star-border":{"parent":"star-outline"},"star-rate":{"parent":"star"},"starburst":{"parent":"decagram"},"starburst-outline":{"parent":"decagram-outline"},"stars":{"parent":"star-circle"},"stay-current-portrait":{"parent":"cellphone"},"stay-primary-portrait":{"parent":"cellphone"},"stereo":{"parent":"surround-sound-2-0"},"sterling":{"parent":"currency-gbp"},"sticky-note":{"parent":"note"},"sticky-note-add":{"parent":"note-plus"},"sticky-note-add-outline":{"parent":"note-plus-outline"},"sticky-note-alert":{"parent":"note-alert"},"sticky-note-alert-outline":{"parent":"note-alert-outline"},"sticky-note-check":{"parent":"note-check"},"sticky-note-check-outline":{"parent":"note-check-outline"},"sticky-note-edit":{"parent":"note-edit"},"sticky-note-edit-outline":{"parent":"note-edit-outline"},"sticky-note-minus":{"parent":"note-minus"},"sticky-note-minus-outline":{"parent":"note-minus-outline"},"sticky-note-off":{"parent":"note-off"},"sticky-note-off-outline":{"parent":"note-off-outline"},"sticky-note-outline":{"parent":"note-outline"},"sticky-note-plus":{"parent":"note-plus"},"sticky-note-plus-outline":{"parent":"note-plus-outline"},"sticky-note-remove":{"parent":"note-remove"},"sticky-note-search":{"parent":"note-search"},"sticky-note-search-outline":{"parent":"note-search-outline"},"sticky-note-text":{"parent":"note-text"},"sticky-note-text-outline":{"parent":"note-text-outline"},"sticky-notes":{"parent":"note-multiple"},"sticky-notes-outline":{"parent":"note-multiple-outline"},"stop-alert":{"parent":"alert-octagon"},"stop-alert-outline":{"parent":"alert-octagon-outline"},"stop-light":{"parent":"traffic-light"},"stop-light-outline":{"parent":"traffic-light-outline"},"stop-outline":{"parent":"octagon-outline"},"stop-pause":{"parent":"pause-octagon"},"stop-pause-outline":{"parent":"pause-octagon-outline"},"stop-remove":{"parent":"close-octagon"},"stop-remove-outline":{"parent":"close-octagon-outline"},"stopwatch":{"parent":"timer"},"stopwatch-add":{"parent":"timer-plus"},"stopwatch-add-outline":{"parent":"timer-plus-outline"},"stopwatch-alert":{"parent":"timer-alert"},"stopwatch-alert-outline":{"parent":"timer-alert-outline"},"stopwatch-cancel":{"parent":"timer-cancel"},"stopwatch-cancel-outline":{"parent":"timer-cancel-outline"},"stopwatch-check":{"parent":"timer-check"},"stopwatch-check-outline":{"parent":"timer-check-outline"},"stopwatch-edit":{"parent":"timer-edit"},"stopwatch-edit-outline":{"parent":"timer-edit-outline"},"stopwatch-favorite":{"parent":"timer-star"},"stopwatch-favorite-outline":{"parent":"timer-star-outline"},"stopwatch-location":{"parent":"timer-marker"},"stopwatch-location-outline":{"parent":"timer-marker-outline"},"stopwatch-lock":{"parent":"timer-lock"},"stopwatch-lock-open":{"parent":"timer-lock-open"},"stopwatch-lock-open-outline":{"parent":"timer-lock-open-outline"},"stopwatch-lock-outline":{"parent":"timer-lock-outline"},"stopwatch-marker":{"parent":"timer-marker"},"stopwatch-marker-outline":{"parent":"timer-marker-outline"},"stopwatch-minus":{"parent":"timer-minus"},"stopwatch-minus-outline":{"parent":"timer-minus-outline"},"stopwatch-music":{"parent":"timer-music"},"stopwatch-music-outline":{"parent":"timer-music-outline"},"stopwatch-off":{"parent":"timer-off"},"stopwatch-off-outline":{"parent":"timer-off-outline"},"stopwatch-outline":{"parent":"timer-outline"},"stopwatch-pause":{"parent":"timer-pause"},"stopwatch-pause-outline":{"parent":"timer-pause-outline"},"stopwatch-play":{"parent":"timer-play"},"stopwatch-play-outline":{"parent":"timer-play-outline"},"stopwatch-plus":{"parent":"timer-plus"},"stopwatch-plus-outline":{"parent":"timer-plus-outline"},"stopwatch-refresh":{"parent":"timer-refresh"},"stopwatch-refresh-outline":{"parent":"timer-refresh-outline"},"stopwatch-remove":{"parent":"timer-remove"},"stopwatch-remove-outline":{"parent":"timer-remove-outline"},"stopwatch-secure":{"parent":"timer-lock"},"stopwatch-secure-outline":{"parent":"timer-lock-outline"},"stopwatch-star":{"parent":"timer-star"},"stopwatch-star-outline":{"parent":"timer-star-outline"},"stopwatch-start":{"parent":"timer-play"},"stopwatch-start-outline":{"parent":"timer-play-outline"},"stopwatch-stop":{"parent":"timer-stop"},"stopwatch-stop-outline":{"parent":"timer-stop-outline"},"stopwatch-subtract":{"parent":"timer-minus"},"stopwatch-subtract-outline":{"parent":"timer-minus-outline"},"stopwatch-sync":{"parent":"timer-sync"},"stopwatch-sync-outline":{"parent":"timer-sync-outline"},"stopwatch-tick":{"parent":"timer-check"},"stopwatch-tick-outline":{"parent":"timer-check-outline"},"storage":{"parent":"database"},"store-complete":{"parent":"store-check"},"store-complete-outline":{"parent":"store-check-outline"},"store-delete":{"parent":"store-remove"},"store-delete-outline":{"parent":"store-remove-outline"},"store-find":{"parent":"store-search"},"store-find-outline":{"parent":"store-search-outline"},"store-hours":{"parent":"store-clock"},"store-hours-outline":{"parent":"store-clock-outline"},"store-location":{"parent":"store-marker"},"store-location-outline":{"parent":"store-marker-outline"},"store-locator":{"parent":"store-search"},"store-locator-outline":{"parent":"store-search-outline"},"store-look-up":{"parent":"store-search"},"store-look-up-outline":{"parent":"store-search-outline"},"store-mall-directory":{"parent":"store"},"store-mall-directory-outline":{"parent":"store-outline"},"store-schedule":{"parent":"store-clock"},"store-schedule-outline":{"parent":"store-clock-outline"},"store-time":{"parent":"store-clock"},"store-time-outline":{"parent":"store-clock-outline"},"storm":{"parent":"lightning-bolt"},"storm-advisory":{"parent":"flash-alert"},"storm-advisory-outline":{"parent":"flash-alert-outline"},"storm-circle":{"parent":"lightning-bolt-circle"},"storm-outline":{"parent":"lightning-bolt-outline"},"stove-burner":{"parent":"gas-burner"},"strikethrough-s":{"parent":"format-strikethrough-variant"},"stroller":{"parent":"baby-buggy"},"stroller-off":{"parent":"baby-carriage-off"},"study-chair":{"parent":"chair-rolling"},"style":{"parent":"palette-swatch"},"style-outline":{"parent":"palette-swatch-outline"},"subscriber-identification-module":{"parent":"sim"},"subscriber-identification-module-outline":{"parent":"sim-outline"},"subscriber-identity-module":{"parent":"sim"},"subscriber-identity-module-outline":{"parent":"sim-outline"},"subscriptions":{"parent":"playlist-check"},"subtasks":{"parent":"file-tree"},"subway-warning-variant":{"parent":"subway-alert-variant"},"subwoofer":{"parent":"smoke-detector"},"success":{"parent":"check"},"success-bold":{"parent":"check-bold"},"success-circle":{"parent":"check-circle"},"success-circle-outline":{"parent":"check-circle-outline"},"success-thick":{"parent":"check-bold"},"sucess-outline":{"parent":"check-outline"},"sugar":{"parent":"cube-outline"},"sugar-cube":{"parent":"cube-outline"},"sugar-cube-off":{"parent":"cube-off-outline"},"sugar-free":{"parent":"cube-off-outline"},"sugar-off":{"parent":"cube-off-outline"},"suit-clubs":{"parent":"cards-club"},"suit-diamonds":{"parent":"cards-diamond"},"suit-hearts":{"parent":"cards-heart"},"suit-spades":{"parent":"cards-spade"},"summation":{"parent":"sigma"},"sun-advisory":{"parent":"weather-sunny-alert"},"sun-azimuth":{"parent":"sun-compass"},"sun-moon-stars":{"parent":"theme-light-dark"},"sun-protection":{"parent":"shield-sun"},"sun-protection-outline":{"parent":"shield-sun-outline"},"sun-schedule":{"parent":"sun-clock"},"sun-schedule-outline":{"parent":"sun-clock-outline"},"sun-shade":{"parent":"awning"},"sun-shade-outline":{"parent":"awning-outline"},"sun-temperature":{"parent":"sun-thermometer"},"sun-time":{"parent":"sun-clock"},"sun-time-outline":{"parent":"sun-clock-outline"},"sunrise":{"parent":"weather-sunset-up"},"super-chat-for-good":{"parent":"charity"},"support":{"parent":"face-agent"},"surface-area":{"parent":"texture-box"},"suspended-light":{"parent":"chandelier"},"swap-calls":{"parent":"swap-vertical-variant"},"swap-driving-apps-wheel":{"parent":"gauge"},"swatch":{"parent":"receipt"},"swatch-outline":{"parent":"receipt-outline"},"swim-dive":{"parent":"diving"},"swimming-pool":{"parent":"pool"},"swiss-cheese":{"parent":"cheese"},"swiss-cross":{"parent":"hospital"},"swiss-cross-box":{"parent":"hospital-box"},"swiss-cross-box-outline":{"parent":"hospital-box-outline"},"switch-account":{"parent":"account-box-multiple"},"switch-camera":{"parent":"camera-switch"},"switch-video":{"parent":"video-switch"},"sword-fight":{"parent":"fencing"},"syllabary-katakana-half-width":{"parent":"syllabary-katakana-halfwidth"},"sync-disabled":{"parent":"sync-off"},"sync-problem":{"parent":"sync-alert"},"sync-warning":{"parent":"sync-alert"},"syringe":{"parent":"needle"},"syringe-off":{"parent":"needle-off"},"t-rex":{"parent":"google-downasaur"},"t-shirt-crew":{"parent":"tshirt-crew"},"t-shirt-crew-outline":{"parent":"tshirt-crew-outline"},"t-shirt-v":{"parent":"tshirt-v"},"t-shirt-v-outline":{"parent":"tshirt-v-outline"},"tab-add":{"parent":"tab-plus"},"tab-find":{"parent":"tab-search"},"table-add":{"parent":"table-plus"},"table-column-add-after":{"parent":"table-column-plus-after"},"table-column-add-before":{"parent":"table-column-plus-before"},"table-download":{"parent":"table-arrow-down"},"table-export":{"parent":"table-arrow-right"},"table-favorite":{"parent":"table-heart"},"table-help":{"parent":"table-question"},"table-import":{"parent":"table-arrow-left"},"table-large-add":{"parent":"table-large-plus"},"table-row-add-after":{"parent":"table-row-plus-after"},"table-row-add-before":{"parent":"table-row-plus-before"},"table-share":{"parent":"table-arrow-right"},"table-upload":{"parent":"table-arrow-up"},"table-user":{"parent":"table-account"},"tablet-mac":{"parent":"tablet-ipad"},"tablet-mobile-phone":{"parent":"tablet-cellphone"},"tablet-smartphone":{"parent":"tablet-cellphone"},"tag-add":{"parent":"tag-plus"},"tag-approve":{"parent":"tag-check"},"tag-approve-outline":{"parent":"tag-check-outline"},"tag-emoji":{"parent":"tag-faces"},"tag-emoticon":{"parent":"tag-faces"},"tag-find":{"parent":"tag-search"},"tag-find-outline":{"parent":"tag-search-outline"},"tags":{"parent":"tag-multiple"},"taka":{"parent":"currency-bdt"},"talk":{"parent":"account-voice"},"talking":{"parent":"account-voice"},"tanker":{"parent":"tanker-truck"},"taoism":{"parent":"yin-yang"},"tap":{"parent":"water-pump"},"tap-off":{"parent":"water-pump-off"},"tape":{"parent":"cassette"},"target-arrow":{"parent":"bullseye-arrow"},"target-user":{"parent":"target-account"},"task-add":{"parent":"checkbox-marked-circle-plus-outline"},"task-plus":{"parent":"checkbox-marked-circle-plus-outline"},"tea-kettle":{"parent":"kettle"},"tea-kettle-alert":{"parent":"kettle-alert"},"tea-kettle-alert-outline":{"parent":"kettle-alert-outline"},"tea-kettle-empty":{"parent":"kettle-outline"},"tea-kettle-empty-alert":{"parent":"kettle-alert-outline"},"tea-kettle-empty-off":{"parent":"kettle-off-outline"},"tea-kettle-empty-steam":{"parent":"kettle-steam-outline"},"tea-kettle-full":{"parent":"kettle"},"tea-kettle-full-alert":{"parent":"kettle-alert"},"tea-kettle-full-off":{"parent":"kettle-off"},"tea-kettle-full-steam":{"parent":"kettle-steam"},"tea-kettle-off":{"parent":"kettle-off"},"tea-kettle-off-outline":{"parent":"kettle-off-outline"},"tea-kettle-outline":{"parent":"kettle-outline"},"tea-kettle-steam":{"parent":"kettle-steam"},"tea-kettle-steam-outline":{"parent":"kettle-steam-outline"},"tea-off":{"parent":"coffee-off"},"tea-off-outline":{"parent":"coffee-off-outline"},"tea-to-go":{"parent":"coffee-to-go"},"tea-to-go-outline":{"parent":"coffee-to-go-outline"},"teach":{"parent":"human-male-board"},"teach-poll":{"parent":"human-male-board-poll"},"teacher":{"parent":"human-male-board"},"teaching":{"parent":"human-male-board"},"telecoil":{"parent":"ear-hearing-loop"},"teleconference":{"parent":"laptop-account"},"telephone":{"parent":"phone"},"telephone-bluetooth":{"parent":"phone-bluetooth"},"telephone-forward":{"parent":"phone-forward"},"telephone-hangup":{"parent":"phone-hangup"},"telephone-in-talk":{"parent":"phone-in-talk"},"telephone-in-talk-outline":{"parent":"phone-in-talk-outline"},"telephone-incoming":{"parent":"phone-incoming"},"telephone-lock":{"parent":"phone-lock"},"telephone-locked":{"parent":"phone-lock"},"telephone-outline":{"parent":"phone-outline"},"television-clean":{"parent":"television-shimmer"},"temperature":{"parent":"thermometer"},"temperature-add":{"parent":"thermometer-plus"},"temperature-alert":{"parent":"thermometer-alert"},"temperature-approve":{"parent":"thermometer-check"},"temperature-auto":{"parent":"thermometer-auto"},"temperature-bluetooth":{"parent":"thermometer-bluetooth"},"temperature-centigrade":{"parent":"temperature-celsius"},"temperature-check":{"parent":"thermometer-check"},"temperature-chevron-down":{"parent":"thermometer-chevron-down"},"temperature-chevron-up":{"parent":"thermometer-chevron-up"},"temperature-decrease":{"parent":"thermometer-chevron-down"},"temperature-high":{"parent":"thermometer-high"},"temperature-increase":{"parent":"thermometer-chevron-up"},"temperature-lines":{"parent":"thermometer-lines"},"temperature-low":{"parent":"thermometer-low"},"temperature-minus":{"parent":"thermometer-minus"},"temperature-off":{"parent":"thermometer-off"},"temperature-plus":{"parent":"thermometer-plus"},"temperature-warning":{"parent":"thermometer-alert"},"temple":{"parent":"synagogue"},"temple-outline":{"parent":"synagogue-outline"},"tempo":{"parent":"metronome"},"tempo-tick":{"parent":"metronome-tick"},"tennis-racket":{"parent":"tennis"},"tennis-racquet":{"parent":"tennis"},"tequila":{"parent":"liquor"},"terminal":{"parent":"console"},"terminal-line":{"parent":"console-line"},"terminal-network":{"parent":"console-network"},"terminal-network-outline":{"parent":"console-network-outline"},"terrace":{"parent":"balcony"},"text-subject":{"parent":"text-long"},"text-to-speech":{"parent":"microphone-message"},"text-to-speech-off":{"parent":"microphone-message-off"},"text-user":{"parent":"text-account"},"textarea":{"parent":"form-textarea"},"textbox":{"parent":"form-textbox"},"textbox-lock":{"parent":"form-textbox-lock"},"textbox-password":{"parent":"form-textbox-password"},"textsms":{"parent":"message-processing"},"thanksgiving":{"parent":"food-turkey"},"thanksgiving-dinner":{"parent":"food-turkey"},"theaters":{"parent":"filmstrip"},"theatre":{"parent":"drama-masks"},"theme":{"parent":"shape"},"theme-outline":{"parent":"shape-outline"},"thermometer-add":{"parent":"thermometer-plus"},"thermometer-approve":{"parent":"thermometer-check"},"thermometer-decrease":{"parent":"thermometer-chevron-down"},"thermometer-increase":{"parent":"thermometer-chevron-up"},"thermometer-warning":{"parent":"thermometer-alert"},"think-outline":{"parent":"thought-bubble-outline"},"thinking":{"parent":"thought-bubble"},"thinking-outline":{"parent":"thought-bubble-outline"},"this-side-down":{"parent":"archive-arrow-down"},"this-side-down-outline":{"parent":"archive-arrow-down-outline"},"this-side-up":{"parent":"archive-arrow-up"},"this-side-up-outline":{"parent":"archive-arrow-up-outline"},"three":{"parent":"tally-mark-3"},"thumbs-down":{"parent":"thumb-down"},"thumbs-down-outline":{"parent":"thumb-down-outline"},"thumbs-up":{"parent":"thumb-up"},"thumbs-up-outline":{"parent":"thumb-up-outline"},"thunder":{"parent":"lightning-bolt"},"thunder-circle":{"parent":"lightning-bolt-circle"},"thunder-outline":{"parent":"lightning-bolt-outline"},"tick":{"parent":"check"},"tick-all":{"parent":"check-all"},"tick-box-multiple-outline":{"parent":"checkbox-multiple-outline"},"tick-circle":{"parent":"check-circle"},"tick-circle-outline":{"parent":"check-circle-outline"},"tick-decagram":{"parent":"check-decagram"},"tick-network":{"parent":"check-network"},"tick-network-outline":{"parent":"check-network-outline"},"tick-outline":{"parent":"check-outline"},"ticket-user":{"parent":"ticket-account"},"ticks":{"parent":"check-all"},"tide-in":{"parent":"waves-arrow-left"},"tide-out":{"parent":"waves-arrow-right"},"till":{"parent":"cash-register"},"time-of-day":{"parent":"sun-clock"},"time-of-day-outline":{"parent":"sun-clock-outline"},"time-to-leave":{"parent":"car"},"timeline-help":{"parent":"timeline-question"},"timeline-help-outline":{"parent":"timeline-question-outline"},"timer-add":{"parent":"timer-plus"},"timer-add-outline":{"parent":"timer-plus-outline"},"timer-favorite":{"parent":"timer-star"},"timer-favorite-outline":{"parent":"timer-star-outline"},"timer-location":{"parent":"timer-marker"},"timer-location-outline":{"parent":"timer-marker-outline"},"timer-secure":{"parent":"timer-lock"},"timer-secure-outline":{"parent":"timer-lock-outline"},"timer-start":{"parent":"timer-play"},"timer-start-outline":{"parent":"timer-play-outline"},"timer-subtract":{"parent":"timer-minus"},"timer-subtract-outline":{"parent":"timer-minus-outline"},"timer-ten":{"parent":"timer-10"},"timer-three":{"parent":"timer-3"},"timer-tick":{"parent":"timer-check"},"timer-tick-outline":{"parent":"timer-check-outline"},"timezone":{"parent":"map-clock"},"timezone-outline":{"parent":"map-clock-outline"},"tipper-lorry":{"parent":"dump-truck"},"title-backward":{"parent":"skip-backward"},"title-forward":{"parent":"skip-forward"},"tm":{"parent":"trademark"},"to-do":{"parent":"format-list-checks"},"toc":{"parent":"table-of-contents"},"todo-add":{"parent":"checkbox-marked-circle-plus-outline"},"todo-plus":{"parent":"checkbox-marked-circle-plus-outline"},"toilet-paper":{"parent":"paper-roll"},"toilet-paper-outline":{"parent":"paper-roll-outline"},"toll":{"parent":"circle-multiple-outline"},"tombstone":{"parent":"grave-stone"},"tool-clock":{"parent":"wrench-clock"},"tool-time":{"parent":"wrench-clock"},"tooltip-add":{"parent":"tooltip-plus"},"tooltip-add-outline":{"parent":"tooltip-plus-outline"},"tooltip-help":{"parent":"tooltip-question"},"tooltip-help-outline":{"parent":"tooltip-question-outline"},"tooltip-outline-plus":{"parent":"tooltip-plus-outline"},"tooltip-person":{"parent":"tooltip-account"},"tooltip-user":{"parent":"tooltip-account"},"toque":{"parent":"chef-hat"},"torch-off":{"parent":"flashlight-off"},"touch-reading":{"parent":"braille"},"towing":{"parent":"tow-truck"},"toy-brick-location":{"parent":"toy-brick-marker"},"toy-brick-location-outline":{"parent":"toy-brick-marker-outline"},"toys":{"parent":"pinwheel"},"toys-outline":{"parent":"pinwheel-outline"},"track-changes":{"parent":"radar"},"traffic-signal":{"parent":"traffic-light"},"traffic-signal-outline":{"parent":"traffic-light-outline"},"tragedy":{"parent":"drama-masks"},"train-crossing-light":{"parent":"railroad-light"},"train-track":{"parent":"fence"},"train-track-electric":{"parent":"fence-electric"},"trans-fat":{"parent":"water"},"trans-fat-off":{"parent":"water-off"},"trans-fat-off-outline":{"parent":"water-off-outline"},"transfer-within-a-station":{"parent":"transit-transfer"},"transportation":{"parent":"train-car"},"trash":{"parent":"delete"},"trash-can-circle":{"parent":"delete-circle"},"trash-can-circle-outline":{"parent":"delete-circle-outline"},"trash-can-empty":{"parent":"delete-empty"},"trash-circle":{"parent":"delete-circle"},"trash-circle-outline":{"parent":"delete-circle-outline"},"trash-empty":{"parent":"delete-empty"},"trash-outline":{"parent":"delete-outline"},"trash-restore":{"parent":"delete-restore"},"trash-variant":{"parent":"delete-variant"},"trashcan":{"parent":"trash-can"},"trashcan-outline":{"parent":"trash-can-outline"},"travel":{"parent":"train-car"},"tray-download":{"parent":"tray-arrow-down"},"tray-upload":{"parent":"tray-arrow-up"},"treat":{"parent":"candy"},"treat-off":{"parent":"candy-off"},"treat-off-outline":{"parent":"candy-off-outline"},"treat-outline":{"parent":"candy-outline"},"trending-down-variant":{"parent":"triangle-small-down"},"trending-flat":{"parent":"trending-neutral"},"trending-up-variant":{"parent":"triangle-small-up"},"trike":{"parent":"atv"},"trolley":{"parent":"cart"},"trolley-add":{"parent":"cart-plus"},"trolley-arrow-down":{"parent":"cart-arrow-down"},"trolley-arrow-right":{"parent":"cart-arrow-right"},"trolley-arrow-up":{"parent":"cart-arrow-up"},"trolley-minus":{"parent":"cart-minus"},"trolley-off":{"parent":"cart-off"},"trolley-outline":{"parent":"cart-outline"},"trolley-percent":{"parent":"cart-percent"},"trolley-plus":{"parent":"cart-plus"},"trolley-remove":{"parent":"cart-remove"},"truck-add":{"parent":"truck-plus"},"truck-add-outline":{"parent":"truck-plus-outline"},"truck-error":{"parent":"truck-alert"},"truck-error-outline":{"parent":"truck-alert-outline"},"truck-flatbed-tow":{"parent":"truck-flatbed"},"truck-freezer":{"parent":"truck-snowflake"},"truck-refrigerator":{"parent":"truck-snowflake"},"truck-shipping":{"parent":"truck-cargo-container"},"truck-subtract":{"parent":"truck-minus"},"truck-subtract-outline":{"parent":"truck-minus-outline"},"truck-tick":{"parent":"truck-check"},"tts":{"parent":"microphone-message"},"tts-off":{"parent":"microphone-message-off"},"tube":{"parent":"subway"},"tube-variant":{"parent":"subway-variant"},"tuner":{"parent":"knob"},"turkey-leg":{"parent":"food-drumstick"},"turkey-leg-off":{"parent":"food-drumstick-off"},"turkey-leg-off-outline":{"parent":"food-drumstick-off-outline"},"turkey-leg-outline":{"parent":"food-drumstick-outline"},"turn-left":{"parent":"arrow-left-top"},"turn-left-bold":{"parent":"arrow-left-top-bold"},"turn-right":{"parent":"arrow-right-top"},"turn-right-bold":{"parent":"arrow-right-top-bold"},"turned-in":{"parent":"bookmark"},"turned-in-not":{"parent":"bookmark-outline"},"tux":{"parent":"linux"},"tv":{"parent":"television"},"tv-box":{"parent":"television-box"},"tv-classic":{"parent":"television-classic"},"tv-classic-off":{"parent":"television-classic-off"},"tv-guide":{"parent":"television-box"},"tv-off":{"parent":"television-off"},"twitter-retweet":{"parent":"repeat-variant"},"two":{"parent":"tally-mark-2"},"two-wheeler":{"parent":"atv"},"tyrannosaurus-rex":{"parent":"google-downasaur"},"tyre":{"parent":"tire"},"u-turn-left":{"parent":"arrow-u-down-left"},"u-turn-left-bold":{"parent":"arrow-u-down-left-bold"},"u-turn-right":{"parent":"arrow-u-down-right"},"u-turn-right-bold":{"parent":"arrow-u-down-right-bold"},"uac":{"parent":"security"},"uac-network":{"parent":"security-network"},"uhd":{"parent":"ultra-high-definition"},"ultraviolet":{"parent":"sun-wireless"},"ultraviolet-outline":{"parent":"sun-wireless-outline"},"unarchive":{"parent":"package-up"},"underground":{"parent":"subway"},"underground-variant":{"parent":"subway-variant"},"underwear":{"parent":"lingerie"},"unidentified-flying-object":{"parent":"ufo"},"unidentified-flying-object-outline":{"parent":"ufo-outline"},"university":{"parent":"school"},"university-outline":{"parent":"school-outline"},"unlocked":{"parent":"lock-open"},"unlocked-add":{"parent":"lock-open-plus"},"unlocked-add-outline":{"parent":"lock-open-plus-outline"},"unlocked-alert":{"parent":"lock-open-alert"},"unlocked-alert-outline":{"parent":"lock-open-alert-outline"},"unlocked-check":{"parent":"lock-open-check"},"unlocked-check-outline":{"parent":"lock-open-check-outline"},"unlocked-minus":{"parent":"lock-open-minus"},"unlocked-minus-outline":{"parent":"lock-open-minus-outline"},"unlocked-outline":{"parent":"lock-open-outline"},"unlocked-plus":{"parent":"lock-open-plus"},"unlocked-plus-outline":{"parent":"lock-open-plus-outline"},"unlocked-remove":{"parent":"lock-open-remove"},"unlocked-remove-outline":{"parent":"lock-open-remove-outline"},"unlocked-variant":{"parent":"lock-open-variant"},"unlocked-variant-outline":{"parent":"lock-open-variant-outline"},"unlocked-warning":{"parent":"lock-open-alert"},"unlocked-warning-outline":{"parent":"lock-open-alert-outline"},"unreal-engine":{"parent":"unreal"},"unsecure":{"parent":"lock-off"},"unsecure-outline":{"parent":"lock-off-outline"},"unwrap":{"parent":"wrap-disabled"},"uplay":{"parent":"ubisoft"},"uploads":{"parent":"upload-multiple"},"user":{"parent":"account"},"user-access-control":{"parent":"security"},"user-add":{"parent":"account-plus"},"user-add-outline":{"parent":"account-plus-outline"},"user-alert":{"parent":"account-alert"},"user-alert-outline":{"parent":"account-alert-outline"},"user-arrow-left":{"parent":"account-arrow-left"},"user-arrow-left-outline":{"parent":"account-arrow-left-outline"},"user-arrow-right":{"parent":"account-arrow-right"},"user-arrow-right-outline":{"parent":"account-arrow-right-outline"},"user-badge":{"parent":"badge-account"},"user-badge-alert":{"parent":"badge-account-alert"},"user-badge-alert-outline":{"parent":"badge-account-alert-outline"},"user-badge-outline":{"parent":"badge-account-outline"},"user-badge-warning":{"parent":"badge-account-alert"},"user-badge-warning-outline":{"parent":"badge-account-alert-outline"},"user-block":{"parent":"account-cancel"},"user-block-outline":{"parent":"account-cancel-outline"},"user-box":{"parent":"account-box"},"user-box-multiple":{"parent":"account-box-multiple"},"user-box-outline":{"parent":"account-box-outline"},"user-boxes":{"parent":"account-box-multiple"},"user-cancel":{"parent":"account-cancel"},"user-cancel-outline":{"parent":"account-cancel-outline"},"user-card-details":{"parent":"card-account-details"},"user-card-details-outline":{"parent":"card-account-details-outline"},"user-check":{"parent":"account-check"},"user-check-outline":{"parent":"account-check-outline"},"user-child":{"parent":"account-child"},"user-child-circle":{"parent":"account-child-circle"},"user-circle":{"parent":"account-circle"},"user-circle-outline":{"parent":"account-circle-outline"},"user-clock":{"parent":"account-clock"},"user-clock-outline":{"parent":"account-clock-outline"},"user-convert":{"parent":"account-convert"},"user-details":{"parent":"account-details"},"user-details-outline":{"parent":"account-details-outline"},"user-edit":{"parent":"account-edit"},"user-group":{"parent":"account-group"},"user-group-outline":{"parent":"account-group-outline"},"user-heart":{"parent":"account-heart"},"user-heart-outline":{"parent":"account-heart-outline"},"user-help":{"parent":"account-question"},"user-help-outline":{"parent":"account-question-outline"},"user-key":{"parent":"account-key"},"user-key-outline":{"parent":"account-key-outline"},"user-lock":{"parent":"account-lock"},"user-lock-open":{"parent":"account-lock-open"},"user-lock-open-outline":{"parent":"account-lock-open-outline"},"user-lock-outline":{"parent":"account-lock-outline"},"user-minus":{"parent":"account-minus"},"user-minus-outline":{"parent":"account-minus-outline"},"user-multiple":{"parent":"account-multiple"},"user-multiple-add":{"parent":"account-multiple-plus"},"user-multiple-add-outline":{"parent":"account-multiple-plus-outline"},"user-multiple-check":{"parent":"account-multiple-check"},"user-multiple-check-outline":{"parent":"account-multiple-check-outline"},"user-multiple-minus":{"parent":"account-multiple-minus"},"user-multiple-minus-outline":{"parent":"account-multiple-minus-outline"},"user-multiple-outline":{"parent":"account-multiple-outline"},"user-multiple-plus":{"parent":"account-multiple-plus"},"user-multiple-plus-outline":{"parent":"account-multiple-plus-outline"},"user-multiple-remove":{"parent":"account-multiple-remove"},"user-multiple-remove-outline":{"parent":"account-multiple-remove-outline"},"user-multiple-tick":{"parent":"account-multiple-check"},"user-multiple-tick-outline":{"parent":"account-multiple-check-outline"},"user-network":{"parent":"account-network"},"user-network-outline":{"parent":"account-network-outline"},"user-off":{"parent":"account-off"},"user-off-outline":{"parent":"account-off-outline"},"user-online":{"parent":"account-badge"},"user-online-outline":{"parent":"account-badge-outline"},"user-outline":{"parent":"account-outline"},"user-plus":{"parent":"account-plus"},"user-plus-outline":{"parent":"account-plus-outline"},"user-question":{"parent":"account-question"},"user-question-outline":{"parent":"account-question-outline"},"user-remove":{"parent":"account-remove"},"user-remove-outline":{"parent":"account-remove-outline"},"user-search":{"parent":"account-search"},"user-search-outline":{"parent":"account-search-outline"},"user-settings":{"parent":"account-settings"},"user-settings-variant":{"parent":"account-details"},"user-star":{"parent":"account-star"},"user-star-outline":{"parent":"account-star-outline"},"user-supervisor":{"parent":"account-supervisor"},"user-supervisor-circle":{"parent":"account-supervisor-circle"},"user-switch":{"parent":"account-switch"},"user-tick":{"parent":"account-check"},"user-tick-outline":{"parent":"account-check-outline"},"user-tie":{"parent":"account-tie"},"user-unlocked":{"parent":"account-lock-open"},"user-unlocked-outline":{"parent":"account-lock-open-outline"},"user-warning":{"parent":"account-alert"},"user-warning-outline":{"parent":"account-alert-outline"},"users":{"parent":"account-multiple"},"users-add":{"parent":"account-multiple-plus"},"users-add-outline":{"parent":"account-multiple-plus-outline"},"users-check":{"parent":"account-multiple-check"},"users-check-outline":{"parent":"account-multiple-check-outline"},"users-group":{"parent":"account-group"},"users-group-outline":{"parent":"account-group-outline"},"users-minus":{"parent":"account-multiple-minus"},"users-minus-outline":{"parent":"account-multiple-minus-outline"},"users-outline":{"parent":"account-multiple-outline"},"users-plus":{"parent":"account-multiple-plus"},"users-plus-outline":{"parent":"account-multiple-plus-outline"},"users-switch":{"parent":"account-switch"},"users-tick":{"parent":"account-multiple-check"},"users-tick-outline":{"parent":"account-multiple-check-outline"},"uv-ray":{"parent":"sun-wireless"},"uv-ray-outline":{"parent":"sun-wireless-outline"},"vacuum-cleaner":{"parent":"vacuum"},"vacuum-cleaner-outline":{"parent":"vacuum-outline"},"van-candy":{"parent":"van-utility"},"vector-point-add":{"parent":"vector-point-plus"},"vector-square-add":{"parent":"vector-square-plus"},"vector-square-delete":{"parent":"vector-square-remove"},"vector-square-subtract":{"parent":"vector-square-minus"},"vegetarian":{"parent":"square-circle"},"velocity":{"parent":"bike-fast"},"venn-diagram":{"parent":"set-none"},"ventilation":{"parent":"hvac"},"ventilation-off":{"parent":"hvac-off"},"venus":{"parent":"gender-female"},"veranda":{"parent":"balcony"},"verified":{"parent":"check-decagram"},"verified-user":{"parent":"shield-check"},"vertical-rotate-clockwise":{"parent":"axis-z-rotate-clockwise"},"vertical-rotate-counterclockwise":{"parent":"axis-z-rotate-counterclockwise"},"vespa":{"parent":"moped"},"vespa-electric":{"parent":"moped-electric"},"vespa-electric-outline":{"parent":"moped-electric-outline"},"vespa-outline":{"parent":"moped-outline"},"vga":{"parent":"serial-port"},"vhs-cassette":{"parent":"vhs"},"vhs-tape":{"parent":"vhs"},"vibration":{"parent":"vibrate"},"video-add":{"parent":"video-plus"},"video-call":{"parent":"video-plus"},"video-chat":{"parent":"laptop-account"},"video-classic":{"parent":"video-vintage"},"video-film":{"parent":"video-vintage"},"video-home-system":{"parent":"vhs"},"video-input-composite":{"parent":"video-input-component"},"video-input-ypbpr":{"parent":"video-input-component"},"video-location":{"parent":"video-marker"},"video-location-outline":{"parent":"video-marker-outline"},"video-remove":{"parent":"video-minus"},"video-stabilisation":{"parent":"video-stabilization"},"video-user":{"parent":"video-account"},"video-youtube":{"parent":"youtube"},"videocam":{"parent":"video"},"videocam-off":{"parent":"video-off"},"videocam-off-outline":{"parent":"video-off-outline"},"videocam-outline":{"parent":"video-outline"},"view-arrow-left":{"parent":"eye-arrow-left"},"view-arrow-left-outline":{"parent":"eye-arrow-left-outline"},"view-arrow-right":{"parent":"eye-arrow-right"},"view-arrow-right-outline":{"parent":"eye-arrow-right-outline"},"view-grid-add":{"parent":"view-grid-plus"},"view-in-ar":{"parent":"cube-scan"},"view-in-augmented-reality":{"parent":"cube-scan"},"view-refresh":{"parent":"eye-refresh"},"view-refresh-outline":{"parent":"eye-refresh-outline"},"vinyl":{"parent":"album"},"virtual-meeting":{"parent":"laptop-account"},"virtual-private-network":{"parent":"vpn"},"visibility":{"parent":"eye"},"visibility-off":{"parent":"eye-off"},"visibility-off-outline":{"parent":"eye-off-outline"},"visibility-outline":{"parent":"eye-outline"},"visual-studio":{"parent":"microsoft-visual-studio"},"visual-studio-code":{"parent":"microsoft-visual-studio-code"},"visualstudio":{"parent":"microsoft-visual-studio"},"vitals":{"parent":"pulse"},"vkontakte":{"parent":"vk"},"vkontakte-box":{"parent":"vk-box"},"vkontakte-circle":{"parent":"vk-circle"},"voice":{"parent":"account-voice"},"voice-chat":{"parent":"message-video"},"voice-off":{"parent":"account-voice-off"},"volume-control":{"parent":"knob"},"volume-decrease":{"parent":"volume-minus"},"volume-increase":{"parent":"volume-plus"},"volume-knob":{"parent":"knob"},"volunteer":{"parent":"hand-heart"},"vote-recount":{"parent":"ballot-recount"},"vote-recount-outline":{"parent":"ballot-recount-outline"},"voucher":{"parent":"ticket-percent"},"voucher-outline":{"parent":"ticket-percent-outline"},"voyager":{"parent":"ship-wheel"},"vpn-key":{"parent":"key"},"vr":{"parent":"virtual-reality"},"vs-code":{"parent":"microsoft-visual-studio-code"},"vue-js":{"parent":"vuejs"},"w3c":{"parent":"semantic-web"},"walker":{"parent":"walk"},"walking":{"parent":"walk"},"wall-charger":{"parent":"ev-station"},"wallbox":{"parent":"ev-station"},"wallet-add":{"parent":"wallet-plus"},"wallet-add-outline":{"parent":"wallet-plus-outline"},"wallet-product":{"parent":"google-wallet"},"wand":{"parent":"auto-fix"},"warmth":{"parent":"heat-wave"},"warning":{"parent":"alert"},"warning-box":{"parent":"alert-box"},"warning-box-outline":{"parent":"alert-box-outline"},"warning-circle":{"parent":"alert-circle"},"warning-circle-outline":{"parent":"alert-circle-outline"},"warning-decagram":{"parent":"alert-decagram"},"warning-decagram-outline":{"parent":"alert-decagram-outline"},"warning-lights":{"parent":"hazard-lights"},"warning-octagon":{"parent":"alert-octagon"},"warning-octagon-outline":{"parent":"alert-octagon-outline"},"warning-octagram":{"parent":"alert-octagram"},"warning-octagram-outline":{"parent":"alert-octagram-outline"},"warning-outline":{"parent":"alert-outline"},"washer-fluid":{"parent":"wiper-wash"},"washer-fluid-alert":{"parent":"wiper-wash-alert"},"washer-fluid-low":{"parent":"wiper-wash-alert"},"watch-later":{"parent":"clock"},"water-boiler-error":{"parent":"water-boiler-alert"},"water-drop":{"parent":"water"},"water-drop-outline":{"parent":"water-outline"},"water-evaporation":{"parent":"waves-arrow-up"},"water-filter":{"parent":"air-filter"},"water-flow":{"parent":"waves-arrow-left"},"water-heater":{"parent":"water-boiler"},"water-heater-alert":{"parent":"water-boiler-alert"},"water-heater-auto":{"parent":"water-boiler-auto"},"water-heater-error":{"parent":"water-boiler-alert"},"water-heater-off":{"parent":"water-boiler-off"},"water-recycle":{"parent":"water-sync"},"water-reuse":{"parent":"water-sync"},"water-saver":{"parent":"water-opacity"},"water-temperature":{"parent":"thermometer-water"},"water-temperature-outline":{"parent":"water-thermometer-outline"},"water-transparent":{"parent":"water-opacity"},"water-truck":{"parent":"tanker-truck"},"water-turbine":{"parent":"hydro-power"},"watering-pot":{"parent":"watering-can"},"watering-pot-outline":{"parent":"watering-can-outline"},"watermill":{"parent":"hydro-power"},"wb-auto":{"parent":"white-balance-auto"},"wb-cloudy":{"parent":"cloud"},"wb-incandescent":{"parent":"white-balance-incandescent"},"wb-iridescent":{"parent":"white-balance-iridescent"},"wb-sunny":{"parent":"white-balance-sunny"},"wc":{"parent":"human-male-female"},"weather-date":{"parent":"weather-cloudy-clock"},"weather-drizzle":{"parent":"weather-rainy"},"weather-flash":{"parent":"weather-lightning"},"weather-heavy-rain":{"parent":"weather-pouring"},"weather-history":{"parent":"weather-cloudy-clock"},"weather-mist":{"parent":"weather-fog"},"weather-partlycloudy":{"parent":"weather-partly-cloudy"},"weather-sleet":{"parent":"weather-snowy-rainy"},"weather-spitting":{"parent":"weather-rainy"},"weather-storm":{"parent":"weather-lightning"},"weather-sun-wireless":{"parent":"sun-wireless"},"weather-sun-wireless-outline":{"parent":"sun-wireless-outline"},"weather-thunder":{"parent":"weather-lightning"},"weather-thunder-rainy":{"parent":"weather-lightning-rainy"},"weather-time":{"parent":"weather-cloudy-clock"},"web-asset":{"parent":"application-outline"},"web-camera":{"parent":"webcam"},"web-ontology-language":{"parent":"semantic-web"},"weed":{"parent":"cannabis"},"weight-kg":{"parent":"weight-kilogram"},"weight-lb":{"parent":"weight-pound"},"weights":{"parent":"dumbbell"},"whatshot":{"parent":"fire"},"wheat":{"parent":"barley"},"wheat-off":{"parent":"barley-off"},"wheel":{"parent":"tire"},"where-to-vote":{"parent":"map-marker-check"},"where-to-vote-outline":{"parent":"map-marker-check-outline"},"whiff-whaff":{"parent":"table-tennis"},"whiskey":{"parent":"liquor"},"whiteboard":{"parent":"human-male-board"},"wide-area-network":{"parent":"wan"},"widget-arc":{"parent":"chart-arc"},"widget-areaspline":{"parent":"chart-areaspline"},"widget-areaspline-variant":{"parent":"chart-areaspline-variant"},"widget-bar":{"parent":"chart-bar"},"widget-bar-stacked":{"parent":"chart-bar-stacked"},"widget-bell-curve":{"parent":"chart-bell-curve"},"widget-bell-curve-cumulative":{"parent":"chart-bell-curve-cumulative"},"widget-box":{"parent":"chart-box"},"widget-box-outline":{"parent":"chart-box-outline"},"widget-box-plus-outline":{"parent":"chart-box-plus-outline"},"widget-bubble":{"parent":"chart-bubble"},"widget-donut":{"parent":"chart-donut"},"widget-donut-variant":{"parent":"chart-donut-variant"},"widget-gantt":{"parent":"chart-gantt"},"widget-histogram":{"parent":"chart-histogram"},"widget-line":{"parent":"chart-line"},"widget-line-shimmer":{"parent":"chart-timeline-variant-shimmer"},"widget-line-stacked":{"parent":"chart-line-stacked"},"widget-line-variant":{"parent":"chart-line-variant"},"widget-multiline":{"parent":"chart-multiline"},"widget-multiple":{"parent":"chart-multiple"},"widget-pie":{"parent":"chart-pie"},"widget-pie-outline":{"parent":"chart-pie-outline"},"widget-ppf":{"parent":"chart-ppf"},"widget-sankey":{"parent":"chart-sankey"},"widget-sankey-variant":{"parent":"chart-sankey-variant"},"widget-scatter-plot":{"parent":"chart-scatter-plot"},"widget-scatter-plot-hexbin":{"parent":"chart-scatter-plot-hexbin"},"widget-timeline":{"parent":"chart-timeline"},"widget-timeline-variant":{"parent":"chart-timeline-variant"},"widget-timeline-variant-shimmer":{"parent":"chart-timeline-variant-shimmer"},"widget-tree":{"parent":"chart-tree"},"wifi-favorite":{"parent":"wifi-star"},"wifi-favourite":{"parent":"wifi-star"},"wifi-location":{"parent":"wifi-marker"},"wifi-strength-0":{"parent":"wifi-strength-outline"},"wifi-strength-0-alert":{"parent":"wifi-strength-alert-outline"},"wifi-strength-0-lock":{"parent":"wifi-strength-lock-outline"},"wifi-strength-0-warning":{"parent":"wifi-strength-alert-outline"},"wifi-strength-1-warning":{"parent":"wifi-strength-1-alert"},"wifi-strength-2-warning":{"parent":"wifi-strength-2-alert"},"wifi-strength-3-warning":{"parent":"wifi-strength-3-alert"},"wifi-strength-4-warning":{"parent":"wifi-strength-4-alert"},"wifi-strength-warning-outline":{"parent":"wifi-strength-alert-outline"},"wii":{"parent":"nintendo-wii"},"wiiu":{"parent":"nintendo-wiiu"},"wildfire":{"parent":"pine-tree-fire"},"wind-electricity":{"parent":"wind-power"},"wind-electricity-outline":{"parent":"wind-power-outline"},"wind-energy":{"parent":"wind-power"},"wind-energy-outline":{"parent":"wind-power-outline"},"wind-power-alert":{"parent":"wind-turbine-alert"},"wind-power-check":{"parent":"wind-turbine-check"},"wind-power-success":{"parent":"wind-turbine-check"},"wind-turbine-success":{"parent":"wind-turbine-check"},"wind-turbine-warning":{"parent":"wind-turbine-alert"},"window":{"parent":"blinds-vertical"},"windows":{"parent":"microsoft-windows"},"windows-classic":{"parent":"microsoft-windows-classic"},"windy":{"parent":"weather-dust"},"wine":{"parent":"liquor"},"wiper-fluid":{"parent":"wiper-wash"},"wiper-fluid-alert":{"parent":"wiper-wash-alert"},"wiper-fluid-low":{"parent":"wiper-wash-alert"},"wireless":{"parent":"access-point"},"wish":{"parent":"oil-lamp"},"woman":{"parent":"human-female"},"woman-child":{"parent":"human-female-boy"},"woman-woman":{"parent":"human-female-female"},"women":{"parent":"human-female-female"},"won":{"parent":"currency-krw"},"work":{"parent":"briefcase"},"work-outline":{"parent":"briefcase-outline"},"worker":{"parent":"account-hard-hat"},"worker-outline":{"parent":"account-hard-hat-outline"},"workflow":{"parent":"sitemap"},"workflow-outline":{"parent":"sitemap-outline"},"world":{"parent":"earth"},"world-arrow-right":{"parent":"earth-arrow-right"},"world-box":{"parent":"earth-box"},"world-box-minus":{"parent":"earth-box-minus"},"world-box-off":{"parent":"earth-box-off"},"world-box-plus":{"parent":"earth-box-plus"},"world-box-remove":{"parent":"earth-box-remove"},"world-minus":{"parent":"earth-minus"},"world-off":{"parent":"earth-off"},"world-plus":{"parent":"earth-plus"},"world-remove":{"parent":"earth-remove"},"world-wide-web":{"parent":"web"},"wrench-settings":{"parent":"wrench-cog"},"wrench-settings-outline":{"parent":"wrench-cog-outline"},"wrench-time":{"parent":"wrench-clock"},"wrestling":{"parent":"kabaddi"},"writing-system-arabic":{"parent":"abjad-arabic"},"writing-system-aurebesh":{"parent":"alphabet-aurebesh"},"writing-system-cjk":{"parent":"ideogram-cjk"},"writing-system-cjk-variant":{"parent":"ideogram-cjk-variant"},"writing-system-cyrillic":{"parent":"alphabet-cyrillic"},"writing-system-devanagari":{"parent":"abugida-devanagari"},"writing-system-greek":{"parent":"alphabet-greek"},"writing-system-hangul":{"parent":"syllabary-hangul"},"writing-system-hebrew":{"parent":"abjad-hebrew"},"writing-system-hiragana":{"parent":"syllabary-hiragana"},"writing-system-katakana":{"parent":"syllabary-katakana"},"writing-system-katakana-half-width":{"parent":"syllabary-katakana-halfwidth"},"writing-system-latin":{"parent":"alphabet-latin"},"writing-system-piqad":{"parent":"alphabet-piqad"},"writing-system-tengwar":{"parent":"alphabet-tengwar"},"writing-system-thai":{"parent":"abugida-thai"},"x-ray":{"parent":"skull-scan"},"x-ray-box":{"parent":"radiology-box"},"x-ray-box-outline":{"parent":"radiology-box-outline"},"x-ray-outline":{"parent":"skull-scan-outline"},"xaml":{"parent":"language-xaml"},"xbox":{"parent":"microsoft-xbox"},"xbox-controller":{"parent":"microsoft-xbox-controller"},"xbox-controller-battery-alert":{"parent":"microsoft-xbox-controller-battery-alert"},"xbox-controller-battery-charging":{"parent":"microsoft-xbox-controller-battery-charging"},"xbox-controller-battery-empty":{"parent":"microsoft-xbox-controller-battery-empty"},"xbox-controller-battery-full":{"parent":"microsoft-xbox-controller-battery-full"},"xbox-controller-battery-low":{"parent":"microsoft-xbox-controller-battery-low"},"xbox-controller-battery-medium":{"parent":"microsoft-xbox-controller-battery-medium"},"xbox-controller-battery-unknown":{"parent":"microsoft-xbox-controller-battery-unknown"},"xbox-controller-battery-warning":{"parent":"microsoft-xbox-controller-battery-alert"},"xbox-controller-menu":{"parent":"microsoft-xbox-controller-menu"},"xbox-controller-off":{"parent":"microsoft-xbox-controller-off"},"xbox-controller-view":{"parent":"microsoft-xbox-controller-view"},"xbox-live":{"parent":"microsoft-xbox"},"xi":{"parent":"currency-eth"},"xing-box":{"parent":"xing"},"yen":{"parent":"currency-jpy"},"youtube-creator-studio":{"parent":"youtube-studio"},"youtube-play":{"parent":"youtube"},"youtube-sports":{"parent":"basketball"},"yuan":{"parent":"currency-cny"},"zelda":{"parent":"triforce"},"zhuyin":{"parent":"furigana-vertical"},"zoom-in":{"parent":"magnify-plus"},"zoom-in-cursor":{"parent":"magnify-plus-cursor"},"zoom-in-outline":{"parent":"magnify-plus-outline"},"zoom-out":{"parent":"magnify-minus"},"zoom-out-cursor":{"parent":"magnify-minus-cursor"},"zoom-out-outline":{"parent":"magnify-minus-outline"},"zoom-plus":{"parent":"loupe"},"zorro-mask":{"parent":"domino-mask"},"zwave":{"parent":"z-wave"}},"lastModified":1673788155,"width":24,"height":24}); +addCollection({"prefix":"custom","lastModified":1675685825,"icons":{"vertical-nav-header-arrow":{"body":"","width":24,"height":24}}}); diff --git a/packages/dashboard/src/plugins/vuetify/@iconify/tsconfig.json b/packages/dashboard/src/plugins/vuetify/@iconify/tsconfig.json new file mode 100644 index 00000000..05547e3c --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@iconify/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "CommonJS", + "declaration": false, + "declarationMap": false, + "sourceMap": false, + "composite": false, + "strict": true, + "moduleResolution": "node", + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "importsNotUsedAsValues": "error" + }, + "exclude": [ + "./*.js" + ] +} diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/components.ts b/packages/dashboard/src/plugins/vuetify/@layouts/components.ts new file mode 100644 index 00000000..6a1a4647 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/components.ts @@ -0,0 +1,11 @@ +export { default as HorizontalNav } from './components/HorizontalNav.vue' +export { default as HorizontalNavGroup } from './components/HorizontalNavGroup.vue' +export { default as HorizontalNavLayout } from './components/HorizontalNavLayout.vue' +export { default as HorizontalNavLink } from './components/HorizontalNavLink.vue' +export { default as HorizontalNavPopper } from './components/HorizontalNavPopper.vue' +export { default as TransitionExpand } from './components/TransitionExpand.vue' +export { default as VerticalNav } from './components/VerticalNav.vue' +export { default as VerticalNavGroup } from './components/VerticalNavGroup.vue' +export { default as VerticalNavLayout } from './components/VerticalNavLayout.vue' +export { default as VerticalNavLink } from './components/VerticalNavLink.vue' +export { default as VerticalNavSectionTitle } from './components/VerticalNavSectionTitle.vue' diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNav.vue b/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNav.vue new file mode 100644 index 00000000..6ff26688 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNav.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNavGroup.vue b/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNavGroup.vue new file mode 100644 index 00000000..a8dc35b0 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNavGroup.vue @@ -0,0 +1,111 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNavLayout.vue b/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNavLayout.vue new file mode 100644 index 00000000..17b07b71 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNavLayout.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNavLink.vue b/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNavLink.vue new file mode 100644 index 00000000..8e5d98e2 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNavLink.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNavPopper.vue b/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNavPopper.vue new file mode 100644 index 00000000..d94ec1f5 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/components/HorizontalNavPopper.vue @@ -0,0 +1,168 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/components/TransitionExpand.vue b/packages/dashboard/src/plugins/vuetify/@layouts/components/TransitionExpand.vue new file mode 100644 index 00000000..5cae328a --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/components/TransitionExpand.vue @@ -0,0 +1,92 @@ + + + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/components/VNodeRenderer.tsx b/packages/dashboard/src/plugins/vuetify/@layouts/components/VNodeRenderer.tsx new file mode 100644 index 00000000..c275fe34 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/components/VNodeRenderer.tsx @@ -0,0 +1,17 @@ +import type { PropType, VNode } from 'vue' + +export const VNodeRenderer = defineComponent({ + name: 'VNodeRenderer', + props: { + nodes: { + type: [Array, Object] as PropType, + required: true, + }, + }, + setup(props) { + return () => props.nodes + }, +}) + +// eslint-disable-next-line @typescript-eslint/no-redeclare +export type VNodeRenderer = InstanceType diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/components/VerticalNav.vue b/packages/dashboard/src/plugins/vuetify/@layouts/components/VerticalNav.vue new file mode 100644 index 00000000..ce516ca6 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/components/VerticalNav.vue @@ -0,0 +1,172 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/components/VerticalNavGroup.vue b/packages/dashboard/src/plugins/vuetify/@layouts/components/VerticalNavGroup.vue new file mode 100644 index 00000000..9228d133 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/components/VerticalNavGroup.vue @@ -0,0 +1,253 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/components/VerticalNavLayout.vue b/packages/dashboard/src/plugins/vuetify/@layouts/components/VerticalNavLayout.vue new file mode 100644 index 00000000..459ff6c0 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/components/VerticalNavLayout.vue @@ -0,0 +1,250 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/components/VerticalNavLink.vue b/packages/dashboard/src/plugins/vuetify/@layouts/components/VerticalNavLink.vue new file mode 100644 index 00000000..978b14d7 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/components/VerticalNavLink.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/components/VerticalNavSectionTitle.vue b/packages/dashboard/src/plugins/vuetify/@layouts/components/VerticalNavSectionTitle.vue new file mode 100644 index 00000000..d0c36877 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/components/VerticalNavSectionTitle.vue @@ -0,0 +1,38 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/composable/useDynamicVhCssProperty.ts b/packages/dashboard/src/plugins/vuetify/@layouts/composable/useDynamicVhCssProperty.ts new file mode 100644 index 00000000..066edac5 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/composable/useDynamicVhCssProperty.ts @@ -0,0 +1,14 @@ +// Thanks: https://css-tricks.com/the-trick-to-viewport-units-on-mobile/ +export const useDynamicVhCssProperty = () => { + const vh = ref(0) + + const updateVh = () => { + vh.value = window.innerHeight * 0.01 + document.documentElement.style.setProperty('--vh', `${vh.value}px`) + } + + tryOnBeforeMount(() => { + updateVh() + useEventListener('resize', updateVh) + }) +} diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/composable/useLayouts.ts b/packages/dashboard/src/plugins/vuetify/@layouts/composable/useLayouts.ts new file mode 100644 index 00000000..5e795ba0 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/composable/useLayouts.ts @@ -0,0 +1,206 @@ +import type { MaybeRef } from '@vueuse/shared' +import type { Ref } from 'vue' +import { AppContentLayoutNav, NavbarType } from '../enums' +import { config } from '@layouts/config' +import { injectionKeyIsVerticalNavHovered } from '@layouts' + +export const useLayouts = () => { + const navbarType = computed({ + get() { + return config.navbar.type.value + }, + set(value: typeof config.navbar.type.value) { + config.navbar.type.value = value + }, + }) + + const isNavbarBlurEnabled = computed({ + get() { + return config.navbar.navbarBlur.value + }, + set(value: typeof config.navbar.navbarBlur.value) { + config.navbar.navbarBlur.value = value + localStorage.setItem(`${config.app.title}-navbarBlur`, value.toString()) + }, + }) + + const _setAppDir = (dir: 'ltr' | 'rtl') => { + document.documentElement.setAttribute('dir', dir) + } + + const footerType = computed({ + get() { + return config.footer.type.value + }, + set(value: typeof config.footer.type.value) { + config.footer.type.value = value + }, + }) + + const isVerticalNavCollapsed = computed({ + get() { + return config.verticalNav.isVerticalNavCollapsed.value + }, + set(val: typeof config.verticalNav.isVerticalNavCollapsed.value) { + config.verticalNav.isVerticalNavCollapsed.value = val + localStorage.setItem(`${config.app.title}-isVerticalNavCollapsed`, val.toString()) + }, + }) + + const appContentWidth = computed({ + get() { + return config.app.contentWidth.value + }, + set(val: typeof config.app.contentWidth.value) { + config.app.contentWidth.value = val + localStorage.setItem(`${config.app.title}-contentWidth`, val.toString()) + }, + }) + + const appContentLayoutNav = computed({ + get() { + return config.app.contentLayoutNav.value + }, + set(val: typeof config.app.contentLayoutNav.value) { + config.app.contentLayoutNav.value = val + + // If Navbar type is hidden while switching to horizontal nav => Reset it to sticky + if (val === AppContentLayoutNav.Horizontal) { + if (navbarType.value === NavbarType.Hidden) + navbarType.value = NavbarType.Sticky + + isVerticalNavCollapsed.value = false + } + }, + }) + + const horizontalNavType = computed({ + get() { + return config.horizontalNav.type.value + }, + set(value: typeof config.horizontalNav.type.value) { + config.horizontalNav.type.value = value + }, + }) + + const isLessThanOverlayNavBreakpoint = computed(() => { + return (windowWidth: MaybeRef) => unref(windowWidth) < config.app.overlayNavFromBreakpoint + }) + + const _layoutClasses = computed(() => (windowWidth: MaybeRef, windowScrollY: MaybeRef) => { + const route = useRoute() + + return [ + `layout-nav-type-${appContentLayoutNav.value}`, + `layout-navbar-${navbarType.value}`, + `layout-footer-${footerType.value}`, + { + 'layout-vertical-nav-collapsed': + isVerticalNavCollapsed.value + && appContentLayoutNav.value === 'vertical' + && !isLessThanOverlayNavBreakpoint.value(windowWidth), + }, + { [`horizontal-nav-${horizontalNavType.value}`]: appContentLayoutNav.value === 'horizontal' }, + `layout-content-width-${appContentWidth.value}`, + { 'layout-overlay-nav': isLessThanOverlayNavBreakpoint.value(windowWidth) }, + { 'window-scrolled': unref(windowScrollY) }, + route.meta.layoutWrapperClasses ? route.meta.layoutWrapperClasses : null, + ] + }) + + const switchToVerticalNavOnLtOverlayNavBreakpoint = (windowWidth: MaybeRef) => { + /* + ℹī¸ This is flag will hold nav type need to render when switching between lgAndUp from mdAndDown window width + + Requirement: When we nav is set to `horizontal` and we hit the `mdAndDown` breakpoint nav type shall change to `vertical` nav + Now if we go back to `lgAndUp` breakpoint from `mdAndDown` how we will know which was previous nav type in large device? + + Let's assign value of `appContentLayoutNav` as default value of lgAndUpNav. Why 🤔? + If template is viewed in lgAndUp + We will assign `appContentLayoutNav` value to `lgAndUpNav` because at this point both constant is same + Hence, for `lgAndUpNav` it will take value from theme config file + else + It will always show vertical nav and if user increase the window width it will fallback to `appContentLayoutNav` value + But `appContentLayoutNav` will be value set in theme config file + */ + const lgAndUpNav = ref(appContentLayoutNav.value) + + /* + There might be case where we manually switch from vertical to horizontal nav and vice versa in `lgAndUp` screen + So when user comes back from `mdAndDown` to `lgAndUp` we can set updated nav type + For this we need to update the `lgAndUpNav` value if screen is `lgAndUp` + */ + watch(appContentLayoutNav, value => { + if (!isLessThanOverlayNavBreakpoint.value(windowWidth)) + lgAndUpNav.value = value + }) + + /* + This is layout switching part + If it's `mdAndDown` => We will use vertical nav no matter what previous nav type was + Or if it's `lgAndUp` we need to switch back to `lgAndUp` nav type. For this we will tracker property `lgAndUpNav` + */ + watch(() => isLessThanOverlayNavBreakpoint.value(windowWidth), val => { + if (!val) + appContentLayoutNav.value = lgAndUpNav.value + else + appContentLayoutNav.value = AppContentLayoutNav.Vertical + }, { immediate: true }) + } + + /* + This function will return true if current state is mini. Mini state means vertical nav is: + - Collapsed + - Isn't hovered by mouse + - nav is not less than overlay breakpoint (hence, isn't overlay menu) + + ℹī¸ We are getting `isVerticalNavHovered` as param instead of via `inject` because + we are using this in `VerticalNav.vue` component which provide it and I guess because + same component is providing & injecting we are getting undefined error + */ + const isVerticalNavMini = (windowWidth: MaybeRef, isVerticalNavHovered: Ref | null = null) => { + const isVerticalNavHoveredLocal = isVerticalNavHovered || inject(injectionKeyIsVerticalNavHovered) || ref(false) + + return computed(() => isVerticalNavCollapsed.value && !isVerticalNavHoveredLocal.value && !isLessThanOverlayNavBreakpoint.value(unref(windowWidth))) + } + + const dynamicI18nProps = computed(() => (key: string, tag = 'span') => { + if (config.app.enableI18n) { + return { + keypath: key, + tag, + scope: 'global', + } + } + + return {} + }) + + const isAppRtl = computed({ + get() { + return config.app.isRtl.value + }, + set(value: typeof config.app.isRtl.value) { + config.app.isRtl.value = value + localStorage.setItem(`${config.app.title}-isRtl`, value.toString()) + _setAppDir(value ? 'rtl' : 'ltr') + }, + }) + + return { + navbarType, + isNavbarBlurEnabled, + footerType, + isVerticalNavCollapsed, + appContentWidth, + appContentLayoutNav, + horizontalNavType, + isLessThanOverlayNavBreakpoint, + _layoutClasses, + switchToVerticalNavOnLtOverlayNavBreakpoint, + isVerticalNavMini, + dynamicI18nProps, + isAppRtl, + _setAppDir, + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/config.ts b/packages/dashboard/src/plugins/vuetify/@layouts/config.ts new file mode 100644 index 00000000..7a76abff --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/config.ts @@ -0,0 +1,37 @@ +import { breakpointsVuetify } from '@vueuse/core' +import { AppContentLayoutNav, ContentWidth, FooterType, NavbarType } from '@layouts/enums' +import type { Config } from '@layouts/types' + +export const config: Config = { + app: { + title: 'Title', + logo: h('img', { src: '/src/assets/logo.svg' }), + + // logo: () => h('img', { src: 'assets/colored-logo.png' }, null), + contentWidth: ref(ContentWidth.Boxed), + contentLayoutNav: ref(AppContentLayoutNav.Vertical), + overlayNavFromBreakpoint: breakpointsVuetify.md, + enableI18n: true, + isRtl: ref(false), + }, + navbar: { + type: ref(NavbarType.Sticky), + navbarBlur: ref(true), + }, + footer: { type: ref(FooterType.Static) }, + verticalNav: { + isVerticalNavCollapsed: ref(false), + defaultNavItemIconProps: { icon: 'mdi-circle-outline' }, + }, + horizontalNav: { + type: ref('sticky'), + }, + icons: { + chevronDown: { icon: 'mdi-chevron-down' }, + chevronRight: { icon: 'mdi-chevron-right' }, + close: { icon: 'mdi-close' }, + verticalNavPinned: { icon: 'mdi-record-circle-outline' }, + verticalNavUnPinned: { icon: 'mdi-radiobox-blank' }, + sectionTitlePlaceholder: { icon: 'mdi-minus' }, + }, +} diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/enums.ts b/packages/dashboard/src/plugins/vuetify/@layouts/enums.ts new file mode 100644 index 00000000..5974cfc3 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/enums.ts @@ -0,0 +1,21 @@ +export const ContentWidth = { + Fluid: 'fluid', + Boxed: 'boxed', +} as const + +export const NavbarType = { + Sticky: 'sticky', + Static: 'static', + Hidden: 'hidden', +} as const + +export const FooterType = { + Sticky: 'sticky', + Static: 'static', + Hidden: 'hidden', +} as const + +export const AppContentLayoutNav = { + Vertical: 'vertical', + Horizontal: 'horizontal', +} as const diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/index.ts b/packages/dashboard/src/plugins/vuetify/@layouts/index.ts new file mode 100644 index 00000000..215d1bf8 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/index.ts @@ -0,0 +1,63 @@ +import type { InjectionKey, Plugin, Ref } from 'vue' +import { useDynamicVhCssProperty } from './composable/useDynamicVhCssProperty' +import { config } from './config' +import { ContentWidth } from './enums' +import type { UserConfig } from './types' +import { useLayouts } from '@layouts' + +const { _setAppDir } = useLayouts() + +// 🔌 Plugin +export const createLayouts = (userConfig: UserConfig): Plugin => { + const localStorageIsRtl = localStorage.getItem(`${userConfig.app.title}-isRtl`) + const localStorageIsVerticalNavCollapsed = localStorage.getItem(`${userConfig.app.title}-isVerticalNavCollapsed`) + + const localStorageContentWidth = (() => { + const storageValue = localStorage.getItem(`${userConfig.app.title}-contentWidth`) + + return Object.values(ContentWidth).find(v => v === storageValue) + })() + + const localStorageNavbarBlur = localStorage.getItem(`${userConfig.app.title}-navbarBlur`) + + config.app.title = userConfig.app.title + config.app.logo = userConfig.app.logo + config.app.contentWidth.value = localStorageContentWidth || userConfig.app.contentWidth + config.app.contentLayoutNav.value = userConfig.app.contentLayoutNav + config.app.overlayNavFromBreakpoint = userConfig.app.overlayNavFromBreakpoint + config.app.enableI18n = userConfig.app.enableI18n + config.app.isRtl.value = localStorageIsRtl ? JSON.parse(localStorageIsRtl) : userConfig.app.isRtl + config.app.iconRenderer = userConfig.app.iconRenderer + + config.navbar.type.value = userConfig.navbar.type + config.navbar.navbarBlur.value = localStorageNavbarBlur ? JSON.parse(localStorageNavbarBlur) : userConfig.navbar.navbarBlur + + config.footer.type.value = userConfig.footer.type + + config.verticalNav.isVerticalNavCollapsed.value + = localStorageIsVerticalNavCollapsed + ? JSON.parse(localStorageIsVerticalNavCollapsed) + : userConfig.verticalNav.isVerticalNavCollapsed + + config.verticalNav.defaultNavItemIconProps = userConfig.verticalNav.defaultNavItemIconProps + + config.horizontalNav.type.value = userConfig.horizontalNav.type + + config.icons.chevronDown = userConfig.icons.chevronDown + config.icons.chevronRight = userConfig.icons.chevronRight + config.icons.close = userConfig.icons.close + config.icons.verticalNavPinned = userConfig.icons.verticalNavPinned + config.icons.verticalNavUnPinned = userConfig.icons.verticalNavUnPinned + config.icons.sectionTitlePlaceholder = userConfig.icons.sectionTitlePlaceholder + + return (): void => { + useDynamicVhCssProperty() + + _setAppDir(config.app.isRtl.value ? 'rtl' : 'ltr') + } +} + +export const injectionKeyIsVerticalNavHovered: InjectionKey> = Symbol('isVerticalNavHovered') + +export * from './components' +export { useLayouts } from './composable/useLayouts' diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/plugins/casl.ts b/packages/dashboard/src/plugins/vuetify/@layouts/plugins/casl.ts new file mode 100644 index 00000000..2b1a2afe --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/plugins/casl.ts @@ -0,0 +1,51 @@ +import type { RouteLocationNormalized } from "vue-router"; +import ability from "@/plugins/vuetify/casl/ability"; +import type { NavGroup } from "@layouts/types"; + +/** + * Returns ability result if ACL is configured or else just return true + * We should allow passing string | undefined to can because for admin ability we omit defining action & subject + * + * Useful if you don't know if ACL is configured or not + * Used in @core files to handle absence of ACL without errors + * + * @param {String} action CASL Actions // https://casl.js.org/v4/en/guide/intro#basics + * @param {String} subject CASL Subject // https://casl.js.org/v4/en/guide/intro#basics + */ +export const can = ( + action: string | undefined, + subject: string | undefined +) => { + const vm = getCurrentInstance(); + + if (!vm) return false; + + const localCan = vm.proxy && "$can" in vm.proxy; + + // @ts-expect-error We will get TS error in below line because we aren't using $can in component instance + return localCan ? vm.proxy?.$can(action, subject) : true; +}; + +/** + * Check if user can view item based on it's ability + * Based on item's action and subject & Hide group if all of it's children are hidden + * @param {Object} item navigation object item + */ +export const canViewNavMenuGroup = (item: NavGroup) => { + const hasAnyVisibleChild = item.children.some((i) => + can(i.action, i.subject) + ); + + // If subject and action is defined in item => Return based on children visibility (Hide group if no child is visible) + // Else check for ability using provided subject and action along with checking if has any visible child + if (!(item.action && item.subject)) return hasAnyVisibleChild; + + return can(item.action, item.subject) && hasAnyVisibleChild; +}; + +export const canNavigate = (to: RouteLocationNormalized) => { + // @ts-expect-error We should allow passing string | undefined to can because for admin ability we omit defining action & subject + return to.matched.some((route) => + ability.can(route.meta.action, route.meta.subject) + ); +}; diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/styles/_classes.scss b/packages/dashboard/src/plugins/vuetify/@layouts/styles/_classes.scss new file mode 100644 index 00000000..70074d60 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/styles/_classes.scss @@ -0,0 +1,3 @@ +.cursor-pointer { + cursor: pointer; +} diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/styles/_default-layout.scss b/packages/dashboard/src/plugins/vuetify/@layouts/styles/_default-layout.scss new file mode 100644 index 00000000..7f12d9a5 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/styles/_default-layout.scss @@ -0,0 +1,35 @@ +// These are styles which are both common in layout w/ vertical nav & horizontal nav +@use "@layouts/styles/rtl"; +@use "@layouts/styles/placeholders"; +@use "@layouts/styles/mixins"; +@use "@configured-variables" as variables; + +html, +body { + min-block-size: 100%; +} + +.layout-page-content { + @include mixins.boxed-content(true); + + flex-grow: 1; + + // TODO: Use grid gutter variable here + padding-block: 1.5rem; +} + +.layout-footer { + .footer-content-container { + block-size: variables.$layout-vertical-nav-footer-height; + } + + .layout-footer-sticky & { + position: sticky; + inset-block-end: 0; + will-change: transform; + } + + .layout-footer-hidden & { + display: none; + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/styles/_global.scss b/packages/dashboard/src/plugins/vuetify/@layouts/styles/_global.scss new file mode 100644 index 00000000..79997a8f --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/styles/_global.scss @@ -0,0 +1,16 @@ +*, +::before, +::after { + box-sizing: inherit; + background-repeat: no-repeat; +} + +html { + box-sizing: border-box; +} + +// Reset +ol, +ul { + list-style: none; +} diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/styles/_mixins.scss b/packages/dashboard/src/plugins/vuetify/@layouts/styles/_mixins.scss new file mode 100644 index 00000000..0eeca06e --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/styles/_mixins.scss @@ -0,0 +1,28 @@ +@use "placeholders"; +@use "@configured-variables" as variables; + +@mixin rtl { + @if variables.$enable-rtl-styles { + [dir="rtl"] & { + @content; + } + } +} + +@mixin boxed-content($nest-selector: false) { + & { + @extend %boxed-content-spacing; + + @at-root { + @if $nest-selector == false { + .layout-content-width-boxed#{&} { + @extend %boxed-content; + } + } @else { + .layout-content-width-boxed & { + @extend %boxed-content; + } + } + } + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/styles/_placeholders.scss b/packages/dashboard/src/plugins/vuetify/@layouts/styles/_placeholders.scss new file mode 100644 index 00000000..c10e25b5 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/styles/_placeholders.scss @@ -0,0 +1,53 @@ +// placeholders +@use "@configured-variables" as variables; + +%boxed-content { + @at-root #{&}-spacing { + // TODO: Use grid gutter variable here + padding-inline: 1.5rem; + } + + inline-size: 100%; + margin-inline: auto; + max-inline-size: variables.$layout-boxed-content-width; +} + +%layout-navbar-hidden { + display: none; +} + +// ℹī¸ We created this placeholder even it is being used in just layout w/ vertical nav because in future we might apply style to both navbar & horizontal nav separately +%layout-navbar-sticky { + position: sticky; + inset-block-start: 0; + + // will-change: transform; + // inline-size: 100%; +} + +%style-scroll-bar { + /* width */ + + &::-webkit-scrollbar { + background: rgb(var(--v-theme-surface)); + block-size: 8px; + border-end-end-radius: 14px; + border-start-end-radius: 14px; + inline-size: 4px; + } + + /* Track */ + &::-webkit-scrollbar-track { + background: transparent; + } + + /* Handle */ + &::-webkit-scrollbar-thumb { + border-radius: 0.5rem; + background: rgb(var(--v-theme-perfect-scrollbar-thumb)); + } + + &::-webkit-scrollbar-corner { + display: none; + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/styles/_rtl.scss b/packages/dashboard/src/plugins/vuetify/@layouts/styles/_rtl.scss new file mode 100644 index 00000000..1413755f --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/styles/_rtl.scss @@ -0,0 +1,7 @@ +@use "./mixins"; + +.nav-group-arrow { + @include mixins.rtl { + transform: rotate(180deg); + } +} diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/styles/_variables.scss b/packages/dashboard/src/plugins/vuetify/@layouts/styles/_variables.scss new file mode 100644 index 00000000..01669075 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/styles/_variables.scss @@ -0,0 +1,28 @@ +// @use "@styles/style.scss"; + +// 👉 Vertical nav +$layout-vertical-nav-z-index: 12 !default; +$layout-vertical-nav-width: 260px !default; +$layout-vertical-nav-collapsed-width: 80px !default; + +// 👉 Horizontal nav +$layout-horizontal-nav-z-index: 11 !default; +$layout-horizontal-nav-navbar-height: 64px !default; + +// 👉 Navbar +$layout-vertical-nav-navbar-height: 64px !default; +$layout-vertical-nav-navbar-is-contained: true !default; +$layout-vertical-nav-layout-navbar-z-index: 11 !default; +$layout-horizontal-nav-layout-navbar-z-index: 11 !default; + +// 👉 Main content +$layout-boxed-content-width: 1440px !default; + +// 👉Footer +$layout-vertical-nav-footer-height: 56px !default; + +// 👉 Layout overlay +$layout-overlay-z-index: 11 !default; + +// 👉 RTL +$enable-rtl-styles: true !default; diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/styles/index.scss b/packages/dashboard/src/plugins/vuetify/@layouts/styles/index.scss new file mode 100644 index 00000000..4eb5800a --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/styles/index.scss @@ -0,0 +1,3 @@ +@use "_global"; +@use "vue3-perfect-scrollbar/dist/vue3-perfect-scrollbar.min.css"; +@use "_classes"; diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/types.d.ts b/packages/dashboard/src/plugins/vuetify/@layouts/types.d.ts new file mode 100644 index 00000000..909aa8fd --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/types.d.ts @@ -0,0 +1,161 @@ +import type { Component, Ref, VNode } from 'vue' +import type { RouteLocationRaw } from 'vue-router' +import { ContentWidth, FooterType, NavbarType } from './enums' + +export interface UserConfig { + app: { + title: string + logo: VNode + contentWidth: typeof ContentWidth[keyof typeof ContentWidth] + contentLayoutNav: typeof AppContentLayoutNav[keyof typeof AppContentLayoutNav] + overlayNavFromBreakpoint: number + enableI18n: boolean + isRtl: boolean + iconRenderer?: Component + } + navbar: { + type: typeof NavbarType[keyof typeof NavbarType] + navbarBlur: boolean + } + footer: { + type:typeof FooterType[keyof typeof FooterType] + } + verticalNav: { + isVerticalNavCollapsed: boolean + defaultNavItemIconProps: unknown + } + horizontalNav: { + type: 'sticky' | 'static' | 'hidden' + transition?: string | Component + } + icons: { + chevronDown: any + chevronRight: any + close: any + verticalNavPinned: any + verticalNavUnPinned: any + sectionTitlePlaceholder: any + } +} + +/* + TODO: use MergeDeep for DRY + Waiting for https://github.com/sindresorhus/type-fest/issues/150 +*/ +export interface Config { + app: { + title: UserConfig['app']['title'] + logo: UserConfig['app']['logo'] + contentWidth: Ref + contentLayoutNav: Ref + overlayNavFromBreakpoint: UserConfig['app']['overlayNavFromBreakpoint'] + enableI18n: UserConfig['app']['enableI18n'] + isRtl: Ref + iconRenderer?: UserConfig['app']['iconRenderer'] + } + navbar: { + type: Ref + navbarBlur: Ref + } + footer: { + type: Ref + } + verticalNav: { + isVerticalNavCollapsed: Ref + defaultNavItemIconProps: UserConfig['verticalNav']['defaultNavItemIconProps'] + } + horizontalNav: { + type: Ref + transition?: UserConfig['horizontalNav']['transition'] + } + icons: { + chevronDown: UserConfig['icons']['chevronDown'] + chevronRight: UserConfig['icons']['chevronRight'] + close: UserConfig['icons']['close'] + verticalNavPinned: UserConfig['icons']['verticalNavPinned'] + verticalNavUnPinned: UserConfig['icons']['verticalNavUnPinned'] + sectionTitlePlaceholder: UserConfig['icons']['sectionTitlePlaceholder'] + } +} + +interface AclProperties { + action: string + subject: string +} + +// 👉 Vertical nav section title +export interface NavSectionTitle extends Partial { + heading: string +} + +// 👉 Vertical nav link +declare type ATagTargetAttrValues = '_blank' | '_self' | '_parent' | '_top' | 'framename' +declare type ATagRelAttrValues = + | 'alternate' + | 'author' + | 'bookmark' + | 'external' + | 'help' + | 'license' + | 'next' + | 'nofollow' + | 'noopener' + | 'noreferrer' + | 'prev' + | 'search' + | 'tag' + +export interface NavLinkProps { + to?: RouteLocationRaw | string | null + href?: string + target?: ATagTargetAttrValues + rel?: ATagRelAttrValues +} + +export interface NavLink extends NavLinkProps, Partial { + title: string + icon?: unknown + badgeContent?: string + badgeClass?: string + disable?: boolean +} + +// 👉 Vertical nav group +export interface NavGroup extends Partial { + title: string + icon?: unknown + badgeContent?: string + badgeClass?: string + children: (NavLink | NavGroup)[] + disable?: boolean +} + +export declare type VerticalNavItems = (NavLink | NavGroup | NavSectionTitle)[] +export declare type HorizontalNavItems = (NavLink | NavGroup)[] + +// 👉 Components ======================== + +interface I18nLanguage { + label: string + i18nLang: string +} + +// avatar | text | icon +// Thanks: https://stackoverflow.com/a/60617060/10796681 +type Notification = { + id:number + title: string + subtitle: string + time: string + color?: string + isRead: boolean +} & ( + | { img: string; text?: never; icon?: never } + | { img?: never; text: string; icon?: never } + | { img?: never; text?: never; icon: string } +) + +interface ThemeSwitcherTheme { + name: string + icon: string +} diff --git a/packages/dashboard/src/plugins/vuetify/@layouts/utils.ts b/packages/dashboard/src/plugins/vuetify/@layouts/utils.ts new file mode 100644 index 00000000..35062785 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/@layouts/utils.ts @@ -0,0 +1,90 @@ +import type { Router } from 'vue-router' +import type { NavGroup, NavLink, NavLinkProps } from '@layouts/types' + +export const openGroups = ref([]) + +/** + * Return nav link props to use + * @param {Object, String} item navigation routeName or route Object provided in navigation data + */ +export const getComputedNavLinkToProp = computed(() => (link: NavLink) => { + const props: NavLinkProps = { + target: link.target, + rel: link.rel, + } + + // If route is string => it assumes string is route name => Create route object from route name + // If route is not string => It assumes it's route object => returns passed route object + if (link.to) + props.to = typeof link.to === 'string' ? { name: link.to } : link.to + else props.href = link.href + + return props +}) + +/** + * Return route name for navigation link + * If link is string then it will assume it is route-name + * IF link is object it will resolve the object and will return the link + * @param {Object, String} link navigation link object/string + */ +export const resolveNavLinkRouteName = (link: NavLink, router: Router) => { + if (!link.to) + return null + + if (typeof link.to === 'string') + return link.to + + return router.resolve(link.to).name +} + +/** + * Check if nav-link is active + * @param {Object} link nav-link object + */ +export const isNavLinkActive = (link: NavLink, router: Router) => { + // Matched routes array of current route + const matchedRoutes = router.currentRoute.value.matched + + // Check if provided route matches route's matched route + const resolveRoutedName = resolveNavLinkRouteName(link, router) + + if (!resolveRoutedName) + return false + + return matchedRoutes.some(route => { + return route.name === resolveRoutedName || route.meta.navActiveLink === resolveRoutedName + }) +} + +/** + * Check if nav group is active + * @param {Array} children Group children + */ +export const isNavGroupActive = (children: (NavLink | NavGroup)[], router: Router): boolean => + children.some(child => { + // If child have children => It's group => Go deeper(recursive) + if ('children' in child) + return isNavGroupActive(child.children, router) + + // else it's link => Check for matched Route + return isNavLinkActive(child, router) + }) + +/** + * Convert Hex color to rgb + * @param hex + */ + +export const hexToRgb = (hex: string) => { +// Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF") + const shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i + + hex = hex.replace(shorthandRegex, (m: string, r: string, g: string, b: string) => { + return r + r + g + g + b + b + }) + + const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex) + + return result ? `${parseInt(result[1], 16)},${parseInt(result[2], 16)},${parseInt(result[3], 16)}` : null +} diff --git a/packages/dashboard/src/plugins/vuetify/casl/AppAbility.ts b/packages/dashboard/src/plugins/vuetify/casl/AppAbility.ts new file mode 100644 index 00000000..e86fef2f --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/casl/AppAbility.ts @@ -0,0 +1,16 @@ +import type { AbilityClass } from '@casl/ability' +import { Ability } from '@casl/ability' + +export type Actions = 'create' | 'read' | 'update' | 'delete' | 'manage' + +export type Subjects = 'Auth' | 'Admin' | 'AclDemo' | 'all' + +export type AppAbility = Ability<[Actions, Subjects]> + +// eslint-disable-next-line @typescript-eslint/no-redeclare +export const AppAbility = Ability as AbilityClass + +export interface UserAbility { + action: Actions + subject: Subjects +} diff --git a/packages/dashboard/src/plugins/vuetify/casl/ability.ts b/packages/dashboard/src/plugins/vuetify/casl/ability.ts new file mode 100644 index 00000000..99fa4f51 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/casl/ability.ts @@ -0,0 +1,18 @@ +import { Ability } from '@casl/ability' +import type { UserAbility } from './AppAbility' + +export const initialAbility: UserAbility[] = [ + { + action: 'read', + subject: 'Auth', + }, +] + +// Read ability from localStorage +// 👉 Handles auto fetching previous abilities if already logged in user +// ℹī¸ You can update this if you store user abilities to more secure place +// ❗ Anyone can update localStorage so be careful and please update this +const stringifiedUserAbilities = localStorage.getItem('userAbilities') +const existingAbility = stringifiedUserAbilities ? JSON.parse(stringifiedUserAbilities) : null + +export default new Ability(existingAbility || initialAbility) diff --git a/packages/dashboard/src/plugins/vuetify/casl/shims-ability.d.ts b/packages/dashboard/src/plugins/vuetify/casl/shims-ability.d.ts new file mode 100644 index 00000000..78db9971 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/casl/shims-ability.d.ts @@ -0,0 +1,8 @@ +import type { AppAbility } from './AppAbility' + +declare module 'vue' { + interface ComponentCustomProperties { + $ability: AppAbility + $can(this: this, ...args: Parameters): boolean + } +} diff --git a/packages/dashboard/src/plugins/vuetify/casl/useAppAbility.ts b/packages/dashboard/src/plugins/vuetify/casl/useAppAbility.ts new file mode 100644 index 00000000..1adc52d7 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/casl/useAppAbility.ts @@ -0,0 +1,4 @@ +import { useAbility } from '@casl/vue' +import type { AppAbility } from './AppAbility' + +export const useAppAbility = () => useAbility() diff --git a/packages/dashboard/src/plugins/vuetify/defaults.ts b/packages/dashboard/src/plugins/vuetify/defaults.ts new file mode 100644 index 00000000..e5688d79 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/defaults.ts @@ -0,0 +1,124 @@ +export default { + IconBtn: { + icon: true, + size: 'small', + color: 'default', + variant: 'text', + VIcon: { + size: 24, + }, + }, + VAlert: { + density: 'comfortable', + VBtn: { + color: undefined, + }, + }, + VAvatar: { + // ℹī¸ Remove after next release + variant: 'flat', + }, + VBadge: { + // set v-badge default color to primary + color: 'primary', + }, + VBtn: { + // set v-btn default color to primary + color: 'primary', + }, + VChip: { + elevation: 0, + }, + VPagination: { + activeColor: 'primary', + density: 'comfortable', + size: '32', + }, + VTabs: { + // set v-tabs default color to primary + color: 'primary', + VSlideGroup: { + showArrows: true, + }, + }, + VTooltip: { + // set v-tooltip default location to top + location: 'top', + }, + VList: { + VListItem: { + activeColor: 'primary', + }, + }, + VCheckbox: { + // set v-checkbox default color to primary + color: 'primary', + density: 'comfortable', + hideDetails: 'auto', + }, + VRadioGroup: { + color: 'primary', + hideDetails: 'auto', + }, + VRadio: { + hideDetails: 'auto', + }, + VSelect: { + variant: 'outlined', + color: 'primary', + hideDetails: 'auto', + }, + VRangeSlider: { + // set v-range-slider default color to primary + color: 'primary', + density: 'comfortable', + thumbLabel: true, + hideDetails: 'auto', + }, + VRating: { + // set v-rating default color to primary + density: 'compact', + activeColor: 'warning', + }, + VProgressCircular: { + // set v-progress-circular default color to primary + color: 'primary', + }, + VSlider: { + // set v-slider default color to primary + color: 'primary', + hideDetails: 'auto', + }, + VTextField: { + variant: 'outlined', + color: 'primary', + hideDetails: 'auto', + }, + VAutocomplete: { + variant: 'outlined', + density: 'comfortable', + color: 'primary', + hideDetails: 'auto', + }, + VCombobox: { + variant: 'outlined', + color: 'primary', + hideDetails: 'auto', + }, + VFileInput: { + variant: 'outlined', + color: 'primary', + hideDetails: 'auto', + }, + VTextarea: { + variant: 'outlined', + density: 'comfortable', + color: 'primary', + hideDetails: 'auto', + }, + VSwitch: { + // set v-switch default color to primary + color: 'primary', + hideDetails: 'auto', + }, +} diff --git a/packages/dashboard/src/plugins/vuetify/icons.ts b/packages/dashboard/src/plugins/vuetify/icons.ts new file mode 100644 index 00000000..d4315190 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/icons.ts @@ -0,0 +1,24 @@ +import { Icon } from '@iconify/vue' +import type { IconProps, IconSet } from 'vuetify' +import { aliases } from 'vuetify/lib/iconsets/mdi' + +const alertTypeIcon = { + success: 'mdi-check-circle-outline', + info: 'mdi-information-outline', + warning: 'mdi-alert-outline', + error: 'mdi-alert-circle-outline', +} + +const modifiedAliases = Object.assign(aliases, alertTypeIcon) + +export const iconify: IconSet = { + component: (props: IconProps) => h(Icon, props), +} + +export const icons = { + defaultSet: 'iconify', + mergedAliases: modifiedAliases, + sets: { + iconify, + }, +} diff --git a/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-1.png b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-1.png new file mode 100644 index 00000000..514120a6 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-1.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-10.png b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-10.png new file mode 100644 index 00000000..58fac22c Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-10.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-11.png b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-11.png new file mode 100644 index 00000000..4c97074a Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-11.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-12.png b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-12.png new file mode 100644 index 00000000..ae3d6a59 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-12.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-13.png b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-13.png new file mode 100644 index 00000000..09ca92f9 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-13.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-14.png b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-14.png new file mode 100644 index 00000000..5e03b006 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-14.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-15.png b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-15.png new file mode 100644 index 00000000..45b64022 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-15.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-2.png b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-2.png new file mode 100644 index 00000000..58fac22c Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-2.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-3.png b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-3.png new file mode 100644 index 00000000..4c97074a Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-3.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-4.png b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-4.png new file mode 100644 index 00000000..ae3d6a59 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-4.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-5.png b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-5.png new file mode 100644 index 00000000..09ca92f9 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-5.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-6.png b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-6.png new file mode 100644 index 00000000..5e03b006 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-6.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-7.png b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-7.png new file mode 100644 index 00000000..45b64022 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-7.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-8.png b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-8.png new file mode 100644 index 00000000..9aab4689 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-8.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-9.png b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-9.png new file mode 100644 index 00000000..514120a6 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/avatars/avatar-9.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/iconify-svg/vertical-nav-header-arrow.svg b/packages/dashboard/src/plugins/vuetify/images/iconify-svg/vertical-nav-header-arrow.svg new file mode 100644 index 00000000..29d2d29e --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/images/iconify-svg/vertical-nav-header-arrow.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/dashboard/src/plugins/vuetify/images/logo.svg b/packages/dashboard/src/plugins/vuetify/images/logo.svg new file mode 100644 index 00000000..633839f4 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/images/logo.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/images/misc/pricing-cta-illustration.png b/packages/dashboard/src/plugins/vuetify/images/misc/pricing-cta-illustration.png new file mode 100644 index 00000000..107b2b62 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/misc/pricing-cta-illustration.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/misc/pricing-illustration-1.png b/packages/dashboard/src/plugins/vuetify/images/misc/pricing-illustration-1.png new file mode 100644 index 00000000..34ba3bcc Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/misc/pricing-illustration-1.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/misc/pricing-illustration-2.png b/packages/dashboard/src/plugins/vuetify/images/misc/pricing-illustration-2.png new file mode 100644 index 00000000..00e9d1b8 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/misc/pricing-illustration-2.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/misc/pricing-illustration-3.png b/packages/dashboard/src/plugins/vuetify/images/misc/pricing-illustration-3.png new file mode 100644 index 00000000..f917e1cf Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/misc/pricing-illustration-3.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/misc/triangle-dark.png b/packages/dashboard/src/plugins/vuetify/images/misc/triangle-dark.png new file mode 100644 index 00000000..df287beb Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/misc/triangle-dark.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/misc/triangle-light.png b/packages/dashboard/src/plugins/vuetify/images/misc/triangle-light.png new file mode 100644 index 00000000..cb321bf3 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/misc/triangle-light.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/misc/trophy.png b/packages/dashboard/src/plugins/vuetify/images/misc/trophy.png new file mode 100644 index 00000000..166205e7 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/misc/trophy.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/1.png b/packages/dashboard/src/plugins/vuetify/images/pages/1.png new file mode 100644 index 00000000..47f80c05 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/1.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/2.png b/packages/dashboard/src/plugins/vuetify/images/pages/2.png new file mode 100644 index 00000000..25e5a901 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/2.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/3.png b/packages/dashboard/src/plugins/vuetify/images/pages/3.png new file mode 100644 index 00000000..9587fc0f Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/3.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/401.png b/packages/dashboard/src/plugins/vuetify/images/pages/401.png new file mode 100644 index 00000000..2d30a9ca Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/401.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/404.png b/packages/dashboard/src/plugins/vuetify/images/pages/404.png new file mode 100644 index 00000000..fba984d9 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/404.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/5.jpg b/packages/dashboard/src/plugins/vuetify/images/pages/5.jpg new file mode 100644 index 00000000..4d3c834e Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/5.jpg differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/500.png b/packages/dashboard/src/plugins/vuetify/images/pages/500.png new file mode 100644 index 00000000..405bb188 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/500.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/6.png b/packages/dashboard/src/plugins/vuetify/images/pages/6.png new file mode 100644 index 00000000..3562135d Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/6.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/app-search-header-bg-dark.png b/packages/dashboard/src/plugins/vuetify/images/pages/app-search-header-bg-dark.png new file mode 100644 index 00000000..e78bb1ff Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/app-search-header-bg-dark.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/app-search-header-bg-light.png b/packages/dashboard/src/plugins/vuetify/images/pages/app-search-header-bg-light.png new file mode 100644 index 00000000..aa763321 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/app-search-header-bg-light.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v1-forgot-password-mask-dark.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v1-forgot-password-mask-dark.png new file mode 100644 index 00000000..c8195bd9 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v1-forgot-password-mask-dark.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v1-forgot-password-mask-light.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v1-forgot-password-mask-light.png new file mode 100644 index 00000000..a7136e01 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v1-forgot-password-mask-light.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v1-login-mask-dark.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v1-login-mask-dark.png new file mode 100644 index 00000000..db01a5a9 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v1-login-mask-dark.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v1-login-mask-light.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v1-login-mask-light.png new file mode 100644 index 00000000..31e27fea Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v1-login-mask-light.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v1-register-mask-dark.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v1-register-mask-dark.png new file mode 100644 index 00000000..20a20881 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v1-register-mask-dark.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v1-register-mask-light.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v1-register-mask-light.png new file mode 100644 index 00000000..9c2149c4 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v1-register-mask-light.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v1-reset-password-mask-dark.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v1-reset-password-mask-dark.png new file mode 100644 index 00000000..0118dcb0 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v1-reset-password-mask-dark.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v1-reset-password-mask-light.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v1-reset-password-mask-light.png new file mode 100644 index 00000000..1cba918b Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v1-reset-password-mask-light.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-forgot-password-illustration-bordered-dark.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-forgot-password-illustration-bordered-dark.png new file mode 100644 index 00000000..b5c1afaf Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-forgot-password-illustration-bordered-dark.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-forgot-password-illustration-bordered-light.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-forgot-password-illustration-bordered-light.png new file mode 100644 index 00000000..85ae1b88 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-forgot-password-illustration-bordered-light.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-forgot-password-illustration-dark.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-forgot-password-illustration-dark.png new file mode 100644 index 00000000..e8229ba8 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-forgot-password-illustration-dark.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-forgot-password-illustration-light.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-forgot-password-illustration-light.png new file mode 100644 index 00000000..ff3d874e Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-forgot-password-illustration-light.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-forgot-password-mask-dark.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-forgot-password-mask-dark.png new file mode 100644 index 00000000..39de30c3 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-forgot-password-mask-dark.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-forgot-password-mask-light.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-forgot-password-mask-light.png new file mode 100644 index 00000000..95682484 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-forgot-password-mask-light.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-login-illustration-bordered-dark.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-login-illustration-bordered-dark.png new file mode 100644 index 00000000..f1a022c2 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-login-illustration-bordered-dark.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-login-illustration-bordered-light.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-login-illustration-bordered-light.png new file mode 100644 index 00000000..bfa1ca12 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-login-illustration-bordered-light.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-login-illustration-dark.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-login-illustration-dark.png new file mode 100644 index 00000000..4617f4fb Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-login-illustration-dark.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-login-illustration-light.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-login-illustration-light.png new file mode 100644 index 00000000..4afffb50 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-login-illustration-light.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-login-mask-dark.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-login-mask-dark.png new file mode 100644 index 00000000..add84906 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-login-mask-dark.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-login-mask-light.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-login-mask-light.png new file mode 100644 index 00000000..457848c3 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-login-mask-light.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-register-illustration-bordered-dark.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-register-illustration-bordered-dark.png new file mode 100644 index 00000000..ff5ad0b3 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-register-illustration-bordered-dark.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-register-illustration-bordered-light.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-register-illustration-bordered-light.png new file mode 100644 index 00000000..28d65e10 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-register-illustration-bordered-light.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-register-illustration-dark.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-register-illustration-dark.png new file mode 100644 index 00000000..df42e7c0 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-register-illustration-dark.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-register-illustration-light.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-register-illustration-light.png new file mode 100644 index 00000000..59711ac4 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-register-illustration-light.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-register-mask-dark.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-register-mask-dark.png new file mode 100644 index 00000000..a478ab6d Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-register-mask-dark.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-register-mask-light.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-register-mask-light.png new file mode 100644 index 00000000..7dc92008 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-register-mask-light.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-reset-password-illustration-bordered-dark.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-reset-password-illustration-bordered-dark.png new file mode 100644 index 00000000..0ca109b8 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-reset-password-illustration-bordered-dark.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-reset-password-illustration-bordered-light.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-reset-password-illustration-bordered-light.png new file mode 100644 index 00000000..18531d14 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-reset-password-illustration-bordered-light.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-reset-password-illustration-dark.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-reset-password-illustration-dark.png new file mode 100644 index 00000000..ddc64997 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-reset-password-illustration-dark.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-reset-password-illustration-light.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-reset-password-illustration-light.png new file mode 100644 index 00000000..fa173dd4 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-reset-password-illustration-light.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-reset-password-mask-dark.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-reset-password-mask-dark.png new file mode 100644 index 00000000..0eed0439 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-reset-password-mask-dark.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-reset-password-mask-light.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-reset-password-mask-light.png new file mode 100644 index 00000000..f40ef73f Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-reset-password-mask-light.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-two-steps-illustration-bordered-dark.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-two-steps-illustration-bordered-dark.png new file mode 100644 index 00000000..3eb721d9 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-two-steps-illustration-bordered-dark.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-two-steps-illustration-bordered-light.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-two-steps-illustration-bordered-light.png new file mode 100644 index 00000000..475d6019 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-two-steps-illustration-bordered-light.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-two-steps-illustration-dark.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-two-steps-illustration-dark.png new file mode 100644 index 00000000..95d3609c Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-two-steps-illustration-dark.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-two-steps-illustration-light.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-two-steps-illustration-light.png new file mode 100644 index 00000000..0a01c436 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-two-steps-illustration-light.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-verify-email-illustration-bordered-dark.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-verify-email-illustration-bordered-dark.png new file mode 100644 index 00000000..18bd8c3f Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-verify-email-illustration-bordered-dark.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-verify-email-illustration-bordered-light.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-verify-email-illustration-bordered-light.png new file mode 100644 index 00000000..19c03200 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-verify-email-illustration-bordered-light.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-verify-email-illustration-dark.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-verify-email-illustration-dark.png new file mode 100644 index 00000000..3172d885 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-verify-email-illustration-dark.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-verify-email-illustration-light.png b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-verify-email-illustration-light.png new file mode 100644 index 00000000..d682a500 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/auth-v2-verify-email-illustration-light.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/background-1.jpg b/packages/dashboard/src/plugins/vuetify/images/pages/background-1.jpg new file mode 100644 index 00000000..f652bcc0 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/background-1.jpg differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/background-2.jpg b/packages/dashboard/src/plugins/vuetify/images/pages/background-2.jpg new file mode 100644 index 00000000..a02c63da Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/background-2.jpg differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/background-3.jpg b/packages/dashboard/src/plugins/vuetify/images/pages/background-3.jpg new file mode 100644 index 00000000..26de346d Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/background-3.jpg differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/misc-401-object.png b/packages/dashboard/src/plugins/vuetify/images/pages/misc-401-object.png new file mode 100644 index 00000000..4b7e3cc2 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/misc-401-object.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/misc-404-object.png b/packages/dashboard/src/plugins/vuetify/images/pages/misc-404-object.png new file mode 100644 index 00000000..27c50a41 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/misc-404-object.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/misc-500-object.png b/packages/dashboard/src/plugins/vuetify/images/pages/misc-500-object.png new file mode 100644 index 00000000..27c50a41 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/misc-500-object.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/misc-coming-soon-object.png b/packages/dashboard/src/plugins/vuetify/images/pages/misc-coming-soon-object.png new file mode 100644 index 00000000..9b1c544a Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/misc-coming-soon-object.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/misc-coming-soon.png b/packages/dashboard/src/plugins/vuetify/images/pages/misc-coming-soon.png new file mode 100644 index 00000000..3ba3ac2a Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/misc-coming-soon.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/misc-mask-dark.png b/packages/dashboard/src/plugins/vuetify/images/pages/misc-mask-dark.png new file mode 100644 index 00000000..4d0d44cc Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/misc-mask-dark.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/misc-mask-light.png b/packages/dashboard/src/plugins/vuetify/images/pages/misc-mask-light.png new file mode 100644 index 00000000..ec21e811 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/misc-mask-light.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/misc-under-maintenance-object.png b/packages/dashboard/src/plugins/vuetify/images/pages/misc-under-maintenance-object.png new file mode 100644 index 00000000..6ad70c68 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/misc-under-maintenance-object.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/misc-under-maintenance.png b/packages/dashboard/src/plugins/vuetify/images/pages/misc-under-maintenance.png new file mode 100644 index 00000000..8fe14ee9 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/misc-under-maintenance.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/pixinvent-qr.png b/packages/dashboard/src/plugins/vuetify/images/pages/pixinvent-qr.png new file mode 100644 index 00000000..f2133dfc Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/pixinvent-qr.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/pose-fs-9.png b/packages/dashboard/src/plugins/vuetify/images/pages/pose-fs-9.png new file mode 100644 index 00000000..591559e4 Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/pose-fs-9.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/puma-shoes.jpeg b/packages/dashboard/src/plugins/vuetify/images/pages/puma-shoes.jpeg new file mode 100644 index 00000000..6ebd181f Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/puma-shoes.jpeg differ diff --git a/packages/dashboard/src/plugins/vuetify/images/pages/user-profile-header-bg.png b/packages/dashboard/src/plugins/vuetify/images/pages/user-profile-header-bg.png new file mode 100644 index 00000000..ddde444a Binary files /dev/null and b/packages/dashboard/src/plugins/vuetify/images/pages/user-profile-header-bg.png differ diff --git a/packages/dashboard/src/plugins/vuetify/images/svg/discord.svg b/packages/dashboard/src/plugins/vuetify/images/svg/discord.svg new file mode 100644 index 00000000..2b77e103 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/images/svg/discord.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/images/svg/gift.svg b/packages/dashboard/src/plugins/vuetify/images/svg/gift.svg new file mode 100644 index 00000000..0a7a9ebc --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/images/svg/gift.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/images/svg/keyboard.svg b/packages/dashboard/src/plugins/vuetify/images/svg/keyboard.svg new file mode 100644 index 00000000..e1c730cd --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/images/svg/keyboard.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/images/svg/laptop.svg b/packages/dashboard/src/plugins/vuetify/images/svg/laptop.svg new file mode 100644 index 00000000..2e53637a --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/images/svg/laptop.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/images/svg/lightbulb.svg b/packages/dashboard/src/plugins/vuetify/images/svg/lightbulb.svg new file mode 100644 index 00000000..2fc663a9 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/images/svg/lightbulb.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/images/svg/paypal.svg b/packages/dashboard/src/plugins/vuetify/images/svg/paypal.svg new file mode 100644 index 00000000..53f84df5 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/images/svg/paypal.svg @@ -0,0 +1,19 @@ + + + paypal + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/dashboard/src/plugins/vuetify/images/svg/rocket.svg b/packages/dashboard/src/plugins/vuetify/images/svg/rocket.svg new file mode 100644 index 00000000..31c9ca09 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/images/svg/rocket.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/index.ts b/packages/dashboard/src/plugins/vuetify/index.ts new file mode 100644 index 00000000..9d7789dc --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/index.ts @@ -0,0 +1,18 @@ +import { createVuetify } from 'vuetify' +import { VBtn } from 'vuetify/components' +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, +}) diff --git a/packages/dashboard/src/plugins/vuetify/layouts.ts b/packages/dashboard/src/plugins/vuetify/layouts.ts new file mode 100644 index 00000000..076a26c5 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/layouts.ts @@ -0,0 +1,6 @@ +import { createLayouts } from '@layouts' +import '@layouts/styles/index.scss' +import { layoutConfig } from '@themeConfig' + +// ℹī¸ We generate layout config from our themeConfig so you don't have to write config twice +export default createLayouts(layoutConfig) diff --git a/packages/dashboard/src/plugins/vuetify/layouts/blank.vue b/packages/dashboard/src/plugins/vuetify/layouts/blank.vue new file mode 100644 index 00000000..f58fc214 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/layouts/blank.vue @@ -0,0 +1,21 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/layouts/components/DefaultLayoutWithHorizontalNav.vue b/packages/dashboard/src/plugins/vuetify/layouts/components/DefaultLayoutWithHorizontalNav.vue new file mode 100644 index 00000000..2713a6bc --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/layouts/components/DefaultLayoutWithHorizontalNav.vue @@ -0,0 +1,48 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/layouts/components/DefaultLayoutWithVerticalNav.vue b/packages/dashboard/src/plugins/vuetify/layouts/components/DefaultLayoutWithVerticalNav.vue new file mode 100644 index 00000000..8bfed21b --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/layouts/components/DefaultLayoutWithVerticalNav.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/layouts/components/Footer.vue b/packages/dashboard/src/plugins/vuetify/layouts/components/Footer.vue new file mode 100644 index 00000000..8eaa3f1b --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/layouts/components/Footer.vue @@ -0,0 +1,37 @@ + diff --git a/packages/dashboard/src/plugins/vuetify/layouts/components/NavBarI18n.vue b/packages/dashboard/src/plugins/vuetify/layouts/components/NavBarI18n.vue new file mode 100644 index 00000000..2afdc854 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/layouts/components/NavBarI18n.vue @@ -0,0 +1,33 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/layouts/components/NavBarNotifications.vue b/packages/dashboard/src/plugins/vuetify/layouts/components/NavBarNotifications.vue new file mode 100644 index 00000000..e5440054 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/layouts/components/NavBarNotifications.vue @@ -0,0 +1,88 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/layouts/components/NavSearchBar.vue b/packages/dashboard/src/plugins/vuetify/layouts/components/NavSearchBar.vue new file mode 100644 index 00000000..f501f4b7 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/layouts/components/NavSearchBar.vue @@ -0,0 +1,170 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/layouts/components/NavbarShortcuts.vue b/packages/dashboard/src/plugins/vuetify/layouts/components/NavbarShortcuts.vue new file mode 100644 index 00000000..cdd1688f --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/layouts/components/NavbarShortcuts.vue @@ -0,0 +1,44 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/layouts/components/NavbarThemeSwitcher.vue b/packages/dashboard/src/plugins/vuetify/layouts/components/NavbarThemeSwitcher.vue new file mode 100644 index 00000000..10d1adc5 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/layouts/components/NavbarThemeSwitcher.vue @@ -0,0 +1,22 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/layouts/components/UserProfile.vue b/packages/dashboard/src/plugins/vuetify/layouts/components/UserProfile.vue new file mode 100644 index 00000000..6f58f09b --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/layouts/components/UserProfile.vue @@ -0,0 +1,130 @@ + + + diff --git a/packages/dashboard/src/plugins/vuetify/layouts/default.vue b/packages/dashboard/src/plugins/vuetify/layouts/default.vue new file mode 100644 index 00000000..94f1cea4 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/layouts/default.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/packages/dashboard/src/plugins/vuetify/navigation/horizontal/index.ts b/packages/dashboard/src/plugins/vuetify/navigation/horizontal/index.ts new file mode 100644 index 00000000..c4633afc --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/navigation/horizontal/index.ts @@ -0,0 +1,14 @@ +import type { HorizontalNavItems } from '@layouts/types' + +export default [ + { + title: 'Home', + to: { name: 'index' }, + icon: { icon: 'mdi-home-outline' }, + }, + { + title: 'Second page', + to: { name: 'second-page' }, + icon: { icon: 'mdi-file-document-outline' }, + }, +] as HorizontalNavItems diff --git a/packages/dashboard/src/plugins/vuetify/navigation/vertical/index.ts b/packages/dashboard/src/plugins/vuetify/navigation/vertical/index.ts new file mode 100644 index 00000000..f5b8eb0c --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/navigation/vertical/index.ts @@ -0,0 +1,14 @@ +import type { VerticalNavItems } from '@/@layouts/types' + +export default [ + { + title: 'Home', + to: { name: 'index' }, + icon: { icon: 'mdi-home-outline' }, + }, + { + title: 'Second page', + to: { name: 'second-page' }, + icon: { icon: 'mdi-file-document-outline' }, + }, +] as VerticalNavItems diff --git a/packages/dashboard/src/plugins/vuetify/pages/[...all].vue b/packages/dashboard/src/plugins/vuetify/pages/[...all].vue new file mode 100644 index 00000000..e5a39b58 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/pages/[...all].vue @@ -0,0 +1,40 @@ + + + + + + + +meta: + layout: blank + action: read + subject: Auth + diff --git a/packages/dashboard/src/plugins/vuetify/pages/index.vue b/packages/dashboard/src/plugins/vuetify/pages/index.vue new file mode 100644 index 00000000..1eb14cf3 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/pages/index.vue @@ -0,0 +1,25 @@ + diff --git a/packages/dashboard/src/plugins/vuetify/pages/login.vue b/packages/dashboard/src/plugins/vuetify/pages/login.vue new file mode 100644 index 00000000..268da227 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/pages/login.vue @@ -0,0 +1,129 @@ + + + + + + + +meta: + layout: blank + action: read + subject: Auth + redirectIfLoggedIn: true + diff --git a/packages/dashboard/src/plugins/vuetify/pages/second-page.vue b/packages/dashboard/src/plugins/vuetify/pages/second-page.vue new file mode 100644 index 00000000..630d8ab7 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/pages/second-page.vue @@ -0,0 +1,13 @@ + diff --git a/packages/dashboard/src/plugins/vuetify/router/index.ts b/packages/dashboard/src/plugins/vuetify/router/index.ts new file mode 100644 index 00000000..34320b13 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/router/index.ts @@ -0,0 +1,14 @@ +import { setupLayouts } from "virtual:generated-layouts"; +import { createRouter, createWebHistory } from "vue-router"; +import routes from "~pages"; +import { routes as route2 } from "@/router"; +import { canNavigate } from "@layouts/plugins/casl"; + +const router = createRouter({ + history: createWebHistory(import.meta.env.BASE_URL), + routes: [...setupLayouts(routes), ...route2], +}); + +// Docs: https://router.vuejs.org/guide/advanced/navigation-guards.html#global-before-guards + +export default router; diff --git a/packages/dashboard/src/plugins/vuetify/router/utils.ts b/packages/dashboard/src/plugins/vuetify/router/utils.ts new file mode 100644 index 00000000..bb79e180 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/router/utils.ts @@ -0,0 +1,6 @@ +/** + * Return if user is logged in + * This is completely up to you and how you want to store the token in your frontend application + * e.g. If you are using cookies to store the application please update this function + */ +export const isUserLoggedIn = () => !!(localStorage.getItem('userData') && localStorage.getItem('accessToken')) diff --git a/packages/dashboard/src/plugins/vuetify/styles/styles.scss b/packages/dashboard/src/plugins/vuetify/styles/styles.scss new file mode 100644 index 00000000..3118a334 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/styles/styles.scss @@ -0,0 +1 @@ +// Write your overrides diff --git a/packages/dashboard/src/plugins/vuetify/styles/variables/_template.scss b/packages/dashboard/src/plugins/vuetify/styles/variables/_template.scss new file mode 100644 index 00000000..a8795573 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/styles/variables/_template.scss @@ -0,0 +1,6 @@ +@forward "@/plugins/vuetify/@core/scss/template/variables"; + +// ℹī¸ Remove above import and uncomment below to override core variables. +// @forward "@/plugins/vuetify/@core/scss/template/variables" with ( +// $: +// ) diff --git a/packages/dashboard/src/plugins/vuetify/styles/variables/_vuetify.scss b/packages/dashboard/src/plugins/vuetify/styles/variables/_vuetify.scss new file mode 100644 index 00000000..574e8242 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/styles/variables/_vuetify.scss @@ -0,0 +1,7 @@ +// ❗ Path must be relative +@forward "../../@core/scss/template/libs/vuetify/variables"; + +// ℹī¸ Remove above import and uncomment below to override core variables. +// @forward "../../@core/scss/template/libs/vuetify/variables" with ( +// $: +// ) diff --git a/packages/dashboard/src/plugins/vuetify/theme.ts b/packages/dashboard/src/plugins/vuetify/theme.ts new file mode 100644 index 00000000..dfe894a5 --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/theme.ts @@ -0,0 +1,106 @@ +import type { VuetifyOptions } from 'vuetify' +import { resolveVuetifyTheme } from './@core/utils/vuetify' +import { themeConfig } from '@themeConfig' + +export const staticPrimaryColor = '#666CFF' + +const theme: VuetifyOptions['theme'] = { + defaultTheme: resolveVuetifyTheme(), + themes: { + light: { + dark: false, + colors: { + 'primary': localStorage.getItem(`${themeConfig.app.title}-lightThemePrimaryColor`) || staticPrimaryColor, + 'on-primary': '#fff', + 'secondary': '#6D788D', + 'on-secondary': '#fff', + 'success': '#72E128', + 'on-success': '#fff', + 'info': '#26C6F9', + 'on-info': '#fff', + 'warning': '#FDB528', + 'on-warning': '#fff', + 'error': '#FF4D49', + 'background': '#F7F7F9', + 'on-background': '#4c4e64', + 'on-surface': '#4c4e64', + 'perfect-scrollbar-thumb': '#DBDADE', + 'snackbar-background': '#212121', + 'tooltip-background': '#262732', + 'alert-background': '#F7F7F9', + 'grey-50': '#FAFAFA', + 'grey-100': '#F4F5FA', + 'grey-200': '#F5F5F7', + 'grey-300': '#E0E0E0', + 'grey-400': '#BDBDBD', + 'grey-500': '#9E9E9E', + 'grey-600': '#757575', + 'grey-700': '#616161', + 'grey-800': '#424242', + 'grey-900': '#212121', + }, + + variables: { + 'code-color': '#d400ff', + 'border-color': '#4c4e64', + 'hover-opacity': 0.05, + 'overlay-scrim-background': '#4C4E64', + 'overlay-scrim-opacity': 0.5, + + // Shadows + 'shadow-key-umbra-opacity': 'rgba(var(--v-theme-on-surface), 0.08)', + 'shadow-key-penumbra-opacity': 'rgba(var(--v-theme-on-surface), 0.05)', + 'shadow-key-ambient-opacity': 'rgba(var(--v-theme-on-surface), 0.03)', + }, + }, + dark: { + dark: true, + colors: { + 'primary': localStorage.getItem(`${themeConfig.app.title}-darkThemePrimaryColor`) || staticPrimaryColor, + 'on-primary': '#fff', + 'secondary': '#6D788D', + 'on-secondary': '#fff', + 'success': '#72E128', + 'on-success': '#fff', + 'info': '#26C6F9', + 'on-info': '#fff', + 'warning': '#FDB528', + 'on-warning': '#fff', + 'error': '#FF4D49', + 'background': '#282A42', + 'on-background': '#eaeaff', + 'surface': '#30334E', + 'on-surface': '#eaeaff', + 'perfect-scrollbar-thumb': '#4A5072', + 'snackbar-background': '#F5F5F5', + 'on-snackbar-background': '#30334E', + 'tooltip-background': '#464A65', + 'alert-background': '#282A42', + 'grey-50': '#2A2E42', + 'grey-100': '#41435c', + 'grey-200': '#3A3E5B', + 'grey-300': '#5E6692', + 'grey-400': '#7983BB', + 'grey-500': '#8692D0', + 'grey-600': '#AAB3DE', + 'grey-700': '#B6BEE3', + 'grey-800': '#CFD3EC', + 'grey-900': '#E7E9F6', + }, + variables: { + 'code-color': '#d400ff', + 'border-color': '#eaeaff', + 'hover-opacity': 0.05, + 'overlay-scrim-background': '#101121', + 'overlay-scrim-opacity': 0.6, + + // Shadows + 'shadow-key-umbra-opacity': 'rgba(20, 21, 33, 0.08)', + 'shadow-key-penumbra-opacity': 'rgba(20, 21, 33, 0.05)', + 'shadow-key-ambient-opacity': 'rgba(20, 21, 33, 0.03)', + }, + }, + }, +} + +export default theme diff --git a/packages/dashboard/src/plugins/vuetify/webfontloader.ts b/packages/dashboard/src/plugins/vuetify/webfontloader.ts new file mode 100644 index 00000000..10a3ba0c --- /dev/null +++ b/packages/dashboard/src/plugins/vuetify/webfontloader.ts @@ -0,0 +1,16 @@ +/** + * plugins/webfontloader.js + * + * webfontloader documentation: https://github.com/typekit/webfontloader + */ + +export async function loadFonts() { + const webFontLoader = await import(/* webpackChunkName: "webfontloader" */'webfontloader') + + webFontLoader.load({ + google: { + api: 'https://fonts.googleapis.com/css2', + families: ['Inter:wght@300;400;500;600;700;900&display=swap'], + }, + }) +} diff --git a/packages/dashboard/src/router/index.ts b/packages/dashboard/src/router/index.ts index 4d973311..bbeffd54 100644 --- a/packages/dashboard/src/router/index.ts +++ b/packages/dashboard/src/router/index.ts @@ -1,36 +1,50 @@ -import { createRouter, createWebHistory, type RouteRecordRaw } from "vue-router"; +import { + createRouter, + createWebHistory, + type RouteRecordRaw, +} from "vue-router"; import HomeView from "../views/HomeView.vue"; -import DashboardLayout from "../views/DashboardLayout.vue"; +import DashboardLayout from "@/plugins/vuetify/layouts/default.vue"; -const modules: Record = import.meta.glob('../modules/*/router.ts', {eager: true}) -let children: RouteRecordRaw[] = [] +const modules: Record = import.meta.glob( + "../modules/*/router.ts", + { eager: true } +); +let children: RouteRecordRaw[] = []; -for(const path in modules) { - children = children.concat(modules[path].routes) +for (const path in modules) { + children = children.concat(modules[path].routes); } -console.log(children) +console.log(children); +export const routes = [ + { + path: "/about", + name: "about", + component: () => import("../views/AboutView.vue"), + }, + // setup all modules here. + { + path: "/:chain", + component: DashboardLayout, + children: [ + { + path: "", + component: () => import("../views/AboutView.vue"), + }, + ...children, + ], + }, + { + path: "/", + name: "home", + component: HomeView, + }, +]; const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), - routes: [ - { - path: "/", - name: "home", - component: HomeView, - }, - { - path: "/about", - name: "about", - component: () => import("../views/AboutView.vue"), - }, - // setup all modules here. - { - path: '/:chain', - component: DashboardLayout, - children, - }, - ], + routes, }); export default router; diff --git a/packages/dashboard/src/scss/_variables.scss b/packages/dashboard/src/scss/_variables.scss deleted file mode 100644 index f15480b5..00000000 --- a/packages/dashboard/src/scss/_variables.scss +++ /dev/null @@ -1,54 +0,0 @@ -/* - TODO: Add docs on when to use placeholder vs when to use SASS variable - - Placeholder - - When we want to keep customization to our self between templates use it - - Variables - - When we want to allow customization from both user and our side - - You can also use variable for consistency (e.g. mx 1 rem should be applied to both vertical nav items and vertical nav header) -*/ - -// @forward "@layouts/styles/variables" with ( -// // Adjust z-index so vertical nav & overlay stays on top of v-layout in v-main. E.g. Email app -// $layout-vertical-nav-z-index: 1004, -// $layout-overlay-z-index: 1003, -// ); -// @use "@layouts/styles/variables" as *; - -$css-vars: ( - /* - - Skins - - CSS var - - Theme - */ - "default": ( - "--v-theme-background": ( - "light": (244 ,245, 250), - "dark": (40 ,36, 61), - ), - "--v-theme-surface": ( - "light": (255, 255, 255), - "dark": (49, 45, 75), - ), - ), - "bordered": ( - "--v-theme-background": ( - "light": (255 ,255, 255), - "dark": (49, 45, 75), - ), - "--v-theme-surface": ( - "light": (255, 255, 255), - "dark": (49, 45, 75), - ), - ), -) !default; -$theme-colors-name: ( - "primary", - "secondary", - "error", - "info", - "success", - "warning" -) !default; - diff --git a/packages/dashboard/src/scss/index.scss b/packages/dashboard/src/scss/index.scss deleted file mode 100644 index f6890421..00000000 --- a/packages/dashboard/src/scss/index.scss +++ /dev/null @@ -1,7 +0,0 @@ -// main.scss -@use '_variables'; - -@use 'vuetify/settings' with ( - $color-pack: false, - $utilities: false, -); \ No newline at end of file diff --git a/packages/dashboard/themeConfig.ts b/packages/dashboard/themeConfig.ts new file mode 100644 index 00000000..38c995f1 --- /dev/null +++ b/packages/dashboard/themeConfig.ts @@ -0,0 +1,50 @@ +import { breakpointsVuetify } from '@vueuse/core' + +import { VIcon } from 'vuetify/components' + +// ❗ Logo SVG must be imported with ?raw suffix +import logo from '@/plugins/vuetify/images/logo.svg?raw' + +import { defineThemeConfig } from '@/plugins/vuetify/@core' +import { RouteTransitions, Skins } from '@/plugins/vuetify/@core/enums' +import { AppContentLayoutNav, ContentWidth, FooterType, NavbarType } from '@layouts/enums' + +export const { themeConfig, layoutConfig } = defineThemeConfig({ + app: { + title: 'Ping Dashboard', + + // ❗ if you have SVG logo and want it to adapt according to theme color, you have to apply color as `color: rgb(var(--v-global-theme-primary))` + logo: h('div', { innerHTML: logo, style: 'line-height:0; color: rgb(var(--v-global-theme-primary))' }), + contentWidth: ContentWidth.Boxed, + contentLayoutNav: AppContentLayoutNav.Vertical, + overlayNavFromBreakpoint: breakpointsVuetify.md + 16, // 16 for scrollbar. Docs: https://next.vuetifyjs.com/en/features/display-and-platform/ + enableI18n: false, + theme: 'system', + isRtl: false, + skin: Skins.Default, + routeTransition: RouteTransitions.Fade, + iconRenderer: VIcon, + }, + navbar: { + type: NavbarType.Sticky, + navbarBlur: true, + }, + footer: { type: FooterType.Static }, + verticalNav: { + isVerticalNavCollapsed: false, + defaultNavItemIconProps: { icon: 'mdi-circle' }, + isVerticalNavSemiDark: false, + }, + horizontalNav: { + type: 'sticky', + transition: 'slide-y-reverse-transition', + }, + icons: { + chevronDown: { icon: 'mdi-chevron-down' }, + chevronRight: { icon: 'mdi-chevron-right' }, + close: { icon: 'mdi-close' }, + verticalNavPinned: { icon: 'custom-vertical-nav-header-arrow', size: 22 }, + verticalNavUnPinned: { icon: 'custom-vertical-nav-header-arrow', size: 22 }, + sectionTitlePlaceholder: { icon: 'mdi-minus' }, + }, +}) diff --git a/packages/dashboard/vite.config.ts b/packages/dashboard/vite.config.ts index e21098c6..aea7bf84 100644 --- a/packages/dashboard/vite.config.ts +++ b/packages/dashboard/vite.config.ts @@ -2,26 +2,68 @@ import { fileURLToPath, URL } from "node:url"; import { defineConfig } from "vite"; import vue from "@vitejs/plugin-vue"; +import vueJsx from "@vitejs/plugin-vue-jsx"; +import vuetify from "vite-plugin-vuetify"; +import Layouts from "vite-plugin-vue-layouts"; +import DefineOptions from "unplugin-vue-define-options/vite"; +import Components from "unplugin-vue-components/vite"; +import AutoImport from "unplugin-auto-import/vite"; +import Pages from "vite-plugin-pages"; // https://vitejs.dev/config/ export default defineConfig({ - plugins: [vue()], + plugins: [ + vue(), + vueJsx(), + vuetify({ + styles: { + configFile: "src/plugins/vuetify/styles/variables/_vuetify.scss", + }, + }), + Pages({ + dirs: ["./src/plugins/vuetify/pages"], + }), + Layouts({ + layoutsDirs: "./src/plugins/vuetify/layouts/", + }), + Components({ + dirs: ["src/plugins/vuetify/@core/components"], + dts: true, + }), + AutoImport({ + imports: ["vue", "vue-router", "@vueuse/core", "@vueuse/math", "pinia"], + vueTemplate: true, + }), + DefineOptions(), + ], resolve: { alias: { "@": fileURLToPath(new URL("./src", import.meta.url)), + "@themeConfig": fileURLToPath( + new URL("./themeConfig.ts", import.meta.url) + ), + "@configured-variables": fileURLToPath( + new URL( + "./src/plugins/vuetify/styles/variables/_template.scss", + import.meta.url + ) + ), + "@core": fileURLToPath( + new URL("./src/plugins/vuetify/@core", import.meta.url) + ), + "@layouts": fileURLToPath( + new URL("./src/plugins/vuetify/@layouts", import.meta.url) + ), + "@images": fileURLToPath( + new URL("./src/plugins/vuetify/images/", import.meta.url) + ), + "@styles": fileURLToPath( + new URL("./src/plugins/vuetify/styles/", import.meta.url) + ), }, }, - css: { - preprocessorOptions: { - sass: { - additionalData: [ - // Make the variables defined in these files available to all components, without requiring an explicit - // @import of the files themselves - '@import "./src/scss/index"', - '@import "vuetify/src/styles/settings/_variables"', - '', // end with newline - ].join('\n'), - }, - }, + optimizeDeps: { + exclude: ["vuetify"], + entries: ["./src/**/*.vue"], }, }); diff --git a/yarn.lock b/yarn.lock index 16f80ce0..a7be773d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,18 +2,210 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0": +"@ampproject/remapping@^2.1.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" + integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== + dependencies: + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@antfu/utils@^0.7.2": + version "0.7.2" + resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-0.7.2.tgz#3bb6f37a6b188056fe9e2f363b6aa735ed65d7ca" + integrity sha512-vy9fM3pIxZmX07dL+VX1aZe7ynZ+YyB0jY+jE6r3hOK6GNY2t6W8rzpFC4tgpbXUYABkFQwgJq2XYXlxbXAI0g== + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== dependencies: "@babel/highlight" "^7.18.6" -"@babel/helper-validator-identifier@^7.18.6": +"@babel/compat-data@^7.20.5": + version "7.20.14" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.14.tgz#4106fc8b755f3e3ee0a0a7c27dde5de1d2b2baf8" + integrity sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw== + +"@babel/core@^7.20.12", "@babel/core@^7.20.5": + version "7.20.12" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.12.tgz#7930db57443c6714ad216953d1356dac0eb8496d" + integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.20.7" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helpers" "^7.20.7" + "@babel/parser" "^7.20.7" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.12" + "@babel/types" "^7.20.7" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.2" + semver "^6.3.0" + +"@babel/generator@^7.20.7": + version "7.20.14" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.14.tgz#9fa772c9f86a46c6ac9b321039400712b96f64ce" + integrity sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg== + dependencies: + "@babel/types" "^7.20.7" + "@jridgewell/gen-mapping" "^0.3.2" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" + integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-compilation-targets@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" + integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== + dependencies: + "@babel/compat-data" "^7.20.5" + "@babel/helper-validator-option" "^7.18.6" + browserslist "^4.21.3" + lru-cache "^5.1.1" + semver "^6.3.0" + +"@babel/helper-create-class-features-plugin@^7.20.12": + version "7.20.12" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz#4349b928e79be05ed2d1643b20b99bb87c503819" + integrity sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-member-expression-to-functions" "^7.20.7" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-replace-supers" "^7.20.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/helper-split-export-declaration" "^7.18.6" + +"@babel/helper-environment-visitor@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" + integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== + +"@babel/helper-function-name@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" + integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== + dependencies: + "@babel/template" "^7.18.10" + "@babel/types" "^7.19.0" + +"@babel/helper-hoist-variables@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" + integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-member-expression-to-functions@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz#a6f26e919582275a93c3aa6594756d71b0bb7f05" + integrity sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw== + dependencies: + "@babel/types" "^7.20.7" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" + integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-module-transforms@^7.20.11": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0" + integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.20.2" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.10" + "@babel/types" "^7.20.7" + +"@babel/helper-optimise-call-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" + integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" + integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== + +"@babel/helper-replace-supers@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331" + integrity sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.20.7" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.7" + "@babel/types" "^7.20.7" + +"@babel/helper-simple-access@^7.20.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" + integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== + dependencies: + "@babel/types" "^7.20.2" + +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" + integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== + dependencies: + "@babel/types" "^7.20.0" + +"@babel/helper-split-export-declaration@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-string-parser@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" + integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== + +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": version "7.19.1" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== +"@babel/helper-validator-option@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" + integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== + +"@babel/helpers@^7.20.7": + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.13.tgz#e3cb731fb70dc5337134cadc24cbbad31cc87ad2" + integrity sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg== + dependencies: + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.13" + "@babel/types" "^7.20.7" + "@babel/highlight@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" @@ -23,11 +215,85 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.16.4": +"@babel/parser@^7.16.4", "@babel/parser@^7.20.13", "@babel/parser@^7.20.5", "@babel/parser@^7.20.7": version "7.20.15" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.15.tgz#eec9f36d8eaf0948bb88c87a46784b5ee9fd0c89" integrity sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg== +"@babel/plugin-syntax-jsx@^7.0.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" + integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-typescript@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz#4e9a0cfc769c85689b77a2e642d24e9f697fc8c7" + integrity sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.19.0" + +"@babel/plugin-transform-typescript@^7.20.2": + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.13.tgz#e3581b356b8694f6ff450211fe6774eaff8d25ab" + integrity sha512-O7I/THxarGcDZxkgWKMUrk7NK1/WbHAg3Xx86gqS6x9MTrNL6AwIluuZ96ms4xeDe6AVx6rjHbWHP7x26EPQBA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.20.12" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-typescript" "^7.20.0" + +"@babel/standalone@^7.20.12": + version "7.20.15" + resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.20.15.tgz#ef82f1a9789d21d8b23f74d9fa8acecbe6ced02c" + integrity sha512-B3LmZ1NHlTb2eFEaw8rftZc730Wh9MlmsH8ubb6IjsNoIk9+SQ2aAA0nrm/1806+PftPRAACPClmKTu8PG7Tew== + +"@babel/template@^7.0.0", "@babel/template@^7.18.10", "@babel/template@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" + integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + +"@babel/traverse@^7.0.0", "@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.13", "@babel/traverse@^7.20.7": + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.13.tgz#817c1ba13d11accca89478bd5481b2d168d07473" + integrity sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.20.7" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.20.13" + "@babel/types" "^7.20.7" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" + integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== + dependencies: + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + +"@casl/ability@^6.3.3": + version "6.3.3" + resolved "https://registry.yarnpkg.com/@casl/ability/-/ability-6.3.3.tgz#219e958f191cd2163482abb6a5196593d319fc2a" + integrity sha512-UzbqsE9etu6QzZrRmqIyVun2kztAzJ46Tz7lC/2P2buCE6B6Ll7Vptz7JTQtGwapLbeKo2jS7dL966TVOQ7x4g== + dependencies: + "@ucast/mongo2js" "^1.3.0" + +"@casl/vue@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@casl/vue/-/vue-2.2.1.tgz#decb6966a982dabd41c26379692dfde2bf67793a" + integrity sha512-1OeGhT4A7VBkEACacF2ZlHkPiFJvyFy9h2PhBnMoetFDojMHbrn3ZjKgL5zQ4wSIrTQo9KbbzG3f0uAei2GKCQ== + "@esbuild/android-arm64@0.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz#cf91e86df127aa3d141744edafcba0abdc577d23" @@ -153,6 +419,18 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" +"@floating-ui/core@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.2.0.tgz#ae7ae7923d41f3d84cb2fd88740a89436610bbec" + integrity sha512-GHUXPEhMEmTpnpIfesFA2KAoMJPb1SPQw964tToQwt+BbGXdhqTCWT1rOb0VURGylsxsYxiGMnseJ3IlclVpVA== + +"@floating-ui/dom@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.2.0.tgz#a60212069cc58961c478037c30eba4b191c75316" + integrity sha512-QXzg57o1cjLz3cGETzKXjI3kx1xyS49DW9l7kV2jw2c8Yftd434t2hllX0sVGn2Q8MtcW/4pNm8bfE1/4n6mng== + dependencies: + "@floating-ui/core" "^1.2.0" + "@gar/promisify@^1.1.3": version "1.1.3" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" @@ -182,11 +460,63 @@ resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340" integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q== +"@iconify/types@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@iconify/types/-/types-2.0.0.tgz#ab0e9ea681d6c8a1214f30cd741fe3a20cc57f57" + integrity sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg== + +"@iconify/vue@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@iconify/vue/-/vue-4.1.0.tgz#ce3dc1b34b08fe2a1e34ef9e0c860796a18e76ea" + integrity sha512-rBQVxNoSDooqgWkQg2MqkIHkH/huNuvXGqui5wijc1zLnU7TKzbBHW9VGmbnV4asNTmIHmqV4Nvt0M2rZ/9nHA== + dependencies: + "@iconify/types" "^2.0.0" + "@isaacs/string-locale-compare@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b" integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ== +"@jridgewell/gen-mapping@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" + integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/gen-mapping@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/trace-mapping@^0.3.9": + version "0.3.17" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" + integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + "@lerna/add@6.4.1": version "6.4.1" resolved "https://registry.yarnpkg.com/@lerna/add/-/add-6.4.1.tgz#fa20fe9ff875dc5758141262c8cde0d9a6481ec4" @@ -1052,6 +1382,49 @@ dependencies: nx "15.6.3" +"@nuxt/kit@^3.1.1": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@nuxt/kit/-/kit-3.1.2.tgz#bf5f932b8a82f40bcfec4c1037021f0a75df4582" + integrity sha512-m8/AF8hBJiG7aTx2CpiDGeLYYz30fUoPbJ9XiSmHqRIXv1goAFWHSkzWfRNEsoAAbMHf76oB917wVUQ3VSSQHg== + dependencies: + "@nuxt/schema" "3.1.2" + c12 "^1.1.0" + consola "^2.15.3" + defu "^6.1.2" + globby "^13.1.3" + hash-sum "^2.0.0" + ignore "^5.2.4" + jiti "^1.16.2" + knitwork "^1.0.0" + lodash.template "^4.5.0" + mlly "^1.1.0" + pathe "^1.1.0" + pkg-types "^1.0.1" + scule "^1.0.0" + semver "^7.3.8" + unctx "^2.1.1" + unimport "^2.1.0" + untyped "^1.2.2" + +"@nuxt/schema@3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@nuxt/schema/-/schema-3.1.2.tgz#a916ecfa96c04553403f7da8d1e7058f65cb3ad1" + integrity sha512-wru9LhRXTa6WQlx7c0oYrtvJY7TiVlkBKXY5Rsmfo0StJuWohgZiReu9fu6z6GU4MzZlX25TVjwvq9Q7bNVbSQ== + dependencies: + c12 "^1.1.0" + create-require "^1.1.1" + defu "^6.1.2" + hookable "^5.4.2" + jiti "^1.16.2" + pathe "^1.1.0" + pkg-types "^1.0.1" + postcss-import-resolver "^2.0.0" + scule "^1.0.0" + std-env "^3.3.2" + ufo "^1.0.1" + unimport "^2.1.0" + untyped "^1.2.2" + "@octokit/auth-token@^3.0.0": version "3.0.3" resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.3.tgz#ce7e48a3166731f26068d7a7a7996b5da58cbe0c" @@ -1173,6 +1546,15 @@ dependencies: esquery "^1.0.1" +"@rollup/pluginutils@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz#012b8f53c71e4f6f9cb317e311df1404f56e7a33" + integrity sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" + "@rushstack/eslint-patch@^1.1.4": version "1.2.0" resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz#8be36a1f66f3265389e90b5f9c9962146758f728" @@ -1183,6 +1565,23 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + +"@types/debug@^4.1.7": + version "4.1.7" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" + integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== + dependencies: + "@types/ms" "*" + +"@types/estree@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" + integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== + "@types/json-schema@^7.0.9": version "7.0.11" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" @@ -1198,6 +1597,11 @@ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== +"@types/ms@*": + version "0.7.31" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" + integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== + "@types/node@^18.11.12": version "18.11.19" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.19.tgz#35e26df9ec441ab99d73e99e9aca82935eea216d" @@ -1218,6 +1622,11 @@ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== +"@types/web-bluetooth@^0.0.16": + version "0.0.16" + resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz#1d12873a8e49567371f2a75fe3e7f7edca6662d8" + integrity sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ== + "@typescript-eslint/eslint-plugin@^5.0.0": version "5.50.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.50.0.tgz#fb48c31cadc853ffc1dc35373f56b5e2a8908fe9" @@ -1302,6 +1711,43 @@ "@typescript-eslint/types" "5.50.0" eslint-visitor-keys "^3.3.0" +"@ucast/core@^1.0.0", "@ucast/core@^1.4.1", "@ucast/core@^1.6.1": + version "1.10.1" + resolved "https://registry.yarnpkg.com/@ucast/core/-/core-1.10.1.tgz#03a77a7804bcb5002a5cad3681e86cd1897e2e1f" + integrity sha512-sXKbvQiagjFh2JCpaHUa64P4UdJbOxYeC5xiZFn8y6iYdb0WkismduE+RmiJrIjw/eLDYmIEXiQeIYYowmkcAw== + +"@ucast/js@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@ucast/js/-/js-3.0.2.tgz#862838ee68112c6c262d4f4693cc592ba83157e0" + integrity sha512-zxNkdIPVvqJjHI7D/iK8Aai1+59yqU+N7bpHFodVmiTN7ukeNiGGpNmmSjQgsUw7eNcEBnPrZHNzp5UBxwmaPw== + dependencies: + "@ucast/core" "^1.0.0" + +"@ucast/mongo2js@^1.3.0": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@ucast/mongo2js/-/mongo2js-1.3.3.tgz#a683a59cea22887a72e4302f3826e41ccf51dbbe" + integrity sha512-sBPtMUYg+hRnYeVYKL+ATm8FaRPdlU9PijMhGYKgsPGjV9J4Ks41ytIjGayvKUnBOEhiCaKUUnY4qPeifdqATw== + dependencies: + "@ucast/core" "^1.6.1" + "@ucast/js" "^3.0.0" + "@ucast/mongo" "^2.4.0" + +"@ucast/mongo@^2.4.0": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@ucast/mongo/-/mongo-2.4.2.tgz#a8a1c32e65ccab623be023e6cedb11d136d50f19" + integrity sha512-/zH1TdBJlYGKKD+Wh0oyD+aBvDSWrwHcD8b4tUL9UgHLhzHtkEnMVFuxbw3SRIRsAa01wmy06+LWt+WoZdj1Bw== + dependencies: + "@ucast/core" "^1.4.1" + +"@vitejs/plugin-vue-jsx@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.0.0.tgz#42e89d6d9eb89604d109ff9a615d77c3c080dd25" + integrity sha512-vurkuzgac5SYuxd2HUZqAFAWGTF10diKBwJNbCvnWijNZfXd+7jMtqjPFbGt7idOJUn584fP1Ar9j/GN2jQ3Ew== + dependencies: + "@babel/core" "^7.20.5" + "@babel/plugin-transform-typescript" "^7.20.2" + "@vue/babel-plugin-jsx" "^1.1.1" + "@vitejs/plugin-vue@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-4.0.0.tgz#93815beffd23db46288c787352a8ea31a0c03e5e" @@ -1351,6 +1797,36 @@ "@volar/typescript" "1.0.24" "@volar/vue-language-core" "1.0.24" +"@vue-macros/common@~0.13.8": + version "0.13.8" + resolved "https://registry.yarnpkg.com/@vue-macros/common/-/common-0.13.8.tgz#c36f12003fb35df4a0f936e09b08a10e004202ba" + integrity sha512-Fs8PNCR117MpR4MQYLupG6qary3n6ZKIkuuaJbmYJ+n3QUiO9LmBs1GgF9L+RQ+M4UDdfuk7LbvZwnWJ89MABA== + dependencies: + "@babel/types" "^7.20.7" + "@vue/compiler-sfc" "^3.2.45" + local-pkg "^0.4.2" + magic-string "^0.27.0" + +"@vue/babel-helper-vue-transform-on@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz#9b9c691cd06fc855221a2475c3cc831d774bc7dc" + integrity sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA== + +"@vue/babel-plugin-jsx@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz#0c5bac27880d23f89894cd036a37b55ef61ddfc1" + integrity sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.0.0" + "@babel/template" "^7.0.0" + "@babel/traverse" "^7.0.0" + "@babel/types" "^7.0.0" + "@vue/babel-helper-vue-transform-on" "^1.0.2" + camelcase "^6.0.0" + html-tags "^3.1.0" + svg-tags "^1.0.0" + "@vue/compiler-core@3.2.47": version "3.2.47" resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.47.tgz#3e07c684d74897ac9aa5922c520741f3029267f8" @@ -1369,7 +1845,7 @@ "@vue/compiler-core" "3.2.47" "@vue/shared" "3.2.47" -"@vue/compiler-sfc@3.2.47", "@vue/compiler-sfc@^3.2.45": +"@vue/compiler-sfc@3.2.47", "@vue/compiler-sfc@^3.2.31", "@vue/compiler-sfc@^3.2.45": version "3.2.47" resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz#1bdc36f6cdc1643f72e2c397eb1a398f5004ad3d" integrity sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ== @@ -1468,6 +1944,44 @@ resolved "https://registry.yarnpkg.com/@vue/tsconfig/-/tsconfig-0.1.3.tgz#4a61dbd29783d01ddab504276dcf0c2b6988654f" integrity sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg== +"@vuetify/loader-shared@^1.7.1": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@vuetify/loader-shared/-/loader-shared-1.7.1.tgz#0f63a3d41b6df29a2db1ff438aa1819b237c37a3" + integrity sha512-kLUvuAed6RCvkeeTNJzuy14pqnkur8lTuner7v7pNE/kVhPR97TuyXwBSBMR1cJeiLiOfu6SF5XlCYbXByEx1g== + dependencies: + find-cache-dir "^3.3.2" + upath "^2.0.1" + +"@vueuse/core@^9.12.0": + version "9.12.0" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-9.12.0.tgz#e5b20f901e081c7ae5fe0e5f3af217929034eefe" + integrity sha512-h/Di8Bvf6xRcvS/PvUVheiMYYz3U0tH3X25YxONSaAUBa841ayMwxkuzx/DGUMCW/wHWzD8tRy2zYmOC36r4sg== + dependencies: + "@types/web-bluetooth" "^0.0.16" + "@vueuse/metadata" "9.12.0" + "@vueuse/shared" "9.12.0" + vue-demi "*" + +"@vueuse/math@^9.12.0": + version "9.12.0" + resolved "https://registry.yarnpkg.com/@vueuse/math/-/math-9.12.0.tgz#d7233840a7f6a1cc50357df02224745d9976f4a7" + integrity sha512-i4N67Ib+FXh/cdwK1J7hijSy8QXBKGqy492SvVBd6UjPPeCSIkkd4veO2Lsj0gMeRfObFsVdY0+1jW+kTRcJMw== + dependencies: + "@vueuse/shared" "9.12.0" + vue-demi "*" + +"@vueuse/metadata@9.12.0": + version "9.12.0" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-9.12.0.tgz#19a0fefcba6a66a2382af10a7a67ebad6eec1f27" + integrity sha512-9oJ9MM9lFLlmvxXUqsR1wLt1uF7EVbP5iYaHJYqk+G2PbMjY6EXvZeTjbdO89HgoF5cI6z49o2zT/jD9SVoNpQ== + +"@vueuse/shared@9.12.0": + version "9.12.0" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-9.12.0.tgz#e6597da80084cba8fc3d6545f4c2fa9817b80428" + integrity sha512-TWuJLACQ0BVithVTRbex4Wf1a1VaRuSpVeyEd4vMUWl54PzlE0ciFUshKCXnlLuD0lxIaLK4Ypj3NXYzZh4+SQ== + dependencies: + vue-demi "*" + "@yarnpkg/lockfile@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" @@ -1506,7 +2020,7 @@ acorn-jsx@^5.3.2: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.8.0: +acorn@^8.8.0, acorn@^8.8.1, acorn@^8.8.2: version "8.8.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== @@ -1644,6 +2158,14 @@ asap@^2.0.0: resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== +ast-walker-scope@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/ast-walker-scope/-/ast-walker-scope-0.3.1.tgz#f137801cfaec341da64584efc6e2045c5324c01d" + integrity sha512-c+tWaEoA+b4yJp0NUI8/hYKUv1ELqpCMU/fogGazXxu7EXlry37q1wdfhaQqVmQn4l4agMeo4ek76LyKFIxkKA== + dependencies: + "@babel/parser" "^7.20.5" + "@babel/types" "^7.20.5" + async@^3.2.3: version "3.2.4" resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" @@ -1741,6 +2263,16 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" +browserslist@^4.0.0, browserslist@^4.16.6, browserslist@^4.21.3, browserslist@^4.21.4: + version "4.21.5" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" + integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== + dependencies: + caniuse-lite "^1.0.30001449" + electron-to-chromium "^1.4.284" + node-releases "^2.0.8" + update-browserslist-db "^1.0.10" + buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" @@ -1771,6 +2303,20 @@ byte-size@^7.0.0: resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-7.0.1.tgz#b1daf3386de7ab9d706b941a748dbfc71130dee3" integrity sha512-crQdqyCwhokxwV1UyDzLZanhkugAgft7vt0qbbdt60C6Zf3CAiGmtUCylbtYwrU6loOUw3euGrNtW1J651ot1A== +c12@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/c12/-/c12-1.1.0.tgz#2d73596c885f0b990dcd91244b15e3c0405ebbeb" + integrity sha512-9KRFWEng+TH8sGST4NNdiKzZGw1Z1CHnPGAmNqAyVP7suluROmBjD8hsiR34f94DdlrvtGvvmiGDsoFXlCBWIw== + dependencies: + defu "^6.1.1" + dotenv "^16.0.3" + giget "^1.0.0" + jiti "^1.16.0" + mlly "^1.0.0" + pathe "^1.0.0" + pkg-types "^1.0.1" + rc9 "^2.0.0" + cacache@^16.0.0, cacache@^16.0.6, cacache@^16.1.0: version "16.1.3" resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e" @@ -1822,6 +2368,26 @@ camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== +camelcase@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001449: + version "1.0.30001450" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001450.tgz#022225b91200589196b814b51b1bbe45144cf74f" + integrity sha512-qMBmvmQmFXaSxexkjjfMvD5rnDL0+m+dUMZKoDYsGG8iZN29RuYh9eRoMvKsT6uMAWlyUUGDEQGJJYjzCIO9ew== + chalk@^2.0.0, chalk@^2.4.1: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -1844,7 +2410,7 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -"chokidar@>=3.0.0 <4.0.0": +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -1964,6 +2530,16 @@ color-support@^1.1.3: resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== +colord@^2.9.1: + version "2.9.3" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== + +colorette@^2.0.19: + version "2.0.19" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== + columnify@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3" @@ -1979,11 +2555,21 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + common-ancestor-path@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" integrity sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w== +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + compare-func@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" @@ -2015,6 +2601,11 @@ config-chain@^1.1.12: ini "^1.3.4" proto-list "~1.2.1" +consola@^2.15.3: + version "2.15.3" + resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" + integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== + console-control-strings@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" @@ -2102,6 +2693,11 @@ conventional-recommended-bump@^6.1.0: meow "^8.0.0" q "^1.5.1" +convert-source-map@^1.7.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + core-util-is@~1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" @@ -2118,6 +2714,11 @@ cosmiconfig@^7.0.0: path-type "^4.0.0" yaml "^1.10.0" +create-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -2138,11 +2739,96 @@ cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +css-declaration-sorter@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz#be5e1d71b7a992433fb1c542c7a1b835e45682ec" + integrity sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w== + +css-select@^4.1.3: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== + dependencies: + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-tree@^1.1.2, css-tree@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-what@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + cssesc@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== +cssnano-preset-default@^5.2.13: + version "5.2.13" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz#e7353b0c57975d1bdd97ac96e68e5c1b8c68e990" + integrity sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ== + dependencies: + css-declaration-sorter "^6.3.1" + cssnano-utils "^3.1.0" + postcss-calc "^8.2.3" + postcss-colormin "^5.3.0" + postcss-convert-values "^5.1.3" + postcss-discard-comments "^5.1.2" + postcss-discard-duplicates "^5.1.0" + postcss-discard-empty "^5.1.1" + postcss-discard-overridden "^5.1.0" + postcss-merge-longhand "^5.1.7" + postcss-merge-rules "^5.1.3" + postcss-minify-font-values "^5.1.0" + postcss-minify-gradients "^5.1.1" + postcss-minify-params "^5.1.4" + postcss-minify-selectors "^5.2.1" + postcss-normalize-charset "^5.1.0" + postcss-normalize-display-values "^5.1.0" + postcss-normalize-positions "^5.1.1" + postcss-normalize-repeat-style "^5.1.1" + postcss-normalize-string "^5.1.0" + postcss-normalize-timing-functions "^5.1.0" + postcss-normalize-unicode "^5.1.1" + postcss-normalize-url "^5.1.0" + postcss-normalize-whitespace "^5.1.1" + postcss-ordered-values "^5.1.3" + postcss-reduce-initial "^5.1.1" + postcss-reduce-transforms "^5.1.0" + postcss-svgo "^5.1.0" + postcss-unique-selectors "^5.1.1" + +cssnano-utils@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861" + integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== + +cssnano@^5.1.14: + version "5.1.14" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.14.tgz#07b0af6da73641276fe5a6d45757702ebae2eb05" + integrity sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw== + dependencies: + cssnano-preset-default "^5.2.13" + lilconfig "^2.0.3" + yaml "^1.10.2" + +csso@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + csstype@^2.6.8: version "2.6.21" resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.21.tgz#2efb85b7cc55c80017c66a5ad7cbd931fda3a90e" @@ -2193,6 +2879,29 @@ dedent@^0.7.0: resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== +deep-equal@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.0.tgz#5caeace9c781028b9ff459f33b779346637c43e6" + integrity sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw== + dependencies: + call-bind "^1.0.2" + es-get-iterator "^1.1.2" + get-intrinsic "^1.1.3" + is-arguments "^1.1.1" + is-array-buffer "^3.0.1" + is-date-object "^1.0.5" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" @@ -2218,6 +2927,11 @@ define-properties@^1.1.3, define-properties@^1.1.4: has-property-descriptors "^1.0.0" object-keys "^1.1.1" +defu@^6.1.1, defu@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.2.tgz#1217cba167410a1765ba93893c6dbac9ed9d9e5c" + integrity sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ== + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -2238,6 +2952,11 @@ deprecation@^2.0.0, deprecation@^2.3.1: resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== +destr@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/destr/-/destr-1.2.2.tgz#7ba9befcafb645a50e76b260449c63927b51e22f" + integrity sha512-lrbCJwD9saUQrqUfXvl6qoM+QN3W7tLV5pAOs+OqOmopCCz/JkE05MHedJR1xfk4IAnZuJXPVuN5+7jNA2ZCiA== + detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" @@ -2270,6 +2989,36 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +dom-serializer@^1.0.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== + dependencies: + domelementtype "^2.2.0" + +domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + dot-prop@^5.1.0: version "5.3.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" @@ -2284,6 +3033,11 @@ dot-prop@^6.0.1: dependencies: is-obj "^2.0.0" +dotenv@^16.0.3: + version "16.0.3" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" + integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== + dotenv@~10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" @@ -2301,6 +3055,11 @@ ejs@^3.1.7: dependencies: jake "^10.8.5" +electron-to-chromium@^1.4.284: + version "1.4.286" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.286.tgz#0e039de59135f44ab9a8ec9025e53a9135eba11f" + integrity sha512-Vp3CVhmYpgf4iXNKAucoQUDcCrBQX3XLBtwgFqP9BUXuucgvAV9zWp1kYU7LL9j4++s9O+12cb3wMtN4SJy6UQ== + emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -2320,6 +3079,15 @@ end-of-stream@^1.4.1: dependencies: once "^1.4.0" +enhanced-resolve@^4.1.1: + version "4.5.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" + integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + enquirer@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" @@ -2327,6 +3095,11 @@ enquirer@~2.3.6: dependencies: ansi-colors "^4.1.1" +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + env-paths@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" @@ -2342,6 +3115,13 @@ err-code@^2.0.2: resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== +errno@^0.1.3: + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -2388,6 +3168,21 @@ es-abstract@^1.19.0, es-abstract@^1.20.4: unbox-primitive "^1.0.2" which-typed-array "^1.1.9" +es-get-iterator@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.7" + isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" + es-set-tostringtag@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" @@ -2449,6 +3244,11 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + eslint-config-prettier@^8.3.0: version "8.6.0" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz#dec1d29ab728f4fa63061774e1672ac4e363d207" @@ -2561,6 +3361,13 @@ espree@^9.3.1, espree@^9.4.0: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.3.0" +esprima-extract-comments@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/esprima-extract-comments/-/esprima-extract-comments-1.1.0.tgz#0dacab567a5900240de6d344cf18c33617becbc9" + integrity sha512-sBQUnvJwpeE9QnPrxh7dpI/dp67erYG4WXEAreAMoelPRpMR7NWb4YtwRPn9b+H1uLQKl/qS8WYmyaljTpjIsw== + dependencies: + esprima "^4.0.0" + esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" @@ -2595,6 +3402,13 @@ estree-walker@^2.0.2: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== +estree-walker@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== + dependencies: + "@types/estree" "^1.0.0" + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -2629,6 +3443,14 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" +extract-comments@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/extract-comments/-/extract-comments-1.1.0.tgz#b90bca033a056bd69b8ba1c6b6b120fc2ee95c18" + integrity sha512-dzbZV2AdSSVW/4E7Ti5hZdHWbA+Z80RJsJhr5uiL10oyjl/gy7/o+HI1HwK4/WSZhlq4SNKU3oUzXlM13Qx02Q== + dependencies: + esprima-extract-comments "^1.1.0" + parse-code-context "^1.0.0" + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -2650,7 +3472,7 @@ fast-glob@3.2.7: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.2.9: +fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.9: version "3.2.12" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== @@ -2706,6 +3528,15 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" +find-cache-dir@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + find-up@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" @@ -2843,6 +3674,11 @@ gauge@^4.0.3: strip-ansi "^6.0.1" wide-align "^1.1.5" +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" @@ -2885,6 +3721,19 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" +giget@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/giget/-/giget-1.0.0.tgz#fdd7e61a84996b19e00d2d4a6a65c60cc1f61c3d" + integrity sha512-KWELZn3Nxq5+0So485poHrFriK9Bn3V/x9y+wgqrHkbmnGbjfLmZ685/SVA/ovW+ewoqW0gVI47pI4yW/VNobQ== + dependencies: + colorette "^2.0.19" + defu "^6.1.1" + https-proxy-agent "^5.0.1" + mri "^1.2.0" + node-fetch-native "^1.0.1" + pathe "^1.0.0" + tar "^6.1.12" + git-raw-commits@^2.0.8: version "2.0.11" resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723" @@ -2983,6 +3832,11 @@ glob@^8.0.1: minimatch "^5.0.1" once "^1.3.0" +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + globals@^13.19.0: version "13.20.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" @@ -3009,6 +3863,17 @@ globby@^11.0.2, globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" +globby@^13.1.3: + version "13.1.3" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.3.tgz#f62baf5720bcb2c1330c8d4ef222ee12318563ff" + integrity sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw== + dependencies: + dir-glob "^3.0.1" + fast-glob "^3.2.11" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^4.0.0" + gopd@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" @@ -3094,11 +3959,21 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" +hash-sum@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" + integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== + he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== +hookable@^5.4.2: + version "5.4.2" + resolved "https://registry.yarnpkg.com/hookable/-/hookable-5.4.2.tgz#6a1d3c4b3cb5b4262f99b3070ce0ee92c9c78049" + integrity sha512-6rOvaUiNKy9lET1X0ECnyZ5O5kSV0PJbtA5yZUgdEF7fGJEVwSLSislltyt7nFwVVALYHQJtfGeAR2Y0A0uJkg== + hosted-git-info@^2.1.4: version "2.8.9" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" @@ -3125,6 +4000,11 @@ hosted-git-info@^5.0.0: dependencies: lru-cache "^7.5.1" +html-tags@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.2.0.tgz#dbb3518d20b726524e4dd43de397eb0a95726961" + integrity sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg== + http-cache-semantics@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" @@ -3139,7 +4019,7 @@ http-proxy-agent@^5.0.0: agent-base "6" debug "4" -https-proxy-agent@^5.0.0: +https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== @@ -3185,7 +4065,7 @@ ignore-walk@^5.0.1: dependencies: minimatch "^5.0.1" -ignore@^5.0.4, ignore@^5.2.0: +ignore@^5.0.4, ignore@^5.2.0, ignore@^5.2.4: version "5.2.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== @@ -3292,6 +4172,14 @@ ip@^2.0.0: resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== +is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + is-array-buffer@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.1.tgz#deb1db4fcae48308d54ef2442706c0393997052a" @@ -3347,7 +4235,7 @@ is-core-module@^2.5.0, is-core-module@^2.8.1, is-core-module@^2.9.0: dependencies: has "^1.0.3" -is-date-object@^1.0.1: +is-date-object@^1.0.1, is-date-object@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== @@ -3386,6 +4274,11 @@ is-lambda@^1.0.1: resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" @@ -3443,6 +4336,11 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + is-shared-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" @@ -3504,6 +4402,11 @@ is-unicode-supported@^0.1.0: resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -3511,6 +4414,14 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" @@ -3518,6 +4429,11 @@ is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -3543,6 +4459,11 @@ jake@^10.8.5: filelist "^1.0.1" minimatch "^3.0.4" +jiti@^1.16.0, jiti@^1.16.2: + version "1.16.2" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.16.2.tgz#75f7a0a8fde4a0e57e576f7d329491d588db89cf" + integrity sha512-OKBOVWmU3FxDt/UH4zSwiKPuc1nihFZiOD722FuJlngvLz2glX1v2/TJIgoA4+mrpnXxHV6dSAoCvPcYQtoG5A== + js-sdsl@^4.1.4: version "4.3.0" resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.3.0.tgz#aeefe32a451f7af88425b11fdb5f58c90ae1d711" @@ -3568,6 +4489,11 @@ js-yaml@^3.10.0: argparse "^1.0.7" esprima "^4.0.0" +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -3598,12 +4524,12 @@ json-stringify-safe@^5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== -json5@^2.2.2: +json5@^2.2.1, json5@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== -jsonc-parser@3.2.0: +jsonc-parser@3.2.0, jsonc-parser@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== @@ -3637,6 +4563,11 @@ kind-of@^6.0.2, kind-of@^6.0.3: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +knitwork@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/knitwork/-/knitwork-1.0.0.tgz#38d124dead875bee5feea1733632295af58a49d2" + integrity sha512-dWl0Dbjm6Xm+kDxhPQJsCBTxrJzuGl0aP9rhr+TG8D3l+GL90N8O8lYUi7dTSAN2uuDqCtNgb6aEuQH5wsiV8Q== + lerna@^6.4.1: version "6.4.1" resolved "https://registry.yarnpkg.com/lerna/-/lerna-6.4.1.tgz#a1e5abcb6c00de3367f50d75eca449e382525e0f" @@ -3697,6 +4628,11 @@ libnpmpublish@^6.0.4: semver "^7.3.7" ssri "^9.0.0" +lilconfig@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" + integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== + lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" @@ -3727,6 +4663,11 @@ load-json-file@^6.2.0: strip-bom "^4.0.0" type-fest "^0.6.0" +local-pkg@^0.4.2, local-pkg@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963" + integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== + locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -3749,16 +4690,46 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA== + lodash.ismatch@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g== +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +lodash.template@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + dependencies: + lodash._reinterpolate "^3.0.0" + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + lodash@^4.17.15, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" @@ -3772,6 +4743,13 @@ log-symbols@^4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -3791,6 +4769,20 @@ magic-string@^0.25.7: dependencies: sourcemap-codec "^1.4.8" +magic-string@^0.26.7: + version "0.26.7" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.7.tgz#caf7daf61b34e9982f8228c4527474dac8981d6f" + integrity sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow== + dependencies: + sourcemap-codec "^1.4.8" + +magic-string@^0.27.0: + version "0.27.0" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3" + integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.13" + make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -3799,7 +4791,7 @@ make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.0: +make-dir@^3.0.0, make-dir@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== @@ -3838,6 +4830,19 @@ map-obj@^4.0.0: resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + memorystream@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" @@ -3921,6 +4926,13 @@ minimatch@^5.0.1, minimatch@^5.1.1: dependencies: brace-expansion "^2.0.1" +minimatch@^6.1.6: + version "6.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-6.1.6.tgz#5384bb324be5b5dae12a567c03d22908febd0ddd" + integrity sha512-6bR3UIeh/DF8+p6A9Spyuy67ShOq42rOkHWi7eUe3Ua99Zo5lZfGC6lJJWkeoK4k9jQFT3Pl7czhTXimG2XheA== + dependencies: + brace-expansion "^2.0.1" + minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -4016,11 +5028,26 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +mlly@^1.0.0, mlly@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.1.0.tgz#9e23c5e675ef7b10cc47ee6281795cb1a7aa3aa2" + integrity sha512-cwzBrBfwGC1gYJyfcy8TcZU1f+dbH/T+TuOhtYP2wLv/Fb51/uV7HJQfBPtEupZ2ORLRU1EKFS/QfS3eo9+kBQ== + dependencies: + acorn "^8.8.1" + pathe "^1.0.0" + pkg-types "^1.0.1" + ufo "^1.0.1" + modify-values@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== +mri@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -4087,6 +5114,11 @@ node-addon-api@^3.2.1: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== +node-fetch-native@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.0.1.tgz#1dfe78f57545d07e07016b7df4c0cb9d2ff416c7" + integrity sha512-VzW+TAk2wE4X9maiKMlT+GsPU4OMmR1U9CrHSmd3DFLn2IcZ9VJ6M6BBugGfYUnPCLSYxXdZy17M0BEJyhUTwg== + node-fetch@^2.6.1, node-fetch@^2.6.7: version "2.6.9" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6" @@ -4115,6 +5147,11 @@ node-gyp@^9.0.0: tar "^6.1.2" which "^2.0.2" +node-releases@^2.0.8: + version "2.0.10" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" + integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== + nopt@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" @@ -4164,6 +5201,11 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + npm-bundled@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" @@ -4332,6 +5374,14 @@ object-inspect@^1.12.2, object-inspect@^1.9.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== +object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" @@ -4537,6 +5587,11 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" +parse-code-context@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-code-context/-/parse-code-context-1.0.0.tgz#718c295c593d0d19a37f898473268cc75e98de1e" + integrity sha512-OZQaqKaQnR21iqhlnPfVisFjBWjhnMl5J9MgbP8xC+EwoVqbXrq78lp+9Zb3ahmLzrIX5Us/qbvBnaS3hkH6OA== + parse-conflict-json@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-2.0.2.tgz#3d05bc8ffe07d39600dc6436c6aefe382033d323" @@ -4620,6 +5675,21 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +pathe@^1.0.0, pathe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.0.tgz#e2e13f6c62b31a3289af4ba19886c230f295ec03" + integrity sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w== + +perfect-scrollbar@^1.5.5: + version "1.5.5" + resolved "https://registry.yarnpkg.com/perfect-scrollbar/-/perfect-scrollbar-1.5.5.tgz#41a211a2fb52a7191eff301432134ea47052b27f" + integrity sha512-dzalfutyP3e/FOpdlhVryN4AJ5XDVauVWxybSkLZmakFE2sS3y3pc4JnSprw8tGmHvkaG5Edr5T7LBTZ+WWU2g== + +picocolors@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" + integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== + picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -4663,14 +5733,222 @@ pinia@^2.0.28: "@vue/devtools-api" "^6.4.5" vue-demi "*" -pkg-dir@^4.2.0: +pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" -postcss-selector-parser@^6.0.9: +pkg-types@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.0.1.tgz#25234407f9dc63409af45ced9407625ff446a761" + integrity sha512-jHv9HB+Ho7dj6ItwppRDDl0iZRYBD0jsakHXtFgoLr+cHSF6xC+QL54sJmWxyGxOLYSHm0afhXhXcQDQqH9z8g== + dependencies: + jsonc-parser "^3.2.0" + mlly "^1.0.0" + pathe "^1.0.0" + +postcss-calc@^8.2.3: + version "8.2.4" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5" + integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q== + dependencies: + postcss-selector-parser "^6.0.9" + postcss-value-parser "^4.2.0" + +postcss-colormin@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.0.tgz#3cee9e5ca62b2c27e84fce63affc0cfb5901956a" + integrity sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + colord "^2.9.1" + postcss-value-parser "^4.2.0" + +postcss-convert-values@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz#04998bb9ba6b65aa31035d669a6af342c5f9d393" + integrity sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA== + dependencies: + browserslist "^4.21.4" + postcss-value-parser "^4.2.0" + +postcss-discard-comments@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz#8df5e81d2925af2780075840c1526f0660e53696" + integrity sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ== + +postcss-discard-duplicates@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848" + integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw== + +postcss-discard-empty@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz#e57762343ff7f503fe53fca553d18d7f0c369c6c" + integrity sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A== + +postcss-discard-overridden@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e" + integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw== + +postcss-import-resolver@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-import-resolver/-/postcss-import-resolver-2.0.0.tgz#95c61ac5489047bd93ff42a9cd405cfe9041e2c0" + integrity sha512-y001XYgGvVwgxyxw9J1a5kqM/vtmIQGzx34g0A0Oy44MFcy/ZboZw1hu/iN3VYFjSTRzbvd7zZJJz0Kh0AGkTw== + dependencies: + enhanced-resolve "^4.1.1" + +postcss-import@^12.0.0: + version "12.0.1" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-12.0.1.tgz#cf8c7ab0b5ccab5649024536e565f841928b7153" + integrity sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw== + dependencies: + postcss "^7.0.1" + postcss-value-parser "^3.2.3" + read-cache "^1.0.0" + resolve "^1.1.7" + +postcss-merge-longhand@^5.1.7: + version "5.1.7" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz#24a1bdf402d9ef0e70f568f39bdc0344d568fb16" + integrity sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ== + dependencies: + postcss-value-parser "^4.2.0" + stylehacks "^5.1.1" + +postcss-merge-rules@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz#8f97679e67cc8d08677a6519afca41edf2220894" + integrity sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + cssnano-utils "^3.1.0" + postcss-selector-parser "^6.0.5" + +postcss-minify-font-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b" + integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-minify-gradients@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz#f1fe1b4f498134a5068240c2f25d46fcd236ba2c" + integrity sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw== + dependencies: + colord "^2.9.1" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-minify-params@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz#c06a6c787128b3208b38c9364cfc40c8aa5d7352" + integrity sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw== + dependencies: + browserslist "^4.21.4" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-minify-selectors@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz#d4e7e6b46147b8117ea9325a915a801d5fe656c6" + integrity sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-normalize-charset@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed" + integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg== + +postcss-normalize-display-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8" + integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-positions@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz#ef97279d894087b59325b45c47f1e863daefbb92" + integrity sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-repeat-style@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz#e9eb96805204f4766df66fd09ed2e13545420fb2" + integrity sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-string@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228" + integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-timing-functions@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb" + integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-unicode@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz#f67297fca3fea7f17e0d2caa40769afc487aa030" + integrity sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA== + dependencies: + browserslist "^4.21.4" + postcss-value-parser "^4.2.0" + +postcss-normalize-url@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc" + integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew== + dependencies: + normalize-url "^6.0.1" + postcss-value-parser "^4.2.0" + +postcss-normalize-whitespace@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz#08a1a0d1ffa17a7cc6efe1e6c9da969cc4493cfa" + integrity sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-ordered-values@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz#b6fd2bd10f937b23d86bc829c69e7732ce76ea38" + integrity sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ== + dependencies: + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-reduce-initial@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz#c18b7dfb88aee24b1f8e4936541c29adbd35224e" + integrity sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9" + integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: version "6.0.11" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc" integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== @@ -4678,6 +5956,39 @@ postcss-selector-parser@^6.0.9: cssesc "^3.0.0" util-deprecate "^1.0.2" +postcss-svgo@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d" + integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA== + dependencies: + postcss-value-parser "^4.2.0" + svgo "^2.7.0" + +postcss-unique-selectors@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz#a9f273d1eacd09e9aa6088f4b0507b18b1b541b6" + integrity sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-value-parser@^3.2.3: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@^7.0.1: + version "7.0.39" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" + integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== + dependencies: + picocolors "^0.2.1" + source-map "^0.6.1" + postcss@^8.1.10, postcss@^8.4.21: version "8.4.21" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4" @@ -4759,6 +6070,11 @@ proxy-from-env@^1.1.0: resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== + punycode@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" @@ -4779,6 +6095,22 @@ quick-lru@^4.0.1: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== +rc9@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/rc9/-/rc9-2.0.1.tgz#51e0f556759ee434e20ed29ca506b4ce97e7c6c0" + integrity sha512-9EfjLgNmzP9255YX8bGnILQcmdtOXKtUlFTu8bOZPJVtaUDZ2imswcUdpK51tMjTRQyB7r5RebNijrzuyGXcVA== + dependencies: + defu "^6.1.2" + destr "^1.2.2" + flat "^5.0.2" + +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== + dependencies: + pify "^2.3.0" + read-cmd-shim@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-3.0.1.tgz#868c235ec59d1de2db69e11aec885bc095aea087" @@ -4854,7 +6186,7 @@ readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stre string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@~2.3.6: +readable-stream@^2.0.1, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -4928,7 +6260,7 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve@^1.10.0, resolve@^1.22.1: +resolve@^1.1.7, resolve@^1.10.0, resolve@^1.22.1: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -5021,6 +6353,11 @@ sass@^1.58.0: immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" +scule@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/scule/-/scule-1.0.0.tgz#895e6f4ba887e78d8b9b4111e23ae84fef82376d" + integrity sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ== + "semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" @@ -5033,12 +6370,12 @@ semver@7.3.4: dependencies: lru-cache "^6.0.0" -semver@^6.0.0: +semver@^6.0.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.0.0, semver@^7.1.1, semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semver@^7.3.7: +semver@^7.0.0, semver@^7.1.1, semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semver@^7.3.7, semver@^7.3.8: version "7.3.8" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== @@ -5105,6 +6442,11 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + smart-buffer@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" @@ -5208,6 +6550,23 @@ ssri@^9.0.0, ssri@^9.0.1: dependencies: minipass "^3.1.1" +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +std-env@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.3.2.tgz#af27343b001616015534292178327b202b9ee955" + integrity sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA== + +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -5292,6 +6651,13 @@ strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +strip-literal@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-1.0.1.tgz#0115a332710c849b4e46497891fb8d585e404bd2" + integrity sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q== + dependencies: + acorn "^8.8.2" + strong-log-transformer@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10" @@ -5301,6 +6667,14 @@ strong-log-transformer@^2.1.0: minimist "^1.2.0" through "^2.3.4" +stylehacks@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.1.tgz#7934a34eb59d7152149fa69d6e9e56f2fc34bcc9" + integrity sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw== + dependencies: + browserslist "^4.21.4" + postcss-selector-parser "^6.0.4" + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -5320,6 +6694,29 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +svg-tags@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" + integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== + +svgo@^2.7.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" + integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^4.1.3" + css-tree "^1.1.3" + csso "^4.2.0" + picocolors "^1.0.0" + stable "^0.1.8" + +tapable@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + tar-stream@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" @@ -5331,7 +6728,7 @@ tar-stream@~2.2.0: inherits "^2.0.3" readable-stream "^3.1.1" -tar@^6.1.0, tar@^6.1.11, tar@^6.1.2: +tar@^6.1.0, tar@^6.1.11, tar@^6.1.12, tar@^6.1.2: version "6.1.13" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.13.tgz#46e22529000f612180601a6fe0680e7da508847b" integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw== @@ -5392,6 +6789,11 @@ tmp@~0.2.1: dependencies: rimraf "^3.0.0" +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -5503,6 +6905,11 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== +ufo@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.0.1.tgz#64ed43b530706bda2e4892f911f568cf4cf67d29" + integrity sha512-boAm74ubXHY7KJQZLlXrtMz52qFvpsbOxDcZOnw/Wf+LS4Mmyu7JxmzD4tDLtUQtmZECypJ0FrCz4QIe6dvKRA== + uglify-js@^3.1.4: version "3.17.4" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" @@ -5518,6 +6925,33 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +unctx@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/unctx/-/unctx-2.1.1.tgz#415b07cf6ce42fad59ae1e4fa42ace2e71f4372d" + integrity sha512-RffJlpvLOtolWsn0fxXsuSDfwiWcR6cyuykw2e0+zAggvGW1SesXt9WxIWlWpJhwVCZD/WlxxLqKLS50Q0CkWA== + dependencies: + acorn "^8.8.1" + estree-walker "^3.0.1" + magic-string "^0.26.7" + unplugin "^1.0.0" + +unimport@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unimport/-/unimport-2.1.0.tgz#d1c5bfe29f8ef1625816e2f6f3250fa2c1ec28c1" + integrity sha512-GDVIxATluUquX8EqelT6DtnmnZaXGID1jsO9IXwlnxb0OIEqKAxTOnTlnGmHbseoGTh+ZC9kcNDaO18HYQj9KA== + dependencies: + "@rollup/pluginutils" "^5.0.2" + escape-string-regexp "^5.0.0" + fast-glob "^3.2.12" + local-pkg "^0.4.3" + magic-string "^0.27.0" + mlly "^1.1.0" + pathe "^1.1.0" + pkg-types "^1.0.1" + scule "^1.0.0" + strip-literal "^1.0.0" + unplugin "^1.0.1" + unique-filename@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2" @@ -5542,11 +6976,78 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== +unplugin-auto-import@^0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/unplugin-auto-import/-/unplugin-auto-import-0.13.0.tgz#0d0fae74f4a71529faec7ddda9006ec32363e3fb" + integrity sha512-nKMxDbkjM4FRPInFfm7sWrJOKgxfKKwb5yLPP+DEGl/SG0/FtBoW1LnZL4PQfx0FXjertoHO1P/5nDf+RSip2Q== + dependencies: + "@antfu/utils" "^0.7.2" + "@rollup/pluginutils" "^5.0.2" + local-pkg "^0.4.3" + magic-string "^0.27.0" + unimport "^2.1.0" + unplugin "^1.0.1" + +unplugin-vue-components@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/unplugin-vue-components/-/unplugin-vue-components-0.23.0.tgz#f4dce2f05672ab7b24e0ba149639d1fa7d12b906" + integrity sha512-JAJ+BGvjHvi9P7lICwOzDx2Av+OcI6ZTzvySmjXDNGCNVPrt2NQQmbcp7cW027CR1mRugIX5G//awm3doHyqkg== + dependencies: + "@antfu/utils" "^0.7.2" + "@nuxt/kit" "^3.1.1" + "@rollup/pluginutils" "^5.0.2" + chokidar "^3.5.3" + debug "^4.3.4" + fast-glob "^3.2.12" + local-pkg "^0.4.3" + magic-string "^0.27.0" + minimatch "^6.1.6" + resolve "^1.22.1" + unplugin "^1.0.1" + +unplugin-vue-define-options@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/unplugin-vue-define-options/-/unplugin-vue-define-options-1.1.4.tgz#7b2455273731e26184cccf75fd34aa3d6fdef0f3" + integrity sha512-nGE3AlMYDkXrPlcUh2XEZgucC9sPdlZupDBUPyqBgNjEo24WuTF9JihA5bq/VLUeDkobxxmkmGHz040l4PGPDA== + dependencies: + "@rollup/pluginutils" "^5.0.2" + "@vue-macros/common" "~0.13.8" + ast-walker-scope "^0.3.1" + unplugin "^1.0.1" + +unplugin@^1.0.0, unplugin@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.0.1.tgz#83b528b981cdcea1cad422a12cd02e695195ef3f" + integrity sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA== + dependencies: + acorn "^8.8.1" + chokidar "^3.5.3" + webpack-sources "^3.2.3" + webpack-virtual-modules "^0.5.0" + +untyped@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/untyped/-/untyped-1.2.2.tgz#d442a5d4b4281b5344cefed318736eb480b70c2f" + integrity sha512-EANYd5L6AdpgfldlgMcmvOOnj092nWhy0ybhc7uhEH12ipytDYz89EOegBQKj8qWL3u1wgYnmFjADhsuCJs5Aw== + dependencies: + "@babel/core" "^7.20.12" + "@babel/standalone" "^7.20.12" + "@babel/types" "^7.20.7" + scule "^1.0.0" + upath@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b" integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== +update-browserslist-db@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" + integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -5591,6 +7092,39 @@ validate-npm-package-name@^4.0.0: dependencies: builtins "^5.0.0" +vite-plugin-pages@^0.28.0: + version "0.28.0" + resolved "https://registry.yarnpkg.com/vite-plugin-pages/-/vite-plugin-pages-0.28.0.tgz#c9ed6ef43f43a4c42ffb8e28862d48ebc92fc4b9" + integrity sha512-yncDncFVnjUzhqJnwCgGDZoZ/wO6MEOMe93f2MQjplKXm1MpmHCrTkFCPnQyYGZTVKPAN+y7BQcIpNWPFLQ4+w== + dependencies: + "@types/debug" "^4.1.7" + debug "^4.3.4" + deep-equal "^2.1.0" + extract-comments "^1.1.0" + fast-glob "^3.2.12" + json5 "^2.2.1" + local-pkg "^0.4.2" + picocolors "^1.0.0" + yaml "^2.1.3" + +vite-plugin-vue-layouts@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/vite-plugin-vue-layouts/-/vite-plugin-vue-layouts-0.7.0.tgz#1722c6d40fba65048f643172cc532a273453d03a" + integrity sha512-k5XDmRNFo4M/GmUjhbRXj2WmJiFcGoVI8l/uZ72RHyRDQr4wE/6Zq/KFq0lqXomWQxTSzakQRUswzNwtvZLE8A== + dependencies: + "@vue/compiler-sfc" "^3.2.31" + debug "^4.3.3" + fast-glob "^3.2.11" + +vite-plugin-vuetify@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/vite-plugin-vuetify/-/vite-plugin-vuetify-1.0.2.tgz#d1777c63aa1b3a308756461b3d0299fd101ee8f4" + integrity sha512-MubIcKD33O8wtgQXlbEXE7ccTEpHZ8nPpe77y9Wy3my2MWw/PgehP9VqTp92BLqr0R1dSL970Lynvisx3UxBFw== + dependencies: + "@vuetify/loader-shared" "^1.7.1" + debug "^4.3.3" + upath "^2.0.1" + vite@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/vite/-/vite-4.1.1.tgz#3b18b81a4e85ce3df5cbdbf4c687d93ebf402e6b" @@ -5644,6 +7178,15 @@ vue-tsc@^1.0.12: "@volar/vue-language-core" "1.0.24" "@volar/vue-typescript" "1.0.24" +vue3-perfect-scrollbar@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/vue3-perfect-scrollbar/-/vue3-perfect-scrollbar-1.6.1.tgz#296e0e0c61a8f6278184f5b09bb45d137af92327" + integrity sha512-r9wfxlFwVyHXMPKG0PnR7fDfJPQ20KEVzKQfSU5by2WKYz2PwV0bTfyfejmEyZXsXL0O8VtSWtgxfPuFR2AGOg== + dependencies: + cssnano "^5.1.14" + perfect-scrollbar "^1.5.5" + postcss-import "^12.0.0" + vue@^3.2.45: version "3.2.47" resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.47.tgz#3eb736cbc606fc87038dbba6a154707c8a34cff0" @@ -5655,10 +7198,10 @@ vue@^3.2.45: "@vue/server-renderer" "3.2.47" "@vue/shared" "3.2.47" -vuetify@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/vuetify/-/vuetify-3.1.3.tgz#2dba19642e91088b318a864b60783a58ee205eb6" - integrity sha512-QE/yXvHKDnlK9sjjMoZy9cAovNabpI97xg9RD+mAEDgSUaZNCX/jy7Qn0bP1DjJNeAsR2oAlcO0C2WhrsYe9kw== +vuetify@3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/vuetify/-/vuetify-3.0.6.tgz#83fe4fa7159d002acff9ca65cfabe4a67d64dc20" + integrity sha512-Illtc9t8PExlKqUEIivNNMpDif4/tvn+04ZEAwrxpQAG75x6V7oUFOF1kVKAFZ2ryuLnBpscXBR85GwFBmLeMQ== walk-up-path@^1.0.0: version "1.0.0" @@ -5672,11 +7215,26 @@ wcwidth@^1.0.0, wcwidth@^1.0.1: dependencies: defaults "^1.0.3" +webfontloader@^1.6.28: + version "1.6.28" + resolved "https://registry.yarnpkg.com/webfontloader/-/webfontloader-1.6.28.tgz#db786129253cb6e8eae54c2fb05f870af6675bae" + integrity sha512-Egb0oFEga6f+nSgasH3E0M405Pzn6y3/9tOVanv/DLfa1YBIgcv90L18YyWnvXkRbIM17v5Kv6IT2N6g1x5tvQ== + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack-virtual-modules@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz#362f14738a56dae107937ab98ea7062e8bdd3b6c" + integrity sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw== + whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" @@ -5696,6 +7254,16 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + which-typed-array@^1.1.9: version "1.1.9" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" @@ -5828,16 +7396,26 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.10.0: +yaml@^1.10.0, yaml@^1.10.2: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yaml@^2.1.3: + version "2.2.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.1.tgz#3014bf0482dcd15147aa8e56109ce8632cd60ce4" + integrity sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw== + yargs-parser@20.2.4: version "20.2.4" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54"