commit d8685ccf10c69f9eaba4a3f91f756bd1e179296c Author: effendy Date: Wed Nov 26 07:49:54 2025 +0000 first commit diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..97e75a5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +node_modules +*.log* +.nuxt +.nitro +.cache +.output +.env +dist +Dockerfile +docker-compose.yml \ No newline at end of file diff --git a/.npmrc b/.npmrc new file mode 100755 index 0000000..cf04042 --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +shamefully-hoist=true +strict-peer-dependencies=false diff --git a/README.md b/README.md new file mode 100755 index 0000000..fc29b5f --- /dev/null +++ b/README.md @@ -0,0 +1,48 @@ +# Matdash-nuxtjs-free +Free Nuxt 3 Admin Template with vuetify 3 + Typescript +Free Nuxt 3 Admin Template with vuetify 3 + Typescript +# Live Demo + + +# Nuxt 3 Starter + +> 💚 A Better Nuxt 3 starter template + +## Use the Template + +### Clone to local + +```bash + +$> 💿 Install dependencies with `npm install` or `yarn install` +$> +$> 🚀 Start development server with `npm run dev` or `yarn dev` +``` + +## Setup + +### Installation + +Make sure to install the dependencies + +```bash +yarn install +``` + +### Development + +Start the development server on http://localhost:3088 + +```bash +yarn dev +``` + +### Production + +Build the application for production: + +```bash +yarn build +``` + + diff --git a/_mockApis/apps/blog/index.ts b/_mockApis/apps/blog/index.ts new file mode 100755 index 0000000..074aaaa --- /dev/null +++ b/_mockApis/apps/blog/index.ts @@ -0,0 +1,288 @@ +import { Chance } from 'chance'; +import { random } from 'lodash'; +import { sub } from 'date-fns'; +import mock from '../../mockAdapter'; +import s1 from '@/assets/images/blog/blog-img1.jpg'; +import s2 from '@/assets/images/blog/blog-img2.jpg'; +import s3 from '@/assets/images/blog/blog-img3.jpg'; +import s4 from '@/assets/images/blog/blog-img4.jpg'; +import s5 from '@/assets/images/blog/blog-img5.jpg'; +import s6 from '@/assets/images/blog/blog-img6.jpg'; +import s7 from '@/assets/images/blog/blog-img11.jpg'; +import s8 from '@/assets/images/blog/blog-img8.jpg'; +import s9 from '@/assets/images/blog/blog-img9.jpg'; +import s10 from '@/assets/images/blog/blog-img10.jpg'; + +import user1 from '@/assets/images/profile/user-6.jpg'; +import user2 from '@/assets/images/profile/user-2.jpg'; +import user3 from '@/assets/images/profile/user-3.jpg'; +import user4 from '@/assets/images/profile/user-4.jpg'; +import user5 from '@/assets/images/profile/user-5.jpg'; +import user6 from '@/assets/images/profile/user-8.jpg'; +import { uniqueId } from 'lodash'; + +import type { blogType, blogpostType } from '@/types/apps/BlogTypes'; + +const chance = new Chance(); + +const BlogComment: blogType[] = [ + { + id: uniqueId('#comm_'), + profile: { + id: chance.integer({ min: 1, max: 2000 }), + avatar: user2, + name: chance.name() + }, + time: chance.date(), + comment: chance.paragraph({ sentences: 2 }), + replies: [] + }, + { + id: uniqueId('#comm_'), + profile: { + id: chance.integer({ min: 1, max: 2000 }), + avatar: user3, + name: chance.name() + }, + time: chance.date(), + comment: chance.paragraph({ sentences: 2 }), + replies: [ + { + id: uniqueId('#comm_'), + profile: { + id: chance.integer({ min: 1, max: 2000 }), + avatar: user3, + name: chance.name() + }, + time: chance.date(), + comment: chance.paragraph({ sentences: 2 }) + } + ] + }, + { + id: uniqueId('#comm_'), + profile: { + id: chance.integer({ min: 1, max: 2000 }), + avatar: user5, + name: chance.name() + }, + time: chance.date(), + comment: chance.paragraph({ sentences: 2 }), + replies: [] + } +]; + +const BlogPost: blogpostType[] = [ + { + id: chance.integer({ min: 1, max: 2000 }), + title: 'Garmins Instinct Crossover is a rugged hybrid smartwatch', + content: chance.paragraph({ sentences: 2 }), + coverImg: s1, + createdAt: sub(new Date(), { days: 8, hours: 6, minutes: 20 }), + view: random(9999), + share: random(9999), + category: 'Gadget', + featured: false, + author: { + id: chance.integer({ min: 1, max: 2000 }), + avatar: user1, + name: chance.name() + }, + comments: BlogComment + }, + { + id: chance.integer({ min: 1, max: 2000 }), + title: 'After Twitter Staff Cuts, Survivors Face ‘Radio Silence', + content: chance.paragraph({ sentences: 2 }), + coverImg: s2, + createdAt: sub(new Date(), { days: 7, hours: 3, minutes: 20 }), + view: random(9999), + share: random(9999), + category: 'Lifestyle', + featured: false, + author: { + id: chance.integer({ min: 1, max: 2000 }), + avatar: user2, + name: chance.name() + }, + comments: BlogComment + }, + { + id: chance.integer({ min: 1, max: 2000 }), + title: 'Apple is apparently working on a new ‘streamlined’ accessibility', + content: chance.paragraph({ sentences: 2 }), + coverImg: s3, + createdAt: sub(new Date(), { days: 5, hours: 2, minutes: 20 }), + view: random(9999), + share: random(9999), + category: 'Design', + featured: false, + author: { + id: chance.integer({ min: 1, max: 2000 }), + avatar: user3, + name: chance.name() + }, + comments: BlogComment + }, + { + id: chance.integer({ min: 1, max: 2000 }), + title: 'Why Figma is selling to Adobe for $20 billion', + content: chance.paragraph({ sentences: 2 }), + coverImg: s4, + createdAt: sub(new Date(), { days: 7, hours: 6, minutes: 20 }), + view: random(9999), + share: random(9999), + category: 'Design', + featured: false, + author: { + id: chance.integer({ min: 1, max: 2000 }), + avatar: user4, + name: chance.name() + }, + comments: BlogComment + }, + { + id: chance.integer({ min: 1, max: 2000 }), + title: 'Streaming video way before it was cool, go dark tomorrow', + content: chance.paragraph({ sentences: 2 }), + coverImg: s5, + createdAt: sub(new Date(), { days: 4, hours: 6, minutes: 20 }), + view: random(9999), + share: random(9999), + category: 'Lifestyle', + featured: false, + author: { + id: chance.integer({ min: 1, max: 2000 }), + avatar: user5, + name: chance.name() + }, + comments: BlogComment + }, + { + id: chance.integer({ min: 1, max: 2000 }), + title: 'As yen tumbles, gadget-loving Japan goes for secondhand', + content: chance.paragraph({ sentences: 2 }), + coverImg: s6, + createdAt: sub(new Date(), { days: 2, hours: 6, minutes: 20 }), + view: random(9999), + share: random(9999), + category: 'Gadget', + featured: false, + author: { + id: chance.integer({ min: 1, max: 2000 }), + avatar: user6, + name: chance.name() + }, + comments: BlogComment + }, + { + id: chance.integer({ min: 1, max: 2000 }), + title: 'Intel loses bid to revive antitrust case against patent foe Fortress', + content: chance.paragraph({ sentences: 2 }), + coverImg: s7, + createdAt: sub(new Date(), { days: 3, hours: 6, minutes: 20 }), + view: random(9999), + share: random(9999), + category: 'Social', + featured: false, + author: { + id: chance.integer({ min: 1, max: 2000 }), + avatar: user2, + name: chance.name() + }, + comments: BlogComment + }, + { + id: chance.integer({ min: 1, max: 2000 }), + title: 'COVID outbreak deepens as more lockdowns loom in China', + content: chance.paragraph({ sentences: 2 }), + coverImg: s8, + createdAt: sub(new Date(), { days: 4, hours: 6, minutes: 20 }), + view: random(9999), + share: random(9999), + category: 'Health', + featured: false, + author: { + id: chance.integer({ min: 1, max: 2000 }), + avatar: user3, + name: chance.name() + }, + comments: BlogComment + }, + { + id: chance.integer({ min: 1, max: 2000 }), + title: 'Early Black Friday Amazon deals: cheap TVs, headphones', + content: chance.paragraph({ sentences: 2 }), + coverImg: s9, + createdAt: sub(new Date(), { days: 5, hours: 3, minutes: 20 }), + view: random(9999), + share: random(9999), + category: 'Gadget', + featured: true, + author: { + id: chance.integer({ min: 1, max: 2000 }), + avatar: user4, + name: chance.name() + }, + comments: BlogComment + }, + { + id: chance.integer({ min: 1, max: 2000 }), + title: 'Presented by Max Rushden with Barry Glendenning, Philippe', + content: chance.paragraph({ sentences: 2 }), + coverImg: s10, + createdAt: sub(new Date(), { days: 0, hours: 1, minutes: 20 }), + view: random(9999), + share: random(9999), + category: 'Health', + featured: true, + author: { + id: chance.integer({ min: 1, max: 2000 }), + avatar: user5, + name: chance.name() + }, + comments: BlogComment + } +]; + +mock.onGet('/api/data/blog/BlogPosts').reply(() => { + return [200, BlogPost]; +}); + +// ---------------------------------------------------------------------- +mock.onPost('/api/data/blog/post').reply((config: string | any) => { + try { + const { title } = JSON.parse(config.data); + + const paramCase = (t: string) => + t + .toLowerCase() + .replace(/ /g, '-') + .replace(/[^\w-]+/g, ''); + + const post = BlogPost.find((_post: blogpostType | string | any) => paramCase(_post.title) === title); + + if (!post) { + return [404, { message: 'Post not found' }]; + } + + return [200, { post }]; + } catch (error) { + console.error(error); + return [500, { message: 'Internal server error' }]; + } +}); + +mock.onPost('/api/data/blog/post/add').reply((config: string | any) => { + try { + const { postId, comment } = JSON.parse(config.data); + const postIndex = BlogPost.findIndex((x) => x.id === postId); + const post = BlogPost[postIndex]; + const cComments = post.comments || []; + post.comments = [comment, ...cComments]; + return [200, { posts: [...BlogPost] }]; + } catch (err) { + console.error(err); + return [500, { message: 'Internal server error' }]; + } +}); diff --git a/_mockApis/apps/chat/index.ts b/_mockApis/apps/chat/index.ts new file mode 100755 index 0000000..0cd185a --- /dev/null +++ b/_mockApis/apps/chat/index.ts @@ -0,0 +1,531 @@ +import mock from '../../mockAdapter'; +import { Chance } from 'chance'; +import type { ChatType } from '@/types/apps/ChatType'; +import { sub } from 'date-fns'; +import { uniqueId } from 'lodash'; + +import user1 from '@/assets/images/profile/user-2.jpg'; +import user2 from '@/assets/images/profile/user-3.jpg'; +import user3 from '@/assets/images/profile/user-4.jpg'; +import user4 from '@/assets/images/profile/user-5.jpg'; +import user5 from '@/assets/images/profile/user-6.jpg'; +import user6 from '@/assets/images/profile/user-7.jpg'; +import user7 from '@/assets/images/profile/user-8.jpg'; + +import background1 from '@/assets/images/products/product-1.jpg'; +import background2 from '@/assets/images/products/product-2.jpg'; +import background3 from '@/assets/images/products/product-3.jpg'; +import background4 from '@/assets/images/products/product-4.jpg'; + + +import adobe from '@/assets/images/chat/icon-adobe.svg'; +import chrome from '@/assets/images/chat/icon-chrome.svg'; +import figma from '@/assets/images/chat/icon-figma.svg'; +import java from '@/assets/images/chat/icon-javascript.svg'; +import zip from '@/assets/images/chat/icon-zip-folder.svg'; + +const chance = new Chance(); + +// const ChatData: ChatTypes[] = [ +const ChatData: ChatType[] = [ + { + id: 1, + name: 'James Johnson', + status: 'online', + thumb: user2, + recent: false, + chatHistory: [ + { + createdAt: sub(new Date(), { hours: 1 }), + msg: chance.sentence({ words: 5 }), + senderId: 1, + type: 'text', + attachment: [ + { icon: adobe, file: 'service-task.pdf', fileSize: '2MB' }, + { icon: chrome, file: 'homepage-design.fig', fileSize: '3MB' }, + { icon: figma, file: 'about-us.htmlf', fileSize: '1KB' }, + { icon: java, file: 'work-project.zip', fileSize: '20MB' }, + { icon: zip, file: 'custom.js', fileSize: '2MB' } + ], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { minutes: 30 }), + msg: chance.sentence({ words: 10 }), + senderId: 1, + type: 'text', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { minutes: 6 }), + msg: chance.sentence({ words: 5 }), + senderId: uniqueId(), + type: 'text', + attachment: [], + id: uniqueId() + }, + + { + createdAt: sub(new Date(), { minutes: 5 }), + msg: chance.sentence({ words: 5 }), + senderId: 1, + type: 'text', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { minutes: 5 }), + msg: background1, + senderId: uniqueId(), + type: 'img', + attachment: [], + id: uniqueId() + } + ] + }, + { + id: 2, + name: 'Maria Hernandez', + status: 'away', + thumb: user3, + recent: true, + chatHistory: [ + { + createdAt: sub(new Date(), { hours: 1 }), + msg: chance.sentence({ words: 5 }), + senderId: uniqueId(), + type: 'text', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { minutes: 30 }), + msg: chance.sentence({ words: 10 }), + senderId: uniqueId(), + type: 'text', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { minutes: 6 }), + msg: chance.sentence({ words: 5 }), + senderId: 2, + type: 'text', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { minutes: 5 }), + msg: background1, + senderId: 2, + type: 'img', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { minutes: 1 }), + msg: chance.sentence({ words: 5 }), + senderId: uniqueId(), + type: 'text', + attachment: [], + id: uniqueId() + } + ] + }, + { + id: 3, + name: 'David Smith', + status: 'busy', + thumb: user4, + recent: false, + chatHistory: [ + { + createdAt: sub(new Date(), { hours: 10 }), + msg: chance.sentence({ words: 5 }), + senderId: 1, + type: 'text', + attachment: [ + { icon: adobe, file: 'service-task.pdf', fileSize: '2MB' }, + { icon: zip, file: 'custom.js', fileSize: '2MB' } + ], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { minutes: 30 }), + msg: chance.sentence({ words: 10 }), + senderId: 1, + type: 'text', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { minutes: 6 }), + msg: chance.sentence({ words: 5 }), + senderId: 3, + type: 'text', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { minutes: 6 }), + msg: chance.sentence({ words: 5 }), + senderId: 3, + type: 'text', + attachment: [], + id: uniqueId() + } + ] + }, + { + id: 4, + name: 'Loren Rodriguez', + status: 'offline', + thumb: user5, + recent: true, + chatHistory: [ + { + createdAt: sub(new Date(), { hours: 1 }), + msg: chance.sentence({ words: 5 }), + senderId: 1, + type: 'text', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { hours: 10 }), + msg: chance.sentence({ words: 5 }), + senderId: 4, + type: 'text', + attachment: [ + { icon: java, file: 'work-project.zip', fileSize: '20MB' }, + { icon: zip, file: 'custom.js', fileSize: '2MB' } + ], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { hours: 11 }), + msg: background2, + senderId: uniqueId(), + type: 'img', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { minutes: 6 }), + msg: chance.sentence({ words: 5 }), + senderId: 4, + type: 'text', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { minutes: 1 }), + msg: chance.sentence({ words: 7 }), + senderId: 3, + type: 'text', + attachment: [], + id: uniqueId() + } + ] + }, + { + id: 5, + name: 'Robert Smith', + status: 'online', + thumb: user6, + recent: true, + chatHistory: [ + { + createdAt: sub(new Date(), { hours: 1 }), + msg: chance.sentence({ words: 5 }), + senderId: 1, + type: 'text', + attachment: [ + { icon: adobe, file: 'service-task.pdf', fileSize: '2MB' }, + { icon: chrome, file: 'homepage-design.fig', fileSize: '3MB' }, + { icon: figma, file: 'about-us.htmlf', fileSize: '1KB' }, + { icon: java, file: 'work-project.zip', fileSize: '20MB' }, + { icon: zip, file: 'custom.js', fileSize: '2MB' } + ], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { minutes: 30 }), + msg: chance.sentence({ words: 10 }), + senderId: 1, + type: 'text', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { minutes: 6 }), + msg: chance.sentence({ words: 5 }), + senderId: uniqueId(), + type: 'text', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { minutes: 5 }), + msg: background3, + senderId: 5, + type: 'img', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { minutes: 5 }), + msg: chance.sentence({ words: 5 }), + senderId: 5, + type: 'text', + attachment: [], + id: uniqueId() + } + ] + }, + { + id: 6, + name: 'Joseph Sara', + status: 'busy', + thumb: user7, + recent: false, + chatHistory: [ + { + createdAt: sub(new Date(), { hours: 10 }), + msg: chance.sentence({ words: 5 }), + senderId: 1, + type: 'text', + attachment: [ + { icon: chrome, file: 'homepage-design.fig', fileSize: '3MB' }, + { icon: java, file: 'work-project.zip', fileSize: '20MB' }, + { icon: zip, file: 'custom.js', fileSize: '2MB' } + ], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { minutes: 5 }), + msg: background4, + senderId: uniqueId(), + type: 'img', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { minutes: 5 }), + msg: chance.sentence({ words: 5 }), + senderId: 1, + type: 'text', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { minutes: 2 }), + msg: chance.sentence({ words: 5 }), + senderId: 6, + type: 'text', + attachment: [], + id: uniqueId() + } + ] + }, + { + id: 7, + name: 'Thomas Smith', + status: 'away', + thumb: user2, + recent: true, + chatHistory: [ + { + createdAt: sub(new Date(), { hours: 10 }), + msg: chance.sentence({ words: 5 }), + senderId: 1, + type: 'text', + attachment: [ + { icon: adobe, file: 'service-task.pdf', fileSize: '2MB' }, + { icon: chrome, file: 'homepage-design.fig', fileSize: '3MB' } + ], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { hours: 1 }), + msg: chance.sentence({ words: 10 }), + senderId: 1, + type: 'text', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { minutes: 15 }), + msg: chance.sentence({ words: 5 }), + senderId: 7, + type: 'text', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { minutes: 10 }), + msg: chance.sentence({ words: 5 }), + senderId: 7, + type: 'text', + attachment: [], + id: uniqueId() + } + ] + }, + { + id: 8, + name: 'Davina Elizabeth', + status: 'offline', + thumb: user3, + recent: false, + chatHistory: [ + { + createdAt: sub(new Date(), { hours: 10 }), + msg: chance.sentence({ words: 5 }), + senderId: 1, + type: 'text', + attachment: [ + { icon: adobe, file: 'service-task.pdf', fileSize: '2MB' }, + { icon: java, file: 'work-project.zip', fileSize: '20MB' }, + { icon: zip, file: 'custom.js', fileSize: '2MB' } + ], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { hours: 6 }), + msg: chance.sentence({ words: 5 }), + senderId: 3, + type: 'text', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { hours: 6 }), + msg: chance.sentence({ words: 5 }), + senderId: 1, + type: 'text', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { minutes: 1 }), + msg: chance.sentence({ words: 5 }), + senderId: 8, + type: 'text', + attachment: [], + id: uniqueId() + } + ] + }, + { + id: 9, + name: 'Charles Martha', + status: 'online', + thumb: user4, + recent: false, + chatHistory: [ + { + createdAt: sub(new Date(), { hours: 10 }), + msg: chance.sentence({ words: 5 }), + senderId: 1, + type: 'text', + attachment: [ + { icon: java, file: 'work-project.zip', fileSize: '20MB' }, + { icon: zip, file: 'custom.js', fileSize: '2MB' } + ], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { hours: 8 }), + msg: chance.sentence({ words: 5 }), + senderId: 3, + type: 'text', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { hours: 8 }), + msg: chance.sentence({ words: 5 }), + senderId: 3, + type: 'text', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { minutes: 5 }), + msg: chance.sentence({ words: 5 }), + senderId: 9, + type: 'text', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { minutes: 2 }), + msg: chance.sentence({ words: 5 }), + senderId: 9, + type: 'text', + attachment: [], + id: uniqueId() + } + ] + }, + { + id: 10, + name: 'Samuel Ban', + status: 'online', + thumb: user5, + recent: false, + chatHistory: [ + { + createdAt: sub(new Date(), { hours: 10 }), + msg: chance.sentence({ words: 5 }), + senderId: 1, + type: 'text', + attachment: [ + { icon: adobe, file: 'service-task.pdf', fileSize: '2MB' }, + { icon: zip, file: 'custom.js', fileSize: '2MB' } + ], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { hours: 11 }), + msg: chance.sentence({ words: 5 }), + senderId: 3, + type: 'text', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { hours: 6 }), + msg: chance.sentence({ words: 5 }), + senderId: 3, + type: 'text', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { hours: 6 }), + msg: chance.sentence({ words: 5 }), + senderId: 3, + type: 'text', + attachment: [], + id: uniqueId() + }, + { + createdAt: sub(new Date(), { minutes: 6 }), + msg: chance.sentence({ words: 5 }), + senderId: 10, + type: 'text', + attachment: [], + id: uniqueId() + } + ] + } +]; + +mock.onGet('/api/data/chat/ChatData').reply(() => { + return [200, ChatData]; +}); + +export default ChatData; diff --git a/_mockApis/apps/contact/index.ts b/_mockApis/apps/contact/index.ts new file mode 100755 index 0000000..24252b4 --- /dev/null +++ b/_mockApis/apps/contact/index.ts @@ -0,0 +1,131 @@ +import mock from '../../mockAdapter'; + +import user1 from '@/assets/images/profile/user-11.jpg'; +import user2 from '@/assets/images/profile/user-2.jpg'; +import user3 from '@/assets/images/profile/user-3.jpg'; +import user4 from '@/assets/images/profile/user-4.jpg'; +import user5 from '@/assets/images/profile/user-5.jpg'; +import user6 from '@/assets/images/profile/user-6.jpg'; +import user7 from '@/assets/images/profile/user-7.jpg'; +import user8 from '@/assets/images/profile/user-8.jpg'; +import user9 from '@/assets/images/profile/user-9.jpg'; +import user10 from '@/assets/images/profile/user-10.jpg'; + + +// types +export type KeyedObject = { + [key: string]: string | number | KeyedObject | any; +}; + +const contacts: KeyedObject[] = [ + { + id: '#123', + avatar: user2, + userinfo: 'Hanna Gover', + usermail: 'hannagover@gmail.com', + phone: '+123 456 789', + jdate: '12-10-2014', + role: 'Designer', + rolestatus: 'primary' + }, + { + id: '#452', + avatar: user1, + userinfo: 'Daniel Kristeen', + usermail: 'danielr@gmail.com', + phone: '+234 456 789', + jdate: '10-09-2014', + role: 'Developer', + rolestatus: 'secondary' + }, + { + id: '#565', + avatar: user3, + userinfo: 'Julian Josephs', + usermail: 'julijosep@gmail.com', + phone: '+345 456 789', + jdate: '01-10-2013', + role: 'Accountant', + rolestatus: 'error' + }, + { + id: '#785', + avatar: user4, + userinfo: 'Jany Petrovic', + usermail: 'janyver@gmail.com', + phone: '+456 456 789', + jdate: '02-10-2017', + role: 'Designer', + rolestatus: 'success' + }, + { + id: '#564', + avatar: user5, + userinfo: 'Leanne Graham', + usermail: 'leanegr@gmail.com', + phone: '+567 456 789', + jdate: '10-9-2015', + role: 'HR', + rolestatus: 'info' + }, + { + id: '#980', + avatar: user6, + userinfo: 'Dennis Schulist', + usermail: 'dennis12@gmail.com', + phone: '+678 456 789', + jdate: '10-5-2013', + role: 'Designer', + rolestatus: 'warning' + }, + { + id: '#521', + avatar: user7, + userinfo: 'Kurtis Weissnat', + usermail: 'kurtisr@gmail.com', + phone: '+123 456 789', + jdate: '05-10-2012', + role: 'Manager', + rolestatus: 'primary' + }, + { + id: '#450', + avatar: user8, + userinfo: 'Nicholas Runolfsdottir V', + usermail: 'nickover@gmail.com', + phone: '+234 456 789', + jdate: '11-10-2014', + role: 'Chairman', + rolestatus: 'secondary' + }, + { + id: '#212', + avatar: user9, + userinfo: 'Glenna Reichert', + usermail: 'glenarei@gmail.com', + phone: '+345 456 789', + jdate: '12-5-2017', + role: 'Designer', + rolestatus: 'error' + }, + { + id: '#152', + avatar: user10, + userinfo: 'Clementina DuBuque', + usermail: 'clementina@gmail.com', + phone: '+456 456 789', + jdate: '18-5-2009', + role: 'Developer', + rolestatus: 'success' + } +]; + +// ==============================|| MOCK SERVICES ||============================== // + +// mock.onGet('/api/products/list').reply(200, { products }); +mock.onGet('/api/contacts').reply(() => { + return [200, contacts]; +}); + + +export default contacts; diff --git a/_mockApis/apps/ecommerce/Editproduc.ts b/_mockApis/apps/ecommerce/Editproduc.ts new file mode 100755 index 0000000..d54cca0 --- /dev/null +++ b/_mockApis/apps/ecommerce/Editproduc.ts @@ -0,0 +1,72 @@ +import type { Productreview } from "@/types/apps/Editproducts"; + +import img1 from '@/assets/images/profile/user-11.jpg'; +import img2 from '@/assets/images/profile/user-8.jpg'; +import img3 from '@/assets/images/profile/user-3.jpg'; +import img4 from '@/assets/images/profile/user-4.jpg'; +import img5 from '@/assets/images/profile/user-5.jpg'; +import img6 from '@/assets/images/profile/user-6.jpg'; +import img7 from '@/assets/images/profile/user-7.jpg'; +import img8 from '@/assets/images/profile/user-10.jpg'; + + +const ProductreviewData: Productreview[] = [ + { + review:5, + image:img1, + name: 'Sunil Joshi', + comment:'I like this design', + date:'1 day ago' + }, + { + review:4, + image:img2, + name: 'Mark Richard', + comment:'Awesome quality with great materials used, but could be more comfortable', + date:'11:20 PM' + }, + { + review:4.5, + image:img3, + name: 'Hanry Lord', + comment:'This is the best product I have ever used.', + date:'Today' + }, + { + review:3.5, + image:img4, + name: 'Britny Cox', + comment:'Beautifully crafted. Worth every penny.', + date:'Today' + }, + { + review:4, + image:img5, + name: 'Olvin wild', + comment:'Awesome value for money. Shipping could be faster tho.', + date:'12:00 PM' + }, + { + review:5, + image:img6, + name: 'Dan wilsed', + comment:'Excellent quality, I got it for my sons birthday and he loved it', + date:'1 May 2024' + }, + { + review:5, + image:img7, + name: 'Jon Miller', + comment:'Firesale is on! Buy now! Totally worth it!', + date:'25 April 2024' + }, + { + review:3.5, + image:img8, + name: 'Anaa Crown', + comment:'Excellent quality, I got it for my sons birthday and he loved it', + date:'1 May 2024' + } +]; + +export {ProductreviewData} \ No newline at end of file diff --git a/_mockApis/apps/ecommerce/billing-address.ts b/_mockApis/apps/ecommerce/billing-address.ts new file mode 100755 index 0000000..d5f10c1 --- /dev/null +++ b/_mockApis/apps/ecommerce/billing-address.ts @@ -0,0 +1,112 @@ +import mock from '../../mockAdapter'; + +// third-party +import { add, sub } from 'date-fns'; +import { Chance } from 'chance'; +//Types +import type { Address } from '@/types/apps/EcommerceType'; + +const chance = new Chance(); + +// billing address list +let address: Address[] = [ + { + id: 1, + name: chance.name(), + destination: 'Home', + building: chance.address({ short_suffix: true }), + city: chance.city(), + state: chance.state({ full: true }), + phone: chance.phone(), + isDefault: true + }, + { + id: 2, + name: chance.name(), + destination: 'Office', + building: chance.address({ short_suffix: true }), + city: chance.city(), + state: chance.state({ full: true }), + phone: chance.phone(), + isDefault: false + }, + { + id: 3, + name: chance.name(), + destination: 'Office', + building: chance.address({ short_suffix: true }), + city: chance.city(), + state: chance.state({ full: true }), + phone: chance.phone(), + isDefault: false + } +]; + +// ==============================|| MOCK SERVICES ||============================== // + +mock.onGet('/api/address/list').reply(() => { + return [200, address]; +}); + +mock.onPost('/api/address/new').reply((request) => { + try { + const data = JSON.parse(request.data); + const { name, destination, building, street, city, state, country, post, phone, isDefault } = data; + const newAddress = { + id: new Date(), + name, + destination, + building, + street, + city, + state, + country, + post, + phone, + isDefault + }; + + if (isDefault) { + address = address.map((item) => { + if (item.isDefault === true) { + return { ...item, isDefault: false }; + } + return item; + }); + } + + address = [...address, newAddress]; + + return [200, { address }]; + } catch (err) { + console.error(err); + return [500, { message: 'Internal server error' }]; + } +}); + +mock.onPost('/api/address/edit').reply((request) => { + try { + const data = JSON.parse(request.data); + + if (data.isDefault) { + address = address.map((item) => { + if (item.isDefault === true) { + return { ...item, isDefault: false }; + } + return item; + }); + } + + address = address.map((item) => { + if (item.id === data.id) { + return data; + } + return item; + }); + + return [200, { address }]; + } catch (err) { + console.error(err); + return [500, { message: 'Internal server error' }]; + } +}); diff --git a/_mockApis/apps/ecommerce/index.ts b/_mockApis/apps/ecommerce/index.ts new file mode 100755 index 0000000..842b5c9 --- /dev/null +++ b/_mockApis/apps/ecommerce/index.ts @@ -0,0 +1,2 @@ +import './products'; +import './billing-address'; diff --git a/_mockApis/apps/ecommerce/products.ts b/_mockApis/apps/ecommerce/products.ts new file mode 100755 index 0000000..afd54a4 --- /dev/null +++ b/_mockApis/apps/ecommerce/products.ts @@ -0,0 +1,273 @@ +import mock from '../../mockAdapter'; + +// third-party +import { add, sub } from 'date-fns'; +import { Chance } from 'chance'; +import product1 from '@/assets/images/products/s11.jpg'; +import product2 from '@/assets/images/products/s5.jpg'; +import product3 from '@/assets/images/products/s6.jpg'; +import product4 from '@/assets/images/products/s4.jpg'; +import product5 from '@/assets/images/products/s10.jpg'; +import product6 from '@/assets/images/products/s9.jpg'; +import product7 from '@/assets/images/products/s7.jpg'; +import product8 from '@/assets/images/products/s8.jpg'; +import product9 from '@/assets/images/products/s3.jpg'; +import product10 from '@/assets/images/products/s1.jpg'; +import product11 from '@/assets/images/products/s12.jpg'; +import product12 from '@/assets/images/products/s2.jpg'; +//Types +import type { Products } from '@/types/apps/EcommerceType'; + +const chance = new Chance(); +// products list +const products: Products[] = [ + { + id: 1, + image: product1, + name: 'Super Games', + description: chance.paragraph({ sentences: 1 }), + rating: chance.floating({ min: 0.1, max: 5.0 }), + discount: 25, + salePrice: 180, + offerPrice: 200, + gender: 'kids', + categories: ['fashion', 'toys','electronics'], + colors: ['error', 'warning', 'primary', 'secondary'], + popularity: chance.natural(), + date: chance.natural(), + created: sub(new Date(), { days: 8, hours: 6, minutes: 20 }), + isStock: true, + qty: 1, + rank:87, + price:'200' + }, + { + id: 2, + image: product2, + name: 'Derma-E', + description: chance.paragraph({ sentences: 2 }), + rating: chance.floating({ min: 0.1, max: 5.0 }), + discount: 10, + salePrice: 81, + offerPrice: 89, + gender: 'kids', + categories: ['fashion', 'female'], + colors: ['lightprimary', 'success', 'lighterror', 'warning'], + popularity: chance.natural(), + date: chance.natural(), + created: sub(new Date(), { days: 10, hours: 8, minutes: 69 }), + isStock: false, + qty: 1, + rank:87, + price:'100' + }, + { + id: 3, + image: product3, + name: 'SockSoho', + description: chance.paragraph({ sentences: 2 }), + rating: chance.floating({ min: 0.1, max: 5.0 }), + discount: 40, + salePrice: 49, + offerPrice: 59, + gender: 'male', + categories: ['fashion','kids'], + colors: ['lightprimary', 'primary'], + popularity: chance.natural(), + date: chance.natural(), + created: sub(new Date(), { days: 4, hours: 9, minutes: 50 }), + isStock: true, + qty: 1, + rank:50, + price:'100' + }, + { + id: 4, + image: product4, + name: 'Glossy Solution', + description: chance.paragraph({ sentences: 2 }), + rating: chance.floating({ min: 0.1, max: 5.0 }), + discount: 17, + salePrice: 29, + offerPrice: 36, + gender: 'kids', + categories: ['fashion','female'], + colors: ['error', 'warning', 'warning'], + popularity: chance.natural(), + date: chance.natural(), + created: sub(new Date(), { days: 7, hours: 6, minutes: 45 }), + isStock: false, + qty: 1, + rank:90, + price:'50' + }, + { + id: 5, + image: product5, + name: 'Supercolor 645CL', + description: chance.paragraph({ sentences: 2 }), + rating: chance.floating({ min: 0.1, max: 5.0 }), + discount: 20, + salePrice: 12, + offerPrice: 15, + gender: 'male', + categories: ['toys'], + colors: ['warning', 'lightprimary'], + popularity: chance.natural(), + date: chance.natural(), + created: sub(new Date(), { days: 2, hours: 9, minutes: 45 }), + isStock: true, + qty: 1, + rank:88, + price:'50' + }, + { + id: 6, + image: product6, + name: 'Orange Glass', + description: chance.paragraph({ sentences: 2 }), + rating: chance.floating({ min: 0.1, max: 5.0 }), + discount: 13, + salePrice: 86, + offerPrice: 99, + gender: 'female', + categories: ['fashion', 'kitchen'], + colors: ['primary', 'warning'], + popularity: chance.natural(), + date: chance.natural(), + created: add(new Date(), { days: 6, hours: 10, minutes: 0 }), + isStock: true, + qty: 1, + rank:95, + price:'100' + }, + { + id: 7, + image: product7, + name: 'Polraid One Step', + description: chance.paragraph({ sentences: 2 }), + rating: chance.floating({ min: 0.1, max: 5.0 }), + discount: 15, + salePrice: 16, + offerPrice: 14.59, + gender: 'female', + categories: ['fashion'], + colors: ['error', 'secondary', 'primary', 'warning'], + popularity: chance.natural(), + date: chance.natural(), + created: add(new Date(), { days: 14, hours: 1, minutes: 55 }), + isStock: false, + qty: 1, + rank:60, + price:'50' + }, + { + id: 8, + image: product8, + name: 'Colorful Camera', + description: chance.paragraph({ sentences: 2 }), + rating: chance.floating({ min: 0.1, max: 5.0 }), + discount: 20, + salePrice: 130, + offerPrice: 105, + gender: 'female', + categories: ['toys'], + colors: ['lightsuccess', 'primary', 'success'], + popularity: chance.natural(), + date: chance.natural(), + created: sub(new Date(), { days: 0, hours: 11, minutes: 10 }), + isStock: true, + qty: 1, + rank:80, + price:'151' + }, + { + id: 9, + image: product9, + name: 'Smart Watch', + description: chance.paragraph({ sentences: 2 }), + rating: chance.floating({ min: 0.1, max: 5.0 }), + discount: 20, + salePrice: 130, + offerPrice: 160, + gender: 'female', + categories: ['toys','electronics'], + colors: ['lightsuccess', 'primary', 'success'], + popularity: chance.natural(), + date: chance.natural(), + created: sub(new Date(), { days: 0, hours: 11, minutes: 10 }), + isStock: true, + qty: 1, + rank:80, + price:'252' + }, + { + id: 10, + image: product10, + name: 'Curology Face wash', + description: chance.paragraph({ sentences: 2 }), + rating: chance.floating({ min: 0.1, max: 5.0 }), + discount: 20, + salePrice: 275, + offerPrice: 350, + gender: 'female', + categories: ['toys'], + colors: ['lightsuccess', 'primary', 'success'], + popularity: chance.natural(), + date: chance.natural(), + created: sub(new Date(), { days: 0, hours: 11, minutes: 10 }), + isStock: true, + qty: 1, + rank:80, + price:'275' + }, + { + id: 11, + image: product11, + name: 'Smart Game', + description: chance.paragraph({ sentences: 2 }), + rating: chance.floating({ min: 0.1, max: 5.0 }), + discount: 20, + salePrice: 10, + offerPrice: 15, + gender: 'female', + categories: ['toys','electronics'], + colors: ['lightsuccess', 'primary', 'success'], + popularity: chance.natural(), + date: chance.natural(), + created: sub(new Date(), { days: 0, hours: 11, minutes: 10 }), + isStock: true, + qty: 1, + rank:80, + price:'275' + }, + { + id: 12, + image: product12, + name: 'Body Lotion', + description: chance.paragraph({ sentences: 2 }), + rating: chance.floating({ min: 0.1, max: 5.0 }), + discount: 20, + salePrice: 89, + offerPrice: 99, + gender: 'female', + categories: ['toys'], + colors: ['lightsuccess', 'primary', 'success'], + popularity: chance.natural(), + date: chance.natural(), + created: sub(new Date(), { days: 0, hours: 11, minutes: 10 }), + isStock: true, + qty: 1, + rank:80, + price:'275' + } +]; + +// ==============================|| MOCK SERVICES ||============================== // + +// mock.onGet('/api/products/list').reply(200, { products }); +mock.onGet('/api/products/list').reply(() => { + return [200, products]; +}); + +export default products; \ No newline at end of file diff --git a/_mockApis/apps/email/index.ts b/_mockApis/apps/email/index.ts new file mode 100755 index 0000000..e7e9841 --- /dev/null +++ b/_mockApis/apps/email/index.ts @@ -0,0 +1,596 @@ +import mock from "../../mockAdapter"; +import { Chance } from "chance"; +import type { EmailType } from "@/types/apps/EmailTypes"; +import { sub } from "date-fns"; + +import user1 from '@/assets/images/profile/user-2.jpg'; +import user2 from '@/assets/images/profile/user-3.jpg'; +import user3 from '@/assets/images/profile/user-4.jpg'; +import user4 from '@/assets/images/profile/user-5.jpg'; +import user5 from '@/assets/images/profile/user-6.jpg'; +import user6 from '@/assets/images/profile/user-7.jpg'; +import user7 from '@/assets/images/profile/user-8.jpg'; +import user8 from '@/assets/images/profile/user-14.jpg'; +import user9 from '@/assets/images/profile/user-9.jpg'; +import user10 from '@/assets/images/profile/user-10.jpg'; +import user11 from '@/assets/images/profile/user-11.jpg'; +import user12 from '@/assets/images/profile/user-12.jpg'; +import user13 from '@/assets/images/profile/user-13.jpg'; + +import adobe from '@/assets/images/chat/icon-adobe.svg'; +import chrome from '@/assets/images/chat/icon-chrome.svg'; +import figma from '@/assets/images/chat/icon-figma.svg'; +import java from '@/assets/images/chat/icon-javascript.svg'; +import zip from '@/assets/images/chat/icon-zip-folder.svg'; + +const chance = new Chance(); + +const EmailData: EmailType[] = [ + { + id: 1, + from: "James Smith", + thumbnail: user10, + subject: "Kindly check this latest updated", + time: sub(new Date(), { hours: 1 }), + To: "abc@company.com", + emailExcerpt: + "Contrary to popular belief, Lorem Ipsum is not simply random text. ", + emailContent: `

Hello Andrew,

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque bibendum hendrerit lobortis. Nullam ut lacus eros. Sed at luctus urna, eu fermentum diam. In et tristique mauris.

+

Ut id ornare metus, sed auctor enim. Pellentesque nisi magna, laoreet a augue eget, + tempor volutpat diam.

+

Regards,
James Smith

+ `, + unread: true, + attachment: false, + starred: true, + important: false, + inbox: true, + sent: false, + draft: false, + spam: false, + trash: false, + promotional:true, + social:false, + health:true, + label: "Promotional", + attchments: [ + { + id: "#1Attach", + image: adobe, + title: "adobe.pdf", + fileSize: "2MB", + }, + { + id: "#2Attach", + image: chrome, + title: "abouts.html", + fileSize: "2MB", + }, + { + id: "#3Attach", + image: zip, + title: "cheese.zip", + fileSize: "2MB", + }, + ], + }, + { + id: 2, + from: "Michael Smith", + thumbnail: user1, + subject: "Fact that a reader will be distracted.", + time: sub(new Date(), { days: 0, hours: 3, minutes: 45 }), + To: "abc@company.com", + emailExcerpt: + "It has roots in a piece of classical Latin literature from 45 BC", + emailContent: `

Hello Andrew,

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque bibendum hendrerit lobortis. Nullam ut lacus eros. Sed at luctus urna, eu fermentum diam. In et tristique mauris.

+

Ut id ornare metus, sed auctor enim. Pellentesque nisi magna, laoreet a augue eget, + tempor volutpat diam.

+

Regards,
Michael Smith

+ `, + unread: true, + attachment: false, + starred: true, + important: false, + inbox: false, + sent: false, + draft: true, + spam: false, + promotional:true, + social:false, + health:true, + trash: false, + label: "Social", + attchments: [], + }, + { + id: 3, + from: "Robert Smith", + thumbnail: user2, + subject: + "The point of using Lorem Ipsum is that it has a more-or-less normal", + time: sub(new Date(), { days: 0, hours: 11, minutes: 45 }), + To: "abc@company.com", + emailExcerpt: "Richard McClintock, a Latin professor at Hampden-Sydney", + emailContent: + "

Dummy text is also used to demonstrate the appearance of different typefaces and layouts, and in general the content of dummy text is nonsensical. ", + unread: false, + attachment: false, + starred: false, + important: true, + inbox: false, + sent: true, + draft: false, + promotional:true, + social:true, + health:true, + spam: false, + trash: false, + label: "Promotional", + attchments: [ + { + id: "#4Attach", + image: figma, + title: "service.fig", + fileSize: "2MB", + }, + { + id: "#5Attach", + image: java, + title: "abouts.js", + fileSize: "2MB", + }, + ], + }, + { + id: 4, + from: "Maria Garcia", + thumbnail:user5, + subject: "Contrary to popular belief, Lorem Ipsum is.", + time: sub(new Date(), { days: 1, hours: 2, minutes: 45 }), + To: "abc@company.com", + emailExcerpt: "Lorem Ipsum passage, and going through", + emailContent: + "

Furthermore, it is advantageous when the dummy text is relatively realistic so that the layout impression of the final publication is not compromised.

", + unread: false, + attachment: true, + starred: true, + important: false, + inbox: false, + promotional:false, + social:false, + health:false, + sent: false, + draft: true, + spam: false, + trash: false, + label: "Social", + attchments: [ + { + id: "#4Attach", + image: figma, + title: "service.fig", + fileSize: "2MB", + }, + { + id: "#5Attach", + image: java, + title: "abouts.js", + fileSize: "2MB", + }, + ], + }, + { + id: 5, + from: "David Smith", + thumbnail: user6, + subject: "Literature from 45 BC, making", + time: sub(new Date(), { days: 1, hours: 8, minutes: 45 }), + To: "abc123@company.com", + emailExcerpt: "The standard chunk of Lorem Ipsum used since the 1500s", + emailContent: + "

One disadvantage of Lorum Ipsum is that in Latin certain letters appear more frequently than others which creates a distinct visual impression.

", + unread: false, + attachment: false, + starred: false, + important: true, + inbox: true, + sent: false, + draft: false, + promotional:true, + social:true, + health:true, + spam: false, + trash: false, + label: "Social", + attchments: [], + }, + { + id: 6, + from: "Maria Rodriguez", + thumbnail: user7, + subject: "Latin professor at Hampden-Sydney College.", + time: sub(new Date(), { days: 1, hours: 10, minutes: 45 }), + To: "abc@company.com", + emailExcerpt: "Cicero are also reproduced in their exact original form", + emailContent: + "

Thus, Lorem Ipsum has only limited suitability as a visual filler for German texts. If the fill text is intended to illustrate the characteristics of different typefaces.

", + unread: false, + attachment: true, + starred: false, + important: true, + inbox: true, + promotional:false, + social:true, + health:true, + sent: false, + draft: false, + spam: false, + trash: false, + label: "Health", + attchments: [], + }, + { + id: 7, + from: "Mary Smith", + thumbnail: user8, + subject: "the cites of the word in classical.", + time: sub(new Date(), { days: 1, hours: 11, minutes: 45 }), + To: "abc@company.com", + emailExcerpt: + "There are many variations of passages of Lorem Ipsum available", + emailContent: + "

There is now an abundance of readable dummy texts. These are usually used when a text is required purely to fill a space.These alternatives to the classic Lorem Ipsum texts are often amusing and tell short, funny or nonsensical stories.

", + unread: true, + attachment: true, + starred: false, + important: false, + promotional:true, + social:false, + health:false, + inbox: true, + sent: false, + draft: false, + spam: false, + trash: false, + label: "Social", + attchments: [], + }, + { + id: 8, + from: "Maria Hernandez", + thumbnail: user9, + subject: " This book is a treatise on the theory of ethics.", + time: sub(new Date(), { days: 2, hours: 1, minutes: 45 }), + To: "abc@company.com", + emailExcerpt: + "the majority have suffered alteration in some form, by injected ", + emailContent: + "

According to most sources, Lorum Ipsum can be traced back to a text composed by Cicero in 45 BC. Allegedly, a Latin scholar established the origin of the text.

", + unread: false, + attachment: true, + starred: false, + important: true, + inbox: false, + promotional:true, + social:true, + health:true, + sent: false, + draft: false, + spam: true, + trash: false, + label: "Social", + attchments: [], + }, + { + id: 9, + from: "Maria Martinez", + thumbnail: user10, + subject: "Lorem Ipsum used since the 1500s is reproduced.", + time: sub(new Date(), { days: 2, hours: 3, minutes: 45 }), + To: "abc@company.com", + emailExcerpt: "If you are going to use a passage of Lorem Ipsum", + emailContent: + "

It seems that only fragments of the original text remain in the Lorem Ipsum texts used today. One may speculate that over the course of time certain letters.

", + unread: false, + attachment: true, + starred: false, + important: false, + inbox: false, + promotional:false, + social:true, + health:false, + sent: false, + draft: false, + spam: false, + trash: true, + label: "Promotional", + attchments: [], + }, + { + id: 10, + from: "James Johnson", + thumbnail:user1, + subject: "accompanied by English versions from the 1914 translation.", + time: sub(new Date(), { days: 2, hours: 8, minutes: 45 }), + To: "abc@company.com", + emailExcerpt: "you need to be sure there isn't anything", + emailContent: + "

This might also explain why one can now find slightly different versions. Due to the age of the Lorem Ipsum text there are no copyright issues to contend with.

", + unread: false, + attachment: true, + starred: true, + important: false, + inbox: false, + promotional:true, + social:false, + health:true, + sent: true, + draft: false, + spam: false, + trash: false, + label: "Health", + attchments: [], + }, + { + id: 11, + from: "James Smith", + thumbnail:user3, + subject: "All the Lorem Ipsum generators on the Internet.", + time: sub(new Date(), { days: 2, hours: 9, minutes: 45 }), + To: "abc@company.com", + emailExcerpt: + "All the Lorem Ipsum generators on the Internet tend to repeat predefined", + emailContent: + "

The spread of computers and layout programmes thus made dummy text better known. While in earlier times several lines of the Lorem Ipsum text were repeated in the creation of dummy texts.

", + unread: false, + attachment: false, + starred: true, + important: false, + inbox: true, + promotional:true, + social:false, + health:false, + sent: false, + draft: false, + spam: false, + trash: false, + label: "Promotional", + attchments: [], + }, + { + id: 12, + from: "Michael Smith", + thumbnail: user7, + subject: "Latin words, combined with a handful.", + time: sub(new Date(), { days: 2, hours: 11, minutes: 45 }), + To: "abc@company.com", + emailExcerpt: "combined with a handful of model sentence structures", + emailContent: + "

basis for many dummy text or Lorem Ipsum generators. Based on 'De finibus', these generators automatically create longer sections of the Lorem Ipsum text or various other filler texts.

", + unread: false, + attachment: false, + starred: false, + important: false, + promotional:true, + social:true, + health:true, + inbox: true, + sent: false, + draft: true, + spam: false, + trash: true, + label: "Social", + attchments: [], + }, + { + id: 13, + from: "Robert Smith", + thumbnail: user1, + subject: "If you are going to use a passage.", + time: sub(new Date(), { days: 3, hours: 2, minutes: 45 }), + To: "abc@company.com", + emailExcerpt: + "Lorem Ipsum is therefore always free from repetition, injected humour", + emailContent: + "

The phrasal sequence of the Lorem Ipsum text is now so widespread and commonplace that many DTP programmes can generate dummy text using the starting sequence.

", + unread: false, + attachment: true, + starred: true, + important: true, + promotional:false, + social:false, + health:false, + inbox: false, + sent: true, + draft: false, + spam: false, + trash: false, + label: "Health", + attchments: [], + }, + { + id: 14, + from: "Maria Garcia", + thumbnail: user2, + subject: "piece of classical Latin literature.", + time: sub(new Date(), { days: 3, hours: 11, minutes: 45 }), + To: "abc@company.com", + emailExcerpt: "Lorem Ipsum passage, and going through the cites", + emailContent: + "

now recognized by electronic pre-press systems and, when found, an alarm can be raised. This avoids a publication going to print with overlooked dummy text.

", + unread: false, + attachment: false, + starred: true, + important: false, + inbox: false, + promotional:true, + social:true, + health:true, + sent: false, + draft: false, + spam: false, + trash: true, + label: "Social", + attchments: [], + }, + { + id: 15, + from: "David Smith", + thumbnail: user3, + subject: "first true generator on the Internet.", + time: sub(new Date(), { days: 3, hours: 4, minutes: 45 }), + To: "abc@company.com", + emailExcerpt: + "Lorem Ipsum is simply dummy text of the printing and typesetting industry.", + emailContent: + "

Certain internet providers exploit the fact that fill text cannot be recognized by automatic search engines - meaningful information cannot be distinguished from meaningless.

", + unread: false, + attachment: true, + starred: false, + important: false, + inbox: false, + promotional:true, + social:false, + health:true, + sent: false, + draft: false, + spam: false, + trash: true, + label: "Promotional", + attchments: [], + }, + { + id: 16, + from: "Maria Rodriguez", + thumbnail: user4, + subject: "combined with a handful of model sentence structure.", + time: sub(new Date(), { days: 4, hours: 1, minutes: 45 }), + To: "abc@company.com", + emailExcerpt: + "Lorem Ipsum has been the industry's standard dummy text ever since the 1500s", + emailContent: + "

Target-generated dummy text mixed with a certain combination of search terms can lead to an increased frequency of visits by search machine users. As a consequence, advertising revenues, which rely on website 'hits', are increased.

", + unread: true, + attachment: false, + starred: false, + important: true, + inbox: true, + promotional:true, + social:true, + health:false, + sent: false, + draft: false, + spam: false, + trash: true, + label: "Social", + attchments: [], + }, + { + id: 17, + from: "Mary Smith", + thumbnail: user6, + subject: "randomised words which don't look even.", + time: sub(new Date(), { days: 4, hours: 1, minutes: 45 }), + To: "abc@company.com", + emailExcerpt: "when an unknown printer took a galley of type", + emailContent: + "

Vitae purus faucibus ornare suspendisse sed nisi lacus sed viverra. Amet nisl suscipit adipiscing bibendum est ultricies integer.

", + unread: true, + attachment: false, + starred: false, + important: false, + inbox: false, + promotional:true, + social:false, + health:true, + sent: false, + draft: false, + spam: true, + trash: false, + label: "Health", + attchments: [], + }, + { + id: 18, + from: "Maria Hernandez", + thumbnail: user8, + subject: "Lorem Ipsum generators on the Internet tend.", + time: sub(new Date(), { days: 4, hours: 1, minutes: 45 }), + To: "abc@company.com", + emailExcerpt: "scrambled it to make a type specimen book", + emailContent: + "

Volutpat diam ut venenatis tellus in metus vulputate eu. Id aliquet lectus proin nibh nisl condimentum id venenatis. Risus quis varius quam quisque id diam vel. Pulvinar pellentesque habitant morbi tristique senectus et netus et.

", + unread: false, + attachment: false, + starred: false, + important: true, + inbox: false, + promotional:true, + social:false, + health:true, + sent: true, + draft: false, + spam: false, + trash: false, + label: "Promotional", + attchments: [], + }, + { + id: 19, + from: "Maria Martinez", + thumbnail: user9, + subject: "combined with a handful of model.", + time: sub(new Date(), { days: 4, hours: 1, minutes: 45 }), + To: "abc@company.com", + emailExcerpt: "It has survived not only five centuries", + emailContent: + "

Scelerisque purus semper eget duis at. Tempus imperdiet nulla malesuada pellentesque elit. Vitae semper quis lectus nulla at volutpat. Ac tortor vitae purus faucibus ornare suspendisse.

", + unread: true, + attachment: false, + starred: false, + important: false, + inbox: false, + promotional:true, + social:false, + health:true, + sent: false, + draft: true, + spam: false, + trash: false, + label: "Health", + attchments: [], + }, + { + id: 20, + from: "James Johnson", + thumbnail: user11, + subject: "The Extremes of Good and Evil.", + time: sub(new Date(), { days: 4, hours: 1, minutes: 45 }), + To: "abc@company.com", + emailExcerpt: "the 1960s with the release of Letraset sheets containings", + emailContent: + "

Ultrices in iaculis nunc sed augue lacus viverra. Tellus cras adipiscing enim eu turpis egestas. Libero enim sed faucibus turpis in eu mi bibendum neque. Consectetur adipiscing elit ut aliquam. Mattis nunc sed blandit libero volutpat sed cras.

", + unread: false, + attachment: true, + starred: true, + important: true, + inbox: true, + promotional:false, + social:false, + health:false, + sent: false, + draft: false, + spam: false, + trash: false, + label: "Social", + attchments: [], + }, +]; + +mock.onGet('/api/data/email/EmailData').reply(() => { + return [200, EmailData]; +}); +export default EmailData; \ No newline at end of file diff --git a/_mockApis/apps/invoice/index.ts b/_mockApis/apps/invoice/index.ts new file mode 100755 index 0000000..d98ff1d --- /dev/null +++ b/_mockApis/apps/invoice/index.ts @@ -0,0 +1,253 @@ +import type { InvoiceType } from "@/types/apps/InvoiceTypes"; +import mock from "../../mockAdapter"; +import { Chance } from "chance"; +const chance = new Chance(); + +const InvoiceData: InvoiceType[] = [ + { + id: 101, + billFrom: "PineappleInc.", + billFromEmail: "first@xabz.com", + billFromAddress: "Ganesh glory,Godrej garden city,Ahmedabad.", + billFromPhone: 979796786, + billFromFax: 13, + billTo: "Redq Inc.", + billToEmail: "toFirst@agth.com", + billToAddress: "Godrej garden city,Ahmedabad.", + billToPhone: 757575233, + billToFax: 76, + orders: [ + { + itemName: "Courge", + unitPrice: 10, + units: 15, + unitTotalPrice: 90, + }, + ], + orderDate: new Date(), + totalCost: 90, + vat: 9, + grandTotal: 99, + status: "Shipped", + completed: false, + isSelected: false, + }, + { + id: 102, + billFrom: "Pineapple.", + billFromEmail: "first@xabz.com", + billFromAddress: "Ganesh glory,Godrej garden city,Ahmedabad.", + billFromPhone: 979796786, + billFromFax: 13, + billTo: "ME Inc.", + billToEmail: "toFirst@agth.com", + billToAddress: "Godrej garden city,Ahmedabad.", + billToPhone: 757575233, + billToFax: 76, + orders: [ + { + itemName: "Courge", + unitPrice: 10, + units: 9, + unitTotalPrice: 90, + }, + ], + orderDate: new Date(), + totalCost: 90, + vat: 9, + grandTotal: 99, + status: "Delivered", + completed: false, + isSelected: false, + }, + { + id: 103, + billFrom: "Incorporation.", + billFromEmail: "first@xabz.com", + billFromAddress: "Ahmedabad.", + billFromPhone: 979796786, + billFromFax: 13, + billTo: "Redirwed.", + billToEmail: "toFirst@agth.com", + billToAddress: "Godrej garden city,Ahmedabad.", + billToPhone: 757575233, + billToFax: 76, + orders: [ + { + itemName: "Courge", + unitPrice: 10, + units: 9, + unitTotalPrice: 90, + }, + ], + orderDate: new Date(), + totalCost: 90, + vat: 9, + grandTotal: 99, + status: "Pending", + completed: false, + isSelected: false, + }, + { + id: 104, + billFrom: "PineappleTimes.", + billFromEmail: "first@xabz.com", + billFromAddress: "Ganesh glory,Godrej garden city,Ahmedabad.", + billFromPhone: 979796786, + billFromFax: 13, + billTo: "RFc.", + billToEmail: "toFirst@agth.com", + billToAddress: "Godrej garden city,Ahmedabad.", + billToPhone: 757575233, + billToFax: 76, + orders: [ + { + itemName: "Courge", + unitPrice: 10, + units: 9, + unitTotalPrice: 90, + }, + ], + orderDate: new Date(), + totalCost: 90, + vat: 9, + grandTotal: 99, + status: "Shipped", + completed: false, + isSelected: false, + }, + { + id: 105, + billFrom: "FortuneCreation", + billFromEmail: "first@xabz.com", + billFromAddress: "Ganesh glory,Godrej garden city,Ahmedabad.", + billFromPhone: 979796786, + billFromFax: 13, + billTo: "Soft solution.", + billToEmail: "toFirst@agth.com", + billToAddress: "Godrej garden city,Ahmedabad.", + billToPhone: 757575233, + billToFax: 76, + orders: [ + { + itemName: "Courge", + unitPrice: 10, + units: 9, + unitTotalPrice: 90, + }, + ], + orderDate: new Date("2020-10-15"), + totalCost: 90, + vat: 9, + grandTotal: 99, + status: "Delivered", + completed: false, + isSelected: false, + }, + { + id: 106, + billFrom: "PineappleTimes.", + billFromEmail: "first@xabz.com", + billFromAddress: "Ganesh glory,Godrej garden city,Ahmedabad.", + billFromPhone: 979796786, + billFromFax: 13, + billTo: "RFc.", + billToEmail: "toFirst@agth.com", + billToAddress: "Godrej garden city,Ahmedabad.", + billToPhone: 757575233, + billToFax: 76, + orders: [ + { + itemName: "Courge", + unitPrice: 10, + units: 9, + unitTotalPrice: 90, + }, + ], + orderDate: new Date(), + totalCost: 90, + vat: 9, + grandTotal: 99, + status: "Shipped", + completed: false, + isSelected: false, + }, + { + id: 107, + billFrom: "FortuneCreation", + billFromEmail: "first@xabz.com", + billFromAddress: "Ganesh glory,Godrej garden city,Ahmedabad.", + billFromPhone: 979796786, + billFromFax: 13, + billTo: "Soft solution.", + billToEmail: "toFirst@agth.com", + billToAddress: "Godrej garden city,Ahmedabad.", + billToPhone: 757575233, + billToFax: 76, + orders: [ + { + itemName: "Courge", + unitPrice: 10, + units: 9, + unitTotalPrice: 90, + }, + ], + orderDate: new Date("2020-10-15"), + totalCost: 90, + vat: 9, + grandTotal: 99, + status: "Delivered", + completed: false, + isSelected: false, + }, +]; + +mock.onGet("/api/data/invoices/invoiceData").reply(() => { + return [200, InvoiceData]; +}); + +// Handle POST requests to add a new invoice +mock.onPost("/api/data/invoices/invoiceData").reply((config) => { + try { + // Parse the new invoice from the request body + const newInvoice = JSON.parse(config.data) as InvoiceType; + + // Assign a new ID to the new invoice + const newId = + InvoiceData.length > 0 + ? Math.max(...InvoiceData.map((i) => i.id)) + 1 + : 1; + newInvoice.id = newId; + + // Add the new invoice to the invoice array + InvoiceData.push(newInvoice); + + // Return the new invoice in the response + return [201, newInvoice]; + } catch (error) { + return [500, { message: "Failed to add new invoice" }]; + } +}); + +// Handle PUT requests to update an existing invoice +mock.onPut(/\/api\/data\/invoices\/invoiceData\/\d+/).reply((config) => { + const id = config.url?.split('/').pop(); // Get the last segment of the URL + console.log('Extracted ID:', id); + if (!id) { + return [400, { message: "Invalid ID" }]; + } + + const updatedInvoice = JSON.parse(config.data) as InvoiceType; + const index = InvoiceData.findIndex(invoice => invoice.id === parseInt(id, 10)); + console.log('Index of invoice to update:', index); + + if (index !== -1) { + InvoiceData[index] = { ...InvoiceData[index], ...updatedInvoice }; + + return [200, InvoiceData[index]]; + } + + return [404, { message: "Invoice not found" }]; + }); + +export default InvoiceData; diff --git a/_mockApis/apps/kanban/index.ts b/_mockApis/apps/kanban/index.ts new file mode 100755 index 0000000..04b0a2c --- /dev/null +++ b/_mockApis/apps/kanban/index.ts @@ -0,0 +1,141 @@ +import mock from '../../mockAdapter'; +import image1 from '@/assets/images/backgrounds/kanban-img-1.jpg'; +import image2 from '@/assets/images/backgrounds/kanban-img-2.jpg'; +import image3 from '@/assets/images/backgrounds/kanban-img-3.jpg'; +import image4 from '@/assets/images/backgrounds/kanban-img-4.jpg'; +import { uniqueId } from 'lodash'; +import { sub } from 'date-fns'; + +interface TaskType { + id?: number | any; + title?: string; + subtitle?: string; + cardbg?: string; + datef?: Date | any; + taskimg?: string; + date?: Date | any; + category?: string; + tasks?: TaskType[]; + categorybg?: string; +} + +const TaskData: TaskType[] = [ + { + id: uniqueId('#m_'), + title: 'Todo', + cardbg: 'light', + tasks: [ + { + id: uniqueId('#task_'), + title: 'This is first task', + taskimg: image1, + date:sub(new Date(), { months: 1 }), + category: 'Design', + categorybg: 'success' + }, + { + id: uniqueId('#task_'), + title: 'Lets do some task on pd', + subtitle: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, o eiusmod tempor incid.', + date:sub(new Date(), { days: 2 }), + category: 'Development', + categorybg: 'warning' + }, + { + id: uniqueId('#task_'), + title: 'Do some projects on React Native with Flutter', + date:sub(new Date(), { days: 4 }), + category: 'Mobile', + categorybg: 'primary' + } + ] + }, + { + id: uniqueId('#m_'), + title: 'In Progress', + cardbg: 'lightsecondary', + tasks: [ + { + id: uniqueId('#task_'), + title: 'Work on Dashboard Designing', + date:sub(new Date(), { seconds: 1 }), + category: 'Mobile', + categorybg: 'primary' + }, + { + id: uniqueId('#task_'), + title: 'Battle with fire', + taskimg: image2, + date:sub(new Date(), { seconds: 1 }), + category: 'Design', + categorybg: 'success' + }, + { + id: uniqueId('#task_'), + title: 'Do some projects on Reactjs with tailwind ', + date:sub(new Date(), { seconds: 1 }), + category: 'Mobile', + categorybg: 'primary' + } + ] + }, + { + id: uniqueId('#m_'), + title: 'Pending', + cardbg: 'lightinfo', + tasks: [ + { + id: uniqueId('#task_'), + title: 'Create a Nextjs Dashboard', + date:sub(new Date(), { seconds: 1 }), + category: 'Design', + categorybg: 'success' + }, + { + id: uniqueId('#task_'), + title: 'Solve Vuejs Project errors', + subtitle: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, o eiusmod tempor incid.', + date:sub(new Date(), { seconds: 1 }), + category: 'Development', + categorybg: 'primary' + }, + { + id: uniqueId('#task_'), + taskimg: image4, + title: 'Redesign Overview', + date:sub(new Date(), { seconds: 1 }), + category: 'Design', + categorybg: 'error' + }, + + ] + }, + { + id: uniqueId('#m_'), + title: 'Done', + cardbg: 'lightsuccess', + tasks: [ + { + id: uniqueId('#task_'), + title: 'Develop React app', + taskimg: image3, + date:sub(new Date(), { months: 1 }), + category: 'Mobile', + categorybg: 'warning' + }, + { + id: uniqueId('#task_'), + title: 'Do some task on Nuxtjs', + subtitle: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit', + date:sub(new Date(), { seconds: 1 }), + category: 'Design', + categorybg: 'error' + }, + ] + } +]; + +mock.onGet('/api/data/task/TaskData').reply(() => { + return [200, TaskData]; +}); +export default TaskData; diff --git a/_mockApis/apps/notes/index.ts b/_mockApis/apps/notes/index.ts new file mode 100755 index 0000000..ff843ab --- /dev/null +++ b/_mockApis/apps/notes/index.ts @@ -0,0 +1,68 @@ +import mock from '../../mockAdapter'; + +interface NotesType { + id?: number | any; + color?: string; + title?: string; + datef?: string | Date; +} + +const NotesData: NotesType[] = [ + { + id: 1, + color: 'primary', + title: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.', + datef: '2023-06-03T23:28:56.782Z' + }, + { + id: 2, + color: 'error', + title: 'Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit,', + datef: '2023-06-02T23:28:56.782Z' + }, + { + id: 3, + color: 'warning', + title: 'consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur?', + datef: '2023-06-01T23:28:56.782Z' + }, + { + id: 4, + color: 'success', + title: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.', + datef: '2023-06-03T23:28:56.782Z' + } +]; + +interface colorVariationType { + id?: number; + color?: string; +} + +export const colorVariation: colorVariationType[] = [ + { + id: 1, + color: 'warning' + }, + { + id: 2, + color: 'secondary' + }, + { + id: 3, + color: 'error' + }, + { + id: 4, + color: 'success' + }, + { + id: 5, + color: 'primary' + } +]; + +mock.onGet('/api/data/notes/NotesData').reply(() => { + return [200, NotesData]; +}); +export default NotesData; diff --git a/_mockApis/apps/tickets/index.ts b/_mockApis/apps/tickets/index.ts new file mode 100755 index 0000000..868eed0 --- /dev/null +++ b/_mockApis/apps/tickets/index.ts @@ -0,0 +1,118 @@ +import mock from '../../mockAdapter'; +import { Chance } from 'chance'; +const chance = new Chance(); +interface TicketType { + Id?: number | any; + ticketTitle?: string; + ticketDescription?: string; + Status?: string; + Label?: string; + thumb?: string; + AgentName?: string; + Date?: string | Date; +} + +import user1 from '@/assets/images/profile/user-2.jpg'; +import user2 from '@/assets/images/profile/user-3.jpg'; +import user3 from '@/assets/images/profile/user-4.jpg'; +import user4 from '@/assets/images/profile/user-5.jpg'; +import user5 from '@/assets/images/profile/user-6.jpg'; +import user6 from '@/assets/images/profile/user-7.jpg'; +import user7 from '@/assets/images/profile/user-8.jpg'; +import user10 from '@/assets/images/profile/user-10.jpg'; + +const TicketData: TicketType[] = [ + { + Id: 1, + ticketTitle: 'Sed ut perspiciatis unde omnis iste', + ticketDescription: + 'ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos', + Status: 'Closed', + Label: 'error', + thumb: user10, + AgentName: 'Liam', + Date: chance.date() + }, + { + Id: 2, + ticketTitle: 'Consequuntur magni dolores eos qui ratione', + ticketDescription: + 'ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos', + Status: 'Pending', + Label: 'warning', + thumb: user1, + AgentName: 'Steve', + Date: chance.date() + }, + { + Id: 3, + ticketTitle: 'Exercitationem ullam corporis', + ticketDescription: + 'ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos', + Status: 'Open', + Label: 'success', + thumb: user2, + AgentName: 'Jack', + Date: chance.date() + }, + { + Id: 4, + ticketTitle: 'Sed ut perspiciatis unde omnis iste', + ticketDescription: + 'ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos', + Status: 'Closed', + Label: 'error', + thumb: user3, + AgentName: 'Steve', + Date: chance.date() + }, + { + Id: 5, + ticketTitle: 'Exercitationem ullam corporis', + ticketDescription: + 'ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos', + Status: 'Closed', + Label: 'error', + thumb: user4, + AgentName: 'Liam', + Date: chance.date() + }, + { + Id: 6, + ticketTitle: 'Consequuntur magni dolores eos qui ratione', + ticketDescription: + 'ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos', + Status: 'Pending', + Label: 'warning', + thumb: user5, + AgentName: 'Jack', + Date: chance.date() + }, + { + Id: 7, + ticketTitle: 'Sed ut perspiciatis unde omnis iste', + ticketDescription: + 'ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos', + Status: 'Open', + Label: 'success', + thumb: user6, + AgentName: 'Steve', + Date: chance.date() + }, + { + Id: 8, + ticketTitle: 'Consequuntur magni dolores eos qui ratione', + ticketDescription: + 'ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos', + Status: 'Closed', + Label: 'error', + thumb: user7, + AgentName: 'John', + Date: chance.date() + } +]; + +mock.onGet('/api/data/tickets/TicketData').reply(() => { + return [200, TicketData]; +}); +export default TicketData; diff --git a/_mockApis/apps/userprofile/followers.ts b/_mockApis/apps/userprofile/followers.ts new file mode 100755 index 0000000..00f1e15 --- /dev/null +++ b/_mockApis/apps/userprofile/followers.ts @@ -0,0 +1,171 @@ +// project imports +import mock from '../../mockAdapter'; +import user1 from '@/assets/images/profile/user-1.jpg'; +import user8 from '@/assets/images/profile/user-2.jpg'; +import user3 from '@/assets/images/profile/user-3.jpg'; +import user4 from '@/assets/images/profile/user-4.jpg'; +import user5 from '@/assets/images/profile/user-5.jpg'; +import user6 from '@/assets/images/profile/user-6.jpg'; +import user7 from '@/assets/images/profile/user-7.jpg'; +import user11 from '@/assets/images/profile/user-3.jpg'; +import user12 from '@/assets/images/profile/user-4.jpg'; +import user9 from '@/assets/images/profile/user-5.jpg'; +import user10 from '@/assets/images/profile/user-2.jpg'; + +// types +export type KeyedObject = { + [key: string]: string | number | KeyedObject | any; +}; + +// followers list + +const followers: KeyedObject[] = [ + { + id: '#1Followers_Barney', + avatar: user6, + name: 'Barney', + location: 'Handburgh', + follow: 1 + }, + { + id: '#2Followers_Thea', + avatar: user3, + name: 'Thea', + location: 'New jana', + follow: 2 + }, + { + id: '#3Followers_Guiseppe', + avatar: user7, + name: 'Guiseppe', + location: 'Jenkinsstad', + follow: 1 + }, + { + id: '#4Followers_Henderson', + avatar: user8, + name: 'Henderson', + location: 'South Antonina', + follow: 1 + }, + { + id: '#5Followers_Maddison', + avatar: user6, + name: 'Maddison', + location: 'New Dorthy', + follow: 1 + }, + { + id: '#6Followers_Wilber', + avatar: user1, + name: 'Wilber', + location: 'Twilahsven', + follow: 1 + }, + { + id: '#7Followers_Hayden', + avatar: user4, + name: 'Hayden', + location: 'Darrelshaire', + follow: 1 + }, + { + id: '#8Followers_Lloyd', + avatar: user10, + name: 'Lloyd', + location: 'New Credrick', + follow: 1 + }, + { + id: '#9Followers_Kris', + avatar: user8, + name: 'Kris', + location: 'New Dianna', + follow: 1 + }, + { + id: '#10Followers_Kyler', + avatar: user11, + name: 'Kyler', + location: 'Murraymouth', + follow: 1 + }, + { + id: '#11Followers_Pamela', + avatar: user3, + name: 'Pamela', + location: 'Murraymouth', + follow: 1 + }, + { + id: '#12Followers_Betty', + avatar: user6, + name: 'John Doe', + location: 'North Zole', + follow: 1 + }, + { + id: '#13Followers_Anthony', + avatar: user5, + name: 'Anthony', + location: 'Lake Judy', + follow: 1 + }, + { + id: '#14Followers_Reggie', + avatar: user12, + name: 'Reggie', + location: 'Kailynland', + follow: 1 + }, + { + id: '#15Followers_Francesca', + avatar: user1, + name: 'Francesca', + location: 'Pagacview', + follow: 2 + }, + { + id: '#16Followers_Carmel', + avatar: user9, + name: 'Carmel', + location: 'Port Lerashire', + follow: 1 + }, + { + id: '#17Followers_Darwin', + avatar: user4, + name: 'Darwin', + location: 'North Jacquesside', + follow: 2 + }, + { + id: '#18Followers_Kaylin', + avatar: user3, + name: 'Kaylin', + location: 'Bergstrombury', + follow: 1 + }, + { + id: '#19Followers_Kamryn', + avatar: user7, + name: 'Kamryn', + location: 'South Norma', + follow: 1 + }, + { + id: '#20Followers_Madelyn', + avatar: user8, + name: 'Madelyn', + location: 'Port Opheliamouth', + follow: 1 + } +]; + +// ==============================|| MOCK SERVICES ||============================== // + +mock.onGet('/api/followers/list').reply(200, { followers }); + +// mock.onGet('/api/followers/list').reply(() => { +// return [200, followers]; +// }); diff --git a/_mockApis/apps/userprofile/friends.ts b/_mockApis/apps/userprofile/friends.ts new file mode 100755 index 0000000..50fbf5e --- /dev/null +++ b/_mockApis/apps/userprofile/friends.ts @@ -0,0 +1,192 @@ +// project imports +import mock from '../../mockAdapter'; +import { Chance } from 'chance'; + + +import user1 from '@/assets/images/profile/user-10.jpg'; +import user2 from '@/assets/images/profile/user-2.jpg'; +import user8 from '@/assets/images/profile/user-6.jpg'; +import user3 from '@/assets/images/profile/user-3.jpg'; +import user4 from '@/assets/images/profile/user-4.jpg'; +import user5 from '@/assets/images/profile/user-5.jpg'; +import user6 from '@/assets/images/profile/user-6.jpg'; +import user7 from '@/assets/images/profile/user-7.jpg'; +import user11 from '@/assets/images/profile/user-3.jpg'; +import user12 from '@/assets/images/profile/user-4.jpg'; +import user9 from '@/assets/images/profile/user-5.jpg'; +import user10 from '@/assets/images/profile/user-2.jpg'; + +const chance = new Chance(); + +// types +export type KeyedObject = { + [key: string]: string | number | KeyedObject | any; +}; + +// friends list +const friends: KeyedObject[] = [ + { + id: '#1Friends_Barney', + avatar: user1, + name: chance.name(), + location: chance.country({ full: true }), + role: chance.profession(), + mutual: 10 + }, + { + id: '#2Friends_Thea', + avatar: user2, + name: chance.name(), + location: chance.country({ full: true }), + role: chance.profession(), + mutual: 89 + }, + { + id: '#3Friends_Guiseppe', + avatar: user3, + name: chance.name(), + location: chance.country({ full: true }), + role: chance.profession(), + mutual: 65 + }, + { + id: '#4Friends_Henderson', + avatar: user4, + name: chance.name(), + location: chance.country({ full: true }), + role: chance.profession(), + mutual: 1 + }, + { + id: '#5Friends_Maddison', + avatar: user5, + name: chance.name(), + location: chance.country({ full: true }), + role: chance.profession(), + mutual: 14 + }, + { + id: '#6Friends_Wilber', + avatar: user6, + name: chance.name(), + location: chance.country({ full: true }), + role: chance.profession(), + mutual: 36 + }, + { + id: '#7Friends_Hayden', + avatar: user7, + name: chance.name(), + location: chance.country({ full: true }), + role: chance.profession(), + mutual: 106 + }, + { + id: '#8Friends_Lloyd', + avatar: user8, + name: chance.name(), + location: chance.country({ full: true }), + role: chance.profession(), + mutual: 10 + }, + { + id: '#9Friends_Kris', + avatar: user9, + name: chance.name(), + location: chance.country({ full: true }), + role: chance.profession(), + mutual: 0 + }, + { + id: '#10Friends_Kyler', + avatar: user10, + name: chance.name(), + location: chance.country({ full: true }), + role: chance.profession(), + mutual: 48 + }, + { + id: '#11Friends_Pamela', + avatar: user11, + name: chance.name(), + location: chance.country({ full: true }), + role: chance.profession(), + mutual: 72 + }, + { + id: '#12Friends_Betty', + avatar: user12, + name: chance.name(), + location: chance.country({ full: true }), + role: chance.profession(), + mutual: 99 + }, + { + id: '#13Friends_Anthony', + avatar: user1, + name: chance.name(), + location: chance.country({ full: true }), + role: chance.profession(), + mutual: 78 + }, + { + id: '#14Friends_Reggie', + avatar: user3, + name: chance.name(), + location: chance.country({ full: true }), + role: chance.profession(), + mutual: 1 + }, + { + id: '#15Friends_Francesca', + avatar: user4, + name: chance.name(), + location: chance.country({ full: true }), + role: chance.profession(), + mutual: 68 + }, + { + id: '#16Friends_Carmel', + avatar: user5, + name: chance.name(), + location: chance.country({ full: true }), + role: chance.profession(), + mutual: 15 + }, + { + id: '#17Friends_Darwin', + avatar: user6, + name: chance.name(), + location: chance.country({ full: true }), + role: chance.profession(), + mutual: 10 + }, + { + id: '#18Friends_Kaylin', + avatar: user7, + name: chance.name(), + location: chance.country({ full: true }), + role: chance.profession(), + mutual: 36 + }, + { + id: '#19Friends_Kamryn', + avatar: user8, + name: chance.name(), + location: chance.country({ full: true }), + role: chance.profession(), + mutual: 55 + }, + { + id: '#20Friends_Madelyn', + avatar: user9, + name: chance.name(), + location: chance.country({ full: true }), + role: chance.profession(), + mutual: 78 + } +]; + +// ==============================|| MOCK SERVICES ||============================== // + +mock.onGet('/api/friends/list').reply(200, { friends }); diff --git a/_mockApis/apps/userprofile/gallery.ts b/_mockApis/apps/userprofile/gallery.ts new file mode 100755 index 0000000..e4c27d4 --- /dev/null +++ b/_mockApis/apps/userprofile/gallery.ts @@ -0,0 +1,101 @@ +// project imports +import mock from '../../mockAdapter'; +// assets +import image1 from '@/assets/images/products/s1.jpg'; +import image2 from '@/assets/images/products/s2.jpg'; +import image3 from '@/assets/images/products/s3.jpg'; +import image4 from '@/assets/images/products/s4.jpg'; +import image5 from '@/assets/images/products/s5.jpg'; +import image6 from '@/assets/images/products/s6.jpg'; +import image7 from '@/assets/images/products/s7.jpg'; +import image8 from '@/assets/images/products/s8.jpg'; +import image9 from '@/assets/images/products/s9.jpg'; +import image10 from '@/assets/images/products/s10.jpg'; +import image11 from '@/assets/images/products/s11.jpg'; +import image12 from '@/assets/images/products/s12.jpg'; + +// types +export type KeyedObject = { + [key: string]: string | number | KeyedObject | any; +}; + +// gallery components + +const gallery: KeyedObject[] = [ + { + id: '#1Gallery', + image: image1, + title: '1080p_table_denar.pdf', + dateTime: 'Tue Aug 24 2021' + }, + { + id: '#2Gallery', + image: image2, + title: 'handmade.mp2', + dateTime: 'Fri Apr 30 2021' + }, + { + id: '#3Gallery', + image: image3, + title: 'granite_cheese.wav', + dateTime: 'Fri Jun 25 2021' + }, + { + id: '#4Gallery', + image: image4, + title: 'invoice.mpg', + dateTime: 'Sat Oct 23 2021' + }, + { + id: '#5Gallery', + image: image5, + title: 'benchmark_forge.m1v', + dateTime: 'Fri Jan 21 2022' + }, + { + id: '#6Gallery', + image: image6, + title: 'violet_withdrawal.png', + dateTime: 'Wed Sep 22 2021' + }, + { + id: '#7Gallery', + image: image7, + title: 'web_readiness.mpeg', + dateTime: 'Mon Jul 12 2021' + }, + { + id: '#8Gallery', + image: image8, + title: 'zimbabwe.htm', + dateTime: 'Sat Mar 20 2021' + }, + { + id: '#9Gallery', + image: image9, + title: 'circuit.m3a', + dateTime: 'Tue Jan 18 2022' + }, + { + id: '#10Gallery', + image: image10, + title: 'data_red.png', + dateTime: 'Sun Apr 04 2021' + }, + { + id: '#11Gallery', + image: image11, + title: 'handcrafted.html', + dateTime: 'Tue May 25 2021' + }, + { + id: '#12Gallery', + image: image12, + title: 'hacking_games.pdf', + dateTime: 'Tue Oct 19 2021' + } +]; + +// ==============================|| MOCK SERVICES ||============================== // + +mock.onGet('/api/gallery/list').reply(200, { gallery }); diff --git a/_mockApis/apps/userprofile/photos.ts b/_mockApis/apps/userprofile/photos.ts new file mode 100755 index 0000000..65eab49 --- /dev/null +++ b/_mockApis/apps/userprofile/photos.ts @@ -0,0 +1,77 @@ +// project imports +import mock from '../../mockAdapter'; +// assets +import image1 from '@/assets/images/products/s1.jpg'; +import image2 from '@/assets/images/products/s2.jpg'; +import image3 from '@/assets/images/products/s3.jpg'; +import image4 from '@/assets/images/products/s4.jpg'; +import image5 from '@/assets/images/products/s5.jpg'; +import image6 from '@/assets/images/products/s6.jpg'; +import image7 from '@/assets/images/products/s7.jpg'; +import image8 from '@/assets/images/products/s8.jpg'; +import image9 from '@/assets/images/products/s9.jpg'; +import image10 from '@/assets/images/products/s10.jpg'; +import image11 from '@/assets/images/products/s11.jpg'; +import image12 from '@/assets/images/products/s12.jpg'; + +// types +export type KeyedObject = { + [key: string]: string | number | KeyedObject | any; +}; + +// Photos components + +const photos: KeyedObject[] = [ + { + id: '#1Photos', + avatar: image1, + }, + { + id: '#2Photos', + avatar: image2, + }, + { + id: '#3Photos', + avatar: image3, + }, + { + id: '#4Photos', + avatar: image4, + }, + { + id: '#5Photos', + avatar: image5, + }, + { + id: '#6Photos', + avatar: image6, + }, + { + id: '#7Photos', + avatar: image7, + }, + { + id: '#8Photos', + avatar: image8, + }, + { + id: '#9Photos', + avatar: image9, + }, + { + id: '#10Photos', + avatar: image10, + }, + { + id: '#11Photos', + avatar: image11, + }, + { + id: '#12Photos', + avatar: image12, + }, +]; + +// ==============================|| MOCK SERVICES ||============================== // + +mock.onGet('/api/photos').reply(200, { photos }); diff --git a/_mockApis/apps/userprofile/posts.ts b/_mockApis/apps/userprofile/posts.ts new file mode 100755 index 0000000..d232699 --- /dev/null +++ b/_mockApis/apps/userprofile/posts.ts @@ -0,0 +1,305 @@ +// project imports +import mock from '../../mockAdapter'; +import { Chance } from 'chance'; + +// types +import type { Post } from '@/types/apps/PostType'; + +// assets +import image1 from '@/assets/images/products/s1.jpg'; +import image2 from '@/assets/images/products/s2.jpg'; +import image4 from '@/assets/images/products/s4.jpg'; +import user1 from '@/assets/images/profile/user-1.jpg'; +import user2 from '@/assets/images/profile/user-2.jpg'; +import user3 from '@/assets/images/profile/user-3.jpg'; +import user4 from '@/assets/images/profile/user-4.jpg'; +import user5 from '@/assets/images/profile/user-5.jpg'; + +const chance = new Chance(); + +// social profile +let posts: Post[] = [ + { + id: '#1POST_MATHEW', + profile: { + id: '#52MATHEW', + avatar: user1, + name: 'David McMichael', + time: '15 min ago' + }, + data: { + content: chance.paragraph({ sentences: 2 }), + images: [ + { + img: image1, + featured: true + } + ], + likes: { + like: true, + value: 102 + }, + comments: [ + { + id: '#3COMMENTMATHEWE', + profile: { + id: '#52MATHEW', + avatar: user3, + name: 'Deran Mac', + time: '8 mins ago ' + }, + data: { + comment: chance.paragraph({ sentences: 1 }), + likes: { + like: true, + value: 55 + } + } + }, + { + id: '#2COMMENT_MATHEW', + profile: { + id: '#52MATHEW', + avatar: user4, + name: 'Jonathan Bg', + time: '5 mins ago ' + }, + data: { + comment: + chance.paragraph({ sentences: 1 }), + likes: { + like: false, + value: 68 + }, + replies: [ + { + id: '#1REPLY_MATHEW', + profile: { + id: '#52MATHEW', + avatar: user5, + name: 'Carry minati', + time: 'just now ' + }, + data: { + comment: chance.paragraph({ sentences: 1 }), + likes: { + like: true, + value: 10 + } + } + } + ] + } + } + ] + } + }, + { + id: '#4POST_CARRY', + profile: { + id: '#52CARRY', + avatar: user1, + name: 'Carry Minati', + time: 'now' + }, + data: { + content: chance.paragraph({ sentences: 2 }), + images: [], + likes: { + like: false, + value: 67 + }, + comments: [] + } + }, + { + id: '#2POST_GENELIA', + profile: { + id: '#52GENELIA', + avatar: user2, + name: 'Genelia Desouza', + time: '15 min ago ' + }, + data: { + content: chance.paragraph({ sentences: 1 }), + images: [ + { + img: image2, + title: 'Image Title' + }, + { + img: image4, + title: 'Painter' + } + ], + likes: { + like: false, + value: 320 + }, + comments: [ + { + id: '#2COMMENT_GENELIA', + profile: { + id: '#52GENELIA', + avatar: user3, + name: 'Ritesh Deshmukh', + time: '15 min ago ' + }, + data: { + comment: + chance.paragraph({ sentences: 1 }), + likes: { + like: true, + value: 65 + }, + replies: [] + } + } + ] + } + }, + { + id: '#3POST_Mathew', + profile: { + id: '#52Mathew', + avatar: user1, + name: 'David McMichael', + time: '15 min ago ' + }, + data: { + content: chance.paragraph({ sentences: 1 }), + images: [], + video: 'd1-FRj20WBE', + likes: { + like: true, + value: 130 + } + } + } +]; + +// ==============================|| MOCK SERVICES ||============================== // + +//mock.onGet('/api/posts/list').reply(200, { posts }); +mock.onGet('/api/posts/list').reply(() => { + return [200, posts]; +}); + +mock.onPost('/api/posts/editComment').reply((config) => { + try { + const { key, id } = JSON.parse(config.data); + + posts = posts.filter((post, index) => { + if (post.id === key) { + const cComments = post.data.comments || []; + post.data.comments = [id, ...cComments]; + return post; + } + return post; + }); + + return [200, { posts }]; + } catch (err) { + console.error(err); + return [500, { message: 'Internal server error' }]; + } +}); + +mock.onPost('/api/comments/add').reply((config) => { + try { + const { postId, comment } = JSON.parse(config.data); + + const postIndex = posts.findIndex((x) => x.id === postId); + const post = posts[postIndex]; + const cComments = post.data.comments || []; + post.data.comments = [comment, ...cComments]; + + return [200, { posts: [...posts] }]; + } catch (err) { + console.error(err); + return [500, { message: 'Internal server error' }]; + } +}); + +mock.onPost('/api/replies/add').reply((config) => { + try { + const { postId, commentId, reply } = JSON.parse(config.data); + const postIndex = posts.findIndex((x: any) => x.id === postId); + const post = posts[postIndex]; + const cComments = post.data.comments || []; + const commentIndex = cComments.findIndex((x: any) => x.id === commentId); + const comment = cComments[commentIndex]; + /** comment.data.replies has to be defined */ + if (comment && comment.data && comment.data.replies) comment.data.replies = [...comment.data.replies, reply]; + return [200, { posts: [...posts] }]; + } catch (err) { + console.error(err); + return [500, { message: 'Internal server error' }]; + } +}); + +mock.onPost('/api/posts/list/like').reply((config) => { + try { + const { postId } = JSON.parse(config.data); + const postIndex = posts.findIndex((x: any) => x.id === postId); + + const post = { ...posts[postIndex] }; + post.data = { ...post.data }; + + post.data.likes = { ...post.data.likes }; + post.data.likes.like = !post.data.likes.like; + post.data.likes.value = post.data.likes.like ? post.data.likes.value + 1 : post.data.likes.value - 1; + posts[postIndex] = post; + return [200, { posts: [...posts] }]; + } catch (err) { + console.error(err); + return [500, { message: 'Internal server error' }]; + } +}); + +mock.onPost('/api/comments/list/like').reply((config) => { + try { + const { postId, commentId } = JSON.parse(config.data); + const postIndex = posts.findIndex((x: any) => x.id === postId); + const post = posts[postIndex]; + const cComments = post.data.comments || []; + const commentIndex = cComments.findIndex((x: any) => x.id === commentId); + const comment = { ...cComments[commentIndex] }; + /** comment.data.likes has to be defined */ + if (comment && comment.data && comment.data.likes) comment.data.likes.like = !comment.data.likes.like; + if (comment && comment.data && comment.data.likes) + comment.data.likes.value = comment.data.likes.like ? comment.data.likes.value + 1 : comment.data.likes.value - 1; + if (post && post.data && post.data.comments) post.data.comments[commentIndex] = comment; + return [200, { posts: [...posts] }]; + } catch (err) { + console.error(err); + return [500, { message: 'Internal server error' }]; + } +}); + +mock.onPost('/api/replies/list/like').reply((config) => { + try { + const { postId, commentId, replayId } = JSON.parse(config.data); + const postIndex = posts.findIndex((x: any) => x.id === postId); + const post = posts[postIndex]; + const cComments = post.data.comments || []; + const commentIndex = cComments.findIndex((x: any) => x.id === commentId); + const comment = { ...cComments[commentIndex] }; + const replayIndex = comment?.data?.replies?.findIndex((x: any) => x.id === replayId); + if (replayIndex !== undefined) { + if (comment && comment.data && comment.data.replies) { + const reply = { ...comment.data.replies[replayIndex] }; + if (reply && reply.data && reply.data.likes) { + reply.data.likes.like = !reply.data.likes.like; + reply.data.likes.value = reply.data.likes.like ? reply.data.likes.value + 1 : reply.data.likes.value - 1; + } + comment.data.replies[replayIndex] = reply; + if (post && post.data && post.data.comments) post.data.comments[commentIndex] = comment; + } + } + return [200, { posts: [...posts] }]; + } catch (err) { + console.error(err); + return [500, { message: 'Internal server error' }]; + } +}); diff --git a/_mockApis/components/dashboard/dashboard1.ts b/_mockApis/components/dashboard/dashboard1.ts new file mode 100755 index 0000000..94c3db4 --- /dev/null +++ b/_mockApis/components/dashboard/dashboard1.ts @@ -0,0 +1,73 @@ +import type { RevenueProjects,Performance } from '@/types/components/dashboard/dashboard1'; + +import product1 from "@/assets/images/products/dash-prd-1.jpg"; +import product2 from "@/assets/images/products/dash-prd-2.jpg"; +import product3 from "@/assets/images/products/dash-prd-3.jpg"; +import product4 from "@/assets/images/products/dash-prd-4.jpg"; + + +/*--Revenue Projects --*/ +const RevenueProjectsData: RevenueProjects[] = [ + { + img: product1, + leadname: "Minecraf App", + designation: "Jason Roy", + projectname: "73.2%", + statuscolor: "warning", + statustext: "Medium", + money: "$3.5K", + }, + { + img: product2, + leadname: "Web App Project", + designation: "Mathew Flintoff", + projectname: "73.2%", + statuscolor: "secondary", + statustext: "Very High", + money: "$24.5K", + }, + { + img: product3, + leadname: "Modernize Dashboard", + designation: "Anil Kumar", + projectname: "73.2%", + statuscolor: "success", + statustext: "Low", + money: "$12.8K", + }, + { + img: product4, + leadname: "Dashboard Co", + designation: "George Cruize", + projectname: "73.2%", + statuscolor: "error", + statustext: "High", + money: "$2.4K", + }, +]; + +/*--Performance--*/ +const PerformanceData: Performance[] = [ + { + icon: 'shop-2-linear', + title: '64 new orders', + subtitle: 'Processing', + color:'primary', + }, + { + icon: 'filters-outline', + title: '4 orders', + subtitle: 'On hold', + color:'error', + }, + { + icon: 'pills-3-linear', + title: '6 orders', + subtitle: 'Delivered', + color:'secondary', + }, + +]; + + +export {RevenueProjectsData,PerformanceData} \ No newline at end of file diff --git a/_mockApis/components/dashboard/dashboard2.ts b/_mockApis/components/dashboard/dashboard2.ts new file mode 100755 index 0000000..28d623f --- /dev/null +++ b/_mockApis/components/dashboard/dashboard2.ts @@ -0,0 +1,147 @@ +import type { RevenueForecast, AnnualProfit, SalesFromLocation,DailyActivities,userCard } from '@/types/components/dashboard/dashboard2'; + +import user1 from "@/assets/images/profile/user-2.jpg"; +import user2 from "@/assets/images/profile/user-3.jpg"; +import user3 from "@/assets/images/profile/user-4.jpg"; +import user4 from "@/assets/images/profile/user-6.jpg"; + +const RevenueForecastData: RevenueForecast[] = [ + { + icon: 'pie-chart-2-linear', + subtext: 'Total', + profit: '$96,640', + bgcolor:'bg-grey100', + color:'text-textPrimary', + }, + { + icon: 'dollar-minimalistic-linear', + subtext: 'Profit', + profit: '$48,820', + bgcolor:'bg-lightprimary', + color:'text-primary', + }, + { + icon: 'database-linear', + subtext: 'Earnings', + profit: '$58,820', + bgcolor:'bg-lighterror', + color:'text-error', + } +]; + +const AnnualProfitData: AnnualProfit[] = [ + { + title: 'Added to Cart', + subtitle: '5 clicks', + price: '$21,120.70', + percent:'+13.2%', + color:'success', + }, + { + title: 'Reached to Checkout', + subtitle: '12 clicks', + price: '$16,100.00', + percent:'-7.4%', + color:'error', + }, + { + title: 'Added to Cart', + subtitle: '24 views', + price: '$6,400.50', + percent:'+9.3%', + color:'success', + } + +]; + +const SalesFromLocationData: SalesFromLocation[] = [ + { + name: 'LA', + percentage:'28%', + color:'primary', + }, + { + name: 'NY', + percentage:'21%', + color:'secondary', + }, + { + name: 'KA', + percentage:'18%', + color:'warning', + }, + { + name: 'AZ', + percentage:'12%', + color:'error', + }, + +]; + +/*--Recent Transaction--*/ +const DailyActivitiesData : DailyActivities[] = [ + { + title:'09:30 am', + subtitle:'Payment received from John Doe of $385.90', + textcolor:'primary', + boldtext:false, + line:true, + link:'', + url:'' + }, + { + title:'10:00 am', + subtitle:'New sale recorded', + textcolor:'warning', + boldtext:true, + line:true, + link:'#ML-3467', + url:'' + }, + { + title:'12:00 am', + subtitle:'Payment was made of $64.95 to Michael', + textcolor:'warning', + boldtext:false, + line:true, + link:'', + url:'' + }, + { + title:'09:30 am', + subtitle:'New sale recorded', + textcolor:'secondary', + boldtext:true, + line:true, + link:'#ML-3467', + url:'' + }, + { + title:'09:30 am', + subtitle:'New arrival recorded', + textcolor:'error', + boldtext:true, + line:true, + link:'#ML-3467', + url:'' + }, + { + title:'12:00 am', + subtitle:'Payment Done', + textcolor:'primary', + boldtext:false, + line:false, + link:'', + url:'' + }, +] + +/*--Blog Cards--*/ +const userCardData: userCard[] = [ + { img: user4 }, + { img: user3 }, + { img: user2 }, + { img: user1 }, +]; + +export { RevenueForecastData,AnnualProfitData,SalesFromLocationData ,DailyActivitiesData,userCardData}; diff --git a/_mockApis/components/dashboard/dashboard3.ts b/_mockApis/components/dashboard/dashboard3.ts new file mode 100755 index 0000000..af0863a --- /dev/null +++ b/_mockApis/components/dashboard/dashboard3.ts @@ -0,0 +1,52 @@ +import type { Iconcard } from '@/types/components/dashboard/dashboard3'; + +/*--Revenue Projects --*/ +const IconcardData: Iconcard[] = [ + { + bg: 'primary-gradient', + icon: 'solar:dollar-minimalistic-linear', + color:'primary', + title:'Total Orders', + price:'16,689', + link:'#', + }, + { + bg: 'warning-gradient', + icon: 'solar:recive-twice-square-linear', + color:'warning', + title:'Return Item', + price:'148', + link:'#', + + }, + { + bg: 'secondary-gradient', + icon: 'ic:outline-backpack', + color:'secondary', + title:'Annual Budget', + price:'$156K', + link:'#', + + }, + { + bg: 'error-gradient', + icon: 'ic:baseline-sync-problem', + color:'error', + title:'Cancel Orders', + price:'64', + link:'#', + + }, + { + bg: 'success-gradient', + icon: 'ic:outline-forest', + color:'success', + title:'Total Income ', + price:'$36,715', + link:'#', + + }, + +]; + +export {IconcardData} \ No newline at end of file diff --git a/_mockApis/components/datatable/dataTable.ts b/_mockApis/components/datatable/dataTable.ts new file mode 100755 index 0000000..ebe5c4e --- /dev/null +++ b/_mockApis/components/datatable/dataTable.ts @@ -0,0 +1,363 @@ + +import type { Datatables,SelectedRowDatatable,filtrable } from '@/types/components/datatables/index'; + +import img1 from '@/assets/images/blog/blog-img1.jpg'; +import img2 from '@/assets/images/blog/blog-img2.jpg'; +import img3 from '@/assets/images/blog/blog-img3.jpg'; +import img4 from '@/assets/images/blog/blog-img4.jpg'; +import img5 from '@/assets/images/blog/blog-img5.jpg'; + +const BasicDatatables: Datatables[] = [ + { + name: 'Sunil Joshi', + post: 'Web Designer', + project: 'Elite Admin', + status: 'Active', + budget: '$3.9' + }, + { + name: 'Andrew McDownland', + post: 'Project Manager', + project: 'Real Homes WP Template', + status: 'Pending', + budget: '$24.5k', + + }, + { + name: 'Christopher Jamil', + post: 'Project Manager', + project: 'MedicalPro WP Template', + status: 'Completed', + budget: '$12.8k' + }, + { + name: 'Nirav Joshi', + post: 'Frontend Engineer', + project: 'Hosting Press HTML', + status: 'Active', + budget: '$2.4k' + }, + { + name: 'Micheal Doe', + post: 'Content Writer', + project: 'Helping Hands WP Template', + status: 'Cancel', + budget: '$9.3k' + }, + { + name: 'Daniel Kristeen', + post: 'Project Manager', + project: 'Real Homes WP Template', + status: 'Pending', + budget: '$24.5k', + + }, + { + name: 'Julian Josephs', + post: 'Project Manager', + project: 'MedicalPro WP Template', + status: 'Completed', + budget: '$12.8k' + }, + { + name: 'Jan Petrovic', + post: 'Web Designer', + project: 'Elite Admin', + status: 'Active', + budget: '$3.9' + }, + { + name: 'Leanne Graham', + post: 'Project Manager', + project: 'Real Homes WP Template', + status: 'Pending', + budget: '$24.5k', + + }, + { + name: 'Glenna Reichert', + post: 'Web DEveloper', + project: 'Monster Admin', + status: 'Pending', + budget: '$30.5k', + }, + +]; + +const SelectedRow: SelectedRowDatatable[] = [ + { + name: 'Sunil Joshi', + post: 'Web Designer', + project: 'Elite Admin', + status: 'Active', + budget: '$3.9', + selectable: false, + }, + { + name: 'Andrew McDownland', + post: 'Project Manager', + project: 'Real Homes WP Template', + status: 'Pending', + budget: '$24.5k', + selectable: true, + }, + { + name: 'Christopher Jamil', + post: 'Project Manager', + project: 'MedicalPro WP Template', + status: 'Completed', + budget: '$12.8k', + selectable: true, + }, + { + name: 'Nirav Joshi', + post: 'Frontend Engineer', + project: 'Hosting Press HTML', + status: 'Active', + budget: '$2.4k', + selectable: false, + }, + { + name: 'Micheal Doe', + post: 'Content Writer', + project: 'Helping Hands WP Template', + status: 'Cancel', + budget: '$9.3k', + selectable: false, + }, + { + name: 'Jan Petrovic', + post: 'Project Manager', + project: 'Real Homes WP Template', + status: 'Pending', + budget: '$24.5k', + selectable: true, + }, + { + name: 'Daniel Kristeen', + post: 'Project Manager', + project: 'MedicalPro WP Template', + status: 'Completed', + budget: '$12.8k', + selectable: false, + }, + { + name: 'Julian Josephs', + post: 'Web Designer', + project: 'Elite Admin', + status: 'Active', + budget: '$3.9', + selectable: true + }, + { + name: 'Leanne Graham', + post: 'Project Manager', + project: 'Real Homes WP Template', + status: 'Pending', + budget: '$24.5k', + selectable: false, + }, + { + name: 'Glenna Reichert', + post: 'Web DEveloper', + project: 'Monster Admin', + status: 'Pending', + budget: '$30.5k', + selectable: true, + }, + +]; + +const UppercaseFilter: Datatables[] = [ + { + name: 'Sunil Joshi', + post: 'Web Designer', + project: 'Elite Admin', + status: 'Active', + budget: '$3.9', + + }, + { + name: 'Andrew McDownland', + post: 'Project Manager', + project: 'Real Homes WP Template', + status: 'Pending', + budget: '$24.5k', + }, + { + name: 'Christopher Jamil', + post: 'Project Manager', + project: 'MedicalPro WP Template', + status: 'Completed', + budget: '$12.8k', + }, + { + name: 'Nirav Joshi', + post: 'Frontend Engineer', + project: 'Hosting Press HTML', + status: 'Active', + budget: '$2.4k', + }, + { + name: 'MICHEL DOE', + post: 'Content Writer', + project: 'Helping Hands WP Template', + status: 'Cancel', + budget: '$9.3k', + }, + { + name: 'JAN PETROVICK', + post: 'Project Manager', + project: 'Real Homes WP Template', + status: 'Pending', + budget: '$24.5k', + }, + { + name: 'Daniel Kristeen', + post: 'Project Manager', + project: 'MedicalPro WP Template', + status: 'Completed', + budget: '$12.8k', + }, + { + name: 'Julian Josephs', + post: 'Web Designer', + project: 'Elite Admin', + status: 'Active', + budget: '$3.9', + }, + { + name: 'Leanne Graham', + post: 'Project Manager', + project: 'Real Homes WP Template', + status: 'Pending', + budget: '$24.5k', + }, + { + name: 'Glenna Reichert', + post: 'Web DEveloper', + project: 'Monster Admin', + status: 'Pending', + budget: '$30.5k', + }, + + +]; + +const GroupTable: Datatables[] = [ + { + name: 'Sunil Joshi', + post: 'Web Designer', + project: 'Elite Admin', + status: 'Active', + budget: '$3.9', + + }, + { + name: 'Andrew McDownland', + post: 'Project Manager', + project: 'Real Homes WP Template', + status: 'Pending', + budget: '$24.5k', + }, + { + name: 'Christopher Jamil', + post: 'Project Manager', + project: 'MedicalPro WP Template', + status: 'Completed', + budget: '$12.8k', + }, + { + name: 'Nirav Joshi', + post: 'Frontend Engineer', + project: 'Hosting Press HTML', + status: 'Active', + budget: '$2.4k', + }, + { + name: 'MICHEL DOE', + post: 'Content Writer', + project: 'Helping Hands WP Template', + status: 'Cancel', + budget: '$9.3k', + }, + { + name: 'JAN PETROVICK', + post: 'Project Manager', + project: 'Real Homes WP Template', + status: 'Pending', + budget: '$24.5k', + }, + { + name: 'Daniel Kristeen', + post: 'Project Manager', + project: 'MedicalPro WP Template', + status: 'Completed', + budget: '$12.8k', + }, + { + name: 'Julian Josephs', + post: 'Web Designer', + project: 'Elite Admin', + status: 'Active', + budget: '$3.9', + }, + { + name: 'Leanne Graham', + post: 'Project Manager', + project: 'Real Homes WP Template', + status: 'Pending', + budget: '$24.5k', + }, + { + name: 'Glenna Reichert', + post: 'Web DEveloper', + project: 'Monster Admin', + status: 'Pending', + budget: '$30.5k', + }, + +]; + +const Filtrable: filtrable[] = [ + { + name: 'Nebula GTX 3080', + image: img1, + price: 699.99, + rating: 5, + stock: true, + }, + { + name: 'Galaxy RTX 3080', + image: img2, + price: 799.99, + rating: 4, + stock: false, + }, + { + name: 'Orion RX 6800 XT', + image: img3, + price: 649.99, + rating: 3, + stock: true, + }, + { + name: 'Vortex RTX 3090', + image: img4, + price: 1499.99, + rating: 4, + stock: true, + }, + { + name: 'Cosmos GTX 1660 Super', + image: img5, + price: 299.99, + rating: 4, + stock: false, + }, + +]; + + + +export {BasicDatatables,SelectedRow,UppercaseFilter,GroupTable,Filtrable}; diff --git a/_mockApis/components/pages/accountNotification.ts b/_mockApis/components/pages/accountNotification.ts new file mode 100755 index 0000000..138fbae --- /dev/null +++ b/_mockApis/components/pages/accountNotification.ts @@ -0,0 +1,37 @@ +/*import tabler icons*/ +import { ArticleIcon, CheckboxIcon, ClockIcon, MailIcon, TruckDeliveryIcon } from 'vue-tabler-icons'; +import type { notificationTabType } from '@/types/components/pages/notificationTab'; +const notificationTb: notificationTabType[] = [ + { + title: 'Our newsletter', + subtitle: 'We will always let you know about important changes', + icon: ArticleIcon, + switch: false + }, + { + title: 'Order Confirmation', + subtitle: 'You will be notified when customer order any product', + icon: CheckboxIcon, + switch: true + }, + { + title: 'Order Status Changed', + subtitle: 'You will be notified when customer make changes to the order', + icon: ClockIcon, + switch: false + }, + { + title: 'Order Delivered', + subtitle: 'You will be notified once the order is delivered', + icon: TruckDeliveryIcon, + switch: false + }, + { + title: 'Email Notification', + subtitle: 'Turn on email notificaiton to get updates through email', + icon: MailIcon, + switch: true + } +]; + +export {notificationTb}; diff --git a/_mockApis/components/pages/auth.ts b/_mockApis/components/pages/auth.ts new file mode 100755 index 0000000..f8dd34c --- /dev/null +++ b/_mockApis/components/pages/auth.ts @@ -0,0 +1,17 @@ +import type { AuthCurosel } from "@/types/components/auth/login"; +const AuthCuroselData: AuthCurosel[] = [ + { + title:'Feature Rich 1D Charts', + subtitle:'Donec justo tortor, malesuada vitae faucibus ac, tristique sit amet massa. Aliquam dignissim nec felis quis imperdiet.' + }, + { + title:'Feature Rich 2D Charts', + subtitle:'Donec justo tortor, malesuada vitae faucibus ac, tristique sit amet massa. Aliquam dignissim nec felis quis imperdiet.' + }, + { + title:'Feature Rich 3D Charts', + subtitle:'Donec justo tortor, malesuada vitae faucibus ac, tristique sit amet massa. Aliquam dignissim nec felis quis imperdiet.' + } +]; + +export { AuthCuroselData } \ No newline at end of file diff --git a/_mockApis/components/pages/faqData.ts b/_mockApis/components/pages/faqData.ts new file mode 100755 index 0000000..e2ed198 --- /dev/null +++ b/_mockApis/components/pages/faqData.ts @@ -0,0 +1,21 @@ +import type { faqPageType } from '@/types/components/pages/faqData'; +const faqPage: faqPageType[] = [ + { + question: 'What is an Admin Dashboard?', + answer: 'Admin Dashboard is the backend interface of a website or an application that helps to manage the website s overall content and settings. It is widely used by the site owners to keep track of their website, make changes to their content, and more.' + }, + { + question: 'What should an admin dashboard template include?', + answer: 'Admin dashboard template should include user & SEO friendly design with a variety of components and application designs to help create your own web application with ease. This could include customization options, technical support and about 6 months of future updates.' + }, + { + question: 'Why should I buy admin templates from AdminMart?', + answer: 'Adminmart offers high-quality templates that are easy to use and fully customizable. With over 101,801 happy customers & trusted by 10,000+ Companies. AdminMart is recognized as the leading online source for buying admin templates.' + }, + { + question: 'Do Adminmart offers a money back guarantee?', + answer: 'There is no money back guarantee in most companies, but if you are unhappy with our product, Adminmart gives you a 100% money back guarantee.' + } +]; + +export { faqPage}; diff --git a/_mockApis/components/pages/pricingData.ts b/_mockApis/components/pages/pricingData.ts new file mode 100755 index 0000000..329f81f --- /dev/null +++ b/_mockApis/components/pages/pricingData.ts @@ -0,0 +1,134 @@ +/*import tabler icons*/ +import { CheckIcon, XIcon, } from 'vue-tabler-icons'; +import type { pricingType } from '@/types/components/pages/pricingData'; +/*-- Pricing Page --*/ +import img1 from '@/assets/images/backgrounds/silver.png'; +import img2 from '@/assets/images/backgrounds/bronze.png'; +import img3 from '@/assets/images/backgrounds/gold.png'; +const pricing: pricingType[] = [ + { + tagtext: false, + caption: 'Silver', + image: img1, + free: true, + price: 10.99, + yearlyprice: 10.99 * 12, + buttontext: 'Choose Silver', + list: [ + { + icon: CheckIcon, + iconcolor: 'primary', + listtitle: '3 Members', + status:false, + }, + { + icon: CheckIcon, + iconcolor: 'primary', + listtitle: 'Single Device', + status:false, + }, + { + icon: XIcon, + iconcolor: 'inputBorder', + listtitle: '50GB Storage', + status:true, + }, + { + icon: XIcon, + iconcolor: 'inputBorder', + listtitle: 'Monthly Backups', + status:true, + }, + { + icon: XIcon, + iconcolor: 'inputBorder', + listtitle: 'Permissions & workflows', + status:true, + } + ] + }, + { + tagtext: true, + caption: 'bronze', + image: img2, + free: false, + price: 10.99, + yearlyprice: 10.99 * 12, + buttontext: 'Choose Bronze', + list: [ + { + icon: CheckIcon, + iconcolor: 'primary', + listtitle: '5 Members', + status:false, + }, + { + icon: CheckIcon, + iconcolor: 'primary', + listtitle: 'Multiple Device', + status:false, + }, + { + icon: CheckIcon, + iconcolor: 'primary', + listtitle: '80GB Storage', + status:false, + }, + { + icon: XIcon, + iconcolor: 'inputBorder', + listtitle: 'Monthly Backups', + status:true, + }, + { + icon: XIcon, + iconcolor: 'inputBorder', + listtitle: 'Permissions & workflows', + status:true, + } + ] + }, + { + tagtext: false, + caption: 'gold', + image: img3, + free: false, + price: 22.99, + yearlyprice: 22.99 * 12, + buttontext: 'Choose Gold', + list: [ + { + icon: CheckIcon, + iconcolor: 'primary', + listtitle: '15 Members', + status:false, + }, + { + icon: CheckIcon, + iconcolor: 'primary', + listtitle: 'Multiple Device', + status:false, + }, + { + icon: CheckIcon, + iconcolor: 'primary', + listtitle: '150GB Storage', + status:false, + }, + { + icon: CheckIcon, + iconcolor: 'primary', + listtitle: 'Monthly Backups', + status:false, + }, + { + icon: CheckIcon, + iconcolor: 'primary', + listtitle: 'Permissions & workflows', + status:false, + } + ] + } + +]; +export { pricing}; \ No newline at end of file diff --git a/_mockApis/components/pages/searchLinks.ts b/_mockApis/components/pages/searchLinks.ts new file mode 100755 index 0000000..58d43c0 --- /dev/null +++ b/_mockApis/components/pages/searchLinks.ts @@ -0,0 +1,42 @@ +import type { SearchLinkType } from '@/types/components/pages/searchLinks'; +const SearchLinkData: SearchLinkType[] = [ + { + title: 'AngularJs', + linktitle: 'http://www.google.com/angularjs', + subtitle:'Lorem Ipsum viveremus probamus opus apeirian haec perveniri, memoriter.Praebeat pecunias viveremus probamus opus apeirian haec perveniri, memoriter.', + url:'/' + }, + { + title: 'AngularJs — Superheroic JavaScript MVW Framework', + linktitle: 'http://www.google.com/angularjs', + subtitle:'Lorem Ipsum viveremus probamus opus apeirian haec perveniri, memoriter.Praebeat pecunias viveremus probamus opus apeirian haec perveniri, memoriter.', + url:'/' + }, + { + title: 'AngularJS Tutorial - W3Schools', + linktitle: 'http://www.google.com/angularjs', + subtitle:'Lorem Ipsum viveremus probamus opus apeirian haec perveniri, memoriter.Praebeat pecunias viveremus probamus opus apeirian haec perveniri, memoriter.', + url:'/' + }, + { + title: 'Introduction to AngularJS - W3Schools', + linktitle: 'http://www.google.com/angularjs', + subtitle:'Lorem Ipsum viveremus probamus opus apeirian haec perveniri, memoriter.Praebeat pecunias viveremus probamus opus apeirian haec perveniri, memoriter.', + url:'/' + }, + { + title: 'AngularJS Tutorial', + linktitle: 'http://www.google.com/angularjs', + subtitle:'Lorem Ipsum viveremus probamus opus apeirian haec perveniri, memoriter.Praebeat pecunias viveremus probamus opus apeirian haec perveniri, memoriter.', + url:'/' + }, + { + title: 'Angular 2: One framework', + linktitle: 'http://www.google.com/angularjs', + subtitle:'Lorem Ipsum viveremus probamus opus apeirian haec perveniri, memoriter.Praebeat pecunias viveremus probamus opus apeirian haec perveniri, memoriter.', + url:'/' + }, + +]; + +export { SearchLinkData}; diff --git a/_mockApis/components/table/basicTables.ts b/_mockApis/components/table/basicTables.ts new file mode 100755 index 0000000..532a1ec --- /dev/null +++ b/_mockApis/components/table/basicTables.ts @@ -0,0 +1,963 @@ + +import type { basicTable1, basicTable2, basicTable3, basicTable4, basicTable5, tableDark, tableDensity, tableFixedHeader, heightTable, tableAction } from '@/types/components/table/index'; +/*import tabler icons*/ +import { PlusIcon, EditIcon, TrashIcon, CheckIcon, XIcon, ArrowBackUpIcon } from 'vue-tabler-icons'; +import img1 from '@/assets/images/profile/user-11.jpg'; +import img2 from '@/assets/images/profile/user-8.jpg'; +import img3 from '@/assets/images/profile/user-3.jpg'; +import img4 from '@/assets/images/profile/user-4.jpg'; +import img5 from '@/assets/images/profile/user-5.jpg'; +import img6 from '@/assets/images/profile/user-6.jpg'; +import img7 from '@/assets/images/profile/user-7.jpg'; +import img8 from '@/assets/images/profile/user-10.jpg'; +import img9 from '@/assets/images/profile/user-15.jpg'; +import authimg1 from '@/assets/images/blog/blog-img1.jpg'; +import authimg2 from '@/assets/images/blog/blog-img2.jpg'; +import authimg3 from '@/assets/images/blog/blog-img3.jpg'; +import authimg4 from '@/assets/images/blog/blog-img4.jpg'; +import authimg5 from '@/assets/images/blog/blog-img5.jpg'; + +/*Basic Table 1*/ +const basicTableData1: basicTable1[] = [ + { + avatar: img1, + name: 'Sunil Joshi', + post: 'Web Designer', + pname: 'Elite Admin', + status: 'Active', + statuscolor: 'success', + teams: [ + { + id: '1', + color: 'error', + text: 'S' + }, + { + id: '2', + color: 'secondary ', + text: 'D' + } + ], + budget: '$3.9' + }, + { + avatar: img2, + name: 'Andrew McDownland', + post: 'Project Manager', + pname: 'Real Homes WP Template', + status: 'Pending', + statuscolor: 'warning', + teams: [ + { + id: '1', + color: 'secondary', + text: 'N' + }, + { + id: '2', + color: 'warning ', + text: 'X' + }, + { + id: '3', + color: 'primary ', + text: 'A' + } + ], + budget: '$24.5k' + }, + { + avatar: img3, + name: 'Christopher Jamil', + post: 'Project Manager', + pname: 'MedicalPro WP Template', + status: 'Completed', + statuscolor: 'primary', + teams: [ + { + id: '1', + color: 'secondary', + text: 'X' + } + ], + budget: '$12.8k' + }, + { + avatar: img7, + name: 'Nirav Joshi', + post: 'Frontend Engineer', + pname: 'Hosting Press HTML', + status: 'Active', + statuscolor: 'success', + teams: [ + { + id: '1', + color: 'primary', + text: 'X' + }, + { + id: '2', + color: 'error', + text: 'Y' + } + ], + budget: '$2.4k' + }, + { + avatar: img5, + name: 'Micheal Doe', + post: 'Content Writer', + pname: 'Helping Hands WP Template', + status: 'Cancel', + statuscolor: 'error', + teams: [ + { + id: '1', + color: 'secondary', + text: 'S' + } + ], + budget: '$9.3k' + } +]; + +/*Basic Table 2*/ +const basicTableData2: basicTable2[] = [ + { + avatar: img4, + name: 'Olivia Rhye', + post: 'Xtreme admin', + status: 'active', + statuscolor: 'primary', + users: [ + { + id: '1', + icon: img2 + }, + { + id: '2', + icon: img1 + } + ] + }, + { + avatar: img8, + name: 'Barbara Steele', + post: 'Adminpro admin', + status: 'cancel', + statuscolor: 'error', + users: [ + { + id: '1', + icon: img3 + }, + { + id: '2', + icon: img2 + }, + { + id: '3', + icon: img1 + } + ] + }, + { + avatar: img3, + name: 'Leonard Gordon', + post: 'Monster admin', + status: 'active', + statuscolor: 'primary', + users: [ + { + id: '1', + icon: img2 + }, + { + id: '2', + icon: img3 + } + ] + }, + { + avatar: img4, + name: 'Evelyn Pope', + post: 'Materialpro admin', + status: 'pending', + statuscolor: 'success', + users: [ + { + id: '1', + icon: img3 + }, + { + id: '2', + icon: img2 + }, + { + id: '3', + icon: img1 + } + ] + }, + { + avatar: img5, + name: 'Tommy Garza', + post: 'Elegant admin', + status: 'cancel', + statuscolor: 'error', + users: [ + { + id: '1', + icon: img6 + }, + { + id: '2', + icon: img5 + } + ] + }, + { + avatar: img9, + name: 'Isabel Vasquez', + post: 'Modernize admin', + status: 'pending', + statuscolor: 'success', + users: [ + { + id: '1', + icon: img4 + }, + { + id: '2', + icon: img2 + } + ] + } +]; + +/*Basic Table 3*/ +const basicTableData3: basicTable3[] = [ + { + avatar: img4, + name: 'Olivia Rhye', + handle: '@rhye', + status: 'active', + statuscolor: 'success', + statusoffline:false, + email: 'olivia@ui.com', + teams: [ + { + status: 'Design', + statuscolor: 'primary' + }, + { + status: 'Product', + statuscolor: 'secondary' + } + ] + }, + { + avatar: img9, + name: 'Barbara Steele', + handle: '@steele', + status: 'offline', + statusoffline:true, + statuscolor: 'dark', + email: 'steele@ui.com', + teams: [ + { + status: 'Product', + statuscolor: 'secondary' + }, + { + status: 'Operations', + statuscolor: 'error' + } + ] + }, + { + avatar: img3, + name: 'Leonard Gordon', + handle: '@gordon', + status: 'active', + statusoffline:false, + statuscolor: 'success', + email: 'olivia@ui.com', + teams: [ + { + status: 'Finance', + statuscolor: 'primary' + }, + { + status: 'Customer Success', + statuscolor: 'success' + } + ] + }, + { + avatar: img4, + name: 'Evelyn Pope', + handle: '@pope', + status: 'offline', + statusoffline:true, + statuscolor: 'dark', + email: 'steele@ui.com', + teams: [ + { + status: 'Operations', + statuscolor: 'error' + }, + { + status: 'Design', + statuscolor: 'primary' + } + ] + }, + { + avatar: img5, + name: 'Tommy Garza', + handle: '@garza', + status: 'active', + statusoffline:false, + statuscolor: 'success', + email: 'olivia@ui.com', + teams: [ + { + status: 'Product', + statuscolor: 'secondary' + } + ] + }, + { + avatar: img9, + name: 'Isabel Vasquez', + handle: '@vasquez', + status: 'active', + statusoffline:false, + statuscolor: 'success', + email: 'steele@ui.com', + teams: [ + { + status: 'Customer Success', + statuscolor: 'success' + } + ] + } +]; + +/*Basic Table 4*/ +const basicTableData4: basicTable4[] = [ + { + invoice: 'INV-3066', + status: 'paid', + statuscolor: 'primary', + statusicon: CheckIcon, + avatar: img8, + name: 'Olivia Rhye', + handle: 'olivia@ui.com', + progress: 60 + }, + { + invoice: 'INV-3067', + status: 'cancelled', + statuscolor: 'error', + statusicon: XIcon, + avatar: img4, + name: 'Barbara Steele', + handle: 'steele@ui.com', + progress: 30 + }, + { + invoice: 'INV-3068', + status: 'paid', + statuscolor: 'primary', + statusicon: CheckIcon, + avatar: img3, + name: 'Leonard Gordon', + handle: 'olivia@ui.com', + progress: 45 + }, + { + invoice: 'INV-3069', + status: 'refunded', + statuscolor: 'secondary', + statusicon: ArrowBackUpIcon, + avatar: img4, + name: 'Evelyn Pope', + handle: 'steele@ui.com', + progress: 37 + }, + { + invoice: 'INV-3070', + status: 'cancelled', + statuscolor: 'error', + statusicon: XIcon, + avatar: img5, + name: 'Tommy Garza', + handle: 'olivia@ui.com', + progress: 87 + }, + { + invoice: 'INV-3071', + status: 'refunded', + statuscolor: 'secondary', + statusicon: ArrowBackUpIcon, + avatar: img9, + name: 'Isabel Vasquez', + handle: 'steele@ui.com', + progress: 32 + } +]; + +/*Basic Table 5*/ +const basicTableData5: basicTable5[] = [ + { + avatar: authimg1, + name: 'Top Authors', + handle: 'Successful Fellas', + users: '4300 Users', + courses: [ + { + status: 'Angular', + statuscolor: 'error' + }, + { + status: 'PHP', + statuscolor: 'primary' + } + ] + }, + { + avatar: authimg2, + name: 'Popular Authors', + handle: 'Most Successful', + users: '1200 Users', + courses: [ + { + status: 'Bootstrap', + statuscolor: 'primary' + } + ] + }, + { + avatar: authimg3, + name: 'New Users', + handle: 'Awesome Users', + users: '2000 Users', + courses: [ + { + status: 'Reactjs', + statuscolor: 'success' + }, + { + status: 'Angular', + statuscolor: 'error' + } + ] + }, + { + avatar: authimg4, + name: 'Active Customers', + handle: 'Best Customers', + users: '1500 Users', + courses: [ + { + status: 'Bootstrap', + statuscolor: 'primary' + } + ] + }, + { + avatar: authimg5, + name: 'Bestseller Template', + handle: 'Amazing Templates', + users: '9500 Users', + courses: [ + { + status: 'Angular', + statuscolor: 'error' + }, + { + status: 'Reactjs', + statuscolor: 'success' + } + ] + } + +]; + + +/*Dark Table*/ +const darkTableData: tableDark[] = [ + { + avatar: img6, + name: 'Andrew McDownland', + post: 'Project Manager', + pname: 'Real Homes WP Template', + status: 'Pending', + statuscolor: 'warning', + teams: [ + { + id: '1', + color: 'secondary', + text: 'N' + }, + { + id: '2', + color: 'warning ', + text: 'X' + }, + { + id: '3', + color: 'primary ', + text: 'A' + } + ], + budget: '$24.5k' + }, + { + avatar: img5, + name: 'Christopher Jamil', + post: 'Project Manager', + pname: 'MedicalPro WP Template', + status: 'Completed', + statuscolor: 'primary', + teams: [ + { + id: '1', + color: 'secondary', + text: 'X' + } + ], + budget: '$12.8k' + }, + { + avatar: img3, + name: 'Nirav Joshi', + post: 'Frontend Engineer', + pname: 'Hosting Press HTML', + status: 'Active', + statuscolor: 'success', + teams: [ + { + id: '1', + color: 'primary', + text: 'X' + }, + { + id: '2', + color: 'error', + text: 'Y' + } + ], + budget: '$2.4k' + }, + { + avatar: img6, + name: 'Sunil Joshi', + post: 'Web Designer', + pname: 'Elite Admin', + status: 'Active', + statuscolor: 'success', + teams: [ + { + id: '1', + color: 'error', + text: 'S' + }, + { + id: '2', + color: 'secondary ', + text: 'D' + } + ], + budget: '$3.9' + }, + { + avatar: img2, + name: 'Micheal Doe', + post: 'Content Writer', + pname: 'Helping Hands WP Template', + status: 'Cancel', + statuscolor: 'error', + teams: [ + { + id: '1', + color: 'secondary', + text: 'S' + } + ], + budget: '$9.3k' + }, + { + avatar: img1, + name: 'John Deo', + post: 'Web Designer', + pname: 'Elite Admin', + status: 'Active', + statuscolor: 'success', + teams: [ + { + id: '1', + color: 'primary', + text: 'R' + }, + { + id: '2', + color: 'secondary ', + text: 'D' + } + ], + budget: '$3.9' + } +]; + +/*Density Table*/ +const tableDensityData: tableDensity[] = [ + { + avatar: img4, + name: 'Isabel Vasquez', + post: 'Modernize admin', + status: 'pending', + statuscolor: 'success', + users: [ + { + id: '1', + icon: img6 + }, + { + id: '2', + icon: img1 + } + ] + }, + { + avatar: img1, + name: 'Olivian Rhye', + post: 'Xtreme admin', + status: 'active', + statuscolor: 'primary', + users: [ + { + id: '1', + icon: img2 + }, + { + id: '2', + icon: img1 + } + ] + }, + { + avatar: img3, + name: 'Leonard Gordon', + post: 'Monster admin', + status: 'active', + statuscolor: 'primary', + users: [ + { + id: '1', + icon: img2 + }, + { + id: '2', + icon: img3 + } + ] + }, + { + avatar: img4, + name: 'Evelyn Pope', + post: 'Materialpro admin', + status: 'pending', + statuscolor: 'success', + users: [ + { + id: '1', + icon: img3 + }, + { + id: '2', + icon: img2 + }, + { + id: '3', + icon: img1 + } + ] + }, + { + avatar: img2, + name: 'Barko Steele', + post: 'Adminpro admin', + status: 'cancel', + statuscolor: 'error', + users: [ + { + id: '1', + icon: img3 + }, + { + id: '2', + icon: img2 + }, + { + id: '3', + icon: img1 + } + ] + }, + + { + avatar: img5, + name: 'Tommy Garza', + post: 'Elegant admin', + status: 'cancel', + statuscolor: 'error', + users: [ + { + id: '1', + icon: img6 + }, + { + id: '2', + icon: img5 + } + ] + } +]; + +/*Fixed Header Table*/ +const tableFixedHeaderData: tableFixedHeader[] = [ + { + avatar: img2, + name: 'Barko Steele', + handle: '@steele', + status: 'offline', + statusoffline:true, + statuscolor: 'dark', + email: 'steele@ui.com', + teams: [ + { + status: 'Product', + statuscolor: 'success' + }, + { + status: 'Operations', + statuscolor: 'error' + } + ] + }, + { + avatar: img3, + name: 'Leonard Gordon', + handle: '@gordon', + status: 'active', + statusoffline:false, + statuscolor: 'success', + email: 'olivia@ui.com', + teams: [ + { + status: 'Finance', + statuscolor: 'info' + }, + { + status: 'Customer Success', + statuscolor: 'success' + } + ] + }, + { + avatar: img1, + name: 'Olivian Rhye', + handle: '@rhye', + status: 'active', + statusoffline:false, + statuscolor: 'success', + email: 'olivia@ui.com', + teams: [ + { + status: 'Design', + statuscolor: 'info' + }, + { + status: 'Product', + statuscolor: 'primary' + }, + { + status: 'Material', + statuscolor: 'success' + }, + { + status: 'Account', + statuscolor: 'info' + } + ] + }, + + { + avatar: img4, + name: 'Evelyn Pope', + handle: '@pope', + status: 'offline', + statusoffline:true, + statuscolor: 'dark', + email: 'steele@ui.com', + teams: [ + { + status: 'Operations', + statuscolor: 'error' + }, + { + status: 'Design', + statuscolor: 'info' + } + ] + }, + { + avatar: img5, + name: 'Tommy Garza', + handle: '@garza', + status: 'active', + statusoffline:false, + statuscolor: 'success', + email: 'olivia@ui.com', + teams: [ + { + status: 'Product', + statuscolor: 'warning' + } + ] + }, + { + avatar: img6, + name: 'Imak Vasquez', + handle: '@vasquez', + status: 'active', + statusoffline:false, + statuscolor: 'success', + email: 'steele@ui.com', + teams: [ + { + status: 'Customer Success', + statuscolor: 'success' + } + ] + } +]; + +/*Height Table*/ +const heightTableData: heightTable[] = [ + { + avatar: authimg3, + name: 'New Users', + handle: 'Awesome Users', + users: '2000 Users', + email: 'mark@ui.com', + courses: [ + { + status: 'Reactjs', + statuscolor: 'success' + }, + { + status: 'Angular', + statuscolor: 'error' + } + ] + }, + { + avatar: authimg4, + name: 'Active Customers', + handle: 'Best Customers', + users: '1500 Users', + email: 'deo@ui.com', + courses: [ + { + status: 'Bootstrap', + statuscolor: 'primary' + } + ] + }, + { + avatar: authimg1, + name: 'Top Authors', + handle: 'Successful Fellas', + users: '4300 Users', + email: 'olivia@ui.com', + courses: [ + { + status: 'Angular', + statuscolor: 'error' + }, + { + status: 'PHP', + statuscolor: 'primary' + } + ] + }, + { + avatar: authimg2, + name: 'Popular Authors', + handle: 'Most Successful', + users: '1200 Users', + email: 'john@doe.com', + courses: [ + { + status: 'Bootstrap', + statuscolor: 'primary' + } + ] + }, + { + avatar: authimg5, + name: 'Bestseller Template', + handle: 'Amazing Templates', + users: '9500 Users', + email: 'steele@ui.com', + courses: [ + { + status: 'Angular', + statuscolor: 'error' + }, + { + status: 'Reactjs', + statuscolor: 'success' + } + ] + }, + { + avatar: authimg1, + name: 'New Authors', + handle: 'Successful Fellas', + users: '4800 Users', + email: 'olivia@ui.com', + courses: [ + { + status: 'Angular', + statuscolor: 'error' + }, + { + status: 'Java', + statuscolor: 'info' + } + ] + } +] + + +/*Table Action*/ +const tableActionData: tableAction[] = [ + { + icon: PlusIcon, + listtitle: 'Add' + }, + { + icon: EditIcon, + listtitle: 'Edit' + }, + { + icon: TrashIcon, + listtitle: 'Delete' + } +] +export { basicTableData1, basicTableData2, basicTableData3, basicTableData4, basicTableData5, darkTableData, tableDensityData, tableFixedHeaderData, heightTableData, tableActionData }; diff --git a/_mockApis/components/widget/card.ts b/_mockApis/components/widget/card.ts new file mode 100755 index 0000000..8bca5fe --- /dev/null +++ b/_mockApis/components/widget/card.ts @@ -0,0 +1,335 @@ +import type { cardsType, followCard, musicCards, productsCards, socialiconCards, profileCard, upcommingLists, userCard,paymentGateway } from '@/types/components/widget/card'; +/*import tabler icons*/ +import { + BrandFacebookIcon, + BrandGithubIcon, + BrandInstagramIcon, + BrandTwitterIcon, + MapPinIcon, + DatabaseIcon, + PhoneIcon, + ScreenShareIcon, + MailIcon +} from 'vue-tabler-icons'; + +import user1 from '@/assets/images/profile/user-6.jpg'; +import user2 from '@/assets/images/profile/user-2.jpg'; +import user3 from '@/assets/images/profile/user-3.jpg'; +import user4 from '@/assets/images/profile/user-4.jpg'; +import img1 from '@/assets/images/blog/blog-img1.jpg'; +import img2 from '@/assets/images/blog/blog-img2.jpg'; +import img3 from '@/assets/images/blog/blog-img3.jpg'; +/*--Products Cards Images--*/ +import proimg1 from '@/assets/images/products/s4.jpg'; +import proimg2 from '@/assets/images/products/s5.jpg'; +import proimg3 from '@/assets/images/products/s4.jpg'; +import proimg4 from '@/assets/images/products/s11.jpg'; + +// Payment Gatewatys +import icon1 from "@/assets/images/svgs/icon-paypal.svg"; +import icon2 from "@/assets/images/svgs/icon-office-bag.svg"; +import icon3 from "@/assets/images/svgs/icon-master-card.svg"; +import icon4 from "@/assets/images/svgs/icon-pie.svg"; + +/*--Blog Cards--*/ +const blogCard: cardsType[] = [ + { + avatar: user1, + coveravatar: img1, + read: '2 min Read', + title: 'As yen tumbles, gadget-loving Japan goes for secondhand iPhones', + link: '/', + category: 'Social', + name: 'Georgeanna Ramero', + view: '9,125', + comments: '3', + time: 'Mon, Dec 19' + }, + { + avatar: user2, + coveravatar: img2, + read: '2 min Read', + title: 'Intel loses bid to revive antitrust case against patent foe Fortress', + link: '/', + category: 'Gadget', + name: 'Georgeanna Ramero', + view: '4,150', + comments: '38', + time: 'Sun, Dec 18' + }, + { + avatar: user3, + coveravatar: img3, + read: '2 min Read', + title: 'COVID outbreak deepens as more lockdowns loom in China', + link: '/', + category: 'Health', + name: 'Georgeanna Ramero', + view: '9,480', + comments: '12', + time: 'Sat, Dec 17' + } +]; + +/*--Follow Cards--*/ +const followerCard: followCard[] = [ + { + title: 'Andrew Grant', + location: 'El Salvador', + avatar: user1 + }, + { + title: 'Leo Pratt', + location: 'Bulgaria', + avatar: user2 + }, + { + title: 'Charles Nunez', + location: 'Nepal', + avatar: user3 + } +]; + +/*--Music Cards--*/ +const musicCard: musicCards[] = [ + { + title: 'Uptown Funk', + subheader: 'Jon Bon Jovi', + img: img1 + }, + { + title: 'Blank Space', + subheader: 'Madonna', + img: img2 + }, + { + title: 'Lean On', + subheader: 'Jennifer Lopez', + img: img3 + } +]; + +/*--Products Cards--*/ +const productsCard: productsCards[] = [ + { + title: 'Boat Headphone', + link: '/', + photo: proimg1, + salesPrice: 375, + price: 285, + rating: 4 + }, + { + title: 'MacBook Air Pro', + link: '/', + photo: proimg2, + salesPrice: 650, + price: 900, + rating: 5 + }, + { + title: 'Red Valvet Dress', + link: '/', + photo: proimg3, + salesPrice: 150, + price: 200, + rating: 3 + }, + { + title: 'Cute Soft Teddybear', + link: '/', + photo: proimg4, + salesPrice: 285, + price: 345, + rating: 2 + } +]; + +/*--Social Cards--*/ +const socialiconCard: socialiconCards[] = [ + { + name: 'facebook', + icon: BrandFacebookIcon, + color: 'primary' + }, + { + name: 'instagram', + icon: BrandInstagramIcon, + color: 'error' + }, + { + name: 'github', + icon: BrandGithubIcon, + color: 'info' + }, + { + name: 'twitter', + icon: BrandTwitterIcon, + color: 'secondary' + } +]; + +/*--Profile Cards--*/ +const profileCards: profileCard[] = [ + { + title: 'Andrew Grant', + subtitle: 'Technology Director', + avatar: user1 + }, + { + title: 'Leo Pratt', + subtitle: 'Telecom Analyst', + avatar: user2 + }, + { + title: 'Charles Nunez', + subtitle: 'Environmental Specialist', + avatar: user3 + } +]; + +/*--Upcomming Activity Cards--*/ +const upcommingCards: upcommingLists[] = [ + { + icon: MapPinIcon, + title: 'Trip to singapore', + subtitle: 'working on', + rank: '5 mins', + bgcolor: 'primary' + }, + { + icon: DatabaseIcon, + title: 'Archived Data', + subtitle: 'working on', + rank: '10 mins', + bgcolor: 'secondary' + }, + { + icon: PhoneIcon, + title: 'Meeting with client', + subtitle: 'pending', + rank: '15 mins', + bgcolor: 'warning' + }, + { + icon: ScreenShareIcon, + title: 'Screening Task Team', + subtitle: 'working on', + rank: '20 mins', + bgcolor: 'error' + }, + { + icon: MailIcon, + title: 'Send envelope to John', + subtitle: 'done', + rank: '20 mins', + bgcolor: 'success' + } +]; + +/*--User Cards--*/ +const userCards: userCard[] = [ + { + title: 'Andrew Grant', + subtitle: '3 mutual friends', + avatar: user1, + userGroup: [ + { + icon: user1 + }, + { + icon: user2 + }, + { + icon: user3 + } + ], + }, + { + title: 'Leo Pratt', + subtitle: '3 mutual friends', + avatar: user2, + userGroup: [ + { + icon: user1 + }, + { + icon: user2 + }, + { + icon: user3 + } + ], + }, + { + title: 'Charles Nunez', + subtitle: '3 mutual friends', + avatar: user3, + userGroup: [ + { + icon: user1 + }, + { + icon: user2 + }, + { + icon: user3 + } + ], + }, + { + title: 'Lora Powers', + subtitle: '3 mutual friends', + avatar: user4, + userGroup: [ + { + icon: user1 + }, + { + icon: user2 + }, + { + icon: user3 + } + ], + }, +] + +/*--Payment gateways--*/ +const paymentGateways : paymentGateway[] = [ + { + img: icon1, + title:'Paypal', + subtitle:'Big Brands', + rank:'+$6,235', + disable:'', + bgcolor:"primary", + }, + { + img: icon2, + title:'Wallet', + subtitle:'Bill payment', + rank:'-$345', + disable:'emphasis', + bgcolor:"success", + }, + { + img: icon3, + title:'Credit Card', + subtitle:'Money reversed', + rank:'+$2,235', + disable:'', + bgcolor:"warning", + }, + { + img: icon4, + title:'Refund', + subtitle:'Bill Payment', + rank:'-$32', + disable:'emphasis', + bgcolor:"error", + }, +]; + + +export { blogCard, followerCard, musicCard, productsCard, socialiconCard, profileCards, upcommingCards, userCards,paymentGateways } \ No newline at end of file diff --git a/_mockApis/front-pages/PagesData.ts b/_mockApis/front-pages/PagesData.ts new file mode 100755 index 0000000..f9ffca8 --- /dev/null +++ b/_mockApis/front-pages/PagesData.ts @@ -0,0 +1,591 @@ +import type { LeaderType, TemplateType, ThemeFeatures, PackageType, FooterType, Feature } from '@/types/components/front-pages/index'; +import type { faqPageType } from '@/types/components/pages/faqData'; + +import review1 from '@/assets/images/profile/user-1.jpg'; +import review2 from '@/assets/images/profile/user-2.jpg'; +import review3 from '@/assets/images/profile/user-3.jpg'; + +const Features: Feature[] = [ + { + icon: 'tabler:chart-bubble', + title: 'Expert Advisor', + subtitle: 'Suspendisse vestibulum eu erat ac scelerisque.', + bgcolor: 'lighterror', + color: 'error' + }, + { + icon: 'tabler:building-store', + title: 'Effective Support', + subtitle: 'Suspendisse vestibulum eu erat ac scelerisque.', + bgcolor: 'lightprimary', + color: 'primary' + }, + { + icon: 'material-symbols:category-outline', + title: 'Low Fees', + subtitle: 'Suspendisse vestibulum eu erat ac scelerisque.', + bgcolor: 'lightsuccess', + color: 'success' + }, + { + icon: 'material-symbols:earthquake', + title: 'Loan Facility', + subtitle: 'Suspendisse vestibulum eu erat ac scelerisque.', + bgcolor: 'grey100', + color: 'dark ' + } +]; + +const AboutFeatures: Feature[] = [ + { + icon: 'tabler:building-store', + title: 'Effective Support', + subtitle: 'Suspendisse vestibulum eu erat ac scelerisque.', + bgcolor: 'lightprimary', + color: 'primary' + }, + { + icon: 'tabler:chart-bubble', + title: 'Expert Advisor', + subtitle: 'Suspendisse vestibulum eu erat ac scelerisque.', + bgcolor: 'lighterror', + color: 'error' + }, + { + icon: 'material-symbols:category-outline', + title: 'Low Fees', + subtitle: 'Suspendisse vestibulum eu erat ac scelerisque.', + bgcolor: 'lightsuccess', + color: 'success' + }, + { + icon: 'material-symbols:earthquake', + title: 'Loan Facility', + subtitle: 'Suspendisse vestibulum eu erat ac scelerisque.', + bgcolor: 'grey100', + color: 'dark ' + } +]; + +const QA1: faqPageType[] = [ + { + question: 'Combine teammate schedules', + answer: 'Factor in availability for required attendees, and skip checking for conflicts for optional attendees.' + }, + { + question: 'Factor in outside colleagues', + answer: 'Factor in availability for required attendees, and skip checking for conflicts for optional attendees.' + }, + { + question: 'Round robin pooling', + answer: 'Factor in availability for required attendees, and skip checking for conflicts for optional attendees.' + } +]; +const QA2: faqPageType[] = [ + { + question: 'Combine teammate schedules 2', + answer: 'Factor in availability for required attendees, and skip checking for conflicts for optional attendees.' + }, + { + question: 'Factor in outside colleagues', + answer: 'Factor in availability for required attendees, and skip checking for conflicts for optional attendees.' + }, + { + question: 'Round robin pooling', + answer: 'Factor in availability for required attendees, and skip checking for conflicts for optional attendees.' + } +]; +const QA3: faqPageType[] = [ + { + question: 'Combine teammate schedules 3', + answer: 'Factor in availability for required attendees, and skip checking for conflicts for optional attendees.' + }, + { + question: 'Factor in outside colleagues', + answer: 'Factor in availability for required attendees, and skip checking for conflicts for optional attendees.' + }, + { + question: 'Round robin pooling', + answer: 'Factor in availability for required attendees, and skip checking for conflicts for optional attendees.' + } +]; + +const QA4: faqPageType[] = [ + { + question: 'Combine teammate schedules 4', + answer: 'Factor in availability for required attendees, and skip checking for conflicts for optional attendees.' + }, + { + question: 'Factor in outside colleagues', + answer: 'Factor in availability for required attendees, and skip checking for conflicts for optional attendees.' + }, + { + question: 'Round robin pooling', + answer: 'Factor in availability for required attendees, and skip checking for conflicts for optional attendees.' + } +]; + +// OurLeaders +import leader1 from '@/assets/images/front-pages/leaders/leader1.png'; +import leader2 from '@/assets/images/front-pages/leaders/leader2.png'; +import leader3 from '@/assets/images/front-pages/leaders/leader3.png'; +import leader4 from '@/assets/images/front-pages/leaders/leader4.png'; +import leader5 from '@/assets/images/front-pages/leaders/leader4.png'; +import { + WandIcon, + ShieldLockIcon, + ArchiveIcon, + AdjustmentsIcon, + TagIcon, + DiamondIcon, + DatabaseIcon, + LanguageKatakanaIcon, + BuildingCarouselIcon, + ArrowsShuffleIcon, + ChartPieIcon, + LayersIntersectIcon, + RefreshIcon, + BookIcon, + CalendarIcon, + MessageIcon, + CircleCheckIcon, + CircleXIcon +} from 'vue-tabler-icons'; +import type { UserReviewTypes } from '@/types/landingpage/LandingpageTypes'; +const OurLeaders: LeaderType[] = [ + { + img: leader1, + name: 'Alex Martinez', + position: 'CEO & Co-Founder' + }, + { + img: leader2, + name: 'Jordan Nguyen', + position: 'CTO & Co-Founder' + }, + { + img: leader3, + name: 'Taylor Roberts', + position: 'Product Manager' + }, + { + img: leader4, + name: 'Morgan Patel', + position: 'Lead Developer' + } +]; + +const templateText: TemplateType[] = [ + { + title: 'High Customizability', + subtitle: + 'Tailor the dashboard to your exact needs. Customize layouts, color schemes, and widgets effortlessly for a personalized user experience.' + }, + { + title: 'Powerful Data Analytics', + subtitle: + ' Unlock the true potential of your data with our advanced analytics tools. Gain valuable insights and make data-driven decisions with ease.' + }, + { + title: 'Interactive Graphs & Charts', + subtitle: + 'Visualize complex data sets beautifully with our interactive graphs and charts. Quickly grasp trends and patterns for smarter analysis.' + } +]; + +const ThemeFeature1: ThemeFeatures[] = [ + { + icon: WandIcon, + title: '6 Theme Colors', + color: 'primary' + }, + { + icon: ShieldLockIcon, + title: 'Authguard', + color: 'secondary' + }, + { + icon: ArchiveIcon, + title: '65+ Page Templates', + color: 'error' + }, + { + icon: AdjustmentsIcon, + title: '45+ UI Components', + color: 'success' + }, + { + icon: TagIcon, + title: 'Vuetify', + color: 'info' + }, + { + icon: DiamondIcon, + title: '3400+ Font Icons', + color: 'warning' + } +]; +const ThemeFeature2: ThemeFeatures[] = [ + { + icon: DatabaseIcon, + title: 'Axios', + color: 'success' + }, + { + icon: LanguageKatakanaIcon, + title: 'i18n Vue', + color: 'error' + }, + { + icon: BuildingCarouselIcon, + title: 'Vue3 Carousel', + color: 'warning' + }, + { + icon: ArrowsShuffleIcon, + title: 'Easy to Customize', + color: 'primary' + } +]; +const ThemeFeature3: ThemeFeatures[] = [ + { + icon: ChartPieIcon, + title: 'Lots of Chart Options', + color: 'secondary' + }, + { + icon: LayersIntersectIcon, + title: 'Lots of Table Examples', + color: 'info' + }, + { + icon: RefreshIcon, + title: 'Regular Updates', + color: 'error' + }, + { + icon: BookIcon, + title: 'Detailed Documentation', + color: 'warning' + }, + { + icon: CalendarIcon, + title: 'Calendar Design', + color: 'success' + }, + { + icon: MessageIcon, + title: 'Dedicated Support', + color: 'info' + } +]; + +const Packages: PackageType[] = [ + { + tagtext: false, + caption: 'Single Use', + subtext: 'Use for single end product which end users can’t be charged for.', + price: 49, + period: 'one time pay', + buttontext: 'Purchase Now', + url: '/', + list: [ + { + listtitle: 'Full source code', + status: false, + icon: true, + disable: false + }, + { + listtitle: 'Documentation', + status: false, + icon: true, + disable: false + }, + { + listtitle: 'Use in SaaS app', + status: true, + icon: true, + disable: true + }, + { + listtitle: 'One Project', + status: true, + icon: false, + disable: false + }, + { + listtitle: 'One Year Technical Support', + status: true, + icon: false, + disable: false + } + ] + }, + + { + tagtext: false, + caption: 'Multiple Use', + subtext: 'Use for unlimited end products end users can’t be charged for.', + price: 89, + period: 'one time pay', + buttontext: 'Purchase Now', + url: '/', + list: [ + { + listtitle: 'Full source code', + status: false, + icon: true, + disable: false + }, + { + listtitle: 'Documentation', + status: false, + icon: true, + disable: false + }, + { + listtitle: 'Use in SaaS app', + status: true, + icon: true, + disable: true + }, + { + listtitle: 'Unlimited Project', + status: true, + icon: false, + disable: false + }, + { + listtitle: 'One Year Technical Support', + status: true, + icon: false, + disable: false + } + ] + }, + + { + tagtext: true, + caption: 'Extended Use', + subtext: 'Use for single end product which end users can be charged for.', + price: 299, + period: 'one time pay', + buttontext: 'Purchase Now', + url: '/', + list: [ + { + listtitle: 'Full source code', + status: false, + icon: true, + disable: false + }, + { + listtitle: 'Documentation', + status: false, + icon: true, + disable: false + }, + { + listtitle: 'Use in SaaS app', + status: false, + icon: true, + disable: false + }, + { + listtitle: 'One Project', + status: true, + icon: false, + disable: false + }, + { + listtitle: 'One Year Technical Support', + status: true, + icon: false, + disable: false + } + ] + }, + { + tagtext: false, + caption: 'Unlimited Use', + subtext: 'Use in unlimited end products end users can be charged for.', + price: 499, + period: 'one time pay', + buttontext: 'Purchase Now', + url: '/', + list: [ + { + listtitle: 'Full source code', + status: false, + icon: true, + disable: false + }, + { + listtitle: 'Documentation', + status: false, + icon: true, + disable: false + }, + { + listtitle: 'Use in SaaS app', + status: false, + icon: true, + disable: false + }, + { + listtitle: 'Unlimited Project', + status: true, + icon: false, + disable: false + }, + { + listtitle: 'One Year Technical Support', + status: true, + icon: false, + disable: false + } + ] + } +]; + +const FAQData: TemplateType[] = [ + { + title: 'What is included with my purchase?', + subtitle: + 'Tailor the dashboard to your exact needs. Customize layouts, color schemes, and widgets effortlessly for a personalized user experience.' + }, + { + title: 'Are there any recurring fees?', + subtitle: + ' Unlock the true potential of your data with our advanced analytics tools. Gain valuable insights and make data-driven decisions with ease.' + }, + { + title: 'Can I use the template on multiple projects?', + subtitle: + 'Visualize complex data sets beautifully with our interactive graphs and charts. Quickly grasp trends and patterns for smarter analysis.' + }, + { + title: 'Can I customize the admin dashboard template to match my brand?', + subtitle: + 'Visualize complex data sets beautifully with our interactive graphs and charts. Quickly grasp trends and patterns for smarter analysis.' + }, + { + title: 'Are there any restrictions on using the template?', + subtitle: + 'Visualize complex data sets beautifully with our interactive graphs and charts. Quickly grasp trends and patterns for smarter analysis.' + }, + { + title: 'How can I get support after purchase?', + subtitle: + 'Visualize complex data sets beautifully with our interactive graphs and charts. Quickly grasp trends and patterns for smarter analysis.' + } +]; + +// Footer Menu Links +const FooterMenu1: FooterType[] = [ + { + menu: 'Cards', + link: '/widgets/cards' + }, + { + menu: 'Pricing', + link: '/pages/pricing' + }, + { + menu: 'Account Settings', + link: '/pages/account-settings' + }, + { + menu: 'FAQ', + link: '/pages/faq' + }, + { + menu: 'Search Results', + link: '/pages/search-results' + } +]; +const FooterMenu2: FooterType[] = [ + { + menu: 'Treeview', + link: '/pages/treeview' + }, + { + menu: 'Banners', + link: '/widgets/banners' + }, + { + menu: 'Charts', + link: '/widgets/charts' + }, + { + menu: 'Gallery Lightbox', + link: '/pages/gallery-lightbox' + }, + { + menu: 'Social Contacts', + link: '/pages/social-media-contacts' + } +]; +const FooterMenu3: FooterType[] = [ + { + menu: 'Form Layout', + link: '/forms/form-layouts' + }, + { + menu: 'Tables', + link: '/tables/basic' + }, + { + menu: 'Stepper', + link: '/forms/form-elements/stepper' + }, + { + menu: 'Datatables', + link: '/tables/datatables/basic' + }, + { + menu: 'Validation', + link: '/forms/form-validation' + } +]; + +const userReviewFrront: UserReviewTypes[] = [ + { + img: review1, + title: 'Jenny Wilson', + subtitle: 'CEO & Head of Comp Inc.', + review: 'This template is great, UI-rich and up-to-date. Although it is pretty much complete, I suggest to improve a bit of documentation. Thanks & Highly recommended!' + }, + { + img: review2, + title: 'Josh Cui', + subtitle: 'CEO & Head of Comp Inc.', + review: 'This template is great, UI-rich and up-to-date. Although it is pretty much complete, I suggest to improve a bit of documentation. Thanks & Highly recommended!' + }, + { + img: review3, + title: 'Eminson Mendoza', + subtitle: 'CEO & Head of Comp Inc.', + review: 'This template is great, UI-rich and up-to-date. Although it is pretty much complete, I suggest to improve a bit of documentation. Thanks & Highly recommended!' + } +]; +export { + QA1, + QA2, + QA3, + QA4, + OurLeaders, + templateText, + ThemeFeature1, + ThemeFeature2, + ThemeFeature3, + Packages, + FAQData, + FooterMenu1, + FooterMenu2, + FooterMenu3, + Features, + userReviewFrront, + AboutFeatures +}; diff --git a/_mockApis/headerData.ts b/_mockApis/headerData.ts new file mode 100755 index 0000000..bfe9f77 --- /dev/null +++ b/_mockApis/headerData.ts @@ -0,0 +1,230 @@ +// project imports +import mock from './mockAdapter'; + +import type { notificationType, profileType, languageType, appsLinkType,searchType } from '~/types/HeaderTypes' +// +// Notification +// +const notifications:notificationType[] = [ + { + avatar: 'widget-3-line-duotone', + color:'error', + title: 'Launch Admin', + subtitle: 'Just see the my new admin!', + time:'9:30 AM' + }, + { + avatar: 'calendar-line-duotone', + color:'primary', + title: 'Event Today', + subtitle: 'Just a reminder that you have event', + time:'9:15 AM' + }, + { + avatar: 'settings-line-duotone', + color:'secondary', + title: 'Settings', + subtitle: 'You can customize this template as you want', + time:'4:36 PM' + }, + { + avatar: 'widget-4-line-duotone', + color:'warning', + title: 'Launch Admin', + subtitle: 'Just see the my new admin!', + time:'9:30 AM' + }, + { + avatar: 'calendar-line-duotone', + color:'primary', + title: 'Event Today', + subtitle: 'Just a reminder that you have event', + time:'9:15 AM' + }, + { + avatar: 'settings-line-duotone', + color:'secondary', + title: 'Settings', + subtitle: 'You can customize this template as you want', + time:'4:36 PM' + }, +]; + +// +// Profile +// +// const profileDD: profileType[] = [ +// { +// title: 'My Profile', +// href: '/apps/user/profile', +// badge:false +// }, +// { +// title: 'My Subscription', +// href: '/pages/pricing', +// badge:false +// }, +// { +// title: 'My Notes', +// href: '/apps/notes', +// badge:true +// }, +// { +// title: 'Account Settings', +// href: '/pages/account-settings', +// badge:false +// }, +// { +// title: 'Sign Out', +// href: '/auth/login2', +// badge:false +// }, + +// ]; + +import proUser1 from '~/assets/images/svgs/icon-account.svg'; +import proUser2 from '~/assets/images/svgs/icon-inbox.svg'; +import proUser3 from '~/assets/images/svgs/icon-tasks.svg'; +const profileDD: profileType[] = [ + { + avatar: proUser1, + title: 'My Profile', + subtitle: 'Account settings', + href: '' + }, + { + avatar: proUser2, + title: 'My Notes', + subtitle: 'My Daily Notes', + href: '' + }, + { + avatar: proUser3, + title: 'My Tasks', + subtitle: 'To-do and Daily tasks', + href: '' + } +]; + +// +// Language +// +import flag1 from '~/assets/images/flag/icon-flag-en.svg'; +import flag2 from '~/assets/images/flag/icon-flag-fr.svg'; +import flag3 from '~/assets/images/flag/icon-flag-ro.svg'; +import flag4 from '~/assets/images/flag/icon-flag-zh.svg'; +const languageDD: languageType[] = [ + { title: 'English', subtext: 'UK', value: 'en', avatar: flag1 }, + { title: 'français', subtext: 'French', value: 'fr', avatar: flag2 }, + { title: 'عربي', subtext: 'Arbic', value: 'ro', avatar: flag3 }, + { title: '中国人', subtext: 'Chinese', value: 'zh', avatar: flag4 } +]; + +// +// AppsLink +// +const appsLink: appsLinkType[] = [ + { + avatar: 'chat-line-bold-duotone', + color:'primary', + title: 'Chat Application', + subtext: 'New messages arrived', + href: '/apps/chats' + }, + { + avatar: 'user-bold-duotone', + color:'success', + title: 'User Profile App', + subtext: 'Get profile details', + href: '/apps/user/profile' + }, + { + avatar: 'bill-list-bold-duotone', + color:'secondary', + title: 'eCommerce App', + subtext: 'learn more information', + href: '/ecommerce/products' + }, + + { + avatar: 'calendar-minimalistic-bold-duotone', + color:'primary', + title: 'Calendar App', + subtext: 'Get dates', + href: '/apps/calendar' + }, + { + avatar: 'phone-calling-rounded-bold-duotone', + color:'warning', + title: 'Contact Application', + subtext: '2 Unsaved Contacts', + href: '/apps/contacts' + }, + { + avatar: 'settings-bold-duotone', + color:'info', + title: 'Account Setting App', + subtext: 'Account settings', + href: '/pages/account-settings' + }, + { + avatar: 'checklist-minimalistic-bold', + color:'error', + title: 'Kanban App', + subtext: 'Get new Task', + href: '/apps/kanban' + }, + { + avatar: 'notes-bold-duotone', + color:'warning', + title: 'Notes Application', + subtext: 'To-do and Daily tasks', + href: '/apps/notes' + } +]; + + +// +// Search Data +// +const searchSugg: searchType[] = [ + { + title: 'Modern', + href: '/dashboards/modern' + }, + { + title: 'eCommerce', + href: '/dashboards/ecommerce' + }, + { + title: 'Contacts', + href: '/apps/contacts' + }, + { + title: 'Shop', + href: '/ecommerce/shop' + }, + { + title: 'Checkout', + href: '/ecommerce/checkout' + }, + { + title: 'Chats', + href: '/apps/chats' + }, + { + title: 'Notes', + href: '/apps/notes' + }, + { + title: 'Pricing', + href: '/pages/pricing' + }, + { + title: 'Account Setting', + href: '/pages/account-settings' + }, +]; + +export { notifications, profileDD, languageDD, appsLink, searchSugg }; + diff --git a/_mockApis/index.ts b/_mockApis/index.ts new file mode 100755 index 0000000..102e226 --- /dev/null +++ b/_mockApis/index.ts @@ -0,0 +1,20 @@ +import mock from './mockAdapter'; + +import './apps/chat'; +import './apps/ecommerce'; +import './apps/userprofile/posts'; +import './apps/userprofile/followers'; +import './apps/userprofile/friends'; +import './apps/userprofile/gallery'; +import './apps/userprofile/photos'; +import './apps/blog/index'; +import './headerData'; +import './apps/notes'; +import './apps/tickets'; +import './apps/email'; +import './apps/invoice'; +import './apps/contact'; +import './headerData'; +import './apps/kanban'; + +mock.onAny().passThrough(); diff --git a/_mockApis/landingpage/curoselData.ts b/_mockApis/landingpage/curoselData.ts new file mode 100755 index 0000000..5a4b112 --- /dev/null +++ b/_mockApis/landingpage/curoselData.ts @@ -0,0 +1,23 @@ +/*Product Preview Slider*/ +const curoselSettings = { + snapAlign: "start", + itemsToShow: 1, + autoplay: false, +}; + +/*Testimonials Slider*/ +const testimonialSettings = { + snapAlign: "start", + itemsToShow: 3, + autoplay: false, +}; +const testimonialBreakpoints = { + 300: { itemsToShow: 1 }, + 600: { itemsToShow: 1 }, + 767: { itemsToShow: 2 }, + 991: { itemsToShow: 3 }, + 1500: { itemsToShow: 3 }, + 1800: { itemsToShow: 3 }, +}; + +export{curoselSettings,testimonialSettings,testimonialBreakpoints} \ No newline at end of file diff --git a/_mockApis/landingpage/lpPage.ts b/_mockApis/landingpage/lpPage.ts new file mode 100755 index 0000000..af1682b --- /dev/null +++ b/_mockApis/landingpage/lpPage.ts @@ -0,0 +1,381 @@ +import { ref } from 'vue'; + +import type { + ProductsSliderTypes, + UserReviewTypes, + ListFeatureTypes, + DemosMegaMenuTypes, + AppsMegaMenuTypes +} from '@/types/landingpage/LandingpageTypes'; + +import img1 from '@/assets/images/landingpage/demos/demo-main.jpg'; +import img2 from '@/assets/images/landingpage/demos/demo-dark.jpg'; +import img3 from '@/assets/images/landingpage/demos/demo-horizontal.jpg'; +import img4 from '@/assets/images/landingpage/demos/demo-mini.jpg'; +import img5 from '@/assets/images/landingpage/demos/demo-rtl.jpg'; +import img6 from '@/assets/images/landingpage/apps/app-calendar.jpg'; +import img7 from '@/assets/images/landingpage/apps/app-chat.jpg'; +import img8 from '@/assets/images/landingpage/apps/app-contact.jpg'; +import img9 from '@/assets/images/landingpage/apps/app-user-profile.jpg'; +import img10 from '@/assets/images/landingpage/apps/app-note.jpg'; +import img11 from '@/assets/images/landingpage/apps/app-blog.jpg'; +import img12 from '@/assets/images/landingpage/apps/app-shop.jpg'; +import img13 from '@/assets/images/landingpage/apps/app-productlist.jpg'; +import img14 from '@/assets/images/landingpage/apps/app-invoice.jpg'; +import img15 from '@/assets/images/landingpage/apps/app-blog-detail.jpg'; +import img16 from '@/assets/images/landingpage/apps/app-product-detail.jpg'; +import img17 from '@/assets/images/landingpage/apps/app-kanban.jpg'; +import img18 from '@/assets/images/landingpage/demos/demo-default.jpg'; + +const productsSlider: ProductsSliderTypes[] = [ + { + type: true, + img: img1, + name: 'Main', + link: 'https://matdash-vuetify-main.netlify.app/dashboards/dashboard1' + }, + { + type: true, + img: img2, + name: 'Dark', + link: 'https://matdash-vuetify-dark.netlify.app/dashboards/dashboard2' + }, + { + type: true, + img: img3, + name: 'Horizontal', + link: 'https://matdash-vuetify-horizontal.netlify.app/dashboards/dashboard1' + }, + { + type: true, + img: img4, + name: 'Minisidebar', + link: 'https://matdash-vuetify-minisidebar.netlify.app/dashboards/dashboard1' + }, + { + type: true, + img: img5, + name: 'RTL', + link: 'https://matdash-vuetify-rtl.netlify.app/dashboards/dashboard2' + }, + { + type: true, + img: img18, + name: 'Default Sidebar', + link: 'https://matdash-vuetify-default.netlify.app/dashboards/dashboard1' + }, + { + type: false, + img: img6, + name: 'Calandar ', + link: '/apps/calendar' + }, + { + type: false, + img: img7, + name: 'Chat ', + link: '/apps/chats' + }, + { + type: false, + img: img8, + name: 'Contact ', + link: '/apps/contacts' + }, + { + type: false, + img: img9, + name: 'User Profile ', + link: '/apps/user/profile' + }, + { + type: false, + img: img10, + name: 'Notes ', + link: '/apps/notes' + }, + { + type: false, + img: img11, + name: 'Blog ', + link: '/apps/blog/posts' + }, + { + type: false, + img: img15, + name: 'Blog Detail ', + link: '/apps/blog/early-black-friday-amazon-deals-cheap-tvs-headphones' + }, + { + type: false, + img: img12, + name: 'eCommerce Shop ', + link: '/ecommerce/products' + }, + { + type: false, + img: img16, + name: 'eCommerce Product Detail ', + link: '/ecommerce/product/detail/1' + }, + { + type: false, + img: img13, + name: 'eCommerce Product List ', + link: '/ecommerce/productlist' + }, + { + type: false, + img: img14, + name: 'Invoice App ', + link: '/apps/invoice' + }, + { + type: false, + img: img17, + name: 'Kanban ', + link: '/apps/kanban' + } +]; + +/*User Review Section*/ +import review1 from '@/assets/images/profile/user-1.jpg'; +import review2 from '@/assets/images/profile/user-2.jpg'; +import review3 from '@/assets/images/profile/user-3.jpg'; + +const userReview: UserReviewTypes[] = [ + { + img: review3, + title: 'Eminson Mendoza', + subtitle: 'Features avaibility', + review: 'This template is great, UI-rich and up-to-date. Although it is pretty much complete, I suggest to improve a bit of documentation. Thanks & Highly recomended!' + }, + { + img: review1, + title: 'Jenny Wilson', + subtitle: 'Features avaibility', + review: 'The dashboard template from adminmart has helped me provide a clean and sleek look to my dashboard and made it look exactly the way I wanted it to, mainly without having.' + }, + { + img: review2, + title: 'Minshan Cui', + subtitle: 'Features avaibility', + review: 'The quality of design is excellent, customizability and flexibility much better than the other products available in the market.I strongly recommend the AdminMart to other.' + }, + { + img: review3, + title: 'Eminson Mendoza', + subtitle: 'Features avaibility', + review: 'This template is great, UI-rich and up-to-date. Although it is pretty much complete, I suggest to improve a bit of documentation. Thanks & Highly recomended!' + }, + { + img: review1, + title: 'Jenny Wilson', + subtitle: 'Features avaibility', + review: 'The dashboard template from adminmart has helped me provide a clean and sleek look to my dashboard and made it look exactly the way I wanted it to, mainly without having.' + }, + { + img: review2, + title: 'Minshan Cui', + subtitle: 'Features avaibility', + review: 'The quality of design is excellent, customizability and flexibility much better than the other products available in the market.I strongly recommend the AdminMart to other.' + }, + { + img: review3, + title: 'Eminson Mendoza', + subtitle: 'Features avaibility', + review: 'This template is great, UI-rich and up-to-date. Although it is pretty much complete, I suggest to improve a bit of documentation. Thanks & Highly recomended!' + }, + { + img: review1, + title: 'Jenny Wilson', + subtitle: 'Features avaibility', + review: 'The dashboard template from adminmart has helped me provide a clean and sleek look to my dashboard and made it look exactly the way I wanted it to, mainly without having.' + } +]; + +const listFeature: ListFeatureTypes[] = [ + { + icon: 'filters-bold-duotone', + title: '6 Skin Colors', + subtitle: 'We have included 6 pre-defined Skin Colors with MatDash Admin..' + }, + { + icon: 'lock-keyhole-bold', + title: 'Authguard', + subtitle: 'We have AUTH guard functionality which is based on JWT.' + }, + { + icon: 'widget-4-bold-duotone', + title: '65+ Page Templates', + subtitle: 'Yes, we have 5 demos & 65+ Pages per demo to make it easier.' + }, + { + icon: 'presentation-graph-broken', + title: '4+ Frontend Pages', + subtitle: 'We have added useful frontend pages with Matdash Admin' + }, + { + icon: 'widget-6-bold-duotone', + title: '45+ UI Components', + subtitle: 'Almost 45+ UI Components being given with Matdash Admin Pack.' + }, + { + icon: 'tag-bold-duotone', + title: 'Vuetify', + subtitle: 'It is made with Vuetify which is a powerful UI Component Framework.' + }, + { + icon: 'text-field-bold-duotone', + title: '3400+ Font Icons', + subtitle: 'Lots of Icon Fonts are included here in the package of Matdash Admin.' + }, + { + icon: 'database-bold', + title: 'Axios', + subtitle: 'Axios is a promise-based HTTP Client for node.js and the browser.' + }, + { + icon: 'home-smile-angle-bold-duotone', + title: 'i18n Vue', + subtitle: 'Vue i18n is a powerful internationalization framework for Vue.' + }, + { + icon: 'slider-horizontal-bold', + title: 'Vue3 Carousel', + subtitle: 'Flexible, responsive, and highly customizable Vue carousel component' + }, + { + icon: 'shuffle-bold-duotone', + title: 'Easy to Customize', + subtitle: 'Customization will be easy as we understand your pain.' + }, + { + icon: 'pie-chart-3-bold-duotone', + title: 'Lots of Chart Options', + subtitle: 'You name it and we have it, Yes lots of variations for Charts.' + }, + { + icon: 'bedside-table-bold-duotone', + title: 'Lots of Table Examples', + subtitle: 'Data Tables are initial requirement and we added them.' + }, + { + icon: 'refresh-square-bold-duotone', + title: 'Regular Updates', + subtitle: 'We are constantly updating our pack with new features.' + }, + { + icon: 'document-add-bold-duotone', + title: 'Detailed Documentation', + subtitle: 'We have made detailed documentation, so it will easy to use.' + }, + { + icon: 'calendar-mark-bold-duotone', + title: 'Calendar Design', + subtitle: 'Calendar is available with our package & in nice design.' + }, + { + icon: 'chat-round-bold-duotone', + title: 'Dedicated Support', + subtitle: 'We believe in supreme support is key and we offer that.' + } +]; + +/*Demos Megamenu*/ +const demosMegamenu: DemosMegaMenuTypes[] = [ + { + img: img1, + name: 'Main', + link: 'https://matdash-vuetify-main.netlify.app/dashboards/dashboard1' + }, + { + img: img2, + name: 'Dark', + link: 'https://matdash-vuetify-dark.netlify.app/dashboards/dashboard2' + }, + { + img: img3, + name: 'Horizontal', + link: 'https://matdash-vuetify-horizontal.netlify.app/dashboards/dashboard1' + }, + { + img: img4, + name: 'Minisidebar', + link: 'https://matdash-vuetify-minisidebar.netlify.app/dashboards/dashboard1' + }, + { + img: img5, + name: 'RTL', + link: 'https://matdash-vuetify-rtl.netlify.app/dashboards/dashboard2' + } +]; +const appsMegamenu: AppsMegaMenuTypes[] = [ + { + img: img6, + name: 'Calandar App', + link: '/apps/calendar' + }, + { + img: img7, + name: 'Chat App', + link: '/apps/chats' + }, + { + img: img8, + name: 'Contact App', + link: '/apps/contacts' + }, + { + img: img9, + name: 'User Profile App', + link: '/apps/user/profile' + }, + { + img: img10, + name: 'Notes App', + link: '/apps/notes' + } +]; + +import frnt1 from '@/assets/images/landingpage/frontpages/homepage.jpg'; +import frnt2 from '@/assets/images/landingpage/frontpages/aboutus.jpg'; +import frnt3 from '@/assets/images/landingpage/frontpages/contactus.jpg'; +import frnt4 from '@/assets/images/landingpage/frontpages/portfolio.jpg'; +import frnt5 from '@/assets/images/landingpage/frontpages/pricing.jpg'; +import frnt6 from '@/assets/images/landingpage/frontpages/blogpage.jpg'; + +const FrontPageMenu: DemosMegaMenuTypes[] = [ + { + img: frnt1, + name: 'Homepage', + link: '/front-page/homepage' + }, + { + img: frnt2, + name: 'About Us', + link: '/front-page/about-us' + }, + { + img: frnt3, + name: 'Contact Us', + link: '/front-page/contact-us' + }, + { + img: frnt4, + name: 'Portfolio', + link: '/front-page/portfolio' + }, + { + img: frnt5, + name: 'Pricing', + link: '/front-page/pricing' + }, + { + img: frnt6, + name: 'Blog', + link: '/front-page/blog/posts' + } +]; + +export { productsSlider, userReview, listFeature, demosMegamenu, appsMegamenu, FrontPageMenu }; diff --git a/_mockApis/mockAdapter.ts b/_mockApis/mockAdapter.ts new file mode 100755 index 0000000..3958c05 --- /dev/null +++ b/_mockApis/mockAdapter.ts @@ -0,0 +1,5 @@ +import AxiosMockAdapter from 'axios-mock-adapter'; +import axios from '@/utils/axios'; + +const mock = new AxiosMockAdapter(axios, { delayResponse: 0 }); +export default mock; diff --git a/app.vue b/app.vue new file mode 100755 index 0000000..ddfc76e --- /dev/null +++ b/app.vue @@ -0,0 +1,6 @@ + diff --git a/assets/images/backgrounds/active-bg.png b/assets/images/backgrounds/active-bg.png new file mode 100755 index 0000000..1920efe Binary files /dev/null and b/assets/images/backgrounds/active-bg.png differ diff --git a/assets/images/backgrounds/blog.jpg b/assets/images/backgrounds/blog.jpg new file mode 100755 index 0000000..b0fab6c Binary files /dev/null and b/assets/images/backgrounds/blog.jpg differ diff --git a/assets/images/backgrounds/bronze.png b/assets/images/backgrounds/bronze.png new file mode 100755 index 0000000..d0e5bfa Binary files /dev/null and b/assets/images/backgrounds/bronze.png differ diff --git a/assets/images/backgrounds/business-woman-checking-her-mail.png b/assets/images/backgrounds/business-woman-checking-her-mail.png new file mode 100755 index 0000000..81adb1d Binary files /dev/null and b/assets/images/backgrounds/business-woman-checking-her-mail.png differ diff --git a/assets/images/backgrounds/empty_mail.png b/assets/images/backgrounds/empty_mail.png new file mode 100755 index 0000000..2503012 Binary files /dev/null and b/assets/images/backgrounds/empty_mail.png differ diff --git a/assets/images/backgrounds/errorimg.svg b/assets/images/backgrounds/errorimg.svg new file mode 100755 index 0000000..8f2bb44 --- /dev/null +++ b/assets/images/backgrounds/errorimg.svg @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/backgrounds/gold.png b/assets/images/backgrounds/gold.png new file mode 100755 index 0000000..bdc7ede Binary files /dev/null and b/assets/images/backgrounds/gold.png differ diff --git a/assets/images/backgrounds/img1.jpg b/assets/images/backgrounds/img1.jpg new file mode 100755 index 0000000..89d1a87 Binary files /dev/null and b/assets/images/backgrounds/img1.jpg differ diff --git a/assets/images/backgrounds/kanban-img-1.jpg b/assets/images/backgrounds/kanban-img-1.jpg new file mode 100755 index 0000000..c08ff5c Binary files /dev/null and b/assets/images/backgrounds/kanban-img-1.jpg differ diff --git a/assets/images/backgrounds/kanban-img-2.jpg b/assets/images/backgrounds/kanban-img-2.jpg new file mode 100755 index 0000000..c1b79bb Binary files /dev/null and b/assets/images/backgrounds/kanban-img-2.jpg differ diff --git a/assets/images/backgrounds/kanban-img-3.jpg b/assets/images/backgrounds/kanban-img-3.jpg new file mode 100755 index 0000000..0131f07 Binary files /dev/null and b/assets/images/backgrounds/kanban-img-3.jpg differ diff --git a/assets/images/backgrounds/kanban-img-4.jpg b/assets/images/backgrounds/kanban-img-4.jpg new file mode 100755 index 0000000..204c3e4 Binary files /dev/null and b/assets/images/backgrounds/kanban-img-4.jpg differ diff --git a/assets/images/backgrounds/line-bg-2.svg b/assets/images/backgrounds/line-bg-2.svg new file mode 100755 index 0000000..df28d75 --- /dev/null +++ b/assets/images/backgrounds/line-bg-2.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/images/backgrounds/line-bg.svg b/assets/images/backgrounds/line-bg.svg new file mode 100755 index 0000000..dbb849b --- /dev/null +++ b/assets/images/backgrounds/line-bg.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/images/backgrounds/login-bg.jpg b/assets/images/backgrounds/login-bg.jpg new file mode 100755 index 0000000..3560132 Binary files /dev/null and b/assets/images/backgrounds/login-bg.jpg differ diff --git a/assets/images/backgrounds/login-bg.svg b/assets/images/backgrounds/login-bg.svg new file mode 100755 index 0000000..4c1f0b5 --- /dev/null +++ b/assets/images/backgrounds/login-bg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/backgrounds/login-side.png b/assets/images/backgrounds/login-side.png new file mode 100755 index 0000000..a3a061f Binary files /dev/null and b/assets/images/backgrounds/login-side.png differ diff --git a/assets/images/backgrounds/maintenance.svg b/assets/images/backgrounds/maintenance.svg new file mode 100755 index 0000000..713c8c6 --- /dev/null +++ b/assets/images/backgrounds/maintenance.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/backgrounds/mega-dd-bg.jpg b/assets/images/backgrounds/mega-dd-bg.jpg new file mode 100755 index 0000000..da69c06 Binary files /dev/null and b/assets/images/backgrounds/mega-dd-bg.jpg differ diff --git a/assets/images/backgrounds/my-card.jpg b/assets/images/backgrounds/my-card.jpg new file mode 100755 index 0000000..0a44600 Binary files /dev/null and b/assets/images/backgrounds/my-card.jpg differ diff --git a/assets/images/backgrounds/nyan-cat.gif b/assets/images/backgrounds/nyan-cat.gif new file mode 100755 index 0000000..053b4d9 Binary files /dev/null and b/assets/images/backgrounds/nyan-cat.gif differ diff --git a/assets/images/backgrounds/payment.svg b/assets/images/backgrounds/payment.svg new file mode 100755 index 0000000..39a39f3 --- /dev/null +++ b/assets/images/backgrounds/payment.svg @@ -0,0 +1,1085 @@ + \ No newline at end of file diff --git a/assets/images/backgrounds/preview-img.png b/assets/images/backgrounds/preview-img.png new file mode 100755 index 0000000..42da307 Binary files /dev/null and b/assets/images/backgrounds/preview-img.png differ diff --git a/assets/images/backgrounds/profile-bg.jpg b/assets/images/backgrounds/profile-bg.jpg new file mode 100755 index 0000000..c68c986 Binary files /dev/null and b/assets/images/backgrounds/profile-bg.jpg differ diff --git a/assets/images/backgrounds/profilebg.jpg b/assets/images/backgrounds/profilebg.jpg new file mode 100755 index 0000000..9d89edd Binary files /dev/null and b/assets/images/backgrounds/profilebg.jpg differ diff --git a/assets/images/backgrounds/silver.png b/assets/images/backgrounds/silver.png new file mode 100755 index 0000000..818e736 Binary files /dev/null and b/assets/images/backgrounds/silver.png differ diff --git a/assets/images/backgrounds/track-bg.png b/assets/images/backgrounds/track-bg.png new file mode 100755 index 0000000..9234c0e Binary files /dev/null and b/assets/images/backgrounds/track-bg.png differ diff --git a/assets/images/backgrounds/weather.jpg b/assets/images/backgrounds/weather.jpg new file mode 100755 index 0000000..63e4ac9 Binary files /dev/null and b/assets/images/backgrounds/weather.jpg differ diff --git a/assets/images/backgrounds/weatherbg.jpg b/assets/images/backgrounds/weatherbg.jpg new file mode 100755 index 0000000..dc08541 Binary files /dev/null and b/assets/images/backgrounds/weatherbg.jpg differ diff --git a/assets/images/backgrounds/website-under-construction.svg b/assets/images/backgrounds/website-under-construction.svg new file mode 100755 index 0000000..713c8c6 --- /dev/null +++ b/assets/images/backgrounds/website-under-construction.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/backgrounds/welcome-bg.png b/assets/images/backgrounds/welcome-bg.png new file mode 100755 index 0000000..c57bdcc Binary files /dev/null and b/assets/images/backgrounds/welcome-bg.png differ diff --git a/assets/images/backgrounds/welcome-bg2.png b/assets/images/backgrounds/welcome-bg2.png new file mode 100755 index 0000000..421fc3b Binary files /dev/null and b/assets/images/backgrounds/welcome-bg2.png differ diff --git a/assets/images/blog/blog-img1.jpg b/assets/images/blog/blog-img1.jpg new file mode 100755 index 0000000..94204af Binary files /dev/null and b/assets/images/blog/blog-img1.jpg differ diff --git a/assets/images/blog/blog-img10.jpg b/assets/images/blog/blog-img10.jpg new file mode 100755 index 0000000..ede23ad Binary files /dev/null and b/assets/images/blog/blog-img10.jpg differ diff --git a/assets/images/blog/blog-img11.jpg b/assets/images/blog/blog-img11.jpg new file mode 100755 index 0000000..1b85e5c Binary files /dev/null and b/assets/images/blog/blog-img11.jpg differ diff --git a/assets/images/blog/blog-img2.jpg b/assets/images/blog/blog-img2.jpg new file mode 100755 index 0000000..1595772 Binary files /dev/null and b/assets/images/blog/blog-img2.jpg differ diff --git a/assets/images/blog/blog-img3.jpg b/assets/images/blog/blog-img3.jpg new file mode 100755 index 0000000..b065626 Binary files /dev/null and b/assets/images/blog/blog-img3.jpg differ diff --git a/assets/images/blog/blog-img4.jpg b/assets/images/blog/blog-img4.jpg new file mode 100755 index 0000000..d7bfdb0 Binary files /dev/null and b/assets/images/blog/blog-img4.jpg differ diff --git a/assets/images/blog/blog-img5.jpg b/assets/images/blog/blog-img5.jpg new file mode 100755 index 0000000..7433e80 Binary files /dev/null and b/assets/images/blog/blog-img5.jpg differ diff --git a/assets/images/blog/blog-img6.jpg b/assets/images/blog/blog-img6.jpg new file mode 100755 index 0000000..4b01dcb Binary files /dev/null and b/assets/images/blog/blog-img6.jpg differ diff --git a/assets/images/blog/blog-img7.jpg b/assets/images/blog/blog-img7.jpg new file mode 100755 index 0000000..426590e Binary files /dev/null and b/assets/images/blog/blog-img7.jpg differ diff --git a/assets/images/blog/blog-img8.jpg b/assets/images/blog/blog-img8.jpg new file mode 100755 index 0000000..c13eb95 Binary files /dev/null and b/assets/images/blog/blog-img8.jpg differ diff --git a/assets/images/blog/blog-img9.jpg b/assets/images/blog/blog-img9.jpg new file mode 100755 index 0000000..2d6d0a8 Binary files /dev/null and b/assets/images/blog/blog-img9.jpg differ diff --git a/assets/images/breadcrumb/ChatBc.png b/assets/images/breadcrumb/ChatBc.png new file mode 100755 index 0000000..ef22544 Binary files /dev/null and b/assets/images/breadcrumb/ChatBc.png differ diff --git a/assets/images/breadcrumb/emailSv.png b/assets/images/breadcrumb/emailSv.png new file mode 100755 index 0000000..3c01e85 Binary files /dev/null and b/assets/images/breadcrumb/emailSv.png differ diff --git a/assets/images/chat/icon-adobe.svg b/assets/images/chat/icon-adobe.svg new file mode 100755 index 0000000..138a8e4 --- /dev/null +++ b/assets/images/chat/icon-adobe.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/images/chat/icon-chrome.svg b/assets/images/chat/icon-chrome.svg new file mode 100755 index 0000000..2d430e2 --- /dev/null +++ b/assets/images/chat/icon-chrome.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/assets/images/chat/icon-figma.svg b/assets/images/chat/icon-figma.svg new file mode 100755 index 0000000..acfb5bc --- /dev/null +++ b/assets/images/chat/icon-figma.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/images/chat/icon-javascript.svg b/assets/images/chat/icon-javascript.svg new file mode 100755 index 0000000..d8d1812 --- /dev/null +++ b/assets/images/chat/icon-javascript.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/images/chat/icon-zip-folder.svg b/assets/images/chat/icon-zip-folder.svg new file mode 100755 index 0000000..32ea4af --- /dev/null +++ b/assets/images/chat/icon-zip-folder.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/images/flag/icon-flag-en.svg b/assets/images/flag/icon-flag-en.svg new file mode 100755 index 0000000..485ad5c --- /dev/null +++ b/assets/images/flag/icon-flag-en.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/flag/icon-flag-fr.svg b/assets/images/flag/icon-flag-fr.svg new file mode 100755 index 0000000..2ae63a1 --- /dev/null +++ b/assets/images/flag/icon-flag-fr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/flag/icon-flag-ro.svg b/assets/images/flag/icon-flag-ro.svg new file mode 100755 index 0000000..8b517ff --- /dev/null +++ b/assets/images/flag/icon-flag-ro.svg @@ -0,0 +1,10 @@ + + + ic_flag_sa + + + + + + + \ No newline at end of file diff --git a/assets/images/flag/icon-flag-vn.svg b/assets/images/flag/icon-flag-vn.svg new file mode 100755 index 0000000..313993a --- /dev/null +++ b/assets/images/flag/icon-flag-vn.svg @@ -0,0 +1,10 @@ + + + ic_flag_vn + + + + + + + \ No newline at end of file diff --git a/assets/images/flag/icon-flag-zh.svg b/assets/images/flag/icon-flag-zh.svg new file mode 100755 index 0000000..efec2cb --- /dev/null +++ b/assets/images/flag/icon-flag-zh.svg @@ -0,0 +1,10 @@ + + + ic_flag_cn + + + + + + + \ No newline at end of file diff --git a/assets/images/front-pages/background/contact-icon.png b/assets/images/front-pages/background/contact-icon.png new file mode 100755 index 0000000..5d7ba8b Binary files /dev/null and b/assets/images/front-pages/background/contact-icon.png differ diff --git a/assets/images/front-pages/background/facebook.svg b/assets/images/front-pages/background/facebook.svg new file mode 100755 index 0000000..8326fe7 --- /dev/null +++ b/assets/images/front-pages/background/facebook.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/images/front-pages/background/feature-image.png b/assets/images/front-pages/background/feature-image.png new file mode 100755 index 0000000..e671cd7 Binary files /dev/null and b/assets/images/front-pages/background/feature-image.png differ diff --git a/assets/images/front-pages/background/instagram.svg b/assets/images/front-pages/background/instagram.svg new file mode 100755 index 0000000..9883018 --- /dev/null +++ b/assets/images/front-pages/background/instagram.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/images/front-pages/background/left-shape.png b/assets/images/front-pages/background/left-shape.png new file mode 100755 index 0000000..41f8745 Binary files /dev/null and b/assets/images/front-pages/background/left-shape.png differ diff --git a/assets/images/front-pages/background/left-widget.png b/assets/images/front-pages/background/left-widget.png new file mode 100755 index 0000000..05aa6b5 Binary files /dev/null and b/assets/images/front-pages/background/left-widget.png differ diff --git a/assets/images/front-pages/background/main-banner.png b/assets/images/front-pages/background/main-banner.png new file mode 100755 index 0000000..23ae8ad Binary files /dev/null and b/assets/images/front-pages/background/main-banner.png differ diff --git a/assets/images/front-pages/background/quotes.svg b/assets/images/front-pages/background/quotes.svg new file mode 100755 index 0000000..bf09c96 --- /dev/null +++ b/assets/images/front-pages/background/quotes.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/front-pages/background/right-shape.png b/assets/images/front-pages/background/right-shape.png new file mode 100755 index 0000000..6ceddbd Binary files /dev/null and b/assets/images/front-pages/background/right-shape.png differ diff --git a/assets/images/front-pages/background/right-widget.png b/assets/images/front-pages/background/right-widget.png new file mode 100755 index 0000000..64a8d29 Binary files /dev/null and b/assets/images/front-pages/background/right-widget.png differ diff --git a/assets/images/front-pages/background/twitter.svg b/assets/images/front-pages/background/twitter.svg new file mode 100755 index 0000000..cee909f --- /dev/null +++ b/assets/images/front-pages/background/twitter.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/images/front-pages/background/white-icon-logo.svg b/assets/images/front-pages/background/white-icon-logo.svg new file mode 100755 index 0000000..c82ea1a --- /dev/null +++ b/assets/images/front-pages/background/white-icon-logo.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/images/front-pages/background/white-logo.svg b/assets/images/front-pages/background/white-logo.svg new file mode 100755 index 0000000..953ae6b --- /dev/null +++ b/assets/images/front-pages/background/white-logo.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/assets/images/front-pages/componies/capgemini.svg b/assets/images/front-pages/componies/capgemini.svg new file mode 100755 index 0000000..f26bf88 --- /dev/null +++ b/assets/images/front-pages/componies/capgemini.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/images/front-pages/componies/dell.svg b/assets/images/front-pages/componies/dell.svg new file mode 100755 index 0000000..760be5f --- /dev/null +++ b/assets/images/front-pages/componies/dell.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/images/front-pages/componies/infosys.svg b/assets/images/front-pages/componies/infosys.svg new file mode 100755 index 0000000..76f7aaf --- /dev/null +++ b/assets/images/front-pages/componies/infosys.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/assets/images/front-pages/componies/intel.svg b/assets/images/front-pages/componies/intel.svg new file mode 100755 index 0000000..789b7d6 --- /dev/null +++ b/assets/images/front-pages/componies/intel.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/images/front-pages/componies/oracle.svg b/assets/images/front-pages/componies/oracle.svg new file mode 100755 index 0000000..1a17337 --- /dev/null +++ b/assets/images/front-pages/componies/oracle.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/images/front-pages/componies/samsung.svg b/assets/images/front-pages/componies/samsung.svg new file mode 100755 index 0000000..cc24fc5 --- /dev/null +++ b/assets/images/front-pages/componies/samsung.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/assets/images/front-pages/leaders/leader1.png b/assets/images/front-pages/leaders/leader1.png new file mode 100755 index 0000000..93579e5 Binary files /dev/null and b/assets/images/front-pages/leaders/leader1.png differ diff --git a/assets/images/front-pages/leaders/leader2.png b/assets/images/front-pages/leaders/leader2.png new file mode 100755 index 0000000..f2e773a Binary files /dev/null and b/assets/images/front-pages/leaders/leader2.png differ diff --git a/assets/images/front-pages/leaders/leader3.png b/assets/images/front-pages/leaders/leader3.png new file mode 100755 index 0000000..b3ea072 Binary files /dev/null and b/assets/images/front-pages/leaders/leader3.png differ diff --git a/assets/images/front-pages/leaders/leader4.png b/assets/images/front-pages/leaders/leader4.png new file mode 100755 index 0000000..eeab20f Binary files /dev/null and b/assets/images/front-pages/leaders/leader4.png differ diff --git a/assets/images/front-pages/leaders/leader5.png b/assets/images/front-pages/leaders/leader5.png new file mode 100755 index 0000000..0aec29b Binary files /dev/null and b/assets/images/front-pages/leaders/leader5.png differ diff --git a/assets/images/front-pages/payments/american-exp.svg b/assets/images/front-pages/payments/american-exp.svg new file mode 100755 index 0000000..0cc1e3c --- /dev/null +++ b/assets/images/front-pages/payments/american-exp.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/front-pages/payments/dinners-clb.svg b/assets/images/front-pages/payments/dinners-clb.svg new file mode 100755 index 0000000..4ea5609 --- /dev/null +++ b/assets/images/front-pages/payments/dinners-clb.svg @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/front-pages/payments/discover.svg b/assets/images/front-pages/payments/discover.svg new file mode 100755 index 0000000..12eebd5 --- /dev/null +++ b/assets/images/front-pages/payments/discover.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/front-pages/payments/jcb.svg b/assets/images/front-pages/payments/jcb.svg new file mode 100755 index 0000000..b71e935 --- /dev/null +++ b/assets/images/front-pages/payments/jcb.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/front-pages/payments/maesro.svg b/assets/images/front-pages/payments/maesro.svg new file mode 100755 index 0000000..5a84358 --- /dev/null +++ b/assets/images/front-pages/payments/maesro.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/front-pages/payments/master.svg b/assets/images/front-pages/payments/master.svg new file mode 100755 index 0000000..da591ae --- /dev/null +++ b/assets/images/front-pages/payments/master.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/front-pages/payments/paypal.svg b/assets/images/front-pages/payments/paypal.svg new file mode 100755 index 0000000..0bd2e78 --- /dev/null +++ b/assets/images/front-pages/payments/paypal.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/assets/images/front-pages/payments/visa.svg b/assets/images/front-pages/payments/visa.svg new file mode 100755 index 0000000..7a06b63 --- /dev/null +++ b/assets/images/front-pages/payments/visa.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/assets/images/front-pages/technology/Apexchart.svg b/assets/images/front-pages/technology/Apexchart.svg new file mode 100755 index 0000000..df41270 --- /dev/null +++ b/assets/images/front-pages/technology/Apexchart.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/images/front-pages/technology/Pinia.svg b/assets/images/front-pages/technology/Pinia.svg new file mode 100755 index 0000000..7946e64 --- /dev/null +++ b/assets/images/front-pages/technology/Pinia.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/front-pages/technology/Typescript.svg b/assets/images/front-pages/technology/Typescript.svg new file mode 100755 index 0000000..3b31b02 --- /dev/null +++ b/assets/images/front-pages/technology/Typescript.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/images/front-pages/technology/Vite.svg b/assets/images/front-pages/technology/Vite.svg new file mode 100755 index 0000000..ca69add --- /dev/null +++ b/assets/images/front-pages/technology/Vite.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/assets/images/front-pages/technology/Vuejs.svg b/assets/images/front-pages/technology/Vuejs.svg new file mode 100755 index 0000000..5a83274 --- /dev/null +++ b/assets/images/front-pages/technology/Vuejs.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/images/front-pages/technology/Vuetify.svg b/assets/images/front-pages/technology/Vuetify.svg new file mode 100755 index 0000000..99f7538 --- /dev/null +++ b/assets/images/front-pages/technology/Vuetify.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/images/kanban/task-img1.png b/assets/images/kanban/task-img1.png new file mode 100755 index 0000000..e4bb183 Binary files /dev/null and b/assets/images/kanban/task-img1.png differ diff --git a/assets/images/kanban/task-img2.png b/assets/images/kanban/task-img2.png new file mode 100755 index 0000000..6bfb4da Binary files /dev/null and b/assets/images/kanban/task-img2.png differ diff --git a/assets/images/landingpage/apps/app-blog-detail.jpg b/assets/images/landingpage/apps/app-blog-detail.jpg new file mode 100755 index 0000000..c00b69b Binary files /dev/null and b/assets/images/landingpage/apps/app-blog-detail.jpg differ diff --git a/assets/images/landingpage/apps/app-blog.jpg b/assets/images/landingpage/apps/app-blog.jpg new file mode 100755 index 0000000..d07e921 Binary files /dev/null and b/assets/images/landingpage/apps/app-blog.jpg differ diff --git a/assets/images/landingpage/apps/app-calendar.jpg b/assets/images/landingpage/apps/app-calendar.jpg new file mode 100755 index 0000000..039f37c Binary files /dev/null and b/assets/images/landingpage/apps/app-calendar.jpg differ diff --git a/assets/images/landingpage/apps/app-chat.jpg b/assets/images/landingpage/apps/app-chat.jpg new file mode 100755 index 0000000..a9ee67b Binary files /dev/null and b/assets/images/landingpage/apps/app-chat.jpg differ diff --git a/assets/images/landingpage/apps/app-contact.jpg b/assets/images/landingpage/apps/app-contact.jpg new file mode 100755 index 0000000..b2635d2 Binary files /dev/null and b/assets/images/landingpage/apps/app-contact.jpg differ diff --git a/assets/images/landingpage/apps/app-email.jpg b/assets/images/landingpage/apps/app-email.jpg new file mode 100755 index 0000000..f270244 Binary files /dev/null and b/assets/images/landingpage/apps/app-email.jpg differ diff --git a/assets/images/landingpage/apps/app-invoice.jpg b/assets/images/landingpage/apps/app-invoice.jpg new file mode 100755 index 0000000..c3aedf7 Binary files /dev/null and b/assets/images/landingpage/apps/app-invoice.jpg differ diff --git a/assets/images/landingpage/apps/app-kanban.jpg b/assets/images/landingpage/apps/app-kanban.jpg new file mode 100755 index 0000000..4951508 Binary files /dev/null and b/assets/images/landingpage/apps/app-kanban.jpg differ diff --git a/assets/images/landingpage/apps/app-note.jpg b/assets/images/landingpage/apps/app-note.jpg new file mode 100755 index 0000000..5637d93 Binary files /dev/null and b/assets/images/landingpage/apps/app-note.jpg differ diff --git a/assets/images/landingpage/apps/app-product-detail.jpg b/assets/images/landingpage/apps/app-product-detail.jpg new file mode 100755 index 0000000..3795f7a Binary files /dev/null and b/assets/images/landingpage/apps/app-product-detail.jpg differ diff --git a/assets/images/landingpage/apps/app-productlist.jpg b/assets/images/landingpage/apps/app-productlist.jpg new file mode 100755 index 0000000..4a2b67b Binary files /dev/null and b/assets/images/landingpage/apps/app-productlist.jpg differ diff --git a/assets/images/landingpage/apps/app-shop.jpg b/assets/images/landingpage/apps/app-shop.jpg new file mode 100755 index 0000000..0071b4b Binary files /dev/null and b/assets/images/landingpage/apps/app-shop.jpg differ diff --git a/assets/images/landingpage/apps/app-user-profile.jpg b/assets/images/landingpage/apps/app-user-profile.jpg new file mode 100755 index 0000000..e954531 Binary files /dev/null and b/assets/images/landingpage/apps/app-user-profile.jpg differ diff --git a/assets/images/landingpage/background/c2a.png b/assets/images/landingpage/background/c2a.png new file mode 100755 index 0000000..0e3863a Binary files /dev/null and b/assets/images/landingpage/background/c2a.png differ diff --git a/assets/images/landingpage/background/slider-group.png b/assets/images/landingpage/background/slider-group.png new file mode 100755 index 0000000..e2cbfe0 Binary files /dev/null and b/assets/images/landingpage/background/slider-group.png differ diff --git a/assets/images/landingpage/bannerimg1.png b/assets/images/landingpage/bannerimg1.png new file mode 100755 index 0000000..6d880ff Binary files /dev/null and b/assets/images/landingpage/bannerimg1.png differ diff --git a/assets/images/landingpage/bannerimg2.png b/assets/images/landingpage/bannerimg2.png new file mode 100755 index 0000000..9083e8f Binary files /dev/null and b/assets/images/landingpage/bannerimg2.png differ diff --git a/assets/images/landingpage/demos/demo-dark.jpg b/assets/images/landingpage/demos/demo-dark.jpg new file mode 100755 index 0000000..82a5c49 Binary files /dev/null and b/assets/images/landingpage/demos/demo-dark.jpg differ diff --git a/assets/images/landingpage/demos/demo-default.jpg b/assets/images/landingpage/demos/demo-default.jpg new file mode 100755 index 0000000..e1305ba Binary files /dev/null and b/assets/images/landingpage/demos/demo-default.jpg differ diff --git a/assets/images/landingpage/demos/demo-horizontal.jpg b/assets/images/landingpage/demos/demo-horizontal.jpg new file mode 100755 index 0000000..4b92ff7 Binary files /dev/null and b/assets/images/landingpage/demos/demo-horizontal.jpg differ diff --git a/assets/images/landingpage/demos/demo-main.jpg b/assets/images/landingpage/demos/demo-main.jpg new file mode 100755 index 0000000..88d9836 Binary files /dev/null and b/assets/images/landingpage/demos/demo-main.jpg differ diff --git a/assets/images/landingpage/demos/demo-mini.jpg b/assets/images/landingpage/demos/demo-mini.jpg new file mode 100755 index 0000000..4dfd8ed Binary files /dev/null and b/assets/images/landingpage/demos/demo-mini.jpg differ diff --git a/assets/images/landingpage/demos/demo-rtl.jpg b/assets/images/landingpage/demos/demo-rtl.jpg new file mode 100755 index 0000000..5cd8605 Binary files /dev/null and b/assets/images/landingpage/demos/demo-rtl.jpg differ diff --git a/assets/images/landingpage/favicon.png b/assets/images/landingpage/favicon.png new file mode 100755 index 0000000..80ba642 Binary files /dev/null and b/assets/images/landingpage/favicon.png differ diff --git a/assets/images/landingpage/frameworks/logo-apexchart.svg b/assets/images/landingpage/frameworks/logo-apexchart.svg new file mode 100755 index 0000000..2035cda --- /dev/null +++ b/assets/images/landingpage/frameworks/logo-apexchart.svg @@ -0,0 +1,150 @@ + + + + diff --git a/assets/images/landingpage/frameworks/logo-figma.svg b/assets/images/landingpage/frameworks/logo-figma.svg new file mode 100755 index 0000000..6f1faf6 --- /dev/null +++ b/assets/images/landingpage/frameworks/logo-figma.svg @@ -0,0 +1,9 @@ + + New Project + + + + + + \ No newline at end of file diff --git a/assets/images/landingpage/frameworks/logo-pinia.svg b/assets/images/landingpage/frameworks/logo-pinia.svg new file mode 100755 index 0000000..3a20cba --- /dev/null +++ b/assets/images/landingpage/frameworks/logo-pinia.svg @@ -0,0 +1 @@ + diff --git a/assets/images/landingpage/frameworks/logo-ts.svg b/assets/images/landingpage/frameworks/logo-ts.svg new file mode 100755 index 0000000..5b7da07 --- /dev/null +++ b/assets/images/landingpage/frameworks/logo-ts.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/assets/images/landingpage/frameworks/logo-vc.svg b/assets/images/landingpage/frameworks/logo-vc.svg new file mode 100755 index 0000000..57f5b42 --- /dev/null +++ b/assets/images/landingpage/frameworks/logo-vc.svg @@ -0,0 +1,9 @@ + + vc + + + + + + \ No newline at end of file diff --git a/assets/images/landingpage/frameworks/logo-vue.svg b/assets/images/landingpage/frameworks/logo-vue.svg new file mode 100755 index 0000000..bc826fe --- /dev/null +++ b/assets/images/landingpage/frameworks/logo-vue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/landingpage/frameworks/logo-vuetify.svg b/assets/images/landingpage/frameworks/logo-vuetify.svg new file mode 100755 index 0000000..0f07367 --- /dev/null +++ b/assets/images/landingpage/frameworks/logo-vuetify.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/images/landingpage/frontpages/aboutus.jpg b/assets/images/landingpage/frontpages/aboutus.jpg new file mode 100755 index 0000000..1cfc3f8 Binary files /dev/null and b/assets/images/landingpage/frontpages/aboutus.jpg differ diff --git a/assets/images/landingpage/frontpages/blogpage.jpg b/assets/images/landingpage/frontpages/blogpage.jpg new file mode 100755 index 0000000..a97cdeb Binary files /dev/null and b/assets/images/landingpage/frontpages/blogpage.jpg differ diff --git a/assets/images/landingpage/frontpages/contactus.jpg b/assets/images/landingpage/frontpages/contactus.jpg new file mode 100755 index 0000000..0362af2 Binary files /dev/null and b/assets/images/landingpage/frontpages/contactus.jpg differ diff --git a/assets/images/landingpage/frontpages/homepage.jpg b/assets/images/landingpage/frontpages/homepage.jpg new file mode 100755 index 0000000..0e6821d Binary files /dev/null and b/assets/images/landingpage/frontpages/homepage.jpg differ diff --git a/assets/images/landingpage/frontpages/portfolio.jpg b/assets/images/landingpage/frontpages/portfolio.jpg new file mode 100755 index 0000000..3f3c945 Binary files /dev/null and b/assets/images/landingpage/frontpages/portfolio.jpg differ diff --git a/assets/images/landingpage/frontpages/pricing.jpg b/assets/images/landingpage/frontpages/pricing.jpg new file mode 100755 index 0000000..a149114 Binary files /dev/null and b/assets/images/landingpage/frontpages/pricing.jpg differ diff --git a/assets/images/landingpage/shape/badge.svg b/assets/images/landingpage/shape/badge.svg new file mode 100755 index 0000000..cb69f54 --- /dev/null +++ b/assets/images/landingpage/shape/badge.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/landingpage/shape/line-bg-2.svg b/assets/images/landingpage/shape/line-bg-2.svg new file mode 100755 index 0000000..df28d75 --- /dev/null +++ b/assets/images/landingpage/shape/line-bg-2.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/images/landingpage/shape/line-bg.svg b/assets/images/landingpage/shape/line-bg.svg new file mode 100755 index 0000000..dbb849b --- /dev/null +++ b/assets/images/landingpage/shape/line-bg.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/images/landingpage/shape/shape-1.svg b/assets/images/landingpage/shape/shape-1.svg new file mode 100755 index 0000000..30463fb --- /dev/null +++ b/assets/images/landingpage/shape/shape-1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/images/landingpage/shape/shape-2.svg b/assets/images/landingpage/shape/shape-2.svg new file mode 100755 index 0000000..4130b24 --- /dev/null +++ b/assets/images/landingpage/shape/shape-2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/images/logos/logo-icon.svg b/assets/images/logos/logo-icon.svg new file mode 100755 index 0000000..cf0338a --- /dev/null +++ b/assets/images/logos/logo-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/images/logos/logo.svg b/assets/images/logos/logo.svg new file mode 100755 index 0000000..2f7b3ae --- /dev/null +++ b/assets/images/logos/logo.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/assets/images/products/dash-prd-1.jpg b/assets/images/products/dash-prd-1.jpg new file mode 100755 index 0000000..899655e Binary files /dev/null and b/assets/images/products/dash-prd-1.jpg differ diff --git a/assets/images/products/dash-prd-2.jpg b/assets/images/products/dash-prd-2.jpg new file mode 100755 index 0000000..8f0f8d7 Binary files /dev/null and b/assets/images/products/dash-prd-2.jpg differ diff --git a/assets/images/products/dash-prd-3.jpg b/assets/images/products/dash-prd-3.jpg new file mode 100755 index 0000000..0de5c01 Binary files /dev/null and b/assets/images/products/dash-prd-3.jpg differ diff --git a/assets/images/products/dash-prd-4.jpg b/assets/images/products/dash-prd-4.jpg new file mode 100755 index 0000000..77be043 Binary files /dev/null and b/assets/images/products/dash-prd-4.jpg differ diff --git a/assets/images/products/empty-shopping-bag.gif b/assets/images/products/empty-shopping-bag.gif new file mode 100755 index 0000000..558d4d1 Binary files /dev/null and b/assets/images/products/empty-shopping-bag.gif differ diff --git a/assets/images/products/empty-shopping-cart.svg b/assets/images/products/empty-shopping-cart.svg new file mode 100755 index 0000000..dfe6f20 --- /dev/null +++ b/assets/images/products/empty-shopping-cart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/products/payment-complete.svg b/assets/images/products/payment-complete.svg new file mode 100755 index 0000000..93cd14e --- /dev/null +++ b/assets/images/products/payment-complete.svg @@ -0,0 +1,1591 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/products/payment.svg b/assets/images/products/payment.svg new file mode 100755 index 0000000..39a39f3 --- /dev/null +++ b/assets/images/products/payment.svg @@ -0,0 +1,1085 @@ + \ No newline at end of file diff --git a/assets/images/products/product-1.jpg b/assets/images/products/product-1.jpg new file mode 100755 index 0000000..9c1bc9c Binary files /dev/null and b/assets/images/products/product-1.jpg differ diff --git a/assets/images/products/product-2.jpg b/assets/images/products/product-2.jpg new file mode 100755 index 0000000..b856a88 Binary files /dev/null and b/assets/images/products/product-2.jpg differ diff --git a/assets/images/products/product-3.jpg b/assets/images/products/product-3.jpg new file mode 100755 index 0000000..673800d Binary files /dev/null and b/assets/images/products/product-3.jpg differ diff --git a/assets/images/products/product-4.jpg b/assets/images/products/product-4.jpg new file mode 100755 index 0000000..5a03a7c Binary files /dev/null and b/assets/images/products/product-4.jpg differ diff --git a/assets/images/products/s1.jpg b/assets/images/products/s1.jpg new file mode 100755 index 0000000..f5b49f4 Binary files /dev/null and b/assets/images/products/s1.jpg differ diff --git a/assets/images/products/s10.jpg b/assets/images/products/s10.jpg new file mode 100755 index 0000000..201fc6d Binary files /dev/null and b/assets/images/products/s10.jpg differ diff --git a/assets/images/products/s11.jpg b/assets/images/products/s11.jpg new file mode 100755 index 0000000..2995190 Binary files /dev/null and b/assets/images/products/s11.jpg differ diff --git a/assets/images/products/s12.jpg b/assets/images/products/s12.jpg new file mode 100755 index 0000000..fa4ce95 Binary files /dev/null and b/assets/images/products/s12.jpg differ diff --git a/assets/images/products/s2.jpg b/assets/images/products/s2.jpg new file mode 100755 index 0000000..d5cc4a5 Binary files /dev/null and b/assets/images/products/s2.jpg differ diff --git a/assets/images/products/s3.jpg b/assets/images/products/s3.jpg new file mode 100755 index 0000000..e4ffacd Binary files /dev/null and b/assets/images/products/s3.jpg differ diff --git a/assets/images/products/s4.jpg b/assets/images/products/s4.jpg new file mode 100755 index 0000000..b22db48 Binary files /dev/null and b/assets/images/products/s4.jpg differ diff --git a/assets/images/products/s5.jpg b/assets/images/products/s5.jpg new file mode 100755 index 0000000..dd3a838 Binary files /dev/null and b/assets/images/products/s5.jpg differ diff --git a/assets/images/products/s6.jpg b/assets/images/products/s6.jpg new file mode 100755 index 0000000..1978dc7 Binary files /dev/null and b/assets/images/products/s6.jpg differ diff --git a/assets/images/products/s7.jpg b/assets/images/products/s7.jpg new file mode 100755 index 0000000..b9ea316 Binary files /dev/null and b/assets/images/products/s7.jpg differ diff --git a/assets/images/products/s8.jpg b/assets/images/products/s8.jpg new file mode 100755 index 0000000..21156c5 Binary files /dev/null and b/assets/images/products/s8.jpg differ diff --git a/assets/images/products/s9.jpg b/assets/images/products/s9.jpg new file mode 100755 index 0000000..36e721b Binary files /dev/null and b/assets/images/products/s9.jpg differ diff --git a/assets/images/profile/user-1.jpg b/assets/images/profile/user-1.jpg new file mode 100755 index 0000000..8d54dc0 Binary files /dev/null and b/assets/images/profile/user-1.jpg differ diff --git a/assets/images/profile/user-10.jpg b/assets/images/profile/user-10.jpg new file mode 100755 index 0000000..b748eef Binary files /dev/null and b/assets/images/profile/user-10.jpg differ diff --git a/assets/images/profile/user-11.jpg b/assets/images/profile/user-11.jpg new file mode 100755 index 0000000..fece501 Binary files /dev/null and b/assets/images/profile/user-11.jpg differ diff --git a/assets/images/profile/user-12.jpg b/assets/images/profile/user-12.jpg new file mode 100755 index 0000000..9285e2f Binary files /dev/null and b/assets/images/profile/user-12.jpg differ diff --git a/assets/images/profile/user-13.jpg b/assets/images/profile/user-13.jpg new file mode 100755 index 0000000..c9b0199 Binary files /dev/null and b/assets/images/profile/user-13.jpg differ diff --git a/assets/images/profile/user-14.jpg b/assets/images/profile/user-14.jpg new file mode 100755 index 0000000..937cbb5 Binary files /dev/null and b/assets/images/profile/user-14.jpg differ diff --git a/assets/images/profile/user-15.jpg b/assets/images/profile/user-15.jpg new file mode 100755 index 0000000..6de7940 Binary files /dev/null and b/assets/images/profile/user-15.jpg differ diff --git a/assets/images/profile/user-2.jpg b/assets/images/profile/user-2.jpg new file mode 100755 index 0000000..e60f75e Binary files /dev/null and b/assets/images/profile/user-2.jpg differ diff --git a/assets/images/profile/user-3.jpg b/assets/images/profile/user-3.jpg new file mode 100755 index 0000000..55cbe1e Binary files /dev/null and b/assets/images/profile/user-3.jpg differ diff --git a/assets/images/profile/user-4.jpg b/assets/images/profile/user-4.jpg new file mode 100755 index 0000000..1df8d1e Binary files /dev/null and b/assets/images/profile/user-4.jpg differ diff --git a/assets/images/profile/user-5.jpg b/assets/images/profile/user-5.jpg new file mode 100755 index 0000000..adbbde4 Binary files /dev/null and b/assets/images/profile/user-5.jpg differ diff --git a/assets/images/profile/user-6.jpg b/assets/images/profile/user-6.jpg new file mode 100755 index 0000000..5dc28a5 Binary files /dev/null and b/assets/images/profile/user-6.jpg differ diff --git a/assets/images/profile/user-7.jpg b/assets/images/profile/user-7.jpg new file mode 100755 index 0000000..fc9d1fc Binary files /dev/null and b/assets/images/profile/user-7.jpg differ diff --git a/assets/images/profile/user-8.jpg b/assets/images/profile/user-8.jpg new file mode 100755 index 0000000..2143a34 Binary files /dev/null and b/assets/images/profile/user-8.jpg differ diff --git a/assets/images/profile/user-9.jpg b/assets/images/profile/user-9.jpg new file mode 100755 index 0000000..ddbf75c Binary files /dev/null and b/assets/images/profile/user-9.jpg differ diff --git a/assets/images/svgs/apple-icon.svg b/assets/images/svgs/apple-icon.svg new file mode 100755 index 0000000..0359029 --- /dev/null +++ b/assets/images/svgs/apple-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/svgs/cart-icon.svg b/assets/images/svgs/cart-icon.svg new file mode 100755 index 0000000..fb9a1fd --- /dev/null +++ b/assets/images/svgs/cart-icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/assets/images/svgs/facebook-icon.svg b/assets/images/svgs/facebook-icon.svg new file mode 100755 index 0000000..0de06e7 --- /dev/null +++ b/assets/images/svgs/facebook-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/svgs/google-icon.svg b/assets/images/svgs/google-icon.svg new file mode 100755 index 0000000..1307b69 --- /dev/null +++ b/assets/images/svgs/google-icon.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/images/svgs/icon-account.svg b/assets/images/svgs/icon-account.svg new file mode 100755 index 0000000..da8f1a1 --- /dev/null +++ b/assets/images/svgs/icon-account.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/images/svgs/icon-adobe.svg b/assets/images/svgs/icon-adobe.svg new file mode 100755 index 0000000..138a8e4 --- /dev/null +++ b/assets/images/svgs/icon-adobe.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/images/svgs/icon-bars.svg b/assets/images/svgs/icon-bars.svg new file mode 100755 index 0000000..35fc2df --- /dev/null +++ b/assets/images/svgs/icon-bars.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/assets/images/svgs/icon-briefcase.svg b/assets/images/svgs/icon-briefcase.svg new file mode 100755 index 0000000..6bbd6d4 --- /dev/null +++ b/assets/images/svgs/icon-briefcase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/svgs/icon-chrome.svg b/assets/images/svgs/icon-chrome.svg new file mode 100755 index 0000000..2d430e2 --- /dev/null +++ b/assets/images/svgs/icon-chrome.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/assets/images/svgs/icon-connect.svg b/assets/images/svgs/icon-connect.svg new file mode 100755 index 0000000..0adb3ea --- /dev/null +++ b/assets/images/svgs/icon-connect.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/svgs/icon-dd-application.svg b/assets/images/svgs/icon-dd-application.svg new file mode 100755 index 0000000..6adaa3c --- /dev/null +++ b/assets/images/svgs/icon-dd-application.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/images/svgs/icon-dd-cart.svg b/assets/images/svgs/icon-dd-cart.svg new file mode 100755 index 0000000..00b79fe --- /dev/null +++ b/assets/images/svgs/icon-dd-cart.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/images/svgs/icon-dd-chat.svg b/assets/images/svgs/icon-dd-chat.svg new file mode 100755 index 0000000..fdb1ad0 --- /dev/null +++ b/assets/images/svgs/icon-dd-chat.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/images/svgs/icon-dd-date.svg b/assets/images/svgs/icon-dd-date.svg new file mode 100755 index 0000000..f56859c --- /dev/null +++ b/assets/images/svgs/icon-dd-date.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/images/svgs/icon-dd-invoice.svg b/assets/images/svgs/icon-dd-invoice.svg new file mode 100755 index 0000000..035cebf --- /dev/null +++ b/assets/images/svgs/icon-dd-invoice.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/images/svgs/icon-dd-lifebuoy.svg b/assets/images/svgs/icon-dd-lifebuoy.svg new file mode 100755 index 0000000..9d464e1 --- /dev/null +++ b/assets/images/svgs/icon-dd-lifebuoy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/images/svgs/icon-dd-message-box.svg b/assets/images/svgs/icon-dd-message-box.svg new file mode 100755 index 0000000..f2d4d07 --- /dev/null +++ b/assets/images/svgs/icon-dd-message-box.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/images/svgs/icon-dd-mobile.svg b/assets/images/svgs/icon-dd-mobile.svg new file mode 100755 index 0000000..66c22f0 --- /dev/null +++ b/assets/images/svgs/icon-dd-mobile.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/images/svgs/icon-favorites.svg b/assets/images/svgs/icon-favorites.svg new file mode 100755 index 0000000..84fedaa --- /dev/null +++ b/assets/images/svgs/icon-favorites.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/svgs/icon-figma.svg b/assets/images/svgs/icon-figma.svg new file mode 100755 index 0000000..acfb5bc --- /dev/null +++ b/assets/images/svgs/icon-figma.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/images/svgs/icon-inbox.svg b/assets/images/svgs/icon-inbox.svg new file mode 100755 index 0000000..ebcb4ec --- /dev/null +++ b/assets/images/svgs/icon-inbox.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/images/svgs/icon-javascript.svg b/assets/images/svgs/icon-javascript.svg new file mode 100755 index 0000000..d8d1812 --- /dev/null +++ b/assets/images/svgs/icon-javascript.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/images/svgs/icon-mailbox.svg b/assets/images/svgs/icon-mailbox.svg new file mode 100755 index 0000000..a4a3aa3 --- /dev/null +++ b/assets/images/svgs/icon-mailbox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/svgs/icon-master-card-2.svg b/assets/images/svgs/icon-master-card-2.svg new file mode 100755 index 0000000..4adbf06 --- /dev/null +++ b/assets/images/svgs/icon-master-card-2.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/images/svgs/icon-master-card.svg b/assets/images/svgs/icon-master-card.svg new file mode 100755 index 0000000..5712cfd --- /dev/null +++ b/assets/images/svgs/icon-master-card.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/assets/images/svgs/icon-office-bag-2.svg b/assets/images/svgs/icon-office-bag-2.svg new file mode 100755 index 0000000..8b7cbe1 --- /dev/null +++ b/assets/images/svgs/icon-office-bag-2.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/images/svgs/icon-office-bag.svg b/assets/images/svgs/icon-office-bag.svg new file mode 100755 index 0000000..a425e37 --- /dev/null +++ b/assets/images/svgs/icon-office-bag.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/images/svgs/icon-paypal.svg b/assets/images/svgs/icon-paypal.svg new file mode 100755 index 0000000..54f45f7 --- /dev/null +++ b/assets/images/svgs/icon-paypal.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/images/svgs/icon-pie.svg b/assets/images/svgs/icon-pie.svg new file mode 100755 index 0000000..0eb53f9 --- /dev/null +++ b/assets/images/svgs/icon-pie.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/images/svgs/icon-speech-bubble.svg b/assets/images/svgs/icon-speech-bubble.svg new file mode 100755 index 0000000..2e1f2bd --- /dev/null +++ b/assets/images/svgs/icon-speech-bubble.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/svgs/icon-tasks.svg b/assets/images/svgs/icon-tasks.svg new file mode 100755 index 0000000..a6c280f --- /dev/null +++ b/assets/images/svgs/icon-tasks.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/images/svgs/icon-user-male.svg b/assets/images/svgs/icon-user-male.svg new file mode 100755 index 0000000..2832c4f --- /dev/null +++ b/assets/images/svgs/icon-user-male.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/svgs/icon-zip-folder.svg b/assets/images/svgs/icon-zip-folder.svg new file mode 100755 index 0000000..32ea4af --- /dev/null +++ b/assets/images/svgs/icon-zip-folder.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/images/svgs/keycloak-icon.svg b/assets/images/svgs/keycloak-icon.svg new file mode 100755 index 0000000..71661c2 --- /dev/null +++ b/assets/images/svgs/keycloak-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/svgs/mastercard.svg b/assets/images/svgs/mastercard.svg new file mode 100755 index 0000000..3fdc683 --- /dev/null +++ b/assets/images/svgs/mastercard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/svgs/paypal.svg b/assets/images/svgs/paypal.svg new file mode 100755 index 0000000..41e02d5 --- /dev/null +++ b/assets/images/svgs/paypal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/components/apps/patient/form/AlamatSection.vue b/components/apps/patient/form/AlamatSection.vue new file mode 100644 index 0000000..ca3dcdc --- /dev/null +++ b/components/apps/patient/form/AlamatSection.vue @@ -0,0 +1,236 @@ + + + diff --git a/components/apps/patient/form/DataDiriSection.vue b/components/apps/patient/form/DataDiriSection.vue new file mode 100644 index 0000000..f5691bc --- /dev/null +++ b/components/apps/patient/form/DataDiriSection.vue @@ -0,0 +1,516 @@ + + + + + diff --git a/components/apps/patient/form/KesehatanSection.vue b/components/apps/patient/form/KesehatanSection.vue new file mode 100644 index 0000000..3106465 --- /dev/null +++ b/components/apps/patient/form/KesehatanSection.vue @@ -0,0 +1,100 @@ + + + diff --git a/components/apps/patient/form/PembayaranSection.vue b/components/apps/patient/form/PembayaranSection.vue new file mode 100644 index 0000000..b5ed96f --- /dev/null +++ b/components/apps/patient/form/PembayaranSection.vue @@ -0,0 +1,53 @@ + + + diff --git a/components/apps/patient/form/PenanggungJawabSection.vue b/components/apps/patient/form/PenanggungJawabSection.vue new file mode 100644 index 0000000..c031bd3 --- /dev/null +++ b/components/apps/patient/form/PenanggungJawabSection.vue @@ -0,0 +1,167 @@ + + + diff --git a/components/apps/patient/form/SosialSection.vue b/components/apps/patient/form/SosialSection.vue new file mode 100644 index 0000000..eb3ce8d --- /dev/null +++ b/components/apps/patient/form/SosialSection.vue @@ -0,0 +1,145 @@ + + + diff --git a/components/apps/registration/form/AppointmentSchedule.vue b/components/apps/registration/form/AppointmentSchedule.vue new file mode 100644 index 0000000..3f19dad --- /dev/null +++ b/components/apps/registration/form/AppointmentSchedule.vue @@ -0,0 +1,227 @@ + + + diff --git a/components/apps/registration/form/PatientData.vue b/components/apps/registration/form/PatientData.vue new file mode 100644 index 0000000..156edf5 --- /dev/null +++ b/components/apps/registration/form/PatientData.vue @@ -0,0 +1,249 @@ + + + diff --git a/components/apps/registration/form/RegistrationType.vue b/components/apps/registration/form/RegistrationType.vue new file mode 100644 index 0000000..92ee36e --- /dev/null +++ b/components/apps/registration/form/RegistrationType.vue @@ -0,0 +1,106 @@ + + + diff --git a/components/apps/registration/form/RiskAssessment.vue b/components/apps/registration/form/RiskAssessment.vue new file mode 100644 index 0000000..3b56d89 --- /dev/null +++ b/components/apps/registration/form/RiskAssessment.vue @@ -0,0 +1,159 @@ + + + diff --git a/components/auth/BoxedLoginForm.vue b/components/auth/BoxedLoginForm.vue new file mode 100755 index 0000000..2c14b86 --- /dev/null +++ b/components/auth/BoxedLoginForm.vue @@ -0,0 +1,73 @@ + + + diff --git a/components/auth/BoxedRegisterForm.vue b/components/auth/BoxedRegisterForm.vue new file mode 100755 index 0000000..9ef3499 --- /dev/null +++ b/components/auth/BoxedRegisterForm.vue @@ -0,0 +1,61 @@ + + diff --git a/components/auth/LoginForm.vue b/components/auth/LoginForm.vue new file mode 100755 index 0000000..8354fa3 --- /dev/null +++ b/components/auth/LoginForm.vue @@ -0,0 +1,75 @@ + + + diff --git a/components/auth/RegisterForm.vue b/components/auth/RegisterForm.vue new file mode 100755 index 0000000..0cc8398 --- /dev/null +++ b/components/auth/RegisterForm.vue @@ -0,0 +1,61 @@ + + diff --git a/components/auth/ResetForm.vue b/components/auth/ResetForm.vue new file mode 100755 index 0000000..811c0f0 --- /dev/null +++ b/components/auth/ResetForm.vue @@ -0,0 +1,15 @@ + + diff --git a/components/auth/TwoStepForm.vue b/components/auth/TwoStepForm.vue new file mode 100755 index 0000000..c97b64a --- /dev/null +++ b/components/auth/TwoStepForm.vue @@ -0,0 +1,18 @@ + \ No newline at end of file diff --git a/components/content/MenuTreeItem.vue b/components/content/MenuTreeItem.vue new file mode 100644 index 0000000..3f8b0ba --- /dev/null +++ b/components/content/MenuTreeItem.vue @@ -0,0 +1,186 @@ + + + + + diff --git a/components/dashboard/BlogCards.vue b/components/dashboard/BlogCards.vue new file mode 100755 index 0000000..f140670 --- /dev/null +++ b/components/dashboard/BlogCards.vue @@ -0,0 +1,45 @@ + + diff --git a/components/dashboard/DailyActivities.vue b/components/dashboard/DailyActivities.vue new file mode 100755 index 0000000..f131711 --- /dev/null +++ b/components/dashboard/DailyActivities.vue @@ -0,0 +1,35 @@ + + + + diff --git a/components/dashboard/NewCustomer.vue b/components/dashboard/NewCustomer.vue new file mode 100755 index 0000000..6a1c73c --- /dev/null +++ b/components/dashboard/NewCustomer.vue @@ -0,0 +1,21 @@ + + diff --git a/components/dashboard/RevenueCard.vue b/components/dashboard/RevenueCard.vue new file mode 100755 index 0000000..af379c5 --- /dev/null +++ b/components/dashboard/RevenueCard.vue @@ -0,0 +1,115 @@ + + diff --git a/components/dashboard/RevenueProducts.vue b/components/dashboard/RevenueProducts.vue new file mode 100755 index 0000000..c90ac18 --- /dev/null +++ b/components/dashboard/RevenueProducts.vue @@ -0,0 +1,54 @@ + + diff --git a/components/dashboard/TotalIncome.vue b/components/dashboard/TotalIncome.vue new file mode 100755 index 0000000..c53820f --- /dev/null +++ b/components/dashboard/TotalIncome.vue @@ -0,0 +1,68 @@ + + diff --git a/components/layout/full/Main.vue b/components/layout/full/Main.vue new file mode 100755 index 0000000..b79beb4 --- /dev/null +++ b/components/layout/full/Main.vue @@ -0,0 +1,65 @@ + + + diff --git a/components/layout/full/customizer/Customizer.vue b/components/layout/full/customizer/Customizer.vue new file mode 100755 index 0000000..769bd39 --- /dev/null +++ b/components/layout/full/customizer/Customizer.vue @@ -0,0 +1,154 @@ + + + + + + + + diff --git a/components/layout/full/logo/Logo.vue b/components/layout/full/logo/Logo.vue new file mode 100755 index 0000000..5de71d2 --- /dev/null +++ b/components/layout/full/logo/Logo.vue @@ -0,0 +1,26 @@ + + diff --git a/components/layout/full/logo/LogoDark.vue b/components/layout/full/logo/LogoDark.vue new file mode 100755 index 0000000..0afc155 --- /dev/null +++ b/components/layout/full/logo/LogoDark.vue @@ -0,0 +1,10 @@ + + diff --git a/components/layout/full/logo/LogoLight.vue b/components/layout/full/logo/LogoLight.vue new file mode 100755 index 0000000..4dc5d70 --- /dev/null +++ b/components/layout/full/logo/LogoLight.vue @@ -0,0 +1,10 @@ + + diff --git a/components/layout/full/vertical-header/AppsLink.vue b/components/layout/full/vertical-header/AppsLink.vue new file mode 100755 index 0000000..c42e12b --- /dev/null +++ b/components/layout/full/vertical-header/AppsLink.vue @@ -0,0 +1,24 @@ + + diff --git a/components/layout/full/vertical-header/LanguageDD.vue b/components/layout/full/vertical-header/LanguageDD.vue new file mode 100755 index 0000000..2a92962 --- /dev/null +++ b/components/layout/full/vertical-header/LanguageDD.vue @@ -0,0 +1,47 @@ + + diff --git a/components/layout/full/vertical-header/Navigations.vue b/components/layout/full/vertical-header/Navigations.vue new file mode 100755 index 0000000..39552ea --- /dev/null +++ b/components/layout/full/vertical-header/Navigations.vue @@ -0,0 +1,30 @@ + + + +s \ No newline at end of file diff --git a/components/layout/full/vertical-header/NotificationDD.vue b/components/layout/full/vertical-header/NotificationDD.vue new file mode 100755 index 0000000..b907c6b --- /dev/null +++ b/components/layout/full/vertical-header/NotificationDD.vue @@ -0,0 +1,43 @@ + + diff --git a/components/layout/full/vertical-header/ProfileDD.vue b/components/layout/full/vertical-header/ProfileDD.vue new file mode 100755 index 0000000..24b7958 --- /dev/null +++ b/components/layout/full/vertical-header/ProfileDD.vue @@ -0,0 +1,227 @@ + + + + diff --git a/components/layout/full/vertical-header/RightMobileSidebar.vue b/components/layout/full/vertical-header/RightMobileSidebar.vue new file mode 100755 index 0000000..5241b85 --- /dev/null +++ b/components/layout/full/vertical-header/RightMobileSidebar.vue @@ -0,0 +1,23 @@ + + + + diff --git a/components/layout/full/vertical-header/Searchbar.vue b/components/layout/full/vertical-header/Searchbar.vue new file mode 100755 index 0000000..2ae9f44 --- /dev/null +++ b/components/layout/full/vertical-header/Searchbar.vue @@ -0,0 +1,39 @@ + + + diff --git a/components/layout/full/vertical-header/ThemeToggler.vue b/components/layout/full/vertical-header/ThemeToggler.vue new file mode 100755 index 0000000..02d7e6f --- /dev/null +++ b/components/layout/full/vertical-header/ThemeToggler.vue @@ -0,0 +1,38 @@ + + + diff --git a/components/layout/full/vertical-header/VerticalHeader.vue b/components/layout/full/vertical-header/VerticalHeader.vue new file mode 100755 index 0000000..8c9314e --- /dev/null +++ b/components/layout/full/vertical-header/VerticalHeader.vue @@ -0,0 +1,120 @@ + + + diff --git a/components/layout/full/vertical-sidebar/Dropdown/Dropdown.vue b/components/layout/full/vertical-sidebar/Dropdown/Dropdown.vue new file mode 100755 index 0000000..3a0a0f8 --- /dev/null +++ b/components/layout/full/vertical-sidebar/Dropdown/Dropdown.vue @@ -0,0 +1,53 @@ + + + diff --git a/components/layout/full/vertical-sidebar/Icon.vue b/components/layout/full/vertical-sidebar/Icon.vue new file mode 100755 index 0000000..cf6d051 --- /dev/null +++ b/components/layout/full/vertical-sidebar/Icon.vue @@ -0,0 +1,23 @@ + + + diff --git a/components/layout/full/vertical-sidebar/MinIconItems.ts b/components/layout/full/vertical-sidebar/MinIconItems.ts new file mode 100755 index 0000000..4b109e0 --- /dev/null +++ b/components/layout/full/vertical-sidebar/MinIconItems.ts @@ -0,0 +1,50 @@ + +export interface minisidebar { + icon?: string; + id?:number; + tooltip?:string +} +const MiniSideIcons: minisidebar[] = [ + { + icon: 'layers-line-duotone', + tooltip:'Modules', + id: 1 + }, + { + icon: 'notes-line-duotone', + tooltip:'Pages', + id: 2, + }, + { + icon: 'palette-round-line-duotone', + tooltip:'Forms', + id: 3 + }, + { + icon:'align-vertical-spacing-broken', + tooltip:'Tables', + id: 4 + }, + { + icon:'chart-line-duotone', + tooltip:'Charts', + id: 5 + }, + { + icon:'widget-6-line-duotone', + tooltip:'UI Components', + id: 6 + }, + { + icon:'lock-keyhole-line-duotone', + tooltip:'Authentication Pages', + id: 7 + }, + { + icon:'mirror-left-line-duotone', + tooltip:'Others', + id: 8 + } +] + +export default MiniSideIcons; diff --git a/components/layout/full/vertical-sidebar/NavCollapse/NavCollapse.vue b/components/layout/full/vertical-sidebar/NavCollapse/NavCollapse.vue new file mode 100755 index 0000000..5a6046b --- /dev/null +++ b/components/layout/full/vertical-sidebar/NavCollapse/NavCollapse.vue @@ -0,0 +1,42 @@ + + + diff --git a/components/layout/full/vertical-sidebar/NavGroup/NavGroup.vue b/components/layout/full/vertical-sidebar/NavGroup/NavGroup.vue new file mode 100755 index 0000000..49f3de7 --- /dev/null +++ b/components/layout/full/vertical-sidebar/NavGroup/NavGroup.vue @@ -0,0 +1,14 @@ + + + diff --git a/components/layout/full/vertical-sidebar/NavItem/NavItem.vue b/components/layout/full/vertical-sidebar/NavItem/NavItem.vue new file mode 100755 index 0000000..aefeb6d --- /dev/null +++ b/components/layout/full/vertical-sidebar/NavItem/NavItem.vue @@ -0,0 +1,49 @@ + + + diff --git a/components/layout/full/vertical-sidebar/VerticalSidebar.vue b/components/layout/full/vertical-sidebar/VerticalSidebar.vue new file mode 100755 index 0000000..3953071 --- /dev/null +++ b/components/layout/full/vertical-sidebar/VerticalSidebar.vue @@ -0,0 +1,159 @@ + + + diff --git a/components/layout/full/vertical-sidebar/sidebarItem.ts b/components/layout/full/vertical-sidebar/sidebarItem.ts new file mode 100755 index 0000000..b715a23 --- /dev/null +++ b/components/layout/full/vertical-sidebar/sidebarItem.ts @@ -0,0 +1,709 @@ +export interface menu { + header?: string; + title?: string; + icon?: any; + id?: number; + to?: string; + chip?: string; + BgColor?: string; + chipBgColor?: string; + chipColor?: string; + chipVariant?: string; + chipIcon?: string; + children?: menu[]; + disabled?: boolean; + type?: string; + subCaption?: string; +} +const sidebarItem: menu[] = [ + { + header: 'dashboards', + id: 1, + children: [ + { + title: 'Dashboard1', + icon: 'widget-add-line-duotone', + to: '/dashboards/dashboard1' + }, + { + title: 'Dashboard2', + icon: 'chart-line-duotone', + to: '/dashboards/dashboard2' + }, + { + title: 'Dashboard3', + icon: 'screencast-2-line-duotone', + to: '/dashboards/dashboard3' + }, + { + title: 'Front Pages', + icon: 'home-angle-linear', + to: '/', + children: [ + { + title: 'Homepage', + to: '/front-page/homepage' + }, + { + title: 'About Us', + to: '/front-page/about-us' + }, + { + title: 'Blog', + to: '/front-page/blog/posts' + }, + { + title: 'Blog Details', + to: '/front-page/blog/early-black-friday-amazon-deals-cheap-tvs-headphones' + }, + { + title: 'Contact Us', + to: '/front-page/contact-us' + }, + { + title: 'Portfolio', + to: '/front-page/portfolio' + }, + { + title: 'Pricing', + to: '/front-page/pricing' + } + ] + }, + ] + }, + + { + header: 'apps', + id: 1, + children: [ + { + title: 'ECommerce', + icon: 'cart-3-line-duotone', + to: '/ecommerce/', + children: [ + { + title: 'Shop', + to: '/ecommerce/products' + }, + { + title: 'Detail', + to: '/ecommerce/product/detail/1' + }, + { + title: 'List', + to: '/ecommerce/productlist' + }, + { + title: 'Checkout', + to: '/ecommerce/checkout' + }, + { + title: 'Add Product', + to: '/ecommerce/add-product' + }, + { + title: 'Edit Product', + to: '/ecommerce/edit-product' + } + ] + }, + { + title: 'Blog', + icon: 'widget-4-line-duotone', + to: '/', + children: [ + { + title: 'Blog Posts', + to: '/apps/blog/posts' + }, + { + title: 'Blog Details', + to: '/apps/blog/early-black-friday-amazon-deals-cheap-tvs-headphones' + } + ] + }, + { + title: 'User Profile', + icon: 'shield-user-line-duotone', + to: '/', + children: [ + { + title: 'Profile', + to: '/apps/user/profile' + }, + { + title: 'Followers', + to: '/apps/user/profile/followers' + }, + { + title: 'Friends', + to: '/apps/user/profile/friends' + }, + { + title: 'Gallery', + to: '/apps/user/profile/gallery' + } + ] + }, + { + title: 'Invoice', + icon: 'bill-check-outline', + to: '/', + children: [ + { + title: 'List', + to: '/apps/invoice' + }, + { + title: 'Details', + to: '/apps/invoice/details/102' + }, + { + title: 'Create', + to: '/apps/invoice/create' + }, + { + title: 'Edit', + to: '/apps/invoice/edit/102' + } + ] + }, + { + title: 'Calendar', + icon: 'calendar-mark-line-duotone', + to: '/apps/calendar' + }, + { + title: 'Email', + icon: 'letter-linear', + to: '/apps/email' + }, + { + title: 'Chats', + icon: 'chat-round-line-line-duotone', + to: '/apps/chats' + }, + { + title: 'Notes', + icon: 'document-text-line-duotone', + to: '/apps/notes' + }, + { + title: 'Kanban', + icon: 'airbuds-case-minimalistic-line-duotone', + to: '/apps/kanban' + }, + { + title: 'Contact', + icon: 'iphone-line-duotone', + to: '/apps/contacts' + }, + { + title: 'Tickets', + icon: 'ticker-star-outline', + to: '/apps/tickets' + }, + ] + }, + + { + header: 'pages', + id: 2, + children: [ + + { + title: 'Account Setting', + icon: 'settings-minimalistic-line-duotone', + to: '/pages/account-settings' + }, + { + title: 'Banners Widgets', + icon: 'align-vertical-spacing-line-duotone', + to: '/widgets/banners' + }, + { + title: 'Cards Widgets', + icon: 'cardholder-line-duotone', + to: '/widgets/cards' + }, + { + title: 'Charts Widgets', + icon: 'chart-square-line-duotone', + to: '/widgets/charts' + }, + { + title: 'FAQ', + icon: 'question-circle-line-duotone', + to: '/pages/faq' + }, + { + title: 'Gallery Lightbox', + icon: 'gallery-bold-duotone', + to: '/pages/gallery-lightbox', + }, + { + title: 'Landing Page', + icon: 'passport-line-duotone', + to: '/' + }, + { + title: 'Pricing', + icon: 'dollar-line-duotone', + to: '/pages/pricing' + }, + { + title: 'Search Results', + icon: 'card-search-line-duotone', + to: '/pages/search-results' + }, + { + title: 'Social Contacts', + icon: 'chat-round-like-linear', + to: '/pages/social-media-contacts' + }, + { + title: 'Treeview', + icon: 'transmission-line-duotone', + to: '/pages/treeview' + }, + + + + ] + }, + { + header: 'icons', + id: 2, + children: [ + { + title: 'Tabler Icons', + icon: 'sticker-smile-circle-2-line-duotone', + to: '/icons/tabler' + }, + { + title: 'Solar Icons', + icon: 'sticker-smile-circle-2-line-duotone', + to: '/icons/solar' + } + ] + }, + + { + header: 'Forms', + id: 3, + children: [ + { + title: 'Form Elements', + icon: 'text-selection-line-duotone', + to: '/components/', + children: [ + { + title: 'Autocomplete', + to: '/forms/form-elements/autocomplete' + }, + { + title: 'Combobox', + to: '/forms/form-elements/combobox' + }, + { + title: 'Button', + to: '/forms/form-elements/button' + }, + { + title: 'Checkbox', + to: '/forms/form-elements/checkbox' + }, + { + title: 'Custom Inputs', + to: '/forms/form-elements/custominputs' + }, + { + title: 'File Inputs', + to: '/forms/form-elements/fileinputs' + }, + { + title: 'Radio', + to: '/forms/form-elements/radio' + }, + { + title: 'Date Time', + to: '/forms/form-elements/date-time' + }, + { + title: 'Select', + to: '/forms/form-elements/select' + }, + { + title: 'Slider', + to: '/forms/form-elements/slider' + }, + { + title: 'Switch', + to: '/forms/form-elements/switch' + }, + { + title: 'Time Picker', + to: '/forms/form-elements/time-picker' + }, + + { + title: 'Stepper', + to: '/forms/form-elements/stepper' + } + ] + }, + { + title: 'Form Layout', + icon: 'layers-minimalistic-outline', + to: '/forms/form-layouts' + }, + { + title: 'Form Horizontal', + icon: 'password-minimalistic-input-line-duotone', + to: '/forms/form-horizontal' + }, + { + title: 'Form Vertical', + icon: 'slider-vertical-line-duotone', + to: '/forms/form-vertical' + }, + { + title: 'Form Custom', + icon: 'clapperboard-play-outline', + to: '/forms/form-custom' + }, + { + title: 'Form Validation', + icon: 'soundwave-square-line-duotone', + to: '/forms/form-validation' + }, + { + title: 'Editor', + icon: 'clapperboard-edit-line-duotone', + to: '/forms/editor' + } + ] + }, + + { + header: 'tables', + id: 4, + children: [ + { + title: 'Basic Table', + icon: 'tablet-line-duotone', + to: '/tables/basic' + }, + { + title: 'Dark Table', + icon: 'bedside-table-4-outline', + to: '/tables/dark' + }, + { + title: 'Density Table', + icon: 'bedside-table-3-linear', + to: '/tables/density' + }, + { + title: 'Fixed Header Table', + icon: 'archive-up-minimlistic-broken', + to: '/tables/fixed-header' + }, + { + title: 'Height Table', + icon: 'archive-down-minimlistic-broken', + to: '/tables/height' + }, + { + title: 'Editable Table', + icon: 'document-add-linear', + to: '/tables/editable' + } + ] + }, + + { + header: 'datatables', + id: 4, + children: [ + { + title: 'Basic Table', + icon: 'database-outline', + to: '/tables/datatables/basic' + }, + { + title: 'Header Table', + icon: 'folder-open-broken', + to: '/tables/datatables/header' + }, + { + title: 'Selection Table', + icon: 'chart-square-broken', + to: '/tables/datatables/selection' + }, + { + title: 'Sorting Table', + icon: 'card-send-line-duotone', + to: '/tables/datatables/sorting' + }, + { + title: 'Pagination Table', + icon: 'tag-horizontal-broken', + to: '/tables/datatables/pagination' + }, + { + title: 'Filtering Table', + icon: 'tuning-square-2-line-duotone', + to: '/tables/datatables/filtering' + }, + { + title: 'Grouping Table', + icon: 'tuning-square-2-line-duotone', + to: '/tables/datatables/grouping' + }, + { + title: 'Table Slots', + icon: 'closet-line-duotone', + to: '/tables/datatables/slots' + }, + { + title: 'CRUD Table', + icon: 'text-underline-cross-broken', + to: '/tables/datatables/crudtable' + } + ] + }, + + { + header: 'Charts', + id: 5, + children: [ + { + title: 'Line', + icon: 'chat-square-2-outline', + to: '/charts/line-chart' + }, + { + title: 'Gredient', + icon: 'round-graph-linear', + to: '/charts/gredient-chart' + }, + { + title: 'Area', + icon: 'graph-up-linear', + to: '/charts/area-chart' + }, + { + title: 'Candlestick', + icon: 'chandelier-broken', + to: '/charts/candlestick-chart' + }, + { + title: 'Column', + icon: 'colour-tuneing-broken', + to: '/charts/column-chart' + }, + { + title: 'Doughnut & Pie', + icon: 'pie-chart-2-linear', + to: '/charts/doughnut-pie-chart' + }, + { + title: 'Radialbar & Radar', + icon: 'radar-2-outline', + to: '/charts/radialbar-chart' + } + ] + }, + + { + header: 'UI', + id: 6, + children: [ + { + title: 'Alert', + icon: 'info-circle-linear', + to: '/ui-components/alert' + }, + { + title: 'Accordion', + icon: 'waterdrops-line-duotone', + to: '/ui-components/accordion' + }, + { + title: 'Avatar', + icon: 'expressionless-circle-outline', + to: '/ui-components/avatar' + }, + { + title: 'Chip', + icon: 'tag-horizontal-line-duotone', + to: '/ui-components/chip' + }, + { + title: 'Dialog', + icon: 'bolt-line-duotone', + to: '/ui-components/dialogs' + }, + { + title: 'List', + icon: 'checklist-bold-duotone', + to: '/ui-components/list' + }, + { + title: 'Menus', + icon: 'menu-dots-circle-outline', + to: '/ui-components/menus' + }, + { + title: 'Rating', + icon: 'shield-star-outline', + to: '/ui-components/rating' + }, + { + title: 'Tabs', + icon: 'box-minimalistic-line-duotone', + to: '/ui-components/tabs' + }, + { + title: 'Tooltip', + icon: 'transmission-square-outline', + to: '/ui-components/tooltip' + }, + { + title: 'Typography', + icon: 'text-circle-linear', + to: '/ui-components/typography' + } + ] + }, + + { + header: 'Auth', + id: 7, + children: [ + { + title: 'Error', + icon: 'bug-minimalistic-line-duotone', + to: '/auth/404' + }, + { + title: 'Side Login', + icon: 'login-3-line-duotone', + to: '/auth/login' + }, + { + title: 'Boxed Login', + icon: 'login-3-line-duotone', + to: '/auth/login2' + }, + { + title: 'Side Register', + icon: 'user-plus-rounded-line-duotone', + to: '/auth/register' + }, + { + title: 'Boxed Register', + icon: 'user-plus-rounded-line-duotone', + to: '/auth/register2' + }, + { + title: 'Side Forgot Pwd', + icon: 'password-outline', + to: '/auth/forgot-password' + }, + { + title: 'Boxed Forgot Pwd', + icon: 'password-outline', + to: '/auth/forgot-password2' + }, + { + title: 'Side Two Steps', + icon: 'siderbar-line-duotone', + to: '/auth/two-step' + }, + { + title: 'Boxed Two Steps', + icon: 'siderbar-line-duotone', + to: '/auth/two-step2' + }, + { + title: 'Maintenance', + icon: 'settings-line-duotone', + to: '/auth/maintenance' + } + ] + }, + { + header: 'Multi Level', + id: 8, + children: [ + { + title: 'Menu Level', + icon: 'align-left-line-duotone', + to: '#', + id: 8, + children: [ + { + title: 'Level 1', + to: '/level1' + }, + { + title: 'Level 1 ', + to: '/2level', + children: [ + { + title: 'Level 2', + to: '/barry' + }, + { + title: 'Level 2', + to: '/2.2level', + children: [ + { + title: 'Level 3', + to: '/barry' + } + ] + } + ] + } + ] + } + ] + }, + { + header: 'More Options', + id: 8, + children: [ + { + title: 'Applications', + icon: 'check-circle-bold', + BgColor: 'primary' + }, + { + title: 'Form Options', + icon: 'check-circle-bold', + BgColor: 'secondary' + }, + { + title: 'Table Variations', + icon: 'check-circle-bold', + BgColor: 'error' + }, + { + title: 'Charts Selection', + icon: 'check-circle-bold', + BgColor: 'warning' + }, + { + title: 'Widgets', + icon: 'check-circle-bold', + BgColor: 'success' + } + ] + } +]; + +export default sidebarItem; diff --git a/components/shared/AppBaseCard.vue b/components/shared/AppBaseCard.vue new file mode 100755 index 0000000..cafc1e7 --- /dev/null +++ b/components/shared/AppBaseCard.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/components/shared/AppEmailCard.vue b/components/shared/AppEmailCard.vue new file mode 100755 index 0000000..90df114 --- /dev/null +++ b/components/shared/AppEmailCard.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/components/shared/BaseBreadcrumb.vue b/components/shared/BaseBreadcrumb.vue new file mode 100755 index 0000000..aa6499c --- /dev/null +++ b/components/shared/BaseBreadcrumb.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/components/shared/CardHeaderFooter.vue b/components/shared/CardHeaderFooter.vue new file mode 100755 index 0000000..ad2f282 --- /dev/null +++ b/components/shared/CardHeaderFooter.vue @@ -0,0 +1,24 @@ + + + diff --git a/components/shared/UiChildCard.vue b/components/shared/UiChildCard.vue new file mode 100755 index 0000000..a61b3e6 --- /dev/null +++ b/components/shared/UiChildCard.vue @@ -0,0 +1,17 @@ + + + diff --git a/components/shared/UiParentCard.vue b/components/shared/UiParentCard.vue new file mode 100755 index 0000000..465be28 --- /dev/null +++ b/components/shared/UiParentCard.vue @@ -0,0 +1,22 @@ + + +// ===============================|| Ui Parent Card||=============================== // + diff --git a/components/shared/UiParentCardLogo.vue b/components/shared/UiParentCardLogo.vue new file mode 100755 index 0000000..0148532 --- /dev/null +++ b/components/shared/UiParentCardLogo.vue @@ -0,0 +1,22 @@ + + +// ===============================|| Ui Parent Card||=============================== // + diff --git a/components/shared/UiTableCard.vue b/components/shared/UiTableCard.vue new file mode 100755 index 0000000..bec85d0 --- /dev/null +++ b/components/shared/UiTableCard.vue @@ -0,0 +1,19 @@ + + + diff --git a/components/shared/UiTextfieldPrimary.vue b/components/shared/UiTextfieldPrimary.vue new file mode 100755 index 0000000..8133b77 --- /dev/null +++ b/components/shared/UiTextfieldPrimary.vue @@ -0,0 +1,9 @@ + + + diff --git a/components/shared/WidgetCard.vue b/components/shared/WidgetCard.vue new file mode 100755 index 0000000..b5cbbb3 --- /dev/null +++ b/components/shared/WidgetCard.vue @@ -0,0 +1,20 @@ + + + diff --git a/components/shared/WidgetCardv2.vue b/components/shared/WidgetCardv2.vue new file mode 100755 index 0000000..b11e7df --- /dev/null +++ b/components/shared/WidgetCardv2.vue @@ -0,0 +1,23 @@ + + + diff --git a/components/style-components/shadow/Shadow.vue b/components/style-components/shadow/Shadow.vue new file mode 100755 index 0000000..aa3f5a7 --- /dev/null +++ b/components/style-components/shadow/Shadow.vue @@ -0,0 +1,15 @@ + + diff --git a/components/style-components/typography/DefaultText.vue b/components/style-components/typography/DefaultText.vue new file mode 100755 index 0000000..3dfcc6a --- /dev/null +++ b/components/style-components/typography/DefaultText.vue @@ -0,0 +1,25 @@ + + diff --git a/components/style-components/typography/Heading.vue b/components/style-components/typography/Heading.vue new file mode 100755 index 0000000..829e8c2 --- /dev/null +++ b/components/style-components/typography/Heading.vue @@ -0,0 +1,49 @@ + + diff --git a/components/ui-components/alert/Basic.vue b/components/ui-components/alert/Basic.vue new file mode 100755 index 0000000..a059829 --- /dev/null +++ b/components/ui-components/alert/Basic.vue @@ -0,0 +1,6 @@ + diff --git a/components/ui-components/alert/Closable.vue b/components/ui-components/alert/Closable.vue new file mode 100755 index 0000000..fe62d49 --- /dev/null +++ b/components/ui-components/alert/Closable.vue @@ -0,0 +1,30 @@ + + diff --git a/components/ui-components/alert/Filled.vue b/components/ui-components/alert/Filled.vue new file mode 100755 index 0000000..b179db3 --- /dev/null +++ b/components/ui-components/alert/Filled.vue @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/components/ui-components/button/BaseButtons.vue b/components/ui-components/button/BaseButtons.vue new file mode 100755 index 0000000..905c270 --- /dev/null +++ b/components/ui-components/button/BaseButtons.vue @@ -0,0 +1,10 @@ + diff --git a/components/ui-components/button/ColorsButtons.vue b/components/ui-components/button/ColorsButtons.vue new file mode 100755 index 0000000..9511f67 --- /dev/null +++ b/components/ui-components/button/ColorsButtons.vue @@ -0,0 +1,12 @@ + + diff --git a/components/ui-components/button/IconColorSizes.vue b/components/ui-components/button/IconColorSizes.vue new file mode 100755 index 0000000..7189d03 --- /dev/null +++ b/components/ui-components/button/IconColorSizes.vue @@ -0,0 +1,9 @@ + diff --git a/components/ui-components/button/OutlinedButtons.vue b/components/ui-components/button/OutlinedButtons.vue new file mode 100755 index 0000000..661c598 --- /dev/null +++ b/components/ui-components/button/OutlinedButtons.vue @@ -0,0 +1,11 @@ + + diff --git a/components/ui-components/button/SizeButtons.vue b/components/ui-components/button/SizeButtons.vue new file mode 100755 index 0000000..d5955b7 --- /dev/null +++ b/components/ui-components/button/SizeButtons.vue @@ -0,0 +1,23 @@ + \ No newline at end of file diff --git a/components/ui-components/button/TextButtons.vue b/components/ui-components/button/TextButtons.vue new file mode 100755 index 0000000..ad0b394 --- /dev/null +++ b/components/ui-components/button/TextButtons.vue @@ -0,0 +1,12 @@ + + diff --git a/components/ui-components/cards/CardsContentWrap.vue b/components/ui-components/cards/CardsContentWrap.vue new file mode 100755 index 0000000..9d1fcf1 --- /dev/null +++ b/components/ui-components/cards/CardsContentWrap.vue @@ -0,0 +1,82 @@ + + + diff --git a/components/ui-components/cards/CardsMedia.vue b/components/ui-components/cards/CardsMedia.vue new file mode 100755 index 0000000..b958dc1 --- /dev/null +++ b/components/ui-components/cards/CardsMedia.vue @@ -0,0 +1,34 @@ + + + diff --git a/components/ui-components/cards/CardsProps.vue b/components/ui-components/cards/CardsProps.vue new file mode 100755 index 0000000..2d6f023 --- /dev/null +++ b/components/ui-components/cards/CardsProps.vue @@ -0,0 +1,12 @@ + + + diff --git a/components/ui-components/cards/CardsSlots.vue b/components/ui-components/cards/CardsSlots.vue new file mode 100755 index 0000000..4314bab --- /dev/null +++ b/components/ui-components/cards/CardsSlots.vue @@ -0,0 +1,14 @@ + + + diff --git a/components/ui-components/cards/CardsTwitter.vue b/components/ui-components/cards/CardsTwitter.vue new file mode 100755 index 0000000..021cadb --- /dev/null +++ b/components/ui-components/cards/CardsTwitter.vue @@ -0,0 +1,49 @@ + + + diff --git a/components/ui-components/cards/CardsWeather.vue b/components/ui-components/cards/CardsWeather.vue new file mode 100755 index 0000000..ccc6777 --- /dev/null +++ b/components/ui-components/cards/CardsWeather.vue @@ -0,0 +1,115 @@ + + + diff --git a/composables/useMenuManagement.ts b/composables/useMenuManagement.ts new file mode 100644 index 0000000..2ce9af0 --- /dev/null +++ b/composables/useMenuManagement.ts @@ -0,0 +1,134 @@ +import type { MenuItem } from '~/types/menu' + +export const useMenuManagement = () => { + const menuItems = ref([]) + const menuOptions = ref([]) + const references = ref([]) + const selectedReference = ref('Referensi') + const isLoading = ref(false) + + // Load menus from JSON file + const loadMenus = async () => { + isLoading.value = true + try { + const response = await $fetch<{ success: boolean; data: { menus: MenuItem[]; menuOptions: string[]; references: string[] } }>('/api/menus/list') + const data = response.data + menuItems.value = data.menus || [] + menuOptions.value = data.menuOptions || [] + references.value = data.references || [] + } catch (error) { + console.error('Error loading menus:', error) + throw error + } finally { + isLoading.value = false + } + } + + // Save single menu item + const saveMenu = async (menuItem: MenuItem) => { + try { + const response = await $fetch<{ success: boolean; data: MenuItem }>('/api/menus/save', { + method: 'POST', + body: { menuItem, reference: selectedReference.value } + }) + const data = response.data + + // Update local state + const index = menuItems.value.findIndex(item => item.id === menuItem.id) + if (index >= 0) { + menuItems.value[index] = data + } else { + menuItems.value.push(data) + } + + return data + } catch (error) { + console.error('Error saving menu:', error) + throw error + } + } + + // Delete menu item + const deleteMenu = async (menuId: string) => { + try { + await $fetch('/api/menus/delete', { + method: 'DELETE', + body: { menuId, reference: selectedReference.value } + }) + + // Remove from local state + const removeFromItems = (items: MenuItem[]): MenuItem[] => { + return items.filter(item => { + if (item.id === menuId) return false + if (item.children) { + item.children = removeFromItems(item.children) + } + return true + }) + } + + menuItems.value = removeFromItems(menuItems.value) + } catch (error) { + console.error('Error deleting menu:', error) + throw error + } + } + + // Update menu order + const updateMenuOrder = async (newOrder: MenuItem[]) => { + try { + await $fetch('/api/menus/reorder', { + method: 'POST', + body: { menus: newOrder, reference: selectedReference.value } + }) + + menuItems.value = newOrder + } catch (error) { + console.error('Error updating menu order:', error) + throw error + } + } + + // Generate Vue page from menu + const generatePage = async (menuItem: MenuItem) => { + try { + const pageData = { + name: menuItem.title.replace(/\s+/g, ''), + path: menuItem.url, + templateType: 'default', + metadata: { + title: menuItem.title, + description: `Page for ${menuItem.title}`, + keywords: [menuItem.title.toLowerCase()] + }, + content: { + title: menuItem.title, + icon: menuItem.icon + } + } + + await $fetch('/api/pages/generate', { + method: 'POST', + body: pageData + }) + + return pageData + } catch (error) { + console.error('Error generating page:', error) + throw error + } + } + + return { + menuItems: readonly(menuItems), + menuOptions: readonly(menuOptions), + references: readonly(references), + selectedReference, + isLoading: readonly(isLoading), + loadMenus, + saveMenu, + deleteMenu, + updateMenuOrder, + generatePage + } +} diff --git a/composables/usePatientForm.ts b/composables/usePatientForm.ts new file mode 100644 index 0000000..9a018a8 --- /dev/null +++ b/composables/usePatientForm.ts @@ -0,0 +1,131 @@ +// composables/usePatientForm.ts +import type { FhirPatient, FhirHumanName } from "~/types/fhir/humanName"; + +interface PatientFormData { + dataDiri: { + namaLengkap: string; + jenisKelamin: string; + tanggalLahir: string; + nomorIdentitas: string; + jenisIdentitas: string; + fhirName?: FhirHumanName | null; + }; + // ... other interfaces +} + +export const usePatientForm = () => { + const convertToFhirPatient = (formData: PatientFormData): FhirPatient => { + const fhirPatient: FhirPatient = { + resourceType: "Patient", + identifier: [], + active: true, + name: [], + telecom: [], + gender: undefined, + birthDate: undefined, + address: [] + }; + + // Add parsed FHIR name + if (formData.dataDiri.fhirName) { + fhirPatient.name!.push(formData.dataDiri.fhirName); + } + + // Gender mapping + if (formData.dataDiri.jenisKelamin) { + fhirPatient.gender = + formData.dataDiri.jenisKelamin === "L" ? "male" : "female"; + } + + // Birth date + if (formData.dataDiri.tanggalLahir) { + fhirPatient.birthDate = formData.dataDiri.tanggalLahir; + } + + // Identifiers + if (formData.dataDiri.nomorIdentitas) { + fhirPatient.identifier!.push({ + use: "official", + type: { + coding: [ + { + system: "http://terminology.hl7.org/CodeSystem/v2-0203", + code: + formData.dataDiri.jenisIdentitas === "KTP" ? "NNESP" : "PPN", + display: formData.dataDiri.jenisIdentitas + } + ] + }, + value: formData.dataDiri.nomorIdentitas + }); + } + + return fhirPatient; + }; + + return { + convertToFhirPatient + }; +}; +interface PersonalInfo { + nik?: string; + fullName?: string; + birthPlace?: string; + birthDate?: string; + gender?: string; +} + +interface ContactInfo { + phone?: string; + address?: string; + province?: string; + city?: string; +} + +// export const usePatientForm = () => { +// const validatePersonalInfo = (data: PersonalInfo) => { +// const errors: Record = {}; + +// if (!data.nik) errors.nik = "NIK wajib diisi"; +// if (!data.fullName) errors.fullName = "Nama lengkap wajib diisi"; +// if (!data.birthPlace) errors.birthPlace = "Tempat lahir wajib diisi"; +// if (!data.birthDate) errors.birthDate = "Tanggal lahir wajib diisi"; +// if (!data.gender) errors.gender = "Jenis kelamin wajib diisi"; + +// return { +// valid: Object.keys(errors).length === 0, +// errors +// }; +// }; + +// const validateContactInfo = (data: ContactInfo) => { +// const errors: Record = {}; + +// if (!data.phone) errors.phone = "Nomor telepon wajib diisi"; +// if (!data.address) errors.address = "Alamat wajib diisi"; +// if (!data.province) errors.province = "Provinsi wajib diisi"; +// if (!data.city) errors.city = "Kota wajib diisi"; + +// return { +// valid: Object.keys(errors).length === 0, +// errors +// }; +// }; + +// const generateMRNumber = () => { +// const date = new Date(); +// const year = date.getFullYear().toString().substr(-2); +// const month = (date.getMonth() + 1).toString().padStart(2, "0"); +// const random = Math.floor(Math.random() * 10000) +// .toString() +// .padStart(4, "0"); + +// return `MR${year}${month}${random}`; +// }; + +// return { +// validatePersonalInfo, +// validateContactInfo, +// generateMRNumber +// }; +// }; diff --git a/composables/useUserInfo.ts b/composables/useUserInfo.ts new file mode 100755 index 0000000..acfcab6 --- /dev/null +++ b/composables/useUserInfo.ts @@ -0,0 +1,606 @@ +import type { ComputedRef, Ref } from "vue"; +import type { ExtendedUser } from "~/types/auth"; +import { computed, ref, watch, readonly } from "vue"; + +export interface UseUserInfoReturnType { + // State + isAuthenticated: ComputedRef; + isLoading: ComputedRef; + user: ComputedRef; + userRoles: ComputedRef; + clientRoles: ComputedRef; + accessToken: ComputedRef; + sessionExpires: ComputedRef; + isIdle: Ref; + + // Raw data for debugging + data: Ref; + status: Ref; + + // Session data from [...].ts + idToken: ComputedRef; + refreshToken: ComputedRef; + accessTokenPayload: ComputedRef; + expiresAt: ComputedRef; + sessionScope: ComputedRef; + jwtToken: ComputedRef; + + // Role checking functions + hasRole: (role: string) => boolean; + hasClientRole: (role: string) => boolean; + hasAnyRole: (roles: string[]) => boolean; + isAdmin: ComputedRef; + + // Session monitoring functions + updateActivity: () => void; + startSessionMonitoring: () => (() => void) | null; + stopSessionMonitoring: () => void; + + // Authentication actions + login: (provider?: string) => Promise; + logout: (options?: any) => Promise; + fullLogout: () => Promise; + refresh: () => Promise; + forceRefreshSession: () => Promise; + isKeycloakSessionActive: () => Promise; +} + +export const useUserInfo = (): UseUserInfoReturnType => { + const { data, status, signIn, signOut, getSession } = useAuth(); + + // Internal writable refs for manual setting + const internalData = ref(data.value); + const internalStatus = ref(status.value); + + // Sync internal refs with useAuth data and status + watch( + () => data.value, + (newVal) => { + internalData.value = newVal; + }, + { immediate: true } + ); + + watch( + () => status.value, + (newVal) => { + internalStatus.value = newVal; + }, + { immediate: true } + ); + + // Session monitoring state + const lastActivity = ref(Date.now()); + const isIdle = ref(false); + const tabVisible = ref(true); + + // Constants + const IDLE_TIMEOUT = 15 * 60 * 1000; // 15 menit + const SESSION_CHECK_INTERVAL = 5 * 60 * 1000; // 5 menit + const TAB_INACTIVE_THRESHOLD = 10 * 60 * 1000; // 10 menit + + // Basic computed properties + const isAuthenticated = computed( + () => internalStatus.value === "authenticated" + ); + const isLoading = computed(() => internalStatus.value === "loading"); + + // User info from session + const user: ComputedRef = computed(() => { + if (internalData.value?.user) { + return internalData.value.user as ExtendedUser; + } + return null; + }); + + // Session data dari [...].ts callbacks - INILAH DATA YANG AKAN DITAMPILKAN + const idToken = computed(() => (internalData.value as any)?.id_token || ""); + + const accessToken = computed( + () => (internalData.value as any)?.access_token || "" + ); + + const refreshToken = computed( + () => (internalData.value as any)?.refresh_token || "" + ); + + const accessTokenPayload = computed( + () => (internalData.value as any)?.access_token_payload || null + ); + + const expiresAt = computed( + () => (internalData.value as any)?.expires_at || null + ); + + const sessionScope = computed(() => (internalData.value as any)?.scope || ""); + + const jwtToken = computed(() => (internalData.value as any)?.jwt || ""); + + // User roles dari session + const userRoles = computed(() => { + return (internalData.value?.user as any)?.roles || []; + }); + + const clientRoles = computed(() => { + return (internalData.value?.user as any)?.client_roles || []; + }); + + // Session expires + const sessionExpires = computed(() => data.value?.expires || null); + + // Activity tracking functions + const updateActivity = () => { + if (process.client) { + lastActivity.value = Date.now(); + isIdle.value = false; + } + }; + + const checkIdleStatus = () => { + if (!process.client) return; + const now = Date.now(); + const timeSinceLastActivity = now - lastActivity.value; + if ( + timeSinceLastActivity >= IDLE_TIMEOUT && + tabVisible.value && + isAuthenticated.value + ) { + isIdle.value = true; + handleIdleTimeout(); + } + }; + + const handleIdleTimeout = async () => { + if (!process.client) return; + try { + const session = await getSession(); + if ( + session && + session.expires && + new Date(session.expires) > new Date() + ) { + await navigateTo("/auth/login?reason=idle&continue=true"); + } else { + await logout({ reason: "expired" }); + } + } catch (error) { + console.error("Idle timeout handling error:", error); + await logout({ reason: "expired" }); + } + }; + + const handleVisibilityChange = async () => { + if (!process.client) return; + tabVisible.value = !document.hidden; + if (!document.hidden) { + updateActivity(); + const inactiveTime = Date.now() - lastActivity.value; + if (inactiveTime >= TAB_INACTIVE_THRESHOLD && isAuthenticated.value) { + await handleTabReactivation(); + } + } + }; + + const handleTabReactivation = async () => { + if (!process.client) return; + try { + const session = await getSession(); + if ( + session && + session.expires && + new Date(session.expires) > new Date() + ) { + await navigateTo("/auth/login?reason=tab_inactive&continue=true"); + } else { + await navigateTo("/auth/login?reason=session_expired"); + } + } catch (error) { + console.error("Tab reactivation error:", error); + await navigateTo("/auth/login?reason=error"); + } + }; + + const startSessionMonitoring = (): (() => void) | null => { + if (!process.client) { + console.warn("Session monitoring requires client-side environment"); + return null; + } + + if (!isAuthenticated.value) { + console.warn("Session monitoring requires authenticated user"); + return null; + } + + const events = [ + "mousedown", + "mousemove", + "keydown", + "scroll", + "touchstart", + "click" + ]; + const activityHandler = () => updateActivity(); + + events.forEach((event) => { + document.addEventListener(event, activityHandler, { passive: true }); + }); + + document.addEventListener("visibilitychange", handleVisibilityChange); + + const idleInterval = setInterval(checkIdleStatus, 60 * 1000); + + const sessionInterval = setInterval(async () => { + if (isAuthenticated.value) { + try { + await getSession(); + } catch (error) { + console.error("Session check failed:", error); + clearInterval(sessionInterval); + await logout({ reason: "expired" }); + } + } + }, SESSION_CHECK_INTERVAL); + + return () => { + events.forEach((event) => { + document.removeEventListener(event, activityHandler); + }); + document.removeEventListener("visibilitychange", handleVisibilityChange); + clearInterval(idleInterval); + clearInterval(sessionInterval); + }; + }; + + // **PERBAIKAN: Stop Session Monitoring Function** + const stopSessionMonitoring = (): void => { + // Implementation bisa ditambahkan jika diperlukan + //console.log("Stopping session monitoring..."); + }; + + // Role checking functions + const hasRole = (role: string): boolean => { + return userRoles.value.includes(role); + }; + + const hasClientRole = (role: string): boolean => { + return clientRoles.value.includes(role); + }; + + const hasAnyRole = (roles: string[]): boolean => { + return roles.some((role) => userRoles.value.includes(role)); + }; + + const isAdmin = computed( + () => hasRole("admin") || hasRole("super_admin") || hasRole("realm-admin") + ); + + // Login function + const login = async (provider = "keycloak") => { + try { + const currentUrl = window.location.pathname; + const callbackUrl = currentUrl !== "/auth/login" ? currentUrl : "/"; + + const result = await signIn(provider, { + callbackUrl, + redirect: true + }); + + if (result?.error) { + throw new Error(result.error); + } + + // **PERBAIKAN: Update activity setelah login berhasil** + updateActivity(); + await getSession(); + } catch (error) { + throw error; + } + }; + + // Enhanced Logout function dengan reason support + const logout = async (options?: { + redirect?: string; + clearStorage?: boolean; + confirmDialog?: boolean; + reason?: "manual" | "expired" | "admin" | "idle"; + }) => { + const defaultOptions = { + redirect: "/auth/login", + clearStorage: true, + confirmDialog: false, + reason: "idle" as const, + ...options + }; + + try { + //console.log("Logout called with options:", defaultOptions); + + // Menghilangkan pemanggilan fullLogout manual sesuai permintaan + + if (defaultOptions.clearStorage && process.client) { + //console.log("Clearing localStorage and sessionStorage"); + localStorage.removeItem("user-preferences"); + localStorage.removeItem("app-state"); + sessionStorage.clear(); + } + + // Memanggil API logout server untuk menghandle logout Keycloak dan pembersihan session + if (process.client) { + // Mengambil keycloakIssuer dan redirectUri dari public runtime config + const config = useRuntimeConfig(); + const keycloakIssuer = config.public.keycloakIssuer; + const origin = window.location.origin; + const redirectUri = `${origin}/auth/login`; + + let logoutUrl = `${keycloakIssuer}/protocol/openid-connect/logout?post_logout_redirect_uri=${encodeURIComponent( + redirectUri + )}`; + if (idToken.value) { + logoutUrl += `&id_token_hint=${encodeURIComponent(idToken.value)}`; + } + + //console.log("Calling Keycloak logout URL:", logoutUrl); + + await fetch("/api/auth/logout", { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify({ id_token_hint: idToken.value }) + }); + + // Bersihkan local storage setelah logout server + //console.log("Clearing localStorage and sessionStorage after server logout"); + localStorage.removeItem("user-preferences"); + localStorage.removeItem("app-state"); + sessionStorage.clear(); + } + + await signOut({ + callbackUrl: `${defaultOptions.redirect}?reason=idle`, + redirect: true + }); + } catch (error) { + console.error("Logout failed:", error); + throw new Error("Logout failed. Please try again."); + } + }; + + // Perbaikan fullLogout - simplified dan menggunakan logout yang sudah ada + const fullLogout = async () => { + try { + console.log("Full logout initiated"); + + // 1. Stop session monitoring terlebih dahulu + stopSessionMonitoring(); + console.log("Session monitoring stopped"); + console.log(process); + + if (process.client) { + // 2. Clear all storage before logout + console.log("Clearing all storage before logout"); + + // Clear localStorage + localStorage.removeItem("user-preferences"); + localStorage.removeItem("app-state"); + localStorage.clear(); + + // Clear sessionStorage + sessionStorage.clear(); + + // Log cookies and sessionStorage before clearing + console.log("Cookies before clearing:", document.cookie); + console.log( + "SessionStorage before clearing:", + JSON.stringify(sessionStorage) + ); + + // Clear cookies if any + const cookies = document.cookie.split(";"); + const domain = window.location.hostname; + cookies.forEach((c, index) => { + const eqPos = c.indexOf("="); + const name = eqPos > -1 ? c.substr(0, eqPos).trim() : c.trim(); + + console.log(`Clearing cookie [${index}]:`, name); + + // Clear cookie for current path + document.cookie = + name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/"; + + // Clear cookie for current path and domain + document.cookie = + name + + `=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/;domain=${domain}`; + + // Clear cookie for current path and domain with leading dot (for subdomains) + if (domain.indexOf(".") !== -1) { + const domainWithDot = "." + domain; + document.cookie = + name + + `=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/;domain=${domainWithDot}`; + } + + // Explicitly clear Keycloak cookies if present + const keycloakCookies = [ + "KEYCLOAK_SESSION", + "KEYCLOAK_IDENTITY", + "KEYCLOAK_IDENTITY_LEGACY", + "KEYCLOAK_REMEMBER_ME", + "KEYCLOAK_REMEMBER_ME_LEGACY" + ]; + if (keycloakCookies.includes(name)) { + console.log(`Explicitly clearing Keycloak cookie: ${name}`); + document.cookie = + name + + `=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/;domain=${domain}`; + if (domain.indexOf(".") !== -1) { + const domainWithDot = "." + domain; + document.cookie = + name + + `=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/;domain=${domainWithDot}`; + } + } + console.log("Cleared cookie:", name); + }); + } + + // 3. Call server API to get the correct logout URL + const response = await $fetch("/api/auth/logout", { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify({ + id_token_hint: idToken.value + }) + }); + + if (response.success && response.logoutUrl && process.client) { + console.log("Redirecting to Keycloak logout:", response.logoutUrl); + localStorage.removeItem("user-preferences"); + localStorage.removeItem("app-state"); + localStorage.clear(); + sessionStorage.clear(); + + // Append query parameters to logoutUrl + let logoutUrlWithParams = response.logoutUrl; + // 4. Redirect directly to Keycloak logout endpoint with appended params + window.location.href = logoutUrlWithParams; + return; + } + + // Fallback to signOut if server API fails + + // Clear local data and update status to logged out + if (process.client) { + // Clear localStorage and sessionStorage again to be sure + localStorage.clear(); + sessionStorage.clear(); + + // Reset data and status to reflect logged out state + internalData.value = null; + internalStatus.value = "unauthenticated"; + } + + return; + } catch (error) { + console.error("Full logout failed:", error); + // Emergency fallback - manual logout to Keycloak + if (process.client) { + try { + console.log("Executing emergency logout"); + const config = useRuntimeConfig(); + const keycloakIssuer = config.public.keycloakIssuer; + const origin = window.location.origin; + const redirectUri = `${origin}/auth/login?reason=emergency`; + // Clear all storage again to ensure + localStorage.clear(); + sessionStorage.clear(); + // Build logout URL with client_id as fallback + let emergencyLogoutUrl = `${keycloakIssuer}/protocol/openid-connect/logout?post_logout_redirect_uri=${encodeURIComponent( + redirectUri + )}`; + // Add id_token_hint if available + if (idToken.value) { + emergencyLogoutUrl += `&id_token_hint=${encodeURIComponent( + idToken.value + )}`; + } else { + // Use client_id as alternative if id_token_hint is missing + const clientId = config.public.keycloakClientId || "your-client-id"; + emergencyLogoutUrl += `&client_id=${encodeURIComponent( + String(clientId) + )}`; + } + console.log("Emergency logout URL:", emergencyLogoutUrl); + window.location.href = emergencyLogoutUrl; + } catch (emergencyError) { + console.error("Emergency logout failed:", emergencyError); + // Last resort - force redirect and clear storage + if (process.client) { + localStorage.clear(); + sessionStorage.clear(); + window.location.href = "/auth/login?reason=force"; + } + } + } + } + }; + + // Force refresh session + const forceRefreshSession = async () => { + try { + await getSession(); + } catch (error) { + console.error("Force refresh session error:", error); + } + }; + + // New method to check if Keycloak session is active + const isKeycloakSessionActive = async (): Promise => { + if (!process.client) return false; + + try { + const session = await getSession(); + if ( + session && + session.expires && + new Date(session.expires) > new Date() + ) { + return true; + } + return false; + } catch (error) { + console.error("Error checking Keycloak session active status:", error); + return false; + } + }; + + // Add computed property for accessTokenPayload + // **PERBAIKAN: Return semua fungsi yang diperlukan termasuk session monitoring** + return { + // State + isAuthenticated, + isLoading, + user, + userRoles, + clientRoles, + accessToken, + sessionExpires, + isIdle: readonly(isIdle), + + // Raw data untuk debugging + data: internalData, + status: internalStatus, + + // Session data dari [...].ts + idToken, + refreshToken, + accessTokenPayload, + expiresAt, + sessionScope, + jwtToken, + + // Role checking functions + hasRole, + hasClientRole, + hasAnyRole, + isAdmin, + + // Session monitoring functions + updateActivity, + startSessionMonitoring, + stopSessionMonitoring, + + // Authentication actions + login, + logout, + fullLogout, + refresh: async () => { + await getSession(); + }, + forceRefreshSession, + isKeycloakSessionActive + }; +}; diff --git a/config.ts b/config.ts new file mode 100755 index 0000000..8dd7c46 --- /dev/null +++ b/config.ts @@ -0,0 +1,23 @@ +export type ConfigProps = { + Sidebar_drawer: any; + Customizer_drawer: boolean; + mini_sidebar: boolean; + setHorizontalLayout: boolean; + setRTLLayout: boolean; + actTheme: string; + boxed: boolean; + setBorderCard: boolean; +}; + +const config: ConfigProps = { + Sidebar_drawer: null, + Customizer_drawer: false, + mini_sidebar: false, + setHorizontalLayout: false, // Horizontal layout + setRTLLayout: false, // RTL layout + actTheme: 'BLUE_THEME', + boxed: true, + setBorderCard: false +}; + +export default config; diff --git a/data/dashboard/dashboardData.ts b/data/dashboard/dashboardData.ts new file mode 100755 index 0000000..a6e4ca1 --- /dev/null +++ b/data/dashboard/dashboardData.ts @@ -0,0 +1,156 @@ +import type { RevenueProjects,BlogCards,DailyActivities } from '@/types/dashboard/index'; + +import product1 from "/images/products/dash-prd-1.jpg"; +import product2 from "/images/products/dash-prd-2.jpg"; +import product3 from "/images/products/dash-prd-3.jpg"; +import product4 from "/images/products/dash-prd-4.jpg"; + +import user1 from '/images/profile/user-1.jpg'; +import user2 from '/images/profile/user-2.jpg'; +import user3 from '/images/profile/user-3.jpg'; +import img1 from '/images/blog/blog-img1.jpg'; +import img2 from '/images/blog/blog-img2.jpg'; +import img3 from '/images/blog/blog-img3.jpg'; + +/*--Revenue Projects --*/ +const RevenueProjectsData: RevenueProjects[] = [ + { + img: product1, + leadname: "Minecraf App", + designation: "Jason Roy", + projectname: "73.2%", + statuscolor: "warning", + statustext: "Medium", + money: "$3.5K", + }, + { + img: product2, + leadname: "Web App Project", + designation: "Mathew Flintoff", + projectname: "73.2%", + statuscolor: "secondary", + statustext: "Very High", + money: "$24.5K", + }, + { + img: product3, + leadname: "Matdash Dashboard", + designation: "Anil Kumar", + projectname: "73.2%", + statuscolor: "success", + statustext: "Low", + money: "$12.8K", + }, + { + img: product4, + leadname: "Dashboard Co", + designation: "George Cruize", + projectname: "73.2%", + statuscolor: "error", + statustext: "High", + money: "$2.4K", + }, +]; + + +/*--Blog Cards--*/ +const BlogCardData: BlogCards[] = [ + { + avatar: user1, + coveravatar: img1, + read: '2 min Read', + title: 'As yen tumbles, gadget-loving Japan goes for secondhand iPhones', + link: '/', + category: 'Social', + name: 'Georgeanna Ramero', + view: '9,125', + comments: '3', + time: 'Mon, Dec 19' + }, + { + avatar: user2, + coveravatar: img2, + read: '2 min Read', + title: 'Intel loses bid to revive antitrust case against patent foe Fortress', + link: '/', + category: 'Gadget', + name: 'Georgeanna Ramero', + view: '4,150', + comments: '38', + time: 'Sun, Dec 18' + }, + { + avatar: user3, + coveravatar: img3, + read: '2 min Read', + title: 'COVID outbreak deepens as more lockdowns loom in China', + link: '/', + category: 'Health', + name: 'Georgeanna Ramero', + view: '9,480', + comments: '12', + time: 'Sat, Dec 17' + } +]; + +/*--Daily Activities--*/ +const DailyActivitiesData : DailyActivities[] = [ + { + title:'09:30 am', + subtitle:'Payment received from John Doe of $385.90', + textcolor:'primary', + boldtext:false, + line:true, + link:'', + url:'' + }, + { + title:'10:00 am', + subtitle:'New sale recorded', + textcolor:'secondary', + boldtext:true, + line:true, + link:'#ML-3467', + url:'' + }, + { + title:'12:00 am', + subtitle:'Payment was made of $64.95 to Michael', + textcolor:'success', + boldtext:false, + line:true, + link:'', + url:'' + }, + { + title:'09:30 am', + subtitle:'New sale recorded', + textcolor:'warning', + boldtext:true, + line:true, + link:'#ML-3467', + url:'' + }, + { + title:'09:30 am', + subtitle:'New arrival recorded', + textcolor:'error', + boldtext:true, + line:true, + link:'#ML-3467', + url:'' + }, + { + title:'12:00 am', + subtitle:'Payment Done', + textcolor:'success', + boldtext:false, + line:false, + link:'', + url:'' + }, +] + + + +export {RevenueProjectsData,BlogCardData,DailyActivitiesData} \ No newline at end of file diff --git a/data/indonesianPrefixes.json b/data/indonesianPrefixes.json new file mode 100644 index 0000000..3c49fd3 --- /dev/null +++ b/data/indonesianPrefixes.json @@ -0,0 +1,246 @@ +[ + "Dr.", + "dr.", + "DR.", + "Dr", + "dr", + "Prof.", + "prof.", + "PROF.", + "Prof", + "Ir.", + "ir.", + "IR.", + "Ir", + "Drs.", + "drs.", + "DRS.", + "Drs", + "Dra.", + "dra.", + "DRA.", + "Dra", + "drg.", + "drg", + "Drg.", + "Drg", + "H.", + "h.", + "Hj.", + "hj.", + "HJ.", + "Hajjah", + "K.H.", + "KH.", + "K.H", + "KH", + "Kyai", + "Ustadz", + "Ustaz", + "Ust.", + "Ustadzah", + "Ustazah", + "Habib", + "Sayyid", + "Syarif", + "Syarifah", + "Pdt.", + "Pdt", + "Pendeta", + "Ev.", + "Ev", + "Pnt.", + "Pnt", + "Pdp.", + "Pdp", + "Pdm.", + "Pdm", + "Pastor", + "Romo", + "Rm.", + "Rm", + "Suster", + "Sr.", + "Sr", + "Bruder", + "Br.", + "Br", + "Ida", + "I", + "Pedanda", + "Bhagawan", + "Rsi", + "Bhikkhu", + "Bhikkhuni", + "Samanera", + "Samaneri", + "Prada", + "Pratu", + "Praka", + "Kopda", + "Koptu", + "Kopka", + "Serda", + "Sertu", + "Serka", + "Serma", + "Pelda", + "Peltu", + "Letda", + "Lettu", + "Kapten", + "Mayor", + "Letkol", + "Kolonel", + "Brigjen", + "Mayjen", + "Letjen", + "Jenderal", + "Klk", + "Kls", + "Kld", + "Kpm", + "Kpt", + "Kps", + "Pel", + "Pem", + "Let", + "Lettu", + "Letda", + "Kapt", + "May", + "Letkol", + "Kol", + "Laksda", + "Laksma", + "Laksdya", + "Prada", + "Pratu", + "Praka", + "Kopda", + "Koptu", + "Kopka", + "Serda", + "Sertu", + "Serka", + "Serma", + "Pelda", + "Peltu", + "Letda", + "Lettu", + "Kapten", + "Mayor", + "Letkol", + "Kolonel", + "Marsda", + "Marsma", + "Marsdya", + "Bhayangkara", + "Bharada", + "Bharatu", + "Bharaka", + "Abrip", + "Abriptu", + "Abripda", + "Brigadir", + "Bripka", + "Briptu", + "Bripda", + "Aipda", + "Aiptu", + "Ipda", + "Iptu", + "AKP", + "Kompol", + "AKBP", + "Kombes", + "Brigjen", + "Irjen", + "Komjen", + "Jenderal", + "Raden", + "R.", + "R", + "Raden Mas", + "R.M.", + "RM.", + "Raden Ayu", + "R.A.", + "RA.", + "Raden Ajeng", + "R.Aj.", + "Kanjeng", + "K.", + "Gusti", + "Sultan", + "Sunan", + "Pangeran", + "Teuku", + "Cut", + "Andi", + "Daeng", + "Puang", + "La", + "Wa", + "Baginda", + "Tuanku", + "Tengku", + "Raja", + "Datuk", + "Sutan", + "Bapak", + "Bpk.", + "Bpk", + "Bp.", + "Bp", + "Pak", + "Ibu", + "Bu", + "Saudara", + "Sdr.", + "Sdr", + "Saudari", + "Sdri.", + "Sdri", + "Tuan", + "Tn.", + "Tn", + "Nyonya", + "Ny.", + "Ny", + "Nona", + "Nn.", + "Nn", + "Mas", + "Mbak", + "Mba", + "Dik", + "Adik", + "Kakak", + "Kak", + "Bang", + "Abang", + "Uda", + "Uni", + "Yang Mulia", + "YM.", + "Yang Terhormat", + "Yth.", + "Yang Berbahagia", + "Yb.", + "Notaris", + "Advokat", + "Adv.", + "S.H.", + "SH.", + "Ak.", + "CA.", + "CPA.", + "CMA.", + "Insinyur", + "Ins.", + "Dokter", + "Doktor", + "Guru", + "Dosen" +] diff --git a/data/indonesianSuffixes.json b/data/indonesianSuffixes.json new file mode 100644 index 0000000..b2d3996 --- /dev/null +++ b/data/indonesianSuffixes.json @@ -0,0 +1,198 @@ +[ + "S.Kom", + "S.Kom.", + "S.T", + "S.T.", + "S.E", + "S.E.", + "S.H", + "S.H.", + "S.Pd", + "S.Pd.", + "S.Ked", + "S.Ked.", + "S.Psi", + "S.Psi.", + "S.S", + "S.S.", + "S.Farm", + "S.Farm.", + "S.Si", + "S.Si.", + "S.Sos", + "S.Sos.", + "S.IP", + "S.IP.", + "S.I.Kom", + "S.I.Kom.", + "S.Hum", + "S.Hum.", + "S.Sn", + "S.Sn.", + "S.Ag", + "S.Ag.", + "S.Th.I", + "S.Th.I.", + "S.Fil", + "S.Fil.", + "S.Ars", + "S.Ars.", + "S.Kep", + "S.Kep.", + "S.Gz", + "S.Gz.", + "S.KM", + "S.KM.", + "S.K.M", + "S.K.M.", + "S.Mat", + "S.Mat.", + "S.Stat", + "S.Stat.", + "S.Kel", + "S.Kel.", + "S.Pi", + "S.Pi.", + "S.Hut", + "S.Hut.", + "S.TP", + "S.TP.", + "S.P", + "S.P.", + "S.Pt", + "S.Pt.", + "S.K.G", + "S.K.G.", + "S.Ds", + "S.Ds.", + "M.Kom", + "M.Kom.", + "M.T", + "M.T.", + "M.M", + "M.M.", + "M.Si", + "M.Si.", + "M.Pd", + "M.Pd.", + "M.Kes", + "M.Kes.", + "M.H", + "M.H.", + "M.A", + "M.A.", + "M.Sc", + "M.Sc.", + "MBA", + "M.B.A", + "M.B.A.", + "M.Sos", + "M.Sos.", + "M.Hum", + "M.Hum.", + "M.Ag", + "M.Ag.", + "M.Fil", + "M.Fil.", + "M.Sn", + "M.Sn.", + "M.Ars", + "M.Ars.", + "M.Kep", + "M.Kep.", + "M.Farm", + "M.Farm.", + "M.E", + "M.E.", + "M.Ak", + "M.Ak.", + "M.IP", + "M.IP.", + "M.I.Kom", + "M.I.Kom.", + "M.Psi", + "M.Psi.", + "Ph.D", + "Ph.D.", + "PhD", + "Dr.", + "Dr", + "dr.", + "dr", + "drg.", + "drg", + "Sp.A", + "Sp.A.", + "Sp.OG", + "Sp.OG.", + "Sp.PD", + "Sp.PD.", + "Sp.B", + "Sp.B.", + "Sp.JP", + "Sp.JP.", + "Sp.M", + "Sp.M.", + "Sp.THT", + "Sp.THT.", + "Sp.An", + "Sp.An.", + "Sp.Rad", + "Sp.Rad.", + "Sp.KJ", + "Sp.KJ.", + "Sp.S", + "Sp.S.", + "Sp.U", + "Sp.U.", + "Sp.BS", + "Sp.BS.", + "Sp.BA", + "Sp.BA.", + "Sp.KK", + "Sp.KK.", + "Sp.P", + "Sp.P.", + "Sp.PA", + "Sp.PA.", + "Sp.PK", + "Sp.PK.", + "Sp.RM", + "Sp.RM.", + "Sp.Or", + "Sp.Or.", + "Sp.KFR", + "Sp.KFR.", + "Sp.G", + "Sp.G.", + "A.Md", + "A.Md.", + "A.Ma", + "A.Ma.", + "A.Md.Keb", + "A.Md.Keb.", + "A.Md.Kep", + "A.Md.Kep.", + "A.Md.Kom", + "A.Md.Kom.", + "A.Md.T", + "A.Md.T.", + "A.Md.Gz", + "A.Md.Gz.", + "A.Md.Farm", + "A.Md.Farm.", + "A.P", + "A.P.", + "Apt.", + "Apt", + "Ners", + "Ners.", + "Prof.", + "Prof", + "Ir.", + "Ir", + "Drs.", + "Drs", + "Dra.", + "Dra" +] diff --git a/data/menus.json b/data/menus.json new file mode 100644 index 0000000..a1035bc --- /dev/null +++ b/data/menus.json @@ -0,0 +1,38 @@ +{ + "menus": [ + { + "id": "1", + "title": "Medis", + "url": "", + "icon": "mdi-medical-bag", + "parentId": null, + "order": 1, + "isActive": true, + "reference": "referensi", + "children": [ + { + "id": "1-1", + "title": "Diagnosa", + "url": "bridging/referensi/medis", + "icon": "", + "parentId": "1", + "order": 1, + "isActive": true, + "reference": "referensi" + }, + { + "id": "1-2", + "title": "Poliklinik", + "url": "bridging/referensi/medis", + "icon": "", + "parentId": "1", + "order": 2, + "isActive": true, + "reference": "referensi" + } + ] + } + ], + "references": ["Referensi", "Main", "Admin"], + "menuOptions": ["Select a menu", "Main Menu", "Side Menu", "Footer Menu"] +} diff --git a/data/pages.json b/data/pages.json new file mode 100644 index 0000000..1f3d15b --- /dev/null +++ b/data/pages.json @@ -0,0 +1,20 @@ +{ + "pages": [ + { + "id": "1", + "name": "Dashboard", + "path": "/dashboard", + "templateType": "dashboard", + "metadata": { + "title": "Dashboard", + "description": "Main dashboard page", + "keywords": ["dashboard", "admin"] + }, + "content": {}, + "createdBy": "admin", + "createdAt": "2025-06-30T05:32:00Z", + "updatedAt": "2025-06-30T05:32:00Z", + "status": "published" + } + ] +} diff --git a/data/roles.json b/data/roles.json new file mode 100644 index 0000000..997619f --- /dev/null +++ b/data/roles.json @@ -0,0 +1,20 @@ +{ + "roles": [ + { + "id": "1", + "name": "Admin", + "description": "Full system access", + "permissions": ["create", "read", "update", "delete"], + "directories": ["/pages/admin/*", "/pages/content/*", "/pages/roles/*"], + "createdAt": "2025-06-30T05:32:00Z" + }, + { + "id": "2", + "name": "Editor", + "description": "Content management access", + "permissions": ["create", "read", "update"], + "directories": ["/pages/content/*", "/pages/blog/*"], + "createdAt": "2025-06-30T05:32:00Z" + } + ] +} diff --git a/error.vue b/error.vue new file mode 100755 index 0000000..c21fb5f --- /dev/null +++ b/error.vue @@ -0,0 +1,13 @@ + + diff --git a/layouts/blank.vue b/layouts/blank.vue new file mode 100755 index 0000000..27526ee --- /dev/null +++ b/layouts/blank.vue @@ -0,0 +1,8 @@ +// ===============================|| Blank Layout ||=============================== // + + diff --git a/layouts/default.vue b/layouts/default.vue new file mode 100755 index 0000000..a8e4e5e --- /dev/null +++ b/layouts/default.vue @@ -0,0 +1,3 @@ + diff --git a/middleware/role.ts b/middleware/role.ts new file mode 100644 index 0000000..63ccb3d --- /dev/null +++ b/middleware/role.ts @@ -0,0 +1,40 @@ +// export default defineNuxtRouteMiddleware((to, from) => { +// const authStore = useAuthStore() + +// // Pastikan user sudah login +// if (!authStore.isAuthenticated) { +// return navigateTo('/login') +// } + +// // Ambil role yang dibutuhkan dari meta page +// const requiredRoles = to.meta.roles as string[] | undefined +// const requiredPermissions = to.meta.permissions as string[] | undefined + +// // Cek role +// if (requiredRoles && requiredRoles.length > 0) { +// const hasRequiredRole = requiredRoles.some(role => +// authStore.hasRole(role) +// ) + +// if (!hasRequiredRole) { +// throw createError({ +// statusCode: 403, +// statusMessage: 'Anda tidak memiliki akses ke halaman ini' +// }) +// } +// } + +// // Cek permissions +// if (requiredPermissions && requiredPermissions.length > 0) { +// const hasRequiredPermission = requiredPermissions.some(permission => +// authStore.hasPermission(permission) +// ) + +// if (!hasRequiredPermission) { +// throw createError({ +// statusCode: 403, +// statusMessage: 'Anda tidak memiliki izin untuk mengakses halaman ini' +// }) +// } +// } +// }) diff --git a/nuxt.config.ts b/nuxt.config.ts new file mode 100755 index 0000000..aa69d0d --- /dev/null +++ b/nuxt.config.ts @@ -0,0 +1,145 @@ +// https://nuxt.com/docs/api/configuration/nuxt-config +export default defineNuxtConfig({ + app: { + head: { + title: "RSSA", + titleTemplate: "%s - Admin Dashboard", + meta: [ + { charset: "utf-8" }, + { name: "viewport", content: "width=device-width, initial-scale=1" }, + { name: "format-detection", content: "telephone=no" } + ], + link: [ + { rel: "icon", type: "image/x-icon", href: "/favicon.ico" }, + { + rel: "stylesheet", + href: "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700&display=swap" + } + ] + } + }, + // css: [ + // "vuetify/lib/styles/main.sass", // Core Vuetify styles + // "@mdi/font/css/materialdesignicons.min.css", // Material Design Icons + // "~/scss/style.scss", // Custom application styles + // ], + /** + * Modules dan plugins + * Integrasi dengan ecosystem Nuxt.js + */ + modules: [ + "@pinia/nuxt", // State management dengan Pinia + [ + "@sidebase/nuxt-auth", + { + // Add auth module options here as per Sidebase auth guide + auth: { + isEnabled: true, + baseURL: + process.env.AUTH_ORIGIN || "http://meninjar.dev.rssa.id:3001", + provider: { + type: "authjs" + // Additional provider options can be added here + }, + globalAppMiddleware: { + isEnabled: true + } + } + } + ] + ], + + plugins: [ + "~/plugins/vuetify.ts" // Setup Vuetify dengan konfigurasi custom + ], + ssr: false, + + typescript: { + shim: false + }, + + build: { + transpile: ["vuetify"] + }, + + vite: { + define: { + "process.env.DEBUG": false + }, + server: { + allowedHosts: ["meninjar.dev.rssa.id"] + } + // css: { + // preprocessorOptions: { + // scss: { + // // Global SCSS variables yang dapat diakses di semua komponen + // additionalData: `@import "~/scss/variables.scss";`, + // }, + // }, + // }, + }, + + nitro: { + serveStatic: true, + compressPublicAssets: true, // Kompresi asset untuk faster loading, + + /** + * Prerender routes untuk static generation + * Halaman yang akan di-generate saat build time + */ + prerender: { + // routes: [ + // '/', // Landing page + // '/auth/login', // Halaman login + // '/auth/register' // Halaman register + // ] + } + + /** + * Route protection untuk production + * Middleware untuk security dan rate limiting + */ + // routeRules: { + // '/admin/**': { + // headers: { 'X-Robots-Tag': 'noindex' } + // // index: false // ❌ Property ini tidak valid - sudah dihapus + // } + // } + }, + runtimeConfig: { + authSecret: process.env.AUTH_SECRET, + keycloakClientSecret: process.env.KEYCLOAK_CLIENT_SECRET, + keycloakClientId: process.env.KEYCLOAK_CLIENT_ID, + // Move keycloakIssuer to public to expose on client side + public: { + authUrl: process.env.AUTH_ORIGIN || "http://meninjar.dev.rssa.id:3000", + keycloakIssuer: + process.env.KEYCLOAK_ISSUER || "https://auth.rssa.top/realms/sandbox" + } + }, + // auth: { + // isEnabled: true, + // baseURL: process.env.AUTH_ORIGIN, + // provider: { + // type: "authjs", + // }, + // globalAppMiddleware: { + // isEnabled: true, + // }, + // }, + devServerHandlers: [], + + hooks: {}, + /** + * Development tools configuration + * Tools untuk meningkatkan developer experience + */ + devtools: { + enabled: true, // Enable Nuxt DevTools untuk debugging + timeline: { + enabled: true // Enable timeline untuk performance monitoring + } + }, + + compatibilityDate: "2024-10-23" +}); diff --git a/package-lock.json b/package-lock.json new file mode 100755 index 0000000..2e5fa69 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,13174 @@ +{ + "name": "matdash", + "version": "2.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "matdash", + "version": "2.0.0", + "hasInstallScript": true, + "dependencies": { + "@iconify/vue": "^4.1.1", + "@mdi/font": "7.4.47", + "@pinia/nuxt": "^0.11.1", + "@sidebase/nuxt-auth": "^0.10.1", + "@types/lodash-es": "^4.17.12", + "@vueuse/i18n": "^4.0.0-beta.12", + "apexcharts": "4.5.0", + "axios": "^1.9.0", + "axios-mock-adapter": "^2.1.0", + "jsonwebtoken": "^9.0.2", + "lodash-es": "^4.17.21", + "pinia": "^3.0.3", + "sass": "1.70.0", + "sass-loader": "^16.0.5", + "typescript": "^5.8.3", + "vee-validate": "^4.15.1", + "vite": "^6.3.5", + "vue": "3.5.13", + "vue-i18n": "^11.1.5", + "vue-tabler-icons": "2.21.0", + "vue3-apexcharts": "1.5.2", + "vue3-perfect-scrollbar": "1.6.1", + "vuetify": "3.7.18" + }, + "devDependencies": { + "nuxt": "^3.17.5" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", + "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", + "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.4", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.27.4", + "@babel/types": "^7.27.3", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", + "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.27.5", + "@babel/types": "^7.27.3", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz", + "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.27.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", + "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", + "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", + "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.1.tgz", + "integrity": "sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz", + "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", + "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.3", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", + "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@cloudflare/kv-asset-handler": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.4.0.tgz", + "integrity": "sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==", + "license": "MIT OR Apache-2.0", + "dependencies": { + "mime": "^3.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@cloudflare/kv-asset-handler/node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@dabh/diagnostics": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", + "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", + "license": "MIT", + "dependencies": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "node_modules/@dependents/detective-less": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@dependents/detective-less/-/detective-less-5.0.1.tgz", + "integrity": "sha512-Y6+WUMsTFWE5jb20IFP4YGa5IrGY/+a/FbOSjDF/wz9gepU2hwCYSXRHP/vPwBvwcY3SVMASt4yXxbXNXigmZQ==", + "license": "MIT", + "dependencies": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^7.0.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@emnapi/core": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.3.tgz", + "integrity": "sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.0.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", + "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.2.tgz", + "integrity": "sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.5.tgz", + "integrity": "sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.5.tgz", + "integrity": "sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.5.tgz", + "integrity": "sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.5.tgz", + "integrity": "sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.5.tgz", + "integrity": "sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.5.tgz", + "integrity": "sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.5.tgz", + "integrity": "sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.5.tgz", + "integrity": "sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.5.tgz", + "integrity": "sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.5.tgz", + "integrity": "sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.5.tgz", + "integrity": "sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.5.tgz", + "integrity": "sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.5.tgz", + "integrity": "sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.5.tgz", + "integrity": "sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.5.tgz", + "integrity": "sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.5.tgz", + "integrity": "sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.5.tgz", + "integrity": "sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.5.tgz", + "integrity": "sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.5.tgz", + "integrity": "sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.5.tgz", + "integrity": "sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.5.tgz", + "integrity": "sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.5.tgz", + "integrity": "sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.5.tgz", + "integrity": "sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.5.tgz", + "integrity": "sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz", + "integrity": "sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@fastify/busboy": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-3.1.1.tgz", + "integrity": "sha512-5DGmA8FTdB2XbDeEwc/5ZXBl6UbBAyBOOLlPuBnZ/N1SwdH9Ii+cOX3tBROlDgcTXxjOYnLMVoKk9+FXAw0CJw==", + "license": "MIT" + }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "license": "MIT" + }, + "node_modules/@iconify/vue": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@iconify/vue/-/vue-4.3.0.tgz", + "integrity": "sha512-Xq0h6zMrHBbrW8jXJ9fISi+x8oDQllg5hTDkDuxnWiskJ63rpJu9CvJshj8VniHVTbsxCg9fVoPAaNp3RQI5OQ==", + "license": "MIT", + "dependencies": { + "@iconify/types": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/cyberalien" + }, + "peerDependencies": { + "vue": ">=3" + } + }, + "node_modules/@intlify/core-base": { + "version": "11.1.6", + "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-11.1.6.tgz", + "integrity": "sha512-gfMLnoWGiQkA1BwK6Qbrog/e3I6Lnkhqk08XObJb0lMq6sLG1Ggl2MazVaMfGnv/E1Td8pCS5UwR54Ys+fOxmQ==", + "license": "MIT", + "dependencies": { + "@intlify/message-compiler": "11.1.6", + "@intlify/shared": "11.1.6" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/message-compiler": { + "version": "11.1.6", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-11.1.6.tgz", + "integrity": "sha512-w0LYo5sqgQZF3vEmjLlx+5PYk5EEiB+uigsBkka/DKoAIH2c5xlXcjAxhTgSw35Vrck+GOGriahFsfbHL+ZjPw==", + "license": "MIT", + "dependencies": { + "@intlify/shared": "11.1.6", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/shared": { + "version": "11.1.6", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-11.1.6.tgz", + "integrity": "sha512-G1Pe4UILhiGOItuehRW+Pk9/NlnRaMFsdnhZ1fwBjiHvrzitmPNZdLx7Eo3GPfRrsk1mdkilZSfgH8SnM419vA==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@ioredis/commands": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", + "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==", + "license": "MIT" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@kwsites/file-exists": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", + "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1" + } + }, + "node_modules/@kwsites/promise-deferred": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", + "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-2.0.0.tgz", + "integrity": "sha512-llMXd39jtP0HpQLVI37Bf1m2ADlEb35GYSh1SDSLsBhR+5iCxiNGlT31yqbNtVHygHAtMy6dWFERpU2JgufhPg==", + "license": "BSD-3-Clause", + "dependencies": { + "consola": "^3.2.3", + "detect-libc": "^2.0.0", + "https-proxy-agent": "^7.0.5", + "node-fetch": "^2.6.7", + "nopt": "^8.0.0", + "semver": "^7.5.3", + "tar": "^7.4.0" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/detect-libc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/@mdi/font": { + "version": "7.4.47", + "resolved": "https://registry.npmjs.org/@mdi/font/-/font-7.4.47.tgz", + "integrity": "sha512-43MtGpd585SNzHZPcYowu/84Vz2a2g31TvPMTm9uTiCSWzaheQySUcSyUH/46fPnuPQWof2yd0pGBtzee/IQWw==", + "license": "Apache-2.0" + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.11.tgz", + "integrity": "sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@tybys/wasm-util": "^0.9.0" + } + }, + "node_modules/@netlify/binary-info": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@netlify/binary-info/-/binary-info-1.0.0.tgz", + "integrity": "sha512-4wMPu9iN3/HL97QblBsBay3E1etIciR84izI3U+4iALY+JHCrI+a2jO0qbAZ/nxKoegypYEaiiqWXylm+/zfrw==", + "license": "Apache 2" + }, + "node_modules/@netlify/blobs": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@netlify/blobs/-/blobs-8.2.0.tgz", + "integrity": "sha512-9djLZHBKsoKk8XCgwWSEPK9QnT8qqxEQGuYh48gFIcNLvpBKkLnHbDZuyUxmNemCfDz7h0HnMXgSPnnUVgARhg==", + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": "^14.16.0 || >=16.0.0" + } + }, + "node_modules/@netlify/dev-utils": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@netlify/dev-utils/-/dev-utils-2.2.0.tgz", + "integrity": "sha512-5XUvZuffe3KetyhbWwd4n2ktd7wraocCYw10tlM+/u/95iAz29GjNiuNxbCD1T6Bn1MyGc4QLVNKOWhzJkVFAw==", + "license": "MIT", + "dependencies": { + "@whatwg-node/server": "^0.9.60", + "chokidar": "^4.0.1", + "decache": "^4.6.2", + "dot-prop": "9.0.0", + "env-paths": "^3.0.0", + "find-up": "7.0.0", + "lodash.debounce": "^4.0.8", + "netlify": "^13.3.5", + "parse-gitignore": "^2.0.0", + "uuid": "^11.1.0", + "write-file-atomic": "^6.0.0" + }, + "engines": { + "node": "^14.16.0 || >=16.0.0" + } + }, + "node_modules/@netlify/functions": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@netlify/functions/-/functions-3.1.10.tgz", + "integrity": "sha512-sI93kcJ2cUoMgDRPnrEm0lZhuiDVDqM6ngS/UbHTApIH3+eg3yZM5p/0SDFQQq9Bad0/srFmgBmTdXushzY5kg==", + "license": "MIT", + "dependencies": { + "@netlify/blobs": "9.1.2", + "@netlify/dev-utils": "2.2.0", + "@netlify/serverless-functions-api": "1.41.2", + "@netlify/zip-it-and-ship-it": "^12.1.0", + "cron-parser": "^4.9.0", + "decache": "^4.6.2", + "extract-zip": "^2.0.1", + "is-stream": "^4.0.1", + "jwt-decode": "^4.0.0", + "lambda-local": "^2.2.0", + "read-package-up": "^11.0.0", + "source-map-support": "^0.5.21" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@netlify/functions/node_modules/@netlify/blobs": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@netlify/blobs/-/blobs-9.1.2.tgz", + "integrity": "sha512-7dMjExSH4zj4ShvLem49mE3mf0K171Tx2pV4WDWhJbRUWW3SJIR2qntz0LvUGS97N5HO1SmnzrgWUhEXCsApiw==", + "license": "MIT", + "dependencies": { + "@netlify/dev-utils": "2.2.0", + "@netlify/runtime-utils": "1.3.1" + }, + "engines": { + "node": "^14.16.0 || >=16.0.0" + } + }, + "node_modules/@netlify/functions/node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@netlify/open-api": { + "version": "2.37.0", + "resolved": "https://registry.npmjs.org/@netlify/open-api/-/open-api-2.37.0.tgz", + "integrity": "sha512-zXnRFkxgNsalSgU8/vwTWnav3R+8KG8SsqHxqaoJdjjJtnZR7wo3f+qqu4z+WtZ/4V7fly91HFUwZ6Uz2OdW7w==", + "license": "MIT", + "engines": { + "node": ">=14.8.0" + } + }, + "node_modules/@netlify/runtime-utils": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@netlify/runtime-utils/-/runtime-utils-1.3.1.tgz", + "integrity": "sha512-7/vIJlMYrPJPlEW84V2yeRuG3QBu66dmlv9neTmZ5nXzwylhBEOhy11ai+34A8mHCSZI4mKns25w3HM9kaDdJg==", + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@netlify/serverless-functions-api": { + "version": "1.41.2", + "resolved": "https://registry.npmjs.org/@netlify/serverless-functions-api/-/serverless-functions-api-1.41.2.tgz", + "integrity": "sha512-pfCkH50JV06SGMNsNPjn8t17hOcId4fA881HeYQgMBOrewjsw4csaYgHEnCxCEu24Y5x75E2ULbFpqm9CvRCqw==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@netlify/zip-it-and-ship-it": { + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-12.1.4.tgz", + "integrity": "sha512-/wM1c0iyym/7SlowbgqTuu/+tJS8CDDs4vLhSizKntFl3VOeDVX0kr9qriH9wA2hYstwGSuHsEgEAnKdMcDBOg==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.22.5", + "@babel/types": "7.27.6", + "@netlify/binary-info": "^1.0.0", + "@netlify/serverless-functions-api": "^2.1.1", + "@vercel/nft": "0.29.4", + "archiver": "^7.0.0", + "common-path-prefix": "^3.0.0", + "copy-file": "^11.0.0", + "es-module-lexer": "^1.0.0", + "esbuild": "0.25.5", + "execa": "^8.0.0", + "fast-glob": "^3.3.3", + "filter-obj": "^6.0.0", + "find-up": "^7.0.0", + "is-builtin-module": "^3.1.0", + "is-path-inside": "^4.0.0", + "junk": "^4.0.0", + "locate-path": "^7.0.0", + "merge-options": "^3.0.4", + "minimatch": "^9.0.0", + "normalize-path": "^3.0.0", + "p-map": "^7.0.0", + "path-exists": "^5.0.0", + "precinct": "^12.0.0", + "require-package-name": "^2.0.1", + "resolve": "^2.0.0-next.1", + "semver": "^7.3.8", + "tmp-promise": "^3.0.2", + "toml": "^3.0.0", + "unixify": "^1.0.0", + "urlpattern-polyfill": "8.0.2", + "yargs": "^17.0.0", + "zod": "^3.23.8" + }, + "bin": { + "zip-it-and-ship-it": "bin.js" + }, + "engines": { + "node": ">=18.14.0" + } + }, + "node_modules/@netlify/zip-it-and-ship-it/node_modules/@netlify/serverless-functions-api": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@netlify/serverless-functions-api/-/serverless-functions-api-2.1.2.tgz", + "integrity": "sha512-uEFA0LAcBGd3+fgDSLkTTsrgyooKqu8mN/qA+F/COS2A7NFWRcLFnjVKH/xZhxq+oQkrSa+XPS9qj2wgQosiQw==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@next/env": { + "version": "13.5.11", + "resolved": "https://registry.npmjs.org/@next/env/-/env-13.5.11.tgz", + "integrity": "sha512-fbb2C7HChgM7CemdCY+y3N1n8pcTKdqtQLbC7/EQtPdLvlMUT9JX/dBYl8MMZAtYG4uVMyPFHXckb68q/NRwqg==", + "license": "MIT", + "peer": true + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "13.5.9", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.5.9.tgz", + "integrity": "sha512-pVyd8/1y1l5atQRvOaLOvfbmRwefxLhqQOzYo/M7FQ5eaRwA1+wuCn7t39VwEgDd7Aw1+AIWwd+MURXUeXhwDw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "13.5.9", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.5.9.tgz", + "integrity": "sha512-DwdeJqP7v8wmoyTWPbPVodTwCybBZa02xjSJ6YQFIFZFZ7dFgrieKW4Eo0GoIcOJq5+JxkQyejmI+8zwDp3pwA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "13.5.9", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.5.9.tgz", + "integrity": "sha512-wdQsKsIsGSNdFojvjW3Ozrh8Q00+GqL3wTaMjDkQxVtRbAqfFBtrLPO0IuWChVUP2UeuQcHpVeUvu0YgOP00+g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "13.5.9", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.5.9.tgz", + "integrity": "sha512-6VpS+bodQqzOeCwGxoimlRoosiWlSc0C224I7SQWJZoyJuT1ChNCo+45QQH+/GtbR/s7nhaUqmiHdzZC9TXnXA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "13.5.9", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.5.9.tgz", + "integrity": "sha512-XxG3yj61WDd28NA8gFASIR+2viQaYZEFQagEodhI/R49gXWnYhiflTeeEmCn7Vgnxa/OfK81h1gvhUZ66lozpw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "13.5.9", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.5.9.tgz", + "integrity": "sha512-/dnscWqfO3+U8asd+Fc6dwL2l9AZDl7eKtPNKW8mKLh4Y4wOpjJiamhe8Dx+D+Oq0GYVjuW0WwjIxYWVozt2bA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "13.5.9", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.5.9.tgz", + "integrity": "sha512-T/iPnyurOK5a4HRUcxAlss8uzoEf5h9tkd+W2dSWAfzxv8WLKlUgbfk+DH43JY3Gc2xK5URLuXrxDZ2mGfk/jw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "13.5.9", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.5.9.tgz", + "integrity": "sha512-BLiPKJomaPrTAb7ykjA0LPcuuNMLDVK177Z1xe0nAem33+9FIayU4k/OWrtSn9SAJW/U60+1hoey5z+KCHdRLQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "13.5.9", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.5.9.tgz", + "integrity": "sha512-/72/dZfjXXNY/u+n8gqZDjI6rxKMpYsgBBYNZKWOQw0BpBF7WCnPflRy3ZtvQ2+IYI3ZH2bPyj7K+6a6wNk90Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nuxt/cli": { + "version": "3.25.1", + "resolved": "https://registry.npmjs.org/@nuxt/cli/-/cli-3.25.1.tgz", + "integrity": "sha512-7+Ut7IvAD4b5piikJFSgIqSPbHKFT5gq05JvCsEHRM0MPA5QR9QHkicklyMqSj0D/oEkDohen8qRgdxRie3oUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "c12": "^3.0.3", + "chokidar": "^4.0.3", + "citty": "^0.1.6", + "clipboardy": "^4.0.0", + "consola": "^3.4.2", + "defu": "^6.1.4", + "fuse.js": "^7.1.0", + "giget": "^2.0.0", + "h3": "^1.15.3", + "httpxy": "^0.1.7", + "jiti": "^2.4.2", + "listhen": "^1.9.0", + "nypm": "^0.6.0", + "ofetch": "^1.4.1", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^1.0.0", + "pkg-types": "^2.1.0", + "scule": "^1.3.0", + "semver": "^7.7.1", + "std-env": "^3.9.0", + "tinyexec": "^1.0.1", + "ufo": "^1.6.1", + "youch": "^4.1.0-beta.7" + }, + "bin": { + "nuxi": "bin/nuxi.mjs", + "nuxi-ng": "bin/nuxi.mjs", + "nuxt": "bin/nuxi.mjs", + "nuxt-cli": "bin/nuxi.mjs" + }, + "engines": { + "node": "^16.10.0 || >=18.0.0" + } + }, + "node_modules/@nuxt/devalue": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@nuxt/devalue/-/devalue-2.0.2.tgz", + "integrity": "sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@nuxt/devtools": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@nuxt/devtools/-/devtools-2.5.0.tgz", + "integrity": "sha512-ZeLMliVvBoPR4qmFFHsti+YhSFxcVfYv+SsHVfPMEomWQN7IUKJjLQHutFxixG2r0tDzvSeOyDN9J1KJmSLPfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nuxt/devtools-kit": "2.5.0", + "@nuxt/devtools-wizard": "2.5.0", + "@nuxt/kit": "^3.17.4", + "@vue/devtools-core": "^7.7.6", + "@vue/devtools-kit": "^7.7.6", + "birpc": "^2.3.0", + "consola": "^3.4.2", + "destr": "^2.0.5", + "error-stack-parser-es": "^1.0.5", + "execa": "^8.0.1", + "fast-npm-meta": "^0.4.3", + "get-port-please": "^3.1.2", + "hookable": "^5.5.3", + "image-meta": "^0.2.1", + "is-installed-globally": "^1.0.0", + "launch-editor": "^2.10.0", + "local-pkg": "^1.1.1", + "magicast": "^0.3.5", + "nypm": "^0.6.0", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^1.0.0", + "pkg-types": "^2.1.0", + "semver": "^7.7.2", + "simple-git": "^3.27.0", + "sirv": "^3.0.1", + "structured-clone-es": "^1.0.0", + "tinyglobby": "^0.2.14", + "vite-plugin-inspect": "^11.1.0", + "vite-plugin-vue-tracer": "^0.1.4", + "which": "^5.0.0", + "ws": "^8.18.2" + }, + "bin": { + "devtools": "cli.mjs" + }, + "peerDependencies": { + "vite": ">=6.0" + } + }, + "node_modules/@nuxt/devtools-kit": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@nuxt/devtools-kit/-/devtools-kit-2.5.0.tgz", + "integrity": "sha512-0EJ984cSSxrXxeVVUK+2NW+u2fbor/waxq/J/MJBc/q2oF/4KW2MQ18luxfmZ4A5PKSzLimCoMIOLlZkXcW9aA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^3.17.4", + "@nuxt/schema": "^3.17.4", + "execa": "^8.0.1" + }, + "peerDependencies": { + "vite": ">=6.0" + } + }, + "node_modules/@nuxt/devtools-wizard": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@nuxt/devtools-wizard/-/devtools-wizard-2.5.0.tgz", + "integrity": "sha512-ldS+lIvYzKw7IitNsedXEz9/DYB4rOaSHcg3OhQvSU+Yz4n0AFAqGEZIexG5YjbGKM5O96mLdqT2b8kt1OPcXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "consola": "^3.4.2", + "diff": "^8.0.2", + "execa": "^8.0.1", + "magicast": "^0.3.5", + "pathe": "^2.0.3", + "pkg-types": "^2.1.0", + "prompts": "^2.4.2", + "semver": "^7.7.2" + }, + "bin": { + "devtools-wizard": "cli.mjs" + } + }, + "node_modules/@nuxt/kit": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.17.5.tgz", + "integrity": "sha512-NdCepmA+S/SzgcaL3oYUeSlXGYO6BXGr9K/m1D0t0O9rApF8CSq/QQ+ja5KYaYMO1kZAEWH4s2XVcE3uPrrAVg==", + "license": "MIT", + "dependencies": { + "c12": "^3.0.4", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.5", + "ignore": "^7.0.5", + "jiti": "^2.4.2", + "klona": "^2.0.6", + "knitwork": "^1.2.0", + "mlly": "^1.7.4", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.1.0", + "scule": "^1.3.0", + "semver": "^7.7.2", + "std-env": "^3.9.0", + "tinyglobby": "^0.2.14", + "ufo": "^1.6.1", + "unctx": "^2.4.1", + "unimport": "^5.0.1", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@nuxt/schema": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/@nuxt/schema/-/schema-3.17.5.tgz", + "integrity": "sha512-A1DSQk2uXqRHXlgLWDeFCyZk/yPo9oMBMb9OsbVko9NLv9du2DO2cs9RQ68Amvdk8O2nG7/FxAMNnkMdQ8OexA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/shared": "^3.5.16", + "consola": "^3.4.2", + "defu": "^6.1.4", + "pathe": "^2.0.3", + "std-env": "^3.9.0" + }, + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/@nuxt/schema/node_modules/@vue/shared": { + "version": "3.5.17", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.17.tgz", + "integrity": "sha512-CabR+UN630VnsJO/jHWYBC1YVXyMq94KKp6iF5MQgZJs5I8cmjw6oVMO1oDbtBkENSHSSn/UadWlW/OAgdmKrg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@nuxt/telemetry": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@nuxt/telemetry/-/telemetry-2.6.6.tgz", + "integrity": "sha512-Zh4HJLjzvm3Cq9w6sfzIFyH9ozK5ePYVfCUzzUQNiZojFsI2k1QkSBrVI9BGc6ArKXj/O6rkI6w7qQ+ouL8Cag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^3.15.4", + "citty": "^0.1.6", + "consola": "^3.4.2", + "destr": "^2.0.3", + "dotenv": "^16.4.7", + "git-url-parse": "^16.0.1", + "is-docker": "^3.0.0", + "ofetch": "^1.4.1", + "package-manager-detector": "^1.1.0", + "pathe": "^2.0.3", + "rc9": "^2.1.2", + "std-env": "^3.8.1" + }, + "bin": { + "nuxt-telemetry": "bin/nuxt-telemetry.mjs" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@nuxt/vite-builder": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/@nuxt/vite-builder/-/vite-builder-3.17.5.tgz", + "integrity": "sha512-SKlm73FuuPj1ZdVJ1JQfUed/lO5l7iJMbM+9K+CMXnifu7vV2ITaSxu8uZ/ice1FeLYwOZKEsjnJXB0QpqDArQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nuxt/kit": "3.17.5", + "@rollup/plugin-replace": "^6.0.2", + "@vitejs/plugin-vue": "^5.2.4", + "@vitejs/plugin-vue-jsx": "^4.2.0", + "autoprefixer": "^10.4.21", + "consola": "^3.4.2", + "cssnano": "^7.0.7", + "defu": "^6.1.4", + "esbuild": "^0.25.5", + "escape-string-regexp": "^5.0.0", + "exsolve": "^1.0.5", + "externality": "^1.0.2", + "get-port-please": "^3.1.2", + "h3": "^1.15.3", + "jiti": "^2.4.2", + "knitwork": "^1.2.0", + "magic-string": "^0.30.17", + "mlly": "^1.7.4", + "mocked-exports": "^0.1.1", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^1.0.0", + "pkg-types": "^2.1.0", + "postcss": "^8.5.4", + "rollup-plugin-visualizer": "^6.0.1", + "std-env": "^3.9.0", + "ufo": "^1.6.1", + "unenv": "^2.0.0-rc.17", + "unplugin": "^2.3.5", + "vite": "^6.3.5", + "vite-node": "^3.2.0", + "vite-plugin-checker": "^0.9.3", + "vue-bundle-renderer": "^2.1.1" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0.0" + }, + "peerDependencies": { + "vue": "^3.3.4" + } + }, + "node_modules/@nuxt/vite-builder/node_modules/rollup-plugin-visualizer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-6.0.3.tgz", + "integrity": "sha512-ZU41GwrkDcCpVoffviuM9Clwjy5fcUxlz0oMoTXTYsK+tcIFzbdacnrr2n8TXcHxbGKKXtOdjxM2HUS4HjkwIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "open": "^8.0.0", + "picomatch": "^4.0.2", + "source-map": "^0.7.4", + "yargs": "^17.5.1" + }, + "bin": { + "rollup-plugin-visualizer": "dist/bin/cli.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "rolldown": "1.x || ^1.0.0-beta", + "rollup": "2.x || 3.x || 4.x" + }, + "peerDependenciesMeta": { + "rolldown": { + "optional": true + }, + "rollup": { + "optional": true + } + } + }, + "node_modules/@oxc-parser/binding-darwin-arm64": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-arm64/-/binding-darwin-arm64-0.72.3.tgz", + "integrity": "sha512-g6wgcfL7At4wHNHutl0NmPZTAju+cUSmSX5WGUMyTJmozRzhx8E9a2KL4rTqNJPwEpbCFrgC29qX9f4fpDnUpA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@oxc-parser/binding-darwin-x64": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-x64/-/binding-darwin-x64-0.72.3.tgz", + "integrity": "sha512-pc+tplB2fd0AqdnXY90FguqSF2OwbxXwrMOLAMmsUiK4/ytr8Z/ftd49+d27GgvQJKeg2LfnIbskaQtY/j2tAA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@oxc-parser/binding-freebsd-x64": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-freebsd-x64/-/binding-freebsd-x64-0.72.3.tgz", + "integrity": "sha512-igBR6rOvL8t5SBm1f1rjtWNsjB53HNrM3au582JpYzWxOqCjeA5Jlm9KZbjQJC+J8SPB9xyljM7G+6yGZ2UAkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@oxc-parser/binding-linux-arm-gnueabihf": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.72.3.tgz", + "integrity": "sha512-/izdr3wg7bK+2RmNhZXC2fQwxbaTH3ELeqdR+Wg4FiEJ/C7ZBIjfB0E734bZGgbDu+rbEJTBlbG77XzY0wRX/Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@oxc-parser/binding-linux-arm-musleabihf": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.72.3.tgz", + "integrity": "sha512-Vz7C+qJb22HIFl3zXMlwvlTOR+MaIp5ps78060zsdeZh2PUGlYuUYkYXtGEjJV3kc8aKFj79XKqAY1EPG2NWQA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@oxc-parser/binding-linux-arm64-gnu": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.72.3.tgz", + "integrity": "sha512-nomoMe2VpVxW767jhF+G3mDGmE0U6nvvi5nw9Edqd/5DIylQfq/lEGUWL7qITk+E72YXBsnwHtpRRlIAJOMyZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@oxc-parser/binding-linux-arm64-musl": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.72.3.tgz", + "integrity": "sha512-4DswiIK5dI7hFqcMKWtZ7IZnWkRuskh6poI1ad4gkY2p678NOGtl6uOGCCRlDmLOOhp3R27u4VCTzQ6zra977w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@oxc-parser/binding-linux-riscv64-gnu": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.72.3.tgz", + "integrity": "sha512-R9GEiA4WFPGU/3RxAhEd6SaMdpqongGTvGEyTvYCS/MAQyXKxX/LFvc2xwjdvESpjIemmc/12aTTq6if28vHkQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@oxc-parser/binding-linux-s390x-gnu": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.72.3.tgz", + "integrity": "sha512-/sEYJQMVqikZO8gK9VDPT4zXo9du3gvvu8jp6erMmW5ev+14PErWRypJjktp0qoTj+uq4MzXro0tg7U+t5hP1w==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@oxc-parser/binding-linux-x64-gnu": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.72.3.tgz", + "integrity": "sha512-hlyljEZ0sMPKJQCd5pxnRh2sAf/w+Ot2iJecgV9Hl3brrYrYCK2kofC0DFaJM3NRmG/8ZB3PlxnSRSKZTocwCw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@oxc-parser/binding-linux-x64-musl": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-musl/-/binding-linux-x64-musl-0.72.3.tgz", + "integrity": "sha512-T17S8ORqAIq+YDFMvLfbNdAiYHYDM1+sLMNhesR5eWBtyTHX510/NbgEvcNemO9N6BNR7m4A9o+q468UG+dmbg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@oxc-parser/binding-wasm32-wasi": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-wasm32-wasi/-/binding-wasm32-wasi-0.72.3.tgz", + "integrity": "sha512-x0Ojn/jyRUk6MllvVB/puSvI2tczZBIYweKVYHNv1nBatjPRiqo+6/uXiKrZwSfGLkGARrKkTuHSa5RdZBMOdA==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.2.10" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@oxc-parser/binding-win32-arm64-msvc": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.72.3.tgz", + "integrity": "sha512-kRVAl87ugRjLZTm9vGUyiXU50mqxLPHY81rgnZUP1HtNcqcmTQtM/wUKQL2UdqvhA6xm6zciqzqCgJfU+RW8uA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@oxc-parser/binding-win32-x64-msvc": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.72.3.tgz", + "integrity": "sha512-vpVdoGAP5iGE5tIEPJgr7FkQJZA+sKjMkg5x1jarWJ1nnBamfGsfYiZum4QjCfW7jb+pl42rHVSS3lRmMPcyrQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.72.3.tgz", + "integrity": "sha512-CfAC4wrmMkUoISpQkFAIfMVvlPfQV3xg7ZlcqPXPOIMQhdKIId44G8W0mCPgtpWdFFAyJ+SFtiM+9vbyCkoVng==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@panva/hkdf": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.2.1.tgz", + "integrity": "sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw==", + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", + "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", + "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", + "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", + "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", + "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", + "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", + "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", + "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", + "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", + "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", + "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-wasm": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-wasm/-/watcher-wasm-2.5.1.tgz", + "integrity": "sha512-RJxlQQLkaMMIuWRozy+z2vEqbaQlCuaCgVZIUCzQLYggY22LZbP5Y1+ia+FD724Ids9e+XIyOLXLrLgQSHIthw==", + "bundleDependencies": [ + "napi-wasm" + ], + "license": "MIT", + "dependencies": { + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "napi-wasm": "^1.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-wasm/node_modules/napi-wasm": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", + "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", + "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", + "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@pinia/nuxt": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@pinia/nuxt/-/nuxt-0.11.1.tgz", + "integrity": "sha512-tCD8ioWhhIHKwm8Y9VvyhBAV/kK4W5uGBIYbI5iM4N1t7duOqK6ECBUavrMxMolELayqqMLb9+evegrh3S7s2A==", + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^3.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "pinia": "^3.0.3" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "dev": true, + "license": "MIT" + }, + "node_modules/@poppinss/colors": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@poppinss/colors/-/colors-4.1.4.tgz", + "integrity": "sha512-FA+nTU8p6OcSH4tLDY5JilGYr1bVWHpNmcLr7xmMEdbWmKHa+3QZ+DqefrXKmdjO/brHTnQZo20lLSjaO7ydog==", + "license": "MIT", + "dependencies": { + "kleur": "^4.1.5" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@poppinss/colors/node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@poppinss/dumper": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@poppinss/dumper/-/dumper-0.6.3.tgz", + "integrity": "sha512-iombbn8ckOixMtuV1p3f8jN6vqhXefNjJttoPaJDMeIk/yIGhkkL3OrHkEjE9SRsgoAx1vBUU2GtgggjvA5hCA==", + "license": "MIT", + "dependencies": { + "@poppinss/colors": "^4.1.4", + "@sindresorhus/is": "^7.0.1", + "supports-color": "^10.0.0" + } + }, + "node_modules/@poppinss/exception": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@poppinss/exception/-/exception-1.2.1.tgz", + "integrity": "sha512-aQypoot0HPSJa6gDPEPTntc1GT6QINrSbgRlRhadGW2WaYqUK3tK4Bw9SBMZXhmxd3GeAlZjVcODHgiu+THY7A==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.18.tgz", + "integrity": "sha512-sHG++r1AOeQrzp0Lm3w9TBuaMHty3rU4yCZ4Vd/s428dvv3eTIhuRqHPHJCBlVpZjOJ5b4ZcBPTyRCsDKFt2+w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/plugin-alias": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-5.1.1.tgz", + "integrity": "sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "28.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.3.tgz", + "integrity": "sha512-pyltgilam1QPdn+Zd9gaCfOLcnjMEJ9gV+bTw6/r73INdvzf1ah9zLIJBm+kW7R6IUFIQ1YO+VqZtYxZNWFPEQ==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "fdir": "^6.2.0", + "is-reference": "1.2.1", + "magic-string": "^0.30.3", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=16.0.0 || 14 >= 14.17" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-inject": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz", + "integrity": "sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-json": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", + "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.1.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.1.tgz", + "integrity": "sha512-tk5YCxJWIG81umIvNkSod2qK5KyQW19qcBF/B78n1bjtOON6gzKoVeSzAE8yHCZEDmqkHKkxplExA8KzdJLJpA==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve/node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-6.0.2.tgz", + "integrity": "sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-terser": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", + "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", + "license": "MIT", + "dependencies": { + "serialize-javascript": "^6.0.1", + "smob": "^1.0.0", + "terser": "^5.17.4" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.44.0.tgz", + "integrity": "sha512-xEiEE5oDW6tK4jXCAyliuntGR+amEMO7HLtdSshVuhFnKTYoeYMyXQK7pLouAJJj5KHdwdn87bfHAR2nSdNAUA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.44.0.tgz", + "integrity": "sha512-uNSk/TgvMbskcHxXYHzqwiyBlJ/lGcv8DaUfcnNwict8ba9GTTNxfn3/FAoFZYgkaXXAdrAA+SLyKplyi349Jw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.44.0.tgz", + "integrity": "sha512-VGF3wy0Eq1gcEIkSCr8Ke03CWT+Pm2yveKLaDvq51pPpZza3JX/ClxXOCmTYYq3us5MvEuNRTaeyFThCKRQhOA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.44.0.tgz", + "integrity": "sha512-fBkyrDhwquRvrTxSGH/qqt3/T0w5Rg0L7ZIDypvBPc1/gzjJle6acCpZ36blwuwcKD/u6oCE/sRWlUAcxLWQbQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.44.0.tgz", + "integrity": "sha512-u5AZzdQJYJXByB8giQ+r4VyfZP+walV+xHWdaFx/1VxsOn6eWJhK2Vl2eElvDJFKQBo/hcYIBg/jaKS8ZmKeNQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.44.0.tgz", + "integrity": "sha512-qC0kS48c/s3EtdArkimctY7h3nHicQeEUdjJzYVJYR3ct3kWSafmn6jkNCA8InbUdge6PVx6keqjk5lVGJf99g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.44.0.tgz", + "integrity": "sha512-x+e/Z9H0RAWckn4V2OZZl6EmV0L2diuX3QB0uM1r6BvhUIv6xBPL5mrAX2E3e8N8rEHVPwFfz/ETUbV4oW9+lQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.44.0.tgz", + "integrity": "sha512-1exwiBFf4PU/8HvI8s80icyCcnAIB86MCBdst51fwFmH5dyeoWVPVgmQPcKrMtBQ0W5pAs7jBCWuRXgEpRzSCg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.44.0.tgz", + "integrity": "sha512-ZTR2mxBHb4tK4wGf9b8SYg0Y6KQPjGpR4UWwTFdnmjB4qRtoATZ5dWn3KsDwGa5Z2ZBOE7K52L36J9LueKBdOQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.44.0.tgz", + "integrity": "sha512-GFWfAhVhWGd4r6UxmnKRTBwP1qmModHtd5gkraeW2G490BpFOZkFtem8yuX2NyafIP/mGpRJgTJ2PwohQkUY/Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.44.0.tgz", + "integrity": "sha512-xw+FTGcov/ejdusVOqKgMGW3c4+AgqrfvzWEVXcNP6zq2ue+lsYUgJ+5Rtn/OTJf7e2CbgTFvzLW2j0YAtj0Gg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.44.0.tgz", + "integrity": "sha512-bKGibTr9IdF0zr21kMvkZT4K6NV+jjRnBoVMt2uNMG0BYWm3qOVmYnXKzx7UhwrviKnmK46IKMByMgvpdQlyJQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.44.0.tgz", + "integrity": "sha512-vV3cL48U5kDaKZtXrti12YRa7TyxgKAIDoYdqSIOMOFBXqFj2XbChHAtXquEn2+n78ciFgr4KIqEbydEGPxXgA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.44.0.tgz", + "integrity": "sha512-TDKO8KlHJuvTEdfw5YYFBjhFts2TR0VpZsnLLSYmB7AaohJhM8ctDSdDnUGq77hUh4m/djRafw+9zQpkOanE2Q==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.44.0.tgz", + "integrity": "sha512-8541GEyktXaw4lvnGp9m84KENcxInhAt6vPWJ9RodsB/iGjHoMB2Pp5MVBCiKIRxrxzJhGCxmNzdu+oDQ7kwRA==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.44.0.tgz", + "integrity": "sha512-iUVJc3c0o8l9Sa/qlDL2Z9UP92UZZW1+EmQ4xfjTc1akr0iUFZNfxrXJ/R1T90h/ILm9iXEY6+iPrmYB3pXKjw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.44.0.tgz", + "integrity": "sha512-PQUobbhLTQT5yz/SPg116VJBgz+XOtXt8D1ck+sfJJhuEsMj2jSej5yTdp8CvWBSceu+WW+ibVL6dm0ptG5fcA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.44.0.tgz", + "integrity": "sha512-M0CpcHf8TWn+4oTxJfh7LQuTuaYeXGbk0eageVjQCKzYLsajWS/lFC94qlRqOlyC2KvRT90ZrfXULYmukeIy7w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.44.0.tgz", + "integrity": "sha512-3XJ0NQtMAXTWFW8FqZKcw3gOQwBtVWP/u8TpHP3CRPXD7Pd6s8lLdH3sHWh8vqKCyyiI8xW5ltJScQmBU9j7WA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.44.0.tgz", + "integrity": "sha512-Q2Mgwt+D8hd5FIPUuPDsvPR7Bguza6yTkJxspDGkZj7tBRn2y4KSWYuIXpftFSjBra76TbKerCV7rgFPQrn+wQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sidebase/nuxt-auth": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@sidebase/nuxt-auth/-/nuxt-auth-0.10.1.tgz", + "integrity": "sha512-fCSDfGl6npVIWrb//NbeKA16ATk1CpjzfRrNAdJ2PRr0BF5aJz6KCvDI8dSzs5VLMJBIRLR39G2rWYq5q+v5iA==", + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^3.14.1592", + "defu": "^6.1.4", + "h3": "^1.13.0", + "knitwork": "^1.1.0", + "nitropack": "^2.10.4", + "requrl": "^3.0.2", + "scule": "^1.3.0", + "ufo": "^1.5.4" + }, + "engines": { + "node": ">=20", + "pnpm": ">=9.4.0" + }, + "peerDependencies": { + "next-auth": "~4.21.1" + } + }, + "node_modules/@sindresorhus/is": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.0.1.tgz", + "integrity": "sha512-QWLl2P+rsCJeofkDNIT3WFmb6NrRud1SUYW8dIhXK/46XFV8Q/g7Bsvib0Askb0reRLe+WYPeeE+l5cH7SlkuQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@speed-highlight/core": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@speed-highlight/core/-/core-1.2.7.tgz", + "integrity": "sha512-0dxmVj4gxg3Jg879kvFS/msl4s9F3T9UXC1InxgOf7t5NvcPD97u/WTA5vL/IxWHMn7qSxBozqrnnE2wvl1m8g==", + "license": "CC0-1.0" + }, + "node_modules/@svgdotjs/svg.draggable.js": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.draggable.js/-/svg.draggable.js-3.0.6.tgz", + "integrity": "sha512-7iJFm9lL3C40HQcqzEfezK2l+dW2CpoVY3b77KQGqc8GXWa6LhhmX5Ckv7alQfUXBuZbjpICZ+Dvq1czlGx7gA==", + "license": "MIT", + "peerDependencies": { + "@svgdotjs/svg.js": "^3.2.4" + } + }, + "node_modules/@svgdotjs/svg.filter.js": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.filter.js/-/svg.filter.js-3.0.9.tgz", + "integrity": "sha512-/69XMRCDoam2HgC4ldHIaDgeQf1ViHIsa0Ld4uWgiXtZ+E24DWHe/9Ib6kbNiZ7WRIdlVokUDR1Fg0kjIpkfbw==", + "license": "MIT", + "dependencies": { + "@svgdotjs/svg.js": "^3.2.4" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/@svgdotjs/svg.js": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.js/-/svg.js-3.2.4.tgz", + "integrity": "sha512-BjJ/7vWNowlX3Z8O4ywT58DqbNRyYlkk6Yz/D13aB7hGmfQTvGX4Tkgtm/ApYlu9M7lCQi15xUEidqMUmdMYwg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Fuzzyma" + } + }, + "node_modules/@svgdotjs/svg.resize.js": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.resize.js/-/svg.resize.js-2.0.5.tgz", + "integrity": "sha512-4heRW4B1QrJeENfi7326lUPYBCevj78FJs8kfeDxn5st0IYPIRXoTtOSYvTzFWgaWWXd3YCDE6ao4fmv91RthA==", + "license": "MIT", + "engines": { + "node": ">= 14.18" + }, + "peerDependencies": { + "@svgdotjs/svg.js": "^3.2.4", + "@svgdotjs/svg.select.js": "^4.0.1" + } + }, + "node_modules/@svgdotjs/svg.select.js": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.select.js/-/svg.select.js-4.0.2.tgz", + "integrity": "sha512-5gWdrvoQX3keo03SCmgaBbD+kFftq0F/f2bzCbNnpkkvW6tk4rl4MakORzFuNjvXPWwB4az9GwuvVxQVnjaK2g==", + "license": "MIT", + "engines": { + "node": ">= 14.18" + }, + "peerDependencies": { + "@svgdotjs/svg.js": "^3.2.4" + } + }, + "node_modules/@swc/helpers": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz", + "integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", + "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-NYqRyg/hIQrYPT9lbOeYc3kIRabJDn/k4qQHIXUpx88CBDww2fD15Sg5kbXlW86zm2XEW4g0QxkTI3/Kfkc7xQ==", + "license": "MIT" + }, + "node_modules/@types/lodash-es": { + "version": "4.17.12", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz", + "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", + "license": "MIT", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/node": { + "version": "22.15.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.3.tgz", + "integrity": "sha512-lX7HFZeHf4QG/J7tBZqrCAXwz9J5RD56Y6MpP0eJkka8p+K0RY/yBTW7CYFJ4VGCclxqOLKmiGP5juQc6MKgcw==", + "license": "MIT", + "optional": true, + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "license": "MIT" + }, + "node_modules/@types/parse-path": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/parse-path/-/parse-path-7.0.3.tgz", + "integrity": "sha512-LriObC2+KYZD3FzCrgWGv/qufdUy4eXrxcLgQMfYXgPbLIecKIsVBaQgUPmxSSLcjmYbDTQbMgr6qr6l/eb7Bg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "license": "MIT" + }, + "node_modules/@types/triple-beam": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", + "license": "MIT" + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.34.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.1.tgz", + "integrity": "sha512-nuHlOmFZfuRwLJKDGQOVc0xnQrAmuq1Mj/ISou5044y1ajGNp2BNliIqp7F2LPQ5sForz8lempMFCovfeS1XoA==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.34.1", + "@typescript-eslint/types": "^8.34.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.34.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.1.tgz", + "integrity": "sha512-K4Sjdo4/xF9NEeA2khOb7Y5nY6NSXBnod87uniVYW9kHP+hNlDV8trUSFeynA2uxWam4gIWgWoygPrv9VMWrYg==", + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.34.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.1.tgz", + "integrity": "sha512-rjLVbmE7HR18kDsjNIZQHxmv9RZwlgzavryL5Lnj2ujIRTeXlKtILHgRNmQ3j4daw7zd+mQgy+uyt6Zo6I0IGA==", + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.34.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.1.tgz", + "integrity": "sha512-rjCNqqYPuMUF5ODD+hWBNmOitjBWghkGKJg6hiCHzUvXRy6rK22Jd3rwbP2Xi+R7oYVvIKhokHVhH41BxPV5mA==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.34.1", + "@typescript-eslint/tsconfig-utils": "8.34.1", + "@typescript-eslint/types": "8.34.1", + "@typescript-eslint/visitor-keys": "8.34.1", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.34.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.1.tgz", + "integrity": "sha512-xoh5rJ+tgsRKoXnkBPFRLZ7rjKM0AfVbC68UZ/ECXoDbfggb9RbEySN359acY1vS3qZ0jVTVWzbtfapwm5ztxw==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.34.1", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@unhead/vue": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@unhead/vue/-/vue-2.0.10.tgz", + "integrity": "sha512-lV7E1sXX6/te8+IiUwlMysBAyJT/WM5Je47cRnpU5hsvDRziSIGfim9qMWbsTouH+paavRJz1i8gk5hRzjvkcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hookable": "^5.5.3", + "unhead": "2.0.10" + }, + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + }, + "peerDependencies": { + "vue": ">=3.5.13" + } + }, + "node_modules/@vercel/nft": { + "version": "0.29.4", + "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.29.4.tgz", + "integrity": "sha512-6lLqMNX3TuycBPABycx7A9F1bHQR7kiQln6abjFbPrf5C/05qHM9M5E4PeTE59c7z8g6vHnx1Ioihb2AQl7BTA==", + "license": "MIT", + "dependencies": { + "@mapbox/node-pre-gyp": "^2.0.0", + "@rollup/pluginutils": "^5.1.3", + "acorn": "^8.6.0", + "acorn-import-attributes": "^1.9.5", + "async-sema": "^3.1.1", + "bindings": "^1.4.0", + "estree-walker": "2.0.2", + "glob": "^10.4.5", + "graceful-fs": "^4.2.9", + "node-gyp-build": "^4.2.2", + "picomatch": "^4.0.2", + "resolve-from": "^5.0.0" + }, + "bin": { + "nft": "out/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz", + "integrity": "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vitejs/plugin-vue-jsx": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-4.2.0.tgz", + "integrity": "sha512-DSTrmrdLp+0LDNF77fqrKfx7X0ErRbOcUAgJL/HbSesqQwoUvUQ4uYQqaex+rovqgGcoPqVk+AwUh3v9CuiYIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.27.1", + "@rolldown/pluginutils": "^1.0.0-beta.9", + "@vue/babel-plugin-jsx": "^1.4.0" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0", + "vue": "^3.0.0" + } + }, + "node_modules/@vue-macros/common": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/@vue-macros/common/-/common-1.16.1.tgz", + "integrity": "sha512-Pn/AWMTjoMYuquepLZP813BIcq8DTZiNCoaceuNlvaYuOTd8DqBZWc5u0uOMQZMInwME1mdSmmBAcTluiV9Jtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-sfc": "^3.5.13", + "ast-kit": "^1.4.0", + "local-pkg": "^1.0.0", + "magic-string-ast": "^0.7.0", + "pathe": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=16.14.0" + }, + "peerDependencies": { + "vue": "^2.7.0 || ^3.2.25" + }, + "peerDependenciesMeta": { + "vue": { + "optional": true + } + } + }, + "node_modules/@vue/babel-helper-vue-transform-on": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.4.0.tgz", + "integrity": "sha512-mCokbouEQ/ocRce/FpKCRItGo+013tHg7tixg3DUNS+6bmIchPt66012kBMm476vyEIJPafrvOf4E5OYj3shSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/babel-plugin-jsx": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.4.0.tgz", + "integrity": "sha512-9zAHmwgMWlaN6qRKdrg1uKsBKHvnUU+Py+MOCTuYZBoZsopa90Di10QRjB+YPnVss0BZbG/H5XFwJY1fTxJWhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/template": "^7.26.9", + "@babel/traverse": "^7.26.9", + "@babel/types": "^7.26.9", + "@vue/babel-helper-vue-transform-on": "1.4.0", + "@vue/babel-plugin-resolve-type": "1.4.0", + "@vue/shared": "^3.5.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + } + } + }, + "node_modules/@vue/babel-plugin-resolve-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.4.0.tgz", + "integrity": "sha512-4xqDRRbQQEWHQyjlYSgZsWj44KfiF6D+ktCuXyZ8EnVDYV3pztmXJDf1HveAjUAXxAnR8daCQT51RneWWxtTyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/parser": "^7.26.9", + "@vue/compiler-sfc": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", + "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.13", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", + "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", + "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/compiler-core": "3.5.13", + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.11", + "postcss": "^8.4.48", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", + "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, + "node_modules/@vue/devtools-core": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@vue/devtools-core/-/devtools-core-7.7.7.tgz", + "integrity": "sha512-9z9TLbfC+AjAi1PQyWX+OErjIaJmdFlbDHcD+cAMYKY6Bh5VlsAtCeGyRMrXwIlMEQPukvnWt3gZBLwTAIMKzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^7.7.7", + "@vue/devtools-shared": "^7.7.7", + "mitt": "^3.0.1", + "nanoid": "^5.1.0", + "pathe": "^2.0.3", + "vite-hot-client": "^2.0.4" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/@vue/devtools-kit": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.7.7.tgz", + "integrity": "sha512-wgoZtxcTta65cnZ1Q6MbAfePVFxfM+gq0saaeytoph7nEa7yMXoi6sCPy4ufO111B9msnw0VOWjPEFCXuAKRHA==", + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^7.7.7", + "birpc": "^2.3.0", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^1.0.0", + "speakingurl": "^14.0.1", + "superjson": "^2.2.2" + } + }, + "node_modules/@vue/devtools-shared": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.7.7.tgz", + "integrity": "sha512-+udSj47aRl5aKb0memBvcUG9koarqnxNM5yjuREvqwK6T3ap4mn3Zqqc17QrBFTqSMjr3HK1cvStEZpMDpfdyw==", + "license": "MIT", + "dependencies": { + "rfdc": "^1.4.1" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz", + "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz", + "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz", + "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.13", + "@vue/runtime-core": "3.5.13", + "@vue/shared": "3.5.13", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz", + "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13" + }, + "peerDependencies": { + "vue": "3.5.13" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", + "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", + "license": "MIT" + }, + "node_modules/@vueuse/i18n": { + "version": "4.0.0-beta.12", + "resolved": "https://registry.npmjs.org/@vueuse/i18n/-/i18n-4.0.0-beta.12.tgz", + "integrity": "sha512-nRPfmmWxekoazrBDcO9UsqQTSC7xl8M5GxOv0KixCX0i6/knLDM/AL6l4C6fVy2sa4o20mHH4ue9p20i+ody9Q==", + "license": "MIT", + "dependencies": { + "vue-demi": "latest" + } + }, + "node_modules/@vueuse/i18n/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@whatwg-node/disposablestack": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@whatwg-node/disposablestack/-/disposablestack-0.0.6.tgz", + "integrity": "sha512-LOtTn+JgJvX8WfBVJtF08TGrdjuFzGJc4mkP8EdDI8ADbvO7kiexYep1o8dwnt0okb0jYclCDXF13xU7Ge4zSw==", + "license": "MIT", + "dependencies": { + "@whatwg-node/promise-helpers": "^1.0.0", + "tslib": "^2.6.3" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@whatwg-node/fetch": { + "version": "0.10.8", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.10.8.tgz", + "integrity": "sha512-Rw9z3ctmeEj8QIB9MavkNJqekiu9usBCSMZa+uuAvM0lF3v70oQVCXNppMIqaV6OTZbdaHF1M2HLow58DEw+wg==", + "license": "MIT", + "dependencies": { + "@whatwg-node/node-fetch": "^0.7.21", + "urlpattern-polyfill": "^10.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@whatwg-node/fetch/node_modules/urlpattern-polyfill": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.1.0.tgz", + "integrity": "sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==", + "license": "MIT" + }, + "node_modules/@whatwg-node/node-fetch": { + "version": "0.7.21", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.7.21.tgz", + "integrity": "sha512-QC16IdsEyIW7kZd77aodrMO7zAoDyyqRCTLg+qG4wqtP4JV9AA+p7/lgqMdD29XyiYdVvIdFrfI9yh7B1QvRvw==", + "license": "MIT", + "dependencies": { + "@fastify/busboy": "^3.1.1", + "@whatwg-node/disposablestack": "^0.0.6", + "@whatwg-node/promise-helpers": "^1.3.2", + "tslib": "^2.6.3" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@whatwg-node/promise-helpers": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@whatwg-node/promise-helpers/-/promise-helpers-1.3.2.tgz", + "integrity": "sha512-Nst5JdK47VIl9UcGwtv2Rcgyn5lWtZ0/mhRQ4G8NN2isxpq2TO30iqHzmwoJycjWuyUfg3GFXqP/gFHXeV57IA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.6.3" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@whatwg-node/server": { + "version": "0.9.71", + "resolved": "https://registry.npmjs.org/@whatwg-node/server/-/server-0.9.71.tgz", + "integrity": "sha512-ueFCcIPaMgtuYDS9u0qlUoEvj6GiSsKrwnOLPp9SshqjtcRaR1IEHRjoReq3sXNydsF5i0ZnmuYgXq9dV53t0g==", + "license": "MIT", + "dependencies": { + "@whatwg-node/disposablestack": "^0.0.6", + "@whatwg-node/fetch": "^0.10.5", + "@whatwg-node/promise-helpers": "^1.2.2", + "tslib": "^2.6.3" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@yr/monotone-cubic-spline": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@yr/monotone-cubic-spline/-/monotone-cubic-spline-1.0.3.tgz", + "integrity": "sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==", + "license": "MIT" + }, + "node_modules/abbrev": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-3.0.1.tgz", + "integrity": "sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==", + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "license": "MIT", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/agent-base": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ansi-styles/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ansis": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/ansis/-/ansis-3.17.0.tgz", + "integrity": "sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/apexcharts": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-4.5.0.tgz", + "integrity": "sha512-E7ZkrVqPNBUWy/Rmg8DEIqHNBmElzICE/oxOX5Ekvs2ICQUOK/VkEkMH09JGJu+O/EA0NL31hxlmF+wrwrSLaQ==", + "license": "MIT", + "dependencies": { + "@svgdotjs/svg.draggable.js": "^3.0.4", + "@svgdotjs/svg.filter.js": "^3.0.8", + "@svgdotjs/svg.js": "^3.2.4", + "@svgdotjs/svg.resize.js": "^2.0.2", + "@svgdotjs/svg.select.js": "^4.0.1", + "@yr/monotone-cubic-spline": "^1.0.3" + } + }, + "node_modules/archiver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-7.0.1.tgz", + "integrity": "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==", + "license": "MIT", + "dependencies": { + "archiver-utils": "^5.0.2", + "async": "^3.2.4", + "buffer-crc32": "^1.0.0", + "readable-stream": "^4.0.0", + "readdir-glob": "^1.1.2", + "tar-stream": "^3.0.0", + "zip-stream": "^6.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/archiver-utils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-5.0.2.tgz", + "integrity": "sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==", + "license": "MIT", + "dependencies": { + "glob": "^10.0.0", + "graceful-fs": "^4.2.0", + "is-stream": "^2.0.1", + "lazystream": "^1.0.0", + "lodash": "^4.17.15", + "normalize-path": "^3.0.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/archiver-utils/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ast-kit": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ast-kit/-/ast-kit-1.4.3.tgz", + "integrity": "sha512-MdJqjpodkS5J149zN0Po+HPshkTdUyrvF7CKTafUgv69vBSPtncrj+3IiUgqdd7ElIEkbeXCsEouBUwLrw9Ilg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.27.0", + "pathe": "^2.0.3" + }, + "engines": { + "node": ">=16.14.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/ast-module-types": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-6.0.1.tgz", + "integrity": "sha512-WHw67kLXYbZuHTmcdbIrVArCq5wxo6NEuj3hiYAWr8mwJeC+C2mMCIBIWCiDoCye/OF/xelc+teJ1ERoWmnEIA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/ast-walker-scope": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/ast-walker-scope/-/ast-walker-scope-0.6.2.tgz", + "integrity": "sha512-1UWOyC50xI3QZkRuDj6PqDtpm1oHWtYs+NQGwqL/2R11eN3Q81PHAHPM0SWW3BNQm53UDwS//Jv8L4CCVLM1bQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "ast-kit": "^1.0.1" + }, + "engines": { + "node": ">=16.14.0" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" + }, + "node_modules/async-sema": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/async-sema/-/async-sema-3.1.1.tgz", + "integrity": "sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axios": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.10.0.tgz", + "integrity": "sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axios-mock-adapter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-2.1.0.tgz", + "integrity": "sha512-AZUe4OjECGCNNssH8SOdtneiQELsqTsat3SQQCWLPjN436/H+L9AjWfV7bF+Zg/YL9cgbhrz5671hoh+Tbn98w==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "is-buffer": "^2.0.5" + }, + "peerDependencies": { + "axios": ">= 0.17.0" + } + }, + "node_modules/b4a": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", + "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", + "license": "Apache-2.0" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/bare-events": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz", + "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==", + "license": "Apache-2.0", + "optional": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/birpc": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.4.0.tgz", + "integrity": "sha512-5IdNxTyhXHv2UlgnPHQ0h+5ypVmkrYHzL8QT+DwFZ//2N/oNV8Ch+BCRmTJ3x6/z9Axo/cXYBc9eprsUVK/Jsg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", + "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001718", + "electron-to-chromium": "^1.5.160", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-crc32": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz", + "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "peer": true, + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/c12": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/c12/-/c12-3.0.4.tgz", + "integrity": "sha512-t5FaZTYbbCtvxuZq9xxIruYydrAGsJ+8UdP0pZzMiK2xl/gNiSOy0OxhLzHUEEb0m1QXYqfzfvyIFEmz/g9lqg==", + "license": "MIT", + "dependencies": { + "chokidar": "^4.0.3", + "confbox": "^0.2.2", + "defu": "^6.1.4", + "dotenv": "^16.5.0", + "exsolve": "^1.0.5", + "giget": "^2.0.0", + "jiti": "^2.4.2", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^1.0.0", + "pkg-types": "^2.1.0", + "rc9": "^2.1.2" + }, + "peerDependencies": { + "magicast": "^0.3.5" + }, + "peerDependenciesMeta": { + "magicast": { + "optional": true + } + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==", + "engines": { + "node": "*" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001723", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001723.tgz", + "integrity": "sha512-1R/elMjtehrFejxwmexeXAtae5UO9iSyFn6G/I806CYC/BLyyBk1EPhrKBkWhy6wM6Xnm47dSJQec+tLJ39WHw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/citty": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", + "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", + "license": "MIT", + "dependencies": { + "consola": "^3.2.3" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT", + "peer": true + }, + "node_modules/clipboardy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-4.0.0.tgz", + "integrity": "sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==", + "license": "MIT", + "dependencies": { + "execa": "^8.0.1", + "is-wsl": "^3.1.0", + "is64bit": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cluster-key-slot": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", + "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-convert/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "license": "MIT" + }, + "node_modules/colorspace": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", + "license": "MIT", + "dependencies": { + "color": "^3.1.3", + "text-hex": "1.0.x" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "license": "ISC" + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "license": "MIT" + }, + "node_modules/compatx": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/compatx/-/compatx-0.2.0.tgz", + "integrity": "sha512-6gLRNt4ygsi5NyMVhceOCFv14CIdDFN7fQjX1U4+47qVE/+kjPoXMK65KWK+dWxmFzMTuKazoQ9sch6pM0p5oA==", + "license": "MIT" + }, + "node_modules/compress-commons": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz", + "integrity": "sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==", + "license": "MIT", + "dependencies": { + "crc-32": "^1.2.0", + "crc32-stream": "^6.0.0", + "is-stream": "^2.0.1", + "normalize-path": "^3.0.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/compress-commons/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/confbox": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz", + "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==", + "license": "MIT" + }, + "node_modules/consola": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/cookie-es": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.2.tgz", + "integrity": "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==", + "license": "MIT" + }, + "node_modules/copy-anything": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", + "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", + "license": "MIT", + "dependencies": { + "is-what": "^4.1.8" + }, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/copy-file": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-file/-/copy-file-11.0.0.tgz", + "integrity": "sha512-mFsNh/DIANLqFt5VHZoGirdg7bK5+oTWlhnGu6tgRhzBlnEKWaPX2xrFaLltii/6rmhqFMJqffUgknuRdpYlHw==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.11", + "p-event": "^6.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/crc32-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-6.0.0.tgz", + "integrity": "sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==", + "license": "MIT", + "dependencies": { + "crc-32": "^1.2.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/cron-parser": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-4.9.0.tgz", + "integrity": "sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==", + "license": "MIT", + "dependencies": { + "luxon": "^3.2.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/croner": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/croner/-/croner-9.0.0.tgz", + "integrity": "sha512-onMB0OkDjkXunhdW9htFjEhqrD54+M94i6ackoUkjHKbRnXdyEyKRelp4nJ1kAz32+s27jP1FsebpJCVl0BsvA==", + "license": "MIT", + "engines": { + "node": ">=18.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crossws": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz", + "integrity": "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==", + "license": "MIT", + "dependencies": { + "uncrypto": "^0.1.3" + } + }, + "node_modules/css-declaration-sorter": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", + "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-7.0.7.tgz", + "integrity": "sha512-evKu7yiDIF7oS+EIpwFlMF730ijRyLFaM2o5cTxRGJR9OKHKkc+qP443ZEVR9kZG0syaAJJCPJyfv5pbrxlSng==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssnano-preset-default": "^7.0.7", + "lilconfig": "^3.1.3" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/cssnano-preset-default": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-7.0.7.tgz", + "integrity": "sha512-jW6CG/7PNB6MufOrlovs1TvBTEVmhY45yz+bd0h6nw3h6d+1e+/TX+0fflZ+LzvZombbT5f+KC063w9VoHeHow==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.5", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^5.0.1", + "postcss-calc": "^10.1.1", + "postcss-colormin": "^7.0.3", + "postcss-convert-values": "^7.0.5", + "postcss-discard-comments": "^7.0.4", + "postcss-discard-duplicates": "^7.0.2", + "postcss-discard-empty": "^7.0.1", + "postcss-discard-overridden": "^7.0.1", + "postcss-merge-longhand": "^7.0.5", + "postcss-merge-rules": "^7.0.5", + "postcss-minify-font-values": "^7.0.1", + "postcss-minify-gradients": "^7.0.1", + "postcss-minify-params": "^7.0.3", + "postcss-minify-selectors": "^7.0.5", + "postcss-normalize-charset": "^7.0.1", + "postcss-normalize-display-values": "^7.0.1", + "postcss-normalize-positions": "^7.0.1", + "postcss-normalize-repeat-style": "^7.0.1", + "postcss-normalize-string": "^7.0.1", + "postcss-normalize-timing-functions": "^7.0.1", + "postcss-normalize-unicode": "^7.0.3", + "postcss-normalize-url": "^7.0.1", + "postcss-normalize-whitespace": "^7.0.1", + "postcss-ordered-values": "^7.0.2", + "postcss-reduce-initial": "^7.0.3", + "postcss-reduce-transforms": "^7.0.1", + "postcss-svgo": "^7.0.2", + "postcss-unique-selectors": "^7.0.4" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/cssnano-utils": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-5.0.1.tgz", + "integrity": "sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/db0": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/db0/-/db0-0.3.2.tgz", + "integrity": "sha512-xzWNQ6jk/+NtdfLyXEipbX55dmDSeteLFt/ayF+wZUU5bzKgmrDOxmInUTbyVRp46YwnJdkDA1KhB7WIXFofJw==", + "license": "MIT", + "peerDependencies": { + "@electric-sql/pglite": "*", + "@libsql/client": "*", + "better-sqlite3": "*", + "drizzle-orm": "*", + "mysql2": "*", + "sqlite3": "*" + }, + "peerDependenciesMeta": { + "@electric-sql/pglite": { + "optional": true + }, + "@libsql/client": { + "optional": true + }, + "better-sqlite3": { + "optional": true + }, + "drizzle-orm": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "sqlite3": { + "optional": true + } + } + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decache": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/decache/-/decache-4.6.2.tgz", + "integrity": "sha512-2LPqkLeu8XWHU8qNCS3kcF6sCcb5zIzvWaAHYSvPfwhdd7mHuah29NssMzrTYyHN4F5oFy2ko9OBYxegtU0FEw==", + "license": "MIT", + "dependencies": { + "callsite": "^1.0.0" + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/defu": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", + "license": "MIT" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", + "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==", + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "license": "Apache-2.0", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/detective-amd": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-6.0.1.tgz", + "integrity": "sha512-TtyZ3OhwUoEEIhTFoc1C9IyJIud3y+xYkSRjmvCt65+ycQuc3VcBrPRTMWoO/AnuCyOB8T5gky+xf7Igxtjd3g==", + "license": "MIT", + "dependencies": { + "ast-module-types": "^6.0.1", + "escodegen": "^2.1.0", + "get-amd-module-type": "^6.0.1", + "node-source-walk": "^7.0.1" + }, + "bin": { + "detective-amd": "bin/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/detective-cjs": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-6.0.1.tgz", + "integrity": "sha512-tLTQsWvd2WMcmn/60T2inEJNhJoi7a//PQ7DwRKEj1yEeiQs4mrONgsUtEJKnZmrGWBBmE0kJ1vqOG/NAxwaJw==", + "license": "MIT", + "dependencies": { + "ast-module-types": "^6.0.1", + "node-source-walk": "^7.0.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/detective-es6": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-5.0.1.tgz", + "integrity": "sha512-XusTPuewnSUdoxRSx8OOI6xIA/uld/wMQwYsouvFN2LAg7HgP06NF1lHRV3x6BZxyL2Kkoih4ewcq8hcbGtwew==", + "license": "MIT", + "dependencies": { + "node-source-walk": "^7.0.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/detective-postcss": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-7.0.1.tgz", + "integrity": "sha512-bEOVpHU9picRZux5XnwGsmCN4+8oZo7vSW0O0/Enq/TO5R2pIAP2279NsszpJR7ocnQt4WXU0+nnh/0JuK4KHQ==", + "license": "MIT", + "dependencies": { + "is-url": "^1.2.4", + "postcss-values-parser": "^6.0.2" + }, + "engines": { + "node": "^14.0.0 || >=16.0.0" + }, + "peerDependencies": { + "postcss": "^8.4.47" + } + }, + "node_modules/detective-sass": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-6.0.1.tgz", + "integrity": "sha512-jSGPO8QDy7K7pztUmGC6aiHkexBQT4GIH+mBAL9ZyBmnUIOFbkfZnO8wPRRJFP/QP83irObgsZHCoDHZ173tRw==", + "license": "MIT", + "dependencies": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^7.0.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/detective-scss": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-5.0.1.tgz", + "integrity": "sha512-MAyPYRgS6DCiS6n6AoSBJXLGVOydsr9huwXORUlJ37K3YLyiN0vYHpzs3AdJOgHobBfispokoqrEon9rbmKacg==", + "license": "MIT", + "dependencies": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^7.0.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/detective-stylus": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-5.0.1.tgz", + "integrity": "sha512-Dgn0bUqdGbE3oZJ+WCKf8Dmu7VWLcmRJGc6RCzBgG31DLIyai9WAoEhYRgIHpt/BCRMrnXLbGWGPQuBUrnF0TA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/detective-typescript": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-14.0.0.tgz", + "integrity": "sha512-pgN43/80MmWVSEi5LUuiVvO/0a9ss5V7fwVfrJ4QzAQRd3cwqU1SfWGXJFcNKUqoD5cS+uIovhw5t/0rSeC5Mw==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "^8.23.0", + "ast-module-types": "^6.0.1", + "node-source-walk": "^7.0.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "typescript": "^5.4.4" + } + }, + "node_modules/detective-vue2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/detective-vue2/-/detective-vue2-2.2.0.tgz", + "integrity": "sha512-sVg/t6O2z1zna8a/UIV6xL5KUa2cMTQbdTIIvqNM0NIPswp52fe43Nwmbahzj3ww4D844u/vC2PYfiGLvD3zFA==", + "license": "MIT", + "dependencies": { + "@dependents/detective-less": "^5.0.1", + "@vue/compiler-sfc": "^3.5.13", + "detective-es6": "^5.0.1", + "detective-sass": "^6.0.1", + "detective-scss": "^5.0.1", + "detective-stylus": "^5.0.1", + "detective-typescript": "^14.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "typescript": "^5.4.4" + } + }, + "node_modules/devalue": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.1.1.tgz", + "integrity": "sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==", + "dev": true, + "license": "MIT" + }, + "node_modules/diff": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.2.tgz", + "integrity": "sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-prop": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-9.0.0.tgz", + "integrity": "sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^4.18.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dotenv": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz", + "integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "license": "MIT" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.170", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.170.tgz", + "integrity": "sha512-GP+M7aeluQo9uAyiTCxgIj/j+PrWhMlY7LFVj8prlsPljd0Fdg9AprlfUi+OCSFWy9Y5/2D/Jrj9HS8Z4rpKWA==", + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/enabled": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", + "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/error-stack-parser-es": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz", + "integrity": "sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/errx": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/errx/-/errx-0.1.0.tgz", + "integrity": "sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q==", + "license": "MIT" + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.5.tgz", + "integrity": "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.5", + "@esbuild/android-arm": "0.25.5", + "@esbuild/android-arm64": "0.25.5", + "@esbuild/android-x64": "0.25.5", + "@esbuild/darwin-arm64": "0.25.5", + "@esbuild/darwin-x64": "0.25.5", + "@esbuild/freebsd-arm64": "0.25.5", + "@esbuild/freebsd-x64": "0.25.5", + "@esbuild/linux-arm": "0.25.5", + "@esbuild/linux-arm64": "0.25.5", + "@esbuild/linux-ia32": "0.25.5", + "@esbuild/linux-loong64": "0.25.5", + "@esbuild/linux-mips64el": "0.25.5", + "@esbuild/linux-ppc64": "0.25.5", + "@esbuild/linux-riscv64": "0.25.5", + "@esbuild/linux-s390x": "0.25.5", + "@esbuild/linux-x64": "0.25.5", + "@esbuild/netbsd-arm64": "0.25.5", + "@esbuild/netbsd-x64": "0.25.5", + "@esbuild/openbsd-arm64": "0.25.5", + "@esbuild/openbsd-x64": "0.25.5", + "@esbuild/sunos-x64": "0.25.5", + "@esbuild/win32-arm64": "0.25.5", + "@esbuild/win32-ia32": "0.25.5", + "@esbuild/win32-x64": "0.25.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exsolve": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.5.tgz", + "integrity": "sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==", + "license": "MIT" + }, + "node_modules/externality": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/externality/-/externality-1.0.2.tgz", + "integrity": "sha512-LyExtJWKxtgVzmgtEHyQtLFpw1KFhQphF9nTG8TpAIVkiI/xQ3FJh75tRFLYl4hkn7BNIIdLJInuDAavX35pMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "enhanced-resolve": "^5.14.1", + "mlly": "^1.3.0", + "pathe": "^1.1.1", + "ufo": "^1.1.2" + } + }, + "node_modules/externality/node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-npm-meta": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/fast-npm-meta/-/fast-npm-meta-0.4.3.tgz", + "integrity": "sha512-eUzR/uVx61fqlHBjG/eQx5mQs7SQObehMTTdq8FAkdCB4KuZSQ6DiZMIrAq4kcibB3WFLQ9c4dT26Vwkix1RKg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fdir": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", + "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", + "license": "MIT" + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "license": "MIT" + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/filter-obj": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-6.1.0.tgz", + "integrity": "sha512-xdMtCAODmPloU9qtmPcdBV9Kd27NtMse+4ayThxqIHUES5Z2S6bGpap5PpdmNM56ub7y3i1eyr+vJJIIgWGKmA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", + "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", + "license": "MIT", + "dependencies": { + "locate-path": "^7.2.0", + "path-exists": "^5.0.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up-simple": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.1.tgz", + "integrity": "sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up/node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fn.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", + "license": "MIT" + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz", + "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/form-data/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/form-data/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fuse.js": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.1.0.tgz", + "integrity": "sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-amd-module-type": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-6.0.1.tgz", + "integrity": "sha512-MtjsmYiCXcYDDrGqtNbeIYdAl85n+5mSv2r3FbzER/YV3ZILw4HNNIw34HuV5pyl0jzs6GFYU1VHVEefhgcNHQ==", + "license": "MIT", + "dependencies": { + "ast-module-types": "^6.0.1", + "node-source-walk": "^7.0.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-port-please": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/get-port-please/-/get-port-please-3.1.2.tgz", + "integrity": "sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==", + "license": "MIT" + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/giget": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/giget/-/giget-2.0.0.tgz", + "integrity": "sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==", + "license": "MIT", + "dependencies": { + "citty": "^0.1.6", + "consola": "^3.4.0", + "defu": "^6.1.4", + "node-fetch-native": "^1.6.6", + "nypm": "^0.6.0", + "pathe": "^2.0.3" + }, + "bin": { + "giget": "dist/cli.mjs" + } + }, + "node_modules/git-up": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/git-up/-/git-up-8.1.1.tgz", + "integrity": "sha512-FDenSF3fVqBYSaJoYy1KSc2wosx0gCvKP+c+PRBht7cAaiCeQlBtfBDX9vgnNOHmdePlSFITVcn4pFfcgNvx3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-ssh": "^1.4.0", + "parse-url": "^9.2.0" + } + }, + "node_modules/git-url-parse": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-16.1.0.tgz", + "integrity": "sha512-cPLz4HuK86wClEW7iDdeAKcCVlWXmrLpb2L+G9goW0Z1dtpNS6BXXSOckUTlJT/LDQViE1QZKstNORzHsLnobw==", + "dev": true, + "license": "MIT", + "dependencies": { + "git-up": "^8.1.0" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "license": "BSD-2-Clause", + "peer": true + }, + "node_modules/global-directory": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", + "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "4.1.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz", + "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==", + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.3", + "path-type": "^6.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gonzales-pe": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", + "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "gonzales": "bin/gonzales.js" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/gzip-size": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-7.0.0.tgz", + "integrity": "sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==", + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/h3": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.3.tgz", + "integrity": "sha512-z6GknHqyX0h9aQaTx22VZDf6QyZn+0Nh+Ym8O/u0SGSkyF5cuTJYKlc8MkzW3Nzf9LE1ivcpmYC3FUGpywhuUQ==", + "license": "MIT", + "dependencies": { + "cookie-es": "^1.2.2", + "crossws": "^0.3.4", + "defu": "^6.1.4", + "destr": "^2.0.5", + "iron-webcrypto": "^1.2.1", + "node-mock-http": "^1.0.0", + "radix3": "^1.1.2", + "ufo": "^1.6.1", + "uncrypto": "^0.1.3" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "license": "MIT" + }, + "node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-shutdown": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/http-shutdown/-/http-shutdown-1.2.2.tgz", + "integrity": "sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==", + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/httpxy": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/httpxy/-/httpxy-0.1.7.tgz", + "integrity": "sha512-pXNx8gnANKAndgga5ahefxc++tJvNL87CXoRwxn1cJE2ZkWEojF3tNfQIEhZX/vfpt+wzeAzpUI4qkediX1MLQ==", + "license": "MIT" + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-meta": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/image-meta/-/image-meta-0.2.1.tgz", + "integrity": "sha512-K6acvFaelNxx8wc2VjbIzXKDVB0Khs0QT35U6NkGfTdCmjLNcO2945m7RFNR9/RPVFm48hq7QPzK8uGH18HCGw==", + "dev": true, + "license": "MIT" + }, + "node_modules/immutable": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", + "license": "MIT" + }, + "node_modules/impound": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/impound/-/impound-1.0.0.tgz", + "integrity": "sha512-8lAJ+1Arw2sMaZ9HE2ZmL5zOcMnt18s6+7Xqgq2aUVy4P1nlzAyPtzCDxsk51KVFwHEEdc6OWvUyqwHwhRYaug==", + "dev": true, + "license": "MIT", + "dependencies": { + "exsolve": "^1.0.5", + "mocked-exports": "^0.1.1", + "pathe": "^2.0.3", + "unplugin": "^2.3.2", + "unplugin-utils": "^0.2.4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/index-to-position": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-1.1.0.tgz", + "integrity": "sha512-XPdx9Dq4t9Qk1mTMbWONJqU7boCoumEH7fRET37HX5+khDUl3J2W6PdALxhILYlIYx2amlwYcRPp28p0tSiojg==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/ioredis": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.6.1.tgz", + "integrity": "sha512-UxC0Yv1Y4WRJiGQxQkP0hfdL0/5/6YvdfOOClRgJ0qppSarkhneSa6UvkMkms0AkdGimSH3Ikqm+6mkMmX7vGA==", + "license": "MIT", + "dependencies": { + "@ioredis/commands": "^1.1.1", + "cluster-key-slot": "^1.1.0", + "debug": "^4.3.4", + "denque": "^2.1.0", + "lodash.defaults": "^4.2.0", + "lodash.isarguments": "^3.1.0", + "redis-errors": "^1.2.0", + "redis-parser": "^3.0.0", + "standard-as-callback": "^2.1.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ioredis" + } + }, + "node_modules/iron-webcrypto": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz", + "integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/brc-dd" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "license": "MIT", + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-installed-globally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-1.0.0.tgz", + "integrity": "sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "global-directory": "^4.0.1", + "is-path-inside": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "license": "MIT" + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-ssh": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.1.tgz", + "integrity": "sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==", + "dev": true, + "license": "MIT", + "dependencies": { + "protocols": "^2.0.1" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", + "license": "MIT" + }, + "node_modules/is-url-superb": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-url-superb/-/is-url-superb-4.0.0.tgz", + "integrity": "sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-what": { + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", + "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "license": "MIT", + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is64bit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is64bit/-/is64bit-2.0.0.tgz", + "integrity": "sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==", + "license": "MIT", + "dependencies": { + "system-architecture": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", + "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/jose": { + "version": "4.15.9", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.9.tgz", + "integrity": "sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==", + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "license": "MIT", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/junk": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/junk/-/junk-4.0.1.tgz", + "integrity": "sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==", + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jwa": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz", + "integrity": "sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "license": "MIT", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jwt-decode": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", + "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/knitwork": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/knitwork/-/knitwork-1.2.0.tgz", + "integrity": "sha512-xYSH7AvuQ6nXkq42x0v5S8/Iry+cfulBz/DJQzhIyESdLD7425jXsPy4vn5cCXU+HhRN2kVw51Vd1K6/By4BQg==", + "license": "MIT" + }, + "node_modules/kuler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", + "license": "MIT" + }, + "node_modules/lambda-local": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/lambda-local/-/lambda-local-2.2.0.tgz", + "integrity": "sha512-bPcgpIXbHnVGfI/omZIlgucDqlf4LrsunwoKue5JdZeGybt8L6KyJz2Zu19ffuZwIwLj2NAI2ZyaqNT6/cetcg==", + "license": "MIT", + "dependencies": { + "commander": "^10.0.1", + "dotenv": "^16.3.1", + "winston": "^3.10.0" + }, + "bin": { + "lambda-local": "build/cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/launch-editor": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.10.0.tgz", + "integrity": "sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/lazystream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/listhen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/listhen/-/listhen-1.9.0.tgz", + "integrity": "sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==", + "license": "MIT", + "dependencies": { + "@parcel/watcher": "^2.4.1", + "@parcel/watcher-wasm": "^2.4.1", + "citty": "^0.1.6", + "clipboardy": "^4.0.0", + "consola": "^3.2.3", + "crossws": ">=0.2.0 <0.4.0", + "defu": "^6.1.4", + "get-port-please": "^3.1.2", + "h3": "^1.12.0", + "http-shutdown": "^1.2.2", + "jiti": "^2.1.2", + "mlly": "^1.7.1", + "node-forge": "^1.3.1", + "pathe": "^1.1.2", + "std-env": "^3.7.0", + "ufo": "^1.5.4", + "untun": "^0.1.3", + "uqr": "^0.1.2" + }, + "bin": { + "listen": "bin/listhen.mjs", + "listhen": "bin/listhen.mjs" + } + }, + "node_modules/listhen/node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "license": "MIT" + }, + "node_modules/local-pkg": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.1.tgz", + "integrity": "sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==", + "license": "MIT", + "dependencies": { + "mlly": "^1.7.4", + "pkg-types": "^2.0.1", + "quansync": "^0.2.8" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" + }, + "node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", + "license": "MIT" + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT" + }, + "node_modules/lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "license": "MIT" + }, + "node_modules/logform": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz", + "integrity": "sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==", + "license": "MIT", + "dependencies": { + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/luxon": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.6.1.tgz", + "integrity": "sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/magic-string-ast": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/magic-string-ast/-/magic-string-ast-0.7.1.tgz", + "integrity": "sha512-ub9iytsEbT7Yw/Pd29mSo/cNQpaEu67zR1VVcXDiYjSFwzeBxNdTd0FMnSslLQXiRj8uGPzwsaoefrMD5XAmdw==", + "dev": true, + "license": "MIT", + "dependencies": { + "magic-string": "^0.30.17" + }, + "engines": { + "node": ">=16.14.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/magicast": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz", + "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.4", + "@babel/types": "^7.25.4", + "source-map-js": "^1.2.0" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/merge-options": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", + "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", + "license": "MIT", + "dependencies": { + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micro-api-client": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/micro-api-client/-/micro-api-client-3.3.0.tgz", + "integrity": "sha512-y0y6CUB9RLVsy3kfgayU28746QrNMpSm9O/AYGNsBgOkJr/X/Jk0VLGoO8Ude7Bpa8adywzF+MzXNZRFRsNPhg==", + "license": "ISC" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.7.tgz", + "integrity": "sha512-2OfDPL+e03E0LrXaGYOtTFIYhiuzep94NSsuhrNULq+stylcJedcHdzHtz0atMUuGwJfFYs0YL5xeC/Ca2x0eQ==", + "funding": [ + "https://github.com/sponsors/broofa" + ], + "license": "MIT", + "bin": { + "mime": "bin/cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz", + "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==", + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "license": "MIT" + }, + "node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mlly": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz", + "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==", + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", + "pathe": "^2.0.1", + "pkg-types": "^1.3.0", + "ufo": "^1.5.4" + } + }, + "node_modules/mlly/node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "license": "MIT" + }, + "node_modules/mlly/node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/mocked-exports": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/mocked-exports/-/mocked-exports-0.1.1.tgz", + "integrity": "sha512-aF7yRQr/Q0O2/4pIXm6PZ5G+jAd7QS4Yu8m+WEeEHGnbo+7mE36CbLSDQiXYV8bVL3NfmdeqPJct0tUlnjVSnA==", + "dev": true, + "license": "MIT" + }, + "node_modules/module-definition": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-6.0.1.tgz", + "integrity": "sha512-FeVc50FTfVVQnolk/WQT8MX+2WVcDnTGiq6Wo+/+lJ2ET1bRVi3HG3YlJUfqagNMc/kUlFSoR96AJkxGpKz13g==", + "license": "MIT", + "dependencies": { + "ast-module-types": "^6.0.1", + "node-source-walk": "^7.0.1" + }, + "bin": { + "module-definition": "bin/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.5.tgz", + "integrity": "sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } + }, + "node_modules/nanotar": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nanotar/-/nanotar-0.2.0.tgz", + "integrity": "sha512-9ca1h0Xjvo9bEkE4UOxgAzLV0jHKe6LMaxo37ND2DAhhAtd0j8pR1Wxz+/goMrZO8AEZTWCmyaOsFI/W5AdpCQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" + }, + "node_modules/netlify": { + "version": "13.3.5", + "resolved": "https://registry.npmjs.org/netlify/-/netlify-13.3.5.tgz", + "integrity": "sha512-Nc3loyVASW59W+8fLDZT1lncpG7llffyZ2o0UQLx/Fr20i7P8oP+lE7+TEcFvXj9IUWU6LjB9P3BH+iFGyp+mg==", + "license": "MIT", + "dependencies": { + "@netlify/open-api": "^2.37.0", + "lodash-es": "^4.17.21", + "micro-api-client": "^3.3.0", + "node-fetch": "^3.0.0", + "p-wait-for": "^5.0.0", + "qs": "^6.9.6" + }, + "engines": { + "node": "^14.16.0 || >=16.0.0" + } + }, + "node_modules/netlify/node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/next": { + "version": "13.5.11", + "resolved": "https://registry.npmjs.org/next/-/next-13.5.11.tgz", + "integrity": "sha512-WUPJ6WbAX9tdC86kGTu92qkrRdgRqVrY++nwM+shmWQwmyxt4zhZfR59moXSI4N8GDYCBY3lIAqhzjDd4rTC8Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "@next/env": "13.5.11", + "@swc/helpers": "0.5.2", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001406", + "postcss": "8.4.31", + "styled-jsx": "5.1.1", + "watchpack": "2.4.0" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=16.14.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "13.5.9", + "@next/swc-darwin-x64": "13.5.9", + "@next/swc-linux-arm64-gnu": "13.5.9", + "@next/swc-linux-arm64-musl": "13.5.9", + "@next/swc-linux-x64-gnu": "13.5.9", + "@next/swc-linux-x64-musl": "13.5.9", + "@next/swc-win32-arm64-msvc": "13.5.9", + "@next/swc-win32-ia32-msvc": "13.5.9", + "@next/swc-win32-x64-msvc": "13.5.9" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next-auth": { + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/next-auth/-/next-auth-4.21.1.tgz", + "integrity": "sha512-NYkU4jAPSVxWhCblE8dDFAnKM7kOoO/QEobQ0RoEVP9Wox99A3PKHwOAsWhSg8ahJG/iKIWk2Bo1xHvsS4R39Q==", + "license": "ISC", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.20.13", + "@panva/hkdf": "^1.0.2", + "cookie": "^0.5.0", + "jose": "^4.11.4", + "oauth": "^0.9.15", + "openid-client": "^5.4.0", + "preact": "^10.6.3", + "preact-render-to-string": "^5.1.19", + "uuid": "^8.3.2" + }, + "peerDependencies": { + "next": "^12.2.5 || ^13", + "nodemailer": "^6.6.5", + "react": "^17.0.2 || ^18", + "react-dom": "^17.0.2 || ^18" + }, + "peerDependenciesMeta": { + "nodemailer": { + "optional": true + } + } + }, + "node_modules/next-auth/node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/next-auth/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "peer": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/next/node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/next/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/nitropack": { + "version": "2.11.12", + "resolved": "https://registry.npmjs.org/nitropack/-/nitropack-2.11.12.tgz", + "integrity": "sha512-e2AdQrEY1IVoNTdyjfEQV93xkqz4SQxAMR0xWF8mZUUHxMLm6S4nPzpscjksmT4OdUxl0N8/DCaGjKQ9ghdodA==", + "license": "MIT", + "dependencies": { + "@cloudflare/kv-asset-handler": "^0.4.0", + "@netlify/functions": "^3.1.8", + "@rollup/plugin-alias": "^5.1.1", + "@rollup/plugin-commonjs": "^28.0.3", + "@rollup/plugin-inject": "^5.0.5", + "@rollup/plugin-json": "^6.1.0", + "@rollup/plugin-node-resolve": "^16.0.1", + "@rollup/plugin-replace": "^6.0.2", + "@rollup/plugin-terser": "^0.4.4", + "@vercel/nft": "^0.29.2", + "archiver": "^7.0.1", + "c12": "^3.0.3", + "chokidar": "^4.0.3", + "citty": "^0.1.6", + "compatx": "^0.2.0", + "confbox": "^0.2.2", + "consola": "^3.4.2", + "cookie-es": "^2.0.0", + "croner": "^9.0.0", + "crossws": "^0.3.5", + "db0": "^0.3.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "dot-prop": "^9.0.0", + "esbuild": "^0.25.4", + "escape-string-regexp": "^5.0.0", + "etag": "^1.8.1", + "exsolve": "^1.0.5", + "globby": "^14.1.0", + "gzip-size": "^7.0.0", + "h3": "^1.15.3", + "hookable": "^5.5.3", + "httpxy": "^0.1.7", + "ioredis": "^5.6.1", + "jiti": "^2.4.2", + "klona": "^2.0.6", + "knitwork": "^1.2.0", + "listhen": "^1.9.0", + "magic-string": "^0.30.17", + "magicast": "^0.3.5", + "mime": "^4.0.7", + "mlly": "^1.7.4", + "node-fetch-native": "^1.6.6", + "node-mock-http": "^1.0.0", + "ofetch": "^1.4.1", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^1.0.0", + "pkg-types": "^2.1.0", + "pretty-bytes": "^6.1.1", + "radix3": "^1.1.2", + "rollup": "^4.40.2", + "rollup-plugin-visualizer": "^5.14.0", + "scule": "^1.3.0", + "semver": "^7.7.2", + "serve-placeholder": "^2.0.2", + "serve-static": "^2.2.0", + "source-map": "^0.7.4", + "std-env": "^3.9.0", + "ufo": "^1.6.1", + "ultrahtml": "^1.6.0", + "uncrypto": "^0.1.3", + "unctx": "^2.4.1", + "unenv": "^2.0.0-rc.17", + "unimport": "^5.0.1", + "unplugin-utils": "^0.2.4", + "unstorage": "^1.16.0", + "untyped": "^2.0.0", + "unwasm": "^0.3.9", + "youch": "^4.1.0-beta.7", + "youch-core": "^0.3.2" + }, + "bin": { + "nitro": "dist/cli/index.mjs", + "nitropack": "dist/cli/index.mjs" + }, + "engines": { + "node": "^16.11.0 || >=17.0.0" + }, + "peerDependencies": { + "xml2js": "^0.6.2" + }, + "peerDependenciesMeta": { + "xml2js": { + "optional": true + } + } + }, + "node_modules/nitropack/node_modules/cookie-es": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-2.0.0.tgz", + "integrity": "sha512-RAj4E421UYRgqokKUmotqAwuplYw15qtdXfY+hGzgCJ/MBjCVZcSoHK/kH9kocfjRjcDME7IiDWR/1WX1TM2Pg==", + "license": "MIT" + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "license": "MIT" + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": "Use your platform's native DOMException instead", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch-native": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.6.tgz", + "integrity": "sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==", + "license": "MIT" + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-mock-http": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.0.tgz", + "integrity": "sha512-0uGYQ1WQL1M5kKvGRXWQ3uZCHtLTO8hln3oBjIusM75WoesZ909uQJs/Hb946i2SS+Gsrhkaa6iAO17jRIv6DQ==", + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "license": "MIT" + }, + "node_modules/node-source-walk": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-7.0.1.tgz", + "integrity": "sha512-3VW/8JpPqPvnJvseXowjZcirPisssnBuDikk6JIZ8jQzF7KJQX52iPFX4RYYxLycYH7IbMRSPUOga/esVjy5Yg==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.7" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/nopt": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-8.1.0.tgz", + "integrity": "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==", + "license": "ISC", + "dependencies": { + "abbrev": "^3.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/normalize-package-data": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nuxt": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/nuxt/-/nuxt-3.17.5.tgz", + "integrity": "sha512-HWTWpM1/RDcCt9DlnzrPcNvUmGqc62IhlZJvr7COSfnJq2lKYiBKIIesEaOF+57Qjw7TfLPc1DQVBNtxfKBxEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nuxt/cli": "^3.25.1", + "@nuxt/devalue": "^2.0.2", + "@nuxt/devtools": "^2.4.1", + "@nuxt/kit": "3.17.5", + "@nuxt/schema": "3.17.5", + "@nuxt/telemetry": "^2.6.6", + "@nuxt/vite-builder": "3.17.5", + "@unhead/vue": "^2.0.10", + "@vue/shared": "^3.5.16", + "c12": "^3.0.4", + "chokidar": "^4.0.3", + "compatx": "^0.2.0", + "consola": "^3.4.2", + "cookie-es": "^2.0.0", + "defu": "^6.1.4", + "destr": "^2.0.5", + "devalue": "^5.1.1", + "errx": "^0.1.0", + "esbuild": "^0.25.5", + "escape-string-regexp": "^5.0.0", + "estree-walker": "^3.0.3", + "exsolve": "^1.0.5", + "h3": "^1.15.3", + "hookable": "^5.5.3", + "ignore": "^7.0.5", + "impound": "^1.0.0", + "jiti": "^2.4.2", + "klona": "^2.0.6", + "knitwork": "^1.2.0", + "magic-string": "^0.30.17", + "mlly": "^1.7.4", + "mocked-exports": "^0.1.1", + "nanotar": "^0.2.0", + "nitropack": "^2.11.12", + "nypm": "^0.6.0", + "ofetch": "^1.4.1", + "ohash": "^2.0.11", + "on-change": "^5.0.1", + "oxc-parser": "^0.72.2", + "pathe": "^2.0.3", + "perfect-debounce": "^1.0.0", + "pkg-types": "^2.1.0", + "radix3": "^1.1.2", + "scule": "^1.3.0", + "semver": "^7.7.2", + "std-env": "^3.9.0", + "strip-literal": "^3.0.0", + "tinyglobby": "0.2.14", + "ufo": "^1.6.1", + "ultrahtml": "^1.6.0", + "uncrypto": "^0.1.3", + "unctx": "^2.4.1", + "unimport": "^5.0.1", + "unplugin": "^2.3.5", + "unplugin-vue-router": "^0.12.0", + "unstorage": "^1.16.0", + "untyped": "^2.0.0", + "vue": "^3.5.16", + "vue-bundle-renderer": "^2.1.1", + "vue-devtools-stub": "^0.1.0", + "vue-router": "^4.5.1" + }, + "bin": { + "nuxi": "bin/nuxt.mjs", + "nuxt": "bin/nuxt.mjs" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0.0" + }, + "peerDependencies": { + "@parcel/watcher": "^2.1.0", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "peerDependenciesMeta": { + "@parcel/watcher": { + "optional": true + }, + "@types/node": { + "optional": true + } + } + }, + "node_modules/nuxt/node_modules/@vue/compiler-core": { + "version": "3.5.17", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.17.tgz", + "integrity": "sha512-Xe+AittLbAyV0pabcN7cP7/BenRBNcteM4aSDCtRvGw0d9OL+HG1u/XHLY/kt1q4fyMeZYXyIYrsHuPSiDPosA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.27.5", + "@vue/shared": "3.5.17", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/nuxt/node_modules/@vue/compiler-core/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/nuxt/node_modules/@vue/compiler-dom": { + "version": "3.5.17", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.17.tgz", + "integrity": "sha512-+2UgfLKoaNLhgfhV5Ihnk6wB4ljyW1/7wUIog2puUqajiC29Lp5R/IKDdkebh9jTbTogTbsgB+OY9cEWzG95JQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.17", + "@vue/shared": "3.5.17" + } + }, + "node_modules/nuxt/node_modules/@vue/compiler-sfc": { + "version": "3.5.17", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.17.tgz", + "integrity": "sha512-rQQxbRJMgTqwRugtjw0cnyQv9cP4/4BxWfTdRBkqsTfLOHWykLzbOc3C4GGzAmdMDxhzU/1Ija5bTjMVrddqww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.27.5", + "@vue/compiler-core": "3.5.17", + "@vue/compiler-dom": "3.5.17", + "@vue/compiler-ssr": "3.5.17", + "@vue/shared": "3.5.17", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.17", + "postcss": "^8.5.6", + "source-map-js": "^1.2.1" + } + }, + "node_modules/nuxt/node_modules/@vue/compiler-sfc/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/nuxt/node_modules/@vue/compiler-ssr": { + "version": "3.5.17", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.17.tgz", + "integrity": "sha512-hkDbA0Q20ZzGgpj5uZjb9rBzQtIHLS78mMilwrlpWk2Ep37DYntUz0PonQ6kr113vfOEdM+zTBuJDaceNIW0tQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.17", + "@vue/shared": "3.5.17" + } + }, + "node_modules/nuxt/node_modules/@vue/reactivity": { + "version": "3.5.17", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.17.tgz", + "integrity": "sha512-l/rmw2STIscWi7SNJp708FK4Kofs97zc/5aEPQh4bOsReD/8ICuBcEmS7KGwDj5ODQLYWVN2lNibKJL1z5b+Lw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.17" + } + }, + "node_modules/nuxt/node_modules/@vue/runtime-core": { + "version": "3.5.17", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.17.tgz", + "integrity": "sha512-QQLXa20dHg1R0ri4bjKeGFKEkJA7MMBxrKo2G+gJikmumRS7PTD4BOU9FKrDQWMKowz7frJJGqBffYMgQYS96Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.17", + "@vue/shared": "3.5.17" + } + }, + "node_modules/nuxt/node_modules/@vue/runtime-dom": { + "version": "3.5.17", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.17.tgz", + "integrity": "sha512-8El0M60TcwZ1QMz4/os2MdlQECgGoVHPuLnQBU3m9h3gdNRW9xRmI8iLS4t/22OQlOE6aJvNNlBiCzPHur4H9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.17", + "@vue/runtime-core": "3.5.17", + "@vue/shared": "3.5.17", + "csstype": "^3.1.3" + } + }, + "node_modules/nuxt/node_modules/@vue/server-renderer": { + "version": "3.5.17", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.17.tgz", + "integrity": "sha512-BOHhm8HalujY6lmC3DbqF6uXN/K00uWiEeF22LfEsm9Q93XeJ/plHTepGwf6tqFcF7GA5oGSSAAUock3VvzaCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.17", + "@vue/shared": "3.5.17" + }, + "peerDependencies": { + "vue": "3.5.17" + } + }, + "node_modules/nuxt/node_modules/@vue/shared": { + "version": "3.5.17", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.17.tgz", + "integrity": "sha512-CabR+UN630VnsJO/jHWYBC1YVXyMq94KKp6iF5MQgZJs5I8cmjw6oVMO1oDbtBkENSHSSn/UadWlW/OAgdmKrg==", + "dev": true, + "license": "MIT" + }, + "node_modules/nuxt/node_modules/cookie-es": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-2.0.0.tgz", + "integrity": "sha512-RAj4E421UYRgqokKUmotqAwuplYw15qtdXfY+hGzgCJ/MBjCVZcSoHK/kH9kocfjRjcDME7IiDWR/1WX1TM2Pg==", + "dev": true, + "license": "MIT" + }, + "node_modules/nuxt/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/nuxt/node_modules/vue": { + "version": "3.5.17", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.17.tgz", + "integrity": "sha512-LbHV3xPN9BeljML+Xctq4lbz2lVHCR6DtbpTf5XIO6gugpXUN49j2QQPcMj086r9+AkJ0FfUT8xjulKKBkkr9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.17", + "@vue/compiler-sfc": "3.5.17", + "@vue/runtime-dom": "3.5.17", + "@vue/server-renderer": "3.5.17", + "@vue/shared": "3.5.17" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/nypm": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.6.0.tgz", + "integrity": "sha512-mn8wBFV9G9+UFHIrq+pZ2r2zL4aPau/by3kJb3cM7+5tQHMt6HGQB8FDIeKFYp8o0D2pnH6nVsO88N4AmUxIWg==", + "license": "MIT", + "dependencies": { + "citty": "^0.1.6", + "consola": "^3.4.0", + "pathe": "^2.0.3", + "pkg-types": "^2.0.0", + "tinyexec": "^0.3.2" + }, + "bin": { + "nypm": "dist/cli.mjs" + }, + "engines": { + "node": "^14.16.0 || >=16.10.0" + } + }, + "node_modules/nypm/node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "license": "MIT" + }, + "node_modules/oauth": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", + "integrity": "sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==", + "license": "MIT", + "peer": true + }, + "node_modules/object-hash": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", + "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ofetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.4.1.tgz", + "integrity": "sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==", + "license": "MIT", + "dependencies": { + "destr": "^2.0.3", + "node-fetch-native": "^1.6.4", + "ufo": "^1.5.4" + } + }, + "node_modules/ohash": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", + "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", + "license": "MIT" + }, + "node_modules/oidc-token-hash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.1.0.tgz", + "integrity": "sha512-y0W+X7Ppo7oZX6eovsRkuzcSM40Bicg2JEJkDJ4irIt1wsYAP5MLSNv+QAogO8xivMffw/9OvV3um1pxXgt1uA==", + "license": "MIT", + "peer": true, + "engines": { + "node": "^10.13.0 || >=12.0.0" + } + }, + "node_modules/on-change": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/on-change/-/on-change-5.0.1.tgz", + "integrity": "sha512-n7THCP7RkyReRSLkJb8kUWoNsxUIBxTkIp3JKno+sEz6o/9AJ3w3P9fzQkITEkMwyTKJjZciF3v/pVoouxZZMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/on-change?sponsor=1" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/one-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "license": "MIT", + "dependencies": { + "fn.name": "1.x.x" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open/node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/openid-client": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-5.7.1.tgz", + "integrity": "sha512-jDBPgSVfTnkIh71Hg9pRvtJc6wTwqjRkN88+gCFtYWrlP4Yx2Dsrow8uPi3qLr/aeymPF3o2+dS+wOpglK04ew==", + "license": "MIT", + "peer": true, + "dependencies": { + "jose": "^4.15.9", + "lru-cache": "^6.0.0", + "object-hash": "^2.2.0", + "oidc-token-hash": "^5.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/openid-client/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", + "peer": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/openid-client/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC", + "peer": true + }, + "node_modules/oxc-parser": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/oxc-parser/-/oxc-parser-0.72.3.tgz", + "integrity": "sha512-JYQeJKDcUTTZ/uTdJ+fZBGFjAjkLD1h0p3Tf44ZYXRcoMk+57d81paNPFAAwzrzzqhZmkGvKKXDxwyhJXYZlpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "^0.72.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxc-parser/binding-darwin-arm64": "0.72.3", + "@oxc-parser/binding-darwin-x64": "0.72.3", + "@oxc-parser/binding-freebsd-x64": "0.72.3", + "@oxc-parser/binding-linux-arm-gnueabihf": "0.72.3", + "@oxc-parser/binding-linux-arm-musleabihf": "0.72.3", + "@oxc-parser/binding-linux-arm64-gnu": "0.72.3", + "@oxc-parser/binding-linux-arm64-musl": "0.72.3", + "@oxc-parser/binding-linux-riscv64-gnu": "0.72.3", + "@oxc-parser/binding-linux-s390x-gnu": "0.72.3", + "@oxc-parser/binding-linux-x64-gnu": "0.72.3", + "@oxc-parser/binding-linux-x64-musl": "0.72.3", + "@oxc-parser/binding-wasm32-wasi": "0.72.3", + "@oxc-parser/binding-win32-arm64-msvc": "0.72.3", + "@oxc-parser/binding-win32-x64-msvc": "0.72.3" + } + }, + "node_modules/p-event": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-6.0.1.tgz", + "integrity": "sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==", + "license": "MIT", + "dependencies": { + "p-timeout": "^6.1.2" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "license": "MIT", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz", + "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.4.tgz", + "integrity": "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-wait-for": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-5.0.2.tgz", + "integrity": "sha512-lwx6u1CotQYPVju77R+D0vFomni/AqRfqLmqQ8hekklqZ6gAY9rONh7lBQ0uxWMkC2AuX9b2DVAl8To0NyP1JA==", + "license": "MIT", + "dependencies": { + "p-timeout": "^6.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/package-manager-detector": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.2.0.tgz", + "integrity": "sha512-PutJepsOtsqVfUsxCzgTTpyXmiAgvKptIgY4th5eq5UXXFhj5PxfQ9hnGkypMeovpAvVshFRItoFHYO18TCOqA==", + "dev": true, + "license": "MIT" + }, + "node_modules/parse-gitignore": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-gitignore/-/parse-gitignore-2.0.0.tgz", + "integrity": "sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/parse-json": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz", + "integrity": "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "index-to-position": "^1.1.0", + "type-fest": "^4.39.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-path": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.1.0.tgz", + "integrity": "sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "protocols": "^2.0.0" + } + }, + "node_modules/parse-url": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-9.2.0.tgz", + "integrity": "sha512-bCgsFI+GeGWPAvAiUv63ZorMeif3/U0zaXABGJbOWt5OH2KCaPHF6S+0ok4aqM9RuIPGyZdx9tR9l13PsW4AYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/parse-path": "^7.0.0", + "parse-path": "^7.0.0" + }, + "engines": { + "node": ">=14.13.0" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/path-type": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", + "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "license": "MIT" + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "license": "MIT" + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "license": "MIT" + }, + "node_modules/perfect-scrollbar": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.6.tgz", + "integrity": "sha512-rixgxw3SxyJbCaSpo1n35A/fwI1r2rdwMKOTCg/AcG+xOEyZcE8UHVjpZMFCVImzsFoCZeJTT+M/rdEIQYO2nw==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinia": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-3.0.3.tgz", + "integrity": "sha512-ttXO/InUULUXkMHpTdp9Fj4hLpD/2AoJdmAbAeW2yu1iy1k+pkFekQXw5VpC0/5p51IOR/jDaDRfRWRnMMsGOA==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^7.7.2" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "typescript": ">=4.4.4", + "vue": "^2.7.0 || ^3.5.11" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/pinia/node_modules/@vue/devtools-api": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.7.7.tgz", + "integrity": "sha512-lwOnNBH2e7x1fIIbVT7yF5D+YWhqELm55/4ZKf45R9T8r9dE2AIOy8HKjfqzGsoTHFbWbr337O4E0A0QADnjBg==", + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^7.7.7" + } + }, + "node_modules/pkg-types": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.1.0.tgz", + "integrity": "sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==", + "license": "MIT", + "dependencies": { + "confbox": "^0.2.1", + "exsolve": "^1.0.1", + "pathe": "^2.0.3" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-calc": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-10.1.1.tgz", + "integrity": "sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12 || ^20.9 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.38" + } + }, + "node_modules/postcss-colormin": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-7.0.3.tgz", + "integrity": "sha512-xZxQcSyIVZbSsl1vjoqZAcMYYdnJsIyG8OvqShuuqf12S88qQboxxEy0ohNCOLwVPXTU+hFHvJPACRL2B5ohTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.5", + "caniuse-api": "^3.0.0", + "colord": "^2.9.3", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-convert-values": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-7.0.5.tgz", + "integrity": "sha512-0VFhH8nElpIs3uXKnVtotDJJNX0OGYSZmdt4XfSfvOMrFw1jKfpwpZxfC4iN73CTM/MWakDEmsHQXkISYj4BXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.5", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-discard-comments": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-7.0.4.tgz", + "integrity": "sha512-6tCUoql/ipWwKtVP/xYiFf1U9QgJ0PUvxN7pTcsQ8Ns3Fnwq1pU5D5s1MhT/XySeLq6GXNvn37U46Ded0TckWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.1.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.2.tgz", + "integrity": "sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-discard-empty": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-7.0.1.tgz", + "integrity": "sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-7.0.1.tgz", + "integrity": "sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-import": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", + "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-import/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "license": "ISC" + }, + "node_modules/postcss-import/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "license": "MIT", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-import/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "license": "MIT" + }, + "node_modules/postcss-import/node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/postcss-import/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-7.0.5.tgz", + "integrity": "sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^7.0.5" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-merge-rules": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-7.0.5.tgz", + "integrity": "sha512-ZonhuSwEaWA3+xYbOdJoEReKIBs5eDiBVLAGpYZpNFPzXZcEE5VKR7/qBEQvTZpiwjqhhqEQ+ax5O3VShBj9Wg==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.5", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^5.0.1", + "postcss-selector-parser": "^7.1.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-7.0.1.tgz", + "integrity": "sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-7.0.1.tgz", + "integrity": "sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "colord": "^2.9.3", + "cssnano-utils": "^5.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-minify-params": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-7.0.3.tgz", + "integrity": "sha512-vUKV2+f5mtjewYieanLX0xemxIp1t0W0H/D11u+kQV/MWdygOO7xPMkbK+r9P6Lhms8MgzKARF/g5OPXhb8tgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.5", + "cssnano-utils": "^5.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-7.0.5.tgz", + "integrity": "sha512-x2/IvofHcdIrAm9Q+p06ZD1h6FPcQ32WtCRVodJLDR+WMn8EVHI1kvLxZuGKz/9EY5nAmI6lIQIrpo4tBy5+ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "postcss-selector-parser": "^7.1.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-7.0.1.tgz", + "integrity": "sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.1.tgz", + "integrity": "sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-7.0.1.tgz", + "integrity": "sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.1.tgz", + "integrity": "sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-string": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-7.0.1.tgz", + "integrity": "sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.1.tgz", + "integrity": "sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.3.tgz", + "integrity": "sha512-EcoA29LvG3F+EpOh03iqu+tJY3uYYKzArqKJHxDhUYLa2u58aqGq16K6/AOsXD9yqLN8O6y9mmePKN5cx6krOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.5", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-url": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-7.0.1.tgz", + "integrity": "sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.1.tgz", + "integrity": "sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-ordered-values": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-7.0.2.tgz", + "integrity": "sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssnano-utils": "^5.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-7.0.3.tgz", + "integrity": "sha512-RFvkZaqiWtGMlVjlUHpaxGqEL27lgt+Q2Ixjf83CRAzqdo+TsDyGPtJUbPx2MuYIJ+sCQc2TrOvRnhcXQfgIVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.5", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.1.tgz", + "integrity": "sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-7.0.2.tgz", + "integrity": "sha512-5Dzy66JlnRM6pkdOTF8+cGsB1fnERTE8Nc+Eed++fOWo1hdsBptCsbG8UuJkgtZt75bRtMJIrPeZmtfANixdFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^3.3.2" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >= 18" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-7.0.4.tgz", + "integrity": "sha512-pmlZjsmEAG7cHd7uK3ZiNSW6otSZ13RHuZ/4cDN/bVglS5EpF2r2oxY99SuOHa8m7AWoBCelTS3JPpzsIs8skQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.1.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/postcss-values-parser": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-6.0.2.tgz", + "integrity": "sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw==", + "license": "MPL-2.0", + "dependencies": { + "color-name": "^1.1.4", + "is-url-superb": "^4.0.0", + "quote-unquote": "^1.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "postcss": "^8.2.9" + } + }, + "node_modules/postcss/node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/preact": { + "version": "10.26.9", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.26.9.tgz", + "integrity": "sha512-SSjF9vcnF27mJK1XyFMNJzFd5u3pQiATFqoaDy03XuN00u4ziveVVEGt5RKJrDR8MHE/wJo9Nnad56RLzS2RMA==", + "license": "MIT", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/preact-render-to-string": { + "version": "5.2.6", + "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-5.2.6.tgz", + "integrity": "sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==", + "license": "MIT", + "peer": true, + "dependencies": { + "pretty-format": "^3.8.0" + }, + "peerDependencies": { + "preact": ">=10" + } + }, + "node_modules/precinct": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/precinct/-/precinct-12.2.0.tgz", + "integrity": "sha512-NFBMuwIfaJ4SocE9YXPU/n4AcNSoFMVFjP72nvl3cx69j/ke61/hPOWFREVxLkFhhEGnA8ZuVfTqJBa+PK3b5w==", + "license": "MIT", + "dependencies": { + "@dependents/detective-less": "^5.0.1", + "commander": "^12.1.0", + "detective-amd": "^6.0.1", + "detective-cjs": "^6.0.1", + "detective-es6": "^5.0.1", + "detective-postcss": "^7.0.1", + "detective-sass": "^6.0.1", + "detective-scss": "^5.0.1", + "detective-stylus": "^5.0.1", + "detective-typescript": "^14.0.0", + "detective-vue2": "^2.2.0", + "module-definition": "^6.0.1", + "node-source-walk": "^7.0.1", + "postcss": "^8.5.1", + "typescript": "^5.7.3" + }, + "bin": { + "precinct": "bin/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/precinct/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/pretty-bytes": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz", + "integrity": "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==", + "license": "MIT", + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-format": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz", + "integrity": "sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==", + "license": "MIT", + "peer": true + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/protocols": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.2.tgz", + "integrity": "sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/quansync": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.10.tgz", + "integrity": "sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quote-unquote": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/quote-unquote/-/quote-unquote-1.0.0.tgz", + "integrity": "sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==", + "license": "MIT" + }, + "node_modules/radix3": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz", + "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==", + "license": "MIT" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/rc9": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz", + "integrity": "sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==", + "license": "MIT", + "dependencies": { + "defu": "^6.1.4", + "destr": "^2.0.3" + } + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-package-up": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/read-package-up/-/read-package-up-11.0.0.tgz", + "integrity": "sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==", + "license": "MIT", + "dependencies": { + "find-up-simple": "^1.0.0", + "read-pkg": "^9.0.0", + "type-fest": "^4.6.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", + "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==", + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.3", + "normalize-package-data": "^6.0.0", + "parse-json": "^8.0.0", + "type-fest": "^4.6.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/readdir-glob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.1.0" + } + }, + "node_modules/readdir-glob/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/redis-errors": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", + "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/redis-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", + "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", + "license": "MIT", + "dependencies": { + "redis-errors": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "license": "ISC" + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-package-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/require-package-name/-/require-package-name-2.0.1.tgz", + "integrity": "sha512-uuoJ1hU/k6M0779t3VMVIYpb2VMJk05cehCaABFhXaibcbvfgR8wKiozLjVFSzJPmQMRqIcO0HMyTFqfV09V6Q==", + "license": "MIT" + }, + "node_modules/requrl": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/requrl/-/requrl-3.0.2.tgz", + "integrity": "sha512-f3gjR6d8MhOpn46PP+DSJywbmxi95fxQm3coXBFwognjFLla9X6tr8BdNyaIKNOEkaRbRcm0/zYAqN19N1oyhg==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "license": "MIT" + }, + "node_modules/rollup": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.44.0.tgz", + "integrity": "sha512-qHcdEzLCiktQIfwBq420pn2dP+30uzqYxv9ETm91wdt2R9AFcWfjNAmje4NWlnCIQ5RMTzVf0ZyisOKqHR6RwA==", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.44.0", + "@rollup/rollup-android-arm64": "4.44.0", + "@rollup/rollup-darwin-arm64": "4.44.0", + "@rollup/rollup-darwin-x64": "4.44.0", + "@rollup/rollup-freebsd-arm64": "4.44.0", + "@rollup/rollup-freebsd-x64": "4.44.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.44.0", + "@rollup/rollup-linux-arm-musleabihf": "4.44.0", + "@rollup/rollup-linux-arm64-gnu": "4.44.0", + "@rollup/rollup-linux-arm64-musl": "4.44.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.44.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.44.0", + "@rollup/rollup-linux-riscv64-gnu": "4.44.0", + "@rollup/rollup-linux-riscv64-musl": "4.44.0", + "@rollup/rollup-linux-s390x-gnu": "4.44.0", + "@rollup/rollup-linux-x64-gnu": "4.44.0", + "@rollup/rollup-linux-x64-musl": "4.44.0", + "@rollup/rollup-win32-arm64-msvc": "4.44.0", + "@rollup/rollup-win32-ia32-msvc": "4.44.0", + "@rollup/rollup-win32-x64-msvc": "4.44.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-visualizer": { + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.14.0.tgz", + "integrity": "sha512-VlDXneTDaKsHIw8yzJAFWtrzguoJ/LnQ+lMpoVfYJ3jJF4Ihe5oYLAqLklIK/35lgUY+1yEzCkHyZ1j4A5w5fA==", + "license": "MIT", + "dependencies": { + "open": "^8.4.0", + "picomatch": "^4.0.2", + "source-map": "^0.7.4", + "yargs": "^17.5.1" + }, + "bin": { + "rollup-plugin-visualizer": "dist/bin/cli.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "rolldown": "1.x", + "rollup": "2.x || 3.x || 4.x" + }, + "peerDependenciesMeta": { + "rolldown": { + "optional": true + }, + "rollup": { + "optional": true + } + } + }, + "node_modules/run-applescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/sass": { + "version": "1.70.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.70.0.tgz", + "integrity": "sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==", + "license": "MIT", + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-loader": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.5.tgz", + "integrity": "sha512-oL+CMBXrj6BZ/zOq4os+UECPL+bWqt6OAC6DWS8Ln8GZRcMDjlJ4JC3FBDuHJdYaFWIdKNIBYmtZtK2MaMkNIw==", + "license": "MIT", + "dependencies": { + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/sass/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/sass/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/sass/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/scule": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz", + "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", + "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.5", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "mime-types": "^3.0.1", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-placeholder": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/serve-placeholder/-/serve-placeholder-2.0.2.tgz", + "integrity": "sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==", + "license": "MIT", + "dependencies": { + "defu": "^6.1.4" + } + }, + "node_modules/serve-static": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/simple-git": { + "version": "3.28.0", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.28.0.tgz", + "integrity": "sha512-Rs/vQRwsn1ILH1oBUy8NucJlXmnnLeLCfcvbSehkPzbv3wwoFWIdtfd6Ndo6ZPhlPsCZ60CPI4rxurnwAa+a2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@kwsites/file-exists": "^1.1.1", + "@kwsites/promise-deferred": "^1.1.1", + "debug": "^4.4.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/steveukx/git-js?sponsor=1" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/sirv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.1.tgz", + "integrity": "sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/smob": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/smob/-/smob-1.5.0.tgz", + "integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==", + "license": "MIT" + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz", + "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==", + "license": "CC0-1.0" + }, + "node_modules/speakingurl": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", + "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", + "license": "MIT" + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/standard-as-callback": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", + "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==", + "license": "MIT" + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/std-env": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz", + "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==", + "license": "MIT" + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "peer": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/streamx": { + "version": "2.22.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.1.tgz", + "integrity": "sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==", + "license": "MIT", + "dependencies": { + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz", + "integrity": "sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==", + "license": "MIT", + "dependencies": { + "js-tokens": "^9.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "license": "MIT" + }, + "node_modules/structured-clone-es": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/structured-clone-es/-/structured-clone-es-1.0.0.tgz", + "integrity": "sha512-FL8EeKFFyNQv5cMnXI31CIMCsFarSVI2bF0U0ImeNE3g/F1IvJQyqzOXxPBRXiwQfyBTlbNe88jh1jFW0O/jiQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/styled-jsx": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", + "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "license": "MIT", + "peer": true, + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/stylehacks": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-7.0.5.tgz", + "integrity": "sha512-5kNb7V37BNf0Q3w+1pxfa+oiNPS++/b4Jil9e/kPDgrk1zjEd6uR7SZeJiYaLYH6RRSC1XX2/37OTeU/4FvuIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.5", + "postcss-selector-parser": "^7.1.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/superjson": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.2.tgz", + "integrity": "sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==", + "license": "MIT", + "dependencies": { + "copy-anything": "^3.0.2" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/supports-color": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.0.0.tgz", + "integrity": "sha512-HRVVSbCCMbj7/kdWF9Q+bbckjBHLtHMEoJWlkmYzzdwhYMkjkOwubLM6t7NbWKjgKamGDrWL1++KrjUO1t9oAQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svgo": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/system-architecture": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/system-architecture/-/system-architecture-0.1.0.tgz", + "integrity": "sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tapable": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", + "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/terser": { + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", + "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, + "node_modules/text-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", + "license": "MIT" + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.1.tgz", + "integrity": "sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", + "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", + "license": "MIT", + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "license": "MIT", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/tmp-promise": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", + "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", + "license": "MIT", + "dependencies": { + "tmp": "^0.2.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/toml": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", + "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==", + "license": "MIT" + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/triple-beam": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "license": "MIT", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/ts-api-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/type-fest": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.40.1.tgz", + "integrity": "sha512-9YvLNnORDpI+vghLU/Nf+zSv0kL47KbVJ1o3sKgoTefl6i+zebxbiDQWoe/oWWqPhIgQdRZRT1KA9sCPL810SA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", + "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==", + "license": "MIT" + }, + "node_modules/ultrahtml": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.6.0.tgz", + "integrity": "sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==", + "license": "MIT" + }, + "node_modules/uncrypto": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", + "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", + "license": "MIT" + }, + "node_modules/unctx": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/unctx/-/unctx-2.4.1.tgz", + "integrity": "sha512-AbaYw0Nm4mK4qjhns67C+kgxR2YWiwlDBPzxrN8h8C6VtAdCgditAY5Dezu3IJy4XVqAnbrXt9oQJvsn3fyozg==", + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17", + "unplugin": "^2.1.0" + } + }, + "node_modules/unctx/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "license": "MIT", + "optional": true + }, + "node_modules/unenv": { + "version": "2.0.0-rc.17", + "resolved": "https://registry.npmjs.org/unenv/-/unenv-2.0.0-rc.17.tgz", + "integrity": "sha512-B06u0wXkEd+o5gOCMl/ZHl5cfpYbDZKAT+HWTL+Hws6jWu7dCiqBBXXXzMFcFVJb8D4ytAnYmxJA83uwOQRSsg==", + "license": "MIT", + "dependencies": { + "defu": "^6.1.4", + "exsolve": "^1.0.4", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "ufo": "^1.6.1" + } + }, + "node_modules/unhead": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/unhead/-/unhead-2.0.10.tgz", + "integrity": "sha512-GT188rzTCeSKt55tYyQlHHKfUTtZvgubrXiwzGeXg6UjcKO3FsagaMzQp6TVDrpDY++3i7Qt0t3pnCc/ebg5yQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hookable": "^5.5.3" + }, + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + } + }, + "node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unimport": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/unimport/-/unimport-5.0.1.tgz", + "integrity": "sha512-1YWzPj6wYhtwHE+9LxRlyqP4DiRrhGfJxdtH475im8ktyZXO3jHj/3PZ97zDdvkYoovFdi0K4SKl3a7l92v3sQ==", + "license": "MIT", + "dependencies": { + "acorn": "^8.14.1", + "escape-string-regexp": "^5.0.0", + "estree-walker": "^3.0.3", + "local-pkg": "^1.1.1", + "magic-string": "^0.30.17", + "mlly": "^1.7.4", + "pathe": "^2.0.3", + "picomatch": "^4.0.2", + "pkg-types": "^2.1.0", + "scule": "^1.3.0", + "strip-literal": "^3.0.0", + "tinyglobby": "^0.2.13", + "unplugin": "^2.3.2", + "unplugin-utils": "^0.2.4" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/unimport/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/unixify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz", + "integrity": "sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==", + "license": "MIT", + "dependencies": { + "normalize-path": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unixify/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unplugin": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.5.tgz", + "integrity": "sha512-RyWSb5AHmGtjjNQ6gIlA67sHOsWpsbWpwDokLwTcejVdOjEkJZh7QKu14J00gDDVSh8kGH4KYC/TNBceXFZhtw==", + "license": "MIT", + "dependencies": { + "acorn": "^8.14.1", + "picomatch": "^4.0.2", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/unplugin-utils": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/unplugin-utils/-/unplugin-utils-0.2.4.tgz", + "integrity": "sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==", + "license": "MIT", + "dependencies": { + "pathe": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=18.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/unplugin-vue-router": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/unplugin-vue-router/-/unplugin-vue-router-0.12.0.tgz", + "integrity": "sha512-xjgheKU0MegvXQcy62GVea0LjyOdMxN0/QH+ijN29W62ZlMhG7o7K+0AYqfpprvPwpWtuRjiyC5jnV2SxWye2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.8", + "@vue-macros/common": "^1.16.1", + "ast-walker-scope": "^0.6.2", + "chokidar": "^4.0.3", + "fast-glob": "^3.3.3", + "json5": "^2.2.3", + "local-pkg": "^1.0.0", + "magic-string": "^0.30.17", + "micromatch": "^4.0.8", + "mlly": "^1.7.4", + "pathe": "^2.0.2", + "scule": "^1.3.0", + "unplugin": "^2.2.0", + "unplugin-utils": "^0.2.3", + "yaml": "^2.7.0" + }, + "peerDependencies": { + "vue-router": "^4.4.0" + }, + "peerDependenciesMeta": { + "vue-router": { + "optional": true + } + } + }, + "node_modules/unstorage": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.16.0.tgz", + "integrity": "sha512-WQ37/H5A7LcRPWfYOrDa1Ys02xAbpPJq6q5GkO88FBXVSQzHd7+BjEwfRqyaSWCv9MbsJy058GWjjPjcJ16GGA==", + "license": "MIT", + "dependencies": { + "anymatch": "^3.1.3", + "chokidar": "^4.0.3", + "destr": "^2.0.5", + "h3": "^1.15.2", + "lru-cache": "^10.4.3", + "node-fetch-native": "^1.6.6", + "ofetch": "^1.4.1", + "ufo": "^1.6.1" + }, + "peerDependencies": { + "@azure/app-configuration": "^1.8.0", + "@azure/cosmos": "^4.2.0", + "@azure/data-tables": "^13.3.0", + "@azure/identity": "^4.6.0", + "@azure/keyvault-secrets": "^4.9.0", + "@azure/storage-blob": "^12.26.0", + "@capacitor/preferences": "^6.0.3 || ^7.0.0", + "@deno/kv": ">=0.9.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0", + "@planetscale/database": "^1.19.0", + "@upstash/redis": "^1.34.3", + "@vercel/blob": ">=0.27.1", + "@vercel/kv": "^1.0.1", + "aws4fetch": "^1.0.20", + "db0": ">=0.2.1", + "idb-keyval": "^6.2.1", + "ioredis": "^5.4.2", + "uploadthing": "^7.4.4" + }, + "peerDependenciesMeta": { + "@azure/app-configuration": { + "optional": true + }, + "@azure/cosmos": { + "optional": true + }, + "@azure/data-tables": { + "optional": true + }, + "@azure/identity": { + "optional": true + }, + "@azure/keyvault-secrets": { + "optional": true + }, + "@azure/storage-blob": { + "optional": true + }, + "@capacitor/preferences": { + "optional": true + }, + "@deno/kv": { + "optional": true + }, + "@netlify/blobs": { + "optional": true + }, + "@planetscale/database": { + "optional": true + }, + "@upstash/redis": { + "optional": true + }, + "@vercel/blob": { + "optional": true + }, + "@vercel/kv": { + "optional": true + }, + "aws4fetch": { + "optional": true + }, + "db0": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "uploadthing": { + "optional": true + } + } + }, + "node_modules/unstorage/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/untun": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/untun/-/untun-0.1.3.tgz", + "integrity": "sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==", + "license": "MIT", + "dependencies": { + "citty": "^0.1.5", + "consola": "^3.2.3", + "pathe": "^1.1.1" + }, + "bin": { + "untun": "bin/untun.mjs" + } + }, + "node_modules/untun/node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "license": "MIT" + }, + "node_modules/untyped": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/untyped/-/untyped-2.0.0.tgz", + "integrity": "sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g==", + "license": "MIT", + "dependencies": { + "citty": "^0.1.6", + "defu": "^6.1.4", + "jiti": "^2.4.2", + "knitwork": "^1.2.0", + "scule": "^1.3.0" + }, + "bin": { + "untyped": "dist/cli.mjs" + } + }, + "node_modules/unwasm": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/unwasm/-/unwasm-0.3.9.tgz", + "integrity": "sha512-LDxTx/2DkFURUd+BU1vUsF/moj0JsoTvl+2tcg2AUOiEzVturhGGx17/IMgGvKUYdZwr33EJHtChCJuhu9Ouvg==", + "license": "MIT", + "dependencies": { + "knitwork": "^1.0.0", + "magic-string": "^0.30.8", + "mlly": "^1.6.1", + "pathe": "^1.1.2", + "pkg-types": "^1.0.3", + "unplugin": "^1.10.0" + } + }, + "node_modules/unwasm/node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "license": "MIT" + }, + "node_modules/unwasm/node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "license": "MIT" + }, + "node_modules/unwasm/node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/unwasm/node_modules/pkg-types/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "license": "MIT" + }, + "node_modules/unwasm/node_modules/unplugin": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.16.1.tgz", + "integrity": "sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==", + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uqr": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/uqr/-/uqr-0.1.2.tgz", + "integrity": "sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==", + "license": "MIT" + }, + "node_modules/urlpattern-polyfill": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz", + "integrity": "sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==", + "license": "MIT" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/uuid": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/esm/bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vee-validate": { + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/vee-validate/-/vee-validate-4.15.1.tgz", + "integrity": "sha512-DkFsiTwEKau8VIxyZBGdO6tOudD+QoUBPuHj3e6QFqmbfCRj1ArmYWue9lEp6jLSWBIw4XPlDLjFIZNLdRAMSg==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^7.5.2", + "type-fest": "^4.8.3" + }, + "peerDependencies": { + "vue": "^3.4.26" + } + }, + "node_modules/vee-validate/node_modules/@vue/devtools-api": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.7.7.tgz", + "integrity": "sha512-lwOnNBH2e7x1fIIbVT7yF5D+YWhqELm55/4ZKf45R9T8r9dE2AIOy8HKjfqzGsoTHFbWbr337O4E0A0QADnjBg==", + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^7.7.7" + } + }, + "node_modules/vite": { + "version": "6.3.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", + "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-dev-rpc": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/vite-dev-rpc/-/vite-dev-rpc-1.0.7.tgz", + "integrity": "sha512-FxSTEofDbUi2XXujCA+hdzCDkXFG1PXktMjSk1efq9Qb5lOYaaM9zNSvKvPPF7645Bak79kSp1PTooMW2wktcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "birpc": "^2.0.19", + "vite-hot-client": "^2.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.1" + } + }, + "node_modules/vite-hot-client": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vite-hot-client/-/vite-hot-client-2.0.4.tgz", + "integrity": "sha512-W9LOGAyGMrbGArYJN4LBCdOC5+Zwh7dHvOHC0KmGKkJhsOzaKbpo/jEjpPKVHIW0/jBWj8RZG0NUxfgA8BxgAg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0" + } + }, + "node_modules/vite-node": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz", + "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.1", + "es-module-lexer": "^1.7.0", + "pathe": "^2.0.3", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-plugin-checker": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.9.3.tgz", + "integrity": "sha512-Tf7QBjeBtG7q11zG0lvoF38/2AVUzzhMNu+Wk+mcsJ00Rk/FpJ4rmUviVJpzWkagbU13cGXvKpt7CMiqtxVTbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "chokidar": "^4.0.3", + "npm-run-path": "^6.0.0", + "picocolors": "^1.1.1", + "picomatch": "^4.0.2", + "strip-ansi": "^7.1.0", + "tiny-invariant": "^1.3.3", + "tinyglobby": "^0.2.13", + "vscode-uri": "^3.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "peerDependencies": { + "@biomejs/biome": ">=1.7", + "eslint": ">=7", + "meow": "^13.2.0", + "optionator": "^0.9.4", + "stylelint": ">=16", + "typescript": "*", + "vite": ">=2.0.0", + "vls": "*", + "vti": "*", + "vue-tsc": "~2.2.10" + }, + "peerDependenciesMeta": { + "@biomejs/biome": { + "optional": true + }, + "eslint": { + "optional": true + }, + "meow": { + "optional": true + }, + "optionator": { + "optional": true + }, + "stylelint": { + "optional": true + }, + "typescript": { + "optional": true + }, + "vls": { + "optional": true + }, + "vti": { + "optional": true + }, + "vue-tsc": { + "optional": true + } + } + }, + "node_modules/vite-plugin-checker/node_modules/npm-run-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-checker/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-inspect": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/vite-plugin-inspect/-/vite-plugin-inspect-11.2.0.tgz", + "integrity": "sha512-hcCncl4YK20gcrx22cPF5mR+zfxsCmX6vUQKCyudgOZMYKVVGbrxVaL3zU62W0MVSVawtf5ZR4DrLRO+9fZVWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansis": "^3.17.0", + "debug": "^4.4.1", + "error-stack-parser-es": "^1.0.5", + "ohash": "^2.0.11", + "open": "^10.1.2", + "perfect-debounce": "^1.0.0", + "sirv": "^3.0.1", + "unplugin-utils": "^0.2.4", + "vite-dev-rpc": "^1.0.7" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^6.0.0" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + } + } + }, + "node_modules/vite-plugin-inspect/node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-inspect/node_modules/open": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/open/-/open-10.1.2.tgz", + "integrity": "sha512-cxN6aIDPz6rm8hbebcP7vrQNhvRcveZoJU72Y7vskh4oIm+BZwBECnx5nTmrlres1Qapvx27Qo1Auukpf8PKXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-vue-tracer": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/vite-plugin-vue-tracer/-/vite-plugin-vue-tracer-0.1.4.tgz", + "integrity": "sha512-o6tzfvwreQWg/S42vIPmSjXHj939p+a1gnl6VICpWgMtWqoVn21YlK4X63nZvQV/D0mmJe5CCtV/h0zaNdAL6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "estree-walker": "^3.0.3", + "exsolve": "^1.0.5", + "magic-string": "^0.30.17", + "pathe": "^2.0.3", + "source-map-js": "^1.2.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^6.0.0", + "vue": "^3.5.0" + } + }, + "node_modules/vite-plugin-vue-tracer/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/vue": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", + "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-sfc": "3.5.13", + "@vue/runtime-dom": "3.5.13", + "@vue/server-renderer": "3.5.13", + "@vue/shared": "3.5.13" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-bundle-renderer": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/vue-bundle-renderer/-/vue-bundle-renderer-2.1.1.tgz", + "integrity": "sha512-+qALLI5cQncuetYOXp4yScwYvqh8c6SMXee3B+M7oTZxOgtESP0l4j/fXdEJoZ+EdMxkGWIj+aSEyjXkOdmd7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "ufo": "^1.5.4" + } + }, + "node_modules/vue-devtools-stub": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/vue-devtools-stub/-/vue-devtools-stub-0.1.0.tgz", + "integrity": "sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/vue-i18n": { + "version": "11.1.6", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-11.1.6.tgz", + "integrity": "sha512-+IbsW/sTZHj7U1w0rPOYJbuSB0/7DeO1nvUo3BxvO20OQgHs+ukJ3QeLqvoUA6DiLk+8SA9+djRmKC9+FC6cAg==", + "license": "MIT", + "dependencies": { + "@intlify/core-base": "11.1.6", + "@intlify/shared": "11.1.6", + "@vue/devtools-api": "^6.5.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-router": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.5.1.tgz", + "integrity": "sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue-tabler-icons": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/vue-tabler-icons/-/vue-tabler-icons-2.21.0.tgz", + "integrity": "sha512-rEZYPd37j1sd/9gBFtC1u8wj3Pz1S3gLP1tgexvnivzQPXphc6M+7XuTSOd7wtdpaLt1sQgDmuQxIgczzrvf0A==", + "license": "MIT" + }, + "node_modules/vue3-apexcharts": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/vue3-apexcharts/-/vue3-apexcharts-1.5.2.tgz", + "integrity": "sha512-rGbgUJDjtsyjfRF0uzwDjzt8+M7ICSRAbm1N9KCDiczW8BSpbEZuaEsJDJYnJuLFIIVXIGilYzIcjNBf6NbeYA==", + "license": "MIT", + "peerDependencies": { + "apexcharts": "> 3.0.0", + "vue": "> 3.0.0" + } + }, + "node_modules/vue3-perfect-scrollbar": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/vue3-perfect-scrollbar/-/vue3-perfect-scrollbar-1.6.1.tgz", + "integrity": "sha512-r9wfxlFwVyHXMPKG0PnR7fDfJPQ20KEVzKQfSU5by2WKYz2PwV0bTfyfejmEyZXsXL0O8VtSWtgxfPuFR2AGOg==", + "license": "MIT", + "dependencies": { + "cssnano": "^5.1.14", + "perfect-scrollbar": "^1.5.5", + "postcss-import": "^12.0.0" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/css-declaration-sorter": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", + "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/cssnano": { + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "license": "MIT", + "dependencies": { + "cssnano-preset-default": "^5.2.14", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/cssnano-preset-default": { + "version": "5.2.14", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "license": "MIT", + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.1", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.4", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.2", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "license": "MIT", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "license": "CC0-1.0" + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-colormin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-merge-longhand": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-merge-rules": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "license": "MIT", + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-normalize-unicode": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "license": "MIT", + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "license": "MIT", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-reduce-initial": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/vue3-perfect-scrollbar/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/vuetify": { + "version": "3.7.18", + "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.7.18.tgz", + "integrity": "sha512-JDkPIaug4hP9c+K/wxSgmTiLTMjBTYv2ATPvudhkRKuhsoym89aWCXb1CVbs7FRYuRsJEOGojpwpL5rBfDDy9g==", + "license": "MIT", + "engines": { + "node": "^12.20 || >=14.13" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/johnleider" + }, + "peerDependencies": { + "typescript": ">=4.7", + "vite-plugin-vuetify": ">=1.0.0", + "vue": "^3.3.0", + "webpack-plugin-vuetify": ">=2.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vite-plugin-vuetify": { + "optional": true + }, + "webpack-plugin-vuetify": { + "optional": true + } + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "license": "MIT", + "peer": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "license": "MIT" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/winston": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.17.0.tgz", + "integrity": "sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==", + "license": "MIT", + "dependencies": { + "@colors/colors": "^1.6.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.7.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.9.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-transport": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.9.0.tgz", + "integrity": "sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==", + "license": "MIT", + "dependencies": { + "logform": "^2.7.0", + "readable-stream": "^3.6.2", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-transport/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/winston/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/winston/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-6.0.0.tgz", + "integrity": "sha512-GmqrO8WJ1NuzJ2DrziEI2o57jKAVIQNf8a18W3nCYU3H7PNWqCCVTeH6/NQE93CIllIgQS98rrmVkYgTX9fFJQ==", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/ws": { + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", + "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.1.tgz", + "integrity": "sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==", + "devOptional": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yauzl/node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/yocto-queue": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz", + "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==", + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/youch": { + "version": "4.1.0-beta.7", + "resolved": "https://registry.npmjs.org/youch/-/youch-4.1.0-beta.7.tgz", + "integrity": "sha512-HUn0M24AUTMvjdkoMtH8fJz2FEd+k1xvtR9EoTrDUoVUi6o7xl5X+pST/vjk4T3GEQo2mJ9FlAvhWBm8dIdD4g==", + "license": "MIT", + "dependencies": { + "@poppinss/dumper": "^0.6.3", + "@speed-highlight/core": "^1.2.7", + "cookie": "^1.0.2", + "youch-core": "^0.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/youch-core": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/youch-core/-/youch-core-0.3.2.tgz", + "integrity": "sha512-fusrlIMLeRvTFYLUjJ9KzlGC3N+6MOPJ68HNj/yJv2nz7zq8t4HEviLms2gkdRPUS7F5rZ5n+pYx9r88m6IE1g==", + "license": "MIT", + "dependencies": { + "@poppinss/exception": "^1.2.0", + "error-stack-parser-es": "^1.0.5" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/zip-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz", + "integrity": "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==", + "license": "MIT", + "dependencies": { + "archiver-utils": "^5.0.0", + "compress-commons": "^6.0.2", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/zod": { + "version": "3.25.67", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.67.tgz", + "integrity": "sha512-idA2YXwpCdqUSKRCACDE6ItZD9TZzy3OZMtpfLoh6oPR47lipysRrJfjzMqFxQ3uJuUPyUeWe1r9vLH33xO/Qw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/package.json b/package.json new file mode 100755 index 0000000..59028ea --- /dev/null +++ b/package.json @@ -0,0 +1,44 @@ +{ + "name": "matdash", + "version": "2.0.0", + "type": "module", + "private": true, + "scripts": { + "build": "nuxt build", + "dev": "nuxt dev -o --host --port 3001", + "generate": "nuxt generate", + "preview": "nuxt preview", + "postinstall": "nuxt prepare" + }, + "dependencies": { + "@iconify/vue": "^4.1.1", + "@mdi/font": "7.4.47", + "@pinia/nuxt": "^0.11.1", + "@sidebase/nuxt-auth": "^0.10.1", + "@types/lodash-es": "^4.17.12", + "@vueuse/i18n": "^4.0.0-beta.12", + "apexcharts": "4.5.0", + "axios": "^1.9.0", + "axios-mock-adapter": "^2.1.0", + "jsonwebtoken": "^9.0.2", + "lodash-es": "^4.17.21", + "pinia": "^3.0.3", + "sass": "1.70.0", + "sass-loader": "^16.0.5", + "typescript": "^5.8.3", + "vee-validate": "^4.15.1", + "vite": "^6.3.5", + "vue": "3.5.13", + "vue-i18n": "^11.1.5", + "vue-tabler-icons": "2.21.0", + "vue3-apexcharts": "1.5.2", + "vue3-perfect-scrollbar": "1.6.1", + "vuetify": "3.7.18" + }, + "devDependencies": { + "nuxt": "^3.17.5" + }, + "overrides": { + "nth-check": "2.1.1" + } +} diff --git a/pages/Icons.vue b/pages/Icons.vue new file mode 100755 index 0000000..8c6462b --- /dev/null +++ b/pages/Icons.vue @@ -0,0 +1,15 @@ + + diff --git a/pages/Sample-Page.vue b/pages/Sample-Page.vue new file mode 100755 index 0000000..9cc946d --- /dev/null +++ b/pages/Sample-Page.vue @@ -0,0 +1,16 @@ + + diff --git a/pages/apps/appointment/registration/create.vue b/pages/apps/appointment/registration/create.vue new file mode 100644 index 0000000..1af57c5 --- /dev/null +++ b/pages/apps/appointment/registration/create.vue @@ -0,0 +1,145 @@ + + + diff --git a/pages/apps/dashboard/index.vue b/pages/apps/dashboard/index.vue new file mode 100755 index 0000000..acc8741 --- /dev/null +++ b/pages/apps/dashboard/index.vue @@ -0,0 +1,25 @@ + + + diff --git a/pages/apps/patient/create.vue b/pages/apps/patient/create.vue new file mode 100644 index 0000000..62248b1 --- /dev/null +++ b/pages/apps/patient/create.vue @@ -0,0 +1,183 @@ + + + diff --git a/pages/auth/Error.vue b/pages/auth/Error.vue new file mode 100755 index 0000000..b9fa4e9 --- /dev/null +++ b/pages/auth/Error.vue @@ -0,0 +1,16 @@ + + diff --git a/pages/auth/Login.vue b/pages/auth/Login.vue new file mode 100755 index 0000000..21e3bff --- /dev/null +++ b/pages/auth/Login.vue @@ -0,0 +1,31 @@ + + diff --git a/pages/auth/Maintenance.vue b/pages/auth/Maintenance.vue new file mode 100755 index 0000000..2726767 --- /dev/null +++ b/pages/auth/Maintenance.vue @@ -0,0 +1,16 @@ + + diff --git a/pages/auth/Register.vue b/pages/auth/Register.vue new file mode 100755 index 0000000..6dca732 --- /dev/null +++ b/pages/auth/Register.vue @@ -0,0 +1,58 @@ + + diff --git a/pages/content/create.vue b/pages/content/create.vue new file mode 100644 index 0000000..b39098d --- /dev/null +++ b/pages/content/create.vue @@ -0,0 +1,410 @@ + + + + + diff --git a/pages/index.vue b/pages/index.vue new file mode 100755 index 0000000..340eaa3 --- /dev/null +++ b/pages/index.vue @@ -0,0 +1,22 @@ + + + diff --git a/pages/ui-components/Alerts.vue b/pages/ui-components/Alerts.vue new file mode 100755 index 0000000..634dc2d --- /dev/null +++ b/pages/ui-components/Alerts.vue @@ -0,0 +1,37 @@ + + + diff --git a/pages/ui-components/Buttons.vue b/pages/ui-components/Buttons.vue new file mode 100755 index 0000000..f7876d9 --- /dev/null +++ b/pages/ui-components/Buttons.vue @@ -0,0 +1,64 @@ + + +// ===============================|| Ui Buttons ||=============================== // + diff --git a/pages/ui-components/Cards.vue b/pages/ui-components/Cards.vue new file mode 100755 index 0000000..8108ef7 --- /dev/null +++ b/pages/ui-components/Cards.vue @@ -0,0 +1,50 @@ + + + diff --git a/pages/ui-components/Tables.vue b/pages/ui-components/Tables.vue new file mode 100755 index 0000000..d28d11b --- /dev/null +++ b/pages/ui-components/Tables.vue @@ -0,0 +1,111 @@ + + + \ No newline at end of file diff --git a/pages/ui/Shadow.vue b/pages/ui/Shadow.vue new file mode 100755 index 0000000..94f7d8d --- /dev/null +++ b/pages/ui/Shadow.vue @@ -0,0 +1,11 @@ + + + diff --git a/pages/ui/Typography.vue b/pages/ui/Typography.vue new file mode 100755 index 0000000..b500dc5 --- /dev/null +++ b/pages/ui/Typography.vue @@ -0,0 +1,18 @@ + + + diff --git a/plugins/i18n.ts b/plugins/i18n.ts new file mode 100755 index 0000000..1fab75e --- /dev/null +++ b/plugins/i18n.ts @@ -0,0 +1,21 @@ +import { createI18n } from "vue-i18n"; +import { defineNuxtPlugin } from "#app"; + +const messages = { + en: { + welcome: "Welcome", + // Add your translations here + }, + // Add other languages here +}; + +export default defineNuxtPlugin((nuxtApp) => { + const i18n = createI18n({ + legacy: false, + locale: "en", + fallbackLocale: "en", + messages, + }); + + nuxtApp.vueApp.use(i18n); +}); diff --git a/plugins/vuetify.ts b/plugins/vuetify.ts new file mode 100755 index 0000000..697ae0f --- /dev/null +++ b/plugins/vuetify.ts @@ -0,0 +1,77 @@ +import { createVuetify } from "vuetify"; +import * as components from "vuetify/components"; +import * as directives from "vuetify/directives"; +import PerfectScrollbar from "vue3-perfect-scrollbar"; +// import VueApexCharts from "vue3-apexcharts"; +import VueTablerIcons from "vue-tabler-icons"; +import "@mdi/font/css/materialdesignicons.css"; +import "~/scss/style.scss"; +import { + BLUE_THEME, + AQUA_THEME, + PURPLE_THEME, + GREEN_THEME, + CYAN_THEME, + ORANGE_THEME +} from "~/theme/LightTheme"; +import { + DARK_BLUE_THEME, + DARK_AQUA_THEME, + DARK_ORANGE_THEME, + DARK_PURPLE_THEME, + DARK_GREEN_THEME, + DARK_CYAN_THEME +} from "~/theme/DarkTheme"; +export default defineNuxtPlugin((nuxtApp) => { + const vuetify = createVuetify({ + components, + directives, + theme: { + defaultTheme: "BLUE_THEME", + themes: { + BLUE_THEME, + AQUA_THEME, + PURPLE_THEME, + GREEN_THEME, + CYAN_THEME, + ORANGE_THEME, + DARK_BLUE_THEME, + DARK_AQUA_THEME, + DARK_ORANGE_THEME, + DARK_PURPLE_THEME, + DARK_GREEN_THEME, + DARK_CYAN_THEME + } + }, + defaults: { + VCard: { + rounded: "md" + }, + VTextField: { + variant: "outlined", + density: "comfortable", + color: "primary" + }, + VTextarea: { + variant: "outlined", + density: "comfortable", + color: "primary" + }, + VSelect: { + variant: "outlined", + density: "comfortable", + color: "primary" + }, + VListItem: { + minHeight: "45px" + }, + VTooltip: { + location: "top" + } + } + }); + nuxtApp.vueApp.use(vuetify); + nuxtApp.vueApp.use(PerfectScrollbar); + // nuxtApp.vueApp.use(VueApexCharts); + nuxtApp.vueApp.use(VueTablerIcons); +}); diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100755 index 0000000..9a7ea34 Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100755 index 0000000..cf0338a --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/images/backgrounds/errorimg.svg b/public/images/backgrounds/errorimg.svg new file mode 100755 index 0000000..8f2bb44 --- /dev/null +++ b/public/images/backgrounds/errorimg.svg @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/backgrounds/rupee.png b/public/images/backgrounds/rupee.png new file mode 100755 index 0000000..424a2e6 Binary files /dev/null and b/public/images/backgrounds/rupee.png differ diff --git a/public/images/blog/blog-img1.jpg b/public/images/blog/blog-img1.jpg new file mode 100755 index 0000000..94204af Binary files /dev/null and b/public/images/blog/blog-img1.jpg differ diff --git a/public/images/blog/blog-img2.jpg b/public/images/blog/blog-img2.jpg new file mode 100755 index 0000000..1595772 Binary files /dev/null and b/public/images/blog/blog-img2.jpg differ diff --git a/public/images/blog/blog-img3.jpg b/public/images/blog/blog-img3.jpg new file mode 100755 index 0000000..b065626 Binary files /dev/null and b/public/images/blog/blog-img3.jpg differ diff --git a/public/images/logos/dark-logo.svg b/public/images/logos/dark-logo.svg new file mode 100755 index 0000000..d90fe40 --- /dev/null +++ b/public/images/logos/dark-logo.svg @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/logos/icon.svg b/public/images/logos/icon.svg new file mode 100755 index 0000000..7a432fd --- /dev/null +++ b/public/images/logos/icon.svg @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/logos/light-logo.svg b/public/images/logos/light-logo.svg new file mode 100755 index 0000000..c4fe4e3 --- /dev/null +++ b/public/images/logos/light-logo.svg @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/logos/logo-adminmart.svg b/public/images/logos/logo-adminmart.svg new file mode 100755 index 0000000..fa68b2d --- /dev/null +++ b/public/images/logos/logo-adminmart.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/logos/logo-icon.svg b/public/images/logos/logo-icon.svg new file mode 100755 index 0000000..cf0338a --- /dev/null +++ b/public/images/logos/logo-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/images/logos/logo.svg b/public/images/logos/logo.svg new file mode 100755 index 0000000..2f7b3ae --- /dev/null +++ b/public/images/logos/logo.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/public/images/products/dash-prd-1.jpg b/public/images/products/dash-prd-1.jpg new file mode 100755 index 0000000..899655e Binary files /dev/null and b/public/images/products/dash-prd-1.jpg differ diff --git a/public/images/products/dash-prd-2.jpg b/public/images/products/dash-prd-2.jpg new file mode 100755 index 0000000..8f0f8d7 Binary files /dev/null and b/public/images/products/dash-prd-2.jpg differ diff --git a/public/images/products/dash-prd-3.jpg b/public/images/products/dash-prd-3.jpg new file mode 100755 index 0000000..0de5c01 Binary files /dev/null and b/public/images/products/dash-prd-3.jpg differ diff --git a/public/images/products/dash-prd-4.jpg b/public/images/products/dash-prd-4.jpg new file mode 100755 index 0000000..77be043 Binary files /dev/null and b/public/images/products/dash-prd-4.jpg differ diff --git a/public/images/profile/user-1.jpg b/public/images/profile/user-1.jpg new file mode 100755 index 0000000..8d54dc0 Binary files /dev/null and b/public/images/profile/user-1.jpg differ diff --git a/public/images/profile/user-2.jpg b/public/images/profile/user-2.jpg new file mode 100755 index 0000000..e60f75e Binary files /dev/null and b/public/images/profile/user-2.jpg differ diff --git a/public/images/profile/user-3.jpg b/public/images/profile/user-3.jpg new file mode 100755 index 0000000..55cbe1e Binary files /dev/null and b/public/images/profile/user-3.jpg differ diff --git a/public/images/technology/angular-cat-icon.svg b/public/images/technology/angular-cat-icon.svg new file mode 100755 index 0000000..9cb48f1 --- /dev/null +++ b/public/images/technology/angular-cat-icon.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/images/technology/bt-cat-icon.svg b/public/images/technology/bt-cat-icon.svg new file mode 100755 index 0000000..2180b11 --- /dev/null +++ b/public/images/technology/bt-cat-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/images/technology/next-cat-icon.svg b/public/images/technology/next-cat-icon.svg new file mode 100755 index 0000000..3560fc4 --- /dev/null +++ b/public/images/technology/next-cat-icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/images/technology/nuxt-cat-icon.svg b/public/images/technology/nuxt-cat-icon.svg new file mode 100755 index 0000000..0dee842 --- /dev/null +++ b/public/images/technology/nuxt-cat-icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/images/technology/react-cat-icon.svg b/public/images/technology/react-cat-icon.svg new file mode 100755 index 0000000..4137740 --- /dev/null +++ b/public/images/technology/react-cat-icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/images/technology/tailwind-icon.svg b/public/images/technology/tailwind-icon.svg new file mode 100755 index 0000000..480da41 --- /dev/null +++ b/public/images/technology/tailwind-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/technology/vue-cat-icon.svg b/public/images/technology/vue-cat-icon.svg new file mode 100755 index 0000000..3a37d80 --- /dev/null +++ b/public/images/technology/vue-cat-icon.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/scss/_override.scss b/scss/_override.scss new file mode 100755 index 0000000..8c74e5c --- /dev/null +++ b/scss/_override.scss @@ -0,0 +1,154 @@ +html { + .bg-success { + color: white !important; + } + + .bg-primary { + color: $white !important; + } + + .bg-secondary { + color: $white !important; + } + + .bg-warning { + color: $white !important; + } + + .bg-info { + color: $white !important; + } + + .bg-success { + color: $white !important; + } + + .bg-error { + color: $white !important; + } + + .bg-lightprimary-100 { + background-color: rgb(var(--v-theme-lightprimary), 0.4) !important; + } +} + +.round-40 { + height: 40px; + width: 40px; +} + +.border, +.v-divider { + border-color: rgba(var(--v-border-color), 1) !important; +} + + +.avtar-border { + border: 2px solid rgb(var(--v-theme-surface)) !important; +} + +.v-dialog { + &.dialog-mw { + max-width: 800px; + } +} + +.round-56 { + height: 56px; + width: 56px; +} + +.round-48 { + height: 48px; + width: 48px; +} + +.round-30 { + height: 30px; + width: 30px; +} + +.lh-0 { + line-height: 0 !important; +} + + +.lh-28 { + line-height: 28px !important; +} + +.lh-32 { + line-height: 32px !important; +} + +.space-p-96 { + padding: 96px 0 !important; + +} + +.ps-96 { + padding-inline-start: 96px !important; +} + +.pt-96 { + padding-top: 96px !important; +} + +.end-0 { + inset-inline-end: 0; +} + +.top-0 { + top: 0; +} + +.no-scrollbar { + height: calc(100vh - 350px); +} + +.msg-chat-height { + height: calc(-500px + 100vh); +} + +@media screen and (max-width:991px) { + .overflow-x-reposive { + overflow-x: scroll; + overflow-y: hidden; + } +} + +@media screen and (max-height:767px) { + .msg-chat-height { + height: calc(-315px + 100vh); + } +} + +.max-h-600 { + max-height: 600px; + height: calc(100vh - 100px); +} + + +.custom-hover-primary { + .iconify { + color: rgba(var(--v-theme-textPrimary), 0.9) !important; + } + + &:hover { + background-color: rgb(var(--v-theme-lightprimary)); + + .iconify { + color: rgb(var(--v-theme-primary)) !important; + } + + } + +} + +.no-icon { + + .v-input__prepend, + .v-input__append { + display: none !important; + } +} \ No newline at end of file diff --git a/scss/_variables.scss b/scss/_variables.scss new file mode 100755 index 0000000..6962e76 --- /dev/null +++ b/scss/_variables.scss @@ -0,0 +1,163 @@ +@use 'sass:math'; +@use 'sass:map'; +@use 'sass:meta'; +@use 'vuetify/lib/styles/tools/functions' as *; + +// Custom Variables +// colors +$white: #fff !default; + +// cards +$card-title-size: 18px !default; +$body-font-family: "Manrope", sans-serif !default; +$border-radius-root: 8px; +$btn-letter-spacing: 0 !default; +// Global Shadowsss +$box-shadow: 0px 2px 4px -1px #afb6c933; + +// Global Radius as per breakeven point + +@forward 'vuetify/settings' with ( + $color-pack: false !default, + // Global font size and border radius + $font-size-root: 1rem, + $border-radius-root: $border-radius-root, + $body-font-family: $body-font-family, + $heading-font-family: $body-font-family !default, + // 👉 Typography + $typography: + ( + //36px + 'h1': ( + 'size': 2.25rem, + 'weight': 600, + 'line-height': 3.75rem, + 'font-family': inherit + ), + //30px + 'h2': ( + 'size': 1.875rem, + 'weight': 600, + 'line-height': 2.25rem, + 'font-family': inherit + ), + //22px + 'h3': ( + 'size': 1.375rem, + 'weight': 600, + 'line-height': 2rem, + 'font-family': inherit + ), + //20px + 'h4': ( + 'size': 1.25rem, + 'weight': 600, + 'line-height': 1.6rem, + 'font-family': inherit + ), + //18px + 'h5': ( + 'size': 1.125rem, + 'weight': 600, + 'line-height': 1.6rem, + 'font-family': inherit + ), + //16px + 'h6': ( + 'size': 1rem, + 'weight': 600, + 'line-height': 1.2rem, + 'font-family': inherit + ), + //15px + 'subtitle-1': ( + 'size': 0.94rem, + 'weight': 400, + 'line-height': 1.1rem, + 'font-family': inherit, + 'letter-spacing':0rem + ), + //13px + 'subtitle-2': ( + 'size': 0.81rem, + 'weight': 400, + 'line-height': 1rem, + 'font-family': inherit, + 'letter-spacing':0rem + ), + //14px + 'body-1': ( + 'size': 0.875rem, + 'weight': 400, + 'font-family': inherit, + 'letter-spacing':0rem + ), + //12px + 'body-2': ( + 'size': 0.75rem, + 'weight': 400, + 'font-family': inherit, + 'letter-spacing':0rem + ), + //13px + 'button': ( + 'size': 0.81rem, + 'weight': 600, + 'font-family': inherit, + 'text-transform': capitalize + ), + //14px + 'caption': ( + 'size':0.875rem, + 'weight': 400, + 'font-family': inherit, + 'letter-spacing':0rem + ), + //12px + 'overline': ( + 'size': 0.75rem, + 'weight': 400, + 'font-family': inherit, + 'letter-spacing':0rem + ) + ) + !default, + // 👉 Button + $button-border-radius: 8px !default, + $button-text-letter-spacing: 0 !default, + $button-text-transform: capitalize, + $button-elevation: ( + 'default': 0, + 'hover': 4, + 'active': 8 + ) + !default, + + // 👉 Tooltip + $tooltip-background-color: #212121 !default, + $tooltip-text-color: rgb(var(--v-theme-on-primary)) !default, + $tooltip-font-size: 0.75rem !default, + $tooltip-border-radius: 4px !default, + $tooltip-padding: 4px 8px !default, + + // 👉 Rounded + $rounded: + ( + 0: 0, + 'sm': $border-radius-root - 4, + null: $border-radius-root, + 'md': $border-radius-root + 4, + 'lg': $border-radius-root * 2, + 'xl': $border-radius-root + 8, + 'pill': 9999px, + 'circle': 50% + ), + + // 👉 Card + $card-elevation: 10 !default, + $card-title-line-height: 1.6 !default, + $card-text-padding: 24px !default, + $card-item-padding: 30px 30px !default, + $card-actions-padding: 10px 24px 24px !default, + $card-subtitle-opacity: 1 !default, +); \ No newline at end of file diff --git a/scss/components/_VAlert.scss b/scss/components/_VAlert.scss new file mode 100755 index 0000000..8415aed --- /dev/null +++ b/scss/components/_VAlert.scss @@ -0,0 +1,24 @@ +.single-line-alert { + .v-alert__close, + .v-alert__prepend { + align-self: center !important; + } +} + +@media (max-width: 500px) { + .single-line-alert { + display: flex; + flex-wrap: wrap; + + .v-alert__append { + margin-inline-start: 0px; + } + .v-alert__close { + margin-left: auto; + } + .v-alert__content { + width: 100%; + margin-top: 5px; + } + } +} diff --git a/scss/components/_VBreadcrumb.scss b/scss/components/_VBreadcrumb.scss new file mode 100755 index 0000000..9de9e05 --- /dev/null +++ b/scss/components/_VBreadcrumb.scss @@ -0,0 +1,16 @@ +.v-breadcrumbs{ + .v-breadcrumbs-item{ + .v-breadcrumbs-item--link{ + display: none; + } + &.v-breadcrumbs-item--disabled{ + opacity: 1; + .v-breadcrumbs-item--link{ + display: block; + } + } + } + .v-breadcrumbs-divider{ + padding: 0 4px !important; + } +} diff --git a/scss/components/_VButtons.scss b/scss/components/_VButtons.scss new file mode 100755 index 0000000..08d7fe8 --- /dev/null +++ b/scss/components/_VButtons.scss @@ -0,0 +1,36 @@ +// +// global + +.v-btn-group .v-btn { + height: inherit !important; +} + +.v-btn-group { + border-color: rgb(var(--v-theme-borderColor)) !important; +} + +.v-btn--size-large{ + font-size: 14px; +} + +.v-btn{ + text-transform: capitalize; + letter-spacing: 0; + border-radius: 8px; + + &.v-btn--variant-elevated{ + box-shadow: none !important; + } + &.v-btn--icon{ + border-radius: 50%; + } +} + +.btn-white{ + background-color: rgb(var(--v-theme-surface)) !important; + padding:10px 15px; + &:hover{ + background-color: rgb(var(--v-theme-primary)) !important; + color: #fff !important; + } +} \ No newline at end of file diff --git a/scss/components/_VCard.scss b/scss/components/_VCard.scss new file mode 100755 index 0000000..f0d164f --- /dev/null +++ b/scss/components/_VCard.scss @@ -0,0 +1,62 @@ +// Outline Card +.v-card--variant-outlined { + border-color: rgba(var(--v-theme-borderColor)) !important; + background-color:rgb(var(--v-theme-surface)) !important; +} + +.v-card--variant-elevated, +.v-card--variant-flat { + color: rgb(var(--v-theme-textPrimary)); +} + +.card-hover { + transition: box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; + + &:hover { + img { + transform: scale(1.09); + transition: transform .2s; + } + } +} + +.v-card { + width: 100%; + overflow: visible; + + .color-inherits { + color: inherit; + } + + .feature-card { + .v-responsive__content { + height: 100%; + } + } + + .v-card-title { + line-height: normal !important; + margin-bottom: 4px; + } + .v-card-subtitle{ + color: rgb(var(--v-theme-textSecondary)); + } + .v-card-text{ + font-size: 14px; + } + .v-card-text{ + padding: 30px 30px; + } + .v-card-item{ + padding: 30px 30px; + } + +} + +// Theme cards +.cardBordered { + .v-card { + box-shadow: none !important; + border: 1px solid rgb(var(--v-theme-borderColor)); + } +} \ No newline at end of file diff --git a/scss/components/_VCarousel.scss b/scss/components/_VCarousel.scss new file mode 100755 index 0000000..42306be --- /dev/null +++ b/scss/components/_VCarousel.scss @@ -0,0 +1,3 @@ +.theme-carousel .v-carousel__progress { + position: absolute; +} diff --git a/scss/components/_VChip.scss b/scss/components/_VChip.scss new file mode 100755 index 0000000..6a10bc8 --- /dev/null +++ b/scss/components/_VChip.scss @@ -0,0 +1,9 @@ +.v-chip{ + &.v-chip--size-small { + --v-chip-size: 10px !important; + --v-chip-height: 25px !important; + font-size: 13px !important; + font-weight: 600; + padding: 0px 10px; + } +} \ No newline at end of file diff --git a/scss/components/_VDatatables.scss b/scss/components/_VDatatables.scss new file mode 100755 index 0000000..43643df --- /dev/null +++ b/scss/components/_VDatatables.scss @@ -0,0 +1,82 @@ +.v-table { + + &.datatabels { + + &.productlist { + .v-data-table-header__content span { + color: rgb(var(--v-theme-textPrimary)); + } + + .v-toolbar { + .v-input__control { + max-width: 300px; + } + + .v-toolbar__content { + height: auto !important; + } + } + + thead tr th:first-child { + padding-left: 24px !important; + } + + tbody tr td:first-child { + padding-left: 24px !important; + } + + } + + .v-selection-control--dirty .v-selection-control__input>.v-icon { + color: rgb(var(--v-theme-primary)); + } + } + +} + + +@media screen and (max-width:1368px) { + + .v-table { + + &.datatabels { + + &.productlist { + .v-data-table-header__content span { + color: rgb(var(--v-theme-textPrimary)); + } + + table { + tbody { + tr { + + td { + padding: 14px 5px !important; + + &:first-child { + padding-left: 15px !important; + } + } + } + } + + thead { + tr { + th { + padding: 14px 5px !important; + + &:first-child { + padding-left: 15px !important; + } + } + } + } + } + + + } + } + + } + +} \ No newline at end of file diff --git a/scss/components/_VExpansionpanel.scss b/scss/components/_VExpansionpanel.scss new file mode 100755 index 0000000..9dc19ff --- /dev/null +++ b/scss/components/_VExpansionpanel.scss @@ -0,0 +1,9 @@ +.v-expansion-panel-title__overlay{ + background: rgba(var(--v-theme-primary)); +} +.v-expansion-panel:not(:first-child)::after { + border-color: transparent !important; +} +.v-expansion-panel-text{ + color: rgba(var(--v-theme-textSecondary)); +} \ No newline at end of file diff --git a/scss/components/_VField.scss b/scss/components/_VField.scss new file mode 100755 index 0000000..8c7dc7a --- /dev/null +++ b/scss/components/_VField.scss @@ -0,0 +1,31 @@ +.v-field--variant-outlined .v-field__outline__start.v-locale--is-ltr, +.v-locale--is-ltr .v-field--variant-outlined .v-field__outline__start { + border-radius: $border-radius-root 0 0 $border-radius-root; +} + +.v-field--variant-outlined .v-field__outline__end.v-locale--is-ltr, +.v-locale--is-ltr .v-field--variant-outlined .v-field__outline__end { + border-radius: 0 $border-radius-root $border-radius-root 0; +} + +.v-field { + font-size: 14px !important; + color: rgba(var(--v-theme-textPrimary)); +} + +// select outlined +.v-field--variant-outlined .v-field__outline__start, +.v-field--variant-outlined .v-field__outline__notch::before, +.v-field--variant-outlined .v-field__outline__notch::after, +.v-field--variant-outlined .v-field__outline__end { + opacity: 1; +} + + +.v-label{ + color: rgba(var(--v-theme-textPrimary)) !important; +} + +.v-field.v-field--active .v-label.v-field-label--floating{ + color: rgba(var(--v-theme-textPrimary),0.6) !important; +} \ No newline at end of file diff --git a/scss/components/_VInput.scss b/scss/components/_VInput.scss new file mode 100755 index 0000000..d464059 --- /dev/null +++ b/scss/components/_VInput.scss @@ -0,0 +1,34 @@ +// variant +.v-input--density-default, +.v-field--variant-solo, +.v-field--variant-filled { + --v-input-control-height: 51px; + --v-input-padding-top: 14px; +} + +// comfortable +.v-input--density-comfortable { + --v-input-control-height: 44px !important; +} + +// compact +.v-input--density-compact { + --v-input-padding-top: 10px; +} +.v-label { + font-size: 0.875rem; + opacity: 1; +} +.v-switch .v-label, +.v-checkbox .v-label { + opacity: 1; +} + +.v-text-field__suffix { + opacity: 1; + padding-left: 20px; +} + +.shadow-none .v-field--variant-solo { + box-shadow: none !important; +} diff --git a/scss/components/_VLabs.scss b/scss/components/_VLabs.scss new file mode 100755 index 0000000..8256625 --- /dev/null +++ b/scss/components/_VLabs.scss @@ -0,0 +1,18 @@ +.v-time-picker-clock{ + background: rgb(var(--v-theme-background)) ; +} +.v-time-picker-controls__ampm__btn.v-btn.v-btn--density-default{ + border: 0 !important; +} +.v-stepper-header,.v-stepper.v-sheet{ + box-shadow: none !important; +} + +.v-time-picker-controls__time__btn.v-btn--density-default.v-btn { + width: 55px !important; + height: 55px !important; + font-size: 30px; +} +.v-time-picker-controls__time__separator { + font-size: 36px !important; +} \ No newline at end of file diff --git a/scss/components/_VList.scss b/scss/components/_VList.scss new file mode 100755 index 0000000..4031466 --- /dev/null +++ b/scss/components/_VList.scss @@ -0,0 +1,32 @@ +.v-list.theme-list { + .v-list-item:hover > .v-list-item__overlay { + opacity: 1; + z-index: 1; + } + .v-list-item--variant-text { + .v-list-item__overlay { + background: rgb(var(--v-theme-light)); + } + } + + .v-list-item__prepend, + .v-list-item__content { + z-index: 2; + } + + .v-list-item__overlay { + background-color: rgb(var(--v-theme-light)); + } + + .v-list-item.v-list-item--active{ + .v-list-item__overlay{ + opacity: 1; + } + } + + .mail-items{ + min-height: 40px !important; + margin-bottom: 5px !important; + } + +} diff --git a/scss/components/_VNavigationDrawer.scss b/scss/components/_VNavigationDrawer.scss new file mode 100755 index 0000000..9994ae9 --- /dev/null +++ b/scss/components/_VNavigationDrawer.scss @@ -0,0 +1,3 @@ +.v-navigation-drawer__scrim.fade-transition-leave-to { + display: none; +} diff --git a/scss/components/_VPagination.scss b/scss/components/_VPagination.scss new file mode 100755 index 0000000..fb92d44 --- /dev/null +++ b/scss/components/_VPagination.scss @@ -0,0 +1,6 @@ +.v-pagination { + .v-btn--icon.v-btn--density-default{ + height: 40px !important; + width: 40px !important; + } +} \ No newline at end of file diff --git a/scss/components/_VSelectionControl.scss b/scss/components/_VSelectionControl.scss new file mode 100755 index 0000000..bafa8d3 --- /dev/null +++ b/scss/components/_VSelectionControl.scss @@ -0,0 +1,19 @@ +// For checkbox & radios +.v-selection-control__input > .v-icon.mdi-checkbox-blank-outline, +.v-selection-control__input > .v-icon.mdi-radiobox-blank { + color: rgba(var(--v-theme-muted),0.5); + opacity: 1; +} +.v-switch .v-label, .v-checkbox .v-label,.v-selection-control .v-label{ + font-weight: 500; +} + +.v-select{ + .v-field{ + color: rgba(var(--v-theme-textPrimary),0.9) !important; + font-weight: 600 !important; + } + .v-field__input{ + padding-top: 7px !important; + } +} \ No newline at end of file diff --git a/scss/components/_VShadow.scss b/scss/components/_VShadow.scss new file mode 100755 index 0000000..558d32a --- /dev/null +++ b/scss/components/_VShadow.scss @@ -0,0 +1,31 @@ +.elevation-9 { + box-shadow: rgb(0 0 0 / 5%) 0px 9px 17.5px !important; +} + +.elevation-10 { + box-shadow: $box-shadow !important; +} + +.elevation-1 { + box-shadow:0px 12px 30px -2px rgba(58,75,116,0.14) !important +} +.elevation-2 { + box-shadow:0px 24px 24px -12px rgba(0, 0, 0, .05) !important +} +.elevation-3 { + box-shadow: rgba(145,158,171,0.2) 0px 0px 2px 0px, rgba(145,158,171,0.12) 0px 12px 24px -4px !important; +} +.elevation-4{ + box-shadow: 0px 12px 12px -6px rgba(0,0,0,0.15) !important; +} +.elevation-dropdown{ + box-shadow: #919eab4d 0 0 2px, #919eab1f 0 12px 24px -4px !important; +} + +.primary-shadow { + box-shadow: rgba(var(--v-theme-primary), 0.30) 0px 12px 14px 0px; + &:hover { + box-shadow: none; + } +} + diff --git a/scss/components/_VStepper.scss b/scss/components/_VStepper.scss new file mode 100755 index 0000000..06e5f17 --- /dev/null +++ b/scss/components/_VStepper.scss @@ -0,0 +1,8 @@ +.v-stepper-item--selected .v-stepper-item__avatar.v-avatar, .v-stepper-item--complete .v-stepper-item__avatar.v-avatar { + background: rgb(var(--v-theme-primary)) !important; +} + +.v-stepper-item__avatar.v-avatar { + background: rgba(var(--v-theme-primary), var(--v-medium-emphasis-opacity)) !important; + color: rgb(var(--v-theme-on-primary)) !important; +} \ No newline at end of file diff --git a/scss/components/_VSwitch.scss b/scss/components/_VSwitch.scss new file mode 100755 index 0000000..225930d --- /dev/null +++ b/scss/components/_VSwitch.scss @@ -0,0 +1,52 @@ +.v-selection-control.v-selection-control--density-default { + .v-switch__track{ + background-color: rgb(var(--v-theme-muted),0.3); + } + .v-switch__thumb { + background-color: rgb(var(--v-theme-grey200),0.3); + } + &.v-selection-control--dirty { + .v-selection-control__wrapper.text-primary { + .v-switch__track { + background-color: rgba(var(--v-theme-primary), 0.6); + } + .v-switch__thumb { + background-color: rgb(var(--v-theme-primary)); + } + } + .v-selection-control__wrapper.text-secondary { + .v-switch__track { + background-color: rgba(var(--v-theme-secondary), 0.6); + } + .v-switch__thumb { + background-color: rgb(var(--v-theme-secondary)); + } + } + .v-selection-control__wrapper.text-warning { + .v-switch__track { + background-color: rgba(var(--v-theme-warning), 0.6); + } + .v-switch__thumb { + background-color: rgb(var(--v-theme-warning)); + } + } + .v-selection-control__wrapper.text-error { + .v-switch__track { + background-color: rgba(var(--v-theme-error), 0.6); + } + .v-switch__thumb { + background-color: rgb(var(--v-theme-error)); + } + } + .v-selection-control__wrapper.text-success { + .v-switch__track { + background-color: rgba(var(--v-theme-success), 0.6); + } + .v-switch__thumb { + background-color: rgb(var(--v-theme-success)); + } + } + } +} + + diff --git a/scss/components/_VTable.scss b/scss/components/_VTable.scss new file mode 100755 index 0000000..e9529fb --- /dev/null +++ b/scss/components/_VTable.scss @@ -0,0 +1,228 @@ +.v-table .v-table__wrapper>table>tbody>tr:not(:last-child)>td, +.v-table .v-table__wrapper>table>tbody>tr:not(:last-child)>th, +.v-table .v-table__wrapper>table>thead>tr:last-child>th { + border-bottom: thin solid rgba(var(--v-theme-borderColor)) !important; +} + +.v-table { + &.dark-table { + background-color: rgb(var(--v-theme-grey200)); + } +} + +.v-table { + .v-table__wrapper { + table { + tbody { + tr { + + td { + padding: 14px 24px !important; + + &:first-child { + padding-left: 0; + } + } + } + } + + thead { + tr { + th { + padding: 14px 24px !important; + + &:first-child { + padding-left: 0; + } + } + } + } + } + + } +} + +.v-table { + + + &.ticket-table { + + table { + thead { + th { + font-weight: 600 !important; + } + } + + tbody { + tr { + + td { + padding: 20px 24px !important; + } + } + } + } + + } + + &.invoice-table { + .v-table__wrapper { + table { + thead { + th { + font-weight: 600 !important; + padding: 0px 24px !important; + &:first-child { + padding-left: 0 !important; + } + &:last-child { + padding-right: 0 !important; + } + + } + } + + tbody { + tr { + + td { + padding: 8px 24px !important; + &:first-child { + padding-left: 0 !important; + } + &:last-child { + padding-right: 0 !important; + } + } + } + } + } + } + + + } + + + &.revenue-table { + .v-table__wrapper { + table { + tbody { + tr { + + td { + padding: 14px 24px !important; + + &:first-child { + padding-left: 0 !important; + } + } + } + } + + thead { + tr { + th { + padding: 14px 24px !important; + + &:first-child { + padding-left: 0 !important; + } + } + } + } + } + + } + } + + &.light-border { + .v-table__wrapper>table>tbody>tr:not(:last-child)>td { + border-bottom: thin solid rgba(var(--v-theme-borderColor), 0.3) !important; + } + + .v-table__wrapper>table>tbody>tr:not(:last-child)>th, + .v-table__wrapper>table>thead>tr:last-child>th { + border-bottom: thin solid rgba(var(--v-theme-borderColor), 0.3) !important; + } + } +} + +.v-data-table { + th.v-data-table__th { + font-size: 16px; + color: rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity)); + } + + td.v-data-table__td { + font-size: 14px; + text-wrap: nowrap; + } + + .v-data-table-footer { + padding: 15px 8px; + } + + .v-data-table-header__sort-badge { + background-color: rgb(var(--v-theme-borderColor)) !important; + } + + .tdhead { + font-size: 16px; + } +} + +@media screen and (max-width:767px) { + .v-data-table-footer { + justify-content: center; + } +} + + +.datatabels { + overflow: hidden; + + table { + tbody { + tr { + + td { + padding: 14px 24px; + + &:first-child { + padding-left: 24px !important; + } + } + } + } + + thead { + tr { + th { + padding: 14px 24px; + + &:first-child { + padding-left: 24px !important; + } + } + } + } + } +} + + + +// Datatable Pagination +.v-pagination { + .v-pagination__list { + .v-pagination__item--is-active { + .v-btn { + .v-btn__overlay { + opacity: 0; + } + + background-color: rgb(var(--v-theme-light)) !important; + } + } + } +} \ No newline at end of file diff --git a/scss/components/_VTabs.scss b/scss/components/_VTabs.scss new file mode 100755 index 0000000..fe7ee0f --- /dev/null +++ b/scss/components/_VTabs.scss @@ -0,0 +1,12 @@ +.theme-tab { + &.v-tabs { + .v-tab { + border-radius: $border-radius-root !important; + min-width: auto !important; + &.v-slide-group-item--active { + background: rgb(var(--v-theme-primary)); + + } + } + } +} \ No newline at end of file diff --git a/scss/components/_VTextField.scss b/scss/components/_VTextField.scss new file mode 100755 index 0000000..4b1eb44 --- /dev/null +++ b/scss/components/_VTextField.scss @@ -0,0 +1,22 @@ + +.v-text-field input { + font-size: 0.875rem; +} +.v-field__outline { + color: rgb(var(--v-theme-borderColor)); + --v-field-border-opacity: 1 !important; +} +.input { + .v-field--variant-outlined { + background-color: rgba(0, 0, 0, 0.025); + } +} + +input::placeholder { + color: rgba(var(--v-theme-textPrimary),0.6) !important; + opacity: 1 !important; +} +textarea::placeholder { + color: rgba(var(--v-theme-textPrimary),0.6) !important; + opacity: 1 !important; +} \ No newline at end of file diff --git a/scss/components/_VTextarea.scss b/scss/components/_VTextarea.scss new file mode 100755 index 0000000..b611c41 --- /dev/null +++ b/scss/components/_VTextarea.scss @@ -0,0 +1,7 @@ +.v-textarea input { + font-size: 0.875rem; + font-weight: 500; + &::placeholder { + color: rgba(0, 0, 0, 0.38); + } +} diff --git a/scss/components/_VTooltip.scss b/scss/components/_VTooltip.scss new file mode 100755 index 0000000..b5c33bd --- /dev/null +++ b/scss/components/_VTooltip.scss @@ -0,0 +1,14 @@ +.v-tooltip{ + .v-overlay__content{ + border-radius: $border-radius-root + 4 !important; + } +} + +.v-tooltip{ + &.custom-tooltip { + .v-overlay__content { + background: rgba(var(--v-theme-secondary), 0.9); + color: white; + } + } +} diff --git a/scss/front/_general.scss b/scss/front/_general.scss new file mode 100755 index 0000000..5e04e7c --- /dev/null +++ b/scss/front/_general.scss @@ -0,0 +1,595 @@ +@keyframes slideup { + 0% { + transform: translate3d(0, 0, 0); + } + + 100% { + transform: translate3d(0px, -100%, 0px); + } +} + +.animateDown { + animation: 35s linear 0s infinite normal none running slideDown; +} + +@keyframes slideDown { + 0% { + transform: translate3d(0, -100%, 0); + } + + 100% { + transform: translate3d(0px, 0, 0px); + } +} + +// OfferBar +.offerbar { + position: relative; + top: 0; + width: 100%; + z-index: 999; + + .white-btn { + background-color: rgba(var(--v-theme-surface), 0.15); + font-weight: 700; + height: 25px; + } + + + + &:before { + background-repeat: no-repeat; + content: ''; + position: absolute; + background-image: url('@/assets/images/front-pages/background/left-shape.png'); + bottom: 0; + height: 40px; + left: 0; + width: 325px; + } + + &:after { + background-repeat: no-repeat; + content: ''; + position: absolute; + background-image: url('@/assets/images/front-pages/background/right-shape.png'); + bottom: 0; + right: 17%; + width: 325px; + top: 0; + background-size: contain; + } +} + +// +// frameworks +// +.slider-group { + animation: slide 45s linear infinite; +} + +.marquee1-group { + animation: marquee 45s linear infinite; +} + +.marquee2-group { + animation: marquee2 45s linear infinite; +} + + +@keyframes slide { + 0% { + transform: translate3d(0, 0, 0); + } + + 100% { + transform: translate3d(-100%, 0, 0); + } +} + +@keyframes marquee { + 0% { + transform: translate3d(0, 0, 0); + } + + 100% { + transform: translate3d(-2086px, 0, 0); + } +} + +@keyframes marquee2 { + 0% { + transform: translate3d(-2086px, 0, 0) + } + + 100% { + transform: translate3d(0, 0, 0) + } +} + +.front-wraper { + overflow: hidden; + + .underline-link { + text-underline-offset: 4px; + } + + .underline-link-6 { + text-underline-offset: 6px; + text-decoration-thickness: 2px; + } + + .main-banner { + min-width: 1300px; + overflow: hidden; + max-height: 700px; + height: calc(100vh - 100px); + + img { + max-width: 100%; + height: auto; + + } + } + + .team { + &:hover { + .intro { + opacity: 1; + } + } + + .intro { + opacity: 0; + bottom: 16px; + inset-inline-start: .75rem; + inset-inline-end: .75rem; + transition: 0.5s; + } + } + + // Revenue Products + .feature-tabs { + .v-slide-group__content { + gap: 16px; + padding-bottom: 56px; + } + + + + .v-btn { + background-color: rgba(var(--v-theme-surface)); + padding: 16px 24px; + border-radius: 12px !important; + font-size: 16px; + box-shadow: 0px 24px 24px -12px rgba(0, 0, 0, .05); + } + + .v-slide-group-item--active.v-tab--selected { + background-color: rgba(var(--v-theme-primary)); + box-shadow: 0px 24px 24px -12px rgba(99, 91, 255, .15); + + .v-btn__content { + color: #fff; + + .v-tab__slider { + display: none; + } + } + } + } + + .v-container { + &.max-width-1218 { + max-width: 1218px !important; + } + + } + + .v-container { + &.max-width-800 { + max-width: 800px !important; + } + + &.max-width-1000 { + max-width: 1000px !important; + } + } + + .max-w-600 { + max-width: 600px !important; + } + + .template { + .left-widget { + position: absolute; + top: 96px; + inset-inline-start: -40px; + max-height: 400px; + width: auto; + } + + .right-widget { + position: absolute; + top: 96px; + inset-inline-end: -40px; + max-height: 400px; + width: auto; + } + } + + + .feature-tabs { + .v-tab__slider { + top: 0; + bottom: unset; + } + + &.v-tabs--density-default { + --v-tabs-height: auto; + } + } + + .feature-tabs-expansion { + + .v-expansion-panel-text__wrapper { + padding: 0px 0px 16px; + } + + .v-expansion-panel-title { + padding: 16px 0px; + } + + .v-expansion-panel { + background-color: transparent !important; + } + + .v-expansion-panel--active:not(:first-child), + .v-expansion-panel--active+.v-expansion-panel { + margin-top: 0; + } + } + + .leader-slider { + .carousel__slide { + padding: 0 15px; + } + + .carousel__viewport { + margin: 0 -15px; + padding-bottom: 30px; + } + + .carousel__prev, + .carousel__next { + top: -85px; + width: 100%; + justify-content: end; + margin: 0; + transform: none; + display: flex; + justify-content: center + } + + .carousel__next { + height: 48px; + width: 48px; + border-radius: 50%; + background: rgb(var(--v-theme-lightprimary)); + + } + + .carousel__prev { + height: 48px; + width: 48px; + border-radius: 50%; + background: rgb(var(--v-theme-lightprimary)); + right: 65px; + left: unset; + } + } + + .our-template { + .carousel__slide { + padding: 0 15px 40px; + } + + .carousel__viewport { + margin: 0 -106px; + } + } + + .testimonials { + + .carousel__prev, + .carousel__next { + width: 100%; + justify-content: end; + margin: 0; + transform: translateY(75px); + display: flex; + justify-content: center; + bottom: 0; + } + + .carousel__next { + height: 32px; + width: 32px; + border-radius: 50%; + background: rgb(var(--v-theme-background)); + left: -60%; + } + + .carousel__prev { + height: 32px; + width: 32px; + border-radius: 50%; + background: rgb(var(--v-theme-background)); + right: 65px; + left: -74%; + } + + .carousel { + padding-bottom: 25px; + } + + .slide-counter { + position: relative; + bottom: -4px; + left: 50px; + z-index: 2; + font-size: 15px; + opacity: 0.7; + } + } + + .social-icon { + svg { + path { + fill: rgb(255, 255, 255); + + &:hover { + fill: rgb(var(--v-theme-primary)); + } + } + } + } + + .package { + .v-list-item { + min-height: 35px !important; + } + } + + .lp-faq { + .v-expansion-panel-title__icon { + .v-icon { + font-size: 20px; + opacity: 0.5 + } + } + + .v-expansion-panels:not(.v-expansion-panels--variant-accordion)> :first-child:not(:last-child):not(.v-expansion-panel--active):not(.v-expansion-panel--before-active) { + border-bottom-left-radius: 8px !important; + border-bottom-right-radius: 8px !important; + } + + .v-expansion-panels:not(.v-expansion-panels--variant-accordion)> :not(:first-child):not(:last-child):not(.v-expansion-panel--active):not(.v-expansion-panel--after-active) { + border-top-left-radius: 8px !important; + border-top-right-radius: 8px !important; + } + + .v-expansion-panels:not(.v-expansion-panels--variant-accordion)> :not(:first-child):not(:last-child):not(.v-expansion-panel--active):not(.v-expansion-panel--before-active) { + border-bottom-left-radius: 8px !important; + border-bottom-right-radius: 8px !important; + } + + .v-expansion-panel--active:not(:first-child), + .v-expansion-panel--active+.v-expansion-panel { + margin-top: 0px !important; + } + } + + + .animted-img { + position: absolute; + z-index: 9; + top: 0%; + animation: mover 5s infinite alternate; + } + + .animted-img-2 { + position: absolute; + z-index: 9; + top: -35px; + inset-inline-end: 15px; + animation: mover 5s infinite alternate; + } + + @keyframes mover { + 0% { + transform: translateY(0); + } + + 100% { + transform: translateY(-10px); + } + } + + .carousel__pagination { + .carousel__pagination-button { + padding: 6px; + + &::after { + height: 8px; + width: 8px; + border-radius: 50%; + background-color: transparent; + background-color: rgb(var(--v-theme-textPrimary)); + opacity: 0.25; + } + + &:hover { + &::after { + background-color: #000; + opacity: 1; + } + } + } + + .carousel__pagination-button--active { + &::after { + background-color: #000; + opacity: 1; + } + } + } + + .carousel { + z-index: 2; + } +} + + + +.v-btn--size-default { + &.nav-links { + font-size: $font-size-root !important; + + .v-btn__overlay { + display: none; + } + + &:hover { + color: rgb(var(--v-theme-primary)) !important; + } + } +} + + + +.light-primary { + background-color: rgb(var(--v-theme-primary), 0.1); +} + +.announce-close { + position: absolute; + right: 15px; + +} + +.text-align-start{ + text-align: start; +} + +@media screen and (max-width:1199px) { + .ps-96 { + padding-inline-start: 60px !important; + } + + .space-p-96 { + padding: 55px 0 !important; + } + + .pt-96 { + padding-top: 55px !important; + } + + .offerbar { + &:after { + background-image: none; + } + } + + .offerbar:after, + .offerbar:before { + display: none; + } + +} + +@media screen and (max-width:1024px) { + .front-wraper .testimonials .slide-counter { + left: 67px; + } + + .space-p-96 { + padding: 40px 0 !important; + } + + .pt-96 { + padding-top: 40px !important; + } + + .front-wraper .bg-collection { + background-image: none; + } + + + + .front-wraper .our-template .carousel__viewport { + margin: 0 0px; + } + + .ps-96 { + padding-inline-start: 20px !important; + padding-inline-end: 20px !important; + } + +} + +@media screen and (max-width:991px) { + .text-align-start{ + text-align: center; + } +} + +@media screen and (max-width:767px) { + .technology { + .round-54 { + height: 45px; + width: 45px; + + img { + height: 22px; + } + } + } + + .front-wraper { + .display-2 { + font-size: 32px; + line-height: normal; + } + + .display-1 { + font-size: 32px; + line-height: normal; + } + } + + .front-wraper .leader-slider .carousel__viewport { + margin: 0 0px; + } + + .announce-close { + bottom: 8px; + } + + .text-48 { + font-size: 30px !important; + line-height: 40px !important; + } + + .text-56 { + font-size: 35px !important; + line-height: 40px !important; + } + + .team { + .intro { + opacity: 1 !important; + } + } + +} \ No newline at end of file diff --git a/scss/front/_header.scss b/scss/front/_header.scss new file mode 100755 index 0000000..b128bc4 --- /dev/null +++ b/scss/front/_header.scss @@ -0,0 +1,100 @@ +.front-lp-header { + + .v-toolbar{ + background: rgb(var(--v-theme-surface)); + } + + &.v-app-bar .v-toolbar__content { + padding: 0; + + } + + .v-toolbar__content { + background: transparent !important; + } + + &.v-toolbar { + background: transparent !important; + top: 0 !important; + } + + .v-toolbar { + background: transparent !important; + } + + &.sticky-header { + position: fixed !important; + top: 0 !important; + transition: 0.5s; + background-color: rgba(var(--v-theme-surface)) !important; + + } + +} +// +// mega menu +// +.white-btn{ + background-color: #769CFF; +} +.front_wrapper { + + &.v-menu .v-overlay__content { + margin: 0 auto; + left: 0 !important; + right: 0; + } + .megamenu { + &::before { + content: ''; + position: absolute; + top: 0px; + left: 0px; + width: 100%; + height: 96%; + background-color: rgba(55, 114, 255, 0.2); + border-radius: 7px; + opacity: 0; + } + .v-btn { + top: 50%; + transform: translateY(-50%); + z-index: 1; + left: 0; + right: 0; + min-width: 100px; + opacity: 0; + font-size: 13px; + } + &:hover { + &::before, + .v-btn { + opacity: 1; + } + } + } +} +.lp-drawer { + &.v-navigation-drawer { + top: 0 !important; + height: 100% !important; + z-index: 1007 !important; + } +} + +.lp-mobile-sidebar { + .v-list { + .v-list-item__content { + overflow: inherit; + } + } + .v-list-group__items .v-list-item { + padding-inline-start: 25px !important; + } +} + +.v-btn--size-default { + &.nav-links { + font-size: $font-size-root !important; + } +} \ No newline at end of file diff --git a/scss/landingpage/_general.scss b/scss/landingpage/_general.scss new file mode 100755 index 0000000..3b761d1 --- /dev/null +++ b/scss/landingpage/_general.scss @@ -0,0 +1,214 @@ + + +@media (min-width: 900px) { + .bannerTitle { + font-size: 55px; + line-height: 60px; + } +} + +.bannerSlider { + padding: 25.6px; + min-width: 2000px; + height: calc(100vh - 100px); + max-height: 790px; + border-radius: 7px; +} + +.animateUp { + animation: 35s linear 0s infinite normal none running slideup; +} + +@keyframes slideup { + 0% { + transform: translate3d(0, 0, 0); + } + 100% { + transform: translate3d(0px, -100%, 0px); + } +} + +.animateDown { + animation: 35s linear 0s infinite normal none running slideDown; +} + +@keyframes slideDown { + 0% { + transform: translate3d(0, -100%, 0); + } + 100% { + transform: translate3d(0px, 0, 0px); + } +} + +// +// Sections common +// + +.sectionTitle { + font-size: 25px; + line-height: 30px; +} + +@media (min-width: 1200px) { + .sectionTitle { + font-size: 36px; + line-height: 43px; + } +} + +// +// frameworks +// +.slider-group { + animation: slide 45s linear infinite; +} + +@keyframes slide { + 0% { + transform: translate3d(0, 0, 0); + } + 100% { + transform: translate3d(-100%, 0, 0); + } +} + +// +// support +// +.ticket { + overflow: hidden; + width: 100%; + padding: 0px; + position: relative; + background-image: url('@/assets/images/landingpage/shape/line-bg.svg'); + background-repeat: no-repeat; + background-position: center center; +} + +// +// money back +// +.money-back { + overflow: hidden; + width: 100%; + padding: 0px; + position: relative; + background-image: url('@/assets/images/landingpage/shape/line-bg-2.svg'); + background-repeat: no-repeat; + background-position: center center; +} + +.btn-custom-md { + height: 53px !important; + padding: 0 48px !important; +} + +.btn-custom-lg { + height: 56px !important; + padding: 0 48px !important; +} + +.btn-custom { + height: 53px; + padding: 0 31px; + &.lp-btn-shadow { + box-shadow: rgb(0 0 0 / 8%) 0px 12px 40px -8px; + } +} + +.chip-custom { + font-weight: 600; + padding: 5px 25px !important; + height: 32px !important; + font-size: 12px !important; +} + +// +// our products +// +.ourproducts { + .carousel__slide { + display: block; + img { + border-radius: 12px; + box-shadow: 16px 16px 40px 5px rgb(29 53 79 / 10%); + margin: 0 auto; + max-width: 800px; + width: 100%; + } + } +} + +.lp-wraper { + background-color: rgba(var(--v-theme-surface)); + overflow: hidden; + .maxWidth{ + max-width: 1320px !important; + } + .v-container { + max-width: 1320px !important; + } + .carousel__pagination { + .carousel__pagination-button { + padding: 6px; + &::after { + height: 8px; + width: 8px; + border-radius: 50%; + background-color: transparent; + background-color: rgb(var(--v-theme-textPrimary)); + opacity: 0.25; + } + &:hover { + &::after { + background-color: #000; + opacity: 1; + } + } + } + .carousel__pagination-button--active { + &::after { + background-color: #000; + opacity: 1; + } + } + } + + .carousel { + z-index: 2; + } + + @media screen and (max-width: 991px) { + .v-toolbar__content > .v-btn:last-child{ + margin-inline-end: 0px !important; + } + } +} + +@media screen and (max-width: 600px) { + .m-btn-full { + width: 100%; + } +} + +.v-btn--size-default { + &.nav-links { + font-size: $font-size-root !important; + .v-btn__overlay { + display: none; + } + &:hover { + color: rgb(var(--v-theme-primary)) !important; + } + } +} + + +.row-up { + z-index: 1; + position: relative; +} +.prev-btn{ + margin: 0 150px; +} diff --git a/scss/landingpage/_header.scss b/scss/landingpage/_header.scss new file mode 100755 index 0000000..633fcba --- /dev/null +++ b/scss/landingpage/_header.scss @@ -0,0 +1,87 @@ +.lp-header { + &.v-app-bar .v-toolbar__content { + padding: 0; + } + .v-toolbar{ + background: rgb(var(--v-theme-surface)); + } + +} +// +// mega menu +// + +.lp_wrapper { + + &.v-menu .v-overlay__content { + margin: 0 auto; + left: 0 !important; + right: 0; + } + .megamenu { + line-height: 10px; + &::before { + content: ''; + position: absolute; + top: 0px; + left: 0px; + width: 100%; + height: 100%; + background-color: rgba(55, 114, 255, 0.2); + border-radius: 7px; + opacity: 0; + } + .v-btn { + top: 50%; + transform: translateY(-50%); + z-index: 1; + left: 0; + right: 0; + min-width: 100px; + opacity: 0; + font-size: 13px; + } + &:hover { + &::before, + .v-btn { + opacity: 1; + } + } + } +} +.lp-drawer { + &.v-navigation-drawer { + width: 260px !important; + top: 0 !important; + height: 100% !important; + z-index: 1007 !important; + left: -5px !important; + } +} + +.lp-mobile-sidebar { + .v-list { + .v-list-item__content { + overflow: inherit; + } + } + .v-list-group__items .v-list-item { + padding-inline-start: 25px !important; + } +} + +.v-btn--size-default { + &.nav-links { + font-size: $font-size-root !important; + } +} + +@media (max-width: 1199px) { + .main-head{ + &.v-app-bar .v-toolbar__content{ + width: 100%; + justify-content: space-between; + padding: 0 10px; + } + } +} \ No newline at end of file diff --git a/scss/layout/_container.scss b/scss/layout/_container.scss new file mode 100755 index 0000000..8c07be9 --- /dev/null +++ b/scss/layout/_container.scss @@ -0,0 +1,44 @@ +html { + overflow-y: auto; +} +@media (max-width: 1279px) { + .v-main { + margin: 0 10px; + } +} + +.cursor-pointer { + cursor: pointer; +} + +.page-wrapper { + min-height: calc(100vh - 100px); + padding: 24px 24px 30px 24px !important; + @media screen and (max-width: 767px) { + padding: 20px 10px !important; + } +} + +.maxWidth { + max-width: 1200px; + margin: 0 auto; + padding: 0 20px; + @media screen and (max-width: 1368px) { + padding: 0 0px !important; + } + @media screen and (max-width: 1199px) { + padding: 0 8px !important; + } +} + + +.fixed-width { + max-width: 1300px; +} + +.right-pos-img { + position: absolute; + right: 0; + top: 0; + height: 100%; +} diff --git a/scss/layout/_customizer.scss b/scss/layout/_customizer.scss new file mode 100755 index 0000000..9b9291c --- /dev/null +++ b/scss/layout/_customizer.scss @@ -0,0 +1,100 @@ +.v-btn.customizer-btn { + position: fixed; + bottom: 30px; + right: 30px; + border-radius: 50%; + z-index: 5; + + .icon { + animation: progress-circular-rotate 1.4s linear infinite; + transform-origin: center center; + transition: all 0.2s ease-in-out; + } +} + +.btn-group-custom { + &.v-btn-group { + height: 66px !important; + overflow: unset !important; + + .v-btn { + height: 66px; + padding: 0 20px; + border: 1px solid rgb(var(--v-theme-borderColor), 0.7); + transition: all 0.1s ease-in 0s; + + &:hover { + transform: scale(1.05); + } + + &.text-primary { + .v-btn__overlay { + background: transparent !important; + } + + .icon { + color: rgb(var(--v-theme-primary)) !important; + } + } + } + } +} + +.hover-btns { + transition: all 0.1s ease-in 0s; + + &:hover { + transform: scale(1.05); + } +} + +// all template colors +.v-avatar.themeBlue, +.v-avatar.themeDarkBlue { + background: #635BFF; +} + +.v-avatar.themeAqua, +.v-avatar.themeDarkAqua { + background: #0074ba; +} + +.v-avatar.themePurple, +.v-avatar.themeDarkPurple { + background: #763ebd; +} + +.v-avatar.themeGreen, +.v-avatar.themeDarkGreen { + background: #0a7ea4; +} + +.v-avatar.themeCyan, +.v-avatar.themeDarkCyan { + background: #01c0c8; +} + +.v-avatar.themeOrange, +.v-avatar.themeDarkOrange { + background: #fa896b; +} + +.DARK_BLUE_THEME, .DARK_AQUA_THEME, .DARK_ORANGE_THEME, .DARK_PURPLE_THEME, .DARK_GREEN_THEME, .DARK_CYAN_THEME { + .togglethemeBlue { + display: block !important; + } + + .togglethemeDarkBlue { + display: none !important; + } +} + +.BLUE_THEME, .AQUA_THEME, .ORANGE_THEME, .PURPLE_THEME, .GREEN_THEME, .CYAN_THEME { + .togglethemeDarkBlue { + display: block !important; + } + + .togglethemeBlue { + display: none !important; + } +} \ No newline at end of file diff --git a/scss/layout/_dark.scss b/scss/layout/_dark.scss new file mode 100755 index 0000000..6d38fce --- /dev/null +++ b/scss/layout/_dark.scss @@ -0,0 +1,73 @@ +// theme : dark +div[class*='v-theme--DARK_'] { + .smallCap { + color: rgb(var(--v-theme-textSecondary)); + } + + .elevation-10 { + box-shadow: none !important; + } + + .v-field__outline { + --v-field-border-opacity: 0.38 !important; + } + + #vector-map .dxm-layers path { + fill: #7C8FAC !important; + } + + .svgMap-map-wrapper { + .svgMap-country { + stroke: transparent; + fill: #43516a !important; + + &#svgMap-map-country-IN { + fill: rgb(var(--v-theme-primary)) !important; + } + + &#svgMap-map-country-AF { + fill: rgb(var(--v-theme-error)) !important; + } + + &#svgMap-map-country-US { + fill: rgb(var(--v-theme-secondary)) !important; + } + } + + .svgMap-map-controls-zoom { + background: #43516a !important; + + .svgMap-control-button.svgMap-zoom-button:before, + .svgMap-control-button.svgMap-zoom-in-button:after { + background: #9b9898 !important; + } + } + + .svgMap-map-wrapper .svgMap-control-button.svgMap-zoom-button:after, + .svgMap-map-wrapper .svgMap-control-button.svgMap-zoom-button:before { + background: #9b9898 !important; + } + + } + + .dark-table { + background-color: rgb(var(--v-theme-light)) !important; + } + + .authentication { + background-color: rgba(var(--v-theme-light)) !important; + } + .front-wraper{ + .bg-darkgray{ + background-color: #0a2540 !important; + } + .text-hover-sky { + color: rgb(var(--v-theme-white)); + + &:hover { + color: rgb(var(--v-theme-primary)); + } + } + } +} + diff --git a/scss/layout/_horizontal.scss b/scss/layout/_horizontal.scss new file mode 100755 index 0000000..bbd3e76 --- /dev/null +++ b/scss/layout/_horizontal.scss @@ -0,0 +1,208 @@ +.horizontalLayout{ + .v-main{ + margin: 0 16px !important; + @media screen and (max-width: 767px) { + margin: 0 10px !important; + } + } +} +.horizontal-header { + &.v-app-bar .v-toolbar__content { + padding: 0; + display: flex; + justify-content: space-between; + } + .maxWidth{ + padding: 0 20px !important; + @media screen and (max-width: 1199px) { + padding: 0 8px !important; + } + } + +} + +.ddMenu{ + &.ddLevel-1{ + .navItem{ + .navItemLink{ + .dot { + height: 6px; + width: 6px; + background-color: rgb(var(--v-theme-textSecondary)); + border-radius: 50%; + margin-inline-end: 8px !important; + } + } + + &:hover{ + .dot { + background-color: rgb(var(--v-theme-primary)); + } + } + } + } + &.ddLevel-2{ + .navItem{ + .navItemLink{ + .dot { + height: 6px; + width: 6px; + background-color: rgb(var(--v-theme-textSecondary)); + border-radius: 50%; + margin-inline-end: 8px !important; + } + } + &:hover{ + .dot { + background-color: rgb(var(--v-theme-primary)); + } + } + } + } +} + + +.horizontalMenu { + .v-toolbar__content { + max-width: 1270px; + margin: 0 auto; + } + .navItem:has(.ddMenu.ddLevel-1 li a.router-link-active) { + background-color: rgb(var(--v-theme-primary)) !important; + border-radius: 12px ; + .navcollapse{ + color: rgba(255,255,255); + } + } + +} + +.mobile-menu { + .v-navigation-drawer { + margin-top: -70px !important; + height: 100vh !important; + z-index: 2000 !important; + + } +} + +@media (min-width: 960px) { + .horizontalMenu { + margin-top: 70px; + margin-bottom: -70px; + + .maxWidth { + .horizontal-navbar { + max-width: 1160px; + } + } + } + + .horizontal-navbar { + padding: 16px 0; + margin: 0px auto; + align-items: center; + display: flex; + z-index: 11; + font-size: 0.875rem; + position: relative; + + ul { + padding: 0px; + margin: 0px; + } + + .ddMenu{ + li{ + a{ + color: rgb(var(--v-theme-textPrimary)) !important; + } + } + } + + li { + list-style: none; + + a { + text-decoration: none; + display: flex; + align-items: center; + padding: 10px 13px; + height: 40px; + + .navIcon { + margin-right: 10px; + display: flex; + } + + .ddIcon { + margin-top: 2px; + } + + &.router-link-exact-active { + background-color: rgb(var(--v-theme-primary)); + color: white !important; + + .dot{ + background-color: rgba(255,255,255) !important; + } + } + + &:hover { + color: rgb(var(--v-theme-primary)); + } + } + } + + .navItem { + position: relative; + } + + .ddMenu { + position: absolute; + width: 230px; + display: none; + top: 40px; + padding: 10px; + z-index: 1; + background-color: rgb(var(--v-theme-surface)); + box-shadow: $box-shadow; + border-radius: $border-radius-root; + + li { + margin-bottom: 3px; + } + } + + .ddLevel-2, + .ddLevel-3 { + top: -5px; + left: 212px; + } + + .navItem:hover { + + >.ddMenu { + display: block; + } + } + + >li:hover { + background-color: rgb(var(--v-theme-lightprimary)); + border-radius: $border-radius-root + 4px; + + >.navItemLink { + color: rgb(var(--v-theme-primary)); + opacity: 1; + } + } + + .router-link-exact-active { + color: rgb(var(--v-theme-primary)); + font-weight: 500; + background-color: rgb(var(--v-theme-lightprimary)); + border-radius: $border-radius-root; + } + } +} + diff --git a/scss/layout/_reboot.scss b/scss/layout/_reboot.scss new file mode 100755 index 0000000..539c08c --- /dev/null +++ b/scss/layout/_reboot.scss @@ -0,0 +1,122 @@ +.h-100 { + height: 100%; +} +.w-100 { + width: 100%; +} + +.h-100vh { + height: 100vh; +} + +.gap-2 { + gap: 8px; +} + +.gap-3 { + gap: 16px; +} + +.gap-4 { + gap: 24px; +} + +.text-white { + color: rgb(255, 255, 255) !important; +} + +// border +.border-bottom { + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +.opacity-1 { + opacity: 1 !important; +} + +.opacity-20 { + opacity: 0.2; +} +.opacity-30 { + opacity: 0.3; +} +.opacity-50 { + opacity: 0.5; +} +.opacity-80 { + opacity: 0.8; +} + +.z-auto.v-card { + z-index: auto; +} + +.obj-cover { + object-fit: cover; +} +.cursor-move{ + cursor: move; +} +.z-index-2{ + z-index: 2; +} +h1,h2,h3,h4,h5,h6{ + font-weight: 600 !important; +} +.lh-30{ + line-height: 30px; +} +.lh-0{ + line-height: 0; +} + +.heading{ + color:rgba(var(--v-theme-textPrimary)); +} +body{ + font-size: 14px; + color: rgb(var(--v-theme-textSecondary)); +} +.hover-link-primary{ + &:hover{ + color:rgba(var(--v-theme-primary)) !important; + } +} + +//Date time picker +input[type="date"],input[type="time"] { + display:block !important; + } + + input[type="date"]::-webkit-calendar-picker-indicator, input[type="time"]::-webkit-calendar-picker-indicator { + display:block !important; + } + + .ProseMirror{ + min-height: 150px; + } + + .upload-btn-wrapper{ + width: 150px; + height: 140px; + margin: 0 auto; + box-shadow: 0 0.5rem 1.5rem 0.5rem rgba(0, 0, 0, 0.075); + input[type=file] { + position: absolute; + left: 0; + top: 0; + opacity: 0; + height: 100%; + width: 100%; + } + } + + .bg-transparent{ + background-color: transparent !important; + } + + @media screen and (max-width:1368px) and (min-width:1200px){ + .space-20{ + padding: 30px 20px !important; + } + } \ No newline at end of file diff --git a/scss/layout/_rtl.scss b/scss/layout/_rtl.scss new file mode 100755 index 0000000..e4415eb --- /dev/null +++ b/scss/layout/_rtl.scss @@ -0,0 +1,296 @@ +.v-locale--is-rtl { + .v-btn.customizer-btn { + left: 30px; + right: unset; + } + + .leftSidebar { + border-left: 0; + border-right: unset; + left: auto; + right: 0; + } + + .mini-sidebar { + .v-main { + margin-right: 15px !important; + } + } + + .ml-1 { + margin-left: unset !important; + margin-right: 4px; + } + + .ml-2 { + margin-left: unset !important; + margin-right: 8px; + } + + .mr-1 { + margin-right: unset !important; + margin-left: 4px; + } + + .mr-2 { + margin-right: unset !important; + margin-left: 8px; + } + + .mr-3 { + margin-right: unset !important; + margin-left: 12px !important; + } + + .mr-4 { + margin-right: unset !important; + margin-left: 16px !important; + } + + .ml-3 { + margin-left: unset !important; + margin-right: 12px; + } + + .ml-4 { + margin-left: unset !important; + margin-right: 16px; + } + + .ml-5 { + margin-left: unset !important; + margin-right: 20px; + } + + .ml-6 { + margin-left: unset !important; + margin-right: 24px; + } + + .ml-10 { + margin-left: unset !important; + margin-right: 40px; + } + + .pl-1 { + padding-left: unset !important; + padding-right: 4px !important; + } + + .pl-2 { + padding-left: unset !important; + padding-right: 8px !important; + } + + .pr-2 { + padding-left: 8px !important; + } + + .pr-4 { + padding-left: 16px !important; + padding-right: unset !important; + } + + .pl-4 { + padding-left: unset !important; + padding-right: 16px !important; + } + + .pl-5 { + padding-left: unset !important; + padding-right: 20px !important; + } + + .right-pos-img { + right: unset; + left: 0; + transform: scaleX(-1); + top: 0; + } + + .badg-dotDetail { + left: 0; + right: -8px; + } + + .badg-dot { + left: 12px; + } + + .text-right { + text-align: left !important; + } + + .text-sm-right, + .text-md-right { + text-align: left !important; + } + + .text-sm-left { + text-align: right !important; + } + + .text-left { + text-align: right !important; + } + + .ml-auto, + .ml-sm-auto { + margin-left: unset !important; + margin-right: auto !important; + } + + .mr-auto { + margin-right: unset !important; + margin-left: auto; + } + + .authentication .auth-header { + left: unset; + right: 0; + } + + .horizontal-navbar { + li { + margin-right: 0; + margin-left: 15px; + + a { + padding-left: 10px; + padding-right: 10px; + + .navIcon { + margin-right: unset; + margin-left: 10px; + } + } + } + } + + + + /*RTL Horizontal dropdown menu*/ + .horizontal-navbar { + + .ddLevel-2, + .ddLevel-3 { + top: -5px; + left: unset; + right: 212px; + } + + .ddMenu { + padding-left: 0; + } + } + + .slider-group { + animation: slider 45s linear infinite; + } + + @keyframes slider { + 0% { + transform: translate3d(100%, 0, 0); + } + + 100% { + transform: translate3d(0, 0, 0); + } + } + + .ps--active-y>.ps__rail-y { + right: unset !important; + left: 0; + } + + .left-customizer { + .ps__rail-y { + right: 0 !important; + } + } + + @media screen and (max-width:1279px) { + .mini-sidebar { + .v-navigation-drawer.v-navigation-drawer--right { + width: 260px !important; + } + + .v-navigation-drawer.v-navigation-drawer--left { + width: 320px !important; + } + } + + } + + @media screen and (max-width:1199px) { + .leftSidebar.v-navigation-drawer--active { + right: 80px !important; + left: auto !important; + } + } + + .logo { + img { + transform: scaleX(-1); + } + } + + .rtlImg { + transform: scaleX(-1); + } + + .marquee1-group { + animation: marquee-rtl 45s linear infinite; + } + + .marquee2-group { + animation: marquee2-rtl 45s linear infinite; + } + + @keyframes marquee-rtl { + 0% { + transform: translate3d(0, 0, 0); + } + + 100% { + transform: translate3d(2086px, 0, 0); + } + } + + @keyframes marquee2-rtl { + 0% { + transform: translate3d(2086px, 0, 0); + } + + 100% { + transform: translate3d(0, 0, 0); + } + } + + .front-wraper { + .testimonials { + .slide-counter { + left: -50px; + } + + .carousel__prev { + right: -74%; + left: unset; + + .rtlnav { + transform: scaleX(-1); + } + } + + .carousel__next { + right: -60%; + left: unset; + + .rtlnav { + transform: scaleX(-1); + } + + } + } + } +} \ No newline at end of file diff --git a/scss/layout/_sidebar.scss b/scss/layout/_sidebar.scss new file mode 100755 index 0000000..7acd44c --- /dev/null +++ b/scss/layout/_sidebar.scss @@ -0,0 +1,327 @@ +/*This is for the logo*/ +// .miniicons{ + +// .miniicons-list{ +// &:nth-child(3),&:nth-child(6){ +// border-bottom: 1px solid rgb(var(--v-theme-borderColor)); +// padding-bottom: 12px; +// margin-bottom: 3px; +// } +// .v-btn{ +// &:hover{ +// background-color: rgb(var(--v-theme-lightprimary)); +// color: rgb(var(--v-theme-primary)) !important; +// } +// &.opacity-1{ +// &:hover{ +// background-color: rgb(var(--v-theme-lightprimary)); +// color: white !important; +// } +// } +// } +// } +// } +.miniicons { + display: flex; + flex-direction: column; + height: 100%; /* Sidebar mengisi tinggi penuh */ + + .miniicons-list { + &:nth-child(3),&:nth-child(6){ + border-bottom: 1px solid rgb(var(--v-theme-borderColor)); + padding-bottom: 12px; + margin-bottom: 3px; + } + /* Ikon utama */ + &:not(.bottom-icons) { + margin-bottom: 1.5px; /* Memastikan ikon ini berada di atas px;*/ + } + + /* Ikon di bagian bawah */ + &.bottom-icons { + margin-top: 250px; /* Memastikan ikon ini berada di bawah */ + display: flex; + flex-direction: column; + // gap: 10px; /* Jarak antar ikon */ + } + + .v-btn { + &:hover { + background-color: rgb(var(--v-theme-lightprimary)); + color: rgb(var(--v-theme-primary)) !important; + } + + &.opacity-1 { + &:hover { + background-color: rgb(var(--v-theme-lightprimary)); + color: white !important; + } + } + } + } +} +.leftSidebar { + height: 100vh; /* Pastikan sidebar mengisi tinggi penuh */ + display: flex; + flex-direction: column; /* Mengatur arah flex menjadi kolom */ + box-shadow: none !important; + left: 70px; + + .logo { + padding-left: 7px; + } + + .mini-icon { + display: none; + } + + .mini-text { + display: block; + font-size: 12px; + font-weight: 600; + letter-spacing: 1.5px; + text-transform: uppercase; + color: inherit; + } + + .v-list--density-default .v-list-subheader { + padding-inline-start: 0 !important; + } + +} + +.mini-sidebar{ + .v-main{ + margin-left: 15px !important; + } +} + +/*This is for the Vertical sidebar*/ +.miniscrollnavbar { + height: calc(100vh - 100px); +} +.scrollnavbar { + height: calc(100vh - 100px); + + .userbottom { + position: fixed; + bottom: 0px; + width: 100%; + } + + .smallCap { + padding: 20px 0px 10px !important; + font-size: 0.875rem; + font-weight: 500; + margin-top: 24px; + color: rgb(var(--v-theme-textPrimary)); + + &:first-child { + margin-top: 0 !important; + } + } + + + + /*General Menu css*/ + + .v-list-group__items { + .v-list-item { + min-height: 35px !important; + padding-inline-start: calc(12px + var(--indent-padding) / 10) !important; + + .v-list-item__prepend .dot { + height: 6px; + width: 6px; + background-color: rgb(var(--v-theme-textSecondary)); + border-radius: 50%; + margin-inline-end: 8px !important; + } + + .v-list-item-title { + font-size: 14px !important; + + } + + &:hover { + color: rgb(var(--v-theme-primary)); + + .v-list-item__prepend .dot { + background-color: rgb(var(--v-theme-primary)); + } + } + + &.v-list-item--active { + .v-list-item__prepend .dot { + background-color: rgb(var(--v-theme-primary)); + } + } + + } + } + + .v-list-group__items .v-list-item, + .v-list-item { + border-radius: $border-radius-root + 4; + color: rgba(var(--v-theme-textPrimary), 0.8); + margin: 0 0 2px; + + &:hover { + color: rgb(var(--v-theme-primary)); + } + + .v-list-item__prepend { + margin-inline-end: 13px; + } + + .v-list-item__append { + font-size: 15px; + + .v-icon { + margin-inline-start: 0px; + } + } + .v-list-item__content{ + overflow: visible; + } + + .v-list-item-title { + font-size: 15px; + text-overflow: unset; + + } + + + } + + /*This is for the dropdown*/ + .v-list { + color: rgb(var(--v-theme-textSecondary)); + + >.v-list-item.v-list-item--active, + .v-list-item--active>.v-list-item__overlay { + background: rgb(var(--v-theme-primary)); + color: white; + box-shadow: 0 17px 20px -8px rgba(var(--v-theme-primary), 0.2); + } + + >.v-list-group { + position: relative; + + >.v-list-item--active, + >.v-list-item--active:hover { + background: rgb(var(--v-theme-primary)); + color: white; + box-shadow: 0 17px 20px -8px rgba(var(--v-theme-primary), 0.2); + } + + .v-list-group__items .v-list-item.v-list-item--active, + .v-list-group__items .v-list-item.v-list-item--active>.v-list-item__overlay { + background: transparent; + color: rgb(var(--v-theme-primary)); + } + } + } + + + .sidebar-menus{ + .v-list{ + border-bottom: 1px solid rgb(var(--v-theme-borderColor)); + &:last-child{ + border-bottom:0; + } + } + } +} + +.v-list-item--density-default:not(.v-list-item--nav).v-list-item--one-line { + padding-inline: 14px; +} + +.v-navigation-drawer--rail { + + .scrollnavbar .v-list .v-list-group__items, + .hide-menu { + opacity: 1; + } + + + .leftPadding { + margin-left: 0px; + } +} + +@media only screen and (min-width: 1170px) { + .mini-sidebar { + .logo { + width: 40px; + overflow: hidden; + padding-left: 0; + } + + .leftSidebar .v-list--density-default .v-list-subheader { + padding-inline-start: 14px !important; + } + + .scrollnavbar .v-list-group__items .v-list-item { + padding-inline-start: 20px !important; + } + + + .smallCap { + padding: 3px 16px !important; + } + + .mini-icon { + display: block; + } + + .sidebarchip.hide-menu { + opacity: 0; + } + + .userbottom .hide-menu { + opacity: 0; + } + + .mini-text { + display: none; + } + + .v-list { + padding: 14px !important; + } + } +} + +// scrollbar +.ps__rail-y { + z-index: 9; +} + +.v-navigation-drawer { + box-shadow: none !important; + border-right: 0 !important; +} + +.v-menu { + &.mobile_popup { + .v-overlay__content { + width: 100%; + + } + + .v-btn.search { + color: rgba(var(--v-theme-textSecondary), 0.8) !important; + } + } +} + +@media screen and (max-width:1199px) { + .leftSidebar { + &.v-navigation-drawer--active { + left: 80px !important; + z-index: 9999 !important; + } + } +} \ No newline at end of file diff --git a/scss/layout/_text.scss b/scss/layout/_text.scss new file mode 100755 index 0000000..64637ad --- /dev/null +++ b/scss/layout/_text.scss @@ -0,0 +1,136 @@ +$sizes: ( + 'display-1': 44px, + 'display-2': 40px, + 'display-3': 30px, + 'h1': 36px, + 'h2': 30px, + 'h3': 21px, + 'h4': 18px, + 'h5': 16px, + 'h6': 14px, + 'text-10': 10px, + 'text-12': 12px, + 'text-13': 13px, + 'text-14': 14px, + 'text-15': 15px, + 'text-16': 16px, + 'text-17': 17px, + 'text-18': 18px, + 'text-20': 20px, + 'text-22': 22px, + 'text-24': 24px, + 'text-28': 28px, + 'text-34': 34px, + 'text-44': 44px, + 'text-48': 48px, + 'text-50': 50px, + 'text-56': 56px, + 'text-64': 64px +); + +@each $pixel, $size in $sizes { + .#{$pixel} { + font-size: $size; + line-height: $size + 10; + } +} + +$height: ( + 'h-10': 10px, + 'h-30': 20px, + 'h-55': 55px +); + +@each $pixel, $size in $height { + .#{$pixel} { + height: $size; + } +} + +@media screen and (max-width: 767px) { + @each $pixel, $size in $sizes { + .#{$pixel} { + @if ($pixel == 'text-12' or $pixel == 'text-10') { + font-size: $size; // No change for .text-12 and .text-10 + } + @if ($pixel == 'text-44' or $pixel == 'text-50' or $pixel == 'text-64') { + font-size: $size - 10px; // No change for .text-12 and .text-10 + } + + } + } +} + + + +.textSecondary { + color: rgb(var(--v-theme-textSecondary)) !important; +} + +.textPrimary { + color: rgb(var(--v-theme-textPrimary)) !important; +} + +// line height + +.lh-md { + line-height: 1.57; +} + +.lh-inherit { + line-height: inherit; +} + +.lh-zero { + line-height: 0; +} + +.lh-normal { + line-height: normal; +} + + +.font-weight-semibold { + font-weight: 600; +} + +// hover text +.text-hover-primary { + color: rgb(var(--v-theme-textPrimary)); + + &:hover { + color: rgb(var(--v-theme-primary)); + } +} + +.text-hover-sky { + color: rgb(var(--v-theme-darkgray)); + + &:hover { + color: rgb(var(--v-theme-primary)); + } +} + +.text-hover-muted { + color: rgb(var(--v-theme-muted)); + + &:hover { + color: rgb(var(--v-theme-primary)); + } +} + +.link { + color: rgb(var(--v-theme-textSecondary)); + text-decoration: none; + + &:hover { + color: rgb(var(--v-theme-primary)); + } +} + +.hover-primary { + &:hover { + color: rgb(var(--v-theme-primary)) !important; + opacity: 1; + } +} \ No newline at end of file diff --git a/scss/layout/_topbar.scss b/scss/layout/_topbar.scss new file mode 100755 index 0000000..60f0b3e --- /dev/null +++ b/scss/layout/_topbar.scss @@ -0,0 +1,56 @@ +.v-app-bar { + .v-toolbar__content { + padding: 0 24px 0 10px; + display: flex; + gap:8px; + + >.v-btn:first-child { + margin-inline-start: 0; + } + + .v-btn { + &.custom-hover-primary{ + .iconify{ + color: rgba(var(--v-theme-textPrimary), 0.7) !important; + } + &:hover{ + background-color: rgb(var(--v-theme-lightprimary)) ; + .iconify{ + color: rgb(var(--v-theme-primary)) !important; + } + + } + + } + + } + } +} + +.mobile_popup{ + .v-btn { + &.custom-hover-primary{ + .iconify{ + color: rgba(var(--v-theme-textPrimary), 0.7) !important; + } + } + } +} + +.custom-text-primary { + &:hover { + .custom-title { + color: rgb(var(--v-theme-primary)) !important; + } + } +} + + + +@media screen and (max-width:1279px) { + .mini-sidebar { + .v-navigation-drawer.v-navigation-drawer--left { + width: 260px !important; + } + } +} \ No newline at end of file diff --git a/scss/pages/_apps.scss b/scss/pages/_apps.scss new file mode 100755 index 0000000..3dee910 --- /dev/null +++ b/scss/pages/_apps.scss @@ -0,0 +1,256 @@ +// +//Full Calendar + +.fc { + .fc-button-group { + >.fc-button { + display: flex; + align-items: center; + padding: 6px 22px; + + } + } + + .fc-daygrid-event { + border-radius: 4px 20px 20px 4px; + padding: 8px 10px; + font-weight: 500; + border-width: 0 0 0 4px; + border-style: solid; + } + + .fc-button { + font-size: 1rem; + font-weight: 500; + text-transform: capitalize; + + .fc-icon { + font-size: 1.5em; + vertical-align: unset; + } + } + + .fc-button-primary { + background: rgba(var(--v-theme-grey100)); + border-color: rgba(var(--v-theme-borderColor)); + color: rgb(var(--v-theme-textSecondary)); + + &:focus { + box-shadow: none; + } + + &:hover { + background-color: rgb(var(--v-theme-primary)); + border-color: rgb(var(--v-theme-primary)); + } + + &:not(:disabled).fc-button-active { + background-color: rgb(var(--v-theme-primary)); + border-color: rgb(var(--v-theme-primary)); + + &:focus { + box-shadow: none; + } + } + + &:not(:disabled) { + &:active { + background-color: rgb(var(--v-theme-primary)); + border-color: rgb(var(--v-theme-primary)); + + &:focus { + box-shadow: none; + } + } + } + + &:disabled { + background-color: rgb(var(--v-theme-primary)); + border-color: rgb(var(--v-theme-primary)); + opacity: 1; + } + } + + .fc-col-header-cell-cushion { + display: inline-block; + padding: 10px 5px; + font-size: 14px; + } +} + +.fc-theme-standard { + td { + border: 1px solid rgba(var(--v-border-color), 1) !important; + } + + th { + border: 0 !important; + border-width: 0; + height: 56px; + background-color: rgba(var(--v-theme-grey100)); + vertical-align: middle; + } + + .fc-scrollgrid { + border: 0 !important; + } +} + +.fc-h-event { + background-color: rgb(var(--v-theme-primary)); + border: 1px solid rgb(var(--v-theme-primary)); + display: block; +} + +.fc-direction-ltr { + .fc-button-group { + >.fc-button { + &:not(:last-child) { + border-bottom-left-radius: $border-radius-root; + border-top-left-radius: $border-radius-root; + } + + &:not(:first-child) { + border-bottom-right-radius: $border-radius-root; + border-top-right-radius: $border-radius-root; + margin-left: -1px; + } + } + } +} + +.fc-button-group { + .fc-dayGridMonth-button { + border-bottom-right-radius: 0px !important; + border-top-right-radius: 0px !important; + } + + .fc-timeGridDay-button { + border-bottom-left-radius: 0px !important; + border-top-left-radius: 0px !important; + } + + .fc-timeGridWeek-button { + border-radius: 0 !important; + } +} + +.fc-today-button { + border-radius: $border-radius-root !important; +} + +@media screen and (max-width:600px) { + .fc { + .fc-toolbar { + display: block; + text-align: center; + } + } + + .fc-toolbar-chunk { + .fc-toolbar-title { + margin: 15px 0; + } + } +} + +// Ecommerce +.product-page { + .left-part { + width: 270px; + } +} + +.product-details { + .v-btn-group { + height: 35px; + } +} + +.shop-sidebar { + .v-checkbox .v-selection-control { + min-height: 35px; + } +} + +#thumbnails { + margin-top: 10px; + + .carousel__slide { + border: 2px solid transparent; + line-height: 0px; + border-radius: $border-radius-root + 4px !important; + overflow: hidden; + } + + .carousel__slide--active { + border: 2px solid rgb(var(--v-theme-primary)); + } + + .carousel__track { + display: flex; + gap: 14px + } +} + +//Chat +.chatlist { + .v-list-item__prepend>.v-avatar~.v-list-item__spacer { + width: 0; + } + + .v-list-item__append { + z-index: 1; + } +} + +.attachment { + .download { + opacity: 0; + } + + &:hover { + .download { + opacity: 1; + } + } +} + + +.customTab { + .v-btn { + &.v-tab-item--selected { + background-color: rgb(var(--v-theme-lightprimary)) !important; + + .icon { + background-color: rgb(var(--v-theme-primary)) !important; + color: #fff !important; + } + } + } +} + +.email-items { + padding: 0px 24px 12px; + + &.selected-email { + .email-title { + color: rgb(var(--v-theme-primary)) !important; + } + } + + &:hover { + background-color: rgb(var(--v-theme-light)); + + .email-title { + color: rgb(var(--v-theme-primary)) !important; + } + + } +} + +.email-content { + p { + margin: 10px 0; + } +} \ No newline at end of file diff --git a/scss/pages/_auth.scss b/scss/pages/_auth.scss new file mode 100755 index 0000000..42cb712 --- /dev/null +++ b/scss/pages/_auth.scss @@ -0,0 +1,114 @@ +.auth{ + z-index: 2; +} +.auth-card{ + width: 100%; + max-width: 460px; +} + +.min-vh-100{ + min-height: 100vh !important; +} + +.auth-divider{ + span{ + z-index: 1; + } + &::before{ + position: absolute; + width: 100%; + border-top: thin solid rgb(229, 234, 239); + top: 50%; + content: ""; + transform: translateY(50%); + left: 0; + } + &::after + { + position: absolute; + width: 100%; + border-top: thin solid rgb(var(--v-theme-borderColor)); + top: 50%; + content: ""; + transform: translateY(50%); + right: 0; + } +} + + +.circle-top { + position: absolute; + top: -33%; + left: -14%; + border: 120px solid #0b2947; + height: 700px; + width: 700px; + display: block; + background: 0 0; + border-radius: 100%; + z-index: 1; +} +.circle-bottom { + img{ + position: absolute; + bottom: 0; + right: 1%; + height: 450px; + width: 450px; + display: block; + background: 0 0; + z-index: 1; + opacity: .5; + } + +} + +.auth-login { + max-width: 1160px !important; +} +.auth-bg { + background: url(@/assets/images/backgrounds/login-bg.jpg); + background-size: cover; + background-repeat: no-repeat; + height: 100%; + .v-carousel__controls{ + height: auto; + .v-btn{ + margin: 0 0 !important; + + &.v-btn--active{ + .v-btn__content{ + color:rgb(var(--v-theme-primary)) !important; + .v-icon{ + opacity: 1 !important ; + } + } + } + .v-btn__content{ + .v-icon{ + opacity: 1 !important ; + } + } + } + + } +} + + + +.h-n80 { + height: calc(100vh - 80px); +} + +@media screen and (max-width:1280px){ + .mh-100{ + height: 100% !important; + } +} + +@media screen and (max-width:600px){ + .mw-100{ + width: 100%; + padding: 0 15px; + } +} \ No newline at end of file diff --git a/scss/pages/_dashboards.scss b/scss/pages/_dashboards.scss new file mode 100755 index 0000000..7541339 --- /dev/null +++ b/scss/pages/_dashboards.scss @@ -0,0 +1,141 @@ +// Dashboard 1 +.welcome-img{ + max-height: 200px; + height: 200px; +} + +.labels-chart .label-1 { + position: absolute; + width: 25px; + left: 0; + right: 0; + margin: 0 auto; + top: -3px +} + +.labels-chart .label-2 { + position: absolute; + right: 0; + top: 50% +} + +.labels-chart .label-3 { + position: absolute; + width: 40px; + left: 0; + right: 0; + margin: 0 auto; + bottom: 0; + text-align: center +} + +.labels-chart .label-4 { + position: absolute; + top: 50% +} + +// Revenue Products +.revenue-products { + .v-slide-group__content { + gap: 16px; + } + + .v-btn { + background-color: rgba(var(--v-theme-grey100)); + padding: 12px 24px; + } + + .v-tab--selected { + background-color: rgba(var(--v-theme-primary)); + + .v-btn__content { + color: #fff; + + .v-tab__slider { + display: none; + } + } + } +} + +// Dashboard 2 +.bg-primary-gt { + background: linear-gradient(261.23deg, rgba(var(--v-theme-primary)) .42%, #5a52ff 100%) !important; + + img { + bottom: 0; + right: 0; + z-index: -1; + } +} + +.profit-card { + .badge-custom-dark { + background-color: rgba(41, 52, 61, .2) !important; + padding: 5px 12px; + width: fit-content; + } +} + +.rounded-bars { + .apexcharts-bar-series.apexcharts-plot-series .apexcharts-series path { + clip-path: inset(0 0 5% 0 round 20px); + } +} + +.rounded-pill-bars .apexcharts-rangebar-area { + clip-path: inset(9% 0% 11% round 24px); +} + +// Annual Profit +.annual-list { + .list { + &:last-child { + border-bottom: 0 !important; + padding-bottom: 0 !important; + } + } +} + +.daily-activities { + .line { + width: 1px; + height: 50px; + margin-top: -6px; + } +} + +//Dashboard 3 +.primary-gradient { + background: linear-gradient(180deg,rgba(var(--v-theme-primary),.12) 0,rgba(var(--v-theme-primary),.03) 100%) +} + +.warning-gradient { + background: linear-gradient(180deg,rgba(var(--v-theme-warning),.12) 0,rgba(var(--v-theme-warning),.03) 100%) +} + +.secondary-gradient { + background: linear-gradient(180deg,rgba(var(--v-theme-secondary),.12) 0,rgba(var(--v-theme-secondary),.03) 100%) +} + +.error-gradient { + background: linear-gradient(180deg,rgba(var(--v-theme-error),.12) 0,rgba(var(--v-theme-error),.03) 100%) +} + +.success-gradient { + background: linear-gradient(180deg,rgba(var(--v-theme-success),.12) 0,rgba(var(--v-theme-success),.03) 100%) +} + + +.icon-grid-width{ + width: 20% !important; + @media screen and (max-width:1190px) { + width: 33% !important; + } +} + +@media screen and (max-width:1368px){ + .welcome-img { + max-height: 150px; + } +} \ No newline at end of file diff --git a/scss/pages/_editor.scss b/scss/pages/_editor.scss new file mode 100755 index 0000000..1f3d128 --- /dev/null +++ b/scss/pages/_editor.scss @@ -0,0 +1,61 @@ +.ProseMirror { + padding: 20px; + border: 1px solid rgb(var(--v-theme-inputBorder)); + border-radius: 0 0 12px 12px; + &.ProseMirror-focused { + outline-color: rgb(var(--v-theme-primary), 0.3) !important; + } + > * + * { + margin-top: 0.75em; + } + + ul, + ol { + padding: 0 1rem; + } + + h1, + h2, + h3, + h4, + h5, + h6 { + line-height: 1.1; + } + + code { + background-color: rgba(#616161, 0.1); + color: #616161; + } + + pre { + background: #0d0d0d; + color: #fff; + font-family: 'JetBrainsMono', monospace; + padding: 0.75rem 1rem; + border-radius: 0.5rem; + + code { + color: inherit; + padding: 0; + background: none; + font-size: 0.8rem; + } + } + + img { + max-width: 100%; + height: auto; + } + + blockquote { + padding-left: 1rem; + border-left: 2px solid rgba(#0d0d0d, 0.1); + } + + hr { + border: none; + border-top: 2px solid rgba(#0d0d0d, 0.1); + margin: 2rem 0; + } +} diff --git a/scss/style.scss b/scss/style.scss new file mode 100755 index 0000000..a5cb51d --- /dev/null +++ b/scss/style.scss @@ -0,0 +1,48 @@ +@import './variables'; +@import 'vuetify/styles.scss'; +@import './override'; +@import './layout/text'; +@import './layout/reboot'; +@import './layout/container'; +@import './layout/sidebar'; +@import './layout/rtl'; +@import './layout/topbar'; +@import './layout/horizontal'; +@import './layout/dark'; +@import './layout/customizer'; + +@import './components/VBreadcrumb'; +@import './components/VAlert'; +@import './components/VButtons'; +@import './components/VCard'; +@import './components/VCarousel'; +@import './components/VField'; +@import './components/VList'; +@import './components/VInput'; +@import './components/VNavigationDrawer'; +@import './components/VShadow'; +@import './components/VSwitch'; +@import './components/VSelectionControl'; +@import './components/VTextField'; +@import './components/VTextarea'; +@import './components/VTabs'; +@import './components/VTable'; +@import './components/VExpansionpanel'; +@import './components/VChip'; +@import './components/VTooltip'; +@import './components/VDatatables'; +@import './components/VLabs'; +@import './components/VStepper'; +@import './components/VPagination'; + +/*Landing page css*/ +@import 'landingpage/header'; +@import 'landingpage/general'; +@import 'front/general'; +@import 'front/header'; +@import 'pages/auth'; +@import 'pages/dashboards'; +@import 'pages/apps'; +@import 'pages/editor'; + +@import 'vue3-perfect-scrollbar/dist/vue3-perfect-scrollbar.css'; \ No newline at end of file diff --git a/scssold/_override.scss b/scssold/_override.scss new file mode 100755 index 0000000..d7408be --- /dev/null +++ b/scssold/_override.scss @@ -0,0 +1,29 @@ +html { + .bg-success { + color: white !important; + } + + .bg-primary { + color: $white !important; + } + + .bg-secondary { + color: $white !important; + } + + .bg-warning { + color: $white !important; + } +} + +.border, +.v-divider { + border-color: rgba(var(--v-border-color), 1) !important; +} + +.lh-0{ + line-height: 0; +} +.lh-normal{ + line-height: normal; +} \ No newline at end of file diff --git a/scssold/_variables.scss b/scssold/_variables.scss new file mode 100755 index 0000000..6962e76 --- /dev/null +++ b/scssold/_variables.scss @@ -0,0 +1,163 @@ +@use 'sass:math'; +@use 'sass:map'; +@use 'sass:meta'; +@use 'vuetify/lib/styles/tools/functions' as *; + +// Custom Variables +// colors +$white: #fff !default; + +// cards +$card-title-size: 18px !default; +$body-font-family: "Manrope", sans-serif !default; +$border-radius-root: 8px; +$btn-letter-spacing: 0 !default; +// Global Shadowsss +$box-shadow: 0px 2px 4px -1px #afb6c933; + +// Global Radius as per breakeven point + +@forward 'vuetify/settings' with ( + $color-pack: false !default, + // Global font size and border radius + $font-size-root: 1rem, + $border-radius-root: $border-radius-root, + $body-font-family: $body-font-family, + $heading-font-family: $body-font-family !default, + // 👉 Typography + $typography: + ( + //36px + 'h1': ( + 'size': 2.25rem, + 'weight': 600, + 'line-height': 3.75rem, + 'font-family': inherit + ), + //30px + 'h2': ( + 'size': 1.875rem, + 'weight': 600, + 'line-height': 2.25rem, + 'font-family': inherit + ), + //22px + 'h3': ( + 'size': 1.375rem, + 'weight': 600, + 'line-height': 2rem, + 'font-family': inherit + ), + //20px + 'h4': ( + 'size': 1.25rem, + 'weight': 600, + 'line-height': 1.6rem, + 'font-family': inherit + ), + //18px + 'h5': ( + 'size': 1.125rem, + 'weight': 600, + 'line-height': 1.6rem, + 'font-family': inherit + ), + //16px + 'h6': ( + 'size': 1rem, + 'weight': 600, + 'line-height': 1.2rem, + 'font-family': inherit + ), + //15px + 'subtitle-1': ( + 'size': 0.94rem, + 'weight': 400, + 'line-height': 1.1rem, + 'font-family': inherit, + 'letter-spacing':0rem + ), + //13px + 'subtitle-2': ( + 'size': 0.81rem, + 'weight': 400, + 'line-height': 1rem, + 'font-family': inherit, + 'letter-spacing':0rem + ), + //14px + 'body-1': ( + 'size': 0.875rem, + 'weight': 400, + 'font-family': inherit, + 'letter-spacing':0rem + ), + //12px + 'body-2': ( + 'size': 0.75rem, + 'weight': 400, + 'font-family': inherit, + 'letter-spacing':0rem + ), + //13px + 'button': ( + 'size': 0.81rem, + 'weight': 600, + 'font-family': inherit, + 'text-transform': capitalize + ), + //14px + 'caption': ( + 'size':0.875rem, + 'weight': 400, + 'font-family': inherit, + 'letter-spacing':0rem + ), + //12px + 'overline': ( + 'size': 0.75rem, + 'weight': 400, + 'font-family': inherit, + 'letter-spacing':0rem + ) + ) + !default, + // 👉 Button + $button-border-radius: 8px !default, + $button-text-letter-spacing: 0 !default, + $button-text-transform: capitalize, + $button-elevation: ( + 'default': 0, + 'hover': 4, + 'active': 8 + ) + !default, + + // 👉 Tooltip + $tooltip-background-color: #212121 !default, + $tooltip-text-color: rgb(var(--v-theme-on-primary)) !default, + $tooltip-font-size: 0.75rem !default, + $tooltip-border-radius: 4px !default, + $tooltip-padding: 4px 8px !default, + + // 👉 Rounded + $rounded: + ( + 0: 0, + 'sm': $border-radius-root - 4, + null: $border-radius-root, + 'md': $border-radius-root + 4, + 'lg': $border-radius-root * 2, + 'xl': $border-radius-root + 8, + 'pill': 9999px, + 'circle': 50% + ), + + // 👉 Card + $card-elevation: 10 !default, + $card-title-line-height: 1.6 !default, + $card-text-padding: 24px !default, + $card-item-padding: 30px 30px !default, + $card-actions-padding: 10px 24px 24px !default, + $card-subtitle-opacity: 1 !default, +); \ No newline at end of file diff --git a/scssold/components/_VButtons.scss b/scssold/components/_VButtons.scss new file mode 100755 index 0000000..e8a411a --- /dev/null +++ b/scssold/components/_VButtons.scss @@ -0,0 +1,27 @@ +// +// global + +.v-btn-group .v-btn { + height: inherit !important; +} +.v-btn { + border-radius: $border-radius-root; + text-transform: capitalize !important; + +} +.v-btn-group { + border-color: rgb(var(--v-theme-borderColor)) !important; +} + +.v-btn--size-large{ + font-size: 14px; +} + +.btn-white{ + background-color: rgb(var(--v-theme-surface)) !important; + padding:10px 15px; + &:hover{ + background-color: rgb(var(--v-theme-primary)) !important; + color: #fff !important; + } +} \ No newline at end of file diff --git a/scssold/components/_VCard.scss b/scssold/components/_VCard.scss new file mode 100755 index 0000000..bad7bf3 --- /dev/null +++ b/scssold/components/_VCard.scss @@ -0,0 +1,60 @@ +// Outline Card +.v-card--variant-outlined { + border-color: rgba(var(--v-theme-borderColor)) !important; + background-color:rgb(var(--v-theme-surface)); ; +} + +.v-card--variant-elevated, +.v-card--variant-flat { + color: rgb(var(--v-theme-textPrimary)); +} + +.card-hover { + transition: box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; + + &:hover { + img { + transform: scale(1.09); + transition: transform .2s; + } + } +} + +.v-card { + width: 100%; + overflow: visible; + + .color-inherits { + color: inherit; + } + + .v-card-item{ + padding: 30px !important; + } + + .feature-card { + .v-responsive__content { + height: 100%; + } + } + + .v-card-title { + line-height: normal; + margin-bottom: 8px; + } + .v-card-subtitle{ + color: rgb(var(--v-theme-textSecondary)); + } + .v-card-text{ + font-size: 14px; + } + +} + +// Theme cards +.cardBordered { + .v-card { + box-shadow: none !important; + border: 1px solid rgb(var(--v-theme-borderColor)); + } +} \ No newline at end of file diff --git a/scssold/components/_VField.scss b/scssold/components/_VField.scss new file mode 100755 index 0000000..5b4a881 --- /dev/null +++ b/scssold/components/_VField.scss @@ -0,0 +1,38 @@ +.v-field--variant-outlined .v-field__outline__start.v-locale--is-ltr, +.v-locale--is-ltr .v-field--variant-outlined .v-field__outline__start { + border-radius: $border-radius-root 0 0 $border-radius-root; +} + +.v-field--variant-outlined .v-field__outline__end.v-locale--is-ltr, +.v-locale--is-ltr .v-field--variant-outlined .v-field__outline__end { + border-radius: 0 $border-radius-root $border-radius-root 0; +} + +.v-field { + font-size: 14px !important; + color: rgba(var(--v-theme-textPrimary)); +} + +// select outlined +.v-field--variant-outlined .v-field__outline__start, +.v-field--variant-outlined .v-field__outline__notch::before, +.v-field--variant-outlined .v-field__outline__notch::after, +.v-field--variant-outlined .v-field__outline__end { + opacity: 1; +} + + + +.v-text-field input { + font-size: 0.875rem; + } + .v-field__outline { + color: rgb(var(--v-theme-borderColor)); + --v-field-border-opacity: 1 !important; + } + .input { + .v-field--variant-outlined { + background-color: rgba(0, 0, 0, 0.025); + } + } + \ No newline at end of file diff --git a/scssold/components/_VInput.scss b/scssold/components/_VInput.scss new file mode 100755 index 0000000..b60ad03 --- /dev/null +++ b/scssold/components/_VInput.scss @@ -0,0 +1,34 @@ +// variant +.v-input--density-default, +.v-field--variant-solo, +.v-field--variant-filled { + --v-input-control-height: 51px; + --v-input-padding-top: 14px; +} + +// comfortable +.v-input--density-comfortable { + --v-input-control-height: 44px; +} + +// compact +.v-input--density-compact { + --v-input-padding-top: 10px; +} +.v-label { + font-size: 0.875rem; + opacity: 1; +} +.v-switch .v-label, +.v-checkbox .v-label { + opacity: 1; +} + +.v-text-field__suffix { + opacity: 1; + padding-left: 20px; +} + +.shadow-none .v-field--variant-solo { + box-shadow: none !important; +} diff --git a/scssold/components/_VNavigationDrawer.scss b/scssold/components/_VNavigationDrawer.scss new file mode 100755 index 0000000..9994ae9 --- /dev/null +++ b/scssold/components/_VNavigationDrawer.scss @@ -0,0 +1,3 @@ +.v-navigation-drawer__scrim.fade-transition-leave-to { + display: none; +} diff --git a/scssold/components/_VShadow.scss b/scssold/components/_VShadow.scss new file mode 100755 index 0000000..67ed9ac --- /dev/null +++ b/scssold/components/_VShadow.scss @@ -0,0 +1,15 @@ +.elevation-9 { + box-shadow: rgb(0 0 0 / 5%) 0px 9px 17.5px !important; +} + +.elevation-10 { + box-shadow: $box-shadow !important; +} + +.primary-shadow { + box-shadow: rgba(var(--v-theme-primary), 0.30) 0px 12px 14px 0px; + &:hover { + box-shadow: none; + } +} + diff --git a/scssold/components/_VTable.scss b/scssold/components/_VTable.scss new file mode 100755 index 0000000..bf49709 --- /dev/null +++ b/scssold/components/_VTable.scss @@ -0,0 +1,78 @@ +.v-table .v-table__wrapper>table>tbody>tr:not(:last-child)>td, +.v-table .v-table__wrapper>table>tbody>tr:not(:last-child)>th, +.v-table .v-table__wrapper>table>thead>tr:last-child>th { + border-bottom: thin solid rgba(var(--v-theme-borderColor), 0.6) !important; +} + +.v-table { + &.dark-table { + background-color: rgb(var(--v-theme-grey200)); + } +} + +.v-table { + .v-table__wrapper { + table { + tbody { + tr { + + td { + padding: 14px 24px !important; + + &:first-child { + padding-left: 0 ; + } + } + } + } + + thead { + tr { + th { + padding: 14px 24px !important; + + &:first-child { + padding-left: 0 ; + } + } + } + } + } + + } +} + +.v-table{ + &.revenue-table{ + .v-table__wrapper { + table { + tbody { + tr { + + td { + padding: 14px 24px !important; + + &:first-child { + padding-left: 0 !important; + } + } + } + } + + thead { + tr { + th { + padding: 14px 24px !important; + + &:first-child { + padding-left: 0 !important; + } + } + } + } + } + + } + } +} + diff --git a/scssold/layout/_container.scss b/scssold/layout/_container.scss new file mode 100755 index 0000000..e16f80a --- /dev/null +++ b/scssold/layout/_container.scss @@ -0,0 +1,42 @@ +html { + overflow-y: auto; +} + +@media (max-width: 1279px) { + .v-main { + margin: 0 10px; + } +} + + +.cursor-pointer { + cursor: pointer; +} + +.page-wrapper { + min-height: calc(100vh - 100px); + padding: 24px; + + @media screen and (max-width: 767px) { + padding: 20px 10px; + } +} + +.maxWidth { + max-width: 1200px; + margin: 0 auto; + padding: 0 20px; + + @media screen and (max-width: 1199px) { + padding: 0 8px !important; + } +} + + +.h-100vh { + height: 100vh; +} + +.v-main { + --v-layout-top: 0 !important; +} \ No newline at end of file diff --git a/scssold/layout/_sidebar.scss b/scssold/layout/_sidebar.scss new file mode 100755 index 0000000..c1832fd --- /dev/null +++ b/scssold/layout/_sidebar.scss @@ -0,0 +1,196 @@ +/*This is for the logo*/ +.leftSidebar { + box-shadow: none !important; + top: 75px !important; + + .logo { + padding-left: 7px; + } + + .mini-icon { + display: none; + } + + .mini-text { + display: block; + font-size: 12px !important; + font-weight: 600 !important; + letter-spacing: 1.5px !important; + text-transform: uppercase !important; + color:inherit + } + + .v-list--density-default .v-list-subheader { + padding-inline-start: 0 !important; + } + + +} + +/*This is for the Vertical sidebar*/ +.scrollnavbar { + height: calc(100vh - 170px); + + .userbottom { + position: fixed; + bottom: 0px; + width: 100%; + } + + .smallCap { + padding: 20px 0px 10px !important; + font-size: 0.875rem; + font-weight: 500; + margin-top: 24px; + color: rgb(var(--v-theme-textPrimary)); + + &:first-child { + margin-top: 0 !important; + } + } + + + /*General Menu css*/ + + .v-list-group__items { + .v-list-item { + min-height: 35px !important; + padding-inline-start: calc(12px + var(--indent-padding) / 10) !important; + + .v-list-item__prepend .dot { + height: 6px; + width: 6px; + background-color: rgb(var(--v-theme-textSecondary)); + border-radius: 50%; + margin-inline-end: 8px !important; + } + + .v-list-item-title { + font-size: 14px !important; + } + + &:hover { + color: rgb(var(--v-theme-primary)); + + .v-list-item__prepend .dot { + background-color: rgb(var(--v-theme-primary)); + } + } + + &.v-list-item--active { + .v-list-item__prepend .dot { + background-color: rgb(var(--v-theme-primary)); + } + } + + } + } + + .v-list-group__items .v-list-item, + .v-list-item { + border-radius: $border-radius-root + 4; + color: rgba(var(--v-theme-textPrimary),0.8); + margin: 0 0 2px; + + &:hover { + color: rgb(var(--v-theme-primary)); + } + + .v-list-item__prepend { + margin-inline-end: 8px; + } + + .v-list-item__append { + font-size: 15px; + + .v-icon { + margin-inline-start: 13px; + } + } + + .v-list-item-title { + font-size: 15px; + + } + } + + /*This is for the dropdown*/ + .v-list { + color: rgb(var(--v-theme-textSecondary)); + .v-list-item { + border-radius: $border-radius-root + 4 !important;} + .v-list-subheader { + &:first-of-type { + border-top: 0; + } + + border-top: 1px solid rgb(var(--v-theme-borderColor)); + } + + + >.v-list-item.v-list-item--active, + .v-list-item--active>.v-list-item__overlay { + background: rgb(var(--v-theme-primary)); + color: white; + box-shadow: 0 17px 20px -8px rgba(var(--v-theme-primary), 0.2); + } + + .v-list-group { + position: relative; + + .v-list-item--active, + .v-list-item--active:hover { + background: rgb(var(--v-theme-primary)); + color: white; + box-shadow: 0 17px 20px -8px rgba(var(--v-theme-primary), 0.2); + } + + .v-list-group__items .v-list-item.v-list-item--active, + .v-list-group__items .v-list-item.v-list-item--active>.v-list-item__overlay { + background: transparent; + color: rgb(var(--v-theme-primary)); + } + } + } +} + +.v-list-item--density-default:not(.v-list-item--nav).v-list-item--one-line { + padding-inline: 14px; +} + +.v-navigation-drawer--rail { + + .scrollnavbar .v-list .v-list-group__items, + .hide-menu { + opacity: 1; + } + + + .leftPadding { + margin-left: 0px; + } +} + + +// scrollbar +.ps__rail-y { + z-index: 9; +} + +.v-navigation-drawer { + box-shadow: none !important; + border-right: 0 !important; +} + + +@media screen and (max-width:1280px) { + .leftSidebar { + top: 0 !important; + } +} + +@media screen and (max-width:991px){ + .scrollnavbar { + height: calc(100vh - 80px); + } +} \ No newline at end of file diff --git a/scssold/layout/_topbar.scss b/scssold/layout/_topbar.scss new file mode 100755 index 0000000..678c916 --- /dev/null +++ b/scssold/layout/_topbar.scss @@ -0,0 +1,135 @@ +.v-app-bar { + .v-toolbar__content { + padding: 0 20px 0 20px; + display: flex; + gap:8px; + + >.v-btn:first-child { + margin-inline-start: 0; + } + + .v-btn { + &.custom-hover-primary{ + .iconify{ + color: rgba(var(--v-theme-textPrimary), 0.7) !important; + } + &:hover{ + background-color: rgb(var(--v-theme-lightprimary)) ; + .iconify{ + color: rgb(var(--v-theme-primary)) !important; + } + + } + + } + + } + } +} + +.mobile_popup{ + .v-btn { + &.custom-hover-primary{ + .iconify{ + color: rgba(var(--v-theme-textPrimary), 0.7) !important; + } + } + } +} + +.custom-text-primary { + &:hover { + .custom-title { + color: rgb(var(--v-theme-primary)) !important; + } + } +} + + + +@media screen and (max-width:1279px) { + .mini-sidebar { + .v-navigation-drawer.v-navigation-drawer--left { + width: 260px !important; + } + } +} + +.feature-topbar { + position: sticky; + top: 0; + z-index: 15; + background: linear-gradient(90deg, #001138 0%, #001E66 100%); + + + .text-linear-gradient { + background: linear-gradient(90deg, #FFFFFF 0%, #3772FF 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + + + } + + .border-blue { + border-radius: 9px; + border: 1px solid rgb(236, 240, 242, 0.5); + + } + + .purple-btn { + background-color: #8D70F8; + border-radius: 9px; + + &:hover { + background-color: #714BFF; + } + + } + + .green-btn { + background-color: #B3F143; + border-radius: 9px; + + &:hover { + background-color: #90DE03; + } + + } +} + +.top-header{ + position: relative !important; + z-index: 0 !important; +} + +.topbar-links { + .v-btn { + &:hover { + background-color: rgba(var(--v-theme-primary)); + } + } +} + +.topbar-links { + a { + text-decoration: none; + color: rgba(var(--v-theme-surface)); + + &:hover { + color: rgba(var(--v-theme-primary)) !important; + } + } +} + +.border, +.v-divider { + border-color: rgba(var(--v-border-color), 1) !important; +} + +.lh-0{ + line-height: 0; +} +.lh-normal{ + line-height: normal; +} \ No newline at end of file diff --git a/scssold/pages/_dashboards.scss b/scssold/pages/_dashboards.scss new file mode 100755 index 0000000..412fe05 --- /dev/null +++ b/scssold/pages/_dashboards.scss @@ -0,0 +1,141 @@ +// Dashboard 1 +.welcome-img{ + max-height: 200px; + height: 200px; +} + +.labels-chart .label-1 { + position: absolute; + width: 25px; + left: 0; + right: 0; + margin: 0 auto; + top: -3px +} + +.labels-chart .label-2 { + position: absolute; + right: 0; + top: 50% +} + +.labels-chart .label-3 { + position: absolute; + width: 40px; + left: 0; + right: 0; + margin: 0 auto; + bottom: 0; + text-align: center +} + +.labels-chart .label-4 { + position: absolute; + top: 50% +} + +// Revenue Products +.revenue-products { + .v-slide-group__content { + gap: 24px; + } + + .v-btn { + background-color: rgba(var(--v-theme-grey100), 0.8); + padding: 12px 24px; + } + + .v-slide-group-item--active.v-tab--selected { + background-color: rgba(var(--v-theme-primary)); + + .v-btn__content { + color: #fff; + + .v-tab__slider { + display: none; + } + } + } +} + +// Dashboard 2 +.bg-primary-gt { + background: linear-gradient(261.23deg, rgba(var(--v-theme-primary)) .42%, #5a52ff 100%) !important; + + img { + bottom: 0; + right: 0; + z-index: -1; + } +} + +.profit-card { + .badge-custom-dark { + background-color: rgba(41, 52, 61, .2) !important; + padding: 5px 12px; + width: fit-content; + } +} + +.rounded-bars { + .apexcharts-bar-series.apexcharts-plot-series .apexcharts-series path { + clip-path: inset(0 0 5% 0 round 20px); + } +} + +.rounded-pill-bars .apexcharts-rangebar-area { + clip-path: inset(9% 0% 11% round 24px); +} + +// Annual Profit +.annual-list { + .list { + &:last-child { + border-bottom: 0 !important; + padding-bottom: 0 !important; + } + } +} + +.daily-activities { + .line { + width: 1px; + height: 50px; + margin-top: -6px; + } +} + +//Dashboard 3 +.primary-gradient { + background: linear-gradient(180deg,rgba(var(--v-theme-primary),.12) 0,rgba(var(--v-theme-primary),.03) 100%) +} + +.warning-gradient { + background: linear-gradient(180deg,rgba(var(--v-theme-warning),.12) 0,rgba(var(--v-theme-warning),.03) 100%) +} + +.secondary-gradient { + background: linear-gradient(180deg,rgba(var(--v-theme-secondary),.12) 0,rgba(var(--v-theme-secondary),.03) 100%) +} + +.error-gradient { + background: linear-gradient(180deg,rgba(var(--v-theme-error),.12) 0,rgba(var(--v-theme-error),.03) 100%) +} + +.success-gradient { + background: linear-gradient(180deg,rgba(var(--v-theme-success),.12) 0,rgba(var(--v-theme-success),.03) 100%) +} + + +.icon-grid-width{ + width: 20% !important; + @media screen and (max-width:1190px) { + width: 33% !important; + } +} + +@media screen and (max-width:1368px){ + .welcome-img { + max-height: 150px; + } +} \ No newline at end of file diff --git a/scssold/style.scss b/scssold/style.scss new file mode 100755 index 0000000..7252c06 --- /dev/null +++ b/scssold/style.scss @@ -0,0 +1,15 @@ +@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@200..800&display=swap"); +@import './variables'; +@import 'vuetify/styles/main.sass'; +@import './layout/container'; +@import './layout/sidebar'; +@import './layout/topbar'; +@import './components/VButtons'; +@import './components/VCard'; +@import './components/VInput'; +@import './components/VField'; +@import './components/VNavigationDrawer'; +@import './components/VShadow'; +@import './components/VTable'; +@import 'pages/dashboards'; +@import 'vue3-perfect-scrollbar/dist/vue3-perfect-scrollbar.css'; \ No newline at end of file diff --git a/server/api/menus/delete.delete.ts b/server/api/menus/delete.delete.ts new file mode 100644 index 0000000..ad6e81f --- /dev/null +++ b/server/api/menus/delete.delete.ts @@ -0,0 +1,49 @@ +import fs from 'fs/promises' +import path from 'path' + +export default defineEventHandler(async (event) => { + try { + const { menuId, reference } = await readBody<{ + menuId: string + reference: string + }>(event) + + if (!menuId || !reference) { + throw createError({ + statusCode: 400, + statusMessage: 'MenuId and reference are required' + }) + } + + const filePath = path.join(process.cwd(), 'matdash', 'data', 'menus.json') + const fileContent = await fs.readFile(filePath, 'utf-8') + const data = JSON.parse(fileContent) + + // Remove menu item and its children recursively + const removeMenuItem = (items: any[], id: string): any[] => { + return items.filter(item => { + if (item.id === id) return false + if (item.children) { + item.children = removeMenuItem(item.children, id) + } + return true + }) + } + + data.menus = removeMenuItem(data.menus, menuId) + + // Save updated data + await fs.writeFile(filePath, JSON.stringify(data, null, 2)) + + return { + success: true, + message: 'Menu deleted successfully' + } + } catch (error) { + console.error('Error deleting menu:', error) + throw createError({ + statusCode: 500, + statusMessage: 'Failed to delete menu' + }) + } +}) diff --git a/server/api/menus/list.get.ts b/server/api/menus/list.get.ts new file mode 100644 index 0000000..d716aa3 --- /dev/null +++ b/server/api/menus/list.get.ts @@ -0,0 +1,34 @@ +import fs from 'fs/promises' +import path from 'path' + +export default defineEventHandler(async (event) => { + try { + const filePath = path.join(process.cwd(), 'matdash', 'data', 'menus.json') + + // Check if file exists, create if not + try { + await fs.access(filePath) + } catch { + const defaultData = { + menus: [], + references: ["Referensi", "Main", "Admin"], + menuOptions: ["Select a menu", "Main Menu", "Side Menu", "Footer Menu"] + } + await fs.writeFile(filePath, JSON.stringify(defaultData, null, 2)) + } + + const fileContent = await fs.readFile(filePath, 'utf-8') + const data = JSON.parse(fileContent) + + return { + success: true, + data + } + } catch (error) { + console.error('Error reading menus:', error) + throw createError({ + statusCode: 500, + statusMessage: 'Failed to load menus' + }) + } +}) diff --git a/server/api/menus/save.post.ts b/server/api/menus/save.post.ts new file mode 100644 index 0000000..44c0816 --- /dev/null +++ b/server/api/menus/save.post.ts @@ -0,0 +1,57 @@ +import fs from 'fs/promises' +import path from 'path' +import type { MenuItem } from '../../../types/menu' + +export default defineEventHandler(async (event) => { + try { + const { menuItem, reference } = await readBody<{ + menuItem: MenuItem + reference: string + }>(event) + + if (!menuItem || !reference) { + throw createError({ + statusCode: 400, + statusMessage: 'MenuItem and reference are required' + }) + } + + const filePath = path.join(process.cwd(), 'matdash', 'data', 'menus.json') + + // Read current data + let data + try { + const fileContent = await fs.readFile(filePath, 'utf-8') + data = JSON.parse(fileContent) + } catch { + data = { menus: [], references: [], menuOptions: [] } + } + + // Update or add menu item + const existingIndex = data.menus.findIndex((item: MenuItem) => item.id === menuItem.id) + + if (existingIndex >= 0) { + data.menus[existingIndex] = { ...menuItem, updatedAt: new Date().toISOString() } + } else { + data.menus.push({ + ...menuItem, + createdAt: new Date().toISOString(), + updatedAt: new Date().toISOString() + }) + } + + // Save to file + await fs.writeFile(filePath, JSON.stringify(data, null, 2)) + + return { + success: true, + data: menuItem + } + } catch (error) { + console.error('Error saving menu:', error) + throw createError({ + statusCode: 500, + statusMessage: 'Failed to save menu' + }) + } +}) diff --git a/server/api/pages/generate.post.ts b/server/api/pages/generate.post.ts new file mode 100644 index 0000000..c728982 --- /dev/null +++ b/server/api/pages/generate.post.ts @@ -0,0 +1,111 @@ +import fs from 'fs/promises' +import path from 'path' + +export default defineEventHandler(async (event) => { + try { + const pageData = await readBody(event) + + if (!pageData.name || !pageData.path) { + throw createError({ + statusCode: 400, + statusMessage: 'Page name and path are required' + }) + } + + // Generate Vue file content + const vueTemplate = ` + + + + +` + + // Determine file path + const fileName = `${pageData.name.toLowerCase().replace(/\s+/g, '-')}.vue` + const pagesDir = path.join(process.cwd(), 'matdash', 'pages') + const filePath = path.join(pagesDir, fileName) + + // Ensure pages directory exists + await fs.mkdir(pagesDir, { recursive: true }) + + // Write Vue file + await fs.writeFile(filePath, vueTemplate) + + // Save page data to JSON + const dataPath = path.join(process.cwd(), 'matdash', 'data', 'pages.json') + let pagesData + + try { + const fileContent = await fs.readFile(dataPath, 'utf-8') + pagesData = JSON.parse(fileContent) + } catch { + pagesData = { pages: [] } + } + + // Add or update page data + const existingIndex = pagesData.pages.findIndex((page: any) => page.path === pageData.path) + const pageRecord = { + ...pageData, + id: pageData.id || `page-${Date.now()}`, + fileName, + createdAt: new Date().toISOString(), + updatedAt: new Date().toISOString() + } + + if (existingIndex >= 0) { + pagesData.pages[existingIndex] = pageRecord + } else { + pagesData.pages.push(pageRecord) + } + + await fs.writeFile(dataPath, JSON.stringify(pagesData, null, 2)) + + return { + success: true, + data: { + fileName, + filePath: filePath.replace(process.cwd(), ''), + pageData: pageRecord + } + } + } catch (error) { + console.error('Error generating page:', error) + throw createError({ + statusCode: 500, + statusMessage: 'Failed to generate page' + }) + } +}) diff --git a/store/customizer.ts b/store/customizer.ts new file mode 100755 index 0000000..9b959b0 --- /dev/null +++ b/store/customizer.ts @@ -0,0 +1,37 @@ +import { defineStore, createPinia } from "pinia"; +import config from '../config' +const pinia = createPinia(); + +export const useCustomizerStore = defineStore('customizer', { + state: () => ({ + Sidebar_drawer: config.Sidebar_drawer, + Customizer_drawer: config.Customizer_drawer, + mini_sidebar: config.mini_sidebar, + setHorizontalLayout: config.setHorizontalLayout, // Horizontal layout + actTheme: config.actTheme, + boxed: config.boxed, + setBorderCard: config.setBorderCard + }), + getters: {}, + actions: { + SET_SIDEBAR_DRAWER() { + this.Sidebar_drawer = !this.Sidebar_drawer; + }, + SET_MINI_SIDEBAR(payload: any) { + this.mini_sidebar = payload; + }, + SET_CUSTOMIZER_DRAWER(payload: any) { + this.Customizer_drawer = payload; + }, + + SET_LAYOUT(payload: any) { + this.setHorizontalLayout = payload; + }, + SET_THEME(payload: any) { + this.actTheme = payload; + }, + SET_CARD_BORDER(payload: any){ + this.setBorderCard = payload + } + }, +}); \ No newline at end of file diff --git a/theme/DarkTheme.ts b/theme/DarkTheme.ts new file mode 100755 index 0000000..8e2c914 --- /dev/null +++ b/theme/DarkTheme.ts @@ -0,0 +1,213 @@ +import type { ThemeTypes } from '@/types/themeTypes/ThemeType'; + +const DARK_BLUE_THEME: ThemeTypes = { + name: 'DARK_BLUE_THEME', + dark: true, + variables: { + 'border-color': '#333F55', + 'border-opacity': 1 + }, + colors: { + primary: '#635BFF', + secondary: '#14E9E2', + info: '#3CACC8', + success: '#13DEB9', + warning: '#FFAE1F', + error: '#ff6692', + lightprimary: '#29305F', + lightsecondary: '#194D59', + lightsuccess: '#1B3C48', + lighterror: '#4B313D', + lightinfo: '#274A60', + lightwarning: '#4D3A2A', + textPrimary: '#EAEFF4', + textSecondary: '#7C8FAC', + borderColor: '#333F55', + containerBg: '#1A2537', + background: '#1F2A3D', + hoverColor: '#333f55', + surface: '#1a2537', + grey100: '#333F55', + grey200: '#465670', + light: '#1F2A3D', + muted: '#babfc3', + darkgray: '#404A5A' + } +}; + +const DARK_AQUA_THEME: ThemeTypes = { + name: 'DARK_AQUA_THEME', + dark: true, + variables: { + 'border-color': '#333F55', + 'border-opacity': 1 + }, + colors: { + primary: '#0074BA', + secondary: '#47D7BC', + info: '#3CACC8', + success: '#13DEB9', + warning: '#FFAE1F', + error: '#ff6692', + lightprimary: '#103247', + lightsecondary: '#0C4339', + lightsuccess: '#1B3C48', + lighterror: '#4B313D', + lightinfo: '#274A60', + lightwarning: '#4D3A2A', + textPrimary: '#EAEFF4', + textSecondary: '#7C8FAC', + borderColor: '#333F55', + containerBg: '#1A2537', + background: '#1F2A3D', + hoverColor: '#333f55', + surface: '#1a2537', + grey100: '#333F55', + grey200: '#465670', + light: '#1F2A3D', + muted: '#babfc3', + darkgray: '#404A5A' + } +}; + +const DARK_PURPLE_THEME: ThemeTypes = { + name: 'DARK_PURPLE_THEME', + dark: true, + variables: { + 'border-color': '#333F55', + 'border-opacity': 1 + }, + colors: { + primary: '#763EBD', + secondary: '#95CFD5', + info: '#3CACC8', + success: '#13DEB9', + warning: '#FFAE1F', + error: '#ff6692', + lightprimary: '#26153C', + lightsecondary: '#09454B', + lightsuccess: '#1B3C48', + lighterror: '#4B313D', + lightinfo: '#274A60', + lightwarning: '#4D3A2A', + textPrimary: '#EAEFF4', + textSecondary: '#7C8FAC', + borderColor: '#333F55', + containerBg: '#1A2537', + background: '#1F2A3D', + hoverColor: '#333f55', + surface: '#1a2537', + grey100: '#333F55', + grey200: '#465670', + light: '#1F2A3D', + muted: '#babfc3', + darkgray: '#404A5A' + } +}; + +const DARK_GREEN_THEME: ThemeTypes = { + name: 'DARK_GREEN_THEME', + dark: true, + variables: { + 'border-color': '#333F55', + 'border-opacity': 1 + }, + colors: { + primary: '#0A7EA4', + secondary: '#CCDA4E', + info: '#3CACC8', + success: '#13DEB9', + warning: '#FFAE1F', + error: '#ff6692', + lightprimary: '#05313F', + lightsecondary: '#282917', + lightsuccess: '#1B3C48', + lighterror: '#4B313D', + lightinfo: '#274A60', + lightwarning: '#4D3A2A', + textPrimary: '#EAEFF4', + textSecondary: '#7C8FAC', + borderColor: '#333F55', + containerBg: '#1A2537', + background: '#1F2A3D', + hoverColor: '#333f55', + surface: '#1a2537', + grey100: '#333F55', + grey200: '#465670', + light: '#1F2A3D', + muted: '#babfc3', + darkgray: '#404A5A' + } +}; + +const DARK_CYAN_THEME: ThemeTypes = { + name: 'DARK_CYAN_THEME', + dark: true, + variables: { + 'border-color': '#333F55', + 'border-opacity': 1 + }, + colors: { + primary: '#01C0C8', + secondary: '#FB9678', + info: '#3CACC8', + success: '#13DEB9', + warning: '#FFAE1F', + error: '#ff6692', + lightprimary: '#003638', + lightsecondary: '#40241C', + lightsuccess: '#1B3C48', + lighterror: '#4B313D', + lightinfo: '#274A60', + lightwarning: '#4D3A2A', + textPrimary: '#EAEFF4', + textSecondary: '#7C8FAC', + borderColor: '#333F55', + containerBg: '#1A2537', + background: '#1F2A3D', + hoverColor: '#333f55', + surface: '#1a2537', + grey100: '#333F55', + grey200: '#465670', + light: '#1F2A3D', + muted: '#babfc3', + darkgray: '#404A5A' + } +}; + +const DARK_ORANGE_THEME: ThemeTypes = { + name: 'DARK_ORANGE_THEME', + dark: true, + variables: { + 'border-color': '#333F55', + 'border-opacity': 1 + }, + colors: { + primary: '#FA896B', + secondary: '#0074BA', + info: '#3CACC8', + success: '#13DEB9', + warning: '#FFAE1F', + error: '#ff6692', + lightprimary: '#402E32', + lightsecondary: '#082E45', + lightsuccess: '#1B3C48', + lighterror: '#4B313D', + lightinfo: '#274A60', + lightwarning: '#4D3A2A', + textPrimary: '#EAEFF4', + textSecondary: '#7C8FAC', + borderColor: '#333F55', + containerBg: '#1A2537', + background: '#1F2A3D', + hoverColor: '#333f55', + surface: '#1a2537', + grey100: '#333F55', + grey200: '#465670', + light: '#1F2A3D', + muted: '#babfc3', + darkgray: '#404A5A' + } +}; + +export { DARK_BLUE_THEME, DARK_AQUA_THEME, DARK_ORANGE_THEME, DARK_PURPLE_THEME, DARK_GREEN_THEME, DARK_CYAN_THEME }; diff --git a/theme/LightTheme.ts b/theme/LightTheme.ts new file mode 100755 index 0000000..bb754fa --- /dev/null +++ b/theme/LightTheme.ts @@ -0,0 +1,213 @@ +import type { ThemeTypes } from '@/types/themeTypes/ThemeType'; + +const BLUE_THEME: ThemeTypes = { + name: 'BLUE_THEME', + dark: false, + variables: { + 'border-color': '#e0e6eb', + 'border-opacity': 1 + }, + colors: { + primary: '#635BFF', + secondary: '#16CDC7', + info: '#46caeb', + success: '#36c76c', + warning: '#ffd648', + error: '#ff6692', + lightprimary: '#DDDBFF', + lightsecondary: '#A6F7F5', + lightsuccess: '#E1F7E9', + lighterror: '#FFCCDB', + lightinfo: '#DAF4FB', + lightwarning: '#FFF9E5', + textPrimary: '#29343D', + textSecondary: '#98A4AE', + borderColor: '#e0e6eb', + containerBg: '#ffffff', + background: '#F4F7FB', + hoverColor: '#f6f9fc', + surface: '#fff', + grey100: '#F6F7F9', + grey200: '#29343d', + darkgray: '#0a2540', + light: '#EFF4FA', + muted:'#526b7a' + } +}; + +const AQUA_THEME: ThemeTypes = { + name: 'AQUA_THEME', + dark: false, + variables: { + 'border-color': '#e0e6eb', + 'border-opacity': 1 + }, + colors: { + primary: '#0074BA', + secondary: '#47D7BC', + info: '#539BFF', + success: '#13DEB9', + warning: '#FFAE1F', + error: '#ff6692', + lightprimary: '#EFF9FF', + lightsecondary: '#EDFBF7', + lightsuccess: '#E6FFFA', + lighterror: '#FDEDE8', + lightinfo: '#EBF3FE', + lightwarning: '#FEF5E5', + textPrimary: '#29343D', + textSecondary: '#98A4AE', + borderColor: '#e5eaef', + containerBg: '#ffffff', + background: '#F4F7FB', + hoverColor: '#f6f9fc', + surface: '#fff', + grey100: '#F6F7F9', + grey200: '#29343d', + darkgray: '#0a2540', + light: '#EFF4FA', + muted:'#526b7a' + } +}; + +const PURPLE_THEME: ThemeTypes = { + name: 'PURPLE_THEME', + dark: false, + variables: { + 'border-color': '#e0e6eb', + 'border-opacity': 1 + }, + colors: { + primary: '#763EBD', + secondary: '#95CFD5', + info: '#539BFF', + success: '#13DEB9', + warning: '#FFAE1F', + error: '#ff6692', + lightprimary: '#F2ECF9', + lightsecondary: '#EDF8FA', + lightsuccess: '#E6FFFA', + lighterror: '#FDEDE8', + lightinfo: '#EBF3FE', + lightwarning: '#FEF5E5', + textPrimary: '#29343D', + textSecondary: '#98A4AE', + borderColor: '#e5eaef', + containerBg: '#ffffff', + background: '#F4F7FB', + hoverColor: '#f6f9fc', + surface: '#fff', + grey100: '#F6F7F9', + grey200: '#29343d', + darkgray: '#0a2540', + light: '#EFF4FA', + muted:'#526b7a' + } +}; + +const GREEN_THEME: ThemeTypes = { + name: 'GREEN_THEME', + dark: false, + variables: { + 'border-color': '#e0e6eb', + 'border-opacity': 1 + }, + colors: { + primary: '#0A7EA4', + secondary: '#CCDA4E', + info: '#539BFF', + success: '#13DEB9', + warning: '#FFAE1F', + error: '#ff6692', + lightprimary: '#F4F9FB', + lightsecondary: '#FAFBEF', + lightsuccess: '#E6FFFA', + lighterror: '#FDEDE8', + lightinfo: '#EBF3FE', + lightwarning: '#FEF5E5', + textPrimary: '#29343D', + textSecondary: '#98A4AE', + borderColor: '#e5eaef', + containerBg: '#ffffff', + background: '#F4F7FB', + hoverColor: '#f6f9fc', + surface: '#fff', + grey100: '#F6F7F9', + grey200: '#29343d', + darkgray: '#0a2540', + light: '#EFF4FA', + muted:'#526b7a' + } +}; + +const CYAN_THEME: ThemeTypes = { + name: 'CYAN_THEME', + dark: false, + variables: { + 'border-color': '#e0e6eb', + 'border-opacity': 1 + }, + colors: { + primary: '#01C0C8', + secondary: '#FB9678', + info: '#539BFF', + success: '#13DEB9', + warning: '#FFAE1F', + error: '#ff6692', + lightprimary: '#EBF9FA', + lightsecondary: '#FFF5F2', + lightsuccess: '#E6FFFA', + lighterror: '#FDEDE8', + lightinfo: '#EBF3FE', + lightwarning: '#FEF5E5', + textPrimary: '#29343D', + textSecondary: '#98A4AE', + borderColor: '#e5eaef', + containerBg: '#ffffff', + background: '#F4F7FB', + hoverColor: '#f6f9fc', + surface: '#fff', + grey100: '#F6F7F9', + grey200: '#29343d', + darkgray: '#0a2540', + light: '#EFF4FA', + muted:'#526b7a' + } +}; + +const ORANGE_THEME: ThemeTypes = { + name: 'ORANGE_THEME', + dark: false, + variables: { + 'border-color': '#e0e6eb', + 'border-opacity': 1 + }, + colors: { + primary: '#FA896B', + secondary: '#0074BA', + info: '#539BFF', + success: '#13DEB9', + warning: '#FFAE1F', + error: '#ff6692', + lightprimary: '#FBF2EF', + lightsecondary: '#EFF9FF', + lightsuccess: '#E6FFFA', + lighterror: '#FDEDE8', + lightinfo: '#EBF3FE', + lightwarning: '#FEF5E5', + textPrimary: '#29343D', + textSecondary: '#98A4AE', + borderColor: '#e5eaef', + containerBg: '#ffffff', + background: '#F4F7FB', + hoverColor: '#f6f9fc', + surface: '#fff', + grey100: '#F6F7F9', + grey200: '#29343d', + darkgray: '#0a2540', + light: '#EFF4FA', + muted:'#526b7a' + } +}; + +export { BLUE_THEME, AQUA_THEME, ORANGE_THEME, PURPLE_THEME, GREEN_THEME, CYAN_THEME }; diff --git a/tsconfig.json b/tsconfig.json new file mode 100755 index 0000000..a746f2a --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,4 @@ +{ + // https://nuxt.com/docs/guide/concepts/typescript + "extends": "./.nuxt/tsconfig.json" +} diff --git a/types/auth.ts b/types/auth.ts new file mode 100755 index 0000000..f7a32ba --- /dev/null +++ b/types/auth.ts @@ -0,0 +1,21 @@ +// types/auth.ts +export interface ExtendedUser { + id: string; + name: string; + email: string; + preferred_username: string; + email_verified: boolean; + roles: string[]; + client_roles: string[]; + permissions?: string[]; + given_name?: string; + family_name?: string; + username?: string; +} + +export interface ExtendedSession { + user: ExtendedUser; + accessToken: string; + refreshToken: string; + expiresAt: number; +} diff --git a/types/dashboard/index.ts b/types/dashboard/index.ts new file mode 100755 index 0000000..c555603 --- /dev/null +++ b/types/dashboard/index.ts @@ -0,0 +1,37 @@ +/*Revenue Projects*/ +type RevenueProjects={ + img: string; + leadname: string; + designation: string; + projectname: string; + statuscolor: string; + statustext: string; + money: string; +}; + +// Daily Activities +type DailyActivities = { + title: string; + subtitle: string; + textcolor: string; + boldtext: boolean; + line: boolean; + link: string; + url: string; +}; + +/*Card types*/ +type BlogCards = { + avatar: string; + coveravatar: string; + read: string; + title: string; + link: string; + category: string; + name: string; + view: string; + comments: string; + time: string; +}; + +export type{RevenueProjects,DailyActivities,BlogCards} \ No newline at end of file diff --git a/types/fhir/humanName.ts b/types/fhir/humanName.ts new file mode 100644 index 0000000..7cdf126 --- /dev/null +++ b/types/fhir/humanName.ts @@ -0,0 +1,64 @@ +// types/fhir.ts + +export interface FhirHumanName { + use?: + | "usual" + | "official" + | "temp" + | "nickname" + | "anonymous" + | "old" + | "maiden"; + text: string; + family?: string; + given?: string[]; + prefix?: string[]; + suffix?: string[]; + period?: { + start?: string; + end?: string; + }; +} + +export interface FhirIdentifier { + use?: "usual" | "official" | "temp" | "secondary" | "old"; + type?: { + coding?: Array<{ + system?: string; + code?: string; + display?: string; + }>; + }; + system?: string; + value?: string; + period?: { + start?: string; + end?: string; + }; +} + +export interface FhirPatient { + resourceType: "Patient"; + id?: string; + identifier?: FhirIdentifier[]; + active?: boolean; + name?: FhirHumanName[]; + telecom?: Array<{ + system?: "phone" | "fax" | "email" | "pager" | "url" | "sms" | "other"; + value?: string; + use?: "home" | "work" | "temp" | "old" | "mobile"; + }>; + gender?: "male" | "female" | "other" | "unknown"; + birthDate?: string; + address?: Array<{ + use?: "home" | "work" | "temp" | "old" | "billing"; + type?: "postal" | "physical" | "both"; + text?: string; + line?: string[]; + city?: string; + district?: string; + state?: string; + postalCode?: string; + country?: string; + }>; +} diff --git a/types/menu.ts b/types/menu.ts new file mode 100644 index 0000000..41a0140 --- /dev/null +++ b/types/menu.ts @@ -0,0 +1,27 @@ +export interface MenuItem { + id: string + title: string + url: string + icon: string + parentId?: string + children?: MenuItem[] + order: number + isActive: boolean + reference?: string + createdAt?: string + updatedAt?: string +} + +export interface MenuForm { + titleMenu: string + sideMenu: string + nameMenu: string + linkUrlMenu: string + iconMenu: string +} + +export interface MenuData { + menus: MenuItem[] + references: string[] + menuOptions: string[] +} diff --git a/types/roles.ts b/types/roles.ts new file mode 100644 index 0000000..6f6fc39 --- /dev/null +++ b/types/roles.ts @@ -0,0 +1,264 @@ +// types/simrs-roles.ts + +interface Roles { + nama_role: string; + deskripsi: string; + tanggung_jawab: string[]; + } + + interface KonfigurasiKeamanan { + autentikasi: string; + enkripsi: string; + audit_trail: boolean; + session_timeout: number; + } + + interface KonfigurasiSistem { + level_akses: string[]; + modul_utama: string[]; + keamanan: KonfigurasiKeamanan; + } + + interface SIMRSRoles { + role_administratif: Roles[]; + role_klinis: Roles[]; + role_penunjang_medis: Roles[]; + role_manajemen: Roles[]; + role_teknis: Roles[]; + konfigurasi_sistem: KonfigurasiSistem; + } + + // Enum untuk level akses + enum LevelAkses { + SUPER_ADMIN = "Super Admin", + ADMIN_DEPARTEMEN = "Admin Departemen", + USER_KLINIS = "User Klinis", + USER_ADMINISTRATIF = "User Administratif", + GUEST_READ_ONLY = "Guest/Read Only" + } + + // Enum untuk modul utama + enum ModulUtama { + PENDAFTARAN_PASIEN = "Pendaftaran Pasien", + REKAM_MEDIS_ELEKTRONIK = "Rekam Medis Elektronik", + FARMASI = "Farmasi", + LABORATORIUM = "Laboratorium", + RADIOLOGI = "Radiologi", + KEUANGAN = "Keuangan", + INVENTORY = "Inventory", + REPORTING = "Reporting" + } + + // Data konstanta untuk SIMRS roles + const simrsRoles: SIMRSRoles = { + role_administratif: [ + { + nama_role: "Administrator Pendaftaran", + deskripsi: "Mengelola proses pendaftaran pasien dan penjadwalan dalam sistem SIMRS", + tanggung_jawab: [ + "Mengelola pendaftaran pasien dan penjadwalan dokter", + "Mengatur penjadwalan operasi atau pemeriksaan", + "Mengelola antrian dan mengurangi waktu tunggu pasien", + "Memastikan data pasien terinput dengan benar" + ] + }, + { + nama_role: "Staff Administrasi Keuangan", + deskripsi: "Mengelola aspek keuangan dan penagihan dalam sistem rumah sakit", + tanggung_jawab: [ + "Mengelola penagihan dan klaim asuransi", + "Mengintegrasikan sistem dengan BPJS Kesehatan", + "Mengelola administrasi keuangan rumah sakit", + "Memproses pembayaran dan verifikasi biaya" + ] + }, + { + nama_role: "Petugas Rekam Medis", + deskripsi: "Mengelola dan memelihara rekam medis elektronik pasien", + tanggung_jawab: [ + "Mengelola Electronic Medical Records (EMR)", + "Memastikan dokumentasi pasien yang akurat", + "Menjaga keamanan dan kerahasiaan data pasien", + "Melakukan backup dan archiving data medis" + ] + } + ], + role_klinis: [ + { + nama_role: "Dokter/Tenaga Medis", + deskripsi: "Profesional medis yang menggunakan sistem untuk diagnosis dan pengobatan", + tanggung_jawab: [ + "Mengakses riwayat medis, alergi, dan catatan pengobatan pasien", + "Menggunakan modul pendukung pengambilan keputusan klinis", + "Melakukan pemantauan pasien secara berkelanjutan", + "Menginput diagnosis dan resep obat ke sistem" + ] + }, + { + nama_role: "Perawat", + deskripsi: "Tenaga keperawatan yang melakukan perawatan langsung kepada pasien", + tanggung_jawab: [ + "Mencatat parameter vital dan perkembangan pasien", + "Mengakses informasi terintegrasi dari berbagai departemen", + "Melakukan pemantauan pasien rawat inap", + "Mengelola jadwal pemberian obat dan tindakan keperawatan" + ] + }, + { + nama_role: "Apoteker/Staff Farmasi", + deskripsi: "Mengelola obat-obatan dan memastikan keamanan farmasi", + tanggung_jawab: [ + "Mengelola persediaan obat dan bahan medis", + "Memastikan ketersediaan obat yang sesuai", + "Mencegah risiko kekurangan atau kelebihan stok", + "Melakukan verifikasi resep dan dispensing obat" + ] + } + ], + role_penunjang_medis: [ + { + nama_role: "Petugas Laboratorium", + deskripsi: "Mengelola pemeriksaan laboratorium dan hasilnya", + tanggung_jawab: [ + "Menginput hasil tes laboratorium ke sistem", + "Mengintegrasikan data laboratorium dengan rekam medis", + "Melakukan quality control hasil laboratorium", + "Mengelola sampel dan alat laboratorium" + ] + }, + { + nama_role: "Petugas Radiologi", + deskripsi: "Mengelola pemeriksaan radiologi dan imaging", + tanggung_jawab: [ + "Mengelola hasil pemeriksaan radiologi", + "Mengintegrasikan data radiologi dengan sistem", + "Melakukan penjadwalan pemeriksaan radiologi", + "Memastikan kualitas gambar dan interpretasi" + ] + } + ], + role_manajemen: [ + { + nama_role: "Manajer Rumah Sakit", + deskripsi: "Mengelola operasional rumah sakit secara keseluruhan", + tanggung_jawab: [ + "Mengakses laporan dan analisis kinerja", + "Melakukan monitoring operasional rumah sakit", + "Menggunakan modul prediktif untuk perencanaan sumber daya", + "Membuat keputusan strategis berdasarkan data sistem" + ] + }, + { + nama_role: "Supervisor Departemen", + deskripsi: "Mengawasi dan mengoordinasikan departemen spesifik", + tanggung_jawab: [ + "Mengelola koordinasi antar-departemen", + "Memastikan integrasi berbagai aspek operasional", + "Monitoring kinerja staff departemen", + "Melakukan evaluasi dan pelaporan departemen" + ] + } + ], + role_teknis: [ + { + nama_role: "Administrator Sistem SIMRS", + deskripsi: "Mengelola infrastruktur dan keamanan sistem SIMRS", + tanggung_jawab: [ + "Mengelola keamanan sistem dan data terenkripsi", + "Melakukan maintenance dan troubleshooting sistem", + "Menangani masalah infrastruktur teknologi", + "Mengatur hak akses user dan permission" + ] + }, + { + nama_role: "Staff IT Support", + deskripsi: "Memberikan dukungan teknis kepada pengguna sistem", + tanggung_jawab: [ + "Memberikan pelatihan teknologi kepada pengguna", + "Menangani masalah teknis harian", + "Melakukan monitoring sistem dan evaluasi", + "Membantu troubleshooting masalah user" + ] + } + ], + konfigurasi_sistem: { + level_akses: [ + LevelAkses.SUPER_ADMIN, + LevelAkses.ADMIN_DEPARTEMEN, + LevelAkses.USER_KLINIS, + LevelAkses.USER_ADMINISTRATIF, + LevelAkses.GUEST_READ_ONLY + ], + modul_utama: [ + ModulUtama.PENDAFTARAN_PASIEN, + ModulUtama.REKAM_MEDIS_ELEKTRONIK, + ModulUtama.FARMASI, + ModulUtama.LABORATORIUM, + ModulUtama.RADIOLOGI, + ModulUtama.KEUANGAN, + ModulUtama.INVENTORY, + ModulUtama.REPORTING + ], + keamanan: { + autentikasi: "Multi-factor Authentication", + enkripsi: "AES-256", + audit_trail: true, + session_timeout: 30 + } + } + }; + + // Utility functions + class SIMRSRoleManager { + private roles: SIMRSRoles; + + constructor(roles: SIMRSRoles) { + this.roles = roles; + } + + // Mendapatkan semua role berdasarkan kategori + getRolesByCategory(category: keyof Omit): Roles[] { + return this.roles[category]; + } + + // Mencari role berdasarkan nama + findRoleByName(name: string): Roles | undefined { + const allCategories = [ + ...this.roles.role_administratif, + ...this.roles.role_klinis, + ...this.roles.role_penunjang_medis, + ...this.roles.role_manajemen, + ...this.roles.role_teknis + ]; + + return allCategories.find(role => role.nama_role === name); + } + + // Mendapatkan konfigurasi keamanan + getSecurityConfig(): KonfigurasiKeamanan { + return this.roles.konfigurasi_sistem.keamanan; + } + + // Mendapatkan semua level akses + getAccessLevels(): string[] { + return this.roles.konfigurasi_sistem.level_akses; + } + } + +export type { + Roles, + KonfigurasiKeamanan, + KonfigurasiSistem, + SIMRSRoles, +}; + +export { + LevelAkses, + ModulUtama, + SIMRSRoleManager, + simrsRoles as default, +}; + + // Contoh penggunaan + export const roleManager = new SIMRSRoleManager(simrsRoles); + \ No newline at end of file diff --git a/types/themeTypes/ThemeType.ts b/types/themeTypes/ThemeType.ts new file mode 100755 index 0000000..7658c30 --- /dev/null +++ b/types/themeTypes/ThemeType.ts @@ -0,0 +1,31 @@ +export type ThemeTypes = { + name: string; + dark: boolean; + variables?: object; + colors: { + primary?: string; + secondary?: string; + info?: string; + success?: string; + warning?: string; + error?: string; + lightprimary?: string; + lightsecondary?: string; + lightsuccess?: string; + lighterror?: string; + lightinfo?: string; + lightwarning?: string; + textPrimary?: string; + textSecondary?: string; + borderColor?: string; + hoverColor?: string; + containerBg?: string; + background?: string; + surface?: string; + grey100?: string; + grey200?: string; + darkgray?: string; + light?: string; + muted?: string; + }; +}; diff --git a/utils/UpdateColors.ts b/utils/UpdateColors.ts new file mode 100755 index 0000000..586f374 --- /dev/null +++ b/utils/UpdateColors.ts @@ -0,0 +1,144 @@ +import { computed } from 'vue'; +import * as themeColors from '@/theme/LightTheme'; +import * as DarkThemeColors from '@/theme/DarkTheme'; +import { useCustomizerStore } from '@/stores/customizer'; + +const custmizer = useCustomizerStore(); + +const getPrimary = computed(() => { + if (custmizer.actTheme === 'AQUA_THEME') { + return themeColors.AQUA_THEME.colors.primary; + } else if (custmizer.actTheme === 'PURPLE_THEME') { + return themeColors.PURPLE_THEME.colors.primary; + } else if (custmizer.actTheme === 'GREEN_THEME') { + return themeColors.GREEN_THEME.colors.primary; + } else if (custmizer.actTheme === 'CYAN_THEME') { + return themeColors.CYAN_THEME.colors.primary; + } else if (custmizer.actTheme === 'ORANGE_THEME') { + return themeColors.ORANGE_THEME.colors.primary; + } else if (custmizer.actTheme === 'DARK_AQUA_THEME') { + return DarkThemeColors.DARK_AQUA_THEME.colors.primary; + } else if (custmizer.actTheme === 'DARK_PURPLE_THEME') { + return DarkThemeColors.DARK_PURPLE_THEME.colors.primary; + } else if (custmizer.actTheme === 'DARK_GREEN_THEME') { + return DarkThemeColors.DARK_GREEN_THEME.colors.primary; + } else if (custmizer.actTheme === 'DARK_CYAN_THEME') { + return DarkThemeColors.DARK_CYAN_THEME.colors.primary; + } else if (custmizer.actTheme === 'DARK_ORANGE_THEME') { + return DarkThemeColors.DARK_ORANGE_THEME.colors.primary; + } else if (custmizer.actTheme === 'DARK_BLUE_THEME') { + return DarkThemeColors.DARK_BLUE_THEME.colors.primary; + } else { + return themeColors.BLUE_THEME.colors.primary; + } +}); + +const getLightPrimary = computed(() => { + if (custmizer.actTheme === 'AQUA_THEME') { + return themeColors.AQUA_THEME.colors.lightprimary; + } else if (custmizer.actTheme === 'PURPLE_THEME') { + return themeColors.PURPLE_THEME.colors.lightprimary; + } else if (custmizer.actTheme === 'GREEN_THEME') { + return themeColors.GREEN_THEME.colors.lightprimary; + } else if (custmizer.actTheme === 'CYAN_THEME') { + return themeColors.CYAN_THEME.colors.lightprimary; + } else if (custmizer.actTheme === 'ORANGE_THEME') { + return themeColors.ORANGE_THEME.colors.lightprimary; + } + if (custmizer.actTheme === 'DARK_AQUA_THEME') { + return DarkThemeColors.DARK_AQUA_THEME.colors.lightprimary; + } else if (custmizer.actTheme === 'DARK_PURPLE_THEME') { + return DarkThemeColors.DARK_PURPLE_THEME.colors.lightprimary; + } else if (custmizer.actTheme === 'DARK_GREEN_THEME') { + return DarkThemeColors.DARK_GREEN_THEME.colors.lightprimary; + } else if (custmizer.actTheme === 'DARK_CYAN_THEME') { + return DarkThemeColors.DARK_CYAN_THEME.colors.lightprimary; + } else if (custmizer.actTheme === 'DARK_ORANGE_THEME') { + return DarkThemeColors.DARK_ORANGE_THEME.colors.lightprimary; + } else if (custmizer.actTheme === 'DARK_BLUE_THEME') { + return DarkThemeColors.DARK_BLUE_THEME.colors.lightprimary; + } else { + return themeColors.BLUE_THEME.colors.lightprimary; + } +}); + +const getSecondary = computed(() => { + if (custmizer.actTheme === 'AQUA_THEME') { + return themeColors.AQUA_THEME.colors.secondary; + } else if (custmizer.actTheme === 'PURPLE_THEME') { + return themeColors.PURPLE_THEME.colors.secondary; + } else if (custmizer.actTheme === 'GREEN_THEME') { + return themeColors.GREEN_THEME.colors.secondary; + } else if (custmizer.actTheme === 'CYAN_THEME') { + return themeColors.CYAN_THEME.colors.secondary; + } else if (custmizer.actTheme === 'ORANGE_THEME') { + return themeColors.ORANGE_THEME.colors.secondary; + } else if (custmizer.actTheme === 'DARK_AQUA_THEME') { + return DarkThemeColors.DARK_AQUA_THEME.colors.secondary; + } else if (custmizer.actTheme === 'DARK_PURPLE_THEME') { + return DarkThemeColors.DARK_PURPLE_THEME.colors.secondary; + } else if (custmizer.actTheme === 'DARK_GREEN_THEME') { + return DarkThemeColors.DARK_GREEN_THEME.colors.secondary; + } else if (custmizer.actTheme === 'DARK_CYAN_THEME') { + return DarkThemeColors.DARK_CYAN_THEME.colors.secondary; + } else if (custmizer.actTheme === 'DARK_ORANGE_THEME') { + return DarkThemeColors.DARK_ORANGE_THEME.colors.secondary; + } else if (custmizer.actTheme === 'DARK_BLUE_THEME') { + return DarkThemeColors.DARK_BLUE_THEME.colors.secondary; + } else { + return themeColors.BLUE_THEME.colors.secondary; + } +}); + +const getLightSecondary = computed(() => { + if (custmizer.actTheme === 'AQUA_THEME') { + return themeColors.AQUA_THEME.colors.lightsecondary; + } else if (custmizer.actTheme === 'PURPLE_THEME') { + return themeColors.PURPLE_THEME.colors.lightsecondary; + } else if (custmizer.actTheme === 'GREEN_THEME') { + return themeColors.GREEN_THEME.colors.lightsecondary; + } else if (custmizer.actTheme === 'CYAN_THEME') { + return themeColors.CYAN_THEME.colors.lightsecondary; + } else if (custmizer.actTheme === 'ORANGE_THEME') { + return themeColors.ORANGE_THEME.colors.lightsecondary; + } if (custmizer.actTheme === 'DARK_AQUA_THEME') { + return DarkThemeColors.DARK_AQUA_THEME.colors.lightsecondary; + } else if (custmizer.actTheme === 'DARK_PURPLE_THEME') { + return DarkThemeColors.DARK_PURPLE_THEME.colors.lightsecondary; + } else if (custmizer.actTheme === 'DARK_GREEN_THEME') { + return DarkThemeColors.DARK_GREEN_THEME.colors.lightsecondary; + } else if (custmizer.actTheme === 'DARK_CYAN_THEME') { + return DarkThemeColors.DARK_CYAN_THEME.colors.lightsecondary; + } else if (custmizer.actTheme === 'DARK_ORANGE_THEME') { + return DarkThemeColors.DARK_ORANGE_THEME.colors.lightsecondary; + } else if (custmizer.actTheme === 'DARK_BLUE_THEME') { + return DarkThemeColors.DARK_BLUE_THEME.colors.lightsecondary; + } else { + return themeColors.BLUE_THEME.colors.lightsecondary; + } +}); + +const getLight100 = computed(() => { + if ( + custmizer.actTheme === 'AQUA_THEME' || + custmizer.actTheme === 'PURPLE_THEME' || + custmizer.actTheme === 'GREEN_THEME' || + custmizer.actTheme === 'CYAN_THEME' || + custmizer.actTheme === 'ORANGE_THEME' + ) { + return themeColors.AQUA_THEME.colors.grey100; + } else if ( + custmizer.actTheme === 'DARK_AQUA_THEME' || + custmizer.actTheme === 'DARK_PURPLE_THEME' || + custmizer.actTheme === 'DARK_GREEN_THEME' || + custmizer.actTheme === 'DARK_CYAN_THEME' || + custmizer.actTheme === 'DARK_ORANGE_THEME' || + custmizer.actTheme === 'DARK_BLUE_THEME' + ) { + return DarkThemeColors.DARK_AQUA_THEME.colors.grey100; + } else { + return themeColors.BLUE_THEME.colors.grey100; + } +}); + +export { getPrimary, getSecondary, getLightPrimary, getLightSecondary, getLight100 }; diff --git a/utils/axios.ts b/utils/axios.ts new file mode 100755 index 0000000..06079fb --- /dev/null +++ b/utils/axios.ts @@ -0,0 +1,16 @@ +/** + * axios setup to use mock service + */ + +import axios from "axios"; + +const axiosServices = axios.create(); + +// interceptor for http +axiosServices.interceptors.response.use( + (response) => response, + (error) => + Promise.reject((error.response && error.response.data) || "Wrong Services") +); + +export default axiosServices; diff --git a/utils/locales/ar.json b/utils/locales/ar.json new file mode 100755 index 0000000..ad21f90 --- /dev/null +++ b/utils/locales/ar.json @@ -0,0 +1,136 @@ +{ + "Dashboard1": "لوحة القيادة1", + "Dashboard2": "لوحة القيادة2", + "Dashboard3": "لوحة القيادة3", + "ECommerce": "التجارة الإلكترونية", + "Blog": "مدونة", + "Blog Posts": "منشورات المدونة", + "Blog Details": "تفاصيل المدونة", + "Kanban": "لوحه اعلانات", + "UI Elements": "عناصر واجهة المستخدم", + "Header Table": "جدول الرأس", + "Selection Table": "جدول الاختيار", + "Pagination Table": "جدول ترقيم الصفحات", + "Filtering Table": "جدول التصفية", + "Grouping Table": "جدول التجميع", + "Table Slots": "فتحات الجدول", + "CRUD Table": "الجدول الخام", + "Sorting Table": "جدول الفرز", + "Boxed Forgot Pwd": "محاصر نسيت الأشخاص ذوي الإعاقة", + "Side Forgot Pwd": "نسيت الجانب الأشخاص ذويالإعاقة ", + "Tabler Icons": "أيقونات الجدول", + "Solar Icons": "أيقونات شمسية", + "Getting Started": "ابدء", + "Applications": "التطبيقات", + "Form Options": "خيارات النموذج", + "Table Variations": "اختلافات الجدول", + "Charts Selection": "اختيار الرسوم البيانية", + "Widgets": "الحاجيات", + "Cards": "بطاقات", + "Banners": "لافتات", + "Charts": "الرسوم البيانية", + + "Contact": "اتصال", + "Shop": "محل", + "List": "قائمة", + "Checkout": "الدفع", + "Chats": "الدردشات", + "User Profile": "ملف تعريف المستخدمين", + "Notes": "ملحوظات", + "Calendar": "تقويم", + "Profile": "حساب تعريفي", + "Followers": "متابعون", + "Friends": "أصدقاء", + "Gallery": "صالة عرض", + "Email": "بريد إلكتروني", + "Pricing": "التسعير", + "Account Setting": "إعدادات الحساب", + "FAQ": "التعليمات", + "Widget": "القطعة", + "Landing Page": "الصفحة المقصودة", + "Form Elements": "عناصر النموذج", + "Autocomplete": "الإكمال التلقائي", + "Combobox": "صندوق التحرير", + "Button": "زر", + "Checkbox": "خانة اختيار", + "Custom Inputs": "المدخلات المخصصة", + "File Inputs": "مدخلات الملف", + "Radio": "مذياع", + "Date Time": "تاريخ الوقت", + "Select": "يختار", + "Slider": "المنزلق", + "Switch": "يُحوّل", + "Form Layout": "تخطيط النموذج", + "Form Horizontal": "شكل أفقي", + "Form Vertical": "شكل عمودي", + "Form Custom": "نموذج مخصص", + "Form Validation": "التحقق من صحة النموذج", + "Editor": "محرر", + "Basic Table": "الجدول الأساسي", + "Dark Table": "طاولة مظلمة", + "Density Table": "جدول الكثافة", + "Fixed Header Table": "جدول الرأس الثابت", + "Height Table": "جدول الارتفاع", + "UI Components": "مكونات واجهة المستخدم", + "Alert": "يُحذًِر", + "Accordion": "الأكورديون", + "Avatar": "الصورة الرمزية", + "Chip": "رقاقة", + "Dialog": "حوار", + "Menus": "القوائم", + "Rating": "تقييم", + "Tabs": "نوافذ التبويب", + "Tooltip": "Tooltip", + "Typography": "الطباعة", + "Line": "خط", + "Gredient": "طفيف", + "Area": "منطقة", + "Candlestick": "شمعدان", + "Column": "عمود", + "Doughnut & Pie": "دونات وفطيرة", + "Radialbar & Radar": "راديال بار ورادار", + "Login": "تسجيل الدخول", + "Side Login": "تسجيل الدخول الجانبي", + "Boxed Login": "تسجيل الدخول محاصر", + "Register": "يسجل", + "Side Register": "تسجيل جانبي", + "Boxed Register": "سجل محاصر", + "Forgot Password": "هل نسيت كلمة السر", + "Side Forgot Password": "الجانب نسيت كلمة المرور", + "Boxed Forgot Password": "محاصر نسيت كلمة المرور", + "Two Steps": "خطوتين", + "Side Two Steps": "الجانب ذو خطوتين", + "Boxed Two Steps": "خطوتين محاصر", + "Error": "خطأ", + "Maintenance": "صيانة", + "Menu Level": "مستوى القائمة", + "Level 1": "المستوى 1", + "Level 2": "المستوي 2", + "Level 3": "مستوى 3", + "Disabled": "عاجز", + "Sub Caption": "التسمية التوضيحية الفرعية", + "Outlined": "موجز", + "External Link": "رابط خارجي", + "Editable Table": "جدول قابل للتحرير", + + "Front Pages": "الصفحات الأولى", + "Homepage": "الصفحة الرئيسية", + "About Us": "معلومات عنا", + "Contact Us": "اتصل بنا", + "Portfolio": "مَلَفّ", + + "Invoice":"فاتورة", + "Create":"يخلق", + "Edit":"يحرر", + "Tickets":"التذاكر", + "Details":"تفاصيل", + + "Banners Widgets":"لافتات الحاجيات", + "Cards Widgets":"الحاجيات بطاقات", + "Charts Widgets":"الحاجيات الرسوم البيانية", + "Gallery Lightbox":"المعرض المبسط", + "Search Results":"نتائج البحث", + "Social Contacts":"جهات الاتصال الاجتماعية", + "Treeview":"عرض الشجرة" + +} diff --git a/utils/locales/en.json b/utils/locales/en.json new file mode 100755 index 0000000..f66c9bd --- /dev/null +++ b/utils/locales/en.json @@ -0,0 +1,98 @@ +{ + "Dashboard1": "Dashboard1", + "Dashboard2": "Dashboard2", + "Dashboard3": "Dashboard3", + "Contact": "Contact", + "Blog Posts": "Blog Posts", + "Blog Detail": "Blog Detail", + "ECommerce": "ECommerce", + "Kanban":"Kanban", + "Shop": "Shop", + "List": "List", + "Checkout": "Checkout", + "Chats": "Chats", + "User Profile": "Users Profile", + "Ui Elements":"Ui Elements", + "Profile": "Profile", + "Followers": "Followers", + "Friends": "Friends", + "Gallery": "Gallery", + "Email": "Email", + "Pricing": "Pricing", + "Account Setting": "Account Setting", + "FAQ": "FAQ", + "Widget": "Widget", + "Landing Page": "Landing Page", + "Form Elements": "Form Elements", + "Autocomplete": "Autocomplete", + "Combobox": "Combobox", + "Button": "Button", + "Checkbox": "Checkbox", + "Custom Inputs": "Custom Inputs", + "File Inputs": "File Inputs", + "Radio": "Radio", + "Date Time": "Date Time", + "Select": "Select", + "Slider": "Slider", + "Switch": "Switch", + "Form Layout": "Form Layout", + "Form Horizontal": "Form Horizontal", + "Form Vertical": "Form Vertical", + "Form Custom": "Form Custom", + "Form Validation": "Form Validation", + "Editor": "Editor", + "Basic Table": "Basic Table", + "Dark Table": "Dark Table", + "Density Table": "Density Table", + "Fixed Header Table": "Fixed Header Table", + "Height Table": "Height Table", + "UI Components": "Ui Components", + "Alert": "Alert", + "Accordion": "Accordion", + "Avatar": "Avatar", + "Chip": "Chip", + "Dialog": "Dialog", + "Menus": "Menus", + "Rating": "Rating", + "Tabs": "Tabs", + "Tooltip": "Tooltip", + "Typography": "Typography", + "Line": "Line", + "Gredient": "Gredient", + "Area": "Area", + "Candlestick": "Candlestick", + "Column": "Column", + "Doughnut & Pie": "Doughnut & Pie", + "Radialbar & Radar": "Radialbar & Radar", + "Login": "Login", + "Side Login": "Side Login", + "Boxed Login": "Boxed Login", + "Register": "Register", + "Side Register": "Side Register", + "Boxed Register": "Boxed Register", + "Forgot Password": "Forgot Password", + "Side Forgot Pwd": "Side Forgot Pwd", + "Boxed Forgot Pwd": "Boxed Forgot Pwd", + "Two Steps": "Two Steps", + "Side Two Steps": "Side Two Steps", + "Boxed Two Steps": "Boxed Two Steps", + "Error": "Error", + "Maintenance": "Maintenance", + "Menu Level": "Menu level", + "Level 1": "Level 1", + "Level 2": "Level 2", + "Level 3": "Level 3", + "Disabled": "Disabled", + "Sub Caption": "Sub Caption", + "Outlined": "Outlined", + "External Link": "External Link", + "Editable Table":"Editable Table", + "Header Table":"Header Table", + "Selection Table":"Selection Table", + "Pagination Table":"Pagination Table", + "Filtering Table":"Filtering Table", + "Grouping Table":"Grouping Table", + "Table Slots":"Table Slots", + "CRUD Table":"CRUD Table" + +} diff --git a/utils/locales/fr.json b/utils/locales/fr.json new file mode 100755 index 0000000..80821ad --- /dev/null +++ b/utils/locales/fr.json @@ -0,0 +1,135 @@ +{ + "Dashboard1": "Tableau de bord1", + "Dashboard2": "Tableau de bord2", + "Dashboard3": "Tableau de bord3", + "ECommerce": "Commerce électronique", + "Blog": "Blog", + "Blog Posts": "Articles de blog", + "Blog Details": "Détails du blog", + "Kanban": "enseigne", + "UI Elements": "Éléments de l'interface utilisateur", + "Header Table": "Tableau d'en-tête", + "Selection Table": "Tableau de sélection", + "Pagination Table": "Tableau de pagination", + "Filtering Table": "Tableau de filtrage", + "Grouping Table": "Tableau de regroupement", + "Table Slots": "Emplacements de table", + "CRUD Table": "Tableau CRUD", + "Sorting Table": "Tableau de tri", + "Boxed Forgot Pwd": "Mot de passe oublié en boîte", + "Side Forgot Pwd": "Côté mot de passe oublié", + "Tabler Icons": "Tabler Icons", + "Solar Icons": "Icônes solaires", + "Getting Started": "Commencer", + "Applications": "Applications", + "Form Options": "Options de formulaire", + "Table Variations": "Variations des tableaux", + "Charts Selection": "Sélection de graphiques", + "Widgets": "Widgets", + "Cards": "Cartes", + "Banners": "Bannières", + "Charts": "Graphiques", + + "Contact": "a lua legatura", + "Shop": "Boutique", + "List": "Liste", + "Checkout": "Vérifier", + "Chats": "Chattes", + "User Profile": "Profil des utilisateurs", + "Notes": "Remarques", + "Calendar": "Calendrier", + "Profile": "Profil", + "Followers": "Suiveuses", + "Friends": "Amies", + "Gallery": "Galerie", + "Email": "E-mail", + "Pricing": "Tarification", + "Account Setting": "Paramètre du compte", + "FAQ": "FAQ", + "Widget": "Widget", + "Landing Page": "Page de destination", + "Form Elements": "Éléments de formulaire", + "Autocomplete": "Saisie automatique", + "Combobox": "Boîte combo", + "Button": "Bouton", + "Checkbox": "Case à cocher", + "Custom Inputs": "Entrées personnalisées", + "File Inputs": "Entrées de fichier", + "Radio": "Radio", + "Date Time": "Date Heure", + "Select": "Sélectionner", + "Slider": "Glissière", + "Switch": "Changer", + "Form Layout": "Disposition du formulaire", + "Form Horizontal": "Forme horizontale", + "Form Vertical": "Forme verticale", + "Form Custom": "Formulaire personnalisé", + "Form Validation": "Validation du formulaire", + "Editor": "Éditrice", + "Basic Table": "Tableau de base", + "Dark Table": "Tableau noir", + "Density Table": "Tableau de densité", + "Fixed Header Table": "Table d'en-tête fixe", + "Height Table": "Tableau des hauteurs", + "UI Components": "Composants de l'interface utilisateur", + "Alert": "Alerte", + "Accordion": "Accordéon", + "Avatar": "Avatar", + "Chip": "Ébrécher", + "Dialog": "Dialogue", + "Menus": "Menus", + "Rating": "Notation", + "Tabs": "Filele", + "Tooltip": "Info-bulle", + "Typography": "Typographie", + "Line": "Doubler", + "Gredient": "Ils entreront", + "Area": "Zone", + "Candlestick": "Chandelier", + "Column": "Colonne", + "Doughnut & Pie": "Donut et Tarte", + "Radialbar & Radar": "Barre radiale et radar", + "Login": "Connexion", + "Side Login": "Connexion latérale", + "Boxed Login": "Connexion en boîte", + "Register": "Enregistrer", + "Side Register": "Registre latéral", + "Boxed Register": "Registre en boîte", + "Forgot Password": "Mot de passe oublié", + "Side Forgot Password": "Mot de passe oublié", + "Boxed Forgot Password": "Mot de passe oublié", + "Two Steps": "Deux étapes", + "Side Two Steps": "Côté deux étapes", + "Boxed Two Steps": "Deux étapes en boîte", + "Error": "Erreur", + "Maintenance": "Entretien", + "Menu Level": "Niveau menus", + "Level 1": "Niveau 1", + "Level 2": "Niveau 2", + "Level 3": "Niveau 3", + "Disabled": "Désactivé", + "Sub Caption": "Sous-titre", + "Outlined": "Décrite", + "External Link": "lien externe", + "Editable Table": "Tableau modifiable", + + "Front Pages": "Premières pages", + "Homepage": "Page d'accueil", + "About Us": "À propos de nous", + "Contact Us": "Contactez-nous", + "Portfolio": "Portefeuille", + + "Invoice":"Facture", + "Create":"Créer", + "Edit":"Modifier", + "Tickets":"Billets", + "Details":"Détails", + + "Banners Widgets":"Widgets de bannières", + "Cards Widgets":"Widgets de cartes", + "Charts Widgets":"Widgets graphiques", + "Gallery Lightbox":"Galerie Lumineuse", + "Search Results":"Résultats de la recherche", + "Social Contacts":"Contacts sociaux", + "Treeview":"Vue arborescente" +} diff --git a/utils/locales/messages.ts b/utils/locales/messages.ts new file mode 100755 index 0000000..78d164c --- /dev/null +++ b/utils/locales/messages.ts @@ -0,0 +1,13 @@ +import en from './en.json'; +import fr from './fr.json'; +import ar from './ar.json'; +import zh from './zh.json'; + +const messages = { + en: en, + fr: fr, + ro: ar, + zh: zh +}; + +export default messages; diff --git a/utils/locales/zh.json b/utils/locales/zh.json new file mode 100755 index 0000000..78c407a --- /dev/null +++ b/utils/locales/zh.json @@ -0,0 +1,135 @@ +{ + "Dashboard1": "儀表板1", + "Dashboard2": "儀表板2", + "Dashboard3": "儀表板3", + "ECommerce": "電子商務", + "Blog Posts": "部落格文章", + "Blog Details": "博客詳細信息", + "Kanban": "招牌", + "UI Elements": "使用者介面元素", + "Header Table": "標題表", + "Selection Table": "選型表", + "Pagination Table": "分頁表", + "Filtering Table": "篩選表", + "Grouping Table": "分組表", + "Table Slots": "桌子槽位", + "CRUD Table": "增刪改查表", + "Sorting Table": "排序表", + "Boxed Forgot Pwd": "盒裝忘記密碼", + "Side Forgot Pwd": "側邊忘記密碼", + "Tabler Icons": "表圖示", + "Solar Icons": "太陽能圖標", + "Getting Started": "入門", + "Applications": "應用領域", + "Form Options": "表格選項", + "Table Variations": "表格變化", + "Charts Selection": "圖表選擇", + "Widgets": "小部件", + "Cards": "牌", + "Banners": "橫幅", + "Charts": "圖表", + + "Contact": "接触", + "Blog": "博客", + "Shop": "店铺", + "List": "列表", + "Checkout": "查看", + "Chats": "聊天记录", + "User Profile": "用户资料", + "Notes": "笔记", + "Calendar": "日历", + "Profile": "轮廓", + "Followers": "追随者", + "Friends": "朋友们", + "Gallery": "画廊", + "Email": "电子邮件", + "Pricing": "价钱", + "Account Setting": "账户设置", + "FAQ": "常问问题", + "Widget": "微件", + "Landing Page": "登陆页面", + "Form Elements": "表单元素", + "Autocomplete": "自动完成", + "Combobox": "组合框", + "Button": "按钮", + "Checkbox": "复选框", + "Custom Inputs": "自定义输入", + "File Inputs": "文件输入", + "Radio": "收音机", + "Date Time": "约会时间", + "Select": "选择", + "Slider": "滑块", + "Switch": "转变", + "Form Layout": "表单布局", + "Form Horizontal": "表格水平", + "Form Vertical": "垂直形式", + "Form Custom": "表格定制", + "Form Validation": "表单验证", + "Editor": "编辑", + "Basic Table": "基本表", + "Dark Table": "暗表", + "Density Table": "密度表", + "Fixed Header Table": "固定头表", + "Height Table": "身高表", + "UI Components": "用户界面组件", + "Alert": "警报", + "Accordion": "手风琴", + "Avatar": "头像", + "Chip": "芯片", + "Dialog": "对话", + "Menus": "菜单", + "Rating": "评分", + "Tabs": "选项卡", + "Tooltip": "工具提示", + "Typography": "排版", + "Line": "线", + "Gredient": "他们将进入", + "Area": "区域", + "Candlestick": "烛台", + "Column": "柱子", + "Doughnut & Pie": "甜甜圈和馅饼", + "Radialbar & Radar": "径向杆和雷达", + "Login": "登录", + "Side Login": "侧登录", + "Boxed Login": "盒装登录", + "Register": "登记", + "Side Register": "边寄存器", + "Boxed Register": "盒装寄存器", + "Forgot Password": "忘记密码", + "Side Forgot Password": "方忘记密码", + "Boxed Forgot Password": "盒装忘记密码", + "Two Steps": "两步", + "Side Two Steps": "侧面两步", + "Boxed Two Steps": "盒装两步", + "Error": "错误", + "Maintenance": "维护", + "Menu Level": "菜单层", + "Level 1": "等级 1", + "Level 2": "等级 2", + "Level 3": "等级 3", + "Disabled": "残疾人", + "Sub Caption": "副标题", + "Outlined": "概述", + "External Link": "外部链接", + "Editable Table": "可编辑表格", + + "Front Pages": "首頁", + "Homepage": "首頁", + "About Us": "關於我們", + "Contact Us": "聯絡我們", + "Portfolio": "資料夾", + + "Invoice": "发票", + "Create": "创造", + "Edit": "编辑", + "Tickets": "门票", + "Details": "细节", + + "Banners Widgets":"横幅小部件", + "Cards Widgets":"卡片小部件", + "Charts Widgets":"图表小工具", + "Gallery Lightbox":"画廊灯箱", + "Search Results":"搜索结果", + "Social Contacts":"社会交往", + "Treeview":"树状视图" +} diff --git a/utils/module/fhirNameParser.ts b/utils/module/fhirNameParser.ts new file mode 100644 index 0000000..26682b4 --- /dev/null +++ b/utils/module/fhirNameParser.ts @@ -0,0 +1,300 @@ +// utils/fhirNameParser.ts +import type { FhirHumanName } from "~/types/fhir/humanName"; + +// Indonesian academic suffixes +import indonesianPrefixes from "~/data/indonesianPrefixes.json"; +import indonesianSuffixes from "~/data/indonesianSuffixes.json"; +const INDONESIAN_PREFIXES: readonly string[] = indonesianPrefixes; +const INDONESIAN_SUFFIXES: readonly string[] = indonesianSuffixes; + +// Family name patterns +interface FamilyNamePattern { + pattern: RegExp; + category: string; +} + +const FAMILY_NAME_PATTERNS: readonly FamilyNamePattern[] = [ + // Pola untuk nama keluarga Batak + { + pattern: + /^(Siregar|Sitorus|Simanjuntak|Simatupang|Sinaga|Harahap|Hasibuan|Hutapea|Hutagalung|Hutabarat|Nasution|Lubis|Batubara|Rangkuti|Dalimunthe|Daulay|Matondang|Pulungan|Parinduri)$/i, + category: "batak" + }, + + // Pola untuk nama keluarga Mandailing + { + pattern: + /^(Nasution|Lubis|Batubara|Rangkuti|Dalimunthe|Daulay|Matondang|Pulungan|Parinduri)$/i, + category: "mandailing" + }, + + // Pola untuk nama keluarga Tionghoa + { + pattern: + /^(Tan|Lim|Lie|Ong|Tjoa|Oei|Kwee|The|Chong|Huang|Li|Wang|Zhang|Chen|Liu|Yang)$/i, + category: "chinese" + }, + + // Pola untuk nama keluarga Javanese-Chinese + { + pattern: + /^(Wijaya|Santoso|Gunawan|Susanto|Halim|Tjandra|Suharto|Prabowo|Wibowo|Setiawan)$/i, + category: "javanese-chinese" + }, + + // Pola untuk nama umum dengan akhiran + { + pattern: + /^(Putra|Putri|Wati|Ningrum|Sari|Dewi|Rahayu|Sukma|Ningsih|Rizki)$/i, + category: "common-suffix" + }, + + // Pola untuk nama keluarga Melayu-Arab + { + pattern: /^(bin|binti)$/i, + category: "malay-arabic" + }, + + // Pola untuk nama keluarga umum + { + pattern: /^(Sukma|Rizki|Dewi|Sari|Ningsih|Rahayu|Wati|Ningrum)$/i, + category: "common" + }, + + // Pola untuk nama keluarga Arab + { + pattern: + /^(Yusuf|Hassan|Ali|Fatimah|Aisyah|Zain|Husain|Khalid|Amin|Salim)$/i, + category: "arabic" + }, + + // Pola untuk nama keluarga Javanese + { + pattern: + /^(Suharto|Suharjo|Sukardi|Sukmawati|Kusuma|Prabowo|Wibowo|Setiawan)$/i, + category: "javanese" + }, + + // Pola untuk nama keluarga perempuan + { + pattern: /^(Sari|Wati|Ningrum|Dewi|Rahayu|Sukma|Ningsih)$/i, + category: "female-suffix" + }, + + // Pola untuk nama keluarga Sunda + { + pattern: + /^(Sukma|Sari|Dewi|Rahayu|Hidayah|Ningsih|Rizki|Suhendi|Sukardi)$/i, + category: "sundanese" + }, + + // Pola untuk nama keluarga Bali + { + pattern: /^(Putra|Putri|Wayan|Made|Nyoman|Ketut|Agung|Sukma|Dewi|Sari)$/i, + category: "balinese" + }, + + // Pola untuk nama keluarga Bugis + { + pattern: /^(Andi|Daeng|Puang|Sultan|Raja|Sitti|Baji|Makkunrai)$/i, + category: "bugis" + }, + + // Pola untuk nama keluarga Minang + { + pattern: /^(Sutan|Datuk|Raja|Pangeran|Haji|Sari|Datu|Raden)$/i, + category: "minang" + } +]; + +export function parseFhirHumanName( + fullName: string | null | undefined +): FhirHumanName | null { + if (!fullName || typeof fullName !== "string") { + return null; + } + + const fhirName: FhirHumanName = { + use: "official", + text: fullName.trim(), + family: undefined, + given: [], + prefix: [], + suffix: [] + }; + + let workingName = fullName.trim(); + + // Extract prefixes - accumulate consecutive prefixes into one string + const prefixesFound: string[] = []; + let prefixFound = true; + while (prefixFound) { + prefixFound = false; + for (const prefix of INDONESIAN_PREFIXES) { + const regex = new RegExp(`^${escapeRegExp(prefix)}\\s+`, "i"); + if (regex.test(workingName)) { + prefixesFound.push(prefix); + workingName = workingName.replace(regex, ""); + prefixFound = true; + break; // restart loop after removing one prefix + } + } + } + if (prefixesFound.length > 0) { + fhirName.prefix!.push(prefixesFound.join(" ")); + } else { + // If no known prefix found, treat first word as prefix or given if single word + const firstSpaceIndex = workingName.indexOf(" "); + if (firstSpaceIndex !== -1) { + const firstWord = workingName.substring(0, firstSpaceIndex); + fhirName.prefix!.push(firstWord); + workingName = workingName.substring(firstSpaceIndex + 1).trim(); + } else if (workingName.length > 0) { + // Single word name, treat as given + fhirName.given!.push(workingName); + workingName = ""; + } + } + + // Extract suffixes - improved to handle multiple suffixes separated by commas and spaces + fhirName.suffix = []; + let suffixesFound = true; + while (suffixesFound) { + suffixesFound = false; + for (const suffix of INDONESIAN_SUFFIXES) { + const regex = new RegExp(`(,?\\s+${escapeRegExp(suffix)})$`, "i"); + if (regex.test(workingName)) { + if (!fhirName.suffix.includes(suffix)) { + fhirName.suffix.push(suffix); + } + workingName = workingName.replace(regex, "").trim(); + suffixesFound = true; + break; // restart loop after removing one suffix + } + } + } + + // Remove trailing commas after suffix removal + workingName = workingName.replace(/,\s*$/, "").trim(); + + // Remove trailing commas + workingName = workingName.replace(/,\s*$/, "").trim(); + + // Split name parts + const nameParts = workingName.split(/\s+/).filter((part) => part.length > 0); + + if (nameParts.length === 0) { + return fhirName; + } + + // Parse name parts with improved family name detection for multi-word family names + if (nameParts.length === 1) { + fhirName.given!.push(nameParts[0]); + } else if (nameParts.length === 2) { + if (isLikelyFamilyName(nameParts[1])) { + fhirName.family = nameParts[1]; + fhirName.given!.push(nameParts[0]); + } else { + fhirName.given!.push(nameParts[0]); + fhirName.given!.push(nameParts[1]); + } + } else { + // Check last two words combined for family name + const lastTwoParts = nameParts.slice(-2).join(" "); + if (isLikelyFamilyName(lastTwoParts)) { + fhirName.family = lastTwoParts; + for (let i = 0; i < nameParts.length - 2; i++) { + fhirName.given!.push(nameParts[i]); + } + } else if (isLikelyFamilyName(nameParts[nameParts.length - 1])) { + fhirName.family = nameParts[nameParts.length - 1]; + for (let i = 0; i < nameParts.length - 1; i++) { + fhirName.given!.push(nameParts[i]); + } + } else { + // Default: treat last two words as family name + fhirName.family = lastTwoParts; + for (let i = 0; i < nameParts.length - 2; i++) { + fhirName.given!.push(nameParts[i]); + } + } + } + + // Clean up empty arrays + if (fhirName.prefix!.length === 0) delete fhirName.prefix; + if (fhirName.suffix!.length === 0) delete fhirName.suffix; + if (fhirName.given!.length === 0) delete fhirName.given; + if (!fhirName.family) delete fhirName.family; + + return fhirName; +} + +function isLikelyFamilyName(namePart: string): boolean { + return FAMILY_NAME_PATTERNS.some(({ pattern }) => pattern.test(namePart)); +} + +function escapeRegExp(string: string): string { + return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); +} + +export function formatFhirName( + fhirName: FhirHumanName | null | undefined +): string { + if (!fhirName) return ""; + + const parts: string[] = []; + + if (fhirName.prefix && fhirName.prefix.length > 0) { + parts.push(fhirName.prefix.join(" ")); + } + + if (fhirName.given && fhirName.given.length > 0) { + parts.push(fhirName.given.join(" ")); + } + + if (fhirName.family) { + parts.push(fhirName.family); + } + + if (fhirName.suffix && fhirName.suffix.length > 0) { + parts.push(fhirName.suffix.join(", ")); + } + + return parts.join(" "); +} + +export function validateFhirHumanName( + fhirName: FhirHumanName | null | undefined +): string[] { + const errors: string[] = []; + + if (!fhirName) { + errors.push("FHIR HumanName object is required"); + return errors; + } + + if (!fhirName.text || fhirName.text.trim() === "") { + errors.push("Text representation of name is required"); + } + + if ((!fhirName.given || fhirName.given.length === 0) && !fhirName.family) { + errors.push("At least one given name or family name is required"); + } + + const validUseValues: FhirHumanName["use"][] = [ + "usual", + "official", + "temp", + "nickname", + "anonymous", + "old", + "maiden" + ]; + if (fhirName.use && !validUseValues.includes(fhirName.use)) { + errors.push( + `Invalid use value. Must be one of: ${validUseValues.join(", ")}` + ); + } + + return errors; +}