build ok,

This commit is contained in:
louiscklaw
2025-04-14 09:26:24 +08:00
commit 6c931c1fe8
770 changed files with 63959 additions and 0 deletions

View File

@@ -0,0 +1,260 @@
import type { NavItemConfig } from '@/types/nav';
import { paths } from '@/paths';
// NOTE: We did not use React Components for Icons, because
// you may one to get the config from the server.
// NOTE: First level elements are groups.
export interface LayoutConfig {
navItems: NavItemConfig[];
}
export const layoutConfig = {
navItems: [
{
key: 'dashboards',
title: 'Dashboards',
items: [
{ key: 'overview', title: 'Overview', href: paths.dashboard.overview, icon: 'house' },
{ key: 'analytics', title: 'Analytics', href: paths.dashboard.analytics, icon: 'chart-pie' },
{ key: 'ecommerce', title: 'E-commerce', href: paths.dashboard.eCommerce, icon: 'cube' },
{ key: 'crypto', title: 'Crypto', href: paths.dashboard.crypto, icon: 'currency-eth' },
],
},
{
key: 'general',
title: 'General',
items: [
{
key: 'settings',
title: 'Settings',
href: paths.dashboard.settings.account,
icon: 'gear',
matcher: { type: 'startsWith', href: '/dashboard/settings' },
},
{
key: 'customers',
title: 'Customers',
icon: 'users',
items: [
{ key: 'customers', title: 'List customers', href: paths.dashboard.customers.list },
{ key: 'customers:create', title: 'Create customer', href: paths.dashboard.customers.create },
{ key: 'customers:details', title: 'Customer details', href: paths.dashboard.customers.details('1') },
],
},
{
key: 'products',
title: 'Products',
icon: 'shopping-bag-open',
items: [
{ key: 'products', title: 'List products', href: paths.dashboard.products.list },
{ key: 'products:create', title: 'Create product', href: paths.dashboard.products.create },
{ key: 'products:details', title: 'Product details', href: paths.dashboard.products.details('1') },
],
},
{
key: 'orders',
title: 'Orders',
icon: 'shopping-cart-simple',
items: [
{ key: 'orders', title: 'List orders', href: paths.dashboard.orders.list },
{ key: 'orders:create', title: 'Create order', href: paths.dashboard.orders.create },
{ key: 'orders:details', title: 'Order details', href: paths.dashboard.orders.details('1') },
],
},
{
key: 'invoices',
title: 'Invoices',
icon: 'receipt',
items: [
{ key: 'invoices', title: 'List invoices', href: paths.dashboard.invoices.list },
{ key: 'invoices:create', title: 'Create invoice', href: paths.dashboard.invoices.create },
{ key: 'invoices:details', title: 'Invoice details', href: paths.dashboard.invoices.details('1') },
],
},
{
key: 'jobs',
title: 'Jobs',
icon: 'read-cv-logo',
items: [
{ key: 'jobs:browse', title: 'Browse jobs', href: paths.dashboard.jobs.browse },
{ key: 'jobs:create', title: 'Create job', href: paths.dashboard.jobs.create },
{
key: 'jobs:company',
title: 'Company details',
href: paths.dashboard.jobs.companies.overview('1'),
matcher: { type: 'startsWith', href: '/dashboard/jobs/companies/1' },
},
],
},
{
key: 'logistics',
title: 'Logistics',
icon: 'truck',
items: [
{ key: 'logistics:metrics', title: 'Metrics', href: paths.dashboard.logistics.metrics },
{ key: 'logistics:fleet', title: 'Fleet', href: paths.dashboard.logistics.fleet },
],
},
{
key: 'blog',
title: 'Blog',
icon: 'text-align-left',
items: [
{ key: 'blog', title: 'List posts', href: paths.dashboard.blog.list },
{ key: 'blog:create', title: 'Create post', href: paths.dashboard.blog.create },
{ key: 'blog:details', title: 'Post details', href: paths.dashboard.blog.details('1') },
],
},
{
key: 'social',
title: 'Social',
icon: 'share-network',
items: [
{
key: 'social:profile',
title: 'Profile',
href: paths.dashboard.social.profile.timeline,
matcher: { type: 'startsWith', href: '/dashboard/social/profile' },
},
{ key: 'social:feed', title: 'Feed', href: paths.dashboard.social.feed },
],
},
{
key: 'academy',
title: 'Academy',
icon: 'graduation-cap',
items: [
{ key: 'academy:browse', title: 'Browse courses', href: paths.dashboard.academy.browse },
{ key: 'academy:course', title: 'Course details', href: paths.dashboard.academy.details('1') },
],
},
{ key: 'file-storage', title: 'File storage', href: paths.dashboard.fileStorage, icon: 'upload' },
{
key: 'mail',
title: 'Mail',
href: paths.dashboard.mail.list('inbox'),
icon: 'envelope-simple',
matcher: { type: 'startsWith', href: '/dashboard/mail' },
},
{
key: 'chat',
title: 'Chat',
href: paths.dashboard.chat.base,
icon: 'chats-circle',
matcher: { type: 'startsWith', href: '/dashboard/chat' },
},
{ key: 'calendar', title: 'Calendar', href: paths.dashboard.calendar, icon: 'calendar-check' },
{ key: 'tasks', title: 'Tasks', href: paths.dashboard.tasks, icon: 'kanban' },
],
},
{
key: 'other',
title: 'Other',
items: [
{
key: 'auth',
title: 'Auth',
icon: 'lock',
items: [
{
key: 'auth:sign-in',
title: 'Sign in',
items: [
{ key: 'auth:sign-in:centered', title: 'Centered', href: paths.auth.samples.signIn.centered },
{ key: 'auth:sign-in:split', title: 'Split', href: paths.auth.samples.signIn.split },
],
},
{
key: 'auth:sign-up',
title: 'Sign up',
items: [
{ key: 'auth:sign-up:centered', title: 'Centered', href: paths.auth.samples.signUp.centered },
{ key: 'auth:sign-up:split', title: 'Split', href: paths.auth.samples.signUp.split },
],
},
{
key: 'auth:reset-password',
title: 'Reset password',
items: [
{
key: 'auth:reset-password:centered',
title: 'Centered',
href: paths.auth.samples.resetPassword.centered,
},
{ key: 'auth:reset-password:split', title: 'Split', href: paths.auth.samples.resetPassword.split },
],
},
{
key: 'auth:update-password',
title: 'Update password',
items: [
{
key: 'auth:update-password:centered',
title: 'Centered',
href: paths.auth.samples.updatePassword.centered,
},
{ key: 'auth:update-password:split', title: 'Split', href: paths.auth.samples.updatePassword.split },
],
},
{
key: 'auth:verify-code',
title: 'Verify code',
items: [
{ key: 'auth:verify-code:centered', title: 'Centered', href: paths.auth.samples.verifyCode.centered },
{ key: 'auth:verify-code:split', title: 'Split', href: paths.auth.samples.verifyCode.split },
],
},
],
},
{ key: 'pricing', title: 'Pricing', href: paths.pricing, icon: 'credit-card' },
{ key: 'checkout', title: 'Checkout', href: paths.checkout, icon: 'sign-out' },
{ key: 'contact', title: 'Contact', href: paths.contact, icon: 'address-book' },
{
key: 'error',
title: 'Error',
icon: 'file-x',
items: [
{ key: 'error:not-authorized', title: 'Not authorized', href: paths.notAuthorized },
{ key: 'error:not-found', title: 'Not found', href: paths.notFound },
{ key: 'error:internal-server-error', title: 'Internal server error', href: paths.internalServerError },
],
},
],
},
{
key: 'misc',
title: 'Misc',
items: [
{
key: 'levels:level-0',
title: 'Level 0',
icon: 'align-left',
items: [
{
key: 'levels:level-1a',
title: 'Level 1a',
items: [
{
key: 'levels:level-2a',
title: 'Level 2a',
items: [
{ key: 'levels:level-3a', title: 'Level 3a' },
{ key: 'levels:level-3b', title: 'Level 3b', disabled: true },
],
},
{ key: 'levels:level-2b', title: 'Level 2b' },
],
},
{ key: 'levels:level-1b', title: 'Level 1b' },
],
},
{ key: 'disabled', title: 'Disabled', disabled: true, icon: 'warning-diamond' },
{ key: 'label', title: 'Label', icon: 'file', label: 'New' },
{ key: 'blank', title: 'Blank', href: paths.dashboard.blank, icon: 'file-dashed' },
{ key: 'external', title: 'External link', href: 'https://devias.io', external: true, icon: 'link' },
],
},
],
} satisfies LayoutConfig;