Files
music-admin/typescript-version/@layouts/types.ts
yagnikvamja d098e5341d init
2024-07-08 17:16:10 +05:30

60 lines
1.2 KiB
TypeScript

import type { RouteLocationRaw } from 'vue-router'
export interface AclProperties {
action: string
subject: string
}
// 👉 Vertical nav section title
export interface NavSectionTitle extends Partial<AclProperties> {
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<AclProperties> {
title: string
icon?: unknown
badgeContent?: string
badgeClass?: string
disable?: boolean
}
// 👉 Vertical nav group
export interface NavGroup extends Partial<AclProperties> {
title: string
icon?: unknown
badgeContent?: string
badgeClass?: string
children: (NavLink | NavGroup)[]
disable?: boolean
}
// 👉 Components ========================
export interface ThemeSwitcherTheme {
name: string
icon: string
}