♻️ relabel

This commit is contained in:
sam 2025-02-20 17:07:26 +08:00
parent 8445fe4be9
commit 02572d0644
11 changed files with 27 additions and 1370 deletions

View File

@ -16,10 +16,6 @@ export default function DefaultLayout({ children }: { children: React.ReactNode
<Overlay /> <Overlay />
<ScrollToTop /> <ScrollToTop />
{/* BEGIN APP SETTING LAUNCHER */}
<Setting />
{/* END APP SETTING LAUNCHER */}
<MainContainer> <MainContainer>
{/* BEGIN SIDEBAR */} {/* BEGIN SIDEBAR */}
<Sidebar /> <Sidebar />

View File

@ -2,7 +2,6 @@ import { Metadata } from 'next';
import React from 'react'; import React from 'react';
export const metadata: Metadata = { export const metadata: Metadata = {
title: 'Sales Admin',
}; };
const Sales = () => { const Sales = () => {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 84 KiB

View File

@ -6,8 +6,8 @@ import { Nunito } from 'next/font/google';
export const metadata: Metadata = { export const metadata: Metadata = {
title: { title: {
template: '%s | VRISTO - Multipurpose Tailwind Dashboard Template', template: '%s | Rooftop Energy - Admin',
default: 'VRISTO - Multipurpose Tailwind Dashboard Template', default: 'Rooftop Energy - Admin',
}, },
}; };
const nunito = Nunito({ const nunito = Nunito({

View File

@ -1,6 +1,6 @@
const Footer = () => { const Footer = () => {
return ( return (
<div className="p-6 pt-0 mt-auto text-center dark:text-white-dark ltr:sm:text-left rtl:sm:text-right">© {new Date().getFullYear()}. Vristo All rights reserved.</div> <div className="p-6 pt-0 mt-auto text-center dark:text-white-dark ltr:sm:text-left rtl:sm:text-right">© {new Date().getFullYear()}. Rooftop Energy All rights reserved.</div>
); );
}; };

View File

@ -151,8 +151,8 @@ const Header = () => {
<div className="relative flex w-full items-center bg-white px-5 py-2.5 dark:bg-black"> <div className="relative flex w-full items-center bg-white px-5 py-2.5 dark:bg-black">
<div className="horizontal-logo flex items-center justify-between ltr:mr-2 rtl:ml-2 lg:hidden"> <div className="horizontal-logo flex items-center justify-between ltr:mr-2 rtl:ml-2 lg:hidden">
<Link href="/" className="main-logo flex shrink-0 items-center"> <Link href="/" className="main-logo flex shrink-0 items-center">
<img className="inline w-8 ltr:-ml-1 rtl:-mr-1" src="/assets/images/logo.svg" alt="logo" /> <img className="inline w-8 ltr:-ml-1 rtl:-mr-1" src="/assets/images/logo.png" alt="logo" />
<span className="hidden align-middle text-2xl font-semibold transition-all duration-300 ltr:ml-1.5 rtl:mr-1.5 dark:text-white-light md:inline">VRISTO</span> <span className="hidden align-middle text-2xl font-semibold transition-all duration-300 ltr:ml-1.5 rtl:mr-1.5 dark:text-white-light md:inline">Rooftop Energy</span>
</Link> </Link>
<button <button
type="button" type="button"
@ -182,228 +182,8 @@ const Header = () => {
</li> </li>
</ul> </ul>
</div> </div>
<div className="flex items-center space-x-1.5 ltr:ml-auto rtl:mr-auto rtl:space-x-reverse dark:text-[#d0d2d6] sm:flex-1 ltr:sm:ml-0 sm:rtl:mr-0 lg:space-x-2"> <div className="flex items-center justify-end space-x-1.5 ltr:ml-auto rtl:mr-auto rtl:space-x-reverse dark:text-[#d0d2d6] sm:flex-1 ltr:sm:ml-0 sm:rtl:mr-0 lg:space-x-2">
<div className="sm:ltr:mr-auto sm:rtl:ml-auto">
<form
className={`${search && '!block'} absolute inset-x-0 top-1/2 z-10 mx-4 hidden -translate-y-1/2 sm:relative sm:top-0 sm:mx-0 sm:block sm:translate-y-0`}
onSubmit={() => setSearch(false)}
>
<div className="relative">
<input
type="text"
className="peer form-input bg-gray-100 placeholder:tracking-widest ltr:pl-9 ltr:pr-9 rtl:pl-9 rtl:pr-9 sm:bg-transparent ltr:sm:pr-4 rtl:sm:pl-4"
placeholder="Search..."
/>
<button type="button" className="absolute inset-0 h-9 w-9 appearance-none peer-focus:text-primary ltr:right-auto rtl:left-auto">
<IconSearch className="mx-auto" />
</button>
<button type="button" className="absolute top-1/2 block -translate-y-1/2 hover:opacity-80 ltr:right-2 rtl:left-2 sm:hidden" onClick={() => setSearch(false)}>
<IconXCircle />
</button>
</div>
</form>
<button
type="button"
onClick={() => setSearch(!search)}
className="search_btn rounded-full bg-white-light/40 p-2 hover:bg-white-light/90 dark:bg-dark/40 dark:hover:bg-dark/60 sm:hidden"
>
<IconSearch className="mx-auto h-4.5 w-4.5 dark:text-[#d0d2d6]" />
</button>
</div>
<div>
{themeConfig.theme === 'light' ? (
<button
className={`${
themeConfig.theme === 'light' &&
'flex items-center rounded-full bg-white-light/40 p-2 hover:bg-white-light/90 hover:text-primary dark:bg-dark/40 dark:hover:bg-dark/60'
}`}
onClick={() => dispatch(toggleTheme('dark'))}
>
<IconSun />
</button>
) : (
''
)}
{themeConfig.theme === 'dark' && (
<button
className={`${
themeConfig.theme === 'dark' &&
'flex items-center rounded-full bg-white-light/40 p-2 hover:bg-white-light/90 hover:text-primary dark:bg-dark/40 dark:hover:bg-dark/60'
}`}
onClick={() => dispatch(toggleTheme('system'))}
>
<IconMoon />
</button>
)}
{themeConfig.theme === 'system' && (
<button
className={`${
themeConfig.theme === 'system' &&
'flex items-center rounded-full bg-white-light/40 p-2 hover:bg-white-light/90 hover:text-primary dark:bg-dark/40 dark:hover:bg-dark/60'
}`}
onClick={() => dispatch(toggleTheme('light'))}
>
<IconLaptop />
</button>
)}
</div>
<div className="dropdown shrink-0">
<Dropdown
offset={[0, 8]}
placement={`${isRtl ? 'bottom-start' : 'bottom-end'}`}
btnClassName="block p-2 rounded-full bg-white-light/40 dark:bg-dark/40 hover:text-primary hover:bg-white-light/90 dark:hover:bg-dark/60"
button={i18n.language && <img className="h-5 w-5 rounded-full object-cover" src={`/assets/images/flags/${i18n.language.toUpperCase()}.svg`} alt="flag" />}
>
<ul className="grid w-[280px] grid-cols-2 gap-2 !px-2 font-semibold text-dark dark:text-white-dark dark:text-white-light/90">
{themeConfig.languageList.map((item: any) => {
return (
<li key={item.code}>
<button
type="button"
className={`flex w-full hover:text-primary ${i18n.language === item.code ? 'bg-primary/10 text-primary' : ''}`}
onClick={() => {
i18n.changeLanguage(item.code);
setLocale(item.code);
}}
>
<img src={`/assets/images/flags/${item.code.toUpperCase()}.svg`} alt="flag" className="h-5 w-5 rounded-full object-cover" />
<span className="ltr:ml-3 rtl:mr-3">{item.name}</span>
</button>
</li>
);
})}
</ul>
</Dropdown>
</div>
<div className="dropdown shrink-0">
<Dropdown
offset={[0, 8]}
placement={`${isRtl ? 'bottom-start' : 'bottom-end'}`}
btnClassName="block p-2 rounded-full bg-white-light/40 dark:bg-dark/40 hover:text-primary hover:bg-white-light/90 dark:hover:bg-dark/60"
button={<IconMailDot />}
>
<ul className="w-[300px] !py-0 text-xs text-dark dark:text-white-dark sm:w-[375px]">
<li className="mb-5" onClick={(e) => e.stopPropagation()}>
<div className="relative !h-[68px] w-full overflow-hidden rounded-t-md p-5 text-white hover:!bg-transparent">
<div className="bg- absolute inset-0 h-full w-full bg-[url(/assets/images/menu-heade.jpg)] bg-cover bg-center bg-no-repeat"></div>
<h4 className="relative z-10 text-lg font-semibold">Messages</h4>
</div>
</li>
{messages.length > 0 ? (
<>
<li onClick={(e) => e.stopPropagation()}>
{messages.map((message) => {
return (
<div key={message.id} className="flex items-center px-5 py-3">
<div dangerouslySetInnerHTML={createMarkup(message.image)}></div>
<span className="px-3 dark:text-gray-500">
<div className="text-sm font-semibold dark:text-white-light/90">{message.title}</div>
<div>{message.message}</div>
</span>
<span className="whitespace-pre rounded bg-white-dark/20 px-1 font-semibold text-dark/60 ltr:ml-auto ltr:mr-2 rtl:ml-2 rtl:mr-auto dark:text-white-dark">
{message.time}
</span>
<button type="button" className="text-neutral-300 hover:text-danger" onClick={() => removeMessage(message.id)}>
<IconXCircle />
</button>
</div>
);
})}
</li>
<li className="mt-5 border-t border-white-light text-center dark:border-white/10">
<button type="button" className="group !h-[48px] justify-center !py-4 font-semibold text-primary dark:text-gray-400">
<span className="group-hover:underline ltr:mr-1 rtl:ml-1">VIEW ALL ACTIVITIES</span>
<IconArrowLeft className="transition duration-300 group-hover:translate-x-1 ltr:ml-1 rtl:mr-1" />
</button>
</li>
</>
) : (
<li className="mb-5" onClick={(e) => e.stopPropagation()}>
<button type="button" className="!grid min-h-[200px] place-content-center text-lg hover:!bg-transparent">
<div className="mx-auto mb-4 rounded-full text-primary ring-4 ring-primary/30">
<IconInfoCircle fill={true} className="h-10 w-10" />
</div>
No data available.
</button>
</li>
)}
</ul>
</Dropdown>
</div>
<div className="dropdown shrink-0">
<Dropdown
offset={[0, 8]}
placement={`${isRtl ? 'bottom-start' : 'bottom-end'}`}
btnClassName="relative block p-2 rounded-full bg-white-light/40 dark:bg-dark/40 hover:text-primary hover:bg-white-light/90 dark:hover:bg-dark/60"
button={
<span>
<IconBellBing />
<span className="absolute top-0 flex h-3 w-3 ltr:right-0 rtl:left-0">
<span className="absolute -top-[3px] inline-flex h-full w-full animate-ping rounded-full bg-success/50 opacity-75 ltr:-left-[3px] rtl:-right-[3px]"></span>
<span className="relative inline-flex h-[6px] w-[6px] rounded-full bg-success"></span>
</span>
</span>
}
>
<ul className="w-[300px] divide-y !py-0 text-dark dark:divide-white/10 dark:text-white-dark sm:w-[350px]">
<li onClick={(e) => e.stopPropagation()}>
<div className="flex items-center justify-between px-4 py-2 font-semibold">
<h4 className="text-lg">Notification</h4>
{notifications.length ? <span className="badge bg-primary/80">{notifications.length}New</span> : ''}
</div>
</li>
{notifications.length > 0 ? (
<>
{notifications.map((notification) => {
return (
<li key={notification.id} className="dark:text-white-light/90" onClick={(e) => e.stopPropagation()}>
<div className="group flex items-center px-4 py-2">
<div className="grid place-content-center rounded">
<div className="relative h-12 w-12">
<img className="h-12 w-12 rounded-full object-cover" alt="profile" src={`/assets/images/${notification.profile}`} />
<span className="absolute bottom-0 right-[6px] block h-2 w-2 rounded-full bg-success"></span>
</div>
</div>
<div className="flex flex-auto ltr:pl-3 rtl:pr-3">
<div className="ltr:pr-3 rtl:pl-3">
<h6
dangerouslySetInnerHTML={{
__html: notification.message,
}}
></h6>
<span className="block text-xs font-normal dark:text-gray-500">{notification.time}</span>
</div>
<button
type="button"
className="text-neutral-300 opacity-0 hover:text-danger group-hover:opacity-100 ltr:ml-auto rtl:mr-auto"
onClick={() => removeNotification(notification.id)}
>
<IconXCircle />
</button>
</div>
</div>
</li>
);
})}
<li>
<div className="p-4">
<button className="btn btn-primary btn-small block w-full">Read All Notifications</button>
</div>
</li>
</>
) : (
<li onClick={(e) => e.stopPropagation()}>
<button type="button" className="!grid min-h-[200px] place-content-center text-lg hover:!bg-transparent">
<div className="mx-auto mb-4 rounded-full ring-4 ring-primary/30">
<IconInfoCircle fill={true} className="h-10 w-10 text-primary" />
</div>
No data available.
</button>
</li>
)}
</ul>
</Dropdown>
</div>
<div className="dropdown flex shrink-0"> <div className="dropdown flex shrink-0">
<Dropdown <Dropdown
offset={[0, 8]} offset={[0, 8]}
@ -456,524 +236,7 @@ const Header = () => {
</div> </div>
</div> </div>
{/* horizontal menu */}
<ul className="horizontal-menu hidden border-t border-[#ebedf2] bg-white px-6 py-1.5 font-semibold text-black rtl:space-x-reverse dark:border-[#191e3a] dark:bg-black dark:text-white-dark lg:space-x-1.5 xl:space-x-8">
<li className="menu nav-item relative">
<button type="button" className="nav-link">
<div className="flex items-center">
<IconMenuDashboard className="shrink-0" />
<span className="px-1">{t('dashboard')}</span>
</div>
<div className="right_arrow">
<IconCaretDown />
</div>
</button>
<ul className="sub-menu">
<li>
<Link href="/">{t('sales')}</Link>
</li>
<li>
<Link href="/analytics">{t('analytics')}</Link>
</li>
<li>
<Link href="/finance">{t('finance')}</Link>
</li>
<li>
<Link href="/crypto">{t('crypto')}</Link>
</li>
</ul>
</li>
<li className="menu nav-item relative">
<button type="button" className="nav-link">
<div className="flex items-center">
<IconMenuApps className="shrink-0" />
<span className="px-1">{t('apps')}</span>
</div>
<div className="right_arrow">
<IconCaretDown />
</div>
</button>
<ul className="sub-menu">
<li>
<Link href="/apps/chat">{t('chat')}</Link>
</li>
<li>
<Link href="/apps/mailbox">{t('mailbox')}</Link>
</li>
<li>
<Link href="/apps/todolist">{t('todo_list')}</Link>
</li>
<li>
<Link href="/apps/notes">{t('notes')}</Link>
</li>
<li>
<Link href="/apps/scrumboard">{t('scrumboard')}</Link>
</li>
<li>
<Link href="/apps/contacts">{t('contacts')}</Link>
</li>
<li className="relative">
<button type="button">
{t('invoice')}
<div className="-rotate-90 ltr:ml-auto rtl:mr-auto rtl:rotate-90">
<IconCaretDown />
</div>
</button>
<ul className="absolute top-0 z-[10] hidden min-w-[180px] rounded bg-white p-0 py-2 text-dark shadow ltr:left-[95%] rtl:right-[95%] dark:bg-[#1b2e4b] dark:text-white-dark">
<li>
<Link href="/apps/invoice/list">{t('list')}</Link>
</li>
<li>
<Link href="/apps/invoice/preview">{t('preview')}</Link>
</li>
<li>
<Link href="/apps/invoice/add">{t('add')}</Link>
</li>
<li>
<Link href="/apps/invoice/edit">{t('edit')}</Link>
</li>
</ul>
</li>
<li>
<Link href="/apps/calendar">{t('calendar')}</Link>
</li>
</ul>
</li>
<li className="menu nav-item relative">
<button type="button" className="nav-link">
<div className="flex items-center">
<IconMenuComponents className="shrink-0" />
<span className="px-1">{t('components')}</span>
</div>
<div className="right_arrow">
<IconCaretDown />
</div>
</button>
<ul className="sub-menu">
<li>
<Link href="/components/tabs">{t('tabs')}</Link>
</li>
<li>
<Link href="/components/accordions">{t('accordions')}</Link>
</li>
<li>
<Link href="/components/modals">{t('modals')}</Link>
</li>
<li>
<Link href="/components/cards">{t('cards')}</Link>
</li>
<li>
<Link href="/components/carousel">{t('carousel')}</Link>
</li>
<li>
<Link href="/components/countdown">{t('countdown')}</Link>
</li>
<li>
<Link href="/components/counter">{t('counter')}</Link>
</li>
<li>
<Link href="/components/sweetalert">{t('sweet_alerts')}</Link>
</li>
<li>
<Link href="/components/timeline">{t('timeline')}</Link>
</li>
<li>
<Link href="/components/notifications">{t('notifications')}</Link>
</li>
<li>
<Link href="/components/media-object">{t('media_object')}</Link>
</li>
<li>
<Link href="/components/list-group">{t('list_group')}</Link>
</li>
<li>
<Link href="/components/pricing-table">{t('pricing_tables')}</Link>
</li>
<li>
<Link href="/components/lightbox">{t('lightbox')}</Link>
</li>
</ul>
</li>
<li className="menu nav-item relative">
<button type="button" className="nav-link">
<div className="flex items-center">
<IconMenuElements className="shrink-0" />
<span className="px-1">{t('elements')}</span>
</div>
<div className="right_arrow">
<IconCaretDown />
</div>
</button>
<ul className="sub-menu">
<li>
<Link href="/elements/alerts">{t('alerts')}</Link>
</li>
<li>
<Link href="/elements/avatar">{t('avatar')}</Link>
</li>
<li>
<Link href="/elements/badges">{t('badges')}</Link>
</li>
<li>
<Link href="/elements/breadcrumbs">{t('breadcrumbs')}</Link>
</li>
<li>
<Link href="/elements/buttons">{t('buttons')}</Link>
</li>
<li>
<Link href="/elements/buttons-group">{t('button_groups')}</Link>
</li>
<li>
<Link href="/elements/color-library">{t('color_library')}</Link>
</li>
<li>
<Link href="/elements/dropdown">{t('dropdown')}</Link>
</li>
<li>
<Link href="/elements/infobox">{t('infobox')}</Link>
</li>
<li>
<Link href="/elements/jumbotron">{t('jumbotron')}</Link>
</li>
<li>
<Link href="/elements/loader">{t('loader')}</Link>
</li>
<li>
<Link href="/elements/pagination">{t('pagination')}</Link>
</li>
<li>
<Link href="/elements/popovers">{t('popovers')}</Link>
</li>
<li>
<Link href="/elements/progress-bar">{t('progress_bar')}</Link>
</li>
<li>
<Link href="/elements/search">{t('search')}</Link>
</li>
<li>
<Link href="/elements/tooltips">{t('tooltips')}</Link>
</li>
<li>
<Link href="/elements/treeview">{t('treeview')}</Link>
</li>
<li>
<Link href="/elements/typography">{t('typography')}</Link>
</li>
</ul>
</li>
<li className="menu nav-item relative">
<button type="button" className="nav-link">
<div className="flex items-center">
<IconMenuDatatables className="shrink-0" />
<span className="px-1">{t('tables')}</span>
</div>
<div className="right_arrow">
<IconCaretDown />
</div>
</button>
<ul className="sub-menu">
<li>
<Link href="/tables">{t('tables')}</Link>
</li>
<li className="relative">
<button type="button">
{t('datatables')}
<div className="-rotate-90 ltr:ml-auto rtl:mr-auto rtl:rotate-90">
<IconCaretDown />
</div>
</button>
<ul className="absolute top-0 z-[10] hidden min-w-[180px] rounded bg-white p-0 py-2 text-dark shadow ltr:left-[95%] rtl:right-[95%] dark:bg-[#1b2e4b] dark:text-white-dark">
<li>
<Link href="/datatables/basic">{t('basic')}</Link>
</li>
<li>
<Link href="/datatables/advanced">{t('advanced')}</Link>
</li>
<li>
<Link href="/datatables/skin">{t('skin')}</Link>
</li>
<li>
<Link href="/datatables/order-sorting">{t('order_sorting')}</Link>
</li>
<li>
<Link href="/datatables/multi-column">{t('multi_column')}</Link>
</li>
<li>
<Link href="/datatables/multiple-tables">{t('multiple_tables')}</Link>
</li>
<li>
<Link href="/datatables/alt-pagination">{t('alt_pagination')}</Link>
</li>
<li>
<Link href="/datatables/checkbox">{t('checkbox')}</Link>
</li>
<li>
<Link href="/datatables/range-search">{t('range_search')}</Link>
</li>
<li>
<Link href="/datatables/export">{t('export')}</Link>
</li>
<li>
<Link href="/datatables/column-chooser">{t('column_chooser')}</Link>
</li>
</ul>
</li>
</ul>
</li>
<li className="menu nav-item relative">
<button type="button" className="nav-link">
<div className="flex items-center">
<IconMenuForms className="shrink-0" />
<span className="px-1">{t('forms')}</span>
</div>
<div className="right_arrow">
<IconCaretDown />
</div>
</button>
<ul className="sub-menu">
<li>
<Link href="/forms/basic">{t('basic')}</Link>
</li>
<li>
<Link href="/forms/input-group">{t('input_group')}</Link>
</li>
<li>
<Link href="/forms/layouts">{t('layouts')}</Link>
</li>
<li>
<Link href="/forms/validation">{t('validation')}</Link>
</li>
<li>
<Link href="/forms/input-mask">{t('input_mask')}</Link>
</li>
<li>
<Link href="/forms/select2">{t('select2')}</Link>
</li>
<li>
<Link href="/forms/touchspin">{t('touchspin')}</Link>
</li>
<li>
<Link href="/forms/checkbox-radio">{t('checkbox_and_radio')}</Link>
</li>
<li>
<Link href="/forms/switches">{t('switches')}</Link>
</li>
<li>
<Link href="/forms/wizards">{t('wizards')}</Link>
</li>
<li>
<Link href="/forms/file-upload">{t('file_upload')}</Link>
</li>
<li>
<Link href="/forms/quill-editor">{t('quill_editor')}</Link>
</li>
<li>
<Link href="/forms/markdown-editor">{t('markdown_editor')}</Link>
</li>
<li>
<Link href="/forms/date-picker">{t('date_and_range_picker')}</Link>
</li>
<li>
<Link href="/forms/clipboard">{t('clipboard')}</Link>
</li>
</ul>
</li>
<li className="menu nav-item relative">
<button type="button" className="nav-link">
<div className="flex items-center">
<IconMenuPages className="shrink-0" />
<span className="px-1">{t('pages')}</span>
</div>
<div className="right_arrow">
<IconCaretDown />
</div>
</button>
<ul className="sub-menu">
<li className="relative">
<button type="button">
{t('users')}
<div className="-rotate-90 ltr:ml-auto rtl:mr-auto rtl:rotate-90">
<IconCaretDown />
</div>
</button>
<ul className="absolute top-0 z-[10] hidden min-w-[180px] rounded bg-white p-0 py-2 text-dark shadow ltr:left-[95%] rtl:right-[95%] dark:bg-[#1b2e4b] dark:text-white-dark">
<li>
<Link href="/users/profile">{t('profile')}</Link>
</li>
<li>
<Link href="/users/user-account-settings">{t('account_settings')}</Link>
</li>
</ul>
</li>
<li>
<Link href="/pages/knowledge-base">{t('knowledge_base')}</Link>
</li>
<li>
<Link href="/pages/contact-us-boxed" target="_blank">
{t('contact_us_boxed')}
</Link>
</li>
<li>
<Link href="/pages/contact-us-cover" target="_blank">
{t('contact_us_cover')}
</Link>
</li>
<li>
<Link href="/pages/faq">{t('faq')}</Link>
</li>
<li>
<Link href="/pages/coming-soon-boxed" target="_blank">
{t('coming_soon_boxed')}
</Link>
</li>
<li>
<Link href="/pages/coming-soon-cover" target="_blank">
{t('coming_soon_cover')}
</Link>
</li>
<li>
<Link href="/pages/maintenence" target="_blank">
{t('maintenence')}
</Link>
</li>
<li className="relative">
<button type="button">
{t('error')}
<div className="-rotate-90 ltr:ml-auto rtl:mr-auto rtl:rotate-90">
<IconCaretDown />
</div>
</button>
<ul className="absolute top-0 z-[10] hidden min-w-[180px] rounded bg-white p-0 py-2 text-dark shadow ltr:left-[95%] rtl:right-[95%] dark:bg-[#1b2e4b] dark:text-white-dark">
<li>
<Link href="/pages/error404" target="_blank">
{t('404')}
</Link>
</li>
<li>
<Link href="/pages/error500" target="_blank">
{t('500')}
</Link>
</li>
<li>
<Link href="/pages/error503" target="_blank">
{t('503')}
</Link>
</li>
</ul>
</li>
<li className="relative">
<button type="button">
{t('login')}
<div className="-rotate-90 ltr:ml-auto rtl:mr-auto rtl:rotate-90">
<IconCaretDown />
</div>
</button>
<ul className="absolute top-0 z-[10] hidden min-w-[180px] rounded bg-white p-0 py-2 text-dark shadow ltr:left-[95%] rtl:right-[95%] dark:bg-[#1b2e4b] dark:text-white-dark">
<li>
<Link href="/auth/cover-login" target="_blank">
{t('login_cover')}
</Link>
</li>
<li>
<Link href="/auth/boxed-signin" target="_blank">
{t('login_boxed')}
</Link>
</li>
</ul>
</li>
<li className="relative">
<button type="button">
{t('register')}
<div className="-rotate-90 ltr:ml-auto rtl:mr-auto rtl:rotate-90">
<IconCaretDown />
</div>
</button>
<ul className="absolute top-0 z-[10] hidden min-w-[180px] rounded bg-white p-0 py-2 text-dark shadow ltr:left-[95%] rtl:right-[95%] dark:bg-[#1b2e4b] dark:text-white-dark">
<li>
<Link href="/auth/cover-register" target="_blank">
{t('register_cover')}
</Link>
</li>
<li>
<Link href="/auth/boxed-signup" target="_blank">
{t('register_boxed')}
</Link>
</li>
</ul>
</li>
<li className="relative">
<button type="button">
{t('password_recovery')}
<div className="-rotate-90 ltr:ml-auto rtl:mr-auto rtl:rotate-90">
<IconCaretDown />
</div>
</button>
<ul className="absolute top-0 z-[10] hidden min-w-[180px] rounded bg-white p-0 py-2 text-dark shadow ltr:left-[95%] rtl:right-[95%] dark:bg-[#1b2e4b] dark:text-white-dark">
<li>
<Link href="/auth/cover-password-reset" target="_blank">
{t('recover_id_cover')}
</Link>
</li>
<li>
<Link href="/auth/boxed-password-reset" target="_blank">
{t('recover_id_boxed')}
</Link>
</li>
</ul>
</li>
<li className="relative">
<button type="button">
{t('lockscreen')}
<div className="-rotate-90 ltr:ml-auto rtl:mr-auto rtl:rotate-90">
<IconCaretDown />
</div>
</button>
<ul className="absolute top-0 z-[10] hidden min-w-[180px] rounded bg-white p-0 py-2 text-dark shadow ltr:left-[95%] rtl:right-[95%] dark:bg-[#1b2e4b] dark:text-white-dark">
<li>
<Link href="/auth/cover-lockscreen" target="_blank">
{t('unlock_cover')}
</Link>
</li>
<li>
<Link href="/auth/boxed-lockscreen" target="_blank">
{t('unlock_boxed')}
</Link>
</li>
</ul>
</li>
</ul>
</li>
<li className="menu nav-item relative">
<button type="button" className="nav-link">
<div className="flex items-center">
<IconMenuMore className="shrink-0" />
<span className="px-1">{t('more')}</span>
</div>
<div className="right_arrow">
<IconCaretDown />
</div>
</button>
<ul className="sub-menu">
<li>
<Link href="/dragndrop">{t('drag_and_drop')}</Link>
</li>
<li>
<Link href="/charts">{t('charts')}</Link>
</li>
<li>
<Link href="/font-icons">{t('font_icons')}</Link>
</li>
<li>
<Link href="/widgets">{t('widgets')}</Link>
</li>
<li>
<Link href="https://vristo.sbthemes.com" target="_blank">
{t('documentation')}
</Link>
</li>
</ul>
</li>
</ul>
</div> </div>
</header> </header>
); );

View File

@ -7,30 +7,7 @@ import AnimateHeight from 'react-animate-height';
import { IRootState } from '@/store'; import { IRootState } from '@/store';
import { useState, useEffect } from 'react'; import { useState, useEffect } from 'react';
import IconCaretsDown from '@/components/icon/icon-carets-down'; import IconCaretsDown from '@/components/icon/icon-carets-down';
import IconMenuDashboard from '@/components/icon/menu/icon-menu-dashboard';
import IconCaretDown from '@/components/icon/icon-caret-down';
import IconMinus from '@/components/icon/icon-minus';
import IconMenuChat from '@/components/icon/menu/icon-menu-chat';
import IconMenuMailbox from '@/components/icon/menu/icon-menu-mailbox';
import IconMenuTodo from '@/components/icon/menu/icon-menu-todo';
import IconMenuNotes from '@/components/icon/menu/icon-menu-notes';
import IconMenuScrumboard from '@/components/icon/menu/icon-menu-scrumboard';
import IconMenuContacts from '@/components/icon/menu/icon-menu-contacts';
import IconMenuInvoice from '@/components/icon/menu/icon-menu-invoice';
import IconMenuCalendar from '@/components/icon/menu/icon-menu-calendar';
import IconMenuComponents from '@/components/icon/menu/icon-menu-components'; import IconMenuComponents from '@/components/icon/menu/icon-menu-components';
import IconMenuElements from '@/components/icon/menu/icon-menu-elements';
import IconMenuCharts from '@/components/icon/menu/icon-menu-charts';
import IconMenuWidgets from '@/components/icon/menu/icon-menu-widgets';
import IconMenuFontIcons from '@/components/icon/menu/icon-menu-font-icons';
import IconMenuDragAndDrop from '@/components/icon/menu/icon-menu-drag-and-drop';
import IconMenuTables from '@/components/icon/menu/icon-menu-tables';
import IconMenuDatatables from '@/components/icon/menu/icon-menu-datatables';
import IconMenuForms from '@/components/icon/menu/icon-menu-forms';
import IconMenuUsers from '@/components/icon/menu/icon-menu-users';
import IconMenuPages from '@/components/icon/menu/icon-menu-pages';
import IconMenuAuthentication from '@/components/icon/menu/icon-menu-authentication';
import IconMenuDocumentation from '@/components/icon/menu/icon-menu-documentation';
import { usePathname } from 'next/navigation'; import { usePathname } from 'next/navigation';
import { getTranslation } from '@/i18n'; import { getTranslation } from '@/i18n';
@ -90,8 +67,8 @@ const Sidebar = () => {
<div className="h-full bg-white dark:bg-black"> <div className="h-full bg-white dark:bg-black">
<div className="flex items-center justify-between px-4 py-3"> <div className="flex items-center justify-between px-4 py-3">
<Link href="/" className="main-logo flex shrink-0 items-center"> <Link href="/" className="main-logo flex shrink-0 items-center">
<img className="ml-[5px] w-8 flex-none" src="/assets/images/logo.svg" alt="logo" /> <img className="ml-[5px] w-8 flex-none" src="/assets/images/logo.png" alt="logo" />
<span className="align-middle text-2xl font-semibold ltr:ml-1.5 rtl:mr-1.5 dark:text-white-light lg:inline">VRISTO</span> <span className="align-middle text-2xl font-semibold ltr:ml-1.5 rtl:mr-1.5 dark:text-white-light lg:inline">Rooftop Energy</span>
</Link> </Link>
<button <button
@ -105,613 +82,45 @@ const Sidebar = () => {
<PerfectScrollbar className="relative h-[calc(100vh-80px)]"> <PerfectScrollbar className="relative h-[calc(100vh-80px)]">
<ul className="relative space-y-0.5 p-4 py-0 font-semibold"> <ul className="relative space-y-0.5 p-4 py-0 font-semibold">
<li className="menu nav-item"> <li className="menu nav-item">
<button type="button" className={`${currentMenu === 'dashboard' ? 'active' : ''} nav-link group w-full`} onClick={() => toggleMenu('dashboard')}> <Link href="#" className="nav-link group">
<div className="flex items-center">
<IconMenuDashboard className="shrink-0 group-hover:!text-primary" />
<span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">{t('dashboard')}</span>
</div>
<div className={currentMenu !== 'dashboard' ? '-rotate-90 rtl:rotate-90' : ''}>
<IconCaretDown />
</div>
</button>
<AnimateHeight duration={300} height={currentMenu === 'dashboard' ? 'auto' : 0}>
<ul className="sub-menu text-gray-500">
<li>
<Link href="/">{t('sales')}</Link>
</li>
<li>
<Link href="/analytics">{t('analytics')}</Link>
</li>
<li>
<Link href="/finance">{t('finance')}</Link>
</li>
<li>
<Link href="/crypto">{t('crypto')}</Link>
</li>
</ul>
</AnimateHeight>
</li>
<h2 className="-mx-4 mb-1 flex items-center bg-white-light/30 px-7 py-3 font-extrabold uppercase dark:bg-dark dark:bg-opacity-[0.08]">
<IconMinus className="hidden h-5 w-4 flex-none" />
<span>{t('apps')}</span>
</h2>
<li className="nav-item">
<ul>
<li className="nav-item">
<Link href="/apps/chat" className="group">
<div className="flex items-center">
<IconMenuChat className="shrink-0 group-hover:!text-primary" />
<span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">{t('chat')}</span>
</div>
</Link>
</li>
<li className="nav-item">
<Link href="/apps/mailbox" className="group">
<div className="flex items-center">
<IconMenuMailbox className="shrink-0 group-hover:!text-primary" />
<span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">{t('mailbox')}</span>
</div>
</Link>
</li>
<li className="nav-item">
<Link href="/apps/todolist" className="group">
<div className="flex items-center">
<IconMenuTodo className="shrink-0 group-hover:!text-primary" />
<span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">{t('todo_list')}</span>
</div>
</Link>
</li>
<li className="nav-item">
<Link href="/apps/notes" className="group">
<div className="flex items-center">
<IconMenuNotes className="shrink-0 group-hover:!text-primary" />
<span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">{t('notes')}</span>
</div>
</Link>
</li>
<li className="nav-item">
<Link href="/apps/scrumboard" className="group">
<div className="flex items-center">
<IconMenuScrumboard className="shrink-0 group-hover:!text-primary" />
<span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">{t('scrumboard')}</span>
</div>
</Link>
</li>
<li className="nav-item">
<Link href="/apps/contacts" className="group">
<div className="flex items-center">
<IconMenuContacts className="shrink-0 group-hover:!text-primary" />
<span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">{t('contacts')}</span>
</div>
</Link>
</li>
<li className="menu nav-item">
<button type="button" className={`${currentMenu === 'invoice' ? 'active' : ''} nav-link group w-full`} onClick={() => toggleMenu('invoice')}>
<div className="flex items-center">
<IconMenuInvoice className="shrink-0 group-hover:!text-primary" />
<span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">{t('invoice')}</span>
</div>
<div className={currentMenu !== 'invoice' ? '-rotate-90 rtl:rotate-90' : ''}>
<IconCaretDown />
</div>
</button>
<AnimateHeight duration={300} height={currentMenu === 'invoice' ? 'auto' : 0}>
<ul className="sub-menu text-gray-500">
<li>
<Link href="/apps/invoice/list">{t('list')}</Link>
</li>
<li>
<Link href="/apps/invoice/preview">{t('preview')}</Link>
</li>
<li>
<Link href="/apps/invoice/add">{t('add')}</Link>
</li>
<li>
<Link href="/apps/invoice/edit">{t('edit')}</Link>
</li>
</ul>
</AnimateHeight>
</li>
<li className="nav-item">
<Link href="/apps/calendar" className="group">
<div className="flex items-center">
<IconMenuCalendar className="shrink-0 group-hover:!text-primary" />
<span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">{t('calendar')}</span>
</div>
</Link>
</li>
</ul>
</li>
<h2 className="-mx-4 mb-1 flex items-center bg-white-light/30 px-7 py-3 font-extrabold uppercase dark:bg-dark dark:bg-opacity-[0.08]">
<IconMinus className="hidden h-5 w-4 flex-none" />
<span>{t('user_interface')}</span>
</h2>
<li className="menu nav-item">
<button type="button" className={`${currentMenu === 'component' ? 'active' : ''} nav-link group w-full`} onClick={() => toggleMenu('component')}>
<div className="flex items-center"> <div className="flex items-center">
<IconMenuComponents className="shrink-0 group-hover:!text-primary" /> <IconMenuComponents className="shrink-0 group-hover:!text-primary" />
<span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">{t('components')}</span> <span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">Solis</span>
</div> </div>
</Link>
<div className={currentMenu !== 'component' ? '-rotate-90 rtl:rotate-90' : ''}>
<IconCaretDown />
</div>
</button>
<AnimateHeight duration={300} height={currentMenu === 'component' ? 'auto' : 0}>
<ul className="sub-menu text-gray-500">
<li>
<Link href="/components/tabs">{t('tabs')}</Link>
</li>
<li>
<Link href="/components/accordions">{t('accordions')}</Link>
</li>
<li>
<Link href="/components/modals">{t('modals')}</Link>
</li>
<li>
<Link href="/components/cards">{t('cards')}</Link>
</li>
<li>
<Link href="/components/carousel">{t('carousel')}</Link>
</li>
<li>
<Link href="/components/countdown">{t('countdown')}</Link>
</li>
<li>
<Link href="/components/counter">{t('counter')}</Link>
</li>
<li>
<Link href="/components/sweetalert">{t('sweet_alerts')}</Link>
</li>
<li>
<Link href="/components/timeline">{t('timeline')}</Link>
</li>
<li>
<Link href="/components/notifications">{t('notifications')}</Link>
</li>
<li>
<Link href="/components/media-object">{t('media_object')}</Link>
</li>
<li>
<Link href="/components/list-group">{t('list_group')}</Link>
</li>
<li>
<Link href="/components/pricing-table">{t('pricing_tables')}</Link>
</li>
<li>
<Link href="/components/lightbox">{t('lightbox')}</Link>
</li>
</ul>
</AnimateHeight>
</li> </li>
<li className="menu nav-item"> <li className="menu nav-item">
<button type="button" className={`${currentMenu === 'element' ? 'active' : ''} nav-link group w-full`} onClick={() => toggleMenu('element')}> <Link href="#" className="nav-link group">
<div className="flex items-center"> <div className="flex items-center">
<IconMenuElements className="shrink-0 group-hover:!text-primary" /> <IconMenuComponents className="shrink-0 group-hover:!text-primary" />
<span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">{t('elements')}</span> <span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">Huawei</span>
</div>
<div className={currentMenu !== 'element' ? '-rotate-90 rtl:rotate-90' : ''}>
<IconCaretDown />
</div>
</button>
<AnimateHeight duration={300} height={currentMenu === 'element' ? 'auto' : 0}>
<ul className="sub-menu text-gray-500">
<li>
<Link href="/elements/alerts">{t('alerts')}</Link>
</li>
<li>
<Link href="/elements/avatar">{t('avatar')}</Link>
</li>
<li>
<Link href="/elements/badges">{t('badges')}</Link>
</li>
<li>
<Link href="/elements/breadcrumbs">{t('breadcrumbs')}</Link>
</li>
<li>
<Link href="/elements/buttons">{t('buttons')}</Link>
</li>
<li>
<Link href="/elements/buttons-group">{t('button_groups')}</Link>
</li>
<li>
<Link href="/elements/color-library">{t('color_library')}</Link>
</li>
<li>
<Link href="/elements/dropdown">{t('dropdown')}</Link>
</li>
<li>
<Link href="/elements/infobox">{t('infobox')}</Link>
</li>
<li>
<Link href="/elements/jumbotron">{t('jumbotron')}</Link>
</li>
<li>
<Link href="/elements/loader">{t('loader')}</Link>
</li>
<li>
<Link href="/elements/pagination">{t('pagination')}</Link>
</li>
<li>
<Link href="/elements/popovers">{t('popovers')}</Link>
</li>
<li>
<Link href="/elements/progress-bar">{t('progress_bar')}</Link>
</li>
<li>
<Link href="/elements/search">{t('search')}</Link>
</li>
<li>
<Link href="/elements/tooltips">{t('tooltips')}</Link>
</li>
<li>
<Link href="/elements/treeview">{t('treeview')}</Link>
</li>
<li>
<Link href="/elements/typography">{t('typography')}</Link>
</li>
</ul>
</AnimateHeight>
</li>
<li className="menu nav-item">
<Link href="/charts" className="group">
<div className="flex items-center">
<IconMenuCharts className="shrink-0 group-hover:!text-primary" />
<span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">{t('charts')}</span>
</div> </div>
</Link> </Link>
</li> </li>
<li className="menu nav-item"> <li className="menu nav-item">
<Link href="/widgets" className="group"> <Link href="#" className="nav-link group">
<div className="flex items-center"> <div className="flex items-center">
<IconMenuWidgets className="shrink-0 group-hover:!text-primary" /> <IconMenuComponents className="shrink-0 group-hover:!text-primary" />
<span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">{t('widgets')}</span> <span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">Chint</span>
</div> </div>
</Link> </Link>
</li> </li>
<li className="menu nav-item"> <li className="menu nav-item">
<Link href="/font-icons" className="group"> <Link href="#" className="nav-link group">
<div className="flex items-center"> <div className="flex items-center">
<IconMenuFontIcons className="shrink-0 group-hover:!text-primary" /> <IconMenuComponents className="shrink-0 group-hover:!text-primary" />
<span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">{t('font_icons')}</span> <span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">CSI</span>
</div> </div>
</Link> </Link>
</li> </li>
<li className="menu nav-item"> <li className="menu nav-item">
<Link href="/dragndrop" className="group"> <Link href="#" className="nav-link group">
<div className="flex items-center"> <div className="flex items-center">
<IconMenuDragAndDrop className="shrink-0 group-hover:!text-primary" /> <IconMenuComponents className="shrink-0 group-hover:!text-primary" />
<span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">{t('drag_and_drop')}</span> <span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">Sungrow</span>
</div>
</Link>
</li>
<h2 className="-mx-4 mb-1 flex items-center bg-white-light/30 px-7 py-3 font-extrabold uppercase dark:bg-dark dark:bg-opacity-[0.08]">
<IconMinus className="hidden h-5 w-4 flex-none" />
<span>{t('tables_and_forms')}</span>
</h2>
<li className="menu nav-item">
<Link href="/tables" className="group">
<div className="flex items-center">
<IconMenuTables className="shrink-0 group-hover:!text-primary" />
<span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">{t('tables')}</span>
</div>
</Link>
</li>
<li className="menu nav-item">
<button type="button" className={`${currentMenu === 'datalabel' ? 'active' : ''} nav-link group w-full`} onClick={() => toggleMenu('datalabel')}>
<div className="flex items-center">
<IconMenuDatatables className="shrink-0 group-hover:!text-primary" />
<span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">{t('datatables')}</span>
</div>
<div className={currentMenu !== 'datalabel' ? '-rotate-90 rtl:rotate-90' : ''}>
<IconCaretDown />
</div>
</button>
<AnimateHeight duration={300} height={currentMenu === 'datalabel' ? 'auto' : 0}>
<ul className="sub-menu text-gray-500">
<li>
<Link href="/datatables/basic">{t('basic')}</Link>
</li>
<li>
<Link href="/datatables/advanced">{t('advanced')}</Link>
</li>
<li>
<Link href="/datatables/skin">{t('skin')}</Link>
</li>
<li>
<Link href="/datatables/order-sorting">{t('order_sorting')}</Link>
</li>
<li>
<Link href="/datatables/multi-column">{t('multi_column')}</Link>
</li>
<li>
<Link href="/datatables/multiple-tables">{t('multiple_tables')}</Link>
</li>
<li>
<Link href="/datatables/alt-pagination">{t('alt_pagination')}</Link>
</li>
<li>
<Link href="/datatables/checkbox">{t('checkbox')}</Link>
</li>
<li>
<Link href="/datatables/range-search">{t('range_search')}</Link>
</li>
<li>
<Link href="/datatables/export">{t('export')}</Link>
</li>
<li>
<Link href="/datatables/column-chooser">{t('column_chooser')}</Link>
</li>
</ul>
</AnimateHeight>
</li>
<li className="menu nav-item">
<button type="button" className={`${currentMenu === 'forms' ? 'active' : ''} nav-link group w-full`} onClick={() => toggleMenu('forms')}>
<div className="flex items-center">
<IconMenuForms className="shrink-0 group-hover:!text-primary" />
<span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">{t('forms')}</span>
</div>
<div className={currentMenu !== 'forms' ? '-rotate-90 rtl:rotate-90' : ''}>
<IconCaretDown />
</div>
</button>
<AnimateHeight duration={300} height={currentMenu === 'forms' ? 'auto' : 0}>
<ul className="sub-menu text-gray-500">
<li>
<Link href="/forms/basic">{t('basic')}</Link>
</li>
<li>
<Link href="/forms/input-group">{t('input_group')}</Link>
</li>
<li>
<Link href="/forms/layouts">{t('layouts')}</Link>
</li>
<li>
<Link href="/forms/validation">{t('validation')}</Link>
</li>
<li>
<Link href="/forms/input-mask">{t('input_mask')}</Link>
</li>
<li>
<Link href="/forms/select2">{t('select2')}</Link>
</li>
<li>
<Link href="/forms/touchspin">{t('touchspin')}</Link>
</li>
<li>
<Link href="/forms/checkbox-radio">{t('checkbox_and_radio')}</Link>
</li>
<li>
<Link href="/forms/switches">{t('switches')}</Link>
</li>
<li>
<Link href="/forms/wizards">{t('wizards')}</Link>
</li>
<li>
<Link href="/forms/file-upload">{t('file_upload')}</Link>
</li>
<li>
<Link href="/forms/quill-editor">{t('quill_editor')}</Link>
</li>
<li>
<Link href="/forms/markdown-editor">{t('markdown_editor')}</Link>
</li>
<li>
<Link href="/forms/date-picker">{t('date_and_range_picker')}</Link>
</li>
<li>
<Link href="/forms/clipboard">{t('clipboard')}</Link>
</li>
</ul>
</AnimateHeight>
</li>
<h2 className="-mx-4 mb-1 flex items-center bg-white-light/30 px-7 py-3 font-extrabold uppercase dark:bg-dark dark:bg-opacity-[0.08]">
<IconMinus className="hidden h-5 w-4 flex-none" />
<span>{t('user_and_pages')}</span>
</h2>
<li className="menu nav-item">
<button type="button" className={`${currentMenu === 'users' ? 'active' : ''} nav-link group w-full`} onClick={() => toggleMenu('users')}>
<div className="flex items-center">
<IconMenuUsers className="shrink-0 group-hover:!text-primary" />
<span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">{t('users')}</span>
</div>
<div className={currentMenu !== 'users' ? '-rotate-90 rtl:rotate-90' : ''}>
<IconCaretDown />
</div>
</button>
<AnimateHeight duration={300} height={currentMenu === 'users' ? 'auto' : 0}>
<ul className="sub-menu text-gray-500">
<li>
<Link href="/users/profile">{t('profile')}</Link>
</li>
<li>
<Link href="/users/user-account-settings">{t('account_settings')}</Link>
</li>
</ul>
</AnimateHeight>
</li>
<li className="menu nav-item">
<button type="button" className={`${currentMenu === 'page' ? 'active' : ''} nav-link group w-full`} onClick={() => toggleMenu('page')}>
<div className="flex items-center">
<IconMenuPages className="shrink-0 group-hover:!text-primary" />
<span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">{t('pages')}</span>
</div>
<div className={currentMenu !== 'page' ? '-rotate-90 rtl:rotate-90' : ''}>
<IconCaretDown />
</div>
</button>
<AnimateHeight duration={300} height={currentMenu === 'page' ? 'auto' : 0}>
<ul className="sub-menu text-gray-500">
<li>
<Link href="/pages/knowledge-base">{t('knowledge_base')}</Link>
</li>
<li>
<Link href="/pages/contact-us-boxed" target="_blank">
{t('contact_us_boxed')}
</Link>
</li>
<li>
<Link href="/pages/contact-us-cover" target="_blank">
{t('contact_us_cover')}
</Link>
</li>
<li>
<Link href="/pages/faq">{t('faq')}</Link>
</li>
<li>
<Link href="/pages/coming-soon-boxed" target="_blank">
{t('coming_soon_boxed')}
</Link>
</li>
<li>
<Link href="/pages/coming-soon-cover" target="_blank">
{t('coming_soon_cover')}
</Link>
</li>
<li className="menu nav-item">
<button
type="button"
className={`${
errorSubMenu ? 'open' : ''
} w-full before:h-[5px] before:w-[5px] before:rounded before:bg-gray-300 hover:bg-gray-100 ltr:before:mr-2 rtl:before:ml-2 dark:text-[#888ea8] dark:hover:bg-gray-900`}
onClick={() => setErrorSubMenu(!errorSubMenu)}
>
{t('error')}
<div className={`${errorSubMenu ? '-rotate-90 rtl:rotate-90' : ''} ltr:ml-auto rtl:mr-auto`}>
<IconCaretsDown fill={true} className="h-4 w-4" />
</div>
</button>
<AnimateHeight duration={300} height={errorSubMenu ? 'auto' : 0}>
<ul className="sub-menu text-gray-500">
<li>
<a href="/pages/error404" target="_blank">
{t('404')}
</a>
</li>
<li>
<a href="/pages/error500" target="_blank">
{t('500')}
</a>
</li>
<li>
<a href="/pages/error503" target="_blank">
{t('503')}
</a>
</li>
</ul>
</AnimateHeight>
</li>
<li>
<Link href="/pages/maintenence" target="_blank">
{t('maintenence')}
</Link>
</li>
</ul>
</AnimateHeight>
</li>
<li className="menu nav-item">
<button type="button" className={`${currentMenu === 'auth' ? 'active' : ''} nav-link group w-full`} onClick={() => toggleMenu('auth')}>
<div className="flex items-center">
<IconMenuAuthentication className="shrink-0 group-hover:!text-primary" />
<span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">{t('authentication')}</span>
</div>
<div className={currentMenu !== 'auth' ? '-rotate-90 rtl:rotate-90' : ''}>
<IconCaretDown />
</div>
</button>
<AnimateHeight duration={300} height={currentMenu === 'auth' ? 'auto' : 0}>
<ul className="sub-menu text-gray-500">
<li>
<Link href="/auth/boxed-signin" target="_blank">
{t('login_boxed')}
</Link>
</li>
<li>
<Link href="/auth/boxed-signup" target="_blank">
{t('register_boxed')}
</Link>
</li>
<li>
<Link href="/auth/boxed-lockscreen" target="_blank">
{t('unlock_boxed')}
</Link>
</li>
<li>
<Link href="/auth/boxed-password-reset" target="_blank">
{t('recover_id_boxed')}
</Link>
</li>
<li>
<Link href="/auth/cover-login" target="_blank">
{t('login_cover')}
</Link>
</li>
<li>
<Link href="/auth/cover-register" target="_blank">
{t('register_cover')}
</Link>
</li>
<li>
<Link href="/auth/cover-lockscreen" target="_blank">
{t('unlock_cover')}
</Link>
</li>
<li>
<Link href="/auth/cover-password-reset" target="_blank">
{t('recover_id_cover')}
</Link>
</li>
</ul>
</AnimateHeight>
</li>
<h2 className="-mx-4 mb-1 flex items-center bg-white-light/30 px-7 py-3 font-extrabold uppercase dark:bg-dark dark:bg-opacity-[0.08]">
<IconMinus className="hidden h-5 w-4 flex-none" />
<span>{t('supports')}</span>
</h2>
<li className="menu nav-item">
<Link href="https://vristo.sbthemes.com" target="_blank" className="nav-link group">
<div className="flex items-center">
<IconMenuDocumentation className="shrink-0 group-hover:!text-primary" />
<span className="text-black ltr:pl-3 rtl:pr-3 dark:text-[#506690] dark:group-hover:text-white-dark">{t('documentation')}</span>
</div> </div>
</Link> </Link>
</li> </li>

View File

@ -1,5 +1,5 @@
{ {
"name": "vristo-next", "name": "rooftop-next",
"version": "0.1.0", "version": "0.1.0",
"private": true, "private": true,
"scripts": { "scripts": {

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

View File

@ -1,10 +0,0 @@
<svg width="56" height="49" viewBox="0 0 56 49" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M27.9051 21.4676C31.656 21.4676 34.6966 18.4269 34.6966 14.676C34.6966 10.9252 31.656 7.88452 27.9051 7.88452C24.1543 7.88452 21.1136 10.9252 21.1136 14.676C21.1136 18.4269 24.1543 21.4676 27.9051 21.4676Z" fill="#FFD600" fill-opacity="0.78"/>
<path d="M55.4467 3.83521L30.1078 47.7297C29.1316 49.4234 26.6787 49.4234 25.6942 47.7297L0.355311 3.83521C-0.946256 1.5825 1.58177 -0.945529 3.83449 0.356038L16.5248 7.6815C17.843 8.44075 18.5272 9.99263 18.11 11.4527C17.7429 12.7543 17.6177 14.156 17.8096 15.6161C18.4104 20.2133 22.1565 23.876 26.7704 24.3766C32.9112 25.0441 38.1008 20.2467 38.1008 14.2478C38.1008 13.3217 37.9756 12.4206 37.742 11.5695C37.3332 10.0594 37.9339 8.46578 39.2855 7.68985L51.9841 0.356038C54.2285 -0.945529 56.7482 1.57416 55.4467 3.83521Z" fill="url(#paint0_linear_106_6)"/>
<defs>
<linearGradient id="paint0_linear_106_6" x1="13.3494" y1="3.52653" x2="40.4654" y2="43.5748" gradientUnits="userSpaceOnUse">
<stop stop-color="#EF1262"/>
<stop offset="1" stop-color="#4361EE"/>
</linearGradient>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -72,7 +72,7 @@
localStorage.setItem('navbar', params.navbar); localStorage.setItem('navbar', params.navbar);
} }
window.location.href = 'https://vristo-next.vercel.app/'; window.location.href = '/';
</script> </script>
</body> </body>
</html> </html>