diff --git a/src/_mock/_blog.ts b/src/_mock/_blog.ts deleted file mode 100644 index d00e78fc74f2adca338de601bba31949326bcf80..0000000000000000000000000000000000000000 --- a/src/_mock/_blog.ts +++ /dev/null @@ -1,16 +0,0 @@ -export const POST_PUBLISH_OPTIONS = [ - { - value: 'published', - label: 'Published', - }, - { - value: 'draft', - label: 'Draft', - }, -]; - -export const POST_SORT_OPTIONS = [ - { value: 'latest', label: 'Latest' }, - { value: 'popular', label: 'Popular' }, - { value: 'oldest', label: 'Oldest' }, -]; diff --git a/src/_mock/_calendar.ts b/src/_mock/_calendar.ts deleted file mode 100644 index 94e175349a0ae5b29704813ab179923bb446fac8..0000000000000000000000000000000000000000 --- a/src/_mock/_calendar.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { info, error, primary, success, warning, secondary } from '@/theme/palette'; - -// ---------------------------------------------------------------------- - -export const CALENDAR_COLOR_OPTIONS = [ - primary.main, - secondary.main, - info.main, - info.darker, - success.main, - warning.main, - error.main, - error.darker, -]; diff --git a/src/_mock/_files.ts b/src/_mock/_files.ts deleted file mode 100644 index aecd571f64d83edd5a75678ef40500521a0c5841..0000000000000000000000000000000000000000 --- a/src/_mock/_files.ts +++ /dev/null @@ -1,123 +0,0 @@ -import { _mock } from './_mock'; -import { _tags } from './assets'; - -// ---------------------------------------------------------------------- - -const GB = 1000000000 * 24; - -const FOLDERS = ['Docs', 'Projects', 'Work', 'Training', 'Sport', 'Foods']; - -const FILES = [ - 'cover-2.jpg', - 'design-suriname-2015.mp3', - 'expertise-2015-conakry-sao-tome-and-principe-gender.mp4', - 'money-popup-crack.pdf', - 'cover-4.jpg', - 'cover-6.jpg', - 'large-news.txt', - 'nauru-6015-small-fighter-left-gender.psd', - 'tv-xs.doc', - 'gustavia-entertainment-productivity.docx', - 'vintage-bahrain-saipan.xls', - 'indonesia-quito-nancy-grace-left-glad.xlsx', - 'legislation-grain.zip', - 'large-energy-dry-philippines.rar', - 'footer-243-ecuador.iso', - 'kyrgyzstan-04795009-picabo-street-guide-style.ai', - 'india-data-large-gk-chesterton-mother.esp', - 'footer-barbados-celine-dion.ppt', - 'socio-respectively-366996.pptx', - 'socio-ahead-531437-sweden-popup.wav', - 'trinidad-samuel-morse-bring.m4v', - 'cover-12.jpg', - 'cover-18.jpg', - 'xl-david-blaine-component-tanzania-books.pdf', -]; - -const URLS = [ - _mock.image.cover(1), - 'https://www.cloud.com/s/c218bo6kjuqyv66/design_suriname_2015.mp3', - 'https://www.cloud.com/s/c218bo6kjuqyv66/expertise_2015_conakry_sao-tome-and-principe_gender.mp4', - 'https://www.cloud.com/s/c218bo6kjuqyv66/money-popup-crack.pdf', - _mock.image.cover(3), - _mock.image.cover(5), - 'https://www.cloud.com/s/c218bo6kjuqyv66/large_news.txt', - 'https://www.cloud.com/s/c218bo6kjuqyv66/nauru-6015-small-fighter-left-gender.psd', - 'https://www.cloud.com/s/c218bo6kjuqyv66/tv-xs.doc', - 'https://www.cloud.com/s/c218bo6kjuqyv66/gustavia-entertainment-productivity.docx', - 'https://www.cloud.com/s/c218bo6kjuqyv66/vintage_bahrain_saipan.xls', - 'https://www.cloud.com/s/c218bo6kjuqyv66/indonesia-quito-nancy-grace-left-glad.xlsx', - 'https://www.cloud.com/s/c218bo6kjuqyv66/legislation-grain.zip', - 'https://www.cloud.com/s/c218bo6kjuqyv66/large_energy_dry_philippines.rar', - 'https://www.cloud.com/s/c218bo6kjuqyv66/footer-243-ecuador.iso', - 'https://www.cloud.com/s/c218bo6kjuqyv66/kyrgyzstan-04795009-picabo-street-guide-style.ai', - 'https://www.cloud.com/s/c218bo6kjuqyv66/india-data-large-gk-chesterton-mother.esp', - 'https://www.cloud.com/s/c218bo6kjuqyv66/footer-barbados-celine-dion.ppt', - 'https://www.cloud.com/s/c218bo6kjuqyv66/socio_respectively_366996.pptx', - 'https://www.cloud.com/s/c218bo6kjuqyv66/socio_ahead_531437_sweden_popup.wav', - 'https://www.cloud.com/s/c218bo6kjuqyv66/trinidad_samuel-morse_bring.m4v', - _mock.image.cover(11), - _mock.image.cover(17), - 'https://www.cloud.com/s/c218bo6kjuqyv66/xl_david-blaine_component_tanzania_books.pdf', -]; - -const SHARED_PERSONS = [...Array(20)].map((_, index) => ({ - id: _mock.id(index), - name: _mock.fullName(index), - email: _mock.email(index), - avatarUrl: _mock.image.avatar(index), - permission: index % 2 ? 'view' : 'edit', -})); - -export const FILE_TYPE_OPTIONS = [ - 'folder', - 'txt', - 'zip', - 'audio', - 'image', - 'video', - 'word', - 'excel', - 'powerpoint', - 'pdf', - 'photoshop', - 'illustrator', -]; - -// ---------------------------------------------------------------------- - -const shared = (index: number) => - (index === 0 && SHARED_PERSONS.slice(0, 5)) || - (index === 1 && SHARED_PERSONS.slice(5, 9)) || - (index === 2 && SHARED_PERSONS.slice(9, 11)) || - (index === 3 && SHARED_PERSONS.slice(11, 12)) || - []; - -export const _folders = FOLDERS.map((name, index) => ({ - id: `${_mock.id(index)}_folder`, - name, - type: 'folder', - url: URLS[index], - shared: shared(index), - tags: _tags.slice(0, 5), - size: GB / ((index + 1) * 10), - totalFiles: (index + 1) * 100, - createdAt: _mock.time(index), - modifiedAt: _mock.time(index), - isFavorited: _mock.boolean(index + 1), -})); - -export const _files = FILES.map((name, index) => ({ - id: `${_mock.id(index)}_file`, - name, - url: URLS[index], - shared: shared(index), - tags: _tags.slice(0, 5), - size: GB / ((index + 1) * 500), - createdAt: _mock.time(index), - modifiedAt: _mock.time(index), - type: `${name.split('.').pop()}`, - isFavorited: _mock.boolean(index + 1), -})); - -export const _allFiles = [..._folders, ..._files]; diff --git a/src/_mock/_invoice.ts b/src/_mock/_invoice.ts deleted file mode 100644 index 9088362729a52bbd08aab35d2474dbdede1b7a49..0000000000000000000000000000000000000000 --- a/src/_mock/_invoice.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { add, subDays } from 'date-fns'; - -import { _mock } from './_mock'; -import { _addressBooks } from './_others'; - -// ---------------------------------------------------------------------- - -export const INVOICE_STATUS_OPTIONS = [ - { value: 'paid', label: 'Paid' }, - { value: 'pending', label: 'Pending' }, - { value: 'overdue', label: 'Overdue' }, - { value: 'draft', label: 'Draft' }, -]; - -export const INVOICE_SERVICE_OPTIONS = [...Array(8)].map((_, index) => ({ - id: _mock.id(index), - name: _mock.role(index), - price: _mock.number.price(index), -})); - -const ITEMS = [...Array(3)].map((__, index) => { - const total = INVOICE_SERVICE_OPTIONS[index].price * _mock.number.nativeS(index); - - return { - id: _mock.id(index), - total, - title: _mock.productName(index), - description: _mock.sentence(index), - price: INVOICE_SERVICE_OPTIONS[index].price, - service: INVOICE_SERVICE_OPTIONS[index].name, - quantity: _mock.number.nativeS(index), - }; -}); - -export const _invoices = [...Array(20)].map((_, index) => { - const taxes = _mock.number.price(index + 1); - - const discount = _mock.number.price(index + 2); - - const shipping = _mock.number.price(index + 3); - - const subTotal = ITEMS.reduce((accumulator, item) => accumulator + item.price * item.quantity, 0); - - const totalAmount = subTotal - shipping - discount + taxes; - - const status = - (index % 2 && 'paid') || (index % 3 && 'pending') || (index % 4 && 'overdue') || 'draft'; - - return { - id: _mock.id(index), - taxes, - status, - discount, - shipping, - subTotal, - totalAmount, - items: ITEMS, - invoiceNumber: `INV-199${index}`, - invoiceFrom: _addressBooks[index], - invoiceTo: _addressBooks[index + 1], - sent: _mock.number.nativeS(index), - createDate: subDays(new Date(), index), - dueDate: add(new Date(), { days: index + 15, hours: index }), - }; -}); diff --git a/src/_mock/_job.ts b/src/_mock/_job.ts deleted file mode 100644 index d9dc274ad03a1a81726a3c80c9bb743eee01ef95..0000000000000000000000000000000000000000 --- a/src/_mock/_job.ts +++ /dev/null @@ -1,172 +0,0 @@ -import { countries } from '@/assets/data'; - -import { _mock } from './_mock'; - -// ---------------------------------------------------------------------- - -export const JOB_DETAILS_TABS = [ - { value: 'content', label: 'Job Content' }, - { value: 'candidates', label: 'Candidates' }, -]; - -export const JOB_SKILL_OPTIONS = [ - 'UI', - 'UX', - 'Html', - 'JavaScript', - 'TypeScript', - 'Communication', - 'Problem Solving', - 'Leadership', - 'Time Management', - 'Adaptability', - 'Collaboration', - 'Creativity', - 'Critical Thinking', - 'Technical Skills', - 'Customer Service', - 'Project Management', - 'Problem Diagnosis', -]; - -export const JOB_WORKING_SCHEDULE_OPTIONS = [ - 'Monday to Friday', - 'Weekend availability', - 'Day shift', -]; - -export const JOB_EMPLOYMENT_TYPE_OPTIONS = [ - { value: 'Full-time', label: 'Full-time' }, - { value: 'Part-time', label: 'Part-time' }, - { value: 'On Demand', label: 'On Demand' }, - { value: 'Negotiable', label: 'Negotiable' }, -]; - -export const JOB_EXPERIENCE_OPTIONS = [ - { value: 'No experience', label: 'No experience' }, - { value: '1 year exp', label: '1 year exp' }, - { value: '2 year exp', label: '2 year exp' }, - { value: '> 3 year exp', label: '> 3 year exp' }, -]; - -export const JOB_BENEFIT_OPTIONS = [ - { value: 'Free parking', label: 'Free parking' }, - { value: 'Bonus commission', label: 'Bonus commission' }, - { value: 'Travel', label: 'Travel' }, - { value: 'Device support', label: 'Device support' }, - { value: 'Health care', label: 'Health care' }, - { value: 'Training', label: 'Training' }, - { value: 'Health Insurance', label: 'Health Insurance' }, - { value: 'Retirement Plans', label: 'Retirement Plans' }, - { value: 'Paid Time Off', label: 'Paid Time Off' }, - { value: 'Flexible Work Schedule', label: 'Flexible Work Schedule' }, -]; - -export const JOB_PUBLISH_OPTIONS = [ - { - value: 'published', - label: 'Published', - }, - { - value: 'draft', - label: 'Draft', - }, -]; - -export const JOB_SORT_OPTIONS = [ - { value: 'latest', label: 'Latest' }, - { value: 'popular', label: 'Popular' }, - { value: 'oldest', label: 'Oldest' }, -]; - -const CANDIDATES = [...Array(12)].map((_, index) => ({ - id: _mock.id(index), - role: _mock.role(index), - name: _mock.fullName(index), - avatarUrl: _mock.image.avatar(index), -})); - -const CONTENT = ` -<h6>Job Description</h6> -<br/> - -<p>Occaecati est et illo quibusdam accusamus qui. Incidunt aut et molestiae ut facere aut. Est quidem iusto praesentium excepturi harum nihil tenetur facilis. Ut omnis voluptates nihil accusantium doloribus eaque debitis.</p> - -<br/> -<br/> - -<h6>Key Responsibilities</h6> -<br/> -<ul> - <li>Working with agency for design drawing detail, quotation and local production.</li> - <li>Produce window displays, signs, interior displays, floor plans and special promotions displays.</li> - <li>Change displays to promote new product launches and reflect festive or seasonal themes.</li> - <li>Planning and executing the open/renovation/ closing store procedure.</li> - <li>Followâ€up store maintenance procedure and keep updating SKU In & Out.</li> - <li>Monitor costs and work within budget.</li> - <li>Liaise with suppliers and source elements.</li> -</ul> - -<br/> -<br/> - -<h6>Why You'll Love Working Here</h6> -<br/> -<ul> - <li>Working with agency for design drawing detail, quotation and local production.</li> - <li>Produce window displays, signs, interior displays, floor plans and special promotions displays.</li> - <li>Change displays to promote new product launches and reflect festive or seasonal themes.</li> - <li>Planning and executing the open/renovation/ closing store procedure.</li> - <li>Followâ€up store maintenance procedure and keep updating SKU In & Out.</li> - <li>Monitor costs and work within budget.</li> - <li>Liaise with suppliers and source elements.</li> -</ul> -`; - -export const _jobs = [...Array(12)].map((_, index) => { - const publish = index % 3 ? 'published' : 'draft'; - - const salary = { - type: (index % 5 && 'Custom') || 'Hourly', - price: _mock.number.price(index), - negotiable: _mock.boolean(index), - }; - - const benefits = JOB_BENEFIT_OPTIONS.slice(0, 3).map((option) => option.label); - - const experience = - JOB_EXPERIENCE_OPTIONS.map((option) => option.label)[index] || JOB_EXPERIENCE_OPTIONS[1].label; - - const employmentTypes = (index % 2 && ['Part-time']) || - (index % 3 && ['On Demand']) || - (index % 4 && ['Negotiable']) || ['Full-time']; - - const company = { - name: _mock.companyName(index), - logo: _mock.image.company(index), - phoneNumber: _mock.phoneNumber(index), - fullAddress: _mock.fullAddress(index), - }; - - const locations = countries.slice(1, index + 2).map((option) => option.label); - - return { - id: _mock.id(index), - salary, - publish, - company, - benefits, - locations, - experience, - employmentTypes, - content: CONTENT, - candidates: CANDIDATES, - role: _mock.role(index), - title: _mock.jobTitle(index), - createdAt: _mock.time(index), - expiredDate: _mock.time(index), - skills: JOB_SKILL_OPTIONS.slice(0, 3), - totalViews: _mock.number.nativeL(index), - workingSchedule: JOB_WORKING_SCHEDULE_OPTIONS.slice(0, 2), - }; -}); diff --git a/src/_mock/_mock.ts b/src/_mock/_mock.ts deleted file mode 100644 index b75b507cb9e243a94deb49f4047f556531bd470e..0000000000000000000000000000000000000000 --- a/src/_mock/_mock.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { sub } from 'date-fns'; - -import { ASSETS_API } from '@/config-global'; - -import { - _id, - _ages, - _roles, - _prices, - _emails, - _ratings, - _nativeS, - _nativeM, - _nativeL, - _percents, - _booleans, - _sentences, - _lastNames, - _fullNames, - _tourNames, - _jobTitles, - _taskNames, - _postTitles, - _firstNames, - _fullAddress, - _companyNames, - _productNames, - _descriptions, - _phoneNumbers, -} from './assets'; - -// ---------------------------------------------------------------------- - -export const _mock = { - id: (index: number) => _id[index], - time: (index: number) => sub(new Date(), { days: index, hours: index }), - boolean: (index: number) => _booleans[index], - role: (index: number) => _roles[index], - // Text - taskNames: (index: number) => _taskNames[index], - postTitle: (index: number) => _postTitles[index], - jobTitle: (index: number) => _jobTitles[index], - tourName: (index: number) => _tourNames[index], - productName: (index: number) => _productNames[index], - sentence: (index: number) => _sentences[index], - description: (index: number) => _descriptions[index], - // Contact - email: (index: number) => _emails[index], - phoneNumber: (index: number) => _phoneNumbers[index], - fullAddress: (index: number) => _fullAddress[index], - // Name - firstName: (index: number) => _firstNames[index], - lastName: (index: number) => _lastNames[index], - fullName: (index: number) => _fullNames[index], - companyName: (index: number) => _companyNames[index], - // Number - number: { - percent: (index: number) => _percents[index], - rating: (index: number) => _ratings[index], - age: (index: number) => _ages[index], - price: (index: number) => _prices[index], - nativeS: (index: number) => _nativeS[index], - nativeM: (index: number) => _nativeM[index], - nativeL: (index: number) => _nativeL[index], - }, - // Image - image: { - cover: (index: number) => `${ASSETS_API}/assets/images/cover/cover_${index + 1}.jpg`, - avatar: (index: number) => `${ASSETS_API}/assets/images/avatar/avatar_${index + 1}.jpg`, - travel: (index: number) => `${ASSETS_API}/assets/images/travel/travel_${index + 1}.jpg`, - company: (index: number) => `${ASSETS_API}/assets/images/company/company_${index + 1}.png`, - product: (index: number) => `${ASSETS_API}/assets/images/m_product/product_${index + 1}.jpg`, - portrait: (index: number) => `${ASSETS_API}/assets/images/portrait/portrait_${index + 1}.jpg`, - }, -}; diff --git a/src/_mock/_order.ts b/src/_mock/_order.ts deleted file mode 100644 index 4a47d9b96fc567f999097942fe780d4a2d86f133..0000000000000000000000000000000000000000 --- a/src/_mock/_order.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { _mock } from './_mock'; - -// ---------------------------------------------------------------------- - -export const ORDER_STATUS_OPTIONS = [ - { value: 'pending', label: 'Pending' }, - { value: 'completed', label: 'Completed' }, - { value: 'cancelled', label: 'Cancelled' }, - { value: 'refunded', label: 'Refunded' }, -]; - -const ITEMS = [...Array(3)].map((_, index) => ({ - id: _mock.id(index), - sku: `16H9UR${index}`, - quantity: index + 1, - name: _mock.productName(index), - coverUrl: _mock.image.product(index), - price: _mock.number.price(index), -})); - -export const _orders = [...Array(20)].map((_, index) => { - const shipping = 10; - - const discount = 10; - - const taxes = 10; - - const items = (index % 2 && ITEMS.slice(0, 1)) || (index % 3 && ITEMS.slice(1, 3)) || ITEMS; - - const totalQuantity = items.reduce((accumulator, item) => accumulator + item.quantity, 0); - - const subTotal = items.reduce((accumulator, item) => accumulator + item.price * item.quantity, 0); - - const totalAmount = subTotal - shipping - discount + taxes; - - const customer = { - id: _mock.id(index), - name: _mock.fullName(index), - email: _mock.email(index), - avatarUrl: _mock.image.avatar(index), - ipAddress: '192.158.1.38', - }; - - const delivery = { - shipBy: 'DHL', - speedy: 'Standard', - trackingNumber: 'SPX037739199373', - }; - - const history = { - orderTime: _mock.time(1), - paymentTime: _mock.time(2), - deliveryTime: _mock.time(3), - completionTime: _mock.time(4), - timeline: [ - { title: 'Delivery successful', time: _mock.time(1) }, - { title: 'Transporting to [2]', time: _mock.time(2) }, - { title: 'Transporting to [1]', time: _mock.time(3) }, - { - title: 'The shipping unit has picked up the goods', - time: _mock.time(4), - }, - { title: 'Order has been created', time: _mock.time(5) }, - ], - }; - - return { - id: _mock.id(index), - orderNumber: `#601${index}`, - createdAt: _mock.time(index), - taxes, - items, - history, - subTotal, - shipping, - discount, - customer, - delivery, - totalAmount, - totalQuantity, - shippingAddress: { - fullAddress: '19034 Verna Unions Apt. 164 - Honolulu, RI / 87535', - phoneNumber: '365-374-4961', - }, - payment: { - cardType: 'mastercard', - cardNumber: '**** **** **** 5678', - }, - status: - (index % 2 && 'completed') || - (index % 3 && 'pending') || - (index % 4 && 'cancelled') || - 'refunded', - }; -}); diff --git a/src/_mock/_others.ts b/src/_mock/_others.ts deleted file mode 100644 index 6dbc18c6fb0795d629ba70a7e17803b34e849754..0000000000000000000000000000000000000000 --- a/src/_mock/_others.ts +++ /dev/null @@ -1,253 +0,0 @@ -import { _mock } from './_mock'; - -// ---------------------------------------------------------------------- - -export const _carouselsMembers = [...Array(6)].map((_, index) => ({ - id: _mock.id(index), - name: _mock.fullName(index), - role: _mock.role(index), - avatarUrl: _mock.image.portrait(index), -})); - -// ---------------------------------------------------------------------- - -export const _faqs = [...Array(8)].map((_, index) => ({ - id: _mock.id(index), - value: `panel${index + 1}`, - heading: `Questions ${index + 1}`, - detail: _mock.description(index), -})); - -// ---------------------------------------------------------------------- - -export const _addressBooks = [...Array(24)].map((_, index) => ({ - id: _mock.id(index), - primary: index === 0, - name: _mock.fullName(index), - email: _mock.email(index + 1), - fullAddress: _mock.fullAddress(index), - phoneNumber: _mock.phoneNumber(index), - company: _mock.companyName(index + 1), - addressType: index === 0 ? 'Home' : 'Office', -})); - -// ---------------------------------------------------------------------- - -export const _contacts = [...Array(20)].map((_, index) => { - const status = - (index % 2 && 'online') || (index % 3 && 'offline') || (index % 4 && 'alway') || 'busy'; - - return { - id: _mock.id(index), - status, - role: _mock.role(index), - email: _mock.email(index), - name: _mock.fullName(index), - phoneNumber: _mock.phoneNumber(index), - lastActivity: _mock.time(index), - avatarUrl: _mock.image.avatar(index), - address: _mock.fullAddress(index), - }; -}); - -// ---------------------------------------------------------------------- - -export const _notifications = [...Array(9)].map((_, index) => ({ - id: _mock.id(index), - avatarUrl: [ - _mock.image.avatar(1), - _mock.image.avatar(2), - _mock.image.avatar(3), - _mock.image.avatar(4), - _mock.image.avatar(5), - null, - null, - null, - null, - null, - ][index], - type: ['friend', 'project', 'file', 'tags', 'payment', 'order', 'chat', 'mail', 'delivery'][ - index - ], - category: [ - 'Communication', - 'Project UI', - 'File Manager', - 'File Manager', - 'File Manager', - 'Order', - 'Order', - 'Communication', - 'Communication', - ][index], - isUnRead: _mock.boolean(index), - createdAt: _mock.time(index), - title: - (index === 0 && `<p><strong>Deja Brady</strong> sent you a friend request</p>`) || - (index === 1 && - `<p><strong>Jayvon Hull</strong> mentioned you in <strong><a href='#'>Minimal UI</a></strong></p>`) || - (index === 2 && - `<p><strong>Lainey Davidson</strong> added file to <strong><a href='#'>File Manager</a></strong></p>`) || - (index === 3 && - `<p><strong>Angelique Morse</strong> added new tags to <strong><a href='#'>File Manager<a/></strong></p>`) || - (index === 4 && - `<p><strong>Giana Brandt</strong> request a payment of <strong>$200</strong></p>`) || - (index === 5 && `<p>Your order is placed waiting for shipping</p>`) || - (index === 6 && `<p>Delivery processing your order is being shipped</p>`) || - (index === 7 && `<p>You have new message 5 unread messages</p>`) || - (index === 8 && `<p>You have new mail`) || - '', -})); - -// ---------------------------------------------------------------------- - -export const _mapContact = [ - { - latlng: [33, 65], - address: _mock.fullAddress(1), - phoneNumber: _mock.phoneNumber(1), - }, - { - latlng: [-12.5, 18.5], - address: _mock.fullAddress(2), - phoneNumber: _mock.phoneNumber(2), - }, -]; - -// ---------------------------------------------------------------------- - -export const _socials = [ - { - value: 'facebook', - name: 'FaceBook', - icon: 'eva:facebook-fill', - color: '#1877F2', - path: 'https://www.facebook.com/caitlyn.kerluke', - }, - { - value: 'instagram', - name: 'Instagram', - icon: 'ant-design:instagram-filled', - color: '#E02D69', - path: 'https://www.instagram.com/caitlyn.kerluke', - }, - { - value: 'linkedin', - name: 'Linkedin', - icon: 'eva:linkedin-fill', - color: '#007EBB', - path: 'https://www.linkedin.com/caitlyn.kerluke', - }, - { - value: 'twitter', - name: 'Twitter', - icon: 'eva:twitter-fill', - color: '#00AAEC', - path: 'https://www.twitter.com/caitlyn.kerluke', - }, -]; - -// ---------------------------------------------------------------------- - -export const _homePlans = [...Array(3)].map((_, index) => ({ - license: ['Standard', 'Standard Plus', 'Extended'][index], - commons: ['One end products', '12 months updates', '6 months of support'], - options: [ - 'JavaScript version', - 'TypeScript version', - 'Design Resources', - 'Commercial applications', - ], - icons: [ - '/assets/icons/platforms/ic_js.svg', - '/assets/icons/platforms/ic_ts.svg', - '/assets/icons/platforms/ic_figma.svg', - ], -})); - -// ---------------------------------------------------------------------- - -export const _pricingPlans = [ - { - subscription: 'basic', - price: 0, - caption: 'Forever', - lists: ['3 Prototypes', '3 Boards', 'Up To 5 Team Members'], - labelAction: 'Current Plan', - }, - { - subscription: 'starter', - price: 4.99, - caption: 'Saving $24 a year', - lists: [ - '3 Prototypes', - '3 Boards', - 'Up To 5 Team Members', - 'Advanced Security', - 'Issue Escalation', - ], - labelAction: 'Choose Starter', - }, - { - subscription: 'premium', - price: 9.99, - caption: 'Saving $124 a year', - lists: [ - '3 Prototypes', - '3 Boards', - 'Up To 5 Team Members', - 'Advanced Security', - 'Issue Escalation', - 'Issue Development license', - 'Permissions & workflows', - ], - labelAction: 'Choose Premium', - }, -]; - -// ---------------------------------------------------------------------- - -export const _testimonials = [ - { - name: _mock.fullName(1), - postedDate: _mock.time(1), - ratingNumber: _mock.number.rating(1), - avatarUrl: _mock.image.avatar(1), - content: `Excellent Work! Thanks a lot!`, - }, - { - name: _mock.fullName(2), - postedDate: _mock.time(2), - ratingNumber: _mock.number.rating(2), - avatarUrl: _mock.image.avatar(2), - content: `It's a very good dashboard and we are really liking the product . We've done some things, like migrate to TS and implementing a react useContext api, to fit our job methodology but the product is one of the best in terms of design and application architecture. The team did a really good job.`, - }, - { - name: _mock.fullName(3), - postedDate: _mock.time(3), - ratingNumber: _mock.number.rating(3), - avatarUrl: _mock.image.avatar(3), - content: `Customer support is realy fast and helpful the desgin of this theme is looks amazing also the code is very clean and readble realy good job !`, - }, - { - name: _mock.fullName(4), - postedDate: _mock.time(4), - ratingNumber: _mock.number.rating(4), - avatarUrl: _mock.image.avatar(4), - content: `Amazing, really good code quality and gives you a lot of examples for implementations.`, - }, - { - name: _mock.fullName(5), - postedDate: _mock.time(5), - ratingNumber: _mock.number.rating(5), - avatarUrl: _mock.image.avatar(5), - content: `Got a few questions after purchasing the product. The owner responded very fast and very helpfull. Overall the code is excellent and works very good. 5/5 stars!`, - }, - { - name: _mock.fullName(6), - postedDate: _mock.time(6), - ratingNumber: _mock.number.rating(6), - avatarUrl: _mock.image.avatar(6), - content: `CEO of Codealy.io here. We’ve built a developer assessment platform that makes sense - tasks are based on git repositories and run in virtual machines. We automate the pain points - storing candidates code, running it and sharing test results with the whole team, remotely. Bought this template as we need to provide an awesome dashboard for our early customers. I am super happy with purchase. The code is just as good as the design. Thanks!`, - }, -]; diff --git a/src/_mock/_overview.ts b/src/_mock/_overview.ts deleted file mode 100644 index 8749c9560569b71c1112f0bbb8831cfece8bb059..0000000000000000000000000000000000000000 --- a/src/_mock/_overview.ts +++ /dev/null @@ -1,330 +0,0 @@ -import { _mock } from './_mock'; - -// APP -// ---------------------------------------------------------------------- - -export const _appRelated = ['Chrome', 'Drive', 'Dropbox', 'Evernote', 'Github'].map( - (name, index) => { - const system = [2, 4].includes(index) ? 'Windows' : 'Mac'; - - const price = [2, 4].includes(index) ? _mock.number.price(index) : 0; - - const shortcut = - (name === 'Chrome' && '/assets/icons/app/ic_chrome.svg') || - (name === 'Drive' && '/assets/icons/app/ic_drive.svg') || - (name === 'Dropbox' && '/assets/icons/app/ic_dropbox.svg') || - (name === 'Evernote' && '/assets/icons/app/ic_evernote.svg') || - '/assets/icons/app/ic_github.svg'; - - return { - id: _mock.id(index), - name, - price, - system, - shortcut, - ratingNumber: _mock.number.rating(index), - totalReviews: _mock.number.nativeL(index), - }; - } -); - -export const _appInstalled = ['Germany', 'England', 'France', 'Korean', 'USA'].map( - (name, index) => ({ - id: _mock.id(index), - name, - android: _mock.number.nativeL(index), - windows: _mock.number.nativeL(index + 1), - apple: _mock.number.nativeL(index + 2), - flag: ['flagpack:de', 'flagpack:gb-nir', 'flagpack:fr', 'flagpack:kr', 'flagpack:us'][index], - }) -); - -export const _appAuthors = [...Array(3)].map((_, index) => ({ - id: _mock.id(index), - name: _mock.fullName(index), - avatarUrl: _mock.image.avatar(index), - totalFavorites: _mock.number.nativeL(index), -})); - -export const _appInvoices = [...Array(5)].map((_, index) => { - const category = ['Android', 'Mac', 'Windows', 'Android', 'Mac'][index]; - - const status = ['paid', 'out of date', 'progress', 'paid', 'paid'][index]; - - return { - id: _mock.id(index), - invoiceNumber: `INV-199${index}`, - price: _mock.number.price(index), - category, - status, - }; -}); - -export const _appFeatured = [...Array(3)].map((_, index) => ({ - id: _mock.id(index), - title: _mock.postTitle(index), - description: _mock.sentence(index), - coverUrl: _mock.image.cover(index), -})); - -// ANALYTIC -// ---------------------------------------------------------------------- - -export const _analyticTasks = [...Array(5)].map((_, index) => ({ - id: _mock.id(index), - name: _mock.taskNames(index), -})); - -export const _analyticPosts = [...Array(5)].map((_, index) => ({ - id: _mock.id(index), - postedAt: _mock.time(index), - title: _mock.postTitle(index), - coverUrl: _mock.image.cover(index), - description: _mock.sentence(index), -})); - -export const _analyticOrderTimeline = [...Array(5)].map((_, index) => { - const title = [ - '1983, orders, $4220', - '12 Invoices have been paid', - 'Order #37745 from September', - 'New order placed #XF-2356', - 'New order placed #XF-2346', - ][index]; - - return { - id: _mock.id(index), - title, - type: `order${index + 1}`, - time: _mock.time(index), - }; -}); - -export const _analyticTraffic = [ - { - value: 'facebook', - label: 'FaceBook', - total: _mock.number.nativeL(1), - icon: 'eva:facebook-fill', - }, - { - value: 'google', - label: 'Google', - total: _mock.number.nativeL(2), - icon: 'eva:google-fill', - }, - { - value: 'linkedin', - label: 'Linkedin', - total: _mock.number.nativeL(3), - icon: 'eva:linkedin-fill', - }, - { - value: 'twitter', - label: 'Twitter', - total: _mock.number.nativeL(4), - icon: 'eva:twitter-fill', - }, -]; - -// ECOMMERCE -// ---------------------------------------------------------------------- - -export const _ecommerceSalesOverview = ['Total Profit', 'Total Income', 'Total Expenses'].map( - (label, index) => ({ - label, - totalAmount: _mock.number.price(index) * 100, - value: _mock.number.percent(index), - }) -); - -export const _ecommerceBestSalesman = [...Array(5)].map((_, index) => { - const category = ['CAP', 'Branded Shoes', 'Headphone', 'Cell Phone', 'Earings'][index]; - - const flag = ['flagpack:de', 'flagpack:gb-nir', 'flagpack:fr', 'flagpack:kr', 'flagpack:us'][ - index - ]; - - return { - id: _mock.id(index), - flag, - category, - rank: `Top ${index + 1}`, - email: _mock.email(index), - name: _mock.fullName(index), - totalAmount: _mock.number.price(index), - avatarUrl: _mock.image.avatar(index + 8), - }; -}); - -export const _ecommerceLatestProducts = [...Array(5)].map((_, index) => { - const colors = (index === 0 && ['#2EC4B6', '#E71D36', '#FF9F1C', '#011627']) || - (index === 1 && ['#92140C', '#FFCF99']) || - (index === 2 && ['#0CECDD', '#FFF338', '#FF67E7', '#C400FF', '#52006A', '#046582']) || - (index === 3 && ['#845EC2', '#E4007C', '#2A1A5E']) || ['#090088']; - - return { - id: _mock.id(index), - colors, - name: _mock.productName(index), - price: _mock.number.price(index), - coverUrl: _mock.image.product(index), - priceSale: [1, 3].includes(index) ? _mock.number.price(index) : 0, - }; -}); - -export const _ecommerceNewProducts = [...Array(5)].map((_, index) => ({ - id: _mock.id(index), - name: _mock.productName(index), - coverUrl: _mock.image.product(index), -})); - -// BANKING -// ---------------------------------------------------------------------- - -export const _bankingContacts = [...Array(12)].map((_, index) => ({ - id: _mock.id(index), - name: _mock.fullName(index), - email: _mock.email(index), - avatarUrl: _mock.image.avatar(index), -})); - -export const _bankingCreditCard = [ - { - id: _mock.id(2), - balance: 23432.03, - cardType: 'mastercard', - cardHolder: _mock.fullName(2), - cardNumber: '**** **** **** 3640', - cardValid: '11/22', - }, - { - id: _mock.id(3), - balance: 18000.23, - cardType: 'visa', - cardHolder: _mock.fullName(3), - cardNumber: '**** **** **** 8864', - cardValid: '11/25', - }, - { - id: _mock.id(4), - balance: 2000.89, - cardType: 'mastercard', - cardHolder: _mock.fullName(4), - cardNumber: '**** **** **** 7755', - cardValid: '11/22', - }, -]; - -export const _bankingRecentTransitions = [ - { - id: _mock.id(2), - name: _mock.fullName(2), - avatarUrl: _mock.image.avatar(2), - type: 'Income', - message: 'Receive money from', - category: 'Annette Black', - date: _mock.time(2), - status: 'progress', - amount: _mock.number.price(2), - }, - { - id: _mock.id(3), - name: _mock.fullName(3), - avatarUrl: _mock.image.avatar(3), - type: 'Expenses', - message: 'Payment for', - category: 'Courtney Henry', - date: _mock.time(3), - status: 'completed', - amount: _mock.number.price(3), - }, - { - id: _mock.id(4), - name: _mock.fullName(4), - avatarUrl: _mock.image.avatar(4), - type: 'Receive', - message: 'Payment for', - category: 'Theresa Webb', - date: _mock.time(4), - status: 'failed', - amount: _mock.number.price(4), - }, - { - id: _mock.id(5), - name: null, - avatarUrl: null, - type: 'Expenses', - message: 'Payment for', - category: 'Beauty & Health', - date: _mock.time(5), - status: 'completed', - amount: _mock.number.price(5), - }, - { - id: _mock.id(6), - name: null, - avatarUrl: null, - type: 'Expenses', - message: 'Payment for', - category: 'Books', - date: _mock.time(6), - status: 'progress', - amount: _mock.number.price(6), - }, -]; - -// BOOKING -// ---------------------------------------------------------------------- - -export const _bookings = [...Array(5)].map((_, index) => { - const status = ['Paid', 'Paid', 'Pending', 'Cancelled', 'Paid'][index]; - - const customer = { - avatarUrl: _mock.image.avatar(index), - name: _mock.fullName(index), - phoneNumber: _mock.phoneNumber(index), - }; - - const destination = [...Array(5)].map((__, _index) => ({ - name: _mock.tourName(_index + 1), - coverUrl: _mock.image.travel(_index + 1), - }))[index]; - - return { - id: _mock.id(index), - destination, - status, - customer, - checkIn: _mock.time(index), - checkOut: _mock.time(index), - }; -}); - -export const _bookingsOverview = [...Array(3)].map((_, index) => ({ - status: ['Pending', 'Canceled', 'Sold'][index], - quantity: _mock.number.nativeL(index), - value: _mock.number.percent(index), -})); - -export const _bookingReview = [...Array(5)].map((_, index) => ({ - id: _mock.id(index), - name: _mock.fullName(index), - postedAt: _mock.time(index), - rating: _mock.number.rating(index), - avatarUrl: _mock.image.avatar(index), - description: _mock.description(index), - tags: ['Great Sevice', 'Recommended', 'Best Price'], -})); - -export const _bookingNew = [...Array(5)].map((_, index) => ({ - guests: '3-5', - id: _mock.id(index), - bookedAt: _mock.time(index), - duration: '3 days 2 nights', - isHot: _mock.boolean(index), - name: _mock.fullName(index), - price: _mock.number.price(index), - avatarUrl: _mock.image.avatar(index), - coverUrl: _mock.image.travel(index), -})); diff --git a/src/_mock/_tour.ts b/src/_mock/_tour.ts deleted file mode 100644 index e0c9154df38f1913726cba71207235788b0624f8..0000000000000000000000000000000000000000 --- a/src/_mock/_tour.ts +++ /dev/null @@ -1,150 +0,0 @@ -import { countries } from '@/assets/data'; - -import { _mock } from './_mock'; -import { _tags } from './assets'; - -// ---------------------------------------------------------------------- - -export const TOUR_DETAILS_TABS = [ - { value: 'content', label: 'Tour Content' }, - { value: 'bookers', label: 'Booker' }, -]; - -export const TOUR_SORT_OPTIONS = [ - { value: 'latest', label: 'Latest' }, - { value: 'popular', label: 'Popular' }, - { value: 'oldest', label: 'Oldest' }, -]; - -export const TOUR_PUBLISH_OPTIONS = [ - { - value: 'published', - label: 'Published', - }, - { - value: 'draft', - label: 'Draft', - }, -]; - -export const TOUR_SERVICE_OPTIONS = [ - { value: 'Audio guide', label: 'Audio guide' }, - { value: 'Food and drinks', label: 'Food and drinks' }, - { value: 'Lunch', label: 'Lunch' }, - { value: 'Private tour', label: 'Private tour' }, - { value: 'Special activities', label: 'Special activities' }, - { value: 'Entrance fees', label: 'Entrance fees' }, - { value: 'Gratuities', label: 'Gratuities' }, - { value: 'Pick-up and drop off', label: 'Pick-up and drop off' }, - { value: 'Professional guide', label: 'Professional guide' }, - { - value: 'Transport by air-conditioned', - label: 'Transport by air-conditioned', - }, -]; - -const CONTENT = ` -<h6>Description</h6> -<br/> -<p>Occaecati est et illo quibusdam accusamus qui. Incidunt aut et molestiae ut facere aut. Est quidem iusto praesentium excepturi harum nihil tenetur facilis. Ut omnis voluptates nihil accusantium doloribus eaque debitis.</p> - -<br/> -<br/> -<br/> - -<h6>Highlights</h6> -<br/> -<ul> - <li>A fermentum in morbi pretium aliquam adipiscing donec tempus.</li> - <li>Vulputate placerat amet pulvinar lorem nisl.</li> - <li>Consequat feugiat habitant gravida quisque elit bibendum id adipiscing sed.</li> - <li>Etiam duis lobortis in fames ultrices commodo nibh.</li> -</ul> - -<br/> -<br/> -<br/> - -<h6>Program</h6> -<br/> -<p><strong>Day 1</strong></p> -<br/> -<p>Amet minim mollit non deserunt ullamco est sit aliqua dolor do amet sint. Velit officia consequat duis enim velit mollit. Exercitation veniam consequat sunt nostrud amet.</p> -<br/> -<p><strong>Day 2</strong></p> -<br/> -<p>Amet minim mollit non deserunt ullamco est sit aliqua dolor do amet sint. Velit officia consequat duis enim velit mollit. Exercitation veniam consequat sunt nostrud amet.</p> -<br/> -<p><strong>Day 3</strong></p> -<br/> -<p>Amet minim mollit non deserunt ullamco est sit aliqua dolor do amet sint. Velit officia consequat duis enim velit mollit. Exercitation veniam consequat sunt nostrud amet.</p> - -<br/> -<br/> -<br/> -`; - -const BOOKER = [...Array(12)].map((_, index) => ({ - id: _mock.id(index), - guests: index + 10, - name: _mock.fullName(index), - avatarUrl: _mock.image.avatar(index), -})); - -export const _tourGuides = [...Array(12)].map((_, index) => ({ - id: _mock.id(index), - name: _mock.fullName(index), - avatarUrl: _mock.image.avatar(index), - phoneNumber: _mock.phoneNumber(index), -})); - -export const TRAVEL_IMAGES = [...Array(16)].map((_, index) => _mock.image.travel(index)); - -export const _tours = [...Array(12)].map((_, index) => { - const available = { - startDate: _mock.time(index + 1), - endDate: _mock.time(index), - }; - - const publish = index % 3 ? 'published' : 'draft'; - - const destination = countries.map((option) => option.label)[index]; - - const services = (index % 2 && ['Audio guide', 'Food and drinks']) || - (index % 3 && ['Lunch', 'Private tour']) || - (index % 4 && ['Special activities', 'Entrance fees']) || [ - 'Gratuities', - 'Pick-up and drop off', - 'Professional guide', - 'Transport by air-conditioned', - ]; - - const tourGuides = - (index === 0 && _tourGuides.slice(0, 1)) || - (index === 1 && _tourGuides.slice(1, 3)) || - (index === 2 && _tourGuides.slice(2, 5)) || - (index === 3 && _tourGuides.slice(4, 6)) || - _tourGuides.slice(6, 9); - - const images = TRAVEL_IMAGES.slice(index, index + 5); - - return { - id: _mock.id(index), - images, - publish, - services, - available, - tourGuides, - destination, - bookers: BOOKER, - content: CONTENT, - tags: _tags.slice(0, 5), - name: _mock.tourName(index), - createdAt: _mock.time(index), - durations: '4 days 3 nights', - price: _mock.number.price(index), - priceSale: _mock.number.price(index), - totalViews: _mock.number.nativeL(index), - ratingNumber: _mock.number.rating(index), - }; -}); diff --git a/src/_mock/_user.ts b/src/_mock/_user.ts deleted file mode 100644 index 5a30dce3d751358d7ff72064e21e9948371d12bd..0000000000000000000000000000000000000000 --- a/src/_mock/_user.ts +++ /dev/null @@ -1,157 +0,0 @@ -import { countries } from '@/assets/data'; - -import { _mock } from './_mock'; - -// ---------------------------------------------------------------------- - -export const USER_STATUS_OPTIONS = [ - { value: 'active', label: 'Active' }, - { value: 'pending', label: 'Pending' }, - { value: 'banned', label: 'Banned' }, - { value: 'rejected', label: 'Rejected' }, -]; - -export const _userAbout = { - id: _mock.id(1), - role: _mock.role(1), - email: _mock.email(1), - country: countries[1].label, - school: _mock.companyName(2), - company: _mock.companyName(1), - coverUrl: _mock.image.cover(3), - totalFollowers: _mock.number.nativeL(1), - totalFollowing: _mock.number.nativeL(2), - quote: - 'Tart I love sugar plum I love oat cake. Sweet roll caramels I love jujubes. Topping cake wafer..', - socialLinks: { - facebook: `https://www.facebook.com/caitlyn.kerluke`, - instagram: `https://www.instagram.com/caitlyn.kerluke`, - linkedin: `https://www.linkedin.com/in/caitlyn.kerluke`, - twitter: `https://www.twitter.com/caitlyn.kerluke`, - }, -}; - -export const _userFollowers = [...Array(18)].map((_, index) => ({ - id: _mock.id(index), - name: _mock.fullName(index), - country: countries[index + 1].label, - avatarUrl: _mock.image.avatar(index), -})); - -export const _userFriends = [...Array(18)].map((_, index) => ({ - id: _mock.id(index), - role: _mock.role(index), - name: _mock.fullName(index), - avatarUrl: _mock.image.avatar(index), -})); - -export const _userGallery = [...Array(12)].map((_, index) => ({ - id: _mock.id(index), - postedAt: _mock.time(index), - title: _mock.postTitle(index), - imageUrl: _mock.image.cover(index), -})); - -export const _userFeeds = [...Array(3)].map((_, index) => ({ - id: _mock.id(index), - createdAt: _mock.time(index), - media: _mock.image.travel(index + 1), - message: _mock.sentence(index), - personLikes: [...Array(20)].map((__, personIndex) => ({ - name: _mock.fullName(personIndex), - avatarUrl: _mock.image.avatar(personIndex + 2), - })), - comments: (index === 2 && []) || [ - { - id: _mock.id(7), - author: { - id: _mock.id(8), - avatarUrl: _mock.image.avatar(index + 5), - name: _mock.fullName(index + 5), - }, - createdAt: _mock.time(2), - message: 'Praesent venenatis metus at', - }, - { - id: _mock.id(9), - author: { - id: _mock.id(10), - avatarUrl: _mock.image.avatar(index + 6), - name: _mock.fullName(index + 6), - }, - createdAt: _mock.time(3), - message: - 'Etiam rhoncus. Nullam vel sem. Pellentesque libero tortor, tincidunt et, tincidunt eget, semper nec, quam. Sed lectus.', - }, - ], -})); - -export const _userCards = [...Array(21)].map((_, index) => ({ - id: _mock.id(index), - role: _mock.role(index), - name: _mock.fullName(index), - coverUrl: _mock.image.cover(index), - avatarUrl: _mock.image.avatar(index), - totalFollowers: _mock.number.nativeL(index), - totalPosts: _mock.number.nativeL(index + 2), - totalFollowing: _mock.number.nativeL(index + 1), -})); - -export const _userPayment = [...Array(3)].map((_, index) => ({ - id: _mock.id(index), - cardNumber: ['**** **** **** 1234', '**** **** **** 5678', '**** **** **** 7878'][index], - cardType: ['mastercard', 'visa', 'visa'][index], - primary: index === 1, -})); - -export const _userAddressBook = [...Array(4)].map((_, index) => ({ - id: _mock.id(index), - primary: index === 0, - name: _mock.fullName(index), - phoneNumber: _mock.phoneNumber(index), - fullAddress: _mock.fullAddress(index), - addressType: (index === 0 && 'Home') || 'Office', -})); - -export const _userInvoices = [...Array(10)].map((_, index) => ({ - id: _mock.id(index), - invoiceNumber: `INV-199${index}`, - createdAt: _mock.time(index), - price: _mock.number.price(index), -})); - -export const _userPlans = [ - { - subscription: 'basic', - price: 0, - primary: false, - }, - { - subscription: 'starter', - price: 4.99, - primary: true, - }, - { - subscription: 'premium', - price: 9.99, - primary: false, - }, -]; - -export const _userList = [...Array(20)].map((_, index) => ({ - id: _mock.id(index), - zipCode: '85807', - state: 'Virginia', - city: 'Rancho Cordova', - role: _mock.role(index), - email: _mock.email(index), - address: '908 Jack Locks', - name: _mock.fullName(index), - isVerified: _mock.boolean(index), - company: _mock.companyName(index), - country: countries[index + 1].label, - avatarUrl: _mock.image.avatar(index), - phoneNumber: _mock.phoneNumber(index), - status: - (index % 2 && 'pending') || (index % 3 && 'banned') || (index % 4 && 'rejected') || 'active', -})); diff --git a/src/_mock/index.ts b/src/_mock/index.ts index f5d550ca45b478d322f61f320bc1b63985258d3d..7952d89e30cc6f32eb98a3e3fd39929c56b08192 100644 --- a/src/_mock/index.ts +++ b/src/_mock/index.ts @@ -1,16 +1,5 @@ export * from './assets'; -export * from './_mock'; // ---------------------------------------------------------------------- -export * from './_job'; -export * from './_user'; -export * from './_tour'; -export * from './_blog'; -export * from './_files'; -export * from './_order'; -export * from './_others'; -export * from './_invoice'; export * from './_product'; -export * from './_overview'; -export * from './_calendar'; diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 4359b78f2b516ab36211f6bcd52115189b8249d8..85db965c2933fab3a1295866ebf9bb8bea90e8ec 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -14,7 +14,7 @@ import { primaryFont } from '@/theme/typography'; import ProgressBar from '@/components/progress-bar'; import { MotionLazy } from '@/components/animate/motion-lazy'; import SnackbarProvider from '@/components/snackbar/snackbar-provider'; -import { SettingsDrawer, SettingsProvider } from '@/components/settings'; +import { SettingsProvider } from '@/components/settings'; import { CheckoutProvider } from '@/sections/checkout/context'; @@ -52,7 +52,6 @@ export default function RootLayout({ children }: Props) { <MotionLazy> <SnackbarProvider> <CheckoutProvider> - <SettingsDrawer /> <ProgressBar /> <DashboardLayout>{children}</DashboardLayout> </CheckoutProvider> diff --git a/src/assets/data/countries.ts b/src/assets/data/countries.ts deleted file mode 100644 index 7ae08cc89c6f3a23a50eb3f67743d914ef42dd33..0000000000000000000000000000000000000000 --- a/src/assets/data/countries.ts +++ /dev/null @@ -1,425 +0,0 @@ -export const countries = [ - { code: '', label: '', phone: '' }, - { code: 'AD', label: 'Andorra', phone: '376' }, - { - code: 'AE', - label: 'United Arab Emirates', - phone: '971', - }, - { code: 'AF', label: 'Afghanistan', phone: '93' }, - { - code: 'AG', - label: 'Antigua and Barbuda', - phone: '1-268', - }, - { code: 'AI', label: 'Anguilla', phone: '1-264' }, - { code: 'AL', label: 'Albania', phone: '355' }, - { code: 'AM', label: 'Armenia', phone: '374' }, - { code: 'AO', label: 'Angola', phone: '244' }, - { code: 'AQ', label: 'Antarctica', phone: '672' }, - { code: 'AR', label: 'Argentina', phone: '54' }, - { code: 'AS', label: 'American Samoa', phone: '1-684' }, - { code: 'AT', label: 'Austria', phone: '43' }, - { - code: 'AU', - label: 'Australia', - phone: '61', - suggested: true, - }, - { code: 'AW', label: 'Aruba', phone: '297' }, - { code: 'AX', label: 'Alland Islands', phone: '358' }, - { code: 'AZ', label: 'Azerbaijan', phone: '994' }, - { - code: 'BA', - label: 'Bosnia and Herzegovina', - phone: '387', - }, - { code: 'BB', label: 'Barbados', phone: '1-246' }, - { code: 'BD', label: 'Bangladesh', phone: '880' }, - { code: 'BE', label: 'Belgium', phone: '32' }, - { code: 'BF', label: 'Burkina Faso', phone: '226' }, - { code: 'BG', label: 'Bulgaria', phone: '359' }, - { code: 'BH', label: 'Bahrain', phone: '973' }, - { code: 'BI', label: 'Burundi', phone: '257' }, - { code: 'BJ', label: 'Benin', phone: '229' }, - { code: 'BL', label: 'Saint Barthelemy', phone: '590' }, - { code: 'BM', label: 'Bermuda', phone: '1-441' }, - { code: 'BN', label: 'Brunei Darussalam', phone: '673' }, - { code: 'BO', label: 'Bolivia', phone: '591' }, - { code: 'BR', label: 'Brazil', phone: '55' }, - { code: 'BS', label: 'Bahamas', phone: '1-242' }, - { code: 'BT', label: 'Bhutan', phone: '975' }, - { code: 'BV', label: 'Bouvet Island', phone: '47' }, - { code: 'BW', label: 'Botswana', phone: '267' }, - { code: 'BY', label: 'Belarus', phone: '375' }, - { code: 'BZ', label: 'Belize', phone: '501' }, - { - code: 'CA', - label: 'Canada', - phone: '1', - suggested: true, - }, - { - code: 'CC', - label: 'Cocos (Keeling) Islands', - phone: '61', - }, - { - code: 'CD', - label: 'Congo, Democratic Republic of the', - phone: '243', - }, - { - code: 'CF', - label: 'Central African Republic', - phone: '236', - }, - { - code: 'CG', - label: 'Congo, Republic of the', - phone: '242', - }, - { code: 'CH', label: 'Switzerland', phone: '41' }, - { code: 'CI', label: "Cote d'Ivoire", phone: '225' }, - { code: 'CK', label: 'Cook Islands', phone: '682' }, - { code: 'CL', label: 'Chile', phone: '56' }, - { code: 'CM', label: 'Cameroon', phone: '237' }, - { code: 'CN', label: 'China', phone: '86' }, - { code: 'CO', label: 'Colombia', phone: '57' }, - { code: 'CR', label: 'Costa Rica', phone: '506' }, - { code: 'CU', label: 'Cuba', phone: '53' }, - { code: 'CV', label: 'Cape Verde', phone: '238' }, - { code: 'CW', label: 'Curacao', phone: '599' }, - { code: 'CX', label: 'Christmas Island', phone: '61' }, - { code: 'CY', label: 'Cyprus', phone: '357' }, - { code: 'CZ', label: 'Czech Republic', phone: '420' }, - { - code: 'DE', - label: 'Germany', - phone: '49', - suggested: true, - }, - { code: 'DJ', label: 'Djibouti', phone: '253' }, - { code: 'DK', label: 'Denmark', phone: '45' }, - { code: 'DM', label: 'Dominica', phone: '1-767' }, - { - code: 'DO', - label: 'Dominican Republic', - phone: '1-809', - }, - { code: 'DZ', label: 'Algeria', phone: '213' }, - { code: 'EC', label: 'Ecuador', phone: '593' }, - { code: 'EE', label: 'Estonia', phone: '372' }, - { code: 'EG', label: 'Egypt', phone: '20' }, - { code: 'EH', label: 'Western Sahara', phone: '212' }, - { code: 'ER', label: 'Eritrea', phone: '291' }, - { code: 'ES', label: 'Spain', phone: '34' }, - { code: 'ET', label: 'Ethiopia', phone: '251' }, - { code: 'FI', label: 'Finland', phone: '358' }, - { code: 'FJ', label: 'Fiji', phone: '679' }, - { - code: 'FK', - label: 'Falkland Islands (Malvinas)', - phone: '500', - }, - { - code: 'FM', - label: 'Micronesia, Federated States of', - phone: '691', - }, - { code: 'FO', label: 'Faroe Islands', phone: '298' }, - { - code: 'FR', - label: 'France', - phone: '33', - suggested: true, - }, - { code: 'GA', label: 'Gabon', phone: '241' }, - { code: 'GB', label: 'United Kingdom', phone: '44' }, - { code: 'GD', label: 'Grenada', phone: '1-473' }, - { code: 'GE', label: 'Georgia', phone: '995' }, - { code: 'GF', label: 'French Guiana', phone: '594' }, - { code: 'GG', label: 'Guernsey', phone: '44' }, - { code: 'GH', label: 'Ghana', phone: '233' }, - { code: 'GI', label: 'Gibraltar', phone: '350' }, - { code: 'GL', label: 'Greenland', phone: '299' }, - { code: 'GM', label: 'Gambia', phone: '220' }, - { code: 'GN', label: 'Guinea', phone: '224' }, - { code: 'GP', label: 'Guadeloupe', phone: '590' }, - { code: 'GQ', label: 'Equatorial Guinea', phone: '240' }, - { code: 'GR', label: 'Greece', phone: '30' }, - { - code: 'GS', - label: 'South Georgia and the South Sandwich Islands', - phone: '500', - }, - { code: 'GT', label: 'Guatemala', phone: '502' }, - { code: 'GU', label: 'Guam', phone: '1-671' }, - { code: 'GW', label: 'Guinea-Bissau', phone: '245' }, - { code: 'GY', label: 'Guyana', phone: '592' }, - { code: 'HK', label: 'Hong Kong', phone: '852' }, - { - code: 'HM', - label: 'Heard Island and McDonald Islands', - phone: '672', - }, - { code: 'HN', label: 'Honduras', phone: '504' }, - { code: 'HR', label: 'Croatia', phone: '385' }, - { code: 'HT', label: 'Haiti', phone: '509' }, - { code: 'HU', label: 'Hungary', phone: '36' }, - { code: 'ID', label: 'Indonesia', phone: '62' }, - { code: 'IE', label: 'Ireland', phone: '353' }, - { code: 'IL', label: 'Israel', phone: '972' }, - { code: 'IM', label: 'Isle of Man', phone: '44' }, - { code: 'IN', label: 'India', phone: '91' }, - { - code: 'IO', - label: 'British Indian Ocean Territory', - phone: '246', - }, - { code: 'IQ', label: 'Iraq', phone: '964' }, - { - code: 'IR', - label: 'Iran, Islamic Republic of', - phone: '98', - }, - { code: 'IS', label: 'Iceland', phone: '354' }, - { code: 'IT', label: 'Italy', phone: '39' }, - { code: 'JE', label: 'Jersey', phone: '44' }, - { code: 'JM', label: 'Jamaica', phone: '1-876' }, - { code: 'JO', label: 'Jordan', phone: '962' }, - { - code: 'JP', - label: 'Japan', - phone: '81', - suggested: true, - }, - { code: 'KE', label: 'Kenya', phone: '254' }, - { code: 'KG', label: 'Kyrgyzstan', phone: '996' }, - { code: 'KH', label: 'Cambodia', phone: '855' }, - { code: 'KI', label: 'Kiribati', phone: '686' }, - { code: 'KM', label: 'Comoros', phone: '269' }, - { - code: 'KN', - label: 'Saint Kitts and Nevis', - phone: '1-869', - }, - { - code: 'KP', - label: "Korea, Democratic People's Republic of", - phone: '850', - }, - { code: 'KR', label: 'Korea, Republic of', phone: '82' }, - { code: 'KW', label: 'Kuwait', phone: '965' }, - { code: 'KY', label: 'Cayman Islands', phone: '1-345' }, - { code: 'KZ', label: 'Kazakhstan', phone: '7' }, - { - code: 'LA', - label: "Lao People's Democratic Republic", - phone: '856', - }, - { code: 'LB', label: 'Lebanon', phone: '961' }, - { code: 'LC', label: 'Saint Lucia', phone: '1-758' }, - { code: 'LI', label: 'Liechtenstein', phone: '423' }, - { code: 'LK', label: 'Sri Lanka', phone: '94' }, - { code: 'LR', label: 'Liberia', phone: '231' }, - { code: 'LS', label: 'Lesotho', phone: '266' }, - { code: 'LT', label: 'Lithuania', phone: '370' }, - { code: 'LU', label: 'Luxembourg', phone: '352' }, - { code: 'LV', label: 'Latvia', phone: '371' }, - { code: 'LY', label: 'Libya', phone: '218' }, - { code: 'MA', label: 'Morocco', phone: '212' }, - { code: 'MC', label: 'Monaco', phone: '377' }, - { - code: 'MD', - label: 'Moldova, Republic of', - phone: '373', - }, - { code: 'ME', label: 'Montenegro', phone: '382' }, - { - code: 'MF', - label: 'Saint Martin (French part)', - phone: '590', - }, - { code: 'MG', label: 'Madagascar', phone: '261' }, - { code: 'MH', label: 'Marshall Islands', phone: '692' }, - { - code: 'MK', - label: 'Macedonia, the Former Yugoslav Republic of', - phone: '389', - }, - { code: 'ML', label: 'Mali', phone: '223' }, - { code: 'MM', label: 'Myanmar', phone: '95' }, - { code: 'MN', label: 'Mongolia', phone: '976' }, - { code: 'MO', label: 'Macao', phone: '853' }, - { - code: 'MP', - label: 'Northern Mariana Islands', - phone: '1-670', - }, - { code: 'MQ', label: 'Martinique', phone: '596' }, - { code: 'MR', label: 'Mauritania', phone: '222' }, - { code: 'MS', label: 'Montserrat', phone: '1-664' }, - { code: 'MT', label: 'Malta', phone: '356' }, - { code: 'MU', label: 'Mauritius', phone: '230' }, - { code: 'MV', label: 'Maldives', phone: '960' }, - { code: 'MW', label: 'Malawi', phone: '265' }, - { code: 'MX', label: 'Mexico', phone: '52' }, - { code: 'MY', label: 'Malaysia', phone: '60' }, - { code: 'MZ', label: 'Mozambique', phone: '258' }, - { code: 'NA', label: 'Namibia', phone: '264' }, - { code: 'NC', label: 'New Caledonia', phone: '687' }, - { code: 'NE', label: 'Niger', phone: '227' }, - { code: 'NF', label: 'Norfolk Island', phone: '672' }, - { code: 'NG', label: 'Nigeria', phone: '234' }, - { code: 'NI', label: 'Nicaragua', phone: '505' }, - { code: 'NL', label: 'Netherlands', phone: '31' }, - { code: 'NO', label: 'Norway', phone: '47' }, - { code: 'NP', label: 'Nepal', phone: '977' }, - { code: 'NR', label: 'Nauru', phone: '674' }, - { code: 'NU', label: 'Niue', phone: '683' }, - { code: 'NZ', label: 'New Zealand', phone: '64' }, - { code: 'OM', label: 'Oman', phone: '968' }, - { code: 'PA', label: 'Panama', phone: '507' }, - { code: 'PE', label: 'Peru', phone: '51' }, - { code: 'PF', label: 'French Polynesia', phone: '689' }, - { code: 'PG', label: 'Papua New Guinea', phone: '675' }, - { code: 'PH', label: 'Philippines', phone: '63' }, - { code: 'PK', label: 'Pakistan', phone: '92' }, - { code: 'PL', label: 'Poland', phone: '48' }, - { - code: 'PM', - label: 'Saint Pierre and Miquelon', - phone: '508', - }, - { code: 'PN', label: 'Pitcairn', phone: '870' }, - { code: 'PR', label: 'Puerto Rico', phone: '1' }, - { - code: 'PS', - label: 'Palestine, State of', - phone: '970', - }, - { code: 'PT', label: 'Portugal', phone: '351' }, - { code: 'PW', label: 'Palau', phone: '680' }, - { code: 'PY', label: 'Paraguay', phone: '595' }, - { code: 'QA', label: 'Qatar', phone: '974' }, - { code: 'RE', label: 'Reunion', phone: '262' }, - { code: 'RO', label: 'Romania', phone: '40' }, - { code: 'RS', label: 'Serbia', phone: '381' }, - { code: 'RU', label: 'Russian Federation', phone: '7' }, - { code: 'RW', label: 'Rwanda', phone: '250' }, - { code: 'SA', label: 'Saudi Arabia', phone: '966' }, - { code: 'SB', label: 'Solomon Islands', phone: '677' }, - { code: 'SC', label: 'Seychelles', phone: '248' }, - { code: 'SD', label: 'Sudan', phone: '249' }, - { code: 'SE', label: 'Sweden', phone: '46' }, - { code: 'SG', label: 'Singapore', phone: '65' }, - { code: 'SH', label: 'Saint Helena', phone: '290' }, - { code: 'SI', label: 'Slovenia', phone: '386' }, - { - code: 'SJ', - label: 'Svalbard and Jan Mayen', - phone: '47', - }, - { code: 'SK', label: 'Slovakia', phone: '421' }, - { code: 'SL', label: 'Sierra Leone', phone: '232' }, - { code: 'SM', label: 'San Marino', phone: '378' }, - { code: 'SN', label: 'Senegal', phone: '221' }, - { code: 'SO', label: 'Somalia', phone: '252' }, - { code: 'SR', label: 'Suriname', phone: '597' }, - { code: 'SS', label: 'South Sudan', phone: '211' }, - { - code: 'ST', - label: 'Sao Tome and Principe', - phone: '239', - }, - { code: 'SV', label: 'El Salvador', phone: '503' }, - { - code: 'SX', - label: 'Sint Maarten (Dutch part)', - phone: '1-721', - }, - { - code: 'SY', - label: 'Syrian Arab Republic', - phone: '963', - }, - { code: 'SZ', label: 'Swaziland', phone: '268' }, - { - code: 'TC', - label: 'Turks and Caicos Islands', - phone: '1-649', - }, - { code: 'TD', label: 'Chad', phone: '235' }, - { - code: 'TF', - label: 'French Southern Territories', - phone: '262', - }, - { code: 'TG', label: 'Togo', phone: '228' }, - { code: 'TH', label: 'Thailand', phone: '66' }, - { code: 'TJ', label: 'Tajikistan', phone: '992' }, - { code: 'TK', label: 'Tokelau', phone: '690' }, - { code: 'TL', label: 'Timor-Leste', phone: '670' }, - { code: 'TM', label: 'Turkmenistan', phone: '993' }, - { code: 'TN', label: 'Tunisia', phone: '216' }, - { code: 'TO', label: 'Tonga', phone: '676' }, - { code: 'TR', label: 'Turkey', phone: '90' }, - { - code: 'TT', - label: 'Trinidad and Tobago', - phone: '1-868', - }, - { code: 'TV', label: 'Tuvalu', phone: '688' }, - { - code: 'TW', - label: 'Taiwan, Province of China', - phone: '886', - }, - { - code: 'TZ', - label: 'United Republic of Tanzania', - phone: '255', - }, - { code: 'UA', label: 'Ukraine', phone: '380' }, - { code: 'UG', label: 'Uganda', phone: '256' }, - { - code: 'US', - label: 'United States', - phone: '1', - suggested: true, - }, - { code: 'UY', label: 'Uruguay', phone: '598' }, - { code: 'UZ', label: 'Uzbekistan', phone: '998' }, - { - code: 'VA', - label: 'Holy See (Vatican City State)', - phone: '379', - }, - { - code: 'VC', - label: 'Saint Vincent and the Grenadines', - phone: '1-784', - }, - { code: 'VE', label: 'Venezuela', phone: '58' }, - { - code: 'VG', - label: 'British Virgin Islands', - phone: '1-284', - }, - { - code: 'VI', - label: 'US Virgin Islands', - phone: '1-340', - }, - { code: 'VN', label: 'Vietnam', phone: '84' }, - { code: 'VU', label: 'Vanuatu', phone: '678' }, - { code: 'WF', label: 'Wallis and Futuna', phone: '681' }, - { code: 'WS', label: 'Samoa', phone: '685' }, - { code: 'XK', label: 'Kosovo', phone: '383' }, - { code: 'YE', label: 'Yemen', phone: '967' }, - { code: 'YT', label: 'Mayotte', phone: '262' }, - { code: 'ZA', label: 'South Africa', phone: '27' }, - { code: 'ZM', label: 'Zambia', phone: '260' }, - { code: 'ZW', label: 'Zimbabwe', phone: '263' }, -]; diff --git a/src/assets/data/index.ts b/src/assets/data/index.ts deleted file mode 100644 index 8ab5434899d278c9e3b2128362e74fa0394a0f6c..0000000000000000000000000000000000000000 --- a/src/assets/data/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './countries'; diff --git a/src/assets/illustrations/avatar-shape.tsx b/src/assets/illustrations/avatar-shape.tsx deleted file mode 100644 index 19f67ec825fbcd9eea79d7d1759a6a228934db94..0000000000000000000000000000000000000000 --- a/src/assets/illustrations/avatar-shape.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { memo } from 'react'; - -import Box, { BoxProps } from '@mui/material/Box'; - -// ---------------------------------------------------------------------- - -function AvatarShape({ sx, ...other }: BoxProps) { - return ( - <Box - component="svg" - width={144} - height={62} - fill="none" - viewBox="0 0 144 62" - xmlns="http://www.w3.org/2000/svg" - sx={{ - color: 'background.paper', - ...sx, - }} - {...other} - > - <path - d="m111.34 23.88c-10.62-10.46-18.5-23.88-38.74-23.88h-1.2c-20.24 0-28.12 13.42-38.74 23.88-7.72 9.64-19.44 11.74-32.66 12.12v26h144v-26c-13.22-.38-24.94-2.48-32.66-12.12z" - fill="currentColor" - fillRule="evenodd" - /> - </Box> - ); -} - -export default memo(AvatarShape); diff --git a/src/assets/illustrations/background-shape.tsx b/src/assets/illustrations/background-shape.tsx deleted file mode 100644 index 4c5fc6c479ed9acdbf5e892c89b89a8f866f9cef..0000000000000000000000000000000000000000 --- a/src/assets/illustrations/background-shape.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { memo } from 'react'; - -import { useTheme } from '@mui/material/styles'; - -// ---------------------------------------------------------------------- - -function BackgroundShape() { - const theme = useTheme(); - - const PRIMARY_MAIN = theme.palette.primary.main; - - return ( - <> - <defs> - <linearGradient id="BG" x1="19.496%" x2="77.479%" y1="71.822%" y2="16.69%"> - <stop offset="0%" stopColor={PRIMARY_MAIN} /> - <stop offset="100%" stopColor={PRIMARY_MAIN} stopOpacity="0" /> - </linearGradient> - </defs> - - <path - fill="url(#BG)" - fillRule="nonzero" - d="M0 198.78c0 41.458 14.945 79.236 39.539 107.786 28.214 32.765 69.128 53.365 114.734 53.434a148.44 148.44 0 0056.495-11.036c9.051-3.699 19.182-3.274 27.948 1.107a75.779 75.779 0 0033.957 8.01c5.023 0 9.942-.494 14.7-1.433 13.58-2.67 25.94-8.99 36.09-17.94 6.378-5.627 14.547-8.456 22.897-8.446h.142c27.589 0 53.215-8.732 74.492-23.696 19.021-13.36 34.554-31.696 44.904-53.224C474.92 234.58 480 213.388 480 190.958c0-76.93-59.774-139.305-133.498-139.305-7.516 0-14.88.663-22.063 1.899C305.418 21.42 271.355 0 232.499 0a103.651 103.651 0 00-45.88 10.661c-13.24 6.487-25.011 15.705-34.64 26.939-32.698.544-62.931 11.69-87.676 30.291C25.351 97.155 0 144.882 0 198.781z" - opacity="0.2" - /> - </> - ); -} - -export default memo(BackgroundShape); diff --git a/src/assets/illustrations/booking-illustration.tsx b/src/assets/illustrations/booking-illustration.tsx deleted file mode 100644 index c5e159aa1246bb969e8db6887efcd8c6d826bcd7..0000000000000000000000000000000000000000 --- a/src/assets/illustrations/booking-illustration.tsx +++ /dev/null @@ -1,307 +0,0 @@ -import { memo } from 'react'; - -import { useTheme } from '@mui/material/styles'; -import Box, { BoxProps } from '@mui/material/Box'; - -// ---------------------------------------------------------------------- - -function BookingIllustration({ ...other }: BoxProps) { - const theme = useTheme(); - - const PRIMARY_LIGHTER = theme.palette.primary.lighter; - - const PRIMARY_LIGHT = theme.palette.primary.light; - - const PRIMARY_MAIN = theme.palette.primary.main; - - const PRIMARY_DARK = theme.palette.primary.dark; - - const PRIMARY_DARKER = theme.palette.primary.darker; - - return ( - <Box - component="svg" - width="100%" - height="100%" - viewBox="0 0 200 200" - xmlns="http://www.w3.org/2000/svg" - {...other} - > - <path - fill="#FFFFFF" - d="M141.968 167.139H48.764a11.932 11.932 0 01-11.921-11.921V45.758a11.935 11.935 0 0111.921-11.922h86.712l18.414 14.677v106.705a11.937 11.937 0 01-11.922 11.921z" - /> - - <path - fill="#C4CDD5" - d="M122.521 69.096h-62.5a1.986 1.986 0 110-3.97h62.5a1.984 1.984 0 110 3.97zM130.711 75.796h-70.69a1.985 1.985 0 010-3.97h70.69a1.98 1.98 0 011.404.581 1.992 1.992 0 01.581 1.404 1.98 1.98 0 01-1.226 1.834c-.24.1-.499.151-.759.151z" - /> - - <path - fill={PRIMARY_MAIN} - d="M122.521 99.123h-62.5a1.986 1.986 0 110-3.97h62.5a1.984 1.984 0 110 3.97zM130.711 105.823h-70.69a1.98 1.98 0 01-1.834-1.226 1.986 1.986 0 011.835-2.745h70.689a1.995 1.995 0 011.404.582 1.988 1.988 0 010 2.807 1.99 1.99 0 01-1.404.582z" - /> - - <path - fill="#DFE3E8" - d="M122.522 129.149h-62.5a1.986 1.986 0 110-3.97h62.5a1.985 1.985 0 010 3.97zM130.711 135.85h-70.69a1.985 1.985 0 110-3.971h70.69c.526 0 1.031.209 1.403.582a1.981 1.981 0 010 2.807 1.986 1.986 0 01-1.403.582zM153.531 48.986h-14.424a3.973 3.973 0 01-3.971-3.971V34.361a.246.246 0 01.14-.223.25.25 0 01.262.029l18.147 14.376a.25.25 0 01.081.276.249.249 0 01-.235.166z" - /> - - <path - fill="#919EAB" - fillOpacity="0.24" - d="M63.977 43.25A28.25 28.25 0 1135.727 15a28.26 28.26 0 0128.25 28.25z" - /> - - <path - fill={PRIMARY_LIGHTER} - d="M62.975 43.249A27.249 27.249 0 1135.726 16a27.258 27.258 0 0127.25 27.249z" - /> - - <mask id="mask0" width="55" height="55" x="8" y="16" maskUnits="userSpaceOnUse"> - <path - fill="#fff" - d="M62.975 43.249A27.249 27.249 0 1135.726 16a27.258 27.258 0 0127.25 27.249z" - /> - </mask> - <g mask="url(#mask0)"> - <path - fill="#FBCDBE" - d="M36.143 29.428a9.6 9.6 0 019.6 9.6v1.057a2.058 2.058 0 011.714 2.029v2.4a2.058 2.058 0 01-1.767 2.037 9.606 9.606 0 01-5.433 7.668v3.152h.686c6.817 0 12.343 5.526 12.343 12.343v1.543H19v-1.543c0-6.817 5.526-12.343 12.343-12.343h.686V54.22a9.607 9.607 0 01-5.434-7.668 2.058 2.058 0 01-1.766-2.037v-2.4c0-1.02.74-1.866 1.714-2.029v-1.057a9.6 9.6 0 019.6-9.6z" - /> - - <path - fill={PRIMARY_DARK} - d="M27.743 58.63c0 2.792 3.799 5.054 8.486 5.054 4.686 0 8.485-2.262 8.485-5.053a3.08 3.08 0 00-.078-.689c5.013 1.57 8.65 6.25 8.65 11.78v1.535H19v-1.534c0-5.598 3.727-10.326 8.834-11.837-.06.243-.091.492-.091.745z" - /> - - <path - fill={PRIMARY_LIGHT} - d="M27.743 58.63c0 2.792 3.799 5.054 8.486 5.054 4.686 0 8.485-2.262 8.485-5.053a3.08 3.08 0 00-.078-.689c5.013 1.57 8.65 6.25 8.65 11.78v1.535H19v-1.534c0-5.598 3.727-10.326 8.834-11.837-.06.243-.091.492-.091.745z" - /> - - <path - fill={PRIMARY_DARK} - d="M31.857 48.904c.242 1.65 2.068 2.981 4.285 2.981 2.224 0 4.054-1.34 4.286-3.13.018-.069-.038-.298-.372-.298H32.23c-.307 0-.395.212-.373.447z" - opacity="0.24" - /> - - <path - fill={PRIMARY_DARK} - fillRule="evenodd" - d="M34.085 45.542c0 .758.922 1.372 2.058 1.372 1.136 0 2.057-.614 2.057-1.372" - clipRule="evenodd" - opacity="0.24" - /> - - <path - fill={PRIMARY_DARK} - d="M31.685 43.485a1.029 1.029 0 100-2.057 1.029 1.029 0 000 2.057zM40.6 43.485a1.029 1.029 0 100-2.057 1.029 1.029 0 000 2.057zM29.223 40.255c.67-.944 2.51-1.474 4.095-1.084a.343.343 0 00.164-.666c-1.84-.452-3.971.161-4.819 1.353a.343.343 0 10.56.397zM43.063 40.255c-.67-.944-2.51-1.474-4.096-1.084a.343.343 0 11-.163-.666c1.84-.452 3.97.161 4.818 1.353a.343.343 0 11-.559.397z" - /> - - <path - fill={PRIMARY_MAIN} - d="M36.143 26.857c6.438 0 11.657 5.219 11.657 11.657v5.272c.15 1.68.29 2.858.421 3.532.236 1.218.976.816.976 2.548 0 1.732-.742 2.314-.745 3.855-.003 1.54 2.64 2.765 2.64 4.72 0 1.956-1.213 11.183-13.307 11.183-2.584 0-4.784-.735-6.602-2.205.117 1.113.228 2.392.331 3.838h-8.057c.16-4.075-1.248-6.354-1.248-10.895 0-4.541 2.337-11.146 2.277-12.762l.01-.359c-.007-.165-.01-.331-.01-.498v-8.229c0-.68.058-1.348.17-1.997l.001-.06.007.013c.967-5.463 5.738-9.613 11.479-9.613zm.086 5.486h-.172a9.343 9.343 0 00-9.343 9.342v3.943a9.343 9.343 0 009.343 9.343h.172a9.343 9.343 0 009.343-9.343v-3.943a9.343 9.343 0 00-9.343-9.342z" - /> - - <path - fill={PRIMARY_DARK} - fillRule="evenodd" - d="M36.143 28.742c5.87 0 10.628 4.72 10.628 10.543 0 .671-.063 1.328-.184 1.964-.272-5.533-4.844-9.935-10.444-9.935-5.6 0-10.172 4.402-10.445 9.935a10.5 10.5 0 01-.184-1.964c0-5.822 4.759-10.543 10.629-10.543z" - clipRule="evenodd" - /> - - <path - fill={PRIMARY_DARK} - fillRule="evenodd" - d="M47.399 59.17c.024.054.047.11.067.167.776 2.132-1.384 4.876-4.826 6.128-3.44 1.253-6.86.54-7.636-1.592a2.559 2.559 0 01-.056-.173c1.405.97 4.181 1.016 7.04-.025 2.855-1.04 4.95-2.854 5.408-4.497l.003-.009zm-1.99-2.631l.029.131c.293 1.662-2.27 3.503-5.723 4.112s-6.49-.245-6.784-1.907a1.44 1.44 0 01-.017-.133c1.112.854 3.685 1.15 6.555.644 2.865-.505 5.179-1.66 5.935-2.841l.004-.006zm.334-13.482V47a9.343 9.343 0 01-9.343 9.342h-.515A9.343 9.343 0 0126.543 47v-3.943c0-.634.063-1.253.183-1.852-.008.16-.012.32-.012.48v3.943a9.343 9.343 0 009.343 9.343h.171a9.343 9.343 0 009.343-9.343v-3.943c0-.16-.004-.32-.012-.48a9.38 9.38 0 01.184 1.852z" - clipRule="evenodd" - opacity="0.9" - /> - </g> - <path - fill="#919EAB" - fillOpacity="0.24" - d="M195.516 99.234a28.263 28.263 0 01-19.503 26.869c-.17.054-.339.108-.511.159a27.815 27.815 0 01-6.4 1.161 28.16 28.16 0 01-11.436-1.613 28.257 28.257 0 01-18.407-22.832 28.253 28.253 0 1156.257-3.744z" - /> - - <path - fill={PRIMARY_LIGHTER} - d="M194.514 99.233a27.256 27.256 0 01-18.812 25.917c-.164.052-.327.104-.493.153a26.765 26.765 0 01-6.173 1.12 27.206 27.206 0 01-22.99-10.083 27.258 27.258 0 01-3.745-28.04 27.255 27.255 0 0123.152-16.255 27.254 27.254 0 0129.061 27.188z" - /> - - <mask id="mask1" width="55" height="56" x="140" y="71" maskUnits="userSpaceOnUse"> - <path - fill="#fff" - d="M194.514 99.233a27.256 27.256 0 01-18.812 25.917c-.164.052-.327.104-.493.153a26.765 26.765 0 01-6.173 1.12 27.206 27.206 0 01-22.99-10.083 27.258 27.258 0 01-3.745-28.04 27.255 27.255 0 0123.152-16.255 27.254 27.254 0 0129.061 27.188z" - /> - </mask> - - <g mask="url(#mask1)"> - <path - fill="#FBCDBE" - d="M166.886 85.428c5.301 0 9.6 4.298 9.6 9.6v1.057a2.057 2.057 0 011.714 2.029v2.4a2.058 2.058 0 01-1.767 2.037 9.606 9.606 0 01-5.433 7.668v3.152h.686c6.816 0 12.342 5.526 12.342 12.343v1.543h-34.285v-1.543c0-6.817 5.526-12.343 12.343-12.343h.685v-3.152a9.606 9.606 0 01-5.433-7.668 2.058 2.058 0 01-1.767-2.037v-2.4c0-1.02.742-1.866 1.715-2.029v-1.057a9.6 9.6 0 019.6-9.6z" - /> - - <path - fill={PRIMARY_LIGHTER} - d="M171.686 113.38c6.816 0 12.342 5.526 12.342 12.343v1.534h-34.285v-1.534c0-6.817 5.526-12.343 12.343-12.343h.204c-.022.169-.033.34-.033.514 0 2.367 2.072 4.286 4.629 4.286 2.556 0 4.628-1.919 4.628-4.286 0-.174-.011-.345-.033-.514h.205z" - /> - - <path - fill={PRIMARY_MAIN} - fillRule="evenodd" - d="M160.714 120.143c0 2.607.336 5.043.919 7.114h-11.891v-1.534c0-6.632 5.231-12.043 11.792-12.331-.522 1.99-.82 4.294-.82 6.751zm23.314 5.58v1.534h-11.719c.583-2.071.919-4.507.919-7.114 0-2.453-.298-4.754-.818-6.742 6.479.375 11.618 5.748 11.618 12.322z" - clipRule="evenodd" - /> - - <path - fill={PRIMARY_LIGHTER} - fillRule="evenodd" - d="M175.285 123.143l1.638-1.229a.686.686 0 01.833.007l1.129.879-3.6.343z" - clipRule="evenodd" - /> - - <path - fill={PRIMARY_DARKER} - fillRule="evenodd" - d="M161.571 113.2c-.686 3.314-.4 8 .857 14.057h-2.743l-2.4-6.172 1.029-1.542-1.029-1.029 3.257-5.143a3.682 3.682 0 011.029-.171zM172.2 113.2c.685 3.314.4 8-.858 14.057h2.743l2.4-6.172-1.028-1.542 1.028-1.029-3.257-5.143a3.669 3.669 0 00-1.028-.171z" - clipRule="evenodd" - /> - - <path - fill={PRIMARY_LIGHT} - fillRule="evenodd" - d="M171 112.092c1.161.788 1.885 1.906 1.885 3.146 0 1.268-.759 2.409-1.968 3.2l-1.018-.802-.785.056.171-.54-.013-.01c1.046-.539 1.728-1.422 1.728-2.421v-2.629zm-6.501 5.05l-.014.01.172.54-.785-.056-1.019.802c-1.186-.776-1.939-1.889-1.967-3.129l-.001-.071c0-1.24.725-2.358 1.886-3.146v2.629c0 .999.682 1.882 1.728 2.421z" - clipRule="evenodd" - /> - - <path - fill={PRIMARY_DARKER} - fillRule="evenodd" - d="M164.485 104.8a2.4 2.4 0 004.8 0M164.828 101.542c0 .758.921 1.372 2.057 1.372s2.057-.614 2.057-1.372" - clipRule="evenodd" - opacity="0.24" - /> - - <path - fill={PRIMARY_DARKER} - fillRule="evenodd" - d="M160.055 99.409c.317.651 1.03 1.105 1.858 1.105.826 0 1.536-.451 1.855-1.098.094-.193-.04-.35-.176-.234-.42.362-1.017.587-1.679.587-.641 0-1.221-.211-1.639-.553-.152-.125-.311.002-.219.193zM169.998 99.409c.317.651 1.029 1.105 1.858 1.105.826 0 1.536-.451 1.854-1.098.095-.193-.04-.35-.175-.234-.42.362-1.017.587-1.679.587-.641 0-1.221-.211-1.639-.553-.153-.125-.311.002-.219.193z" - clipRule="evenodd" - /> - - <path - fill={PRIMARY_DARKER} - d="M159.965 96.255c.671-.944 2.511-1.474 4.096-1.084a.343.343 0 00.164-.666c-1.841-.452-3.972.161-4.819 1.353a.343.343 0 00.559.397zM173.806 96.255c-.671-.944-2.511-1.474-4.096-1.084a.343.343 0 01-.164-.666c1.841-.452 3.972.161 4.819 1.353a.343.343 0 11-.559.397z" - /> - - <path - fill={PRIMARY_DARKER} - d="M166.971 107.687c-1.95.064-2.82 1.008-3.475.049-.491-.72-.286-1.93.174-2.61.653-.969 1.54-.501 2.532-.611.269-.03.54-.106.769-.23.229.124.5.2.769.23.992.11 1.878-.358 2.532.611.46.68.665 1.89.174 2.61-.655.959-1.525-.114-3.475-.049zm9.466-11.63c-.58 2.412-.846 4.874-1.267 7.315a53.543 53.543 0 01-.285 1.522c-.022.106-.043.501-.146.551-.314.151-.953-.655-1.124-.837-.429-.457-.854-.918-1.377-1.276a7.342 7.342 0 00-3.579-1.255c-.538-.043-1.266.032-1.774.341-.507-.309-1.235-.384-1.773-.341a7.342 7.342 0 00-3.579 1.255c-.523.358-.948.819-1.377 1.276-.171.182-.81.988-1.124.837-.103-.05-.124-.445-.146-.551a53.543 53.543 0 01-.285-1.522c-.421-2.441-.687-4.903-1.267-7.315-.169 0-.317 3.214-.336 3.513-.077 1.216-.166 2.405-.052 3.623.197 2.099.403 4.732 1.984 6.336 1.428 1.449 3.502 1.752 5.291 2.666.231.118.536.263.866.382.347.268 1.035.451 1.828.451.832 0 1.548-.201 1.877-.491a7.76 7.76 0 00.758-.342c1.788-.915 3.863-1.217 5.291-2.666 1.581-1.604 1.787-4.237 1.984-6.336.114-1.218.025-2.407-.052-3.623-.019-.3-.167-3.513-.336-3.513z" - /> - - <path - fill={PRIMARY_DARK} - fillRule="evenodd" - d="M166.885 89.028c5.586 0 10.115 2.533 10.115 5.657 0 .442-.091.873-.263 1.286-1.041-2.505-5.057-4.371-9.852-4.371s-8.811 1.866-9.852 4.371a3.342 3.342 0 01-.262-1.286c0-3.124 4.528-5.657 10.114-5.657z" - clipRule="evenodd" - /> - - <path - fill={PRIMARY_DARKER} - d="M167.228 79.771c5.117 0 14.043 7.569 14.057 15.656.008 4.367-1.649 7.035-4.971 8.001 1.048-9.58-5.417-11.757-9.434-14.088-4.021 2.33-10.475 4.507-9.423 14.088-3.322-.857-4.979-3.524-4.972-8.001.014-8.088 8.927-15.656 14.058-15.656.114 0 .228.005.341.015a3.94 3.94 0 01.344-.015z" - /> - </g> - <path - fill="#919EAB" - fillOpacity="0.24" - d="M5 156.457a28.162 28.162 0 008.98 20.659 28.239 28.239 0 0010.523 6.21 28.359 28.359 0 0018.088-.201l.32-.115a28.255 28.255 0 0016.203-37.926 28.251 28.251 0 00-38.905-13.686A28.248 28.248 0 005 156.457z" - /> - - <path - fill={PRIMARY_LIGHTER} - d="M6 156.456a27.163 27.163 0 008.663 19.927 27.204 27.204 0 0011.043 6.262 27.357 27.357 0 0016.553-.466l.31-.111a27.253 27.253 0 006.316-47.931A27.253 27.253 0 006 156.456z" - /> - - <mask id="mask2" width="55" height="55" x="6" y="129" maskUnits="userSpaceOnUse"> - <path - fill="#fff" - d="M6 156.456a27.163 27.163 0 008.663 19.927 27.204 27.204 0 0011.043 6.262 27.357 27.357 0 0016.553-.466l.31-.111a27.253 27.253 0 006.316-47.931A27.253 27.253 0 006 156.456z" - /> - </mask> - <g mask="url(#mask2)"> - <path - fill="#FBCDBE" - d="M33.629 143.171a9.6 9.6 0 019.6 9.6v1.057a2.059 2.059 0 011.714 2.029v2.4a2.057 2.057 0 01-1.767 2.037 9.607 9.607 0 01-5.433 7.668v3.152h.686c6.816 0 12.343 5.526 12.343 12.343V185H16.486v-1.543c0-6.817 5.526-12.343 12.343-12.343h.685v-3.152a9.608 9.608 0 01-5.433-7.668 2.057 2.057 0 01-1.767-2.037v-2.4c0-1.019.742-1.865 1.715-2.029v-1.057a9.6 9.6 0 019.6-9.6z" - /> - - <path - fill={PRIMARY_LIGHT} - d="M25.229 172.374c0 2.791 3.799 5.054 8.485 5.054 4.687 0 8.486-2.263 8.486-5.054a3.08 3.08 0 00-.078-.689c5.013 1.57 8.65 6.251 8.65 11.781V185H16.486v-1.534c0-5.598 3.726-10.325 8.834-11.837-.06.243-.091.492-.091.745z" - /> - - <path - fill={PRIMARY_DARKER} - d="M30.392 162.565a3.257 3.257 0 006.475-.015c.014-.132-.133-.35-.317-.35h-5.821c-.185 0-.356.202-.337.365z" - opacity="0.24" - /> - - <path - fill={PRIMARY_DARKER} - fillRule="evenodd" - d="M31.571 159.286c0 .757.921 1.371 2.057 1.371 1.137 0 2.058-.614 2.058-1.371" - clipRule="evenodd" - opacity="0.24" - /> - - <path - fill={PRIMARY_DARKER} - d="M29.172 157.229a1.029 1.029 0 10-.001-2.058 1.029 1.029 0 000 2.058zM38.086 157.229a1.029 1.029 0 10-.001-2.058 1.029 1.029 0 000 2.058zM26.708 153.999c.671-.945 2.511-1.474 4.096-1.085a.343.343 0 10.164-.666c-1.84-.452-3.971.161-4.819 1.353a.343.343 0 00.56.398zM40.549 153.999c-.671-.945-2.511-1.474-4.096-1.085a.343.343 0 11-.163-.666c1.84-.452 3.97.161 4.818 1.353a.343.343 0 01-.559.398z" - /> - - <mask id="mask3" width="46" height="48" x="11" y="137" maskUnits="userSpaceOnUse"> - <path - fill="#fff" - d="M56.257 137v48h-5.486v-1.543c0-6.817-5.526-12.343-12.342-12.343h-.686v-3.152a9.606 9.606 0 005.45-7.842 2.058 2.058 0 001.75-2.034v-2.229a2.059 2.059 0 00-1.714-2.029v-1.057a9.566 9.566 0 00-.796-3.831c-1.701-2.854-16.122-2.717-17.597-.028a9.567 9.567 0 00-.807 3.859v1.057a2.059 2.059 0 00-1.715 2.029v2.229c0 1.031.76 1.886 1.75 2.034a9.606 9.606 0 005.45 7.842v3.152h-.685c-6.749 0-12.233 5.416-12.342 12.139l-.001.204V185H11v-48h45.257z" - /> - </mask> - <g mask="url(#mask3)"> - <path - fill={PRIMARY_DARKER} - fillRule="evenodd" - d="M32.117 137.343h3.194a6.857 6.857 0 016.699 5.389l1.561 7.125H23.857l1.562-7.125a6.857 6.857 0 016.698-5.389z" - clipRule="evenodd" - /> - - <path - fill={PRIMARY_DARKER} - d="M33.629 161.857c11.55 0 20.914-4.413 20.914-9.857 0-5.444-9.364-9.857-20.914-9.857-11.551 0-20.915 4.413-20.915 9.857 0 5.444 9.364 9.857 20.915 9.857z" - /> - - <path - fill={PRIMARY_DARK} - d="M33.629 155.343c5.87 0 10.628-1.919 10.628-4.286 0-2.367-4.758-4.286-10.628-4.286S23 148.69 23 151.057c0 2.367 4.759 4.286 10.629 4.286z" - /> - </g> - <path - fill={PRIMARY_DARKER} - d="M32.208 156.286c0 1.663-1.414 3.012-3.771 3.012h-.471c-2.357 0-3.3-1.35-3.3-3.012 0-1.664.22-3.013 3.52-3.013h.502c3.3 0 3.52 1.349 3.52 3.013zM42.763 156.286c0 1.663-1.414 3.012-3.771 3.012h-.472c-2.356 0-3.3-1.35-3.3-3.012 0-1.664.22-3.013 3.52-3.013h.503c3.299 0 3.52 1.349 3.52 3.013z" - opacity="0.7" - /> - - <path - fill={PRIMARY_DARKER} - d="M28.689 152.771c3.711 0 4.022 1.737 4.022 3.515 0 2.069-1.757 3.514-4.274 3.514h-.471c-2.381 0-3.802-1.314-3.802-3.514 0-1.778.31-3.515 4.022-3.515h.503zm0 1.004h-.503c-2.957 0-3.016 1.064-3.017 2.427v.084c0 1.145.485 2.51 2.797 2.51h.471c1.925 0 3.268-1.032 3.268-2.51v-.126-.123c-.01-1.283-.18-2.262-3.016-2.262zM39.243 152.771c3.711 0 4.022 1.737 4.022 3.515 0 2.069-1.757 3.514-4.274 3.514h-.471c-2.38 0-3.802-1.314-3.802-3.514 0-1.778.31-3.515 4.022-3.515h.503zm0 1.004h-.503c-2.957 0-3.016 1.064-3.017 2.427v.084c0 1.145.486 2.51 2.797 2.51h.471c1.925 0 3.269-1.032 3.269-2.51v-.126-.123c-.011-1.283-.181-2.262-3.017-2.262z" - /> - - <path - fill={PRIMARY_DARKER} - d="M23.16 153.776c.117-.118 1.404-1.005 5.026-1.005 3.037 0 3.68.323 4.652.81l.072.036c.067.024.413.144.818.158.368-.017.684-.119.776-.152 1.11-.552 2.198-.852 4.739-.852 3.622 0 4.908.887 5.026 1.005.278 0 .503.224.503.502v.502a.502.502 0 01-.503.502s-1.005 0-1.005.502-.503-.727-.503-1.004v-.489c-.613-.24-1.71-.515-3.518-.515-2.014 0-3.018.193-3.878.556l.01.024-.428.173.427.172-.377.931-.466-.188a2.235 2.235 0 00-.256-.079c-.347-.087-.704-.114-1.02-.048a1.368 1.368 0 00-.321.11l-.45.225-.45-.898.45-.225h.001l-.43-.174.014-.034c-.743-.354-1.427-.545-3.883-.545-1.808 0-2.905.275-3.518.515v.489c0 .277-.503 1.506-.503 1.004s-1.005-.502-1.005-.502a.503.503 0 01-.503-.502v-.502c0-.278.225-.502.503-.502z" - /> - </g> - </Box> - ); -} - -export default memo(BookingIllustration); diff --git a/src/assets/illustrations/check-in-illustration.tsx b/src/assets/illustrations/check-in-illustration.tsx deleted file mode 100644 index 139bf68588950dd45ebb6027f944cb3deb4e88e9..0000000000000000000000000000000000000000 --- a/src/assets/illustrations/check-in-illustration.tsx +++ /dev/null @@ -1,96 +0,0 @@ -import { memo } from 'react'; - -import { useTheme } from '@mui/material/styles'; -import Box, { BoxProps } from '@mui/material/Box'; - -// ---------------------------------------------------------------------- - -function CheckInIllustration({ ...other }: BoxProps) { - const theme = useTheme(); - - const PRIMARY_LIGHTER = theme.palette.primary.lighter; - - const PRIMARY_LIGHT = theme.palette.primary.light; - - const PRIMARY_MAIN = theme.palette.primary.main; - - const PRIMARY_DARK = theme.palette.primary.dark; - - const PRIMARY_DARKER = theme.palette.primary.darker; - - return ( - <Box - component="svg" - width="100%" - height="100%" - viewBox="0 0 200 200" - xmlns="http://www.w3.org/2000/svg" - {...other} - > - <path - fill="url(#a)" - d="M134.926 133.612c-1.2-3.2-5.8-4.1-8.1-1.6-1.3-7.8 5-32.3-8.9-32-72.8-.5-48.2-8-52.4 77.7-.1 4.8 4.1 9 8.9 8.9h43.5c14 .4 7.6-24.5 8.9-32.4 2.9 3.2 8.7.8 8.5-3.5-.1-1 .4-16.5-.4-17.1zm-2.5 18.3h-5.6v-17.4h5.6v17.4z" - /> - - <path - fill="url(#b)" - d="M74.426 190.212c.1 5.9-9.2 5.9-9.1 0-.1-5.9 9.2-5.9 9.1 0zm46.4-4.5c-5.9-.1-5.9 9.2 0 9.1 5.9.1 5.9-9.2 0-9.1z" - /> - - <path - fill={PRIMARY_DARK} - d="M73.126 99.513h2.5v87.499h-2.5v-87.5zm7.1 87.399h2.5v-87.4h-2.5v87.4zm7 0h2.5v-87.4h-2.5v87.4zm7.1 0h2.5v-87.4h-2.5v87.4zm7 0h2.5v-87.4h-2.5v87.4zm7.1 0h2.5v-87.4h-2.5v87.4zm7-87.4v87.5h2.5v-87.5h-2.5z" - /> - - <path - fill={PRIMARY_MAIN} - d="M140.026 60.912l-1.8 6.7c-3.3-.9-7.3-.7-10.6.3.2-3.2 0-6.3-.6-9.4l-17.3-7.5c-2 14.2 1.4 21.6 7.4 32.8l-10.3 4.8c-1.7 4.1-4.1 4-7.1-.2-6.3 8.4-15.3-6.8-24.7-.3l-1.5-6.6-6.2.2c-5-10.2-13-36.6-1.2-43.9 0 0 0 .1.1.1 3-2 6.6-3.4 10.1-4.4l8.5 10.6c5.6-11.1 7.4-14.8 21.6-12.8l28.6 16.6c4.4 2.3 6.7 8 5 13z" - /> - - <path - fill={PRIMARY_LIGHTER} - fillRule="evenodd" - d="M107.626 52.712h.1v2.3h-.1v12.4c0 1-.9 1.9-1.9 1.9-1.7-.5-9.1 1.4-8.9-1.9v-18.1c0-1 .9-1.9 1.9-1.9.3 0 7.7-.1 7.7.1 1.9.6 1.1 3.8 1.2 5.2zm-4 .1c0 2.2-3.3 2.2-3.3 0 0-2.1 3.3-2.1 3.3 0z" - clipRule="evenodd" - /> - - <path - fill={PRIMARY_DARKER} - d="M130.826 91.813l-12.9 56.5c1.3 1.2 6.9 11.4 6.9 13.2-1.8 5.8-12.9 0-15.9-3.3-1.6-6.9 6-48.8 5.5-56.6-3.9-.3-10.4.4-14.1.8-6.6.2-15.7-1.3-22.4-.8l-.2 1.3 5.4 45.2h-.2c.3.2.7.5 1.1.8 0 1.9 1.5 7.7.3 9.4-3.4 3.7-9.2 5.9-13.5 5.7-1.7-.1-2.9-2-2.2-3.6.1-.1 6.1-12 6.3-11.5h-.4l-13-57.1c-1-4.3 1.5-9 5.7-10.4 0 .1.1.2.1.3l6.2-.2 1.5 6.6c.4-.2.7-.3 1.1-.5.9-.3 1.8-.6 2.7-.8 7.4-2.8 14.8 9.4 20.9 1.5 3 4.2 5.4 4.3 7.1.2l7.6-3.5c.6-1 1.5-1.9 2.4-2.5.2.5.5 1 .8 1.3 4.6-.3 8.2-1.4 12.5 2.3.9 1.7 1.1 3.8.7 5.7zm-58.1-68.2c0-.8.1-1.5.2-2.2-1-.9-.2-5.2 1.3-3.3.5-.9 1.1-1.6 1.9-2.3 2.8 6.1 11.8 2.8 16.5 2.1 1.5 2.3 2 5.4 1.4 8.1 9.6-28.2-30.8-27.7-21.1-.4-.1-.6-.2-1.3-.2-2z" - /> - - <path - fill="#FBCDBE" - d="M84.826 43.913l-8.5-10.6c-.1 0-.2.1-.3.1l-.2-2.3c-2.4-2.4-3.6-6.3-2.8-9.7-1-.9-.2-5.2 1.3-3.3.5-.9 1.1-1.6 1.9-2.3 2.8 6.1 11.8 2.8 16.5 2.1 2.9 4.3 1.8 10.9-2.2 14l.2 1.7c-.2-.1-5.9 10.3-5.9 10.3zm42.8 23.9v-.7c-.2 3.4-1 6.8-2.2 10.1-1.4.3-7.5-.3-8.4 1.1-1.5 1.4-.2 5.3 1.5 5.9 4.5-1.6 7.7-1.2 11.7 1.9l7.2-18.6c-3.2-.8-6.8-.6-9.8.3zm-20.2-9.8c-3.8-2.8-20.3 9.5-25.7 10.2-2.6 3.7-1.8 7.4 1 11.2 5.4-2.3 11.6-6.5 17.8-11.4l5.8-1.5c3.9-.9 4.7-6.7 1.1-8.5z" - /> - - <defs> - <linearGradient - id="a" - x1="64.751" - x2="64.751" - y1="99.643" - y2="186.617" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_LIGHT} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - - <linearGradient - id="b" - x1="95.286" - x2="95.286" - y1="280.421" - y2="185.693" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_LIGHT} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - </defs> - </Box> - ); -} - -export default memo(CheckInIllustration); diff --git a/src/assets/illustrations/check-out-illustration.tsx b/src/assets/illustrations/check-out-illustration.tsx deleted file mode 100644 index b3cdeaee8f5612237bc24585777a9055b9a13bff..0000000000000000000000000000000000000000 --- a/src/assets/illustrations/check-out-illustration.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import { memo } from 'react'; - -import { useTheme } from '@mui/material/styles'; -import Box, { BoxProps } from '@mui/material/Box'; - -// ---------------------------------------------------------------------- - -function CheckoutIllustration({ ...other }: BoxProps) { - const theme = useTheme(); - - const PRIMARY_LIGHT = theme.palette.primary.light; - - const PRIMARY_MAIN = theme.palette.primary.main; - - const PRIMARY_DARK = theme.palette.primary.dark; - - const PRIMARY_DARKER = theme.palette.primary.darker; - - return ( - <Box - component="svg" - width="100%" - height="100%" - viewBox="0 0 200 200" - xmlns="http://www.w3.org/2000/svg" - {...other} - > - <path - fill="url(#a)" - d="M85.6 134.7c-3.7-5.5-33-10.5-35.3-12 0 0-5.4-2-7.8 3.4-2.4 5.4-16.6 49.8-16.6 49.8s27.8 14.9 36 16.5c3.3.4 6.9-1.1 9.7-2.9l15.8-47.2c-.1 0 2.1-5.2-1.8-7.6z" - /> - <path - fill={PRIMARY_DARKER} - d="M85.6 134.7c2.6 4.5-17.3 52.2-17.2 55.4v.1c2.5 4-4.6 6.9-5.6 2.3-.3 0-.6 0-.9-.1.2-.1.5-.2.8-.4-.1-1.8 1.2-3.2 2.9-3.3 1.6-4.7 17-51 17.3-51.6 0 0-.5-3.5-1.8-5.7 1.8.7 3.4 1.7 4.5 3.3zm2.4-29.4c-.3.5-17.4-7.9-14.5.4l-8 21.2c1 .3 2 .6 3 .8 1.7-5.2 6.9-20.9 7.4-22.2.5-1.5 6 .8 8.1 1.4 1.6.4 1.1 2 1.1 2l-7.4 21.4c1 .3 1.8.5 2.5.7l6.7-21.2c4.2-4.2 1.1-4.5 1.1-4.5zm-61.9 70.5c-4 0-4 6.2 0 6.2s4-6.2 0-6.2zm30.1 13c-4 0-4 6.2 0 6.2s4-6.2 0-6.2zm116.3 5.4v.2h-19.1v-7.7c6.1.3 19.4-2.3 19.1 7.5zm-65-11.4l-9.8-6.3-4.1 6.5 16.1 10.3c2.3-3.5 1.4-8.3-2.2-10.5zm56.3-2.1L156.7 94l-13.2-24.5-22.5 3.9c.8 15.9-1.6 50.8-3.2 66.8l-16.1 29.9 7.7 5.5 21.9-28.5 8.7-28.3 13.6 62.5 10.2-.6z" - /> - <path - fill={PRIMARY_LIGHT} - d="M138 57.5s4.6-5.5-.5-10.6c0 0-6.5-10.5-8.4-12.4 0 0 0 .2-10.9.6l-.2.2c12.8 2.3 18 22.9 12 38.7l14-3.5-6-13z" - /> - <path - fill={PRIMARY_MAIN} - d="M161.4 93.8c2.4 8.2 3.9 14.1 3.9 14.1s-2.9.2-7.4.9L156.7 94c-4.4-7.8-15.8-28.3-18.8-36.4 0 0 4.7-5.5-.4-10.6 0 0-6.4-10.5-8.4-12.4 2.1-.3 4.4 1.5 6.8 4.1v-.2c10.1 13.8 23.7 37.9 33.3 51.8l-7.8 3.5zm-38.6-57c-6.8-4.5-16.7 2.2-15 10.2L80.7 92.9l8.8 3.6 23.8-31.3c.9 12.1-9.7 32.4-16.2 36.9-4.6 4.4 2 12.3 5.5 13.7v.1s7.7 3.6 17 3.5c.4-5.3 1.9-21.2 1.5-26.2 11.8-18.9 18.1-42.4 1.7-56.4z" - /> - <path - fill={PRIMARY_DARKER} - d="M109.6 29.8c2.1-.4 11.1 1.4 13.3 1.8 1.1.1 2.1-.7 2-1.8 12.4.5 8.6-.2 9.2-10.7h3.1c.2-4.6-3.1-8.2-7-10.2-7.7-8.4-22.8-2-22.5 9.3.5 1.6-1.5 12 1.9 11.6z" - /> - <path - fill="#FBCDBE" - d="M154.9 181.2l6.2-.4-.2 5.8h-6v-5.4zM99 177.3l5.2 3.3 4.6-5.5-5.8-4.1-4 6.3zM80.7 92.9l.9-1.6-5.2 6.4c-10 9.6 11.4 15.2 7.6 2.1l3.8-4-7.1-2.9zm95.5 4.9c-1-2.3-6.9-7.5-8.4-9.7l1.4 2.2-6.9 3.1 4 3.9c-3.5 9.4 12.5 10.2 9.9.5zm-52.9-80.6l-.7 2h-.7c0 3.9 1.9 7.5 3.1 10.3 5-.6 8.7-5.2 8.4-10.3h-10l-.1-2z" - /> - <defs> - <linearGradient - id="a" - x1="25.9" - x2="25.9" - y1="122.338" - y2="192.465" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_LIGHT} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - </defs> - </Box> - ); -} - -export default memo(CheckoutIllustration); diff --git a/src/assets/illustrations/coming-soon-illustration.tsx b/src/assets/illustrations/coming-soon-illustration.tsx deleted file mode 100644 index 5082ddf537327e3e11b919b622d523911c83b086..0000000000000000000000000000000000000000 --- a/src/assets/illustrations/coming-soon-illustration.tsx +++ /dev/null @@ -1,118 +0,0 @@ -import { memo } from 'react'; - -import { useTheme } from '@mui/material/styles'; -import Box, { BoxProps } from '@mui/material/Box'; - -import BackgroundShape from './background-shape'; - -// ---------------------------------------------------------------------- - -function ComingSoonIllustration({ ...other }: BoxProps) { - const theme = useTheme(); - - const PRIMARY_LIGHT = theme.palette.primary.light; - - const PRIMARY_MAIN = theme.palette.primary.main; - - const PRIMARY_DARK = theme.palette.primary.dark; - - const PRIMARY_DARKER = theme.palette.primary.darker; - - return ( - <Box - component="svg" - width="100%" - height="100%" - viewBox="0 0 480 360" - xmlns="http://www.w3.org/2000/svg" - {...other} - > - <BackgroundShape /> - - <image href="/assets/illustrations/characters/character_1.png" height="300" x="320" y="30" /> - - <path - fill="url(#paint0_linear_1_79)" - d="M290.378 112.9v127.8c0 .8-.2 1.6-.5 2.4-.3.8-.8 1.4-1.3 2-.6.6-1.3 1-2 1.3-.8.3-1.6.5-2.4.5h-166.7c-.8 0-1.7-.1-2.4-.5s-1.4-.8-2-1.4c-.6-.6-1-1.4-1.2-2.1-.2-.8-.3-1.6-.2-2.5V112.6c-.4-3.1 2.3-5.9 5.8-5.9h166.7c.8 0 1.6.2 2.4.5.8.3 1.4.8 2 1.3.6.6 1 1.3 1.4 2 .2.7.4 1.6.4 2.4z" - /> - - <path - fill={PRIMARY_DARKER} - d="M210.879 284.9c62.5 0 113.2-4.4 113.2-9.8s-50.7-9.8-113.2-9.8-113.2 4.4-113.2 9.8 50.7 9.8 113.2 9.8z" - opacity="0.24" - /> - - <path fill={PRIMARY_DARK} d="M58.778 79.4l14.6-6 80.2 7.5v7.6l-94.8.3v-9.4z" /> - <path fill={PRIMARY_MAIN} d="M85.279 71h-14.4v199.5h14.4V71z" /> - <path - fill="#fff" - d="M182.079 239.7h-5.1c-.6 0-1 .4-1 1V289c0 .6.4 1 1 1h5.2c.6 0 1-.4 1-1v-48.3c-.1-.5-.5-1-1.1-1zM130.978 239.7h-5.2c-.6 0-1 .4-1 1v46.7c0 .6.4 1 1 1h5.2c.6 0 1-.4 1-1v-46.6c0-.6-.4-1.1-1-1.1z" - /> - - <path - fill="#C4CDD5" - d="M175.779 266h7.2v-24.7h-7.4l.2 24.7zm-50.9 0h7.2v-24.7h-7.4l.2 24.7z" - opacity="0.5" - /> - - <path - fill={PRIMARY_LIGHT} - d="M277.778 126h-56.9c-1.7 0-3 1.3-3 3v83.9c0 1.7 1.3 3 3 3h56.9c1.7 0 3-1.3 3-3V129c0-1.7-1.4-3-3-3zm-70.1 0c1.7 0 3 1.3 3 3v83.9c0 1.7-1.3 3-3 3h-56.9c-1.7 0-3-1.3-3-3v-.3c0-1.7 1.3-3 3-3h29.5c1.7 0 3-1.3 3-3V129c0-1.7 1.3-3 3-3h21.4z" - opacity="0.24" - /> - - <path - fill={PRIMARY_DARKER} - d="M182.079 119.7h-56.9c-1.7 0-3 1.3-3 3V205c0 1.7 1.3 3 3 3h56.9c1.7 0 3-1.3 3-3v-82.3c0-1.6-1.4-3-3-3z" - /> - - <path - fill="#fff" - d="M149.979 88.4h1v25c9.1-.1 20 1.1 32.3 5 .5.2.8.7.6 1.3-.2.5-.7.8-1.3.6-17.2-5.6-31.8-5.6-42.1-4.2-5.1.7-9.2 1.7-12 2.6-1.4.4-2.4.8-3.2 1.1-.4.1-.6.2-.8.3-.1 0-.2.1-.2.1-.5.2-1.1 0-1.3-.5-.2-.5 0-1.1.5-1.3l.5 1-.4-.9h.1c.1 0 .1-.1.2-.1.2-.1.5-.2.9-.4.8-.3 1.9-.7 3.3-1.1 2.9-.9 7-2 12.3-2.7 2.9-.4 6.1-.7 9.7-.8v-25h-.1z" - /> - - <path - fill={PRIMARY_DARK} - d="M165.378 125.4h-37c-.9 0-1.6.7-1.6 1.6 0 .9.7 1.6 1.6 1.6h37c.9 0 1.6-.7 1.6-1.6-.1-.9-.8-1.6-1.6-1.6zm-17.2 5.6h-20.5c-.5 0-.9.4-.9.9s.4.9.9.9h20.5c.5 0 .9-.4.9-.9s-.4-.9-.9-.9zm9.3 4.4h-20.5c-.5 0-.9.4-.9.9s.4.9.9.9h20.5c.5 0 .9-.4.9-.9s-.4-.9-.9-.9zm-3.9-4.4h-1.5c-.5 0-.9.4-.9.9s.4.9.9.9h1.5c.5 0 .9-.4.9-.9s-.4-.9-.9-.9zm4.7 0h-1.5c-.5 0-.9.4-.9.9s.4.9.9.9h1.5c.5 0 .9-.4.9-.9s-.4-.9-.9-.9zm-26.7 4.4h-1.5c-.5 0-.9.4-.9.9s.4.9.9.9h1.5c.5 0 .9-.4.9-.9s-.4-.9-.9-.9zm31.5-4.4h-1.5c-.5 0-.9.4-.9.9s.4.9.9.9h1.5c.5 0 .9-.4.9-.9-.1-.5-.5-.9-.9-.9z" - /> - - <path - fill={PRIMARY_DARKER} - d="M178.379 224c0-1.1-.9-2-2-2h-55.5c-1.1 0-2 .9-2 2v5c0 1.1.9 2 2 2h55.5c1.1 0 2-.9 2-2v-5z" - opacity="0.48" - /> - - <path fill={PRIMARY_MAIN} d="M188.179 244h-70v18.2h70V244z" /> - <path - fill="#fff" - d="M118.479 243.3c-1.1 0-2 .9-2 2v15.8c0 1.1.9 2 2 2l69.7-.1c1.1 0 2-.9 2-2l-.4-15.6c0-1.1-.9-2-2-2l-69.3-.1zm-.1 4.5c0-1.1.9-2 2-2h5.2c1.7 0 2.6 1.9 1.6 3.2l-8.4 11.2c0 .1-.1.1-.2.1s-.2-.1-.2-.2v-12.3zm17.4-1.2c.4-.5 1-.8 1.6-.8h2.2c1.6 0 2.6 1.9 1.6 3.2l-7.8 10.5c-.4.5-1 .8-1.6.8h-2.2c-1.6 0-2.6-1.9-1.6-3.2l7.8-10.5zm13.9 0c.4-.5 1-.8 1.6-.8h2.2c1.6 0 2.6 1.9 1.6 3.2l-7.8 10.5c-.4.5-1 .8-1.6.8h-2.1c-1.6 0-2.6-1.9-1.6-3.2l7.7-10.5zm14.1 0c.4-.5 1-.8 1.6-.8h2.2c1.7 0 2.6 1.9 1.6 3.2l-7.9 10.5c-.4.5-1 .8-1.6.8h-2.1c-1.6 0-2.6-1.9-1.6-3.2l7.8-10.5zm13.9 0c.4-.5 1-.8 1.6-.8h2.2c1.6 0 2.6 1.9 1.6 3.2l-7.8 10.5c-.4.5-1 .8-1.6.8h-2.1c-1.6 0-2.6-1.9-1.6-3.2l7.7-10.5zm9.9 11.7c0 1.1-.9 2-2 2-1.6 0-2.6-1.9-1.6-3.2 1.1-1.6 3.6-.7 3.6 1.2z" - /> - - <path - fill={PRIMARY_DARKER} - d="M73.579 276.7c-.1 1.2-.6 2.4-1.2 3.4-.7 1-1.6 1.9-2.6 2.5-2.3-.7-4.6-1.4-6.9-2.3-1.2-.4-2.3-.9-3.5-1.4-6.5-2.7-12.6-6.2-18.4-10.3-.4-1.1-.7-2.2-.9-3.4-.2-1.1 0-2.3.4-3.4.5-1.1 1.2-2 2.2-2.6 1-.5 1.9-1 2.8-1.6 1.9-1.6 2-4.6 1-6.9-1-2.3-2.8-4.2-4.1-6.3-1.3-2.1-2.2-4.8-1.1-7.1.7-1.4 2-2.5 2.9-3.9 1.6-2.6 1.1-6 .5-9l-2.4-12.3c-.5-2.7-.9-5.8 1.1-7.7 2.7-2.5 7.1-.5 9.7 2 3.2 2.9 5.5 6.5 6.7 10.6 2.5 8.9-1.9 18.9 1.6 27.5 2.3 5.8 7.8 9.7 10.5 15.3 2.6 5.4 2.5 11.3 1.7 16.9z" - /> - - <path - fill={PRIMARY_DARK} - d="M85.278 250.7c-1.1 2.3-1.9 5.1-.6 7.2.7.8 1.4 1.7 2.2 2.4 2.9 3.5 1.4 8.8-.9 12.8-.7 1-1.1 2.1-1.3 3.3-.1 1.9 1.3 3.5 2.4 5 1.1 1.5 2 3.4 1.2 5-8.7-1-17.2-3.1-25.4-6-1.2-.4-2.3-.9-3.5-1.4-.2-2.6.6-5.4 1.7-7.9 1.2-2.7 3-5.5 3.4-8.5.4-2.7-.1-5.3.8-8 .8-2.7 2.2-5.1 4.1-7.2 1.9-2 4.2-3.6 6.9-4.6 1.5-.5 3.2-.9 4.3-2 .8-.8 1.4-1.8 1.8-2.9 2-4.4 4.1-8.9 6.1-13.4.9-2 2.2-4.3 4.4-4.7 1.7-.3 3.4.9 4.3 2.4.8 1.6 1 3.4.8 5.1-1 8.9-8.8 15.4-12.7 23.4z" - /> - - <defs> - <linearGradient - id="paint0_linear_1_79" - x1="296.527" - x2="105.126" - y1="186.371" - y2="167.19" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_MAIN} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - </defs> - </Box> - ); -} - -export default memo(ComingSoonIllustration); diff --git a/src/assets/illustrations/forbidden-illustration.tsx b/src/assets/illustrations/forbidden-illustration.tsx deleted file mode 100644 index 316a8bb4c99a54350560de38779bb127a485a7ac..0000000000000000000000000000000000000000 --- a/src/assets/illustrations/forbidden-illustration.tsx +++ /dev/null @@ -1,88 +0,0 @@ -import { memo } from 'react'; - -import { useTheme } from '@mui/material/styles'; -import Box, { BoxProps } from '@mui/material/Box'; - -import BackgroundShape from './background-shape'; - -// ---------------------------------------------------------------------- - -function ForbiddenIllustration({ ...other }: BoxProps) { - const theme = useTheme(); - - const PRIMARY_LIGHT = theme.palette.primary.light; - - const PRIMARY_MAIN = theme.palette.primary.main; - - const PRIMARY_DARK = theme.palette.primary.dark; - - const PRIMARY_DARKER = theme.palette.primary.darker; - - return ( - <Box - component="svg" - width="100%" - height="100%" - viewBox="0 0 480 360" - xmlns="http://www.w3.org/2000/svg" - {...other} - > - <BackgroundShape /> - - <image href="/assets/illustrations/characters/character_4.png" height="300" x="220" y="30" /> - - <path - fill={PRIMARY_MAIN} - d="M425.545 119.2c0-5-4.6-9-9.6-8.2-2-3.7-6-6-10.2-5.9 4.3-21.4-30-21.4-25.7 0-8.7-.8-15.1 9.4-10.4 16.8 2.1 3.5 5.9 5.6 10 5.5h38.7v-.1c4.1-.4 7.2-3.9 7.2-8.1zm-321.3 81.8c.1-4.2-4.1-7.8-8.2-7-1.7-3.2-5.1-5.1-8.8-5 3.8-18.4-25.8-18.4-22 0-7.4-.7-12.9 8.1-8.9 14.4 1.8 3 5.1 4.8 8.6 4.7h33.2v-.1c3.4-.4 6.1-3.4 6.1-7z" - opacity="0.08" - /> - - <path - fill="#FFAB00" - d="M111.045 142.2c58.7-1 58.6-88.3 0-89.2-58.6 1-58.6 88.3 0 89.2z" - opacity="0.12" - /> - - <path fill="#FFD666" d="M111.045 121c30.8-.5 30.8-46.3 0-46.8-30.8.5-30.8 46.3 0 46.8z" /> - - <path - fill="#FBCDBE" - d="M278.045 250.1c-4.6-6.5-14 5.1-18.1 7.2-.6-2.1 1.5-41.3-1.4-41.8-2.8-3-8.1-.7-8 3.3.2-4 .5-11.3-5.6-10.2-4.8.6-3.8 6.9-3.8 10.2.1-6.1-9.5-6.1-9.4 0v5.6c.2-4.2-5.7-6.4-8.3-3-2.6-.2-.4 41.8-1.1 43.3-.2 10 8.7 19 18.8 18.7 6.1.4 12.6-1.2 16.8-5.9l19.7-21c1.7-1.6 1.8-4.5.4-6.4z" - /> - - <path - fill="#000" - fillOpacity="0.24" - fillRule="evenodd" - d="M248.745 212.3v32.8h1.9v-31.9c.1-2.9-2.8-5.2-5.6-4.6 2 0 3.7 1.7 3.7 3.7zm-9.4 5.6v27.2h1.9v-26.3c.1-2.8-2.8-5.2-5.5-4.6 1.9 0 3.6 1.8 3.6 3.7zm-9.4 27.2v-21.6c.1-2-1.7-3.7-3.7-3.8 2.8-.6 5.6 1.8 5.5 4.6V245h-1.8v.1z" - clipRule="evenodd" - /> - - <path - fill={PRIMARY_DARKER} - d="M244.945 189.8c-67.6 1.3-77 97-11 111.4 81 11.8 92.7-107.3 11-111.4zm-48.5 56.2c-1-40.4 49.8-63.8 79.9-36.9l-68.3 68.3c-7.5-8.7-11.6-19.9-11.6-31.4zm48.5 48.5c-11.5 0-22.7-4.1-31.4-11.6l68.3-68.3c27 30.1 3.5 80.9-36.9 79.9z" - /> - - <path - fill="url(#paint0_linear_1_129)" - d="M169.245 261h-11.3v-66.6c0-4.5-1.5-5.6-5.6-5.6-5.3.3-13.8-1.4-17.1 4l-55 68.3c-2.7 3.3-1.8 8.8-2 12.8 0 4.1 1.5 5.6 5.6 5.6h54.7v21.7c-.9 7.9 9.1 5.2 13.7 5.6 4.1 0 5.6-1.5 5.6-5.6v-21.7h11.4c4.4 0 5.6-1.5 5.6-5.6-.3-4.8 2-13.8-5.6-12.9zm-30.8 0h-36l36-44.4V261zm263.9 12.1c1.9 44.8-78.7 46-78 1.2h19.3c-.8 15.3 18.3 21.4 30.1 15.5 12.7-6 12.3-29.1-1-34-5.6-2.8-16.6-2-23.1-2.1v-15.1c6.3-.2 17.6.9 22.7-2.3 11.6-5.5 11.9-25.4.9-31.4-10.8-5.9-29 .1-28.2 14.5h-19.4c-.5-28.1 35.4-38.5 57-28.2 23.4 9 24.1 45.5-.2 54.6 12.3 3.9 20.1 14.6 19.9 27.3z" - /> - - <defs> - <linearGradient - id="paint0_linear_1_129" - x1="78.245" - x2="78.245" - y1="187.309" - y2="307.306" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_LIGHT} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - </defs> - </Box> - ); -} - -export default memo(ForbiddenIllustration); diff --git a/src/assets/illustrations/index.ts b/src/assets/illustrations/index.ts deleted file mode 100644 index 55ae91d0edf251e82838595f4b59ccfe0ee85d9a..0000000000000000000000000000000000000000 --- a/src/assets/illustrations/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -export { default as AvatarShape } from './avatar-shape'; - -export { default as SeoIllustration } from './seo-illustration'; -export { default as UploadIllustration } from './upload-illustration'; -export { default as BookingIllustration } from './booking-illustration'; -export { default as CheckInIllustration } from './check-in-illustration'; -export { default as CheckoutIllustration } from './check-out-illustration'; -export { default as ForbiddenIllustration } from './forbidden-illustration'; -export { default as MotivationIllustration } from './motivation-illustration'; -export { default as SeverErrorIllustration } from './sever-error-illustration'; -export { default as ComingSoonIllustration } from './coming-soon-illustration'; -export { default as MaintenanceIllustration } from './maintenance-illustration'; -export { default as PageNotFoundIllustration } from './page-not-found-illustration'; -export { default as OrderCompleteIllustration } from './order-complete-illustration'; -export { default as UpgradeStorageIllustration } from './upgrade-storage-illustration'; diff --git a/src/assets/illustrations/maintenance-illustration.tsx b/src/assets/illustrations/maintenance-illustration.tsx deleted file mode 100644 index 7de3544f35e2acf15f6a6a74500d014c8dc9b948..0000000000000000000000000000000000000000 --- a/src/assets/illustrations/maintenance-illustration.tsx +++ /dev/null @@ -1,215 +0,0 @@ -import { memo } from 'react'; - -import { useTheme } from '@mui/material/styles'; -import Box, { BoxProps } from '@mui/material/Box'; - -import BackgroundShape from './background-shape'; - -// ---------------------------------------------------------------------- - -function MaintenanceIllustration({ ...other }: BoxProps) { - const theme = useTheme(); - - const PRIMARY_LIGHT = theme.palette.primary.light; - - const PRIMARY_MAIN = theme.palette.primary.main; - - const PRIMARY_DARK = theme.palette.primary.dark; - - const PRIMARY_DARKER = theme.palette.primary.darker; - - return ( - <Box - component="svg" - width="100%" - height="100%" - viewBox="0 0 480 360" - xmlns="http://www.w3.org/2000/svg" - {...other} - > - <BackgroundShape /> - - <path - fill={PRIMARY_MAIN} - d="M297.46 99.296l-185.934-5.29c-6.35-.18-11.526 4.158-11.526 9.693v159.882c0 5.534 5.176 9.742 11.526 9.4l185.934-10.028c5.28-.284 9.54-4.576 9.54-9.585v-144.73c0-5.012-4.26-9.194-9.54-9.342z" - opacity="0.12" - /> - - <path - fill="#fff" - d="M297.476 93.405l-180.3-5.278c-6.157-.18-11.176 4.15-11.176 9.67v159.496c0 5.521 5.019 9.718 11.176 9.377l180.3-10.003c5.12-.284 9.251-4.565 9.251-9.563v-144.38c0-5-4.131-9.172-9.251-9.32z" - /> - - <g fill="#919EAB" opacity="0.16"> - <path d="M205.131 203.668a44.088 44.088 0 01-20.975-4.875 42.576 42.576 0 01-16.793-15.549 40.54 40.54 0 01-5.98-21.153c0-23.36 19.874-41.848 43.748-41.227 23.283.606 41.804 19.248 41.804 41.569 0 22.322-18.521 40.816-41.804 41.235zM266.304 235.213a4.461 4.461 0 01-4.271 4.417l-106.87 4.074c-2.652.107-4.808-1.842-4.808-4.341v-16.97c0-2.499 2.156-4.579 4.808-4.644l106.87-2.64a4.142 4.142 0 013.018 1.168 4.128 4.128 0 011.253 2.98v15.956z" /> - </g> - - <path - fill="#C4CDD5" - d="M186.797 136.682a1.812 1.812 0 01-.525 1.378l-1.858 1.858 16.887 16.893a2.174 2.174 0 01-3.074 3.074l-16.886-16.892-1.859 1.859a1.803 1.803 0 01-2.685-.157l-7.916-9.615a1.8 1.8 0 01.14-2.392l5.091-5.093a1.8 1.8 0 012.392-.14l9.612 7.917c.404.32.651.797.681 1.31zM209.727 165.24l5.441 5.443a2.174 2.174 0 01-3.074 3.075l-5.441-5.443a2.175 2.175 0 013.074-3.075z" - /> - - <path - fill="#F4F6F8" - d="M209.727 165.24l5.441 5.443a2.176 2.176 0 010 3.075l-8.515-8.518a2.172 2.172 0 013.074 0z" - /> - - <path - fill="url(#paint0_linear_1_160)" - d="M238.581 194.781l-2.399 2.399c-3.425 3.431-9.046 3.315-12.32-.318l-16.564-18.475a2.176 2.176 0 01.081-2.989l9.309-9.313a2.174 2.174 0 012.978-.091l18.552 16.422.004.004c3.646 3.243 3.812 8.907.359 12.361z" - /> - - <path - fill="url(#paint1_linear_1_160)" - d="M240.711 138.762c-.332-1.582-2.287-2.165-3.429-1.021l-7.117 7.12a3.31 3.31 0 01-4.681 0l-3.813-3.815a3.308 3.308 0 010-4.68l7.117-7.122c1.143-1.142.561-3.098-1.02-3.43-5.355-1.126-11.157.392-15.316 4.552-5.296 5.299-6.308 13.259-3.037 19.573l-40.33 33.142a5.766 5.766 0 00-.516 8.61l6.289 6.291a5.761 5.761 0 008.607-.516l33.13-40.345c6.312 3.272 14.268 2.26 19.566-3.038 4.159-4.16 5.675-9.964 4.55-15.321zm-61.338 50.587a2.174 2.174 0 110-4.349 2.174 2.174 0 010 4.349z" - /> - - <path - fill="#919EAB" - d="M186.797 136.682a1.812 1.812 0 01-.525 1.378l-1.858 1.858 16.887 16.893a2.174 2.174 0 010 3.074l-29.734-29.744 2.545-2.546a1.8 1.8 0 012.391-.14l9.613 7.917c.404.32.651.797.681 1.31z" - /> - - <path - fill={PRIMARY_DARKER} - d="M238.581 194.781l-1.199 1.199-25.289-25.298 4.595-4.597a2.173 2.173 0 012.977-.091l18.553 16.422.004.004c3.645 3.243 3.812 8.907.359 12.361z" - opacity="0.24" - /> - - <path - fill={PRIMARY_DARKER} - d="M236.161 154.083c-5.298 5.298-13.254 6.31-19.566 3.038l-33.13 40.345a5.761 5.761 0 01-8.607.516l-3.145-3.145 6.122-6.125a2.174 2.174 0 103.075-3.076l42.668-42.682 1.907 1.907a3.308 3.308 0 004.68 0l7.117-7.12c1.142-1.144 3.097-.561 3.429 1.021 1.125 5.357-.392 11.161-4.55 15.321z" - opacity="0.24" - /> - - <path - fill="url(#paint2_linear_1_160)" - d="M249.706 290.362v3.306c0 .847-.436 1.546-1.011 1.622l-51.671 4.676a3.72 3.72 0 01-1.448-.087l-36.003-6.775c-.382-.1-.664-.6-.664-1.177v-3.494l38.198-4.727 4.917-2.324 4.889.703 2.887-.552 6.599 1.917 33.307 6.912z" - /> - - <path - fill="url(#paint3_linear_1_160)" - d="M249.707 290.362v3.307c0 .846-.436 1.545-1.012 1.621l-51.668 4.676a3.684 3.684 0 01-1.148-.024v-17.813l6.148-.749 4.889.703 2.886-.552 6.598 1.917 33.307 6.914z" - opacity="0.3" - /> - - <path - fill="url(#paint4_linear_1_160)" - d="M209.803 281.53l-50.89 6.74 36.707 6.904c.445.115.909.142 1.366.08l52.72-4.892-39.903-8.832z" - /> - - <path - fill="url(#paint5_linear_1_160)" - d="M228.459 287.623c0 2.42-7.627 4.302-18.157 4.79-2.657.121-5.499.156-8.447.088-14.491-.333-26.135-3.025-26.135-6.005a.81.81 0 01.02-.214h-.02l.06-.143a.834.834 0 01.054-.139l3.342-8.724 4.037-10.526 5.652-14.753 4.325-11.293 5.381-14.042c.673-1.758 1.922-2.851 3.269-2.851.183-.001.364.019.542.059 1.138.248 2.153 1.272 2.737 2.795l5.427 14.14 4.337 11.441 5.715 15.05 4.106 10.813.065.006 3.42 8.787c.147.239.27.479.27.721z" - /> - - <path - fill="#fff" - d="M224.769 278.12c-3.299 1.101-8.572 1.894-14.893 2.188-2.545.12-5.237.159-8.037.107-9.736-.184-18.178-1.434-22.67-3.137l4.039-10.527c4.728 1.062 11.316 1.778 18.644 1.888 2.368.036 4.676.006 6.874-.083 4.623-.183 8.7-.626 11.913-1.255l4.071 10.812.059.007zM214.93 252.246c-2.519.272-5.287.457-8.225.54-1.573.046-3.194.063-4.849.046a112.824 112.824 0 01-12.991-.835l4.326-11.293c2.707.214 5.623.336 8.665.353 1.071.006 2.129-.001 3.172-.022 1.907-.036 3.751-.112 5.519-.23l4.383 11.441z" - /> - - <path - fill="url(#paint6_linear_1_160)" - d="M210.302 292.411c-2.657.122-5.499.157-8.447.089-14.491-.334-26.135-3.025-26.135-6.005a.81.81 0 01.02-.214h-.02l.06-.143a.834.834 0 01.054-.139l3.342-8.724 4.037-10.526 5.652-14.752 4.325-11.293 5.381-14.042c.673-1.758 1.922-2.851 3.269-2.851.183-.001.364.019.542.059.574 3.574 1.558 9.812 2.646 17.165.546 3.702 1.118 7.687 1.677 11.753a776.568 776.568 0 012.016 15.767c.485 4.188.899 8.185 1.192 11.754.429 5.167.604 9.441.389 12.102z" - opacity="0.2" - /> - - <path fill="#FF5630" d="M118.108 103.182a2.5 2.5 0 100-5 2.5 2.5 0 000 5z" /> - - <path fill="#FFAB00" d="M126.108 103.182a2.5 2.5 0 100-5 2.5 2.5 0 000 5z" /> - - <path fill="#36B37E" d="M134.108 103.182a2.5 2.5 0 100-5 2.5 2.5 0 000 5z" /> - - <defs> - <linearGradient - id="paint0_linear_1_160" - x1="166.881" - x2="166.881" - y1="125.454" - y2="199.671" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_LIGHT} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - - <linearGradient - id="paint1_linear_1_160" - x1="166.881" - x2="166.881" - y1="125.454" - y2="199.671" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_LIGHT} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - - <linearGradient - id="paint2_linear_1_160" - x1="158.912" - x2="249.709" - y1="290.69" - y2="290.69" - gradientUnits="userSpaceOnUse" - > - <stop stopColor="#FFC444" /> - <stop offset="1" stopColor="#F36F56" /> - </linearGradient> - - <linearGradient - id="paint3_linear_1_160" - x1="226.725" - x2="225.966" - y1="290.498" - y2="292.586" - gradientUnits="userSpaceOnUse" - > - <stop stopColor="#FFC444" /> - <stop offset="0.59" stopColor="#F8924F" /> - <stop offset="1" stopColor="#F36F56" /> - </linearGradient> - - <linearGradient - id="paint4_linear_1_160" - x1="210.87" - x2="210.566" - y1="288.399" - y2="289.237" - gradientUnits="userSpaceOnUse" - > - <stop stopColor="#FFC444" /> - <stop offset="0.59" stopColor="#F8924F" /> - <stop offset="1" stopColor="#F36F56" /> - </linearGradient> - - <linearGradient - id="paint5_linear_1_160" - x1="202.974" - x2="199.672" - y1="204.073" - y2="311.415" - gradientUnits="userSpaceOnUse" - > - <stop stopColor="#FFC444" /> - <stop offset="1" stopColor="#F36F56" /> - </linearGradient> - - <linearGradient - id="paint6_linear_1_160" - x1="175.72" - x2="210.394" - y1="258.172" - y2="258.172" - gradientUnits="userSpaceOnUse" - > - <stop stopColor="#FFC444" /> - <stop offset="1" stopColor="#F36F56" /> - </linearGradient> - </defs> - - <image href="/assets/illustrations/characters/character_5.png" height="300" x="245" y="30" /> - </Box> - ); -} - -export default memo(MaintenanceIllustration); diff --git a/src/assets/illustrations/motivation-illustration.tsx b/src/assets/illustrations/motivation-illustration.tsx deleted file mode 100644 index 2a732c26b543d406ab7e2b88b60662f2abca0e95..0000000000000000000000000000000000000000 --- a/src/assets/illustrations/motivation-illustration.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import { memo } from 'react'; - -import { useTheme } from '@mui/material/styles'; -import Box, { BoxProps } from '@mui/material/Box'; - -import BackgroundShape from './background-shape'; - -// ---------------------------------------------------------------------- - -function MotivationIllustration({ ...other }: BoxProps) { - const theme = useTheme(); - - const PRIMARY_LIGHTER = theme.palette.primary.lighter; - - const PRIMARY_DARK = theme.palette.primary.dark; - - const PRIMARY_DARKER = theme.palette.primary.darker; - - return ( - <Box - component="svg" - width="100%" - height="100%" - viewBox="0 0 480 360" - xmlns="http://www.w3.org/2000/svg" - {...other} - > - <BackgroundShape /> - - <image href="/assets/illustrations/characters/character_2.png" height="300" x="322" y="30" /> - - <path - fill="url(#paint0_linear_1_43)" - d="M216.3 138v108.3c0 2.2-1.8 4-4 4H195c-2.2 0-4-1.8-4-4V138c0-2.2 1.8-4 4-4h17.3c2.2 0 4 1.8 4 4zm-55-68H144c-2.2 0-4 1.8-4 4v176.3c0 2.2 1.8 4 4 4h17.3c2.2 0 4-1.8 4-4V74c0-2.2-1.8-4-4-4zm102 93H246c-2.2 0-4 1.8-4 4v75.7c0 2.2 1.8 4 4 4h17.3c2.2 0 4-1.8 4-4V167c0-2.2-1.8-4-4-4z" - /> - - <path - fill={PRIMARY_DARKER} - d="M359.2 253.4c-1.1 3.1-2.3 6.3-3.7 9.7-5.1.1-10.1.3-15.2.4-3.3.1-6.9.2-9.6 2.1-5.2 3.6-.7 6.1-1.3 9.6-.7 4.2-4.9 5.1-9 5.1-14.1.1-27.7 4.6-41.5 7.3s-28.9 3.5-41.2-3.4c-.8-.5-1.7-1-2-2-.6-1.6.9-3.2 2.3-4.2 3.2-2.2 6.7-3.7 10.5-4.5 2.2-.5 4.5-.8 6.5-2 1.9-1.2 3.3-3.7 2.3-5.8-32.1 2-64.1 4.8-96 8.4-41.1 4.8-81.8 12.9-123 15.9h-.4c-2.9-2.9-5.5-6-7.9-9.3.2-.2.4-.5.6-.7 2-2.2 5-3.2 7.8-4.1 15.9-4.9 32.4-7.4 48.8-9.9 81.6-12.3 164.2-21.1 246.8-15.3 8.4.6 16.8 1.5 25.2 2.7z" - opacity="0.24" - /> - - <path - fill="#DFE3E8" - d="M81.7 204.2l74 11v60.7h8.5v3.6h-19.5v-2.3h8.7v-50.3l-70-13.5v49h9.7v1.7H73.6V262h8.2v-57.8h-.1z" - /> - - <path - fill="#C4CDD5" - d="M80.6 204.2l74 11v60.7h8.5v3.6h-19.5v-2.3h8.7v-50.3l-70-13.5v49H92v1.7H72.4V262h8.2v-57.8z" - /> - - <defs> - <linearGradient - id="paint0_linear_1_43" - x1="140" - x2="276.5" - y1="98" - y2="312.5" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_LIGHTER} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - </defs> - </Box> - ); -} - -export default memo(MotivationIllustration); diff --git a/src/assets/illustrations/order-complete-illustration.tsx b/src/assets/illustrations/order-complete-illustration.tsx deleted file mode 100644 index 98f90b4d22febc089baae30d3c1c078e856b12a2..0000000000000000000000000000000000000000 --- a/src/assets/illustrations/order-complete-illustration.tsx +++ /dev/null @@ -1,122 +0,0 @@ -import { memo } from 'react'; - -import { useTheme } from '@mui/material/styles'; -import Box, { BoxProps } from '@mui/material/Box'; - -import BackgroundShape from './background-shape'; - -// ---------------------------------------------------------------------- - -function OrderCompleteIllustration({ ...other }: BoxProps) { - const theme = useTheme(); - - const PRIMARY_LIGHT = theme.palette.primary.light; - - const PRIMARY_MAIN = theme.palette.primary.main; - - const PRIMARY_DARK = theme.palette.primary.dark; - - const PRIMARY_DARKER = theme.palette.primary.darker; - - return ( - <Box - component="svg" - width="100%" - height="100%" - viewBox="0 0 480 360" - xmlns="http://www.w3.org/2000/svg" - {...other} - > - <BackgroundShape /> - - <image href="/assets/illustrations/characters/character_10.png" height="300" x="300" y="30" /> - - <path - fill="#DFE3E8" - d="M253.579 162.701a5.06 5.06 0 01-4.861-3.646l-15.033-53.327a16.19 16.19 0 00-15.276-12.007h-78.471a16.174 16.174 0 00-15.325 11.995l-14.985 53.29a5.06 5.06 0 01-6.164 3.266 5.055 5.055 0 01-3.558-6l14.985-53.291a26.31 26.31 0 0125.047-19.347h78.471a26.327 26.327 0 0124.998 19.36l14.985 53.29a5.054 5.054 0 01-3.5 6.222 4.786 4.786 0 01-1.313.195z" - /> - - <path - fill="url(#paint0_linear_1_68)" - d="M244.501 272.368H113.846a10.329 10.329 0 01-10.245-9.017l-12.153-95.716H266.85l-12.153 95.716a10.3 10.3 0 01-10.196 9.017z" - /> - - <path - fill="url(#paint1_linear_1_68)" - d="M268.151 155.117H90.196c-5.631 0-10.196 4.565-10.196 10.196v.887c0 5.632 4.565 10.197 10.196 10.197h177.955c5.631 0 10.196-4.565 10.196-10.197v-.887c0-5.631-4.565-10.196-10.196-10.196z" - /> - - <path - fill={PRIMARY_DARKER} - d="M128.66 184.017h-.012a7.874 7.874 0 00-7.875 7.875v58.431a7.875 7.875 0 007.875 7.875h.012a7.875 7.875 0 007.875-7.875v-58.431a7.875 7.875 0 00-7.875-7.875zM162.335 184.017h-.012a7.875 7.875 0 00-7.875 7.875v58.431a7.875 7.875 0 007.875 7.875h.012a7.876 7.876 0 007.876-7.875v-58.431a7.875 7.875 0 00-7.876-7.875zM196.023 184.017h-.012a7.875 7.875 0 00-7.875 7.875v58.431a7.875 7.875 0 007.875 7.875h.012a7.876 7.876 0 007.876-7.875v-58.431a7.875 7.875 0 00-7.876-7.875zM229.699 184.017h-.012a7.875 7.875 0 00-7.875 7.875v58.431a7.875 7.875 0 007.875 7.875h.012a7.875 7.875 0 007.875-7.875v-58.431a7.875 7.875 0 00-7.875-7.875z" - /> - - <path - fill="url(#paint2_linear_1_68)" - d="M202.793 80h-47.239a8.762 8.762 0 00-8.762 8.762v.012a8.762 8.762 0 008.762 8.763h47.239a8.762 8.762 0 008.762-8.763v-.012A8.762 8.762 0 00202.793 80z" - /> - - <path - fill="#fff" - d="M254.289 279.577c23.907 0 43.288-19.381 43.288-43.288 0-23.908-19.381-43.289-43.288-43.289C230.381 193 211 212.381 211 236.289c0 23.907 19.381 43.288 43.289 43.288z" - /> - - <path - fill="url(#paint3_linear_1_68)" - d="M243.999 256.002l-15.183-16.746a3.15 3.15 0 01.214-4.444l4.219-3.833a3.146 3.146 0 014.444.214l9.144 10.065 25.184-23.417a3.149 3.149 0 014.444.16l3.876 4.176a3.146 3.146 0 01.843 2.255 3.148 3.148 0 01-1.004 2.189l-31.758 29.531a3.119 3.119 0 01-4.423-.15z" - /> - - <defs> - <linearGradient - id="paint0_linear_1_68" - x1="267" - x2="80.541" - y1="272" - y2="247.455" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_MAIN} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - - <linearGradient - id="paint1_linear_1_68" - x1="80" - x2="80" - y1="155.117" - y2="176.397" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_LIGHT} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - - <linearGradient - id="paint2_linear_1_68" - x1="146.792" - x2="146.792" - y1="80" - y2="97.537" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_LIGHT} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - - <linearGradient - id="paint3_linear_1_68" - x1="228" - x2="228" - y1="217" - y2="257" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_LIGHT} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - </defs> - </Box> - ); -} - -export default memo(OrderCompleteIllustration); diff --git a/src/assets/illustrations/page-not-found-illustration.tsx b/src/assets/illustrations/page-not-found-illustration.tsx deleted file mode 100644 index 8e14ce34f4b31450da9672465f4bc09250c95df7..0000000000000000000000000000000000000000 --- a/src/assets/illustrations/page-not-found-illustration.tsx +++ /dev/null @@ -1,74 +0,0 @@ -import { memo } from 'react'; - -import { useTheme } from '@mui/material/styles'; -import Box, { BoxProps } from '@mui/material/Box'; - -import BackgroundShape from './background-shape'; - -// ---------------------------------------------------------------------- - -function PageNotFoundIllustration({ ...other }: BoxProps) { - const theme = useTheme(); - - const PRIMARY_LIGHT = theme.palette.primary.light; - - const PRIMARY_MAIN = theme.palette.primary.main; - - const PRIMARY_DARK = theme.palette.primary.dark; - - const PRIMARY_DARKER = theme.palette.primary.darker; - - return ( - <Box - component="svg" - width="100%" - height="100%" - viewBox="0 0 480 360" - xmlns="http://www.w3.org/2000/svg" - {...other} - > - <BackgroundShape /> - - <image href="/assets/illustrations/characters/character_6.png" height="300" x="205" y="30" /> - - <path - fill="#FFAB00" - d="M111.1 141.2c58.7-1 58.6-88.3 0-89.2-58.6 1-58.6 88.3 0 89.2z" - opacity="0.12" - /> - - <path fill="#FFD666" d="M111.1 120c30.8-.5 30.8-46.3 0-46.8-30.8.5-30.8 46.3 0 46.8z" /> - <path - fill={PRIMARY_DARKER} - d="M244.9 182.5c82.3 1.4 82.2 123.8 0 125.2-82.3-1.5-82.3-123.8 0-125.2zm0 23.1c-51.8.9-51.8 77.9 0 78.8 51.8-.9 51.7-77.9 0-78.8z" - /> - - <path - fill="url(#paint0_linear_1_119)" - d="M175 265.6c1-8.7-12.1-4.8-17-5.6v-66.6c0-4.5-1.5-5.6-5.6-5.6-5.3.3-13.8-1.4-17.1 4l-55 68.3c-2.7 3.3-1.8 8.8-2 12.8 0 4.1 1.5 5.6 5.6 5.6h54.7v21.7c-.9 7.9 9.1 5.2 13.7 5.6 4.1 0 5.6-1.5 5.6-5.6v-21.7c13.8-1.1 18.1 4.5 17.1-12.9zm-72.5-5.6l36-44.4V260h-36zm309.1 5.6c1-8.7-12.2-4.8-17.1-5.6v-66.6c0-4.5-1.5-5.6-5.6-5.6-5.3.3-13.7-1.4-17.1 4l-55 68.3c-2.7 3.3-1.9 8.8-2 12.8 0 4.1 1.5 5.6 5.6 5.6h54.7v21.7c-.9 7.9 9.1 5.2 13.7 5.6 4.1 0 5.6-1.5 5.6-5.6v-21.7c14.1-1.1 18.2 4.5 17.2-12.9zm-72.4-5.6l36-44.4V260h-36z" - /> - - <path - fill={PRIMARY_MAIN} - d="M425.6 118.2c0-5-4.6-9-9.6-8.2-2-3.7-6-6-10.2-5.9 4.3-21.4-30-21.4-25.7 0-8.7-.8-15.1 9.4-10.4 16.8 2.1 3.5 5.9 5.6 10 5.5h38.7v-.1c4.1-.4 7.2-3.9 7.2-8.1zM104.3 200c.1-4.2-4.1-7.8-8.2-7-1.7-3.2-5.1-5.1-8.8-5 3.8-18.4-25.8-18.4-22 0-7.4-.7-12.9 8.1-8.9 14.4 1.8 3 5.1 4.8 8.6 4.7h33.2v-.1c3.4-.4 6.1-3.4 6.1-7z" - opacity="0.08" - /> - - <defs> - <linearGradient - id="paint0_linear_1_119" - x1="78.3" - x2="78.3" - y1="187.77" - y2="305.935" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_LIGHT} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - </defs> - </Box> - ); -} - -export default memo(PageNotFoundIllustration); diff --git a/src/assets/illustrations/seo-illustration.tsx b/src/assets/illustrations/seo-illustration.tsx deleted file mode 100644 index cb43ea865d5adde0e92f431ea61da735c72d2fb8..0000000000000000000000000000000000000000 --- a/src/assets/illustrations/seo-illustration.tsx +++ /dev/null @@ -1,234 +0,0 @@ -import { memo } from 'react'; - -import { useTheme } from '@mui/material/styles'; -import Box, { BoxProps } from '@mui/material/Box'; - -import BackgroundShape from './background-shape'; - -// ---------------------------------------------------------------------- - -function SeoIllustration({ ...other }: BoxProps) { - const theme = useTheme(); - - const PRIMARY_LIGHT = theme.palette.primary.light; - - const PRIMARY_DARK = theme.palette.primary.dark; - - return ( - <Box - component="svg" - width="100%" - height="100%" - viewBox="0 0 480 360" - xmlns="http://www.w3.org/2000/svg" - {...other} - > - <BackgroundShape /> - - <path - fill={PRIMARY_DARK} - fillRule="evenodd" - d="M109.224 97.41l.812 1.827-.02.009-.061.027-.248.112c-.219.1-.544.25-.968.449l-.849-1.811c.43-.202.762-.355.988-.457l.256-.117.066-.03.024-.01zm-6.771 3.278c.997-.507 1.901-.958 2.7-1.35l.882 1.795c-.791.388-1.687.835-2.675 1.337l-.907-1.782zm-5.356 2.808c.93-.502 1.82-.975 2.665-1.418l.929 1.771c-.838.439-1.72.909-2.644 1.407l-.95-1.76zm-5.274 2.927c.901-.513 1.779-1.007 2.63-1.479l.97 1.749c-.844.468-1.715.958-2.609 1.468l-.99-1.738zm-5.232 3.065c.887-.533 1.758-1.05 2.612-1.55l1.01 1.725c-.847.497-1.712 1.01-2.591 1.539l-1.03-1.714zm-5.117 3.16c.861-.546 1.713-1.079 2.555-1.599l1.05 1.702c-.834.516-1.68 1.044-2.534 1.586l-1.071-1.689zm-5.065 3.301a242.86 242.86 0 012.515-1.661l1.092 1.675a236.91 236.91 0 00-2.494 1.648l-1.113-1.662zm-4.978 3.431c.83-.589 1.66-1.168 2.484-1.736l1.134 1.646c-.817.564-1.638 1.137-2.461 1.721l-1.157-1.631zm-4.873 3.56a197.5 197.5 0 012.427-1.8l1.18 1.615c-.8.585-1.602 1.179-2.404 1.782l-1.203-1.597zm-4.771 3.71c.787-.632 1.576-1.256 2.366-1.87l1.228 1.579c-.782.608-1.563 1.225-2.342 1.85l-1.252-1.559zm-4.651 3.867c.765-.659 1.534-1.31 2.307-1.952l1.279 1.538c-.764.635-1.525 1.278-2.281 1.929l-1.305-1.515zm-4.51 4.035c.739-.688 1.485-1.368 2.236-2.04l1.333 1.491c-.742.664-1.478 1.335-2.208 2.013l-1.362-1.464zm-4.347 4.215a136.43 136.43 0 012.151-2.132l1.392 1.437c-.715.692-1.422 1.392-2.12 2.1l-1.423-1.405zm-4.157 4.411c.674-.751 1.359-1.495 2.053-2.231l1.455 1.371c-.683.725-1.356 1.457-2.019 2.196l-1.489-1.336zm-3.929 4.623c.633-.788 1.279-1.568 1.936-2.341l1.524 1.295a105.43 105.43 0 00-1.9 2.298l-1.56-1.252zm-3.657 4.848a94.278 94.278 0 011.793-2.455l1.596 1.205c-.6.794-1.185 1.595-1.754 2.403l-1.635-1.153zm-3.328 5.084a83.294 83.294 0 011.617-2.57l1.673 1.097a80.437 80.437 0 00-1.578 2.507l-1.712-1.034zm-2.94 5.341c.45-.907.922-1.806 1.414-2.698l1.752.965a69.62 69.62 0 00-1.375 2.623l-1.791-.89zm-2.465 5.583c.366-.948.755-1.889 1.168-2.823l1.83.808c-.4.906-.778 1.817-1.132 2.735l-1.866-.72zm-1.903 5.808c.265-.984.558-1.962.876-2.932l1.9.624a54.83 54.83 0 00-.845 2.828l-1.93-.52zm-1.253 5.993c.15-1.012.331-2.018.54-3.017l1.958.41a50.126 50.126 0 00-.52 2.901l-1.978-.294zm-.467 4.577c.028-.513.065-1.024.109-1.535l1.992.174c-.042.489-.077.98-.104 1.472-.028.496-.04.986-.037 1.469l-2 .014c-.003-.526.01-1.057.04-1.594zm.822 7.749a22.495 22.495 0 01-.643-3.074l1.982-.272c.131.959.328 1.892.585 2.801l-1.924.545zm2.498 5.699a23.889 23.889 0 01-1.444-2.77l1.83-.805c.382.867.824 1.713 1.324 2.538l-1.71 1.037zm3.777 4.87a30.2 30.2 0 01-2.019-2.327l1.578-1.23a28.113 28.113 0 001.885 2.173l-1.444 1.384zm4.602 4.048a41.441 41.441 0 01-2.349-1.902l1.316-1.506c.706.617 1.452 1.22 2.235 1.809l-1.202 1.599zm5.09 3.361a56.872 56.872 0 01-2.58-1.598l1.1-1.671a54.91 54.91 0 002.488 1.542l-1.008 1.727zm5.371 2.823a75.691 75.691 0 01-2.716-1.355l.929-1.771c.857.449 1.74.889 2.645 1.319l-.858 1.807zm5.542 2.408c-.95-.379-1.882-.766-2.794-1.162l.795-1.834c.894.387 1.807.767 2.74 1.138l-.741 1.858zm294.857-2.594c.244.101.598.253 1.048.457l-.828 1.821a31.67 31.67 0 00-1.241-.534l-.061-.025-.014-.005-.003-.001.357-.934.356-.934h.001l.002.001.006.002.021.008.075.03c.065.025.159.063.281.114zm-289.206 4.68c-.96-.329-1.906-.664-2.837-1.007l.692-1.877c.915.337 1.846.668 2.793.992l-.648 1.892zm293.015-2.865c.807.425 1.708.923 2.682 1.497l-1.016 1.723a62.506 62.506 0 00-2.598-1.45l.932-1.77zm-287.286 4.698c-.965-.289-1.918-.583-2.859-.884l.609-1.905c.928.296 1.87.587 2.824.873l-.574 1.916zm292.565-1.59a69.641 69.641 0 012.522 1.724l-1.165 1.626a66.44 66.44 0 00-2.449-1.674l1.092-1.676zM69.05 221.541c-.967-.256-1.924-.517-2.87-.783l.54-1.926c.938.264 1.885.522 2.842.776l-.512 1.933zm5.833 1.464c-.977-.233-1.945-.469-2.905-.709l.486-1.94c.952.238 1.912.472 2.881.703l-.462 1.946zm5.867 1.326c-.988-.213-1.97-.429-2.944-.649l.44-1.951c.968.219 1.943.434 2.925.645l-.42 1.955zm280.057-2.439a67.422 67.422 0 012.356 1.94l-1.306 1.515a65.709 65.709 0 00-2.286-1.883l1.236-1.572zM86.623 225.54a333.57 333.57 0 01-2.954-.595l.403-1.959c.973.201 1.952.398 2.937.591l-.386 1.963zm5.88 1.112c-.985-.179-1.967-.361-2.944-.546l.371-1.965c.973.184 1.95.365 2.931.543l-.357 1.968zm5.904 1.035c-.983-.167-1.963-.335-2.94-.506l.345-1.97c.973.17 1.95.338 2.93.504l-.335 1.972zm267.031-1.801a64.195 64.195 0 012.181 2.162l-1.442 1.386a63.013 63.013 0 00-2.113-2.095l1.374-1.453zm-261.112 2.771c-.989-.157-1.976-.316-2.959-.477l.323-1.974c.981.161 1.964.319 2.95.476l-.314 1.975zm5.919.916c-.99-.149-1.978-.3-2.965-.453l.306-1.976c.984.152 1.969.302 2.957.451l-.298 1.978zm5.92.873c-.987-.143-1.975-.287-2.961-.432l.292-1.979c.984.145 1.969.289 2.955.431l-.286 1.98zm5.929.84a781.94 781.94 0 01-2.965-.417l.281-1.98 2.96.417-.276 1.98zm5.927.818c-.987-.135-1.976-.27-2.965-.407l.273-1.981c.988.136 1.976.272 2.962.406l-.27 1.982zm241.664-1.8a62.33 62.33 0 011.957 2.359l-1.571 1.238a58.92 58.92 0 00-1.893-2.282l1.507-1.315zm-235.74 2.603l-2.957-.4.269-1.982 2.956.4-.268 1.982zm5.935.801l-2.964-.4.267-1.982 2.965.4-.268 1.982zm5.928.805l-2.977-.406.269-1.982 2.98.407-.272 1.981zm5.915.821l-2.962-.414.275-1.981c.993.138 1.982.276 2.966.415l-.279 1.98zm5.896.848c-.971-.143-1.948-.285-2.93-.426l.284-1.98c.985.142 1.964.284 2.937.427l-.291 1.979zm5.922.895c-.972-.151-1.952-.302-2.94-.451l.299-1.977c.99.149 1.973.3 2.949.452l-.308 1.976zm209.938-1.957a59.573 59.573 0 011.709 2.551l-1.69 1.069a56.139 56.139 0 00-1.651-2.463l1.632-1.157zm-204.034 2.911c-.974-.163-1.958-.325-2.952-.486l.319-1.974c.998.161 1.986.324 2.965.488l-.332 1.972zm5.881 1.035a369.37 369.37 0 00-2.965-.534l.346-1.97c1.006.177 2 .356 2.982.537l-.363 1.967zm5.85 1.143c-.972-.201-1.959-.399-2.961-.595l.383-1.963c1.009.197 2.004.397 2.984.6l-.406 1.958zm5.81 1.291c-.958-.228-1.935-.453-2.932-.674l.433-1.953c1.006.223 1.995.451 2.964.682l-.465 1.945zm5.75 1.497a126.97 126.97 0 00-2.901-.788l.502-1.936c1.006.261 1.988.527 2.947.8l-.548 1.924zm184.026-2.689c.494.881.972 1.787 1.431 2.718l-1.794.884a54.93 54.93 0 00-1.381-2.623l1.744-.979zm-178.387 4.477a83.817 83.817 0 00-2.858-.956l.602-1.907c1.007.317 1.983.643 2.926.978l-.67 1.885zm5.402 2.214a50.388 50.388 0 00-2.665-1.174l.755-1.852a52.08 52.08 0 012.773 1.222l-.863 1.804zm175.7-1.183c.397.928.775 1.88 1.132 2.854l-1.878.687a55.769 55.769 0 00-1.093-2.754l1.839-.787zm-171.918 3.282a27.52 27.52 0 00-1.18-.728l1.008-1.727c.438.255.86.515 1.266.781.386.252.788.506 1.206.763l-1.045 1.705a54.43 54.43 0 01-1.255-.794zm6.674 3.795a88.769 88.769 0 01-2.71-1.43l.964-1.752c.839.462 1.723.928 2.65 1.398l-.904 1.784zm167.354-1.314c.295.964.57 1.949.822 2.955l-1.94.486a56.86 56.86 0 00-.794-2.854l1.912-.587zm-161.766 3.964c-.978-.436-1.926-.872-2.842-1.305l.856-1.808c.902.427 1.836.856 2.801 1.287l-.815 1.826zm5.624 2.389c-.977-.396-1.932-.792-2.864-1.188l.781-1.841c.922.391 1.867.783 2.834 1.175l-.751 1.854zm5.702 2.219c-.979-.366-1.942-.734-2.887-1.101l.726-1.864c.936.364 1.891.728 2.863 1.092l-.702 1.873zm151.931-2.627c.195.988.367 1.994.517 3.019l-1.979.289a60 60 0 00-.5-2.921l1.962-.387zm-146.173 4.709a282.93 282.93 0 01-2.913-1.035l.68-1.881c.95.343 1.915.686 2.893 1.028l-.66 1.888zm5.793 1.961c-.989-.325-1.966-.651-2.932-.977l.642-1.895c.959.325 1.931.649 2.913.971l-.623 1.901zm5.808 1.851a366.91 366.91 0 01-2.928-.92l.607-1.905c.961.306 1.932.611 2.912.915l-.591 1.91zm135.458-2.462c.049.509.093 1.023.131 1.542a15.1 15.1 0 01.032 1.682l-1.998-.075c.017-.471.008-.958-.029-1.461a59 59 0 00-.127-1.495l1.991-.193zm-129.616 4.222a452.59 452.59 0 01-2.926-.869l.577-1.915c.963.29 1.934.578 2.911.864l-.562 1.92zm5.875 1.674c-.982-.272-1.957-.546-2.927-.823l.548-1.923c.965.275 1.936.548 2.913.819l-.534 1.927zm5.902 1.593a521.99 521.99 0 01-2.943-.783l.521-1.931c.972.262 1.949.522 2.93.779l-.508 1.935zm117.481-1.038a12.02 12.02 0 01-1.365 2.996l-1.691-1.069a9.965 9.965 0 001.139-2.499l1.917.572zm-111.556 2.55c-.993-.246-1.982-.495-2.968-.747l.495-1.938c.981.251 1.966.499 2.955.744l-.482 1.941zm5.937 1.432c-.995-.233-1.987-.469-2.977-.708l.469-1.944c.985.238 1.973.472 2.964.704l-.456 1.948zm5.954 1.352a461.96 461.96 0 01-2.98-.667l.443-1.95c.987.224 1.976.445 2.967.663l-.43 1.954zm5.976 1.272a440.55 440.55 0 01-2.989-.626l.416-1.956c.992.211 1.984.419 2.976.623l-.403 1.959zm90.244-1.087a17.352 17.352 0 01-2.54 1.996l-1.091-1.676a15.272 15.272 0 002.247-1.764l1.384 1.444zm-84.25 2.277c-1-.191-2.001-.386-3.002-.585l.39-1.962c.996.198 1.992.392 2.987.582l-.375 1.965zm6.003 1.101c-.999-.175-1.999-.355-3.001-.539l.361-1.967c.997.183 1.993.362 2.987.537l-.347 1.969zm72.9.168c-.911.427-1.878.819-2.897 1.178l-.663-1.887a29.338 29.338 0 002.71-1.102l.85 1.811zm-66.872.844c-1-.16-2.003-.324-3.007-.493l.33-1.972c1 .168 1.997.331 2.992.49l-.315 1.975zm6.051.913a350.993 350.993 0 01-3.025-.444l.299-1.977c1.006.152 2.009.299 3.007.441l-.281 1.98zm54.962.332c-.979.263-1.996.501-3.05.716l-.4-1.96a50.079 50.079 0 002.932-.688l.518 1.932zm-48.896.472a292.674 292.674 0 01-3.049-.39l.263-1.982c1.015.135 2.025.264 3.03.387l-.244 1.985zm6.076.684a273.234 273.234 0 01-3.058-.328l.224-1.987c1.019.115 2.031.223 3.037.325l-.203 1.99zm36.729.101c-.989.152-2.005.287-3.047.406l-.226-1.988a74.52 74.52 0 002.968-.395l.305 1.977zm-30.642.446a247.153 247.153 0 01-3.048-.255l.18-1.992c1.015.091 2.023.176 3.023.253l-.155 1.994zm6.099.39a193.964 193.964 0 01-3.036-.173l.128-1.995c1.012.064 2.015.122 3.007.171l-.099 1.997zm18.393-.133c-.991.079-2.002.144-3.032.196l-.101-1.997a107.33 107.33 0 002.975-.193l.158 1.994zm-12.279.337a175.75 175.75 0 01-3.028-.075l.067-1.999c1.01.034 2.008.059 2.993.075l-.032 1.999zm6.131-.023c-.993.025-2.002.039-3.025.043l-.007-2c1.009-.004 2.003-.018 2.981-.043l.051 2z" - clipRule="evenodd" - opacity="0.24" - /> - - <path - fill="#fff" - d="M47.943 122.571L96.231 273.55a11.4 11.4 0 0011.786 7.805l63.326-5.36 148.013-12.644a11.316 11.316 0 009.904-7.823c.456-1.421.627-2.918.503-4.405a12.314 12.314 0 00-.729-3.122l-11.838-31.221-21.412-57.238-16.599-44.23a11.37 11.37 0 00-10.641-7.362H58.741a11.345 11.345 0 00-11.344 11.343c.016 1.114.2 2.219.546 3.278z" - /> - - <path - fill="#fff" - d="M47.943 122.571L96.231 273.55a11.4 11.4 0 0011.786 7.805l63.326-5.36 148.013-12.644a11.316 11.316 0 009.904-7.823c.456-1.421.627-2.918.503-4.405a12.314 12.314 0 00-.729-3.122l-11.838-31.221-21.412-57.238-16.599-44.23a11.37 11.37 0 00-10.641-7.362H58.741a11.345 11.345 0 00-11.344 11.343c.016 1.114.2 2.219.546 3.278z" - /> - - <path - fill="url(#paint0_linear_1_51)" - d="M170.575 276.06l-62.558 5.295a11.4 11.4 0 01-11.785-7.805L47.942 122.571a11.028 11.028 0 01-.546-3.278A11.34 11.34 0 0158.74 107.95h57.453l54.382 168.11z" - /> - - <path - fill="#F4F6F8" - d="M227.879 191.221c2.613-.162 4.368-2.749 3.553-5.237l-8.483-25.895a4.002 4.002 0 00-3.993-2.75l-61.621 2.961c-2.666.128-4.461 2.782-3.588 5.304l9.248 26.717a3.999 3.999 0 004.028 2.683l60.856-3.783z" - /> - - <path - fill="#DFE3E8" - d="M244.879 239.221c2.613-.162 4.368-2.749 3.553-5.237l-8.483-25.895a4.002 4.002 0 00-3.993-2.75l-61.621 2.961c-2.666.128-4.461 2.782-3.588 5.304l9.248 26.717a3.999 3.999 0 004.028 2.683l60.856-3.783z" - /> - - <g filter="url(#filter0_f_1_51)" opacity="0.4"> - <path - fill="#919EAB" - d="M253.012 134.539l15.948 52.893a4.007 4.007 0 003.903 2.94l39.559-1.142a2 2 0 001.816-2.7l-20.001-53.4a2 2 0 00-1.755-1.295l-35.906-2.109a3.612 3.612 0 00-3.059 1.461 3.614 3.614 0 00-.505 3.352z" - /> - </g> - <path - fill="#fff" - d="M330.082 174.424l-16.495-46.701a4.03 4.03 0 00-3.512-2.732l-69.518-4.111a3.676 3.676 0 00-3.061 1.481 3.663 3.663 0 00-.53 3.358l15.949 52.92a4.057 4.057 0 003.902 2.966l70.091-2.108a3.663 3.663 0 002.898-1.716 3.667 3.667 0 00.276-3.357z" - /> - - <path - fill={PRIMARY_DARK} - d="M295.375 166.976c.478 1.237.718 1.856 1.229 2.206.511.351 1.174.351 2.501.351h.32c2.648 0 3.972 0 4.568-.87.596-.869.118-2.104-.837-4.574l-6.427-16.612c-.479-1.238-.719-1.856-1.23-2.207-.511-.35-1.174-.35-2.501-.35h-.32c-2.648 0-3.972 0-4.568.87-.596.869-.118 2.104.837 4.573l6.428 16.613z" - /> - - <g opacity="0.48"> - <path - fill="url(#paint1_linear_1_51)" - d="M306.33 166.969c.478 1.241.717 1.861 1.228 2.212.512.351 1.176.351 2.505.351h.314c2.649 0 3.973 0 4.569-.869.596-.87.118-2.105-.839-4.574l-1.586-4.099c-.479-1.237-.718-1.855-1.229-2.205-.511-.351-1.175-.351-2.501-.351h-.305c-2.644 0-3.966 0-4.562.868-.596.868-.121 2.102.829 4.569l1.577 4.098z" - /> - - <path - fill="url(#paint2_linear_1_51)" - d="M284.397 166.971c.478 1.24.717 1.86 1.228 2.211.512.351 1.176.351 2.505.351h.315c2.648 0 3.973 0 4.568-.87.596-.87.118-2.105-.838-4.575l-2.705-6.986c-.479-1.237-.718-1.855-1.229-2.205-.511-.35-1.175-.35-2.501-.35h-.303c-2.645 0-3.967 0-4.563.868-.596.868-.12 2.102.831 4.57l2.692 6.986z" - /> - - <path - fill="url(#paint3_linear_1_51)" - d="M273.442 166.976c.479 1.237.718 1.856 1.229 2.206.511.351 1.175.351 2.502.351h.32c2.648 0 3.972 0 4.568-.87.596-.869.118-2.104-.838-4.574l-9.445-24.417c-.479-1.238-.718-1.856-1.229-2.207-.511-.35-1.175-.35-2.502-.35h-.32c-2.648 0-3.972 0-4.568.869-.596.87-.118 2.104.837 4.574l9.446 24.418z" - /> - - <path - fill="url(#paint4_linear_1_51)" - d="M262.463 166.974c.479 1.239.718 1.858 1.229 2.208.511.351 1.175.351 2.502.351h.322c2.647 0 3.97 0 4.566-.869.596-.869.119-2.104-.835-4.573l-12.935-33.472c-.479-1.238-.718-1.857-1.229-2.207-.511-.351-1.175-.351-2.502-.351h-.322c-2.647 0-3.97 0-4.566.869-.596.869-.119 2.104.835 4.573l12.935 33.471z" - /> - </g> - <g fill="#fff" fillRule="evenodd" clipRule="evenodd" opacity="0.4"> - <path d="M78.02 155.171a15.22 15.22 0 11.312 1.015l-.156-.495-.157-.52zm15.194-4.189l-3.59-11.525a12.641 12.641 0 013.121-.547 12.102 12.102 0 0111.994 8.456c.312 1.014.496 2.062.546 3.122a13.006 13.006 0 01-.286 3.148 11.815 11.815 0 01-2.914 5.516 11.914 11.914 0 01-11.525 3.59 13.21 13.21 0 01-2.94-1.067 12.76 12.76 0 01-2.602-1.821 12.257 12.257 0 01-3.33-5.203l11.526-3.669zM111.296 251.773a15.298 15.298 0 0129.321-8.429v.494c0 .156 0 .338.182.494a15.272 15.272 0 01-28.619 10.407c-.078-.247-.149-.495-.221-.742a28.499 28.499 0 00-.221-.741 16.041 16.041 0 01-.171-.595 10.734 10.734 0 00-.271-.888zm11.187-14.7l3.746 11.474.079-.026 3.746 11.5a11.965 11.965 0 006.921-6.01 11.83 11.83 0 001.04-2.966c.23-1.024.317-2.075.26-3.122a12.07 12.07 0 00-9.548-11.188 12.42 12.42 0 00-6.244.338zM100.21 187.509a15.272 15.272 0 00-4.473 10.799v1.066a15.272 15.272 0 1030.544 0v-1.066a15.271 15.271 0 00-26.071-10.799zm10.591 11.293V186.73c2.112.016 4.183.581 6.01 1.639a11.366 11.366 0 012.602 1.925 12.027 12.027 0 01-.005 17.068 12.022 12.022 0 01-5.433 3.096 11.575 11.575 0 01-6.244 0 12.202 12.202 0 01-2.914-1.171l5.984-10.485z" /> - </g> - <path fill="url(#paint5_linear_1_51)" d="M151.154 76h-41.55l12.645 7.727L151.154 76z" /> - <path - fill="url(#paint6_linear_1_51)" - d="M151.154 76l-26.668 12.332 4.501 15.715L151.154 76z" - /> - - <path - fill="url(#paint7_linear_1_51)" - d="M117.435 95.279l7.051-6.947L151.154 76 117.435 95.28z" - /> - - <path - fill={PRIMARY_DARK} - d="M117.435 95.279l7.051-6.947L151.154 76l-28.905 7.727-4.814 11.552z" - /> - - <defs> - <filter - id="filter0_f_1_51" - width="101.56" - height="100.65" - x="232.807" - y="109.722" - colorInterpolationFilters="sRGB" - filterUnits="userSpaceOnUse" - > - <feFlood floodOpacity="0" result="BackgroundImageFix" /> - <feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape" /> - <feGaussianBlur result="effect1_foregroundBlur_1_51" stdDeviation="10" /> - </filter> - - <linearGradient - id="paint0_linear_1_51" - x1="47.397" - x2="47.397" - y1="107.95" - y2="281.395" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_LIGHT} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - - <linearGradient - id="paint1_linear_1_51" - x1="248.43" - x2="248.43" - y1="128.061" - y2="169.533" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_LIGHT} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - - <linearGradient - id="paint2_linear_1_51" - x1="248.43" - x2="248.43" - y1="128.061" - y2="169.533" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_LIGHT} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - - <linearGradient - id="paint3_linear_1_51" - x1="248.43" - x2="248.43" - y1="128.061" - y2="169.533" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_LIGHT} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - - <linearGradient - id="paint4_linear_1_51" - x1="248.43" - x2="248.43" - y1="128.061" - y2="169.533" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_LIGHT} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - - <linearGradient - id="paint5_linear_1_51" - x1="109.604" - x2="109.604" - y1="76" - y2="104.047" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_LIGHT} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - - <linearGradient - id="paint6_linear_1_51" - x1="109.604" - x2="109.604" - y1="76" - y2="104.047" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_LIGHT} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - - <linearGradient - id="paint7_linear_1_51" - x1="109.604" - x2="109.604" - y1="76" - y2="104.047" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_LIGHT} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - </defs> - - <image href="/assets/illustrations/characters/character_3.png" height="300" x="312" y="30" /> - </Box> - ); -} - -export default memo(SeoIllustration); diff --git a/src/assets/illustrations/sever-error-illustration.tsx b/src/assets/illustrations/sever-error-illustration.tsx deleted file mode 100644 index d879ac5595a6b61108dde9317a4bbaa78126cd8c..0000000000000000000000000000000000000000 --- a/src/assets/illustrations/sever-error-illustration.tsx +++ /dev/null @@ -1,148 +0,0 @@ -import { memo } from 'react'; - -import { useTheme } from '@mui/material/styles'; -import Box, { BoxProps } from '@mui/material/Box'; - -import BackgroundShape from './background-shape'; - -// ---------------------------------------------------------------------- - -function SeverErrorIllustration({ ...other }: BoxProps) { - const theme = useTheme(); - - const PRIMARY_LIGHTER = theme.palette.primary.lighter; - - const PRIMARY_LIGHT = theme.palette.primary.light; - - const PRIMARY_MAIN = theme.palette.primary.main; - - const PRIMARY_DARK = theme.palette.primary.dark; - - const PRIMARY_DARKER = theme.palette.primary.darker; - - return ( - <Box - component="svg" - width="100%" - height="100%" - viewBox="0 0 480 360" - xmlns="http://www.w3.org/2000/svg" - {...other} - > - <BackgroundShape /> - - <image href="/assets/illustrations/characters/character_8.png" height="300" x="340" y="30" /> - - <path - fill={PRIMARY_MAIN} - d="M292.4 266.4h-7.3v-.6h6.7v-59.6h-25.7V118h-23.6v-.6h24.2v88.2h25.7v60.8zM146 164.5h-.6v-21.1h16.5v-19h.6v19.7H146v20.4z" - /> - - <path - fill={PRIMARY_MAIN} - d="M242.5 112.3c0 3.2-1.3 6.3-3.5 8.5-2.3 2.3-5.3 3.5-8.5 3.5h-82.9c-4.4.1-8.5-2.2-10.7-5.9-2.2-3.8-2.2-8.5 0-12.3 2.2-3.8 6.3-6.1 10.7-5.9h2.8c-2-7.2-.6-14.9 3.9-20.8s11.6-9.4 19-9.4h7c8.9 0 17 4.9 21.1 12.8 2-1 4.2-1.6 6.5-1.6h1.8c3.8 0 7.4 1.5 10.1 4.2 2.7 2.7 4.2 6.3 4.2 10.1v.7c0 1.3-.2 2.7-.6 3.9h6.9c6.8.2 12.2 5.6 12.2 12.2z" - opacity="0.08" - /> - - <path - fill="#fff" - d="M275.4 228.3v14c0 .8-.4 1.5-1.1 1.8-.3.2-.7.3-1.1.3-1.2 0-2.2-1-2.2-2.1v-14c0-4.7-3.5-8.6-8.1-9.1-.4 0-.7-.1-1.1-.1-5.1 0-9.2 4.1-9.2 9.2v14c0 .8-.4 1.5-1.1 1.8-.3.2-.7.3-1.1.3-1.2 0-2.2-1-2.2-2.2v-14c0-7.5 6.1-13.5 13.5-13.5.4 0 .7 0 1.1.1 7.2.6 12.6 6.4 12.6 13.5z" - /> - - <path - fill="#DFE3E8" - d="M275.4 228.3v14c.3.5.2 1.2-.3 1.6-.5.4-1.1.4-1.6 0s-.6-1.1-.3-1.6v-14c0-5.1-4.1-9.2-9.2-9.2-.4 0-.7 0-1.1.1-.4 0-.7-.1-1.1-.1-5.1 0-9.2 4.1-9.2 9.2v14c.3.5.2 1.2-.3 1.6-.5.4-1.1.4-1.6 0s-.6-1-.3-1.6v-14c-.4-4.7 1.9-9.2 5.9-11.7s9.1-2.5 13.1 0c4.1 2.4 6.4 7 6 11.7z" - /> - - <path - fill={PRIMARY_DARKER} - d="M277.8 242.2h-33.2c-4 0-7.3 3.3-7.3 7.3v33.2c0 4 3.3 7.3 7.3 7.3h33.2c4 0 7.3-3.3 7.3-7.3v-33.2c0-4-3.3-7.3-7.3-7.3z" - /> - - <path - fill={PRIMARY_DARK} - d="M277.8 242.2h-24.9c-4 0-7.3 3.3-7.3 7.3v33.2c0 4 3.3 7.3 7.3 7.3h24.9c4 0 7.3-3.3 7.3-7.3v-33.2c0-4-3.3-7.3-7.3-7.3z" - /> - - <path - fill="url(#paint0_linear_1_140)" - d="M278 145h-22c-4.4 0-8 3.6-8 8v22.8c0 4.4 3.6 8 8 8h22c4.4 0 8-3.6 8-8V153c0-4.4-3.6-8-8-8z" - /> - - <path - fill={PRIMARY_MAIN} - d="M126 129.7h-22.4c-1.7 0-3 1.3-3 3v32.8c0 1.7 1.3 3 3 3H126c1.7 0 3-1.3 3-3v-32.8c0-1.7-1.4-3-3-3z" - opacity="0.08" - /> - - <path - fill="#fff" - d="M119.1 135.9H96.6c-1.7 0-3 1.3-3 3v32.8c0 1.7 1.3 3 3 3H119c1.7 0 3-1.3 3-3v-32.8c.1-1.6-1.3-3-2.9-3z" - /> - - <path - fill={PRIMARY_MAIN} - d="M119.1 135.9H96.6c-1.7 0-3 1.3-3 3v32.8c0 1.7 1.3 3 3 3H119c1.7 0 3-1.3 3-3v-32.8c.1-1.6-1.3-3-2.9-3z" - opacity="0.48" - /> - - <path - fill={PRIMARY_MAIN} - d="M80 243.5c.2 2 .9 3.9 2 5.5 4.4 7.8 9.4 15.5 16.2 21.3 10.1 8.5 23.2 12.2 36 15.7-1.1-.6-2.5-6.4-3-7.7-1-2.5-1.9-5.1-2.8-7.6-1.5-4-4.6-7.2-7.7-10.2-6.9-6.7-15.3-11.6-24.5-14.4-5.3-1.7-10.8-2.6-16.2-2.6z" - /> - - <path - fill={PRIMARY_DARKER} - d="M129.8 247.8c-1-7.3-2.1-14.6-5-21.4-2.9-6.7-8-12.9-14.9-15.4l-.6 31.2c-.1 6-.2 12.1 1.5 17.9 3 10.1 13.5 21.9 23.6 25.3 1.5-4.8-1-12.2-1.7-17.2l-2.9-20.4z" - /> - - <path - fill={PRIMARY_DARK} - d="M237.2 164H140c-4.7 0-8.4 3.8-8.4 8.4v19.1c0 4.7 3.8 8.4 8.4 8.4h97.1c4.7 0 8.4-3.8 8.4-8.4v-19.1c.1-4.6-3.7-8.4-8.3-8.4zm0 44H140c-4.7 0-8.4 3.8-8.4 8.4v19.1c0 4.7 3.8 8.4 8.4 8.4h97.1c4.7 0 8.4-3.8 8.4-8.4v-19.1c.1-4.6-3.7-8.4-8.3-8.4zm0 44.2H140c-4.7 0-8.4 3.8-8.4 8.4v19.1c0 4.7 3.8 8.4 8.4 8.4h97.1c4.7 0 8.4-3.8 8.4-8.4v-19.1c.1-4.6-3.7-8.4-8.3-8.4z" - /> - - <path - fill="url(#paint1_linear_1_140)" - d="M237.6 164h-91.2c-4.7 0-8.4 3.8-8.4 8.4v19.1c0 4.7 3.8 8.4 8.4 8.4h91.1c4.7 0 8.4-3.8 8.4-8.4v-19.1c.1-4.6-3.7-8.4-8.3-8.4zm8.4 53.6v16.8c0 2.5-1 5-2.9 6.8-1.9 1.8-4.4 2.8-7.1 2.8h-88c-2.7 0-5.2-1-7.1-2.8-1.9-1.8-2.9-4.2-2.9-6.8v-16.8c0-5.3 4.5-9.6 10-9.6h88c2.7 0 5.2 1 7.1 2.8 1.8 1.8 2.9 4.2 2.9 6.8zm-8.4 34.4h-91.2c-4.7 0-8.4 3.8-8.4 8.4v19.1c0 4.7 3.8 8.4 8.4 8.4h91.1c4.7 0 8.4-3.8 8.4-8.4v-19.1c.1-4.6-3.7-8.4-8.3-8.4z" - /> - - <path - fill={PRIMARY_LIGHTER} - d="M161.6 182c0 2.2-1.8 4-4 4s-4-1.8-4-4 1.8-4 4-4 4 1.8 4 4zm12 0c0 2.2-1.8 4-4 4s-4-1.8-4-4 1.8-4 4-4 4 1.8 4 4zm8 4c2.2 0 4-1.8 4-4s-1.8-4-4-4-4 1.8-4 4 1.8 4 4 4zM162 226c0 2.2-1.8 4-4 4s-4-1.8-4-4 1.8-4 4-4 4 1.8 4 4zm12 0c0 2.2-1.8 4-4 4s-4-1.8-4-4 1.8-4 4-4 4 1.8 4 4zm8 4c2.2 0 4-1.8 4-4s-1.8-4-4-4-4 1.8-4 4 1.8 4 4 4zm52-6h-30c-.6 0-1 .4-1 1v2c0 .6.4 1 1 1h30c.6 0 1-.4 1-1v-2c0-.6-.4-1-1-1zm-72 46c0 2.2-1.8 4-4 4s-4-1.8-4-4 1.8-4 4-4 4 1.8 4 4zm12 0c0 2.2-1.8 4-4 4s-4-1.8-4-4 1.8-4 4-4 4 1.8 4 4zm8 4c2.2 0 4-1.8 4-4s-1.8-4-4-4-4 1.8-4 4 1.8 4 4 4zm52-6h-30c-.6 0-1 .4-1 1v2c0 .6.4 1 1 1h30c.6 0 1-.4 1-1v-2c0-.6-.4-1-1-1z" - /> - - <path - fill={PRIMARY_DARKER} - d="M264.4 267.7c.5-1.8-.8-3.7-1.2-5.5-.1-.3-.1-.7 0-1 .2-1.5 1.5-2.6 3-2.6s2.8 1.1 3 2.6c.1.3 0 .7 0 1-.3 1.8-1.6 3.8-1.1 5.6l.4 1.3c.5 1.5-.7 3.1-2.3 3.1-1.6 0-2.7-1.5-2.3-3l.5-1.5zM258 158.8l9.2-4.8 8.8 4.8s-1.6 11.8-8.6 15.2c0 0-8.6-3.3-9.4-15.2z" - /> - - <defs> - <linearGradient - id="paint0_linear_1_140" - x1="277.574" - x2="255.652" - y1="143.24" - y2="187.057" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_MAIN} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - - <linearGradient - id="paint1_linear_1_140" - x1="138" - x2="138" - y1="164" - y2="287.9" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_LIGHT} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - </defs> - </Box> - ); -} - -export default memo(SeverErrorIllustration); diff --git a/src/assets/illustrations/upgrade-storage-illustration.tsx b/src/assets/illustrations/upgrade-storage-illustration.tsx deleted file mode 100644 index 4606cecdcea57d6ef62d4c7d4ec652227c492892..0000000000000000000000000000000000000000 --- a/src/assets/illustrations/upgrade-storage-illustration.tsx +++ /dev/null @@ -1,157 +0,0 @@ -import { memo } from 'react'; - -import { useTheme } from '@mui/material/styles'; -import Box, { BoxProps } from '@mui/material/Box'; - -import BackgroundShape from './background-shape'; - -// ---------------------------------------------------------------------- - -function UpgradeStorageIllustration({ ...other }: BoxProps) { - const theme = useTheme(); - - const PRIMARY_LIGHTER = theme.palette.primary.lighter; - - const PRIMARY_MAIN = theme.palette.primary.main; - - const PRIMARY_DARK = theme.palette.primary.dark; - - const PRIMARY_DARKER = theme.palette.primary.darker; - - return ( - <Box - component="svg" - width="100%" - height="100%" - viewBox="0 0 480 360" - xmlns="http://www.w3.org/2000/svg" - {...other} - > - <BackgroundShape /> - - <image href="/assets/illustrations/characters/character_2.png" height="300" x="322" y="30" /> - - <path - fill={PRIMARY_MAIN} - d="M70.6 79.545c0-2.7.7-5.4 2-7.8 1.3-2.4 3.1-4.4 5.4-5.9 2.3-1.5 4.9-2.4 7.6-2.7 2.7-.3 5.4.1 8 1.1 1.8-3.8 4.8-6.8 8.499-8.8 3.7-2 7.9-2.8 12-2.3s8 2.3 11.1 5.1c3.1 2.8 5.3 6.5 6.2 10.6 4.5.3 8.7 2.3 11.7 5.7 3 3.3 4.6 7.7 4.5 12.2-.1 4.5-2 8.7-5.2 11.9-3.2 3.1-7.5 4.9-12 4.9h-55.5c-2.9 0-5.7-1-7.9-2.8-2.2-1.8-3.7-4.4-4.2-7.2s0-5.7 1.4-8.3c1.4-2.7 3.7-4.7 6.4-5.7zm195.699 136c0-1.7.4-3.3 1.2-4.8.8-1.5 1.9-2.7 3.3-3.7 1.4-.9 3-1.5 4.7-1.7 1.7-.2 3.4.1 4.9.7 1.1-2.3 3-4.2 5.2-5.5 2.2-1.3 4.9-1.7 7.4-1.4 2.6.3 5 1.4 6.9 3.1 1.9 1.7 3.2 4 3.8 6.5 2.8.2 5.4 1.4 7.2 3.5 1.9 2.1 2.9 4.8 2.8 7.5-.1 2.8-1.3 5.4-3.3 7.3-2 1.9-4.7 3-7.5 3h-34c-1.8 0-3.5-.6-4.8-1.8-1.4-1.1-2.3-2.7-2.6-4.4-.3-1.7 0-3.5.8-5.1 1-1.3 2.4-2.5 4-3.2zm-184.2-30.4c0-2.9.7-5.7 2.1-8.2 1.4-2.5 3.3-4.7 5.7-6.2 2.4-1.6 5.1-2.6 7.9-2.9 2.8-.3 5.7.1 8.3 1.2 1.9-3.9 5-7.2 8.9-9.3 3.8-2.1 8.2-3 12.6-2.4 4.4.5 8.4 2.4 11.7 5.3 3.2 2.9 5.5 6.8 6.5 11.1 4.8.2 9.4 2.2 12.7 5.7 3.3 3.5 5.1 8.2 4.9 13-.2 4.8-2.2 9.4-5.7 12.7-3.5 3.3-8.2 5.1-13 4.9h-58c-3 0-5.9-1.1-8.2-3-2.3-1.9-3.9-4.6-4.4-7.6-.5-3 0-6 1.4-8.6 1.4-2.6 3.8-4.6 6.6-5.7zm180.4-84.4c0-2 .5-3.9 1.5-5.6.9-1.7 2.3-3.2 3.9-4.3 1.6-1.1 3.5-1.8 5.5-2 2-.2 3.9.1 5.8.8 1.3-2.7 3.5-4.9 6.1-6.4 2.7-1.4 5.7-2 8.7-1.7 3 .4 5.8 1.6 8.1 3.7 2.3 2 3.8 4.7 4.5 7.6 3.3.1 6.5 1.5 8.8 4 2.3 2.4 3.5 5.7 3.4 9-.1 3.3-1.5 6.5-4 8.8-2.4 2.3-5.7 3.5-9 3.4h-40.1c-2.1 0-4.1-.7-5.7-2.1-1.6-1.3-2.7-3.2-3.1-5.2-.4-2.1 0-4.2 1-6 1-1.9 2.7-3.3 4.6-4z" - opacity="0.08" - /> - - <path - fill={PRIMARY_DARKER} - d="M185.3 306.145c74.7 0 135.3-3.5 135.3-7.9s-60.6-7.9-135.3-7.9c-74.7 0-135.3 3.5-135.3 7.9s60.5 7.9 135.3 7.9z" - opacity="0.24" - /> - - <path - fill="url(#paint0_linear_1_99)" - d="M138.6 75.745h12.8c8 0 15.8 2.3 22.5 6.7 6.9 4.5 12.3 10.9 15.4 18.5 7.6.5 14.8 3.3 20.6 8.2 5.8 4.9 9.9 11.5 11.6 18.8 5.1 1.5 9.5 4.7 12.5 9.2 2.9 4.5 4.1 9.8 3.4 15.1-.7 5.3-3.4 10.1-7.4 13.6s-9.2 5.4-14.5 5.4h-125c-4.7.1-9.3-.8-13.6-2.5-4.3-1.7-8.3-4.3-11.6-7.6-3.3-3.3-6-7.2-7.8-11.5-1.8-4.3-2.7-8.9-2.7-13.6 0-4.7.9-9.3 2.7-13.6 1.8-4.3 4.4-8.2 7.8-11.5 3.3-3.3 7.3-5.9 11.6-7.6 4.3-1.7 9-2.6 13.6-2.5h10.2c3.1-7.4 8.4-13.8 15.1-18.2 6.8-4.5 14.7-6.9 22.8-6.9z" - /> - - <path - fill="url(#paint1_linear_1_99)" - d="M124.2 171.245h16.4v16.5c0 1.8-.7 3.6-2 4.9-.6.6-1.2 1-1.9 1.3v10.6c0 1-.4 1.9-1.1 2.6-.6.6-1.5 1-2.3 1.1h.8v4.2c0 4.3 1.7 8.5 4.8 11.6 3.1 3.1 7.2 4.8 11.6 4.8h36.6v3.5h-36.6c-5.3 0-10.3-2.1-14.1-5.8-3.7-3.7-5.8-8.8-5.8-14.1v-4.3h.8c-.9-.1-1.7-.4-2.3-1.1-.7-.7-1.1-1.6-1.1-2.6v-10.6c-.7-.3-1.3-.8-1.9-1.3-1.3-1.3-2-3-2-4.9v-16.4h.1z" - /> - - <path - fill={PRIMARY_LIGHTER} - fillRule="evenodd" - d="M216.1 130.245l1.6.4c4.5 1.3 8.3 4.1 10.9 8 2.5 3.9 3.6 8.6 2.9 13.2-.6 4.6-2.9 8.8-6.4 11.9-3.5 3.1-8 4.7-12.7 4.7H103.3c-8.4 0-16.5-3.4-22.6-9.3-6-5.9-9.5-13.9-9.7-22.4-.2-8.4 2.9-16.6 8.6-22.7 5.8-6.2 13.7-9.9 22.2-10.4h1.5c2.9 0 5.9.4 8.7 1.2l.2.1 2.5.7.9-2.4c2.7-7 7.4-13.1 13.5-17.4 6.1-4.4 13.3-6.9 20.8-7.2 7.3.3 14.3 2.6 20.3 6.8 6 4.2 10.7 9.9 13.5 16.7l.7 1.6 1.7.1c6.9.4 13.6 3.1 18.9 7.6 5.3 4.5 9.1 10.5 10.7 17.3l.4 1.5zm-78.7 24.4v-27.7h-8.8l22.8-25.6 22.8 25.6h-8.8v27.7h-28z" - clipRule="evenodd" - /> - - <path - fill={PRIMARY_LIGHTER} - d="M297.8 112.745c.2-.3.3-.6.3-1 0-.5-.2-.9-.5-1.2-.3-.3-.8-.5-1.2-.5-.3 0-.7.1-1 .3-.3.2-.5.5-.6.8-.1.3-.2.7-.1 1 .1.3.2.6.5.9.2.2.5.4.9.5.3.1.7 0 1-.1l.7-.7zm-195.2 90.5c.3-.4.4-.9.4-1.5a2.732 2.732 0 00-2.7-2.7c-.5 0-1 .2-1.5.4-.4.3-.8.7-1 1.2-.2.5-.3 1-.2 1.5.1.5.4 1 .7 1.3.4.4.8.6 1.4.7.5.1 1 .1 1.5-.1.7 0 1.1-.4 1.4-.8zm201.9-91.5c0 .3-.1.7-.3 1-.2.3-.5.5-.8.6-.3.1-.7.2-1 .1-.3-.1-.6-.2-.9-.5-.2-.2-.4-.5-.5-.9-.1-.3 0-.7.1-1 .1-.3.3-.6.6-.8.3-.2.6-.3 1-.3.5 0 .9.2 1.2.5.4.4.6.8.6 1.3zm-166.1 71.9c0 1.2-1 2.2-2.2 2.2-1.2 0-2.2-1-2.2-2.2 0-1.2 1-2.2 2.2-2.2 1.2.1 2.2 1 2.2 2.2z" - opacity="0.48" - /> - - <path - fill={PRIMARY_LIGHTER} - d="M291.6 111.745c0 .3-.1.7-.3 1-.2.3-.5.5-.8.6-.3.1-.7.2-1 .1-.3-.1-.6-.2-.9-.5-.2-.2-.4-.5-.5-.9-.1-.3 0-.7.1-1 .1-.3.4-.6.6-.8.3-.2.6-.3 1-.3.5 0 .9.2 1.2.5.5.4.6.8.6 1.3zm-198.5 90c0 .5-.2 1-.4 1.5-.3.4-.7.8-1.2 1-.5.2-1 .3-1.5.1-.5-.1-1-.4-1.4-.7-.4-.3-.6-.8-.7-1.3-.1-.5 0-1 .2-1.5s.5-.9 1-1.2c.4-.3.9-.4 1.5-.4.7 0 1.4.3 1.9.8.3.4.6 1 .6 1.7zm39.5-18.1c0 1.2-1 2.2-2.2 2.2-1.2 0-2.2-1-2.2-2.2 0-1.2 1-2.2 2.2-2.2 1.2 0 2.2 1 2.2 2.2z" - opacity="0.12" - /> - - <path - fill={PRIMARY_MAIN} - d="M256.3 144.745h-60c-5 0-9.1 4.1-9.1 9.1v135.3c0 5 4.1 9.1 9.1 9.1h60c5 0 9.1-4.1 9.1-9.1v-135.3c0-5-4.1-9.1-9.1-9.1z" - /> - - <path - fill={PRIMARY_DARK} - d="M256.3 298.245h16.3c5 0 9.1-4.1 9.1-9.1v-135.3c0-5-4.1-9.1-9.1-9.1h-16.3c5 0 9.1 4.1 9.1 9.1v135.3c0 5-4.1 9.1-9.1 9.1z" - /> - - <path - fill="#fff" - d="M262.4 289.145v-135.3c0-3.3-2.7-6.1-6.1-6.1h-57.2c-3.3 0-6.1 2.7-6.1 6.1v135.3c0 3.3 2.7 6.1 6.1 6.1h57.2c3.3 0 6.1-2.8 6.1-6.1z" - /> - - <path - fill={PRIMARY_MAIN} - fillRule="evenodd" - d="M202.5 165.545h50.4c1.2 0 2.4-.5 3.3-1.4.9-.9 1.4-2.1 1.4-3.3 0-1.3-.5-2.5-1.4-3.3-.9-.9-2.1-1.4-3.3-1.4h-50.4c-1.2 0-2.4.5-3.3 1.4-.9.9-1.4 2.1-1.4 3.3 0 1.2.5 2.4 1.4 3.3.9.9 2 1.4 3.3 1.4zm-.8-3.7h34.6c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7 0-.1 0-.3-.1-.4-.1-.1-.1-.2-.2-.3-.1-.1-.2-.2-.3-.2-.1-.1-.3-.1-.4-.1h-34.6c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7 0 .1 0 .3.1.4.1.1.1.2.2.3.1.1.2.2.3.2.2.1.3.1.4.1zm.8 18.9h50.4c1.2 0 2.4-.5 3.3-1.4.9-.9 1.4-2.1 1.4-3.3 0-1.2-.5-2.4-1.4-3.3-.9-.9-2.1-1.4-3.3-1.4h-50.4c-1.2 0-2.4.5-3.3 1.4-.9.9-1.4 2.1-1.4 3.3 0 1.3.5 2.4 1.4 3.3.8.9 2 1.4 3.3 1.4zm-.8-3.7h34.6c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7 0-.3-.1-.5-.3-.7-.2-.2-.5-.3-.7-.3h-34.6c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7 0 .3.1.5.3.7.2.2.5.3.7.3zm.8 18.9h50.4c1.2 0 2.4-.5 3.3-1.4.9-.9 1.4-2.1 1.4-3.3 0-1.3-.5-2.5-1.4-3.3-.9-.9-2.1-1.4-3.3-1.4h-50.4c-1.3 0-2.4.5-3.3 1.4-.9.9-1.4 2.1-1.4 3.3 0 1.2.5 2.4 1.4 3.3.9.8 2 1.3 3.3 1.4zm-.8-3.7h34.6c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7 0-.1 0-.3-.1-.4-.1-.1-.1-.2-.2-.3-.1-.1-.2-.2-.3-.2-.1 0-.3-.1-.4-.1h-34.6c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7 0 .1 0 .3.1.4.1.1.1.2.2.3.1.1.2.2.3.2.2 0 .3.1.4.1zm.8 9.4h50.4c2.6 0 4.7 2.1 4.7 4.7s-2.1 4.7-4.7 4.7h-50.4c-2.6 0-4.7-2.1-4.7-4.7s2.1-4.7 4.7-4.7zm-.8 5.7h34.6c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7 0-.3-.1-.5-.3-.7-.2-.2-.5-.3-.7-.3h-34.6c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7 0 .2.1.5.3.7.2.2.5.3.7.3zm51.2 18.9h-50.4c-1.2 0-2.4-.5-3.3-1.4-.9-.9-1.4-2.1-1.4-3.3 0-1.3.5-2.4 1.4-3.3.9-.9 2.1-1.4 3.3-1.4h50.4c1.3 0 2.5.5 3.3 1.4.9.9 1.4 2.1 1.4 3.3 0 1.2-.5 2.4-1.4 3.3-.8.9-2 1.4-3.3 1.4zm-16.6-3.7h-34.6c-.1 0-.3 0-.4-.1-.1-.1-.2-.1-.3-.2-.1-.1-.2-.2-.2-.3-.1-.1-.1-.3-.1-.4 0-.1 0-.3.1-.4.1-.1.1-.2.2-.3.1-.1.2-.2.3-.2.1-.1.3-.1.4-.1h34.6c.1 0 .3 0 .4.1.1.1.2.1.3.2.1.1.2.2.2.3.1.1.1.3.1.4 0 .3-.1.5-.3.7-.2.2-.4.3-.7.3zm-33.8 18.9h50.4c1.3 0 2.5-.5 3.3-1.4.9-.9 1.4-2.1 1.4-3.3 0-1.2-.5-2.4-1.4-3.3-.9-.9-2.1-1.4-3.3-1.4h-50.4c-1.2 0-2.4.5-3.3 1.4-.9.9-1.4 2.1-1.4 3.3 0 1.2.5 2.4 1.4 3.3.8.8 2 1.3 3.3 1.4zm-.8-3.7h34.6c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7 0-.3-.1-.5-.3-.7-.2-.2-.5-.3-.7-.3h-34.6c-.1 0-.3 0-.4.1-.1.1-.2.1-.3.2-.1.1-.2.2-.2.3-.1.1-.1.3-.1.4 0 .3.1.5.3.7.2.2.5.3.7.3zm51.2 18.8h-50.4c-1.2 0-2.4-.5-3.3-1.4-.9-.9-1.4-2.1-1.4-3.3 0-1.3.5-2.4 1.4-3.3.9-.9 2.1-1.4 3.3-1.4h50.4c1.3 0 2.5.5 3.3 1.4.9.9 1.4 2.1 1.4 3.3 0 1.2-.5 2.4-1.4 3.3-.8.9-2 1.4-3.3 1.4zm-16.6-3.7h-34.6c-.3 0-.5-.1-.7-.3-.2-.2-.3-.5-.3-.7 0-.3.1-.5.3-.7.2-.2.5-.3.7-.3h34.6c.1 0 .3 0 .4.1.1.1.2.1.3.2.1.1.2.2.2.3.1.1.1.3.1.4 0 .3-.1.5-.3.7-.2.2-.4.3-.7.3zm-33.8 9.5h50.4c2.6 0 4.7 2.1 4.7 4.7s-2.1 4.7-4.7 4.7h-50.4c-2.6 0-4.7-2.1-4.7-4.7s2.1-4.7 4.7-4.7zm-.8 5.7h34.6c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7 0-.3-.1-.5-.3-.7-.2-.2-.5-.3-.7-.3h-34.6c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7 0 .1 0 .3.1.4.1.1.1.2.2.3.1.1.2.2.3.2.1 0 .3.1.4.1zm51.2 18.9h-50.4c-1.2 0-2.4-.5-3.3-1.4-.9-.9-1.4-2.1-1.4-3.3 0-1.3.5-2.4 1.4-3.3.9-.9 2.1-1.4 3.3-1.4h50.4c1.3 0 2.5.5 3.3 1.4.9.9 1.4 2.1 1.4 3.3 0 1.3-.5 2.4-1.4 3.3-.8.9-2 1.4-3.3 1.4zm-16.6-3.7h-34.6c-.3 0-.5-.1-.7-.3-.2-.2-.3-.5-.3-.7 0-.3.1-.5.3-.7.2-.2.5-.3.7-.3h34.6c.1 0 .3 0 .4.1.1.1.2.1.3.2.1.1.2.2.2.3.1.1.1.3.1.4 0 .3-.1.5-.3.7-.2.2-.4.3-.7.3z" - clipRule="evenodd" - opacity="0.24" - /> - - <path - fill="#FFAB00" - d="M248.8 161.845c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1-.1.6.4 1 1 1zm0 15.2c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1-.1.5.4 1 1 1zm0 15.2c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1-.1.5.4 1 1 1zm-4.6 15.1c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1 0 .6.4 1 1 1zm0 15.2c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1s.4 1 1 1zm0 15.2c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1s.4 1 1 1zm0 15.1c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1 0 .6.4 1 1 1zm4.6 15.2c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1-.1.5.4 1 1 1zm0 15.2c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1-.1.5.4 1 1 1z" - /> - - <path - fill={PRIMARY_DARK} - d="M253.3 161.845c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1 0 .6.4 1 1 1zm0 15.2c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1s.4 1 1 1zm0 15.2c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1s.4 1 1 1zm-4.5 15.1c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1-.1.6.4 1 1 1zm0 15.2c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1-.1.5.4 1 1 1zm4.5 15.2c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1s.4 1 1 1zm0 15.1c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1 0 .6.4 1 1 1zm0 15.2c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1s.4 1 1 1zm0 15.2c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1s.4 1 1 1zm-9.1-121.4c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1 0 .6.4 1 1 1zm0 15.2c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1s.4 1 1 1zm0 15.2c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1s.4 1 1 1zm9.1 15.1c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1 0 .6.4 1 1 1zm0 15.2c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1s.4 1 1 1zm-4.5 15.2c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1-.1.5.4 1 1 1zm0 15.1c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1-.1.6.4 1 1 1zm-4.6 15.2c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1s.4 1 1 1zm0 15.2c.6 0 1-.5 1-1 0-.6-.5-1-1-1-.6 0-1 .5-1 1s.4 1 1 1z" - /> - - <path - fill={PRIMARY_DARKER} - d="M170.6 243.645l-4.5 5.6c-.4.5-.9.9-1.5 1.2-.6.3-1.2.4-1.8.4h-40.2c-1.1 0-2.1.4-2.8 1.1-.8.7-1.3 1.7-1.4 2.7l-3.6 42.9c-.1.5 0 1 .2 1.5s.4.9.7 1.3c.3.4.7.7 1.2.9.5.2 1 .3 1.5.3h78.9c1.1 0 2.1-.4 2.8-1.1.8-.7 1.3-1.7 1.4-2.7l4.3-51.6c.1-.5 0-1-.2-1.5s-.4-.9-.7-1.3c-.3-.4-.7-.7-1.2-.9-.5-.2-1-.3-1.4-.3h-28.5c-.6 0-1.2.1-1.8.4-.5.2-1 .6-1.4 1.1z" - /> - - <path - fill="url(#paint2_linear_1_99)" - d="M154.6 246.645l-3.6 5.3c-.3.5-.8.9-1.3 1.1-.5.3-1.1.4-1.7.4h-33.1c-.5 0-1 .1-1.4.2-.4.2-.9.5-1.2.8-.3.3-.6.8-.8 1.2-.2.5-.2.9-.2 1.4l3 40.6c.1 1 .6 2 1.4 2.6.8.7 1.8 1 2.8 1h78.9c.5 0 1-.1 1.4-.2.4-.2.9-.5 1.2-.8.3-.3.6-.8.8-1.2.2-.5.2-.9.2-1.4l-3.6-48.9c-.1-1-.6-1.9-1.4-2.6-.8-.7-1.8-1-2.8-1h-35.5c-.6 0-1.2.1-1.7.4-.5.3-1 .7-1.4 1.1z" - /> - - <defs> - <linearGradient - id="paint0_linear_1_99" - x1="179.716" - x2="100.71" - y1="61.393" - y2="249.434" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_MAIN} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - <linearGradient - id="paint1_linear_1_99" - x1="209.454" - x2="130.449" - y1="73.888" - y2="261.929" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_MAIN} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - <linearGradient - id="paint2_linear_1_99" - x1="168.021" - x2="145.633" - y1="238.622" - y2="311.266" - gradientUnits="userSpaceOnUse" - > - <stop stopColor={PRIMARY_MAIN} /> - <stop offset="1" stopColor={PRIMARY_DARK} /> - </linearGradient> - </defs> - </Box> - ); -} - -export default memo(UpgradeStorageIllustration); diff --git a/src/assets/illustrations/upload-illustration.tsx b/src/assets/illustrations/upload-illustration.tsx deleted file mode 100644 index cea7d5b115cb071f6031ef923ae3a91e06ba0213..0000000000000000000000000000000000000000 --- a/src/assets/illustrations/upload-illustration.tsx +++ /dev/null @@ -1,617 +0,0 @@ -import { memo } from 'react'; - -import { useTheme } from '@mui/material/styles'; -import Box, { BoxProps } from '@mui/material/Box'; - -import BackgroundShape from './background-shape'; - -// ---------------------------------------------------------------------- - -function UploadIllustration({ ...other }: BoxProps) { - const theme = useTheme(); - - const PRIMARY_MAIN = theme.palette.primary.main; - - const PRIMARY_DARK = theme.palette.primary.dark; - - const PRIMARY_DARKER = theme.palette.primary.darker; - - return ( - <Box - component="svg" - width="100%" - height="100%" - viewBox="0 0 480 360" - xmlns="http://www.w3.org/2000/svg" - {...other} - > - <BackgroundShape /> - - <defs> - <linearGradient id="linearGradient-2" x1="30.113%" x2="30.113%" y1="0%" y2="100%"> - <stop offset="0%" stopOpacity="0" /> - <stop offset="100%" /> - </linearGradient> - </defs> - - <path - fill="#FF4842" - fillRule="nonzero" - d="M293.006 206.192c-2.248 2.672-4.676 2.628-6.123 2.251l.054-1.384s5.979-2.733 5.827-2.159c-.057.215.057.733.242 1.292zM309.393 209.217c-3.818 2.206-6.058-.38-6.578-1.112.32-.84.801-2.204.703-2.592-.144-.577 5.827 2.155 5.827 2.155l.048 1.549zM305.303 187.204s3.632-2.093 4.425-1.151c.792.942-4.425 1.151-4.425 1.151zM307.497 188.355s-.598.299.721.681c1.318.383-.721-.681-.721-.681zM285.532 182.599c-.123.036 3.022 2.123 5.862.395-.012 0-5.154-.61-5.862-.395zM291.239 186.591s-.861 1.692-2.625 1.943c-1.764.251 2.625-1.943 2.625-1.943zM302.785 190.262s4.138 6.578 3.346 8.129c-.793 1.552-3.346-8.129-3.346-8.129zM294.62 216.416c0 .368 0 .712-.036.996-.107 1.33-3.381.828-3.381.828-2.99.416-4.066-1.019-4.422-2.392a5.444 5.444 0 01-.164-1.363 5.606 5.606 0 01.054-.819v-.272a1.998 1.998 0 011.859.379c1.331 1.08 3.095.252 3.095.252s1.294.107 1.793.538c.281.242.745-.341 1.098-.897.021.359.054 1.007.074 1.701.024.356.03.714.03 1.049z" - opacity="0.05" - /> - - <path - fill="#FF4842" - fillRule="nonzero" - d="M289.37 216.339s-.897.879-2.589-.479a5.444 5.444 0 01-.164-1.363c.864.658 2.466 1.842 2.753 1.842zM294.62 216.416a.67.67 0 01-.519.132.672.672 0 01-.452-.287c.348-.266.669-.566.956-.897.009.359.015.717.015 1.052zM301.637 217.032c0 .371 0 .715.033.996.108 1.333 3.382.828 3.382.828 2.989.419 4.066-1.017 4.421-2.392a5.728 5.728 0 00.111-2.182v-.272a2.024 2.024 0 00-1.862.379c-1.331 1.08-3.092.251-3.092.251s-1.294.111-1.794.542c-.281.242-.744-.341-1.094-.897a61.426 61.426 0 00-.078 1.701c-.024.35-.03.708-.027 1.046z" - opacity="0.05" - /> - - <path - fill="#FF4842" - fillRule="nonzero" - d="M306.887 216.949s.897.879 2.587-.479c.112-.444.169-.901.167-1.36-.867.655-2.47 1.839-2.754 1.839zM301.637 217.032a.67.67 0 00.969-.155 6.35 6.35 0 01-.957-.897c-.009.356-.014.714-.012 1.052zM319.614 106.269c.063-.138.123-.275.18-.41.057-.134.077-.209.11-.317-.11.237-.206.48-.29.727z" - opacity="0.05" - /> - - <path - fill={PRIMARY_DARKER} - fillRule="nonzero" - d="M157.592 279.461a4.114 4.114 0 01-.917-3.131l13.196-107.979 1.094-8.97a4.142 4.142 0 014.078-3.635l38.654-.257a4.135 4.135 0 004.108-4.249l-.015-.409a4.14 4.14 0 014.135-4.279h40.619a4.134 4.134 0 014.098 4.682 4.137 4.137 0 003.995 4.682l39.01.996a4.13 4.13 0 013.97 4.831l-19.502 113.909-.368 2.152a4.042 4.042 0 01-.598 1.543l-135.557.114z" - /> - - <path - fill="#FFF" - fillRule="nonzero" - d="M251.256817 123.296578L274.098317 123.296578 274.098317 200.823078 251.256817 200.823078z" - transform="rotate(34.64 262.678 162.06)" - /> - - <path - fill="#FFC107" - fillRule="nonzero" - d="M270.624591 129.857671L286.750291 129.857671 286.750291 145.983371 270.624591 145.983371z" - transform="rotate(34.804 278.687 137.92)" - /> - - <path - fill="#FFC107" - fillRule="nonzero" - d="M260.275579 145.813111L276.423079 145.813111 276.423079 161.960611 260.275579 161.960611z" - opacity="0.5" - transform="rotate(34.64 268.35 153.887)" - /> - - <path - fill="#FFC107" - fillRule="nonzero" - d="M249.191579 161.852111L265.339079 161.852111 265.339079 177.999611 249.191579 177.999611z" - opacity="0.3" - transform="rotate(34.64 257.265 169.926)" - /> - - <path - fill="#FFF" - fillRule="nonzero" - d="M237.472537 121.334214L260.314037 121.334214 260.314037 198.567714 237.472537 198.567714z" - transform="rotate(16.29 248.893 159.951)" - /> - - <path - fill="#FF4842" - fillRule="nonzero" - d="M249.053192 123.761554L265.200692 123.761554 265.200692 139.909054 249.053192 139.909054z" - transform="rotate(16.29 257.127 131.835)" - /> - - <path - fill="#FF4842" - fillRule="nonzero" - d="M243.584192 142.473554L259.731692 142.473554 259.731692 158.621053 243.584192 158.621053z" - opacity="0.5" - transform="rotate(16.29 251.658 150.547)" - /> - - <path - fill="#FF4842" - fillRule="nonzero" - d="M238.116192 161.182554L254.263692 161.182554 254.263692 177.330054 238.116192 177.330054z" - opacity="0.3" - transform="rotate(16.29 246.19 169.256)" - /> - - <path - fill="#FFF" - fillRule="nonzero" - d="M230.099192 121.641542L252.940692 121.641542 252.940692 198.875042 230.099192 198.875042z" - transform="rotate(4.6 241.52 160.258)" - /> - - <path - fill="#1890FF" - fillRule="nonzero" - d="M235.800489 122.985499L251.947989 122.985499 251.947989 139.132999 235.800489 139.132999z" - transform="rotate(4.6 243.874 131.06)" - /> - - <path - fill="#1890FF" - fillRule="nonzero" - d="M234.234488 142.413498L250.381988 142.413498 250.381988 158.560998 234.234488 158.560998z" - opacity="0.5" - transform="rotate(4.6 242.308 150.487)" - /> - - <path - fill="#1890FF" - fillRule="nonzero" - d="M232.672488 161.846499L248.819988 161.846499 248.819988 177.993999 232.672488 177.993999z" - opacity="0.3" - transform="rotate(4.6 240.746 169.92)" - /> - - <path - fill="#FFF" - fillRule="nonzero" - d="M224.736657 123.384871L247.578157 123.384871 247.578157 200.618371 224.736657 200.618371z" - transform="rotate(-2.61 236.157 162.002)" - /> - - <path - fill={PRIMARY_MAIN} - fillRule="nonzero" - d="M226.751283 124.659968L242.898783 124.659968 242.898783 140.807468 226.751283 140.807468z" - transform="rotate(-2.61 234.825 132.734)" - /> - - <path - fill={PRIMARY_MAIN} - fillRule="nonzero" - d="M228.305601 143.479224L244.473301 143.479224 244.473301 159.646924 228.305601 159.646924z" - opacity="0.5" - transform="rotate(-2.862 236.39 151.563)" - /> - - <path - fill={PRIMARY_MAIN} - fillRule="nonzero" - d="M228.525282 163.608968L244.672782 163.608968 244.672782 179.756468 228.525282 179.756468z" - opacity="0.3" - transform="rotate(-2.61 236.599 171.683)" - /> - - <path - fill="#F4F6F8" - fillRule="nonzero" - d="M232.679 225.726l-20.294 7.851-29.661 11.466c-1.121-2.093-2.771-4.921-4.813-8.297-7.026-11.642-18.65-29.75-29.001-45.665-11.66-17.938-21.696-33.075-21.696-33.075l7.265-2.093 59.346-17.23 38.854 87.043z" - /> - - <path - fill="#000" - fillRule="nonzero" - d="M232.679 225.726l-20.294 7.851a152.535 152.535 0 01-34.484 3.169c-7.026-11.642-18.65-29.75-29-45.665l-14.42-35.18 59.343-17.218 38.855 87.043z" - opacity="0.1" - /> - - <path - fill={PRIMARY_MAIN} - fillRule="nonzero" - d="M247.777 220.841s-31.526 18.65-78.596 14.432l-37.525-91.486 17.984-3.091 62.168-10.677 35.279 89.043.69 1.779z" - /> - - <path - fill="#FF4842" - fillRule="nonzero" - d="M247.075 219.074c-7.424.365-16.013.329-24.654-.702-9.351-1.101-18.757-3.367-26.82-7.523-6.742-3.471-12.506-7.247-17.532-11.776-13.074-11.759-21.164-28.579-28.429-58.365l62.168-10.677 35.267 89.043z" - opacity="0.1" - /> - - <path - fill="#FFF" - fillRule="nonzero" - d="M270.203 213.959s-23.239 4.55-46.894 1.749c-9.351-1.1-18.757-3.367-26.82-7.522-6.742-3.471-12.503-7.247-17.532-11.777-16.181-14.557-24.725-36.866-33.536-81.918 0 0 38.633 9.325 76.836-11.101-.012.015 12.865 80.373 47.946 110.569z" - /> - - <path - fill={PRIMARY_MAIN} - fillRule="nonzero" - d="M165.405 131.03s31.416-1.776 40.187-8.548l1.331 4.276s-20.758 9.157-41.518 9.268v-4.996zM165.405 152.137s30.417-1.665 53.399-12.766l.777 1.776s-18.237 10.647-54.176 13.433v-2.443zM167.853 160.362s30.418-1.665 53.397-12.766l.777 1.776s-18.237 10.643-54.174 13.433v-2.443zM170.299 168.599s30.417-1.666 53.399-12.766l.774 1.775s-18.237 10.647-54.173 13.433v-2.442zM172.748 176.835s30.417-1.665 53.396-12.766l.777 1.776s-18.237 10.647-54.173 13.433v-2.443zM175.193 185.075s30.417-1.665 53.399-12.766l.774 1.776s-18.237 10.643-54.173 13.433v-2.443z" - opacity="0.3" - /> - - <path - fill={PRIMARY_MAIN} - fillRule="nonzero" - d="M389.069 287.344s-12.641-.762-11.152 8.097c0 0-.299 1.563 1.124 2.275 0 0 .021-.658 1.295-.434.454.077.916.099 1.375.066a2.832 2.832 0 001.677-.694c.468-.409 3.555-1.468 4.936-7.274 0 0 1.023-1.267.981-1.593l-2.132.897s.73 1.54.156 2.816c0 0-.069-2.759-.479-2.691-.083 0-1.109.533-1.109.533s1.253 2.69.299 4.628c0 0 .359-3.304-.699-4.434l-1.495.876s1.465 2.768.472 5.029c0 0 .254-3.465-.789-4.817l-1.361 1.062s1.379 2.729.539 4.604c0 0-.111-4.036-.835-4.341 0 0-1.195 1.049-1.369 1.494 0 0 .942 1.98.356 3.026 0 0-.359-2.691-.652-2.691 0 0-1.196 1.794-1.309 2.99 0 0 .051-1.818 1.022-3.172a3.593 3.593 0 00-1.818.942s.186-1.262 2.111-1.37c0 0 .981-1.351 1.241-1.435 0 0-1.914-.158-3.074.356 0 0 1.023-1.196 3.427-.649l1.342-1.094s-2.52-.347-3.588.036c0 0 1.229-1.052 3.95-.299l1.462-.873s-2.147-.463-3.426-.299c0 0 1.348-.729 3.856.06l1.044-.47s-1.573-.299-2.033-.358c-.461-.06-.488-.174-.488-.174a5.426 5.426 0 012.957.329s2.222-.813 2.186-.954z" - /> - - <ellipse - cx="380.363" - cy="298.487" - fill={PRIMARY_MAIN} - fillRule="nonzero" - opacity="0.1" - rx="8.945" - ry="1.513" - /> - - <path - fill={PRIMARY_MAIN} - fillRule="nonzero" - d="M394.956 258.102s-7.125-.43-6.279 4.565a1.218 1.218 0 00.631 1.283s.015-.371.733-.245c.255.042.515.054.774.036.349-.023.681-.159.945-.389.264-.23 2.003-.828 2.783-4.102 0 0 .577-.714.553-.897l-1.196.511s.41.87.087 1.591c0 0-.039-1.558-.269-1.522-.048 0-.625.299-.625.299s.706 1.495.173 2.61c0 0 .204-1.862-.394-2.502l-.846.496s.825 1.561.266 2.834c0 0 .143-1.955-.446-2.714l-.765.598s.774 1.539.299 2.595c0 0-.063-2.275-.469-2.446a4.75 4.75 0 00-.775.834s.532 1.118.204 1.707c0 0-.204-1.515-.368-1.521 0 0-.67 1.001-.739 1.689a3.671 3.671 0 01.577-1.794 2.007 2.007 0 00-1.025.532s.104-.711 1.196-.771c0 0 .553-.763.699-.81 0 0-1.079-.09-1.734.2 0 0 .577-.67 1.932-.365l.759-.619s-1.423-.194-2.024.021c0 0 .694-.598 2.227-.161l.826-.494a7.445 7.445 0 00-1.935-.164s.763-.413 2.174.033l.598-.263s-.897-.177-1.148-.203c-.252-.027-.275-.099-.275-.099a3.078 3.078 0 011.668.185s1.232-.46 1.208-.538z" - /> - - <ellipse - cx="390.052" - cy="264.383" - fill={PRIMARY_MAIN} - fillRule="nonzero" - opacity="0.1" - rx="5.044" - ry="1" - /> - - <path - fill={PRIMARY_MAIN} - fillRule="nonzero" - d="M352.896 262.437s-8.604-.52-7.588 5.51a1.47 1.47 0 00.763 1.549s0-.449.897-.299c.309.052.623.067.935.045a1.923 1.923 0 001.142-.473c.318-.279 2.419-.998 3.361-4.951 0 0 .697-.861.667-1.085l-1.468.622s.496 1.046.104 1.916c0 0-.048-1.877-.326-1.835-.056 0-.753.364-.753.364s.852 1.824.209 3.152c0 0 .245-2.249-.475-3.02l-1.023.598s.996 1.886.32 3.423c0 0 .174-2.359-.535-3.289l-.927.724s.939 1.857.365 3.133c0 0-.072-2.747-.565-2.954 0 0-.81.715-.933 1.008 0 0 .64 1.348.242 2.06 0 0-.245-1.83-.445-1.839 0 0-.804 1.214-.897 2.042.04-.768.28-1.512.697-2.159a2.427 2.427 0 00-1.235.643s.125-.858 1.435-.933c0 0 .667-.92.846-.974 0 0-1.303-.111-2.093.239 0 0 .694-.807 2.329-.44l.915-.747s-1.713-.233-2.442.024c0 0 .837-.715 2.69-.191l.996-.598s-1.462-.314-2.335-.201c0 0 .921-.496 2.625.042l.711-.32s-1.07-.209-1.384-.242c-.314-.033-.329-.119-.329-.119a3.69 3.69 0 012.012.221s1.519-.553 1.492-.646z" - /> - - <ellipse - cx="346.97" - cy="270.022" - fill={PRIMARY_MAIN} - fillRule="nonzero" - opacity="0.1" - rx="6.09" - ry="1.028" - /> - - <rect - width="51.026" - height="91.312" - x="303.926" - y="69.211" - fill="#FFF" - fillRule="nonzero" - rx="4.737" - transform="rotate(-71.99 329.44 114.867)" - /> - - <circle - cx="303.613" - cy="103.507" - r="9.376" - fill={PRIMARY_MAIN} - fillRule="nonzero" - opacity="0.2" - /> - - <path - fill={PRIMARY_MAIN} - fillRule="nonzero" - d="M344.582495 86.4883769L347.150665 86.4883769 347.150665 127.336977 344.582495 127.336977z" - opacity="0.2" - transform="rotate(-71.99 345.867 106.913)" - /> - - <path - fill={PRIMARY_MAIN} - fillRule="nonzero" - d="M333.028401 99.6373982L335.596571 99.6373982 335.596571 120.445898 333.028401 120.445898z" - opacity="0.2" - transform="rotate(-71.99 334.312 110.042)" - /> - - <path - fill={PRIMARY_MAIN} - fillRule="nonzero" - d="M337.109071 101.431004L339.677241 101.431004 339.677241 135.086304 337.109071 135.086304z" - opacity="0.2" - transform="rotate(-71.99 338.393 118.259)" - /> - - <path - fill={PRIMARY_MAIN} - fillRule="nonzero" - d="M338.505494 105.174377L341.073664 105.174377 341.073664 146.022978 338.505494 146.022978z" - opacity="0.2" - transform="rotate(-71.99 339.79 125.599)" - /> - - <path - fill={PRIMARY_MAIN} - fillRule="nonzero" - d="M348.060839 134.648161L353.026769 134.648161 353.026769 145.952261 348.060839 145.952261z" - opacity="0.5" - transform="rotate(-71.99 350.544 140.3)" - /> - - <rect - width="50.3" - height="78.305" - x="291.549" - y="174.486" - fill="#FFF" - fillRule="nonzero" - rx="4" - transform="rotate(-57.265 316.7 213.638)" - /> - - <path - fill="#DFE3E8" - fillRule="nonzero" - d="M278.038439 203.88874L292.269539 203.88874 292.269539 207.23723 278.038439 207.23723z" - transform="rotate(-57.57 285.154 205.563)" - /> - - <path - fill="#DFE3E8" - fillRule="nonzero" - d="M283.007935 199.201889L314.262535 199.201889 314.262535 202.272339 283.007935 202.272339z" - transform="rotate(-57.57 298.635 200.737)" - /> - - <path - fill="#DFE3E8" - fillRule="nonzero" - d="M288.543935 202.715889L319.798535 202.715889 319.798535 205.786339 288.543935 205.786339z" - transform="rotate(-57.57 304.171 204.251)" - /> - - <path - fill="#DFE3E8" - fillRule="nonzero" - d="M294.078936 206.235889L325.333536 206.235889 325.333536 209.306339 294.078936 209.306339z" - transform="rotate(-57.57 309.706 207.771)" - /> - - <path - fill="#DFE3E8" - fillRule="nonzero" - d="M299.879919 211.40702L331.090719 211.40702 331.090719 214.47316 299.879919 214.47316z" - transform="rotate(-57.265 315.485 212.94)" - /> - - <path - fill="#F4F6F8" - fillRule="nonzero" - d="M305.149936 213.268889L336.404536 213.268889 336.404536 216.339339 305.149936 216.339339z" - transform="rotate(-57.57 320.777 214.804)" - /> - - <path - fill="#F4F6F8" - fillRule="nonzero" - d="M310.685935 216.782889L341.940535 216.782889 341.940535 219.853339 310.685935 219.853339z" - transform="rotate(-57.57 326.313 218.318)" - /> - - <path - fill="#DFE3E8" - fillRule="nonzero" - d="M341.417983 210.406958L349.511163 210.406958 349.511163 218.500138 341.417983 218.500138z" - transform="rotate(-57.57 345.465 214.454)" - /> - - <path - fill={PRIMARY_MAIN} - fillRule="nonzero" - d="M269.277 168.76l-45.767.493a3.127 3.127 0 00-3.094 3.125v3.782a3.127 3.127 0 01-3.05 3.124l-33.024.792a3.124 3.124 0 01-3.095-2.308l-1.551-5.701a3.124 3.124 0 00-3.053-2.308l-44.113.475a3.125 3.125 0 00-3.05 3.648l17.747 104.449a3.129 3.129 0 003.071 2.604l139.363.598a3.129 3.129 0 003.082-3.714l-20.366-106.521a3.125 3.125 0 00-3.1-2.538z" - /> - - <path - fill={PRIMARY_DARK} - fillRule="nonzero" - d="M269.277 168.76l-45.767.493a3.127 3.127 0 00-3.094 3.125v3.782a3.127 3.127 0 01-3.05 3.124l-33.024.792a3.124 3.124 0 01-3.095-2.308l-1.551-5.701a3.124 3.124 0 00-3.053-2.308l-44.113.475a3.125 3.125 0 00-3.05 3.648l17.747 104.449a3.129 3.129 0 003.071 2.604l139.363.598a3.129 3.129 0 003.082-3.714l-20.366-106.521a3.125 3.125 0 00-3.1-2.538z" - opacity="0.243" - /> - - <path - fill="url(#linearGradient-2)" - fillRule="nonzero" - d="M269.277 168.76l-45.767.493a3.127 3.127 0 00-3.094 3.125v3.782a3.127 3.127 0 01-3.05 3.124l-33.024.792a3.124 3.124 0 01-3.095-2.308l-1.551-5.701a3.124 3.124 0 00-3.053-2.308l-44.113.475a3.125 3.125 0 00-3.05 3.648l17.747 104.449a3.129 3.129 0 003.071 2.604l139.363.598a3.129 3.129 0 003.082-3.714l-20.366-106.521a3.125 3.125 0 00-3.1-2.538z" - opacity="0.32" - /> - - <ellipse - cx="119.593" - cy="258.664" - fill={PRIMARY_MAIN} - fillRule="nonzero" - opacity="0.1" - rx="4.846" - ry="1" - /> - - <ellipse - cx="101.03" - cy="260.545" - fill={PRIMARY_MAIN} - fillRule="nonzero" - opacity="0.1" - rx="4.846" - ry="1" - /> - - <ellipse - cx="108.459" - cy="265.905" - fill={PRIMARY_MAIN} - fillRule="nonzero" - opacity="0.1" - rx="3.444" - ry="1" - /> - - <ellipse - cx="89.193" - cy="265.433" - fill={PRIMARY_MAIN} - fillRule="nonzero" - opacity="0.1" - rx="3.444" - ry="1" - /> - - <path - fill={PRIMARY_MAIN} - fillRule="nonzero" - d="M100.925 260.398s6.796-22.279-1.064-31.204c-5.881-6.676-12.557-5.877-15.547-5.052a5.528 5.528 0 00-3.564 2.963c-1.046 2.254-.858 5.913 6.521 10.186 12.35 7.151 13.119 16.96 13.119 16.96l.535 6.147z" - /> - - <path - stroke={PRIMARY_DARKER} - strokeLinecap="round" - strokeWidth="0.5" - d="M85.382 227.302s20.031 6.278 15.546 33.096M97.083 229.547s-2.76 1.86-1.88 4.655M87.39 231.203s1.687-1.716 3.741-.768M95.31 239.832s2.963-1.495 3.728.379M102.638 242.962s-2.224-.176-2.263.897" - /> - - <path - fill={PRIMARY_MAIN} - fillRule="nonzero" - d="M101.2 260.575s-7.961-16.193-10.147-15.846c-1.037.17-1.516 1.196-1.734 2.218a6.516 6.516 0 00.434 3.941c1.13 2.601 4.165 7.519 11.447 9.687z" - /> - - <path - stroke={PRIMARY_DARKER} - strokeLinecap="round" - strokeWidth="0.5" - d="M91.113 247.808s8.353 12.115 9.968 12.647" - /> - - <path - stroke={PRIMARY_DARKER} - strokeLinecap="round" - strokeWidth="0.5" - d="M90.344 249.701L92.293 249.701" - /> - - <path - stroke={PRIMARY_DARKER} - strokeLinecap="round" - strokeWidth="0.5" - d="M92.68 254.132L95.738 254.263" - /> - - <path - stroke={PRIMARY_DARKER} - strokeLinecap="round" - strokeWidth="0.5" - d="M94.542 250.586L94.21 252.179" - /> - - <path - stroke={PRIMARY_DARKER} - strokeLinecap="round" - strokeWidth="0.5" - d="M97.792 255.432L97.732 256.879" - /> - - <path - fill={PRIMARY_MAIN} - fillRule="nonzero" - d="M100.964 260.575s7.959-16.193 10.144-15.846c1.041.17 1.519 1.196 1.734 2.218a6.514 6.514 0 01-.433 3.941c-1.13 2.601-4.168 7.519-11.445 9.687z" - /> - - <path - stroke={PRIMARY_DARKER} - strokeLinecap="round" - strokeWidth="0.5" - d="M111.051 247.808s-8.371 12.115-9.97 12.647" - /> - - <path - stroke={PRIMARY_DARKER} - strokeLinecap="round" - strokeWidth="0.5" - d="M111.82 249.701L109.871 249.701" - /> - - <path - stroke={PRIMARY_DARKER} - strokeLinecap="round" - strokeWidth="0.5" - d="M109.485 254.132L106.426 254.263" - /> - - <path - stroke={PRIMARY_DARKER} - strokeLinecap="round" - strokeWidth="0.5" - d="M107.622 250.586L107.954 252.179" - /> - - <path - stroke={PRIMARY_DARKER} - strokeLinecap="round" - strokeWidth="0.5" - d="M104.372 255.432L104.432 256.879" - /> - - <path - fill={PRIMARY_MAIN} - fillRule="nonzero" - d="M87.295 264.357a1.375 1.375 0 01-.452-.685.599.599 0 01.317-.697c.3-.11.598.09.837.299.24.21.512.431.81.38a1.237 1.237 0 01-.382-1.16.47.47 0 01.105-.236c.161-.174.454-.099.648.039.598.43.787 1.264.79 2.018.03-.277.03-.555 0-.831a.853.853 0 01.334-.727.938.938 0 01.476-.114.988.988 0 01.774.222.767.767 0 01-.03.947c-.229.257-.5.474-.801.64a1.805 1.805 0 00-.571.547.399.399 0 00-.042.096h-1.74a4.826 4.826 0 01-1.073-.738zM117.626 257.833a1.355 1.355 0 01-.452-.682.599.599 0 01.314-.696c.299-.111.598.089.837.299.239.209.509.436.817.391a1.236 1.236 0 01-.386-1.157.472.472 0 01.107-.236c.162-.173.455-.099.649.036.613.433.787 1.268.79 2.021a4.008 4.008 0 000-.834.852.852 0 01.299-.736.955.955 0 01.475-.11.998.998 0 01.774.218.768.768 0 01-.033.951 2.996 2.996 0 01-.798.64 1.767 1.767 0 00-.571.544.499.499 0 00-.042.098h-1.701a4.78 4.78 0 01-1.079-.747zM107.518 264.357a1.406 1.406 0 01-.455-.685.6.6 0 01.317-.697c.299-.11.598.09.837.299.239.21.505.437.816.395a1.247 1.247 0 01-.385-1.16.472.472 0 01.107-.236c.162-.174.455-.099.649.039.613.43.783 1.264.789 2.018.03-.277.03-.555 0-.832a.855.855 0 01.314-.735.93.93 0 01.476-.114.988.988 0 01.774.222.764.764 0 01-.033.947 3.028 3.028 0 01-.798.64 1.798 1.798 0 00-.571.547.411.411 0 00-.042.096h-1.734c-.385-.2-.742-.45-1.061-.744z" - /> - - <circle - cx="84.467" - cy="87.003" - r="6.467" - fill={PRIMARY_MAIN} - fillRule="nonzero" - opacity="0.1" - /> - - <circle - cx="395.425" - cy="138.681" - r="6.467" - fill={PRIMARY_MAIN} - fillRule="nonzero" - opacity="0.1" - /> - - <circle - cx="279.178" - cy="66.467" - r="6.467" - fill={PRIMARY_MAIN} - fillRule="nonzero" - opacity="0.1" - /> - - <circle - cx="97.4" - cy="122.68" - r="10.838" - fill={PRIMARY_MAIN} - fillRule="nonzero" - opacity="0.1" - /> - - <path - fill={PRIMARY_DARK} - fillRule="nonzero" - d="M206.029 209.911c-7.975 0-14.44 6.465-14.44 14.44s6.465 14.44 14.44 14.44 14.44-6.465 14.44-14.44-6.465-14.44-14.44-14.44z" - /> - - <path - fill={PRIMARY_MAIN} - fillRule="nonzero" - d="M206.029 211.59c7.047 0 12.761 5.714 12.761 12.761 0 7.048-5.714 12.761-12.761 12.761-7.048 0-12.761-5.713-12.761-12.761.006-7.045 5.716-12.754 12.761-12.761" - opacity="0.72" - /> - - <path - fill={PRIMARY_DARK} - fillRule="nonzero" - d="M200.058 225.406l-.699-.681a.721.721 0 010-1.065l6.127-5.984a.753.753 0 01.546-.231c.206 0 .404.083.545.231l6.127 5.978a.733.733 0 010 1.065l-.699.682a.768.768 0 01-1.091 0l-3.622-3.727v8.843a.725.725 0 01-.219.523.76.76 0 01-.534.217h-1.009a.75.75 0 01-.759-.74v-8.832l-3.622 3.726a.768.768 0 01-1.091-.005z" - /> - </Box> - ); -} - -export default memo(UploadIllustration); diff --git a/src/components/carousel/arrow-icons.tsx b/src/components/carousel/arrow-icons.tsx deleted file mode 100644 index c9cae17250377ed49b613ed75c332765d327748f..0000000000000000000000000000000000000000 --- a/src/components/carousel/arrow-icons.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import Iconify, { IconifyProps } from '@/components/iconify'; - -// ---------------------------------------------------------------------- - -type Props = { - icon?: IconifyProps; // Right icon - isRTL?: boolean; -}; - -export function LeftIcon({ icon = 'eva:arrow-ios-forward-fill', isRTL }: Props) { - return ( - <Iconify - icon={icon} - sx={{ - transform: ' scaleX(-1)', - ...(isRTL && { - transform: ' scaleX(1)', - }), - }} - /> - ); -} - -export function RightIcon({ icon = 'eva:arrow-ios-forward-fill', isRTL }: Props) { - return ( - <Iconify - icon={icon} - sx={{ - ...(isRTL && { - transform: ' scaleX(-1)', - }), - }} - /> - ); -} diff --git a/src/components/carousel/carousel-arrow-index.tsx b/src/components/carousel/carousel-arrow-index.tsx deleted file mode 100644 index edffb6a2797a4d17f149dcf3e4f4e64c7cddf2ca..0000000000000000000000000000000000000000 --- a/src/components/carousel/carousel-arrow-index.tsx +++ /dev/null @@ -1,76 +0,0 @@ -import Box from '@mui/material/Box'; -import IconButton from '@mui/material/IconButton'; -import Typography from '@mui/material/Typography'; -import { Theme, styled, SxProps, useTheme } from '@mui/material/styles'; - -import { bgBlur } from '@/theme/css'; - -import { IconifyProps } from '@/components/iconify'; -import { LeftIcon, RightIcon } from './arrow-icons'; - -// ---------------------------------------------------------------------- - -const StyledRoot = styled(Box)(({ theme }) => ({ - ...bgBlur({ - opacity: 0.48, - color: theme.palette.grey[900], - }), - zIndex: 9, - display: 'inline-flex', - alignItems: 'center', - position: 'absolute', - bottom: theme.spacing(2), - right: theme.spacing(2), - padding: theme.spacing(0.25), - color: theme.palette.common.white, - borderRadius: theme.shape.borderRadius, -})); - -const StyledIconButton = styled(IconButton)({ - width: 28, - height: 28, - padding: 0, - opacity: 0.48, - '&:hover': { opacity: 1 }, -}); - -// ---------------------------------------------------------------------- - -type Props = { - index: number; - total: number; - icon?: IconifyProps; // Right icon - onNext?: VoidFunction; - onPrev?: VoidFunction; - sx?: SxProps<Theme>; -}; - -export default function CarouselArrowIndex({ - index, - total, - onNext, - onPrev, - icon, - sx, - ...other -}: Props) { - const theme = useTheme(); - - const isRTL = theme.direction === 'rtl'; - - return ( - <StyledRoot sx={sx} {...other}> - <StyledIconButton color="inherit" onClick={onPrev}> - <LeftIcon icon={icon} isRTL={isRTL} /> - </StyledIconButton> - - <Typography variant="subtitle2" component="span" sx={{ mx: 0.25 }}> - {index + 1}/{total} - </Typography> - - <StyledIconButton color="inherit" onClick={onNext}> - <RightIcon icon={icon} isRTL={isRTL} /> - </StyledIconButton> - </StyledRoot> - ); -} diff --git a/src/components/carousel/carousel-arrows.tsx b/src/components/carousel/carousel-arrows.tsx deleted file mode 100644 index 80768ee22b261282427281d68f176f114640f641..0000000000000000000000000000000000000000 --- a/src/components/carousel/carousel-arrows.tsx +++ /dev/null @@ -1,130 +0,0 @@ -import Stack, { StackProps } from '@mui/material/Stack'; -import { alpha, styled, useTheme } from '@mui/material/styles'; -import IconButton, { IconButtonProps } from '@mui/material/IconButton'; - -import { IconifyProps } from '@/components/iconify'; -import { LeftIcon, RightIcon } from './arrow-icons'; - -// ---------------------------------------------------------------------- - -interface StyledIconButtonProps extends IconButtonProps { - filled?: boolean; - shape?: 'circular' | 'rounded'; - hasChild?: boolean; -} - -const StyledIconButton = styled(IconButton, { - shouldForwardProp: (prop) => prop !== 'filled' && prop !== 'hasChild' && prop !== 'shape', -})<StyledIconButtonProps>(({ filled, shape, hasChild, theme }) => ({ - color: 'inherit', - transition: theme.transitions.create('all', { - duration: theme.transitions.duration.shorter, - }), - ...(shape === 'rounded' && { - borderRadius: theme.shape.borderRadius * 1.5, - }), - ...(!filled && { - opacity: 0.48, - '&:hover': { - opacity: 1, - }, - }), - ...(filled && { - color: alpha(theme.palette.common.white, 0.8), - backgroundColor: alpha(theme.palette.grey[900], 0.48), - '&:hover': { - color: theme.palette.common.white, - backgroundColor: theme.palette.grey[900], - }, - }), - ...(hasChild && { - zIndex: 9, - top: '50%', - position: 'absolute', - marginTop: theme.spacing(-2.5), - }), -})); - -// ---------------------------------------------------------------------- - -interface Props extends StackProps { - shape?: 'circular' | 'rounded'; - filled?: boolean; - children?: React.ReactNode; - icon?: IconifyProps; // Right icon - onNext?: VoidFunction; - onPrev?: VoidFunction; - leftButtonProps?: IconButtonProps; - rightButtonProps?: IconButtonProps; -} - -export default function CarouselArrows({ - shape = 'circular', - filled = false, - icon, - onNext, - onPrev, - children, - leftButtonProps, - rightButtonProps, - sx, - ...other -}: Props) { - const theme = useTheme(); - - const isRTL = theme.direction === 'rtl'; - - const hasChild = !!children; - - if (hasChild) { - return ( - <Stack sx={sx} {...other}> - {onNext && ( - <StyledIconButton - filled={filled} - shape={shape} - hasChild={!!children} - onClick={onPrev} - {...leftButtonProps} - sx={{ - left: 16, - ...leftButtonProps?.sx, - }} - > - <LeftIcon icon={icon} isRTL={isRTL} /> - </StyledIconButton> - )} - - {children} - - {onPrev && ( - <StyledIconButton - filled={filled} - shape={shape} - hasChild={!!children} - onClick={onNext} - {...rightButtonProps} - sx={{ - right: 16, - ...rightButtonProps?.sx, - }} - > - <RightIcon icon={icon} isRTL={isRTL} /> - </StyledIconButton> - )} - </Stack> - ); - } - - return ( - <Stack direction="row" alignItems="center" display="inline-flex" sx={sx} {...other}> - <StyledIconButton filled={filled} shape={shape} onClick={onPrev} {...leftButtonProps}> - <LeftIcon icon={icon} isRTL={isRTL} /> - </StyledIconButton> - - <StyledIconButton filled={filled} shape={shape} onClick={onNext} {...rightButtonProps}> - <RightIcon icon={icon} isRTL={isRTL} /> - </StyledIconButton> - </Stack> - ); -} diff --git a/src/components/carousel/carousel-dots.tsx b/src/components/carousel/carousel-dots.tsx deleted file mode 100644 index 09e336136031e85e6fcbdffc8a15ef7f6af7ca91..0000000000000000000000000000000000000000 --- a/src/components/carousel/carousel-dots.tsx +++ /dev/null @@ -1,87 +0,0 @@ -/* eslint-disable react/jsx-no-useless-fragment */ -import Stack from '@mui/material/Stack'; -import Box, { BoxProps } from '@mui/material/Box'; -import { Theme, styled, SxProps } from '@mui/material/styles'; - -// ---------------------------------------------------------------------- - -type StyledRootProps = { - rounded: boolean; -}; - -const StyledRoot = styled(Box, { - shouldForwardProp: (prop) => prop !== 'rounded', -})<StyledRootProps>(({ rounded, theme }) => ({ - zIndex: 9, - margin: 0, - padding: 0, - display: 'flex', - alignItems: 'center', - justifyContent: 'center', - color: theme.palette.primary.main, - '& li': { - width: 18, - height: 18, - opacity: 0.32, - display: 'flex', - alignItems: 'center', - justifyContent: 'center', - cursor: 'pointer', - '&.slick-active': { - opacity: 1, - ...(rounded && { - '& span': { - width: 16, - borderRadius: 6, - }, - }), - }, - }, -})); - -const StyledDot = styled('span')(({ theme }) => ({ - width: 8, - height: 8, - borderRadius: '50%', - transition: theme.transitions.create(['width'], { - easing: theme.transitions.easing.sharp, - duration: theme.transitions.duration.short, - }), -})); - -// ---------------------------------------------------------------------- - -export interface Props extends BoxProps { - rounded?: boolean; - sx?: SxProps<Theme>; -} - -export default function CarouselDots(props?: Props) { - const rounded = props?.rounded || false; - - const sx = props?.sx; - - return { - appendDots: (dots: React.ReactNode) => ( - <> - <StyledRoot component="ul" rounded={rounded} sx={{ ...sx }} {...props}> - {dots} - </StyledRoot> - </> - ), - customPaging: () => ( - <Stack - component="div" - alignItems="center" - justifyContent="center" - sx={{ width: 1, height: 1 }} - > - <StyledDot - sx={{ - bgcolor: 'currentColor', - }} - /> - </Stack> - ), - }; -} diff --git a/src/components/carousel/index.ts b/src/components/carousel/index.ts deleted file mode 100644 index d20092ac3dbea4afdc19239ebc1095b2a9badc34..0000000000000000000000000000000000000000 --- a/src/components/carousel/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -import Carousel from 'react-slick'; - -export { default as useCarousel } from './use-carousel'; -export { default as CarouselDots } from './carousel-dots'; -export { default as CarouselArrows } from './carousel-arrows'; - -export { default as CarouselArrowIndex } from './carousel-arrow-index'; - -export default Carousel; diff --git a/src/components/carousel/use-carousel.ts b/src/components/carousel/use-carousel.ts deleted file mode 100644 index da154c723972c71b9055833e60db0a2f26948bba..0000000000000000000000000000000000000000 --- a/src/components/carousel/use-carousel.ts +++ /dev/null @@ -1,81 +0,0 @@ -import Carousel, { Settings } from 'react-slick'; -import { useRef, useState, useCallback } from 'react'; - -import { useTheme } from '@mui/material/styles'; - -// ---------------------------------------------------------------------- - -type ReturnType = { - currentIndex: number; - nav: Carousel | undefined; - carouselSettings: Settings; - carouselRef: React.MutableRefObject<Carousel | null>; - // - onPrev: VoidFunction; - onNext: VoidFunction; - onSetNav: VoidFunction; - onTogo: (index: number) => void; - // - setNav: React.Dispatch<React.SetStateAction<Carousel | undefined>>; - setCurrentIndex: React.Dispatch<React.SetStateAction<number>>; -}; - -export default function useCarousel(props?: Settings): ReturnType { - const theme = useTheme(); - - const carouselRef = useRef<Carousel | null>(null); - - const [currentIndex, setCurrentIndex] = useState(props?.initialSlide || 0); - - const [nav, setNav] = useState<Carousel | undefined>(undefined); - - const rtl = theme.direction === 'rtl'; - - const carouselSettings = { - arrows: false, - dots: !!props?.customPaging, - rtl, - beforeChange: (current: number, next: number) => setCurrentIndex(next), - ...props, - fade: !!(props?.fade && !rtl), - }; - - const onSetNav = useCallback(() => { - if (carouselRef.current) { - setNav(carouselRef.current); - } - }, []); - - const onPrev = useCallback(() => { - if (carouselRef.current) { - carouselRef.current.slickPrev(); - } - }, []); - - const onNext = useCallback(() => { - if (carouselRef.current) { - carouselRef.current.slickNext(); - } - }, []); - - const onTogo = useCallback((index: number) => { - if (carouselRef.current) { - carouselRef.current.slickGoTo(index); - } - }, []); - - return { - nav, - carouselRef, - currentIndex, - carouselSettings, - // - onPrev, - onNext, - onTogo, - onSetNav, - // - setNav, - setCurrentIndex, - }; -} diff --git a/src/components/chart/chart.tsx b/src/components/chart/chart.tsx deleted file mode 100644 index 4ccd883ea2aedc6c213c3a1bedfd99398cf4e955..0000000000000000000000000000000000000000 --- a/src/components/chart/chart.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import { memo } from 'react'; -import dynamic from 'next/dynamic'; - -import { alpha, styled } from '@mui/material/styles'; - -import { bgBlur } from '@/theme/css'; - -// ---------------------------------------------------------------------- - -const ApexChart = dynamic(() => import('react-apexcharts'), { ssr: false }); - -const Chart = styled(ApexChart)(({ theme }) => ({ - '& .apexcharts-canvas': { - // Tooltip - '& .apexcharts-tooltip': { - ...bgBlur({ - color: theme.palette.background.default, - }), - color: theme.palette.text.primary, - boxShadow: theme.customShadows.dropdown, - borderRadius: theme.shape.borderRadius * 1.25, - '&.apexcharts-theme-light': { - borderColor: 'transparent', - ...bgBlur({ - color: theme.palette.background.default, - }), - }, - }, - '& .apexcharts-xaxistooltip': { - ...bgBlur({ - color: theme.palette.background.default, - }), - borderColor: 'transparent', - color: theme.palette.text.primary, - boxShadow: theme.customShadows.dropdown, - borderRadius: theme.shape.borderRadius * 1.25, - '&:before': { - borderBottomColor: alpha(theme.palette.grey[500], 0.24), - }, - '&:after': { - borderBottomColor: alpha(theme.palette.background.default, 0.8), - }, - }, - '& .apexcharts-tooltip-title': { - textAlign: 'center', - fontWeight: theme.typography.fontWeightBold, - backgroundColor: alpha(theme.palette.grey[500], 0.08), - color: theme.palette.text[theme.palette.mode === 'light' ? 'secondary' : 'primary'], - }, - - // LEGEND - '& .apexcharts-legend': { - padding: 0, - }, - '& .apexcharts-legend-series': { - display: 'inline-flex !important', - alignItems: 'center', - }, - '& .apexcharts-legend-marker': { - marginRight: 8, - }, - '& .apexcharts-legend-text': { - lineHeight: '18px', - textTransform: 'capitalize', - }, - }, -})); - -export default memo(Chart); diff --git a/src/components/chart/index.ts b/src/components/chart/index.ts deleted file mode 100644 index e47ee60bc520fc14e239022dabfe97cefb6e87a9..0000000000000000000000000000000000000000 --- a/src/components/chart/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -// ---------------------------------------------------------------------- - -export { default } from './chart'; - -export { default as useChart } from './use-chart'; diff --git a/src/components/chart/use-chart.ts b/src/components/chart/use-chart.ts deleted file mode 100644 index 34020b0254a134bfbe7b8474f3d4f98b9c59077a..0000000000000000000000000000000000000000 --- a/src/components/chart/use-chart.ts +++ /dev/null @@ -1,217 +0,0 @@ -import merge from 'lodash/merge'; -import { ApexOptions } from 'apexcharts'; - -import { alpha, useTheme } from '@mui/material/styles'; - -import { useResponsive } from '@/hooks/use-responsive'; - -// ---------------------------------------------------------------------- - -export default function useChart(options?: ApexOptions) { - const theme = useTheme(); - - const smUp = useResponsive('up', 'sm'); - - const LABEL_TOTAL = { - show: true, - label: 'Total', - color: theme.palette.text.secondary, - fontSize: theme.typography.subtitle2.fontSize, - fontWeight: theme.typography.subtitle2.fontWeight, - lineHeight: theme.typography.subtitle2.lineHeight, - }; - - const LABEL_VALUE = { - offsetY: 8, - color: theme.palette.text.primary, - fontSize: theme.typography.h3.fontSize, - fontWeight: theme.typography.h3.fontWeight, - lineHeight: theme.typography.h3.lineHeight, - }; - - const baseOptions = { - // Colors - colors: [ - theme.palette.primary.main, - theme.palette.warning.main, - theme.palette.info.main, - theme.palette.error.main, - theme.palette.success.main, - theme.palette.warning.dark, - theme.palette.success.darker, - theme.palette.info.dark, - theme.palette.info.darker, - ], - - // Chart - chart: { - toolbar: { show: false }, - zoom: { enabled: false }, - // animations: { enabled: false }, - foreColor: theme.palette.text.disabled, - fontFamily: theme.typography.fontFamily, - }, - - // States - states: { - hover: { - filter: { - type: 'lighten', - value: 0.04, - }, - }, - active: { - filter: { - type: 'darken', - value: 0.88, - }, - }, - }, - - // Fill - fill: { - opacity: 1, - gradient: { - type: 'vertical', - shadeIntensity: 0, - opacityFrom: 0.4, - opacityTo: 0, - stops: [0, 100], - }, - }, - - // Datalabels - dataLabels: { - enabled: false, - }, - - // Stroke - stroke: { - width: 3, - curve: 'smooth', - lineCap: 'round', - }, - - // Grid - grid: { - strokeDashArray: 3, - borderColor: theme.palette.divider, - xaxis: { - lines: { - show: false, - }, - }, - }, - - // Xaxis - xaxis: { - axisBorder: { show: false }, - axisTicks: { show: false }, - }, - - // Markers - markers: { - size: 0, - strokeColors: theme.palette.background.paper, - }, - - // Tooltip - tooltip: { - theme: false, - x: { - show: true, - }, - }, - - // Legend - legend: { - show: true, - fontSize: 13, - position: 'top', - horizontalAlign: 'right', - markers: { - radius: 12, - }, - fontWeight: 500, - itemMargin: { - horizontal: 8, - }, - labels: { - colors: theme.palette.text.primary, - }, - }, - - // plotOptions - plotOptions: { - // Bar - bar: { - borderRadius: smUp ? 3 : 1, - columnWidth: '28%', - borderRadiusApplication: 'end', - borderRadiusWhenStacked: 'last', - }, - - // Pie + Donut - pie: { - donut: { - labels: { - show: true, - value: LABEL_VALUE, - total: LABEL_TOTAL, - }, - }, - }, - - // Radialbar - radialBar: { - track: { - strokeWidth: '100%', - background: alpha(theme.palette.grey[500], 0.16), - }, - dataLabels: { - value: LABEL_VALUE, - total: LABEL_TOTAL, - }, - }, - - // Radar - radar: { - polygons: { - fill: { colors: ['transparent'] }, - strokeColors: theme.palette.divider, - connectorColors: theme.palette.divider, - }, - }, - - // polarArea - polarArea: { - rings: { - strokeColor: theme.palette.divider, - }, - spokes: { - connectorColors: theme.palette.divider, - }, - }, - }, - - // Responsive - responsive: [ - { - // sm - breakpoint: theme.breakpoints.values.sm, - options: { - plotOptions: { bar: { columnWidth: '40%' } }, - }, - }, - { - // md - breakpoint: theme.breakpoints.values.md, - options: { - plotOptions: { bar: { columnWidth: '32%' } }, - }, - }, - ], - }; - - return merge(baseOptions, options); -} diff --git a/src/components/custom-popover/custom-popover.tsx b/src/components/custom-popover/custom-popover.tsx deleted file mode 100644 index c2359e0ed0cecf0503f33770273afa5c3de35e42..0000000000000000000000000000000000000000 --- a/src/components/custom-popover/custom-popover.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import { menuItemClasses } from '@mui/material/MenuItem'; -import Popover, { PopoverOrigin } from '@mui/material/Popover'; - -import { getPosition } from './utils'; -import { StyledArrow } from './styles'; -import { MenuPopoverProps } from './types'; - -// ---------------------------------------------------------------------- - -export default function CustomPopover({ - open, - children, - arrow = 'top-right', - hiddenArrow, - sx, - ...other -}: MenuPopoverProps) { - const { style, anchorOrigin, transformOrigin } = getPosition(arrow); - - return ( - <Popover - open={Boolean(open)} - anchorEl={open} - anchorOrigin={anchorOrigin as PopoverOrigin} - transformOrigin={transformOrigin as PopoverOrigin} - slotProps={{ - paper: { - sx: { - width: 'auto', - overflow: 'inherit', - ...style, - [`& .${menuItemClasses.root}`]: { - '& svg': { - mr: 2, - flexShrink: 0, - }, - }, - ...sx, - }, - }, - }} - {...other} - > - {!hiddenArrow && <StyledArrow arrow={arrow} />} - - {children} - </Popover> - ); -} diff --git a/src/components/custom-popover/index.ts b/src/components/custom-popover/index.ts deleted file mode 100644 index 5c588842098cff691632f6a228ad7181c44bcec1..0000000000000000000000000000000000000000 --- a/src/components/custom-popover/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from './types'; - -export { default } from './custom-popover'; - -export { default as usePopover } from './use-popover'; diff --git a/src/components/custom-popover/styles.tsx b/src/components/custom-popover/styles.tsx deleted file mode 100644 index 8dcea4d620123404ecd11a49ef66ed0f1c75d54a..0000000000000000000000000000000000000000 --- a/src/components/custom-popover/styles.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import { alpha, styled } from '@mui/material/styles'; - -import { bgBlur } from '@/theme/css'; - -import { MenuPopoverArrowValue } from './types'; - -// ---------------------------------------------------------------------- - -export const StyledArrow = styled('span')<{ arrow: MenuPopoverArrowValue }>(({ arrow, theme }) => { - const SIZE = 14; - - const POSITION = -(SIZE / 2) + 0.5; - - const topStyle = { - top: POSITION, - transform: 'rotate(135deg)', - }; - - const bottomStyle = { - bottom: POSITION, - transform: 'rotate(-45deg)', - }; - - const leftStyle = { - left: POSITION, - transform: 'rotate(45deg)', - }; - - const rightStyle = { - right: POSITION, - transform: 'rotate(-135deg)', - }; - - return { - width: SIZE, - height: SIZE, - position: 'absolute', - borderBottomLeftRadius: SIZE / 4, - clipPath: 'polygon(0% 0%, 100% 100%, 0% 100%)', - border: `solid 1px ${alpha( - theme.palette.mode === 'light' ? theme.palette.grey[500] : theme.palette.common.black, - 0.12 - )}`, - ...bgBlur({ - color: theme.palette.background.paper, - }), - // Top - ...(arrow === 'top-left' && { ...topStyle, left: 20 }), - ...(arrow === 'top-center' && { - ...topStyle, - left: 0, - right: 0, - margin: 'auto', - }), - ...(arrow === 'top-right' && { ...topStyle, right: 20 }), - // Bottom - ...(arrow === 'bottom-left' && { ...bottomStyle, left: 20 }), - ...(arrow === 'bottom-center' && { - ...bottomStyle, - left: 0, - right: 0, - margin: 'auto', - }), - ...(arrow === 'bottom-right' && { ...bottomStyle, right: 20 }), - // Left - ...(arrow === 'left-top' && { ...leftStyle, top: 20 }), - ...(arrow === 'left-center' && { - ...leftStyle, - top: 0, - bottom: 0, - margin: 'auto', - }), - ...(arrow === 'left-bottom' && { ...leftStyle, bottom: 20 }), - // Right - ...(arrow === 'right-top' && { ...rightStyle, top: 20 }), - ...(arrow === 'right-center' && { - ...rightStyle, - top: 0, - bottom: 0, - margin: 'auto', - }), - ...(arrow === 'right-bottom' && { ...rightStyle, bottom: 20 }), - }; -}); diff --git a/src/components/custom-popover/types.ts b/src/components/custom-popover/types.ts deleted file mode 100644 index b4dc1d419623f7ab683d0e9d329111f987a77be7..0000000000000000000000000000000000000000 --- a/src/components/custom-popover/types.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { PopoverProps } from '@mui/material/Popover'; - -// ---------------------------------------------------------------------- - -export type MenuPopoverArrowValue = - | 'top-left' - | 'top-center' - | 'top-right' - | 'bottom-left' - | 'bottom-center' - | 'bottom-right' - | 'left-top' - | 'left-center' - | 'left-bottom' - | 'right-top' - | 'right-center' - | 'right-bottom'; - -export interface MenuPopoverProps extends Omit<PopoverProps, 'open'> { - open: HTMLElement | null; - arrow?: MenuPopoverArrowValue; - hiddenArrow?: boolean; -} diff --git a/src/components/custom-popover/use-popover.ts b/src/components/custom-popover/use-popover.ts deleted file mode 100644 index ef58afe55a8f2f106258fc08a2f39c739d8ff49b..0000000000000000000000000000000000000000 --- a/src/components/custom-popover/use-popover.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { useState, useCallback } from 'react'; - -// ---------------------------------------------------------------------- - -type ReturnType = { - onClose: VoidFunction; - open: HTMLElement | null; - onOpen: (event: React.MouseEvent<HTMLElement>) => void; - setOpen: React.Dispatch<React.SetStateAction<HTMLElement | null>>; -}; - -export default function usePopover(): ReturnType { - const [open, setOpen] = useState<HTMLElement | null>(null); - - const onOpen = useCallback((event: React.MouseEvent<HTMLElement>) => { - setOpen(event.currentTarget); - }, []); - - const onClose = useCallback(() => { - setOpen(null); - }, []); - - return { - open, - onOpen, - onClose, - setOpen, - }; -} diff --git a/src/components/custom-popover/utils.ts b/src/components/custom-popover/utils.ts deleted file mode 100644 index d7f0e948a8a8dc41f6e99d793d0dc20890e0fed0..0000000000000000000000000000000000000000 --- a/src/components/custom-popover/utils.ts +++ /dev/null @@ -1,100 +0,0 @@ -// ---------------------------------------------------------------------- - -export function getPosition(arrow: string) { - let props; - - switch (arrow) { - case 'top-left': - props = { - style: { ml: -0.75 }, - anchorOrigin: { vertical: 'bottom', horizontal: 'left' }, - transformOrigin: { vertical: 'top', horizontal: 'left' }, - }; - break; - case 'top-center': - props = { - style: {}, - anchorOrigin: { vertical: 'bottom', horizontal: 'center' }, - transformOrigin: { vertical: 'top', horizontal: 'center' }, - }; - break; - case 'top-right': - props = { - style: { ml: 0.75 }, - anchorOrigin: { vertical: 'bottom', horizontal: 'right' }, - transformOrigin: { vertical: 'top', horizontal: 'right' }, - }; - break; - case 'bottom-left': - props = { - style: { ml: -0.75 }, - anchorOrigin: { vertical: 'top', horizontal: 'left' }, - transformOrigin: { vertical: 'bottom', horizontal: 'left' }, - }; - break; - case 'bottom-center': - props = { - style: {}, - anchorOrigin: { vertical: 'top', horizontal: 'center' }, - transformOrigin: { vertical: 'bottom', horizontal: 'center' }, - }; - break; - case 'bottom-right': - props = { - style: { ml: 0.75 }, - anchorOrigin: { vertical: 'top', horizontal: 'right' }, - transformOrigin: { vertical: 'bottom', horizontal: 'right' }, - }; - break; - case 'left-top': - props = { - style: { mt: -0.75 }, - anchorOrigin: { vertical: 'top', horizontal: 'right' }, - transformOrigin: { vertical: 'top', horizontal: 'left' }, - }; - break; - case 'left-center': - props = { - anchorOrigin: { vertical: 'center', horizontal: 'right' }, - transformOrigin: { vertical: 'center', horizontal: 'left' }, - }; - break; - case 'left-bottom': - props = { - style: { mt: 0.75 }, - anchorOrigin: { vertical: 'bottom', horizontal: 'right' }, - transformOrigin: { vertical: 'bottom', horizontal: 'left' }, - }; - break; - case 'right-top': - props = { - style: { mt: -0.75 }, - anchorOrigin: { vertical: 'top', horizontal: 'left' }, - transformOrigin: { vertical: 'top', horizontal: 'right' }, - }; - break; - case 'right-center': - props = { - anchorOrigin: { vertical: 'center', horizontal: 'left' }, - transformOrigin: { vertical: 'center', horizontal: 'right' }, - }; - break; - case 'right-bottom': - props = { - style: { mt: 0.75 }, - anchorOrigin: { vertical: 'bottom', horizontal: 'left' }, - transformOrigin: { vertical: 'bottom', horizontal: 'right' }, - }; - break; - - // top-right - default: - props = { - style: { ml: 0.75 }, - anchorOrigin: { vertical: 'bottom', horizontal: 'right' }, - transformOrigin: { vertical: 'top', horizontal: 'right' }, - }; - } - - return props; -} diff --git a/src/components/empty-content/empty-content.tsx b/src/components/empty-content/empty-content.tsx deleted file mode 100644 index bfdd347ef1ff6cd98486adc832e45125f8c94e49..0000000000000000000000000000000000000000 --- a/src/components/empty-content/empty-content.tsx +++ /dev/null @@ -1,68 +0,0 @@ -import Box from '@mui/material/Box'; -import { alpha } from '@mui/material/styles'; -import Typography from '@mui/material/Typography'; -import Stack, { StackProps } from '@mui/material/Stack'; - -// ---------------------------------------------------------------------- - -type EmptyContentProps = StackProps & { - title?: string; - imgUrl?: string; - filled?: boolean; - description?: string; - action?: React.ReactNode; -}; - -export default function EmptyContent({ - title, - imgUrl, - action, - filled, - description, - sx, - ...other -}: EmptyContentProps) { - return ( - <Stack - flexGrow={1} - alignItems="center" - justifyContent="center" - sx={{ - px: 3, - height: 1, - ...(filled && { - borderRadius: 2, - bgcolor: (theme) => alpha(theme.palette.grey[500], 0.04), - border: (theme) => `dashed 1px ${alpha(theme.palette.grey[500], 0.08)}`, - }), - ...sx, - }} - {...other} - > - <Box - component="img" - alt="empty content" - src={imgUrl || '/assets/icons/empty/ic_content.svg'} - sx={{ width: 1, maxWidth: 160 }} - /> - - {title && ( - <Typography - variant="h6" - component="span" - sx={{ mt: 1, color: 'text.disabled', textAlign: 'center' }} - > - {title} - </Typography> - )} - - {description && ( - <Typography variant="caption" sx={{ mt: 1, color: 'text.disabled', textAlign: 'center' }}> - {description} - </Typography> - )} - - {action && action} - </Stack> - ); -} diff --git a/src/components/empty-content/index.ts b/src/components/empty-content/index.ts deleted file mode 100644 index b26726227d0a902c9cb051a8fd59f9075753f3ad..0000000000000000000000000000000000000000 --- a/src/components/empty-content/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './empty-content'; diff --git a/src/components/file-thumbnail/download-button.tsx b/src/components/file-thumbnail/download-button.tsx deleted file mode 100644 index 8ab8f32c08783978197b2ac0e746e683498bd6bb..0000000000000000000000000000000000000000 --- a/src/components/file-thumbnail/download-button.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import { useTheme } from '@mui/material/styles'; -import IconButton from '@mui/material/IconButton'; - -import { bgBlur } from '@/theme/css'; - -import Iconify from '@/components/iconify'; - -// ---------------------------------------------------------------------- - -type Props = { - onDownload?: VoidFunction; -}; - -export default function DownloadButton({ onDownload }: Props) { - const theme = useTheme(); - - return ( - <IconButton - onClick={onDownload} - sx={{ - p: 0, - top: 0, - right: 0, - width: 1, - height: 1, - zIndex: 9, - opacity: 0, - position: 'absolute', - borderRadius: 'unset', - justifyContent: 'center', - bgcolor: 'grey.800', - color: 'common.white', - transition: theme.transitions.create(['opacity']), - - '&:hover': { - opacity: 1, - ...bgBlur({ - opacity: 0.64, - color: theme.palette.grey[900], - }), - }, - }} - > - <Iconify icon="eva:arrow-circle-down-fill" width={24} /> - </IconButton> - ); -} diff --git a/src/components/file-thumbnail/file-thumbnail.tsx b/src/components/file-thumbnail/file-thumbnail.tsx deleted file mode 100644 index 6ae963b1ed70abec9eaaad1d2963a0cdad8e1b6c..0000000000000000000000000000000000000000 --- a/src/components/file-thumbnail/file-thumbnail.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import Box from '@mui/material/Box'; -import Stack from '@mui/material/Stack'; -import Tooltip from '@mui/material/Tooltip'; -import { Theme, SxProps } from '@mui/material/styles'; - -import DownloadButton from './download-button'; -import { fileData, fileThumb, fileFormat } from './utils'; - -// ---------------------------------------------------------------------- - -type FileIconProps = { - file: File | string; - tooltip?: boolean; - imageView?: boolean; - onDownload?: VoidFunction; - sx?: SxProps<Theme>; - imgSx?: SxProps<Theme>; -}; - -export default function FileThumbnail({ - file, - tooltip, - imageView, - onDownload, - sx, - imgSx, -}: FileIconProps) { - const { name = '', path = '', preview = '' } = fileData(file); - - const format = fileFormat(path || preview); - - const renderContent = - format === 'image' && imageView ? ( - <Box - component="img" - src={preview} - sx={{ - width: 1, - height: 1, - flexShrink: 0, - objectFit: 'cover', - ...imgSx, - }} - /> - ) : ( - <Box - component="img" - src={fileThumb(format)} - sx={{ - width: 32, - height: 32, - flexShrink: 0, - ...sx, - }} - /> - ); - - if (tooltip) { - return ( - <Tooltip title={name}> - <Stack - flexShrink={0} - component="span" - alignItems="center" - justifyContent="center" - sx={{ - width: 'fit-content', - height: 'inherit', - }} - > - {renderContent} - {onDownload && <DownloadButton onDownload={onDownload} />} - </Stack> - </Tooltip> - ); - } - - return ( - <> - {renderContent} - {onDownload && <DownloadButton onDownload={onDownload} />} - </> - ); -} diff --git a/src/components/file-thumbnail/index.ts b/src/components/file-thumbnail/index.ts deleted file mode 100644 index eae24938f8b10b502247cbf69c0b84d017303a33..0000000000000000000000000000000000000000 --- a/src/components/file-thumbnail/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from './utils'; - -export { default } from './file-thumbnail'; - -export { default as DownloadButton } from './download-button'; diff --git a/src/components/file-thumbnail/types.ts b/src/components/file-thumbnail/types.ts deleted file mode 100644 index 8092450389f5c6ffae28d124e2f71092e3be117c..0000000000000000000000000000000000000000 --- a/src/components/file-thumbnail/types.ts +++ /dev/null @@ -1,7 +0,0 @@ -// ---------------------------------------------------------------------- - -export interface ExtendFile extends File { - preview?: string; - path?: string; - lastModifiedDate?: string; -} diff --git a/src/components/file-thumbnail/utils.ts b/src/components/file-thumbnail/utils.ts deleted file mode 100644 index 4b5f710eb086a31e00d397c0cba2170f58e73fe3..0000000000000000000000000000000000000000 --- a/src/components/file-thumbnail/utils.ts +++ /dev/null @@ -1,150 +0,0 @@ -import { ExtendFile } from './types'; - -// ---------------------------------------------------------------------- - -// Define more types here -const FORMAT_PDF = ['pdf']; -const FORMAT_TEXT = ['txt']; -const FORMAT_PHOTOSHOP = ['psd']; -const FORMAT_WORD = ['doc', 'docx']; -const FORMAT_EXCEL = ['xls', 'xlsx']; -const FORMAT_ZIP = ['zip', 'rar', 'iso']; -const FORMAT_ILLUSTRATOR = ['ai', 'esp']; -const FORMAT_POWERPOINT = ['ppt', 'pptx']; -const FORMAT_AUDIO = ['wav', 'aif', 'mp3', 'aac']; -const FORMAT_IMG = ['jpg', 'jpeg', 'gif', 'bmp', 'png', 'svg']; -const FORMAT_VIDEO = ['m4v', 'avi', 'mpg', 'mp4', 'webm']; - -const iconUrl = (icon: string) => `/assets/icons/files/${icon}.svg`; - -// ---------------------------------------------------------------------- - -export function fileFormat(fileUrl: string | undefined) { - let format; - - switch (fileUrl?.includes(fileTypeByUrl(fileUrl))) { - case FORMAT_TEXT.includes(fileTypeByUrl(fileUrl)): - format = 'txt'; - break; - case FORMAT_ZIP.includes(fileTypeByUrl(fileUrl)): - format = 'zip'; - break; - case FORMAT_AUDIO.includes(fileTypeByUrl(fileUrl)): - format = 'audio'; - break; - case FORMAT_IMG.includes(fileTypeByUrl(fileUrl)): - format = 'image'; - break; - case FORMAT_VIDEO.includes(fileTypeByUrl(fileUrl)): - format = 'video'; - break; - case FORMAT_WORD.includes(fileTypeByUrl(fileUrl)): - format = 'word'; - break; - case FORMAT_EXCEL.includes(fileTypeByUrl(fileUrl)): - format = 'excel'; - break; - case FORMAT_POWERPOINT.includes(fileTypeByUrl(fileUrl)): - format = 'powerpoint'; - break; - case FORMAT_PDF.includes(fileTypeByUrl(fileUrl)): - format = 'pdf'; - break; - case FORMAT_PHOTOSHOP.includes(fileTypeByUrl(fileUrl)): - format = 'photoshop'; - break; - case FORMAT_ILLUSTRATOR.includes(fileTypeByUrl(fileUrl)): - format = 'illustrator'; - break; - default: - format = fileTypeByUrl(fileUrl); - } - - return format; -} - -// ---------------------------------------------------------------------- - -export function fileThumb(fileUrl: string) { - let thumb; - - switch (fileFormat(fileUrl)) { - case 'folder': - thumb = iconUrl('ic_folder'); - break; - case 'txt': - thumb = iconUrl('ic_txt'); - break; - case 'zip': - thumb = iconUrl('ic_zip'); - break; - case 'audio': - thumb = iconUrl('ic_audio'); - break; - case 'video': - thumb = iconUrl('ic_video'); - break; - case 'word': - thumb = iconUrl('ic_word'); - break; - case 'excel': - thumb = iconUrl('ic_excel'); - break; - case 'powerpoint': - thumb = iconUrl('ic_power_point'); - break; - case 'pdf': - thumb = iconUrl('ic_pdf'); - break; - case 'photoshop': - thumb = iconUrl('ic_pts'); - break; - case 'illustrator': - thumb = iconUrl('ic_ai'); - break; - case 'image': - thumb = iconUrl('ic_img'); - break; - default: - thumb = iconUrl('ic_file'); - } - return thumb; -} - -// ---------------------------------------------------------------------- - -export function fileTypeByUrl(fileUrl = '') { - return (fileUrl && fileUrl.split('.').pop()) || ''; -} - -// ---------------------------------------------------------------------- - -export function fileNameByUrl(fileUrl: string) { - return fileUrl.split('/').pop(); -} - -// ---------------------------------------------------------------------- - -export function fileData(file: ExtendFile | string) { - // Url - if (typeof file === 'string') { - return { - key: file, - preview: file, - name: fileNameByUrl(file), - type: fileTypeByUrl(file), - }; - } - - // File - return { - key: file.preview, - name: file.name, - size: file.size, - path: file.path, - type: file.type, - preview: file.preview, - lastModified: file.lastModified, - lastModifiedDate: file.lastModifiedDate, - }; -} diff --git a/src/components/image/image.tsx b/src/components/image/image.tsx deleted file mode 100644 index b212febd44bfc7075b9e5a81f48f3d904f1bd10d..0000000000000000000000000000000000000000 --- a/src/components/image/image.tsx +++ /dev/null @@ -1,119 +0,0 @@ -import { forwardRef } from 'react'; -import { LazyLoadImage } from 'react-lazy-load-image-component'; - -import Box from '@mui/material/Box'; -import { alpha, useTheme } from '@mui/material/styles'; - -import { getRatio } from './utils'; -import { ImageProps } from './types'; - -// ---------------------------------------------------------------------- - -const Image = forwardRef<HTMLSpanElement, ImageProps>( - function Image({ - ratio, - overlay, - disabledEffect = false, - // - alt, - src, - afterLoad, - delayTime, - threshold, - beforeLoad, - delayMethod, - placeholder, - wrapperProps, - scrollPosition, - effect = 'blur', - visibleByDefault, - wrapperClassName, - useIntersectionObserver, - sx, - ...other - }, - ref - ) { - const theme = useTheme(); - - const overlayStyles = !!overlay && { - '&:before': { - content: "''", - top: 0, - left: 0, - width: 1, - height: 1, - zIndex: 1, - position: 'absolute', - background: overlay || alpha(theme.palette.grey[900], 0.48), - }, - }; - - const content = ( - <Box - component={LazyLoadImage} - // - alt={alt} - src={src} - afterLoad={afterLoad} - delayTime={delayTime} - threshold={threshold} - beforeLoad={beforeLoad} - delayMethod={delayMethod} - placeholder={placeholder} - wrapperProps={wrapperProps} - scrollPosition={scrollPosition} - visibleByDefault={visibleByDefault} - effect={disabledEffect ? undefined : effect} - useIntersectionObserver={useIntersectionObserver} - wrapperClassName={wrapperClassName || 'component-image-wrapper'} - placeholderSrc={disabledEffect ? '/assets/transparent.png' : '/assets/placeholder.svg'} - // - sx={{ - width: 1, - height: 1, - objectFit: 'cover', - verticalAlign: 'bottom', - ...(!!ratio && { - top: 0, - left: 0, - position: 'absolute', - }), - }} - /> - ); - - return ( - <Box - ref={ref} - component="span" - className="component-image" - sx={{ - overflow: 'hidden', - position: 'relative', - verticalAlign: 'bottom', - display: 'inline-block', - ...(!!ratio && { - width: 1, - }), - '& span.component-image-wrapper': { - width: 1, - height: 1, - verticalAlign: 'bottom', - backgroundSize: 'cover !important', - ...(!!ratio && { - pt: getRatio(ratio), - }), - }, - ...overlayStyles, - ...sx, - }} - {...other} - > - {content} - </Box> - ); - } -); - -export default Image; diff --git a/src/components/image/index.ts b/src/components/image/index.ts deleted file mode 100644 index 9a9cd1e3f6a199b43669e979061f25e5fc14c2af..0000000000000000000000000000000000000000 --- a/src/components/image/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './types'; - -export { default } from './image'; diff --git a/src/components/image/types.ts b/src/components/image/types.ts deleted file mode 100644 index 4901f868ba7a4a89c1dc93e178dea6f2f11fdea9..0000000000000000000000000000000000000000 --- a/src/components/image/types.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { LazyLoadImageProps } from 'react-lazy-load-image-component'; - -import { BoxProps } from '@mui/material/Box'; - -// ---------------------------------------------------------------------- - -export type ImageRatio = '4/3' | '3/4' | '6/4' | '4/6' | '16/9' | '9/16' | '21/9' | '9/21' | '1/1'; - -export type ImageProps = BoxProps & - LazyLoadImageProps & { - overlay?: string; - ratio?: ImageRatio; - disabledEffect?: boolean; - }; diff --git a/src/components/image/utils.ts b/src/components/image/utils.ts deleted file mode 100644 index 61abac459087d27f2200e20b1ff8baeb5c625c0c..0000000000000000000000000000000000000000 --- a/src/components/image/utils.ts +++ /dev/null @@ -1,15 +0,0 @@ -// ---------------------------------------------------------------------- - -export function getRatio(ratio = '1/1') { - return { - '4/3': 'calc(100% / 4 * 3)', - '3/4': 'calc(100% / 3 * 4)', - '6/4': 'calc(100% / 6 * 4)', - '4/6': 'calc(100% / 4 * 6)', - '16/9': 'calc(100% / 16 * 9)', - '9/16': 'calc(100% / 9 * 16)', - '21/9': 'calc(100% / 21 * 9)', - '9/21': 'calc(100% / 9 * 21)', - '1/1': '100%', - }[ratio]; -} diff --git a/src/components/label/index.ts b/src/components/label/index.ts deleted file mode 100644 index 5079b0d8cfd6b45821b84c3166fc028bfa83f01e..0000000000000000000000000000000000000000 --- a/src/components/label/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './types'; - -export { default } from './label'; diff --git a/src/components/label/label.tsx b/src/components/label/label.tsx deleted file mode 100644 index df9d7159e7004c4a9ec0fb56f084880e4b003866..0000000000000000000000000000000000000000 --- a/src/components/label/label.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { forwardRef } from 'react'; - -import Box from '@mui/material/Box'; -import { useTheme } from '@mui/material/styles'; - -import { LabelProps } from './types'; -import { StyledLabel } from './styles'; - -// ---------------------------------------------------------------------- - -const Label = forwardRef<HTMLSpanElement, LabelProps>( - function Label({ children, color = 'default', variant = 'soft', startIcon, endIcon, sx, ...other }, ref) { - const theme = useTheme(); - - const iconStyles = { - width: 16, - height: 16, - '& svg, img': { width: 1, height: 1, objectFit: 'cover' }, - }; - - return ( - <StyledLabel - ref={ref} - component="span" - ownerState={{ color, variant }} - sx={{ - ...(startIcon && { pl: 0.75 }), - ...(endIcon && { pr: 0.75 }), - ...sx, - }} - theme={theme} - {...other} - > - {startIcon && <Box sx={{ mr: 0.75, ...iconStyles }}> {startIcon} </Box>} - - {children} - - {endIcon && <Box sx={{ ml: 0.75, ...iconStyles }}> {endIcon} </Box>} - </StyledLabel> - ); - } -); - -export default Label; diff --git a/src/components/label/styles.ts b/src/components/label/styles.ts deleted file mode 100644 index f2195d54a76965a8afc00ab2955104ec06628955..0000000000000000000000000000000000000000 --- a/src/components/label/styles.ts +++ /dev/null @@ -1,88 +0,0 @@ -import Box from '@mui/material/Box'; -import { alpha, Theme, styled } from '@mui/material/styles'; - -import { LabelColor, LabelVariant } from './types'; - -// ---------------------------------------------------------------------- - -export const StyledLabel = styled(Box)(({ - theme, - ownerState, -}: { - theme: Theme; - ownerState: { - color: LabelColor; - variant: LabelVariant; - }; -}) => { - const lightMode = theme.palette.mode === 'light'; - - const filledVariant = ownerState.variant === 'filled'; - - const outlinedVariant = ownerState.variant === 'outlined'; - - const softVariant = ownerState.variant === 'soft'; - - const defaultStyle = { - ...(ownerState.color === 'default' && { - // FILLED - ...(filledVariant && { - color: lightMode ? theme.palette.common.white : theme.palette.grey[800], - backgroundColor: theme.palette.text.primary, - }), - // OUTLINED - ...(outlinedVariant && { - backgroundColor: 'transparent', - color: theme.palette.text.primary, - border: `2px solid ${theme.palette.text.primary}`, - }), - // SOFT - ...(softVariant && { - color: theme.palette.text.secondary, - backgroundColor: alpha(theme.palette.grey[500], 0.16), - }), - }), - }; - - const colorStyle = { - ...(ownerState.color !== 'default' && { - // FILLED - ...(filledVariant && { - color: theme.palette[ownerState.color].contrastText, - backgroundColor: theme.palette[ownerState.color].main, - }), - // OUTLINED - ...(outlinedVariant && { - backgroundColor: 'transparent', - color: theme.palette[ownerState.color].main, - border: `2px solid ${theme.palette[ownerState.color].main}`, - }), - // SOFT - ...(softVariant && { - color: theme.palette[ownerState.color][lightMode ? 'dark' : 'light'], - backgroundColor: alpha(theme.palette[ownerState.color].main, 0.16), - }), - }), - }; - - return { - height: 24, - minWidth: 24, - lineHeight: 0, - borderRadius: 6, - cursor: 'default', - alignItems: 'center', - whiteSpace: 'nowrap', - display: 'inline-flex', - justifyContent: 'center', - textTransform: 'capitalize', - padding: theme.spacing(0, 0.75), - fontSize: theme.typography.pxToRem(12), - fontWeight: theme.typography.fontWeightBold, - transition: theme.transitions.create('all', { - duration: theme.transitions.duration.shorter, - }), - ...defaultStyle, - ...colorStyle, - }; -}); diff --git a/src/components/label/types.ts b/src/components/label/types.ts deleted file mode 100644 index 6bc24d62d9867f14f4925925f8fc398424a3e69c..0000000000000000000000000000000000000000 --- a/src/components/label/types.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { BoxProps } from '@mui/material/Box'; - -// ---------------------------------------------------------------------- - -export type LabelColor = - | 'default' - | 'primary' - | 'secondary' - | 'info' - | 'success' - | 'warning' - | 'error'; - -export type LabelVariant = 'filled' | 'outlined' | 'soft'; - -export interface LabelProps extends BoxProps { - startIcon?: React.ReactElement | null; - endIcon?: React.ReactElement | null; - color?: LabelColor; - variant?: LabelVariant; -} diff --git a/src/components/settings/drawer/base-option.tsx b/src/components/settings/drawer/base-option.tsx deleted file mode 100644 index b14fc3dec3070d64e0e7c60c3391d7bec8bf92a8..0000000000000000000000000000000000000000 --- a/src/components/settings/drawer/base-option.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import Stack from '@mui/material/Stack'; -import { alpha } from '@mui/material/styles'; -import ButtonBase from '@mui/material/ButtonBase'; - -import SvgColor from '@/components/svg-color'; - -// ---------------------------------------------------------------------- - -type Props = { - icons: string[]; - options: string[]; - value: string; - onChange: (newValue: string) => void; -}; - -export default function BaseOptions({ icons, options, value, onChange }: Props) { - return ( - <Stack direction="row" spacing={2}> - {options.map((option, index) => { - const selected = value === option; - - return ( - <ButtonBase - key={option} - onClick={() => onChange(option)} - sx={{ - width: 1, - height: 80, - borderRadius: 1, - border: (theme) => `solid 1px ${alpha(theme.palette.grey[500], 0.08)}`, - ...(selected && { - bgcolor: 'background.paper', - boxShadow: (theme) => - `-24px 8px 24px -4px ${alpha( - theme.palette.mode === 'light' - ? theme.palette.grey[500] - : theme.palette.common.black, - 0.08 - )}`, - }), - '& .svg-color': { - background: (theme) => - `linear-gradient(135deg, ${theme.palette.grey[500]} 0%, ${theme.palette.grey[600]} 100%)`, - ...(selected && { - background: (theme) => - `linear-gradient(135deg, ${theme.palette.primary.light} 0%, ${theme.palette.primary.main} 100%)`, - }), - }, - }} - > - <SvgColor src={`/assets/icons/setting/ic_${index === 0 ? icons[0] : icons[1]}.svg`} /> - </ButtonBase> - ); - })} - </Stack> - ); -} diff --git a/src/components/settings/drawer/fullscreen-option.tsx b/src/components/settings/drawer/fullscreen-option.tsx deleted file mode 100644 index 7af9f8a01877d4b50f98a32733b3ff7f3498a318..0000000000000000000000000000000000000000 --- a/src/components/settings/drawer/fullscreen-option.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import { useState, useCallback } from 'react'; - -import Box from '@mui/material/Box'; -import { alpha } from '@mui/material/styles'; -import ButtonBase from '@mui/material/ButtonBase'; - -import SvgColor from '@/components/svg-color'; - -// ---------------------------------------------------------------------- - -export default function FullScreenOption() { - const [fullscreen, setFullscreen] = useState(false); - - const onToggleFullScreen = useCallback(() => { - if (!document.fullscreenElement) { - document.documentElement.requestFullscreen(); - setFullscreen(true); - } else if (document.exitFullscreen) { - document.exitFullscreen(); - setFullscreen(false); - } - }, []); - - return ( - <Box sx={{ p: 2.5 }}> - <ButtonBase - onClick={onToggleFullScreen} - sx={{ - width: 1, - height: 48, - borderRadius: 1, - color: 'text.disabled', - typography: 'subtitle2', - border: (theme) => `solid 1px ${alpha(theme.palette.grey[500], 0.08)}`, - ...(fullscreen && { - color: 'text.primary', - }), - '& .svg-color': { - background: (theme) => - `linear-gradient(135deg, ${theme.palette.grey[500]} 0%, ${theme.palette.grey[600]} 100%)`, - ...(fullscreen && { - background: (theme) => - `linear-gradient(135deg, ${theme.palette.primary.light} 0%, ${theme.palette.primary.main} 100%)`, - }), - }, - }} - > - <SvgColor - src={`/assets/icons/setting/${fullscreen ? 'ic_exit_full_screen' : 'ic_full_screen'}.svg`} - sx={{ width: 16, height: 16, mr: 1 }} - /> - - {fullscreen ? 'Exit Fullscreen' : 'Fullscreen'} - </ButtonBase> - </Box> - ); -} diff --git a/src/components/settings/drawer/index.ts b/src/components/settings/drawer/index.ts deleted file mode 100644 index 201e333fb2fd1567dfde589b471c1e5e3910d742..0000000000000000000000000000000000000000 --- a/src/components/settings/drawer/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './settings-drawer'; diff --git a/src/components/settings/drawer/layout-options.tsx b/src/components/settings/drawer/layout-options.tsx deleted file mode 100644 index a94019be31c2c4018486046ee172393ca0477f63..0000000000000000000000000000000000000000 --- a/src/components/settings/drawer/layout-options.tsx +++ /dev/null @@ -1,151 +0,0 @@ -import Box from '@mui/material/Box'; -import Stack from '@mui/material/Stack'; -import ButtonBase from '@mui/material/ButtonBase'; -import { alpha, useTheme } from '@mui/material/styles'; - -// ---------------------------------------------------------------------- - -type Props = { - options: string[]; - value: string; - onChange: (newValue: string) => void; -}; - -export default function LayoutOptions({ options, value, onChange }: Props) { - const theme = useTheme(); - - const renderNav = (option: string, selected: boolean) => { - const background = `linear-gradient(135deg, ${theme.palette.primary.light} 0%, ${theme.palette.primary.main} 100%)`; - - const baseStyles = { - flexShrink: 0, - borderRadius: 0.5, - bgcolor: 'grey.500', - }; - - const circle = ( - <Box - sx={{ - ...baseStyles, - width: 8, - height: 8, - ...(selected && { background }), - }} - /> - ); - - const primaryItem = ( - <Box - sx={{ - ...baseStyles, - width: 1, - height: 3, - opacity: 0.48, - ...(option === 'horizontal' && { - width: 12, - }), - ...(selected && { background }), - }} - /> - ); - - const secondaryItem = ( - <Box - sx={{ - ...baseStyles, - width: 1, - height: 3, - maxWidth: 12, - opacity: 0.24, - ...(option === 'horizontal' && { - width: 8, - }), - ...(selected && { background }), - }} - /> - ); - - return ( - <Stack - spacing={0.5} - flexShrink={0} - direction={option === 'horizontal' ? 'row' : 'column'} - sx={{ - p: 0.5, - width: 28, - height: 1, - borderRight: `solid 1px ${alpha(theme.palette.grey[500], 0.08)}`, - ...(option === 'mini' && { - width: 16, - }), - ...(option === 'horizontal' && { - width: 1, - height: 16, - alignItems: 'center', - borderRight: 'unset', - borderBottom: `solid 1px ${alpha(theme.palette.grey[500], 0.08)}`, - }), - }} - > - {circle} - {primaryItem} - {secondaryItem} - </Stack> - ); - }; - - const renderContent = (selected: boolean) => ( - <Box sx={{ p: 0.5, flexGrow: 1, height: 1, width: 1 }}> - <Box - sx={{ - width: 1, - height: 1, - opacity: 0.08, - borderRadius: 0.5, - bgcolor: 'grey.500', - ...(selected && { - opacity: 0.24, - background: `linear-gradient(135deg, ${theme.palette.primary.light} 0%, ${theme.palette.primary.main} 100%)`, - }), - }} - /> - </Box> - ); - - return ( - <Stack direction="row" spacing={2}> - {options.map((option) => { - const selected = value === option; - - return ( - <ButtonBase - key={option} - onClick={() => onChange(option)} - sx={{ - p: 0, - width: 1, - height: 56, - borderRadius: 1, - border: `solid 1px ${alpha(theme.palette.grey[500], 0.08)}`, - ...(selected && { - bgcolor: 'background.paper', - boxShadow: `-24px 8px 24px -4px ${alpha( - theme.palette.mode === 'light' - ? theme.palette.grey[500] - : theme.palette.common.black, - 0.08 - )}`, - }), - ...(option === 'horizontal' && { - flexDirection: 'column', - }), - }} - > - {renderNav(option, selected)} - {renderContent(selected)} - </ButtonBase> - ); - })} - </Stack> - ); -} diff --git a/src/components/settings/drawer/presets-options.tsx b/src/components/settings/drawer/presets-options.tsx deleted file mode 100644 index 67f7f144485e890a9290073af70c74e93a89f843..0000000000000000000000000000000000000000 --- a/src/components/settings/drawer/presets-options.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import Box from '@mui/material/Box'; -import { alpha } from '@mui/material/styles'; -import ButtonBase from '@mui/material/ButtonBase'; - -import { presetOptions } from '@/theme/options/presets'; - -// ---------------------------------------------------------------------- - -type PresetsOptionsProps = { - value: string; - onChange: (newValue: string) => void; -}; - -export default function PresetsOptions({ value, onChange }: PresetsOptionsProps) { - return ( - <Box columnGap={2} rowGap={1.5} display="grid" gridTemplateColumns="repeat(3, 1fr)"> - {presetOptions.map((option) => { - const selected = value === option.name; - - return ( - <ButtonBase - key={option.name} - onClick={() => onChange(option.name)} - sx={{ - height: 56, - borderRadius: 1, - border: (theme) => `solid 1px ${alpha(theme.palette.grey[500], 0.08)}`, - ...(selected && { - borderColor: 'transparent', - bgcolor: alpha(option.value, 0.08), - }), - }} - > - <Box - sx={{ - width: 12, - height: 12, - borderRadius: '50%', - bgcolor: option.value, - transition: (theme) => - theme.transitions.create(['transform'], { - duration: theme.transitions.duration.shorter, - }), - ...(selected && { - transform: 'scale(2)', - }), - }} - /> - </ButtonBase> - ); - })} - </Box> - ); -} diff --git a/src/components/settings/drawer/settings-drawer.tsx b/src/components/settings/drawer/settings-drawer.tsx deleted file mode 100644 index 24d1b5d2e5ab71039e4f5e4d6abb6ccfc6538f5d..0000000000000000000000000000000000000000 --- a/src/components/settings/drawer/settings-drawer.tsx +++ /dev/null @@ -1,195 +0,0 @@ -'use client'; - -import Stack from '@mui/material/Stack'; -import Badge from '@mui/material/Badge'; -import Divider from '@mui/material/Divider'; -import Tooltip from '@mui/material/Tooltip'; -import { useTheme } from '@mui/material/styles'; -import IconButton from '@mui/material/IconButton'; -import Typography from '@mui/material/Typography'; -import Drawer, { drawerClasses } from '@mui/material/Drawer'; - -import { paper } from '@/theme/css'; - -import Iconify from '@/components/iconify'; -import Scrollbar from '@/components/scrollbar'; -import BaseOptions from './base-option'; -import LayoutOptions from './layout-options'; -import PresetsOptions from './presets-options'; -import StretchOptions from './stretch-options'; -import { useSettingsContext } from '@/components/settings/context'; -import FullScreenOption from './fullscreen-option'; - -// ---------------------------------------------------------------------- - -export default function SettingsDrawer() { - const theme = useTheme(); - - const settings = useSettingsContext(); - - const labelStyles = { - mb: 1.5, - color: 'text.disabled', - fontWeight: 'fontWeightSemiBold', - }; - - const renderHead = ( - <Stack - direction="row" - alignItems="center" - justifyContent="space-between" - sx={{ py: 2, pr: 1, pl: 2.5 }} - > - <Typography variant="h6" sx={{ flexGrow: 1 }}> - Settings - </Typography> - - <Tooltip title="Reset"> - <IconButton onClick={settings.onReset}> - <Badge color="error" variant="dot" invisible={!settings.canReset}> - <Iconify icon="solar:restart-bold" /> - </Badge> - </IconButton> - </Tooltip> - - <IconButton onClick={settings.onClose}> - <Iconify icon="mingcute:close-line" /> - </IconButton> - </Stack> - ); - - const renderMode = ( - <div> - <Typography variant="caption" component="div" sx={{ ...labelStyles }}> - Mode - </Typography> - - <BaseOptions - value={settings.themeMode} - onChange={(newValue: string) => settings.onUpdate('themeMode', newValue)} - options={['light', 'dark']} - icons={['sun', 'moon']} - /> - </div> - ); - - const renderContrast = ( - <div> - <Typography variant="caption" component="div" sx={{ ...labelStyles }}> - Contrast - </Typography> - - <BaseOptions - value={settings.themeContrast} - onChange={(newValue: string) => settings.onUpdate('themeContrast', newValue)} - options={['default', 'bold']} - icons={['contrast', 'contrast_bold']} - /> - </div> - ); - - const renderDirection = ( - <div> - <Typography variant="caption" component="div" sx={{ ...labelStyles }}> - Direction - </Typography> - - <BaseOptions - value={settings.themeDirection} - onChange={(newValue: string) => settings.onUpdate('themeDirection', newValue)} - options={['ltr', 'rtl']} - icons={['align_left', 'align_right']} - /> - </div> - ); - - const renderLayout = ( - <div> - <Typography variant="caption" component="div" sx={{ ...labelStyles }}> - Layout - </Typography> - - <LayoutOptions - value={settings.themeLayout} - onChange={(newValue: string) => settings.onUpdate('themeLayout', newValue)} - options={['vertical', 'horizontal', 'mini']} - /> - </div> - ); - - const renderStretch = ( - <div> - <Typography - variant="caption" - component="div" - sx={{ - ...labelStyles, - display: 'inline-flex', - alignItems: 'center', - }} - > - Stretch - <Tooltip title="Only available at large resolutions > 1600px (xl)"> - <Iconify icon="eva:info-outline" width={16} sx={{ ml: 0.5 }} /> - </Tooltip> - </Typography> - - <StretchOptions - value={settings.themeStretch} - onChange={() => settings.onUpdate('themeStretch', !settings.themeStretch)} - /> - </div> - ); - - const renderPresets = ( - <div> - <Typography variant="caption" component="div" sx={{ ...labelStyles }}> - Presets - </Typography> - - <PresetsOptions - value={settings.themeColorPresets} - onChange={(newValue: string) => settings.onUpdate('themeColorPresets', newValue)} - /> - </div> - ); - - return ( - <Drawer - anchor="right" - open={settings.open} - onClose={settings.onClose} - slotProps={{ - backdrop: { invisible: true }, - }} - sx={{ - [`& .${drawerClasses.paper}`]: { - ...paper({ theme, bgcolor: theme.palette.background.default }), - width: 280, - }, - }} - > - {renderHead} - - <Divider sx={{ borderStyle: 'dashed' }} /> - - <Scrollbar> - <Stack spacing={3} sx={{ p: 3 }}> - {renderMode} - - {renderContrast} - - {renderDirection} - - {renderLayout} - - {renderStretch} - - {renderPresets} - </Stack> - </Scrollbar> - - <FullScreenOption /> - </Drawer> - ); -} diff --git a/src/components/settings/drawer/stretch-options.tsx b/src/components/settings/drawer/stretch-options.tsx deleted file mode 100644 index cbfb427ef3a4db69978589164084a099ce6cd3be..0000000000000000000000000000000000000000 --- a/src/components/settings/drawer/stretch-options.tsx +++ /dev/null @@ -1,68 +0,0 @@ -import Box from '@mui/material/Box'; -import Stack from '@mui/material/Stack'; -import { alpha } from '@mui/material/styles'; -import ButtonBase from '@mui/material/ButtonBase'; - -import Iconify from '@/components/iconify'; - -// ---------------------------------------------------------------------- - -type Props = { - value: boolean; - onChange: VoidFunction; -}; - -export default function StretchOptions({ value, onChange }: Props) { - return ( - <ButtonBase - onClick={onChange} - sx={{ - width: 1, - height: 80, - borderRadius: 1, - color: 'text.disabled', - border: (theme) => `solid 1px ${alpha(theme.palette.grey[500], 0.08)}`, - ...(value && { - bgcolor: 'background.paper', - color: (theme) => theme.palette.primary.main, - boxShadow: (theme) => - `-24px 8px 24px -4px ${alpha( - theme.palette.mode === 'light' ? theme.palette.grey[500] : theme.palette.common.black, - 0.08 - )}`, - }), - }} - > - <Stack - direction="row" - alignItems="center" - justifyContent="space-between" - sx={{ - width: 0.24, - transition: (theme) => theme.transitions.create(['width']), - ...(value && { - width: 0.5, - }), - }} - > - <Iconify - icon={value ? 'eva:arrow-ios-back-fill' : 'eva:arrow-ios-forward-fill'} - sx={{ - color: (theme) => - `linear-gradient(135deg, ${theme.palette.primary.light} 0%, ${theme.palette.primary.main} 100%)`, - }} - /> - - <Box sx={{ flexGrow: 1, borderBottom: `dashed 1.5px currentcolor` }} /> - - <Iconify - icon={value ? 'eva:arrow-ios-forward-fill' : 'eva:arrow-ios-back-fill'} - sx={{ - color: (theme) => - `linear-gradient(135deg, ${theme.palette.primary.light} 0%, ${theme.palette.primary.main} 100%)`, - }} - /> - </Stack> - </ButtonBase> - ); -} diff --git a/src/components/settings/index.ts b/src/components/settings/index.ts index 423e59752335e31032ad8ddbdc1ecf2e4aa69d0a..e77e6397e3340eaee77069165553d4d1ce16ef1b 100644 --- a/src/components/settings/index.ts +++ b/src/components/settings/index.ts @@ -1,4 +1,2 @@ export * from './types'; export * from './context'; - -export { default as SettingsDrawer } from './drawer'; diff --git a/src/components/table/index.ts b/src/components/table/index.ts deleted file mode 100644 index 9a470e23a813131c952690e3b40cc986938a57e6..0000000000000000000000000000000000000000 --- a/src/components/table/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -export * from './types'; -export * from './utils'; - -export { default as useTable } from './use-table'; - -export { default as TableNoData } from './table-no-data'; -export { default as TableSkeleton } from './table-skeleton'; -export { default as TableEmptyRows } from './table-empty-rows'; -export { default as TableHeadCustom } from './table-head-custom'; -export { default as TableSelectedAction } from './table-selected-action'; -export { default as TablePaginationCustom } from './table-pagination-custom'; diff --git a/src/components/table/table-empty-rows.tsx b/src/components/table/table-empty-rows.tsx deleted file mode 100644 index aaf0e990fd169167720a2c144ae7ba5ff216ca6b..0000000000000000000000000000000000000000 --- a/src/components/table/table-empty-rows.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import TableRow from '@mui/material/TableRow'; -import TableCell from '@mui/material/TableCell'; - -// ---------------------------------------------------------------------- - -type Props = { - height?: number; - emptyRows: number; -}; - -export default function TableEmptyRows({ emptyRows, height }: Props) { - if (!emptyRows) { - return null; - } - - return ( - <TableRow - sx={{ - ...(height && { - height: height * emptyRows, - }), - }} - > - <TableCell colSpan={9} /> - </TableRow> - ); -} diff --git a/src/components/table/table-head-custom.tsx b/src/components/table/table-head-custom.tsx deleted file mode 100644 index 6bd7f173e27c8653e1982b5b065d25a88fa93436..0000000000000000000000000000000000000000 --- a/src/components/table/table-head-custom.tsx +++ /dev/null @@ -1,91 +0,0 @@ -import Box from '@mui/material/Box'; -import TableRow from '@mui/material/TableRow'; -import Checkbox from '@mui/material/Checkbox'; -import TableHead from '@mui/material/TableHead'; -import TableCell from '@mui/material/TableCell'; -import { Theme, SxProps } from '@mui/material/styles'; -import TableSortLabel from '@mui/material/TableSortLabel'; - -// ---------------------------------------------------------------------- - -const visuallyHidden = { - border: 0, - margin: -1, - padding: 0, - width: '1px', - height: '1px', - overflow: 'hidden', - position: 'absolute', - whiteSpace: 'nowrap', - clip: 'rect(0 0 0 0)', -} as const; - -// ---------------------------------------------------------------------- - -type Props = { - order?: 'asc' | 'desc'; - orderBy?: string; - headLabel: any[]; - rowCount?: number; - numSelected?: number; - onSort?: (id: string) => void; - onSelectAllRows?: (checked: boolean) => void; - sx?: SxProps<Theme>; -}; - -export default function TableHeadCustom({ - order, - orderBy, - rowCount = 0, - headLabel, - numSelected = 0, - onSort, - onSelectAllRows, - sx, -}: Props) { - return ( - <TableHead sx={sx}> - <TableRow> - {onSelectAllRows && ( - <TableCell padding="checkbox"> - <Checkbox - indeterminate={!!numSelected && numSelected < rowCount} - checked={!!rowCount && numSelected === rowCount} - onChange={(event: React.ChangeEvent<HTMLInputElement>) => - onSelectAllRows(event.target.checked) - } - /> - </TableCell> - )} - - {headLabel.map((headCell) => ( - <TableCell - key={headCell.id} - align={headCell.align || 'left'} - sortDirection={orderBy === headCell.id ? order : false} - sx={{ width: headCell.width, minWidth: headCell.minWidth }} - > - {onSort ? ( - <TableSortLabel - hideSortIcon - active={orderBy === headCell.id} - direction={orderBy === headCell.id ? order : 'asc'} - onClick={() => onSort(headCell.id)} - > - {headCell.label} - - {orderBy === headCell.id ? ( - <Box sx={{ ...visuallyHidden }}> - {order === 'desc' ? 'sorted descending' : 'sorted ascending'} - </Box> - ) : null} - </TableSortLabel> - ) : ( - headCell.label - )} - </TableCell> - ))} - </TableRow> - </TableHead> - ); -} diff --git a/src/components/table/table-no-data.tsx b/src/components/table/table-no-data.tsx deleted file mode 100644 index 3607c8c77b5119f0b3f759140ab198c40c39c4fb..0000000000000000000000000000000000000000 --- a/src/components/table/table-no-data.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import TableRow from '@mui/material/TableRow'; -import TableCell from '@mui/material/TableCell'; -import { Theme, SxProps } from '@mui/material/styles'; - -import EmptyContent from '@/components/empty-content'; - -// ---------------------------------------------------------------------- - -type Props = { - notFound: boolean; - sx?: SxProps<Theme>; -}; - -export default function TableNoData({ notFound, sx }: Props) { - return ( - <TableRow> - {notFound ? ( - <TableCell colSpan={12}> - <EmptyContent - filled - title="No Data" - sx={{ - py: 10, - ...sx, - }} - /> - </TableCell> - ) : ( - <TableCell colSpan={12} sx={{ p: 0 }} /> - )} - </TableRow> - ); -} diff --git a/src/components/table/table-pagination-custom.tsx b/src/components/table/table-pagination-custom.tsx deleted file mode 100644 index 4a6517c845b251a1736ee95413fa601b69d84994..0000000000000000000000000000000000000000 --- a/src/components/table/table-pagination-custom.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import Box from '@mui/material/Box'; -import Switch from '@mui/material/Switch'; -import { Theme, SxProps } from '@mui/material/styles'; -import FormControlLabel from '@mui/material/FormControlLabel'; -import TablePagination, { TablePaginationProps } from '@mui/material/TablePagination'; - -// ---------------------------------------------------------------------- - -type Props = { - dense?: boolean; - onChangeDense?: (event: React.ChangeEvent<HTMLInputElement>) => void; - sx?: SxProps<Theme>; -}; - -export default function TablePaginationCustom({ - dense, - onChangeDense, - rowsPerPageOptions = [5, 10, 25], - sx, - ...other -}: Props & TablePaginationProps) { - return ( - <Box sx={{ position: 'relative', ...sx }}> - <TablePagination - rowsPerPageOptions={rowsPerPageOptions} - component="div" - {...other} - sx={{ - borderTopColor: 'transparent', - }} - /> - - {onChangeDense && ( - <FormControlLabel - label="Dense" - control={<Switch checked={dense} onChange={onChangeDense} />} - sx={{ - pl: 2, - py: 1.5, - top: 0, - position: { - sm: 'absolute', - }, - }} - /> - )} - </Box> - ); -} diff --git a/src/components/table/table-selected-action.tsx b/src/components/table/table-selected-action.tsx deleted file mode 100644 index 1dce252b67aad2d275004bdcb061c41fc84fb237..0000000000000000000000000000000000000000 --- a/src/components/table/table-selected-action.tsx +++ /dev/null @@ -1,74 +0,0 @@ -import Checkbox from '@mui/material/Checkbox'; -import Typography from '@mui/material/Typography'; -import Stack, { StackProps } from '@mui/material/Stack'; - -// ---------------------------------------------------------------------- - -interface Props extends StackProps { - dense?: boolean; - action?: React.ReactNode; - rowCount: number; - numSelected: number; - onSelectAllRows: (checked: boolean) => void; -} - -export default function TableSelectedAction({ - dense, - action, - rowCount, - numSelected, - onSelectAllRows, - sx, - ...other -}: Props) { - if (!numSelected) { - return null; - } - - return ( - <Stack - direction="row" - alignItems="center" - sx={{ - pl: 1, - pr: 2, - top: 0, - left: 0, - width: 1, - zIndex: 9, - height: 58, - position: 'absolute', - bgcolor: 'primary.lighter', - ...(dense && { - height: 38, - }), - ...sx, - }} - {...other} - > - <Checkbox - indeterminate={!!numSelected && numSelected < rowCount} - checked={!!rowCount && numSelected === rowCount} - onChange={(event: React.ChangeEvent<HTMLInputElement>) => - onSelectAllRows(event.target.checked) - } - /> - - <Typography - variant="subtitle2" - sx={{ - ml: 2, - flexGrow: 1, - color: 'primary.main', - ...(dense && { - ml: 3, - }), - }} - > - {numSelected} selected - </Typography> - - {action && action} - </Stack> - ); -} diff --git a/src/components/table/table-skeleton.tsx b/src/components/table/table-skeleton.tsx deleted file mode 100644 index 9c5e10e743f5665476012496b2295b912c690a75..0000000000000000000000000000000000000000 --- a/src/components/table/table-skeleton.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import Stack from '@mui/material/Stack'; -import Skeleton from '@mui/material/Skeleton'; -import TableCell from '@mui/material/TableCell'; -import TableRow, { TableRowProps } from '@mui/material/TableRow'; - -// ---------------------------------------------------------------------- - -export default function TableSkeleton({ ...other }: TableRowProps) { - return ( - <TableRow {...other}> - <TableCell colSpan={12}> - <Stack spacing={3} direction="row" alignItems="center"> - <Skeleton sx={{ borderRadius: 1.5, width: 48, height: 48, flexShrink: 0 }} /> - <Skeleton sx={{ width: 1, height: 12 }} /> - <Skeleton sx={{ width: 180, height: 12 }} /> - <Skeleton sx={{ width: 160, height: 12 }} /> - <Skeleton sx={{ width: 140, height: 12 }} /> - <Skeleton sx={{ width: 120, height: 12 }} /> - </Stack> - </TableCell> - </TableRow> - ); -} diff --git a/src/components/table/types.ts b/src/components/table/types.ts deleted file mode 100644 index e693542261e5c11523cd411b54b729493aff78a6..0000000000000000000000000000000000000000 --- a/src/components/table/types.ts +++ /dev/null @@ -1,34 +0,0 @@ -// ---------------------------------------------------------------------- - -export type TableProps = { - dense: boolean; - page: number; - rowsPerPage: number; - order: 'asc' | 'desc'; - orderBy: string; - // - selected: string[]; - onSelectRow: (id: string) => void; - onSelectAllRows: (checked: boolean, newSelecteds: string[]) => void; - // - onResetPage: VoidFunction; - onSort: (id: string) => void; - onChangePage: (event: unknown, newPage: number) => void; - onChangeRowsPerPage: (event: React.ChangeEvent<HTMLInputElement>) => void; - onChangeDense: (event: React.ChangeEvent<HTMLInputElement>) => void; - onUpdatePageDeleteRow: (totalRowsInPage: number) => void; - onUpdatePageDeleteRows: ({ - totalRowsInPage, - totalRowsFiltered, - }: { - totalRowsInPage: number; - totalRowsFiltered: number; - }) => void; - // - setPage: React.Dispatch<React.SetStateAction<number>>; - setDense: React.Dispatch<React.SetStateAction<boolean>>; - setOrder: React.Dispatch<React.SetStateAction<'desc' | 'asc'>>; - setOrderBy: React.Dispatch<React.SetStateAction<string>>; - setSelected: React.Dispatch<React.SetStateAction<string[]>>; - setRowsPerPage: React.Dispatch<React.SetStateAction<number>>; -}; diff --git a/src/components/table/use-table.ts b/src/components/table/use-table.ts deleted file mode 100644 index e1af163ca0bd37048f893ae664cb1230a2b73cd6..0000000000000000000000000000000000000000 --- a/src/components/table/use-table.ts +++ /dev/null @@ -1,143 +0,0 @@ -import { useState, useCallback } from 'react'; - -import { TableProps } from './types'; - -// ---------------------------------------------------------------------- - -type ReturnType = TableProps; - -export type UseTableProps = { - defaultDense?: boolean; - defaultOrder?: 'asc' | 'desc'; - defaultOrderBy?: string; - defaultSelected?: string[]; - defaultRowsPerPage?: number; - defaultCurrentPage?: number; -}; - -export default function useTable(props?: UseTableProps): ReturnType { - const [dense, setDense] = useState(!!props?.defaultDense); - - const [page, setPage] = useState(props?.defaultCurrentPage || 0); - - const [orderBy, setOrderBy] = useState(props?.defaultOrderBy || 'name'); - - const [rowsPerPage, setRowsPerPage] = useState(props?.defaultRowsPerPage || 5); - - const [order, setOrder] = useState<'asc' | 'desc'>(props?.defaultOrder || 'asc'); - - const [selected, setSelected] = useState<string[]>(props?.defaultSelected || []); - - const onSort = useCallback( - (id: string) => { - const isAsc = orderBy === id && order === 'asc'; - if (id !== '') { - setOrder(isAsc ? 'desc' : 'asc'); - setOrderBy(id); - } - }, - [order, orderBy] - ); - - const onSelectRow = useCallback( - (inputValue: string) => { - const newSelected = selected.includes(inputValue) - ? selected.filter((value) => value !== inputValue) - : [...selected, inputValue]; - - setSelected(newSelected); - }, - [selected] - ); - - const onChangeRowsPerPage = useCallback((event: React.ChangeEvent<HTMLInputElement>) => { - setPage(0); - setRowsPerPage(parseInt(event.target.value, 10)); - }, []); - - const onChangeDense = useCallback((event: React.ChangeEvent<HTMLInputElement>) => { - setDense(event.target.checked); - }, []); - - const onSelectAllRows = useCallback((checked: boolean, inputValue: string[]) => { - if (checked) { - setSelected(inputValue); - return; - } - setSelected([]); - }, []); - - const onChangePage = useCallback((event: unknown, newPage: number) => { - setPage(newPage); - }, []); - - const onResetPage = useCallback(() => { - setPage(0); - }, []); - - const onUpdatePageDeleteRow = useCallback( - (totalRowsInPage: number) => { - setSelected([]); - if (page) { - if (totalRowsInPage < 2) { - setPage(page - 1); - } - } - }, - [page] - ); - - const onUpdatePageDeleteRows = useCallback( - ({ - totalRowsInPage, - totalRowsFiltered, - }: { - totalRowsInPage: number; - totalRowsFiltered: number; - }) => { - const totalSelected = selected.length; - - setSelected([]); - - if (page) { - if (totalSelected === totalRowsInPage) { - setPage(page - 1); - } else if (totalSelected === totalRowsFiltered) { - setPage(0); - } else if (totalSelected > totalRowsInPage) { - const newPage = Math.ceil((totalRowsFiltered - totalSelected) / rowsPerPage) - 1; - - setPage(newPage); - } - } - }, - [page, rowsPerPage, selected.length] - ); - - return { - dense, - order, - page, - orderBy, - rowsPerPage, - // - selected, - onSelectRow, - onSelectAllRows, - // - onSort, - onChangePage, - onChangeDense, - onResetPage, - onChangeRowsPerPage, - onUpdatePageDeleteRow, - onUpdatePageDeleteRows, - // - setPage, - setDense, - setOrder, - setOrderBy, - setSelected, - setRowsPerPage, - }; -} diff --git a/src/components/table/utils.ts b/src/components/table/utils.ts deleted file mode 100644 index 08d28132d033bd18b900fb980099c7111eac3f6d..0000000000000000000000000000000000000000 --- a/src/components/table/utils.ts +++ /dev/null @@ -1,30 +0,0 @@ -// ---------------------------------------------------------------------- - -export function emptyRows(page: number, rowsPerPage: number, arrayLength: number) { - return page ? Math.max(0, (1 + page) * rowsPerPage - arrayLength) : 0; -} - -function descendingComparator<T>(a: T, b: T, orderBy: keyof T) { - if (a[orderBy] === null) { - return 1; - } - if (b[orderBy] === null) { - return -1; - } - if (b[orderBy] < a[orderBy]) { - return -1; - } - if (b[orderBy] > a[orderBy]) { - return 1; - } - return 0; -} - -export function getComparator<Key extends keyof any>( - order: 'asc' | 'desc', - orderBy: Key -): (a: { [key in Key]: number | string }, b: { [key in Key]: number | string }) => number { - return order === 'desc' - ? (a, b) => descendingComparator(a, b, orderBy) - : (a, b) => -descendingComparator(a, b, orderBy); -} diff --git a/src/hooks/use-event-listener.ts b/src/hooks/use-event-listener.ts deleted file mode 100644 index 7729cc7ff6d8ee81b91318ba937aadd209378afd..0000000000000000000000000000000000000000 --- a/src/hooks/use-event-listener.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { useRef, RefObject, useEffect, useLayoutEffect } from 'react'; - -// ---------------------------------------------------------------------- - -const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect; - -// Window Event based useEventListener interface -export function useEventListener<K extends keyof WindowEventMap>( - eventName: K, - handler: (event: WindowEventMap[K]) => void, - element?: undefined, - options?: boolean | AddEventListenerOptions -): void; - -// Element Event based useEventListener interface -export function useEventListener< - K extends keyof HTMLElementEventMap, - T extends HTMLElement = HTMLDivElement, ->( - eventName: K, - handler: (event: HTMLElementEventMap[K]) => void, - element: RefObject<T>, - options?: boolean | AddEventListenerOptions -): void; - -// Document Event based useEventListener interface -export function useEventListener<K extends keyof DocumentEventMap>( - eventName: K, - handler: (event: DocumentEventMap[K]) => void, - element: RefObject<Document>, - options?: boolean | AddEventListenerOptions -): void; - -export function useEventListener< - KW extends keyof WindowEventMap, - KH extends keyof HTMLElementEventMap, - T extends HTMLElement | void = void, ->( - eventName: KW | KH, - handler: (event: WindowEventMap[KW] | HTMLElementEventMap[KH] | Event) => void, - element?: RefObject<T>, - options?: boolean | AddEventListenerOptions -) { - // Create a ref that stores handler - const savedHandler = useRef(handler); - - useIsomorphicLayoutEffect(() => { - savedHandler.current = handler; - }, [handler]); - - useEffect(() => { - // Define the listening target - const targetElement: T | Window = element?.current || window; - if (!(targetElement && targetElement.addEventListener)) { - return; - } - - // Create event listener that calls handler function stored in ref - const eventListener: typeof handler = (event) => savedHandler.current(event); - - targetElement.addEventListener(eventName, eventListener, options); - - // Remove event listener on cleanup - // eslint-disable-next-line consistent-return - return () => { - targetElement.removeEventListener(eventName, eventListener); - }; - }, [eventName, element, options]); -} diff --git a/src/hooks/use-mocked-user.ts b/src/hooks/use-mocked-user.ts deleted file mode 100644 index 7a4ccf44a8779b3b00fd1255a6bf7f2f7d9e9799..0000000000000000000000000000000000000000 --- a/src/hooks/use-mocked-user.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { _mock } from '@/_mock'; - -// TO GET THE USER FROM THE AUTHCONTEXT, YOU CAN USE - -// CHANGE: -// import { useMockedUser } from 'src/hooks/use-mocked-user'; -// const { user } = useMockedUser(); - -// TO: -// import { useAuthContext } from 'src/auth/hooks'; -// const { user } = useAuthContext(); - -// ---------------------------------------------------------------------- - -export function useMockedUser() { - const user = { - id: '8864c717-587d-472a-929a-8e5f298024da-0', - displayName: 'Jaydon Frankie', - email: 'demo@minimals.cc', - password: 'demo1234', - photoURL: _mock.image.avatar(24), - phoneNumber: '+40 777666555', - country: 'United States', - address: '90210 Broadway Blvd', - state: 'California', - city: 'San Francisco', - zipCode: '94116', - about: 'Praesent turpis. Phasellus viverra nulla ut metus varius laoreet. Phasellus tempus.', - role: 'admin', - isPublic: true, - }; - - return { user }; -} diff --git a/src/layouts/dashboard/config-navigation.tsx b/src/layouts/dashboard/config-navigation.tsx index 760996cc0d626f126c1821a6e0abcfdcd7aaf470..e947ac6c57ed98a58fb12804576cdd5a19cd0003 100644 --- a/src/layouts/dashboard/config-navigation.tsx +++ b/src/layouts/dashboard/config-navigation.tsx @@ -4,8 +4,6 @@ import { paths } from '@/routes/paths'; import { useTranslate } from '@/locales'; -import Label from '@/components/label'; -import Iconify from '@/components/iconify'; import SvgColor from '@/components/svg-color'; // ---------------------------------------------------------------------- diff --git a/src/layouts/dashboard/nav-basic.tsx b/src/layouts/dashboard/nav-basic.tsx index 7a45373a7e0960f3bb32d0c7ee94841d675ad8e7..b2f5b6790dacf77867d7931939944f75a32ebc88 100644 --- a/src/layouts/dashboard/nav-basic.tsx +++ b/src/layouts/dashboard/nav-basic.tsx @@ -7,7 +7,6 @@ import Drawer from '@mui/material/Drawer'; import { usePathname } from '@/routes/hooks'; import { useResponsive } from '@/hooks/use-responsive'; -import { useMockedUser } from '@/hooks/use-mocked-user'; import Logo from '@/components/logo'; import Scrollbar from '@/components/scrollbar'; @@ -26,8 +25,6 @@ type Props = { }; export default function NavBasic({ openNav, onCloseNav }: Props) { - const { user } = useMockedUser(); - const pathname = usePathname(); const lgUp = useResponsive('up', 'lg'); diff --git a/src/sections/overview/app/app-area-installed.tsx b/src/sections/overview/app/app-area-installed.tsx deleted file mode 100644 index 9a3109a77b81219bf019a4a59783880ffcfaf5b5..0000000000000000000000000000000000000000 --- a/src/sections/overview/app/app-area-installed.tsx +++ /dev/null @@ -1,134 +0,0 @@ -import { ApexOptions } from 'apexcharts'; -import { useState, useCallback } from 'react'; - -import Box from '@mui/material/Box'; -import MenuItem from '@mui/material/MenuItem'; -import { useTheme } from '@mui/material/styles'; -import CardHeader from '@mui/material/CardHeader'; -import ButtonBase from '@mui/material/ButtonBase'; -import Card, { CardProps } from '@mui/material/Card'; - -import Iconify from '@/components/iconify'; -import Chart, { useChart } from '@/components/chart'; -import CustomPopover, { usePopover } from '@/components/custom-popover'; - -// ---------------------------------------------------------------------- - -interface Props extends CardProps { - title?: string; - subheader?: string; - chart: { - categories?: string[]; - colors?: string[][]; - series: { - year: string; - data: { - name: string; - data: number[]; - }[]; - }[]; - options?: ApexOptions; - }; -} - -export default function AppAreaInstalled({ title, subheader, chart, ...other }: Props) { - const theme = useTheme(); - - const { - colors = [ - [theme.palette.primary.light, theme.palette.primary.main], - [theme.palette.warning.light, theme.palette.warning.main], - ], - categories, - series, - options, - } = chart; - - const popover = usePopover(); - - const [seriesData, setSeriesData] = useState('2019'); - - const chartOptions = useChart({ - colors: colors.map((colr) => colr[1]), - fill: { - type: 'gradient', - gradient: { - colorStops: colors.map((colr) => [ - { offset: 0, color: colr[0], opacity: 1 }, - { offset: 100, color: colr[1], opacity: 1 }, - ]), - }, - }, - xaxis: { - categories, - }, - ...options, - }); - - const handleChangeSeries = useCallback( - (newValue: string) => { - popover.onClose(); - setSeriesData(newValue); - }, - [popover] - ); - - return ( - <> - <Card {...other}> - <CardHeader - title={title} - subheader={subheader} - action={ - <ButtonBase - onClick={popover.onOpen} - sx={{ - pl: 1, - py: 0.5, - pr: 0.5, - borderRadius: 1, - typography: 'subtitle2', - bgcolor: 'background.neutral', - }} - > - {seriesData} - - <Iconify - width={16} - icon={popover.open ? 'eva:arrow-ios-upward-fill' : 'eva:arrow-ios-downward-fill'} - sx={{ ml: 0.5 }} - /> - </ButtonBase> - } - /> - - {series.map((item) => ( - <Box key={item.year} sx={{ mt: 3, mx: 3 }}> - {item.year === seriesData && ( - <Chart - dir="ltr" - type="line" - series={item.data} - options={chartOptions} - width="100%" - height={364} - /> - )} - </Box> - ))} - </Card> - - <CustomPopover open={popover.open} onClose={popover.onClose} sx={{ width: 140 }}> - {series.map((option) => ( - <MenuItem - key={option.year} - selected={option.year === seriesData} - onClick={() => handleChangeSeries(option.year)} - > - {option.year} - </MenuItem> - ))} - </CustomPopover> - </> - ); -} diff --git a/src/sections/overview/app/app-current-download.tsx b/src/sections/overview/app/app-current-download.tsx deleted file mode 100644 index 80f9091200771128d636720a9eae9b09d2dd88af..0000000000000000000000000000000000000000 --- a/src/sections/overview/app/app-current-download.tsx +++ /dev/null @@ -1,110 +0,0 @@ -import { ApexOptions } from 'apexcharts'; - -import CardHeader from '@mui/material/CardHeader'; -import Card, { CardProps } from '@mui/material/Card'; -import { styled, useTheme } from '@mui/material/styles'; - -import { fNumber } from '@/utils/format-number'; - -import Chart, { useChart } from '@/components/chart'; - -// ---------------------------------------------------------------------- - -const CHART_HEIGHT = 400; - -const LEGEND_HEIGHT = 72; - -const StyledChart = styled(Chart)(({ theme }) => ({ - height: CHART_HEIGHT, - '& .apexcharts-canvas, .apexcharts-inner, svg, foreignObject': { - height: `100% !important`, - }, - '& .apexcharts-legend': { - height: LEGEND_HEIGHT, - borderTop: `dashed 1px ${theme.palette.divider}`, - top: `calc(${CHART_HEIGHT - LEGEND_HEIGHT}px) !important`, - }, -})); - -// ---------------------------------------------------------------------- - -interface Props extends CardProps { - title?: string; - subheader?: string; - chart: { - colors?: string[]; - series: { - label: string; - value: number; - }[]; - options?: ApexOptions; - }; -} - -export default function AppCurrentDownload({ title, subheader, chart, ...other }: Props) { - const theme = useTheme(); - - const { colors, series, options } = chart; - - const chartSeries = series.map((i) => i.value); - - const chartOptions = useChart({ - chart: { - sparkline: { - enabled: true, - }, - }, - colors, - labels: series.map((i) => i.label), - stroke: { colors: [theme.palette.background.paper] }, - legend: { - offsetY: 0, - floating: true, - position: 'bottom', - horizontalAlign: 'center', - }, - tooltip: { - fillSeriesColor: false, - y: { - formatter: (value: number) => fNumber(value), - title: { - formatter: (seriesName: string) => `${seriesName}`, - }, - }, - }, - plotOptions: { - pie: { - donut: { - size: '90%', - labels: { - value: { - formatter: (value: number | string) => fNumber(value), - }, - total: { - formatter: (w: { globals: { seriesTotals: number[] } }) => { - const sum = w.globals.seriesTotals.reduce((a, b) => a + b, 0); - return fNumber(sum); - }, - }, - }, - }, - }, - }, - ...options, - }); - - return ( - <Card {...other}> - <CardHeader title={title} subheader={subheader} sx={{ mb: 5 }} /> - - <StyledChart - dir="ltr" - type="donut" - series={chartSeries} - options={chartOptions} - width="100%" - height={280} - /> - </Card> - ); -} diff --git a/src/sections/overview/app/app-featured.tsx b/src/sections/overview/app/app-featured.tsx deleted file mode 100644 index 3f08bc8f9ddec5c8514060f6bc2dd4263bce4f28..0000000000000000000000000000000000000000 --- a/src/sections/overview/app/app-featured.tsx +++ /dev/null @@ -1,124 +0,0 @@ -import { m } from 'framer-motion'; - -import Link from '@mui/material/Link'; -import Stack from '@mui/material/Stack'; -import Typography from '@mui/material/Typography'; -import Card, { CardProps } from '@mui/material/Card'; -import { alpha, useTheme } from '@mui/material/styles'; - -import Image from '@/components/image'; -import { varFade, MotionContainer } from '@/components/animate'; -import Carousel, { useCarousel, CarouselDots, CarouselArrows } from '@/components/carousel'; - -// ---------------------------------------------------------------------- - -type ItemProps = { - id: string; - title: string; - coverUrl: string; - description: string; -}; - -interface Props extends CardProps { - list: ItemProps[]; -} - -export default function AppFeatured({ list, ...other }: Props) { - const carousel = useCarousel({ - speed: 800, - autoplay: true, - ...CarouselDots({ - sx: { - top: 16, - left: 16, - position: 'absolute', - color: 'primary.light', - }, - }), - }); - - return ( - <Card {...other}> - <Carousel ref={carousel.carouselRef} {...carousel.carouselSettings}> - {list.map((app, index) => ( - <CarouselItem key={app.id} item={app} active={index === carousel.currentIndex} /> - ))} - </Carousel> - - <CarouselArrows - onNext={carousel.onNext} - onPrev={carousel.onPrev} - sx={{ top: 8, right: 8, position: 'absolute', color: 'common.white' }} - /> - </Card> - ); -} - -// ---------------------------------------------------------------------- - -type CarouselItemProps = { - item: ItemProps; - active?: boolean; -}; - -function CarouselItem({ item, active }: CarouselItemProps) { - const theme = useTheme(); - - const { coverUrl, title, description } = item; - - const renderImg = ( - <Image - alt={title} - src={coverUrl} - overlay={`linear-gradient(to bottom, ${alpha(theme.palette.grey[900], 0)} 0%, ${ - theme.palette.grey[900] - } 75%)`} - sx={{ - width: 1, - height: { - xs: 280, - xl: 320, - }, - }} - /> - ); - - return ( - <MotionContainer action animate={active} sx={{ position: 'relative' }}> - <Stack - spacing={1} - sx={{ - p: 3, - width: 1, - bottom: 0, - zIndex: 9, - textAlign: 'left', - position: 'absolute', - color: 'common.white', - }} - > - <m.div variants={varFade().inRight}> - <Typography variant="overline" sx={{ color: 'primary.light' }}> - Featured App - </Typography> - </m.div> - - <m.div variants={varFade().inRight}> - <Link color="inherit" underline="none"> - <Typography variant="h5" noWrap> - {title} - </Typography> - </Link> - </m.div> - - <m.div variants={varFade().inRight}> - <Typography variant="body2" noWrap> - {description} - </Typography> - </m.div> - </Stack> - - {renderImg} - </MotionContainer> - ); -} diff --git a/src/sections/overview/app/app-new-invoice.tsx b/src/sections/overview/app/app-new-invoice.tsx deleted file mode 100644 index a2e105e45b71faa75b8e090428680b8e39fb6a50..0000000000000000000000000000000000000000 --- a/src/sections/overview/app/app-new-invoice.tsx +++ /dev/null @@ -1,167 +0,0 @@ -import Box from '@mui/material/Box'; -import Table from '@mui/material/Table'; -import Button from '@mui/material/Button'; -import Divider from '@mui/material/Divider'; -import MenuItem from '@mui/material/MenuItem'; -import TableRow from '@mui/material/TableRow'; -import TableBody from '@mui/material/TableBody'; -import TableCell from '@mui/material/TableCell'; -import CardHeader from '@mui/material/CardHeader'; -import IconButton from '@mui/material/IconButton'; -import Card, { CardProps } from '@mui/material/Card'; -import TableContainer from '@mui/material/TableContainer'; - -import { fCurrency } from '@/utils/format-number'; - -import Label from '@/components/label'; -import Iconify from '@/components/iconify'; -import Scrollbar from '@/components/scrollbar'; -import { TableHeadCustom } from '@/components/table'; -import CustomPopover, { usePopover } from '@/components/custom-popover'; - -// ---------------------------------------------------------------------- - -type RowProps = { - id: string; - price: number; - status: string; - category: string; - invoiceNumber: string; -}; - -interface Props extends CardProps { - title?: string; - subheader?: string; - tableData: RowProps[]; - tableLabels: any; -} - -export default function AppNewInvoice({ - title, - subheader, - tableData, - tableLabels, - ...other -}: Props) { - return ( - <Card {...other}> - <CardHeader title={title} subheader={subheader} sx={{ mb: 3 }} /> - - <TableContainer sx={{ overflow: 'unset' }}> - <Scrollbar> - <Table sx={{ minWidth: 680 }}> - <TableHeadCustom headLabel={tableLabels} /> - - <TableBody> - {tableData.map((row) => ( - <AppNewInvoiceRow key={row.id} row={row} /> - ))} - </TableBody> - </Table> - </Scrollbar> - </TableContainer> - - <Divider sx={{ borderStyle: 'dashed' }} /> - - <Box sx={{ p: 2, textAlign: 'right' }}> - <Button - size="small" - color="inherit" - endIcon={<Iconify icon="eva:arrow-ios-forward-fill" width={18} sx={{ ml: -0.5 }} />} - > - View All - </Button> - </Box> - </Card> - ); -} - -// ---------------------------------------------------------------------- - -type AppNewInvoiceRowProps = { - row: RowProps; -}; - -function AppNewInvoiceRow({ row }: AppNewInvoiceRowProps) { - const popover = usePopover(); - - const handleDownload = () => { - popover.onClose(); - console.info('DOWNLOAD', row.id); - }; - - const handlePrint = () => { - popover.onClose(); - console.info('PRINT', row.id); - }; - - const handleShare = () => { - popover.onClose(); - console.info('SHARE', row.id); - }; - - const handleDelete = () => { - popover.onClose(); - console.info('DELETE', row.id); - }; - - return ( - <> - <TableRow> - <TableCell>{row.invoiceNumber}</TableCell> - - <TableCell>{row.category}</TableCell> - - <TableCell>{fCurrency(row.price)}</TableCell> - - <TableCell> - <Label - variant="soft" - color={ - (row.status === 'progress' && 'warning') || - (row.status === 'out of date' && 'error') || - 'success' - } - > - {row.status} - </Label> - </TableCell> - - <TableCell align="right" sx={{ pr: 1 }}> - <IconButton color={popover.open ? 'inherit' : 'default'} onClick={popover.onOpen}> - <Iconify icon="eva:more-vertical-fill" /> - </IconButton> - </TableCell> - </TableRow> - - <CustomPopover - open={popover.open} - onClose={popover.onClose} - arrow="right-top" - sx={{ width: 160 }} - > - <MenuItem onClick={handleDownload}> - <Iconify icon="eva:cloud-download-fill" /> - Download - </MenuItem> - - <MenuItem onClick={handlePrint}> - <Iconify icon="solar:printer-minimalistic-bold" /> - Print - </MenuItem> - - <MenuItem onClick={handleShare}> - <Iconify icon="solar:share-bold" /> - Share - </MenuItem> - - <Divider sx={{ borderStyle: 'dashed' }} /> - - <MenuItem onClick={handleDelete} sx={{ color: 'error.main' }}> - <Iconify icon="solar:trash-bin-trash-bold" /> - Delete - </MenuItem> - </CustomPopover> - </> - ); -} diff --git a/src/sections/overview/app/app-top-authors.tsx b/src/sections/overview/app/app-top-authors.tsx deleted file mode 100644 index 770d92dc6406f850598c187ef20751aa33108d1f..0000000000000000000000000000000000000000 --- a/src/sections/overview/app/app-top-authors.tsx +++ /dev/null @@ -1,94 +0,0 @@ -import orderBy from 'lodash/orderBy'; - -import Box from '@mui/material/Box'; -import Stack from '@mui/material/Stack'; -import Avatar from '@mui/material/Avatar'; -import { alpha } from '@mui/material/styles'; -import CardHeader from '@mui/material/CardHeader'; -import Typography from '@mui/material/Typography'; -import Card, { CardProps } from '@mui/material/Card'; - -import { fShortenNumber } from '@/utils/format-number'; - -import Iconify from '@/components/iconify'; - -// ---------------------------------------------------------------------- - -type ItemProps = { - id: string; - name: string; - avatarUrl: string; - totalFavorites: number; -}; - -interface Props extends CardProps { - title?: string; - subheader?: string; - list: ItemProps[]; -} - -export default function AppTopAuthors({ title, subheader, list, ...other }: Props) { - return ( - <Card {...other}> - <CardHeader title={title} subheader={subheader} /> - - <Stack spacing={3} sx={{ p: 3 }}> - {orderBy(list, ['totalFavorites'], ['desc']).map((author, index) => ( - <AuthorItem key={author.id} author={author} index={index} /> - ))} - </Stack> - </Card> - ); -} - -// ---------------------------------------------------------------------- - -type AuthorItemProps = { - author: ItemProps; - index: number; -}; - -function AuthorItem({ author, index }: AuthorItemProps) { - return ( - <Stack direction="row" alignItems="center" spacing={2}> - <Avatar alt={author.name} src={author.avatarUrl} /> - - <Box sx={{ flexGrow: 1 }}> - <Typography variant="subtitle2">{author.name}</Typography> - - <Typography - variant="caption" - sx={{ - mt: 0.5, - display: 'flex', - alignItems: 'center', - color: 'text.secondary', - }} - > - <Iconify icon="solar:heart-bold" width={14} sx={{ mr: 0.5 }} /> - {fShortenNumber(author.totalFavorites)} - </Typography> - </Box> - - <Iconify - icon="solar:cup-star-bold" - sx={{ - p: 1, - width: 40, - height: 40, - borderRadius: '50%', - color: 'primary.main', - bgcolor: (theme) => alpha(theme.palette.primary.main, 0.08), - ...(index === 1 && { - color: 'info.main', - bgcolor: (theme) => alpha(theme.palette.info.main, 0.08), - }), - ...(index === 2 && { - color: 'error.main', - bgcolor: (theme) => alpha(theme.palette.error.main, 0.08), - }), - }} - /> - </Stack> - ); -} diff --git a/src/sections/overview/app/app-top-installed-countries.tsx b/src/sections/overview/app/app-top-installed-countries.tsx deleted file mode 100644 index 84c82725812b107b21bd6b8fc2f1466c9e847a58..0000000000000000000000000000000000000000 --- a/src/sections/overview/app/app-top-installed-countries.tsx +++ /dev/null @@ -1,81 +0,0 @@ -import Stack from '@mui/material/Stack'; -import CardHeader from '@mui/material/CardHeader'; -import Typography from '@mui/material/Typography'; -import Card, { CardProps } from '@mui/material/Card'; - -import { fShortenNumber } from '@/utils/format-number'; - -import Iconify from '@/components/iconify'; -import Scrollbar from '@/components/scrollbar'; - -// ---------------------------------------------------------------------- - -type ItemProps = { - id: string; - name: string; - android: number; - windows: number; - apple: number; - flag: string; -}; - -interface Props extends CardProps { - title?: string; - subheader?: string; - list: ItemProps[]; -} - -export default function AppTopInstalledCountries({ title, subheader, list, ...other }: Props) { - return ( - <Card {...other}> - <CardHeader title={title} subheader={subheader} /> - - <Scrollbar> - <Stack spacing={3} sx={{ p: 3 }}> - {list.map((country) => ( - <CountryItem key={country.id} country={country} /> - ))} - </Stack> - </Scrollbar> - </Card> - ); -} - -// ---------------------------------------------------------------------- - -type CountryItemProps = { - country: ItemProps; -}; - -function CountryItem({ country }: CountryItemProps) { - return ( - <Stack direction="row" alignItems="center" spacing={2}> - <Stack direction="row" alignItems="center" flexGrow={1} sx={{ minWidth: 120 }}> - <Iconify icon={country.flag} sx={{ borderRadius: 0.65, width: 28, mr: 1 }} /> - - <Typography variant="subtitle2" noWrap> - {country.name} - </Typography> - </Stack> - - <Stack direction="row" alignItems="center" sx={{ minWidth: 80 }}> - <Iconify - width={14} - icon="ant-design:android-filled" - sx={{ mr: 0.5, color: 'text.disabled' }} - /> - <Typography variant="body2">{fShortenNumber(country.android)}</Typography> - </Stack> - - <Stack direction="row" alignItems="center" sx={{ minWidth: 80 }}> - <Iconify icon="mingcute:windows-fill" width={14} sx={{ mr: 0.5, color: 'text.disabled' }} /> - <Typography variant="body2">{fShortenNumber(country.windows)}</Typography> - </Stack> - - <Stack direction="row" alignItems="center" sx={{ minWidth: 80 }}> - <Iconify icon="mingcute:apple-fill" width={14} sx={{ mr: 0.5, color: 'text.disabled' }} /> - <Typography variant="body2">{fShortenNumber(country.windows)}</Typography> - </Stack> - </Stack> - ); -} diff --git a/src/sections/overview/app/app-top-related.tsx b/src/sections/overview/app/app-top-related.tsx deleted file mode 100644 index bf8e8a1408a6a6e3bb8cfbd85f5fd087e6ae0cc3..0000000000000000000000000000000000000000 --- a/src/sections/overview/app/app-top-related.tsx +++ /dev/null @@ -1,100 +0,0 @@ -import Box from '@mui/material/Box'; -import Stack from '@mui/material/Stack'; -import Rating from '@mui/material/Rating'; -import Avatar from '@mui/material/Avatar'; -import CardHeader from '@mui/material/CardHeader'; -import Typography from '@mui/material/Typography'; -import Card, { CardProps } from '@mui/material/Card'; - -import { fCurrency, fShortenNumber } from '@/utils/format-number'; - -import Label from '@/components/label'; -import Iconify from '@/components/iconify'; -import Scrollbar from '@/components/scrollbar'; - -// ---------------------------------------------------------------------- - -type ItemProps = { - id: string; - name: string; - price: number; - system: string; - shortcut: string; - ratingNumber: number; - totalReviews: number; -}; - -interface Props extends CardProps { - title?: string; - subheader?: string; - list: ItemProps[]; -} - -export default function AppTopRelated({ title, subheader, list, ...other }: Props) { - return ( - <Card {...other}> - <CardHeader title={title} subheader={subheader} /> - - <Scrollbar> - <Stack spacing={3} sx={{ p: 3, minWidth: 360 }}> - {list.map((app) => ( - <ApplicationItem key={app.id} app={app} /> - ))} - </Stack> - </Scrollbar> - </Card> - ); -} - -// ---------------------------------------------------------------------- - -type ApplicationItemProps = { - app: ItemProps; -}; - -function ApplicationItem({ app }: ApplicationItemProps) { - const { shortcut, system, price, ratingNumber, totalReviews, name } = app; - - return ( - <Stack direction="row" alignItems="center" spacing={2}> - <Avatar - variant="rounded" - sx={{ - width: 48, - height: 48, - bgcolor: 'background.neutral', - }} - > - <Box component="img" src={shortcut} sx={{ width: 24, height: 24 }} /> - </Avatar> - - <Box sx={{ flexGrow: 1, minWidth: 0 }}> - <Typography variant="subtitle2" noWrap> - {name} - </Typography> - - <Stack direction="row" alignItems="center" sx={{ mt: 0.5, color: 'text.secondary' }}> - <Iconify - width={14} - icon={system === 'Mac' ? 'mingcute:apple-fill' : 'mingcute:windows-fill'} - /> - - <Typography variant="caption" sx={{ ml: 0.5, mr: 1 }}> - {system} - </Typography> - - <Label color={price === 0 ? 'success' : 'error'}> - {price === 0 ? 'Free' : fCurrency(price)} - </Label> - </Stack> - </Box> - - <Stack alignItems="flex-end"> - <Rating readOnly size="small" precision={0.5} name="reviews" value={ratingNumber} /> - <Typography variant="caption" sx={{ mt: 0.5, color: 'text.secondary' }}> - {fShortenNumber(totalReviews)} reviews - </Typography> - </Stack> - </Stack> - ); -} diff --git a/src/sections/overview/app/app-welcome.tsx b/src/sections/overview/app/app-welcome.tsx deleted file mode 100644 index 42a05ff5b81e4ac0c7c81b960250765ee2255299..0000000000000000000000000000000000000000 --- a/src/sections/overview/app/app-welcome.tsx +++ /dev/null @@ -1,81 +0,0 @@ -import Typography from '@mui/material/Typography'; -import { alpha, useTheme } from '@mui/material/styles'; -import Stack, { StackProps } from '@mui/material/Stack'; - -import { bgGradient } from '@/theme/css'; - -// ---------------------------------------------------------------------- - -type Props = StackProps & { - title?: string; - description?: string; - img?: React.ReactNode; - action?: React.ReactNode; -}; - -export default function AppWelcome({ title, description, action, img, ...other }: Props) { - const theme = useTheme(); - - return ( - <Stack - flexDirection={{ xs: 'column', md: 'row' }} - sx={{ - ...bgGradient({ - direction: '135deg', - startColor: alpha(theme.palette.primary.light, 0.2), - endColor: alpha(theme.palette.primary.main, 0.2), - }), - height: { md: 1 }, - borderRadius: 2, - position: 'relative', - color: 'primary.darker', - backgroundColor: 'common.white', - }} - {...other} - > - <Stack - flexGrow={1} - justifyContent="center" - alignItems={{ xs: 'center', md: 'flex-start' }} - sx={{ - p: { - xs: theme.spacing(5, 3, 0, 3), - md: theme.spacing(5), - }, - textAlign: { xs: 'center', md: 'left' }, - }} - > - <Typography variant="h4" sx={{ mb: 2, whiteSpace: 'pre-line' }}> - {title} - </Typography> - - <Typography - variant="body2" - sx={{ - opacity: 0.8, - maxWidth: 360, - mb: { xs: 3, xl: 5 }, - }} - > - {description} - </Typography> - - {action && action} - </Stack> - - {img && ( - <Stack - component="span" - justifyContent="center" - sx={{ - p: { xs: 5, md: 3 }, - maxWidth: 360, - mx: 'auto', - }} - > - {img} - </Stack> - )} - </Stack> - ); -} diff --git a/src/sections/overview/app/app-widget-summary.tsx b/src/sections/overview/app/app-widget-summary.tsx deleted file mode 100644 index da7e0392a65075f4da0e468f8798f05ff8d1af2a..0000000000000000000000000000000000000000 --- a/src/sections/overview/app/app-widget-summary.tsx +++ /dev/null @@ -1,113 +0,0 @@ -import { ApexOptions } from 'apexcharts'; - -import Box from '@mui/material/Box'; -import Stack from '@mui/material/Stack'; -import { useTheme } from '@mui/material/styles'; -import Typography from '@mui/material/Typography'; -import Card, { CardProps } from '@mui/material/Card'; - -import { fNumber, fPercent } from '@/utils/format-number'; - -import Chart from '@/components/chart'; -import Iconify from '@/components/iconify'; - -// ---------------------------------------------------------------------- - -interface Props extends CardProps { - title: string; - total: number; - percent: number; - chart: { - colors?: string[]; - series: number[]; - options?: ApexOptions; - }; -} - -export default function AppWidgetSummary({ title, percent, total, chart, sx, ...other }: Props) { - const theme = useTheme(); - - const { - colors = [theme.palette.primary.light, theme.palette.primary.main], - series, - options, - } = chart; - - const chartOptions = { - colors: colors.map((colr) => colr[1]), - fill: { - type: 'gradient', - gradient: { - colorStops: [ - { offset: 0, color: colors[0], opacity: 1 }, - { offset: 100, color: colors[1], opacity: 1 }, - ], - }, - }, - chart: { - sparkline: { - enabled: true, - }, - }, - plotOptions: { - bar: { - columnWidth: '68%', - borderRadius: 2, - }, - }, - tooltip: { - x: { show: false }, - y: { - formatter: (value: number) => fNumber(value), - title: { - formatter: () => '', - }, - }, - marker: { show: false }, - }, - ...options, - }; - - return ( - <Card sx={{ display: 'flex', alignItems: 'center', p: 3, ...sx }} {...other}> - <Box sx={{ flexGrow: 1 }}> - <Typography variant="subtitle2">{title}</Typography> - - <Stack direction="row" alignItems="center" sx={{ mt: 2, mb: 1 }}> - <Iconify - width={24} - icon={ - percent < 0 - ? 'solar:double-alt-arrow-down-bold-duotone' - : 'solar:double-alt-arrow-up-bold-duotone' - } - sx={{ - mr: 1, - color: 'success.main', - ...(percent < 0 && { - color: 'error.main', - }), - }} - /> - - <Typography component="div" variant="subtitle2"> - {percent > 0 && '+'} - - {fPercent(percent)} - </Typography> - </Stack> - - <Typography variant="h3">{fNumber(total)}</Typography> - </Box> - - <Chart - dir="ltr" - type="bar" - series={[{ data: series }]} - options={chartOptions} - width={60} - height={36} - /> - </Card> - ); -} diff --git a/src/sections/overview/app/app-widget.tsx b/src/sections/overview/app/app-widget.tsx deleted file mode 100644 index dc9a755cc19ac194982c447b1168c4a76d3214ce..0000000000000000000000000000000000000000 --- a/src/sections/overview/app/app-widget.tsx +++ /dev/null @@ -1,133 +0,0 @@ -import { ApexOptions } from 'apexcharts'; - -import { useTheme } from '@mui/material/styles'; -import ListItemText from '@mui/material/ListItemText'; -import Stack, { StackProps } from '@mui/material/Stack'; - -import { fNumber } from '@/utils/format-number'; - -import { ColorSchema } from '@/theme/palette'; - -import Iconify from '@/components/iconify'; -import Chart, { useChart } from '@/components/chart'; - -// ---------------------------------------------------------------------- - -interface Props extends StackProps { - icon: string; - title: string; - total: number; - color?: ColorSchema; - chart: { - color?: string[]; - series: number; - options?: ApexOptions; - }; -} - -export default function AppWidget({ - title, - total, - icon, - color = 'primary', - chart, - sx, - ...other -}: Props) { - const theme = useTheme(); - - const { series, options } = chart; - - const chartOptions = useChart({ - chart: { - sparkline: { - enabled: true, - }, - }, - legend: { - show: false, - }, - fill: { - type: 'gradient', - gradient: { - colorStops: [ - { offset: 0, color: theme.palette[color].light, opacity: 1 }, - { offset: 100, color: theme.palette[color].main, opacity: 1 }, - ], - }, - }, - plotOptions: { - radialBar: { - hollow: { - size: '78%', - }, - track: { - margin: 0, - }, - dataLabels: { - name: { - show: false, - }, - value: { - offsetY: 6, - color: theme.palette.common.white, - fontSize: theme.typography.subtitle2.fontSize as string, - }, - }, - }, - }, - ...options, - }); - - return ( - <Stack - direction="row" - alignItems="center" - sx={{ - p: 3, - borderRadius: 2, - overflow: 'hidden', - position: 'relative', - color: 'common.white', - bgcolor: `${color}.dark`, - ...sx, - }} - {...other} - > - <Chart - dir="ltr" - type="radialBar" - series={[series]} - options={chartOptions} - width={86} - height={86} - /> - - <ListItemText - sx={{ ml: 3 }} - primary={fNumber(total)} - secondary={title} - primaryTypographyProps={{ - typography: 'h4', - component: 'span', - }} - secondaryTypographyProps={{ - color: 'inherit', - component: 'span', - sx: { opacity: 0.64 }, - typography: 'subtitle2', - }} - /> - <Iconify - icon={icon} - sx={{ - width: 112, - right: -32, - height: 112, - opacity: 0.08, - position: 'absolute', - }} - /> - </Stack> - ); -} diff --git a/src/sections/overview/app/view/overview-app-view.tsx b/src/sections/overview/app/view/overview-app-view.tsx index 5039ca5f18e86f2d0626122d2c9a3fcbcce46c0e..afb6ebe8147673c4fd4c120b0902dc4bb439521b 100644 --- a/src/sections/overview/app/view/overview-app-view.tsx +++ b/src/sections/overview/app/view/overview-app-view.tsx @@ -1,34 +1,14 @@ 'use client'; -import Stack from '@mui/material/Stack'; -import Button from '@mui/material/Button'; import { useTheme } from '@mui/material/styles'; import Container from '@mui/material/Container'; import Grid from '@mui/material/Unstable_Grid2'; -import { useMockedUser } from '@/hooks/use-mocked-user'; - -import { SeoIllustration } from '@/assets/illustrations'; -import { _appAuthors, _appRelated, _appFeatured, _appInvoices, _appInstalled } from '@/_mock'; - import { useSettingsContext } from '@/components/settings'; -import AppWidget from '@/sections/overview/app/app-widget'; -import AppWelcome from '@/sections/overview/app/app-welcome'; -import AppFeatured from '@/sections/overview/app/app-featured'; -import AppNewInvoice from '@/sections/overview/app/app-new-invoice'; -import AppTopAuthors from '@/sections/overview/app/app-top-authors'; -import AppTopRelated from '@/sections/overview/app/app-top-related'; -import AppAreaInstalled from '@/sections/overview/app/app-area-installed'; -import AppWidgetSummary from '@/sections/overview/app/app-widget-summary'; -import AppCurrentDownload from '@/sections/overview/app/app-current-download'; -import AppTopInstalledCountries from '@/sections/overview/app/app-top-installed-countries'; - // ---------------------------------------------------------------------- export default function OverviewAppView() { - const { user } = useMockedUser(); - const theme = useTheme(); const settings = useSettingsContext(); @@ -36,170 +16,9 @@ export default function OverviewAppView() { return ( <Container maxWidth={settings.themeStretch ? false : 'xl'}> <Grid container spacing={3}> - <Grid xs={12} md={8}> - <AppWelcome - title={`Welcome back 👋 \n ${user?.displayName}`} - description="If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything." - img={<SeoIllustration />} - action={ - <Button variant="contained" color="primary"> - Go Now - </Button> - } - /> - </Grid> - - <Grid xs={12} md={4}> - <AppFeatured list={_appFeatured} /> - </Grid> - - <Grid xs={12} md={4}> - <AppWidgetSummary - title="Total Active Users" - percent={2.6} - total={18765} - chart={{ - series: [5, 18, 12, 51, 68, 11, 39, 37, 27, 20], - }} - /> - </Grid> - - <Grid xs={12} md={4}> - <AppWidgetSummary - title="Total Installed" - percent={0.2} - total={4876} - chart={{ - colors: [theme.palette.info.light, theme.palette.info.main], - series: [20, 41, 63, 33, 28, 35, 50, 46, 11, 26], - }} - /> - </Grid> - - <Grid xs={12} md={4}> - <AppWidgetSummary - title="Total Downloads" - percent={-0.1} - total={678} - chart={{ - colors: [theme.palette.warning.light, theme.palette.warning.main], - series: [8, 9, 31, 8, 16, 37, 8, 33, 46, 31], - }} - /> - </Grid> - - <Grid xs={12} md={6} lg={4}> - <AppCurrentDownload - title="Current Download" - chart={{ - series: [ - { label: 'Mac', value: 12244 }, - { label: 'Window', value: 53345 }, - { label: 'iOS', value: 44313 }, - { label: 'Android', value: 78343 }, - ], - }} - /> - </Grid> - - <Grid xs={12} md={6} lg={8}> - <AppAreaInstalled - title="Area Installed" - subheader="(+43%) than last year" - chart={{ - categories: [ - 'Jan', - 'Feb', - 'Mar', - 'Apr', - 'May', - 'Jun', - 'Jul', - 'Aug', - 'Sep', - 'Oct', - 'Nov', - 'Dec', - ], - series: [ - { - year: '2019', - data: [ - { - name: 'Asia', - data: [10, 41, 35, 51, 49, 62, 69, 91, 148, 35, 51, 49], - }, - { - name: 'America', - data: [10, 34, 13, 56, 77, 88, 99, 77, 45, 13, 56, 77], - }, - ], - }, - { - year: '2020', - data: [ - { - name: 'Asia', - data: [51, 35, 41, 10, 91, 69, 62, 148, 91, 69, 62, 49], - }, - { - name: 'America', - data: [56, 13, 34, 10, 77, 99, 88, 45, 77, 99, 88, 77], - }, - ], - }, - ], - }} - /> - </Grid> - - <Grid xs={12} lg={8}> - <AppNewInvoice - title="New Invoice" - tableData={_appInvoices} - tableLabels={[ - { id: 'id', label: 'Invoice ID' }, - { id: 'category', label: 'Category' }, - { id: 'price', label: 'Price' }, - { id: 'status', label: 'Status' }, - { id: '' }, - ]} - /> - </Grid> - - <Grid xs={12} md={6} lg={4}> - <AppTopRelated title="Top Related Applications" list={_appRelated} /> - </Grid> - - <Grid xs={12} md={6} lg={4}> - <AppTopInstalledCountries title="Top Installed Countries" list={_appInstalled} /> - </Grid> - - <Grid xs={12} md={6} lg={4}> - <AppTopAuthors title="Top Authors" list={_appAuthors} /> - </Grid> <Grid xs={12} md={6} lg={4}> - <Stack spacing={3}> - <AppWidget - title="Conversion" - total={38566} - icon="solar:user-rounded-bold" - chart={{ - series: 48, - }} - /> - <AppWidget - title="Applications" - total={55566} - icon="fluent:mail-24-filled" - color="info" - chart={{ - series: 75, - }} - /> - </Stack> </Grid> </Grid> </Container> diff --git a/src/utils/flatten-array.ts b/src/utils/flatten-array.ts deleted file mode 100644 index 829b49bbf46247366be5bff822a24e6fef512a43..0000000000000000000000000000000000000000 --- a/src/utils/flatten-array.ts +++ /dev/null @@ -1,14 +0,0 @@ -// ---------------------------------------------------------------------- - -export function flattenArray<T>(list: T[], key = 'children'): T[] { - let children: T[] = []; - - const flatten = list?.map((item: any) => { - if (item[key] && item[key].length) { - children = [...children, ...item[key]]; - } - return item; - }); - - return flatten?.concat(children.length ? flattenArray(children, key) : children); -} diff --git a/src/utils/format-number.ts b/src/utils/format-number.ts deleted file mode 100644 index 94d624d0a7d4aca0d8d5ac8cb2c6d80aa65c6375..0000000000000000000000000000000000000000 --- a/src/utils/format-number.ts +++ /dev/null @@ -1,116 +0,0 @@ -import { useLocales as getLocales } from '@/locales'; - -// ---------------------------------------------------------------------- - -/* - * Locales code - * https://gist.github.com/raushankrjha/d1c7e35cf87e69aa8b4208a8171a8416 - */ - -type InputValue = string | number | null; - -function getLocaleCode() { - const { - currentLang: { - numberFormat: { code, currency }, - }, - } = getLocales(); - - return { - code: code ?? 'en-US', - currency: currency ?? 'USD', - }; -} - -// ---------------------------------------------------------------------- - -export function fNumber(inputValue: InputValue) { - const { code } = getLocaleCode(); - - if (!inputValue) return ''; - - const number = Number(inputValue); - - const fm = new Intl.NumberFormat(code, { - minimumFractionDigits: 0, - maximumFractionDigits: 2, - }).format(number); - - return fm; -} - -// ---------------------------------------------------------------------- - -export function fCurrency(inputValue: InputValue) { - const { code, currency } = getLocaleCode(); - - if (!inputValue) return ''; - - const number = Number(inputValue); - - const fm = new Intl.NumberFormat(code, { - style: 'currency', - currency, - minimumFractionDigits: 0, - maximumFractionDigits: 2, - }).format(number); - - return fm; -} - -// ---------------------------------------------------------------------- - -export function fPercent(inputValue: InputValue) { - const { code } = getLocaleCode(); - - if (!inputValue) return ''; - - const number = Number(inputValue) / 100; - - const fm = new Intl.NumberFormat(code, { - style: 'percent', - minimumFractionDigits: 0, - maximumFractionDigits: 1, - }).format(number); - - return fm; -} - -// ---------------------------------------------------------------------- - -export function fShortenNumber(inputValue: InputValue) { - const { code } = getLocaleCode(); - - if (!inputValue) return ''; - - const number = Number(inputValue); - - const fm = new Intl.NumberFormat(code, { - notation: 'compact', - maximumFractionDigits: 2, - }).format(number); - - return fm.replace(/[A-Z]/g, (match) => match.toLowerCase()); -} - -// ---------------------------------------------------------------------- - -export function fData(inputValue: InputValue) { - if (!inputValue) return ''; - - if (inputValue === 0) return '0 Bytes'; - - const units = ['bytes', 'Kb', 'Mb', 'Gb', 'Tb', 'Pb', 'Eb', 'Zb', 'Yb']; - - const decimal = 2; - - const baseValue = 1024; - - const number = Number(inputValue); - - const index = Math.floor(Math.log(number) / Math.log(baseValue)); - - const fm = `${parseFloat((number / baseValue ** index).toFixed(decimal))} ${units[index]}`; - - return fm; -} diff --git a/src/utils/format-time.ts b/src/utils/format-time.ts deleted file mode 100644 index 82ca74427d24a655020ceefe1647e978432ce67e..0000000000000000000000000000000000000000 --- a/src/utils/format-time.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { format, getTime, formatDistanceToNow } from 'date-fns'; - -// ---------------------------------------------------------------------- - -type InputValue = Date | string | number | null | undefined; - -export function fDate(date: InputValue, newFormat?: string) { - const fm = newFormat || 'dd MMM yyyy'; - - return date ? format(new Date(date), fm) : ''; -} - -export function fTime(date: InputValue, newFormat?: string) { - const fm = newFormat || 'p'; - - return date ? format(new Date(date), fm) : ''; -} - -export function fDateTime(date: InputValue, newFormat?: string) { - const fm = newFormat || 'dd MMM yyyy p'; - - return date ? format(new Date(date), fm) : ''; -} - -export function fTimestamp(date: InputValue) { - return date ? getTime(new Date(date)) : ''; -} - -export function fToNow(date: InputValue) { - return date - ? formatDistanceToNow(new Date(date), { - addSuffix: true, - }) - : ''; -} - -export function isBetween(inputDate: Date | string | number, startDate: Date, endDate: Date) { - const date = new Date(inputDate); - - const results = - new Date(date.toDateString()) >= new Date(startDate.toDateString()) && - new Date(date.toDateString()) <= new Date(endDate.toDateString()); - - return results; -} - -export function isAfter(startDate: Date | null, endDate: Date | null) { - const results = - startDate && endDate ? new Date(startDate).getTime() > new Date(endDate).getTime() : false; - - return results; -}